mirror of
https://github.com/xmonad/xmonad.git
synced 2025-05-19 00:20:22 -07:00
242 lines
6.4 KiB
Groff
242 lines
6.4 KiB
Groff
.\" Automatically generated by Pandoc 3.1.3
|
|
.\"
|
|
.\" Define V font for inline verbatim, using C font in formats
|
|
.\" that render this, and otherwise B font.
|
|
.ie "\f[CB]x\f[]"x" \{\
|
|
. ftr V B
|
|
. ftr VI BI
|
|
. ftr VB B
|
|
. ftr VBI BI
|
|
.\}
|
|
.el \{\
|
|
. ftr V CR
|
|
. ftr VI CI
|
|
. ftr VB CB
|
|
. ftr VBI CBI
|
|
.\}
|
|
.TH "XMONAD" "1" "27 October 2021" "Tiling Window Manager" ""
|
|
.hy
|
|
.SH Name
|
|
.PP
|
|
xmonad - Tiling Window Manager
|
|
.SH Description
|
|
.PP
|
|
\f[I]xmonad\f[R] is a minimalist tiling window manager for X, written in
|
|
Haskell.
|
|
Windows are managed using automatic layout algorithms, which can be
|
|
dynamically reconfigured.
|
|
At any time windows are arranged so as to maximize the use of screen
|
|
real estate.
|
|
All features of the window manager are accessible purely from the
|
|
keyboard: a mouse is entirely optional.
|
|
\f[I]xmonad\f[R] is configured in Haskell, and custom layout algorithms
|
|
may be implemented by the user in config files.
|
|
A principle of \f[I]xmonad\f[R] is predictability: the user should know
|
|
in advance precisely the window arrangement that will result from any
|
|
action.
|
|
.PP
|
|
By default, \f[I]xmonad\f[R] provides three layout algorithms: tall,
|
|
wide and fullscreen.
|
|
In tall or wide mode, windows are tiled and arranged to prevent overlap
|
|
and maximize screen use.
|
|
Sets of windows are grouped together on virtual screens, and each screen
|
|
retains its own layout, which may be reconfigured dynamically.
|
|
Multiple physical monitors are supported via Xinerama, allowing
|
|
simultaneous display of a number of screens.
|
|
.PP
|
|
By utilizing the expressivity of a modern functional language with a
|
|
rich static type system, \f[I]xmonad\f[R] provides a complete,
|
|
featureful window manager in less than 1200 lines of code, with an
|
|
emphasis on correctness and robustness.
|
|
Internal properties of the window manager are checked using a
|
|
combination of static guarantees provided by the type system, and
|
|
type-based automated testing.
|
|
A benefit of this is that the code is simple to understand, and easy to
|
|
modify.
|
|
.SH Usage
|
|
.PP
|
|
\f[I]xmonad\f[R] places each window into a \[lq]workspace\[rq].
|
|
Each workspace can have any number of windows, which you can cycle
|
|
though with mod-j and mod-k.
|
|
Windows are either displayed full screen, tiled horizontally, or tiled
|
|
vertically.
|
|
You can toggle the layout mode with mod-space, which will cycle through
|
|
the available modes.
|
|
.PP
|
|
You can switch to workspace N with mod-N.
|
|
For example, to switch to workspace 5, you would press mod-5.
|
|
Similarly, you can move the current window to another workspace with
|
|
mod-shift-N.
|
|
.PP
|
|
When running with multiple monitors (Xinerama), each screen has exactly
|
|
1 workspace visible.
|
|
mod-{w,e,r} switch the focus between screens, while shift-mod-{w,e,r}
|
|
move the current window to that screen.
|
|
When \f[I]xmonad\f[R] starts, workspace 1 is on screen 1, workspace 2 is
|
|
on screen 2, etc.
|
|
When switching workspaces to one that is already visible, the current
|
|
and visible workspaces are swapped.
|
|
.SS Flags
|
|
.PP
|
|
xmonad has several flags which you may pass to the executable.
|
|
These flags are:
|
|
.TP
|
|
\[en]recompile
|
|
Recompiles your \f[I]xmonad.hs\f[R] configuration
|
|
.TP
|
|
\[en]restart
|
|
Causes the currently running \f[I]xmonad\f[R] process to restart
|
|
.TP
|
|
\[en]replace
|
|
Replace the current window manager with xmonad
|
|
.TP
|
|
\[en]version
|
|
Display version of \f[I]xmonad\f[R]
|
|
.TP
|
|
\[en]verbose-version
|
|
Display detailed version of \f[I]xmonad\f[R]
|
|
.SS Default keyboard bindings
|
|
.TP
|
|
mod-shift-return
|
|
Launch terminal
|
|
.TP
|
|
mod-p
|
|
Launch dmenu
|
|
.TP
|
|
mod-shift-p
|
|
Launch gmrun
|
|
.TP
|
|
mod-shift-c
|
|
Close the focused window
|
|
.TP
|
|
mod-space
|
|
Rotate through the available layout algorithms
|
|
.TP
|
|
mod-shift-space
|
|
Reset the layouts on the current workspace to default
|
|
.TP
|
|
mod-n
|
|
Resize viewed windows to the correct size
|
|
.TP
|
|
mod-tab
|
|
Move focus to the next window
|
|
.TP
|
|
mod-shift-tab
|
|
Move focus to the previous window
|
|
.TP
|
|
mod-j
|
|
Move focus to the next window
|
|
.TP
|
|
mod-k
|
|
Move focus to the previous window
|
|
.TP
|
|
mod-m
|
|
Move focus to the master window
|
|
.TP
|
|
mod-return
|
|
Swap the focused window and the master window
|
|
.TP
|
|
mod-shift-j
|
|
Swap the focused window with the next window
|
|
.TP
|
|
mod-shift-k
|
|
Swap the focused window with the previous window
|
|
.TP
|
|
mod-h
|
|
Shrink the master area
|
|
.TP
|
|
mod-l
|
|
Expand the master area
|
|
.TP
|
|
mod-t
|
|
Push window back into tiling
|
|
.TP
|
|
mod-comma
|
|
Increment the number of windows in the master area
|
|
.TP
|
|
mod-period
|
|
Deincrement the number of windows in the master area
|
|
.TP
|
|
mod-shift-q
|
|
Quit xmonad
|
|
.TP
|
|
mod-q
|
|
Restart xmonad
|
|
.TP
|
|
mod-shift-slash
|
|
Run xmessage with a summary of the default keybindings (useful for
|
|
beginners)
|
|
.TP
|
|
mod-question
|
|
Run xmessage with a summary of the default keybindings (useful for
|
|
beginners)
|
|
.TP
|
|
mod-[1..9]
|
|
Switch to workspace N
|
|
.TP
|
|
mod-shift-[1..9]
|
|
Move client to workspace N
|
|
.TP
|
|
mod-{w,e,r}
|
|
Switch to physical/Xinerama screens 1, 2, or 3
|
|
.TP
|
|
mod-shift-{w,e,r}
|
|
Move client to screen 1, 2, or 3
|
|
.TP
|
|
mod-button1
|
|
Set the window to floating mode and move by dragging
|
|
.TP
|
|
mod-button2
|
|
Raise the window to the top of the stack
|
|
.TP
|
|
mod-button3
|
|
Set the window to floating mode and resize by dragging
|
|
.SH Examples
|
|
.PP
|
|
To use xmonad as your window manager add to your
|
|
\f[I]\[ti]/.xinitrc\f[R] file:
|
|
.RS
|
|
.PP
|
|
exec xmonad
|
|
.RE
|
|
.SH Customization
|
|
.PP
|
|
xmonad is customized in your \f[I]xmonad.hs\f[R], and then restarted
|
|
with mod-q.
|
|
You can choose where your configuration file lives by
|
|
.IP "1." 3
|
|
Setting \f[V]XMONAD_DATA_DIR,\f[R] \f[V]XMONAD_CONFIG_DIR\f[R], and
|
|
\f[V]XMONAD_CACHE_DIR\f[R]; \f[I]xmonad.hs\f[R] is then expected to be
|
|
in \f[V]XMONAD_CONFIG_DIR\f[R].
|
|
.IP "2." 3
|
|
Creating \f[I]xmonad.hs\f[R] in \f[I]\[ti]/.xmonad\f[R].
|
|
.IP "3." 3
|
|
Creating \f[I]xmonad.hs\f[R] in \f[V]XDG_CONFIG_HOME\f[R].
|
|
Note that, in this case, xmonad will use \f[V]XDG_DATA_HOME\f[R] and
|
|
\f[V]XDG_CACHE_HOME\f[R] for its data and cache directory respectively.
|
|
.PP
|
|
You can find many extensions to the core feature set in the xmonad-
|
|
contrib package, available through your package manager or from
|
|
xmonad.org (https://xmonad.org).
|
|
.SS Modular Configuration
|
|
.PP
|
|
As of \f[I]xmonad-0.9\f[R], any additional Haskell modules may be placed
|
|
in \f[I]\[ti]/.xmonad/lib/\f[R] are available in GHC\[cq]s searchpath.
|
|
Hierarchical modules are supported: for example, the file
|
|
\f[I]\[ti]/.xmonad/lib/XMonad/Stack/MyAdditions.hs\f[R] could contain:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
module XMonad.Stack.MyAdditions (function1) where
|
|
function1 = error \[dq]function1: Not implemented yet!\[dq]
|
|
\f[R]
|
|
.fi
|
|
.PP
|
|
Your xmonad.hs may then import XMonad.Stack.MyAdditions as if that
|
|
module was contained within xmonad or xmonad-contrib.
|
|
.SH Bugs
|
|
.PP
|
|
Probably.
|
|
If you find any, please report them to the
|
|
bugtracker (https://github.com/xmonad/xmonad/issues)
|