xmonad with xterm

In the past I have used the xmonad tiling window manager but eventually returned to KDE, because I had some problems with truncated text in terminal windows, needed to be able to run a complicated GUI that was not very suited for a tiling window manager and I thought there was not that much difference in performance.

xmonad, xmobar


The documentation reads that the xmonad tiling window manager is fast and configurable; xmobar - a minimalistic status bar.

terminal emulator


The xterm terminal emulator starts up very quickly and for me this compensates for its lack of tabs. Besides: tmux can be configured to use tabs. Note: to select things with the mouse in tmux, press the Shift key when using the mouse.


 1set-option -g prefix C-z
 2unbind-key C-b
 3bind-key C-z send-prefix
 4set -g mouse on
 5set -g history-limit 9999
 6set -g default-terminal "screen-256color"
 8# https://gist.github.com/william8th/faf23d311fc842be698a1d80737d9631
 9# Set new panes to open in current directory
10# bind c new-window -c "#{pane_current_path}"
11# bind '"' split-window -c "#{pane_current_path}"
12# bind % split-window -h -c "#{pane_current_path}"
14# https://www.seanh.cc/2020/12/30/how-to-make-tmux's-windows-behave-like-browser-tabs/#:~:text=Key%20bindings&text=conf%20file%20to%20get%20browser,and%20C%2DS%2DTab%20in%20tmux.
15set -g base-index 1       # Start numbering windows at 1, not 0.
16set -g pane-base-index 1  # Start numbering panes at 1, not 0.
17bind -n C-t new-window
18bind -n C-PgDn next-window
19bind -n C-PgUp previous-window
20bind -n C-S-Left swap-window -t -1\; select-window -t -1
21bind -n C-S-Right swap-window -t +1\; select-window -t +1
22bind -n M-1 select-window -t 1
23bind -n M-2 select-window -t 2
24bind -n M-3 select-window -t 3
25bind -n M-4 select-window -t 4
26bind -n M-5 select-window -t 5
27bind -n M-6 select-window -t 6
28bind -n M-7 select-window -t 7
29bind -n M-8 select-window -t 8
30bind -n M-9 select-window -t:$
31bind -n C-M-w kill-window
32bind -n C-M-q confirm -p "Kill this tmux session?" kill-session
33bind -n F11 resize-pane -Z
35set -g status-style "bg=default"
36set -g window-status-current-style "bg=default,reverse"
37set -g window-status-separator ''  # No spaces between windows in the status bar.
38set -g window-status-format "#{?window_start_flag,, }#I:#W#{?window_flags,#F, } "
39set -g window-status-current-format "#{?window_start_flag,, }#I:#W#{?window_flags,#F, } "


In the xmonad.hs configuration file the following code is used to define a terminal and a floating terminal with the xterm command.

 1myTerminal :: String
 2myTerminal = "xterm"
 4myFloatingTerminal :: String
 5myFloatingTerminal = "xterm -title \"floatterm\""
 9keysAdditional =
10    [ ("M-C-<Return>", spawn myFloatingTerminal)
11    ,
13-- ...
14  xmonad $ def {
15    terminal = myTerminal,

Performance gains

My system is indeed significantly snappier and faster in general under xmonad than it was under KDE and I now don't quite understand how I came to a different conclusion before. It must have been annoyance-bias over the terminal output truncate problem.


My dotfiles at GitHub with a.o. xmonad, xmobar configuration.

Already on GitHub

Posts in this Series