alttab - the task switcher
alttab [
-w N] [
-d N] [
-sc N]
[
-mk str] [
-kk str] [
-bk str]
[
-pk str] [
-nk str] [
-mm N]
[
-bm N] [
-t NxM] [
-i NxM]
[
-vp str] [
-p str] [
-s N]
[
-theme name] [
-bg color] [
-fg
color] [
-frame color] [
-bc color]
[
-bw N] [
-font name] [
-vertical]
[
-v|
-vv]
The task switcher designed for minimalistic window managers or standalone X11
session.
Unlike task switchers integrated in most simple WMs,
alttab features
visual interface and convenient tactile behaviour, switching windows on
releasing Alt key.
Being lightweight and depending only on core X11 libs, it still features
customizable look and behaviour.
Most command line options have corresponding X resource, see doc/alttab.ad for
example.
-
-w NUMBER
- resource: alttab.windowmanager
default: autodetect, fallback to 3
- Control how to obtain window list and set focus.
NUMBER must be between 0 and 3:
-
0: No WM, raw X.
- Set this value manually, as it's not autodetected. Only
top-level viewable children of root window are listed. Running -w 0
under WM is discouraged: hidden windows or windows on another desktops
will not be listed; instead, some strange windows may be included.
-
1: EWMH compatible.
- Compatible WM list is in [SEE ALSO] below. alttab functions
in xmonad (EWMH must be allowed, details in doc/wm-setup.md), i3, evilwm,
xfwm4, metacity, jwm, openbox, fluxbox, icewm, enlightenment, blackbox,
aewm, fvwm, sawfish, bspwm. The following WMs support EWMH partially but
work in -w 1 mode too: dwm (issue #9), matchbox (issue #34),
windowmaker (issue #9), xpra (issue #37), cwm (issue #35), ctwm (issue
#39), lwm (issue #40), awesome (issue #41).
-
2: Ratpoison.
- Alttab uses ratpoison own remote control capability.
Additionally, alttab registers itself in its "unmanaged list"
automatically.
-
3: Ancient WM.
- Fallback, worse than 0. Search for application
windows at random nodes of window tree (WM is probably reparenting) and
select only those with a name, including non-viewable (WM is probably
iconifying). May cause lag. Tested in twm, flwm, wm2.
-
-d NUMBER
- resource: alttab.desktops
default: 0
- Show windows belonging to desktops (workspaces, groups).
NUMBER must be between 0 and 3:
-
0: Current desktop.
- This is default, although in non EWMH-compatible WM, except
ratpoison, it's effectively the same as 1.
-
1: All desktops.
-
2: All desktops, excluding special (-1) one.
- In various EWMH WM this desktop may be designed hidden or
containing sticky windows. In i3, it's "scratchpad".
-
3: All desktops, excluding current and special.
-
-sc NUMBER
- resource: alttab.screens
default: 1
- Show windows belonging to xrandr/xinerama screens.
NUMBER must be 0 or 1:
-
0: Current screen.
- As defined according to -vp pointer or
-vp focus.
-
1: All screens.
- This is default.
-
-mk str
- resource: alttab.modifier.keysym
default: Alt_L
- Keysym of main modifier. String or number accepted.
Suitable examples: Control_L, Super_L.
-
-kk str
- resource: alttab.key.keysym
default: Tab
- Keysym of main key. For example, grave (aka tilde),
Escape.
-
-bk str
- resource: alttab.backscroll.keysym
default: any Shift, according to ShiftMask
- Keysym of backward scroll key.
-
-pk str
- resource: alttab.prevkey.keysym
default: no key assigned
- Keysym of auxiliary 'previous' key. For example, Left,
H.
-
-nk str
- resource: alttab.nextkey.keysym
default: no key assigned
- Keysym of auxiliary 'next' key. For example, Right, L.
-
-ck str
- resource: alttab.cancelkey.keysym
default: Escape
- Keysym of auxiliary 'cancel' key.
-
-mm NUM
- resource: alttab.modifier.mask
- OBSOLETED, guessed from -mk instead.
-
-bm NUM
- resource: alttab.backscroll.mask
- OBSOLETED, guessed from -bk instead.
-
-t NNxMM
- resource: alttab.tile.geometry
default: 112x128
- Size of a single tile (mini-window). If switcher doesn't
fit the viewport ( -vp), tile may be thinner.
-
-i NNxMM
- resource: alttab.icon.geometry
default: 32x32
- Size of icons.
-
-vp str
- resource: alttab.viewport
default: focus
- Limit viewport for the switcher. The switcher always has
variable size and position, but tries to never break out of -vp
container, while -p specifies position relative to this container.
Together these options allow for WM-independent multi-monitor support.
Possible values for -vp:
-
focus: in multihead configuration: the monitor which
shows largest part of currently focused window. If this part is shared
with other monitors, then the smallest of these monitors is chosen. In
single head configuration: the geometry of default root window.
-
pointer: the monitor which has mouse pointer,
otherwise the same as focus.
- The "multihead" above means more than one active
XRANDR output. They are detected at runtime, so hopefully monitors may be
attached/detached without restarting alttab.
-
total: the geometry of default root window.
- If you specify this in tiling multihead configuration, then
the switcher will be drawn relative to the entire combined screen,
crossing monitors' borders.
-
WxH+X+Y: Specific position relative to default root
window.
- This allows for static manual bounding if XRANDR detection
fails. Suppose X root window spans over two 2560х1440 monitors,
resulting in combined screen of 5120x1440 size. Then the switcher may be
positioned at the center of the right monitor with -vp 2560x1440+2560+0 -p
center.
-
-p str
- resource: alttab.position
default: center
- Position of switcher: "center", "none"
or specific position relative to upper left corner of viewport, in the
form +X+Y.
-
-s NUMBER
- resource: alttab.icon.source
default: 2
- Source of icons. NUMBER must be between 0 and
3:
-
0: Use icons from X11 window attributes only.
-
1: Load icon from file if not found in window
attributes.
- Alttab searches for PNG and XPM icons in $XDG_DATA_DIRS and
also under:
- /usr/share/icons
/usr/local/share/icons
~/.icons
~/.local/share/icons
- Directory structure should obey freedesktop standard, but
desktop files are ignored, instead file name is expected to be equal to
application class. That is, if alttab doesn't recognize an icon for window
of class foo, as obtained by 'xprop WM_CLASS', then just drop a 32x32 icon
into /usr/local/share/icons/hicolor/32x32/apps/foo.png.
- Also, alttab scans for icons in legacy directories without
freedesktop directory structure:
- /usr/share/pixmaps
~/.local/share/pixmaps
-
2: Prefer icon from file when it matches requested
size better (see -i option).
-
3: Use icons from files only.
-
-theme name
- resource: alttab.theme
default: hicolor
- Desktop theme for application icons. Used when -s is
1, 2 or 3.
The following three options accept color names or
#rrggbb. Special value
_rnd_low or
_rnd_high produce random color from lower or upper
RGB space respectively.
-
-bg color
- resource: alttab.background
default: black
- Tile background color.
-
-fg color
- resource: alttab.foreground
default: grey
- Foreground color.
-
-frame color
- resource: alttab.framecolor
default: #a0abab
- Color of frame around selected tile.
-
-bc color
- resource: alttab.bordercolor
default: black
- Color of extra border around the entire switcher. This
border may look redundant. Do not confuse with -frame.
-
-bw N
- resource: alttab.borderwidth
default: 0 (no extra border)
- Width of extra border above.
-
-font name
- resource: alttab.font
default: xft:sans-10
- Label font name in format: xft:fontconfig_pattern,
like in emacs and rxvt. See [SEE ALSO] for fontconfig pattern. It's
neither GTK font pattern nor legacy XLFD.
Your Xresources database probably already has *background, *foreground or *font
wildcard definitions, which alttab will obey. Precedence order (preferred
first):
alttab.font resource,
-font option,
wildcard resource like *font in xfd: format.
- -vertical
- resource: alttab.vertical
default: no
- Vertical layout (experimental).
-
-v, -vv
- resource: no
default: silent
- Verbosity.
- -h
- short help
Run alttab after WM, or autodetection will fail.
Copyright 2017-2021 Alexander Kulak
<sa-dev AT odd POINT systems>.
Please report issues on github
https://github.com/sagb/alttab/issues.
EWMH compatible WM list
https://en.wikipedia.org/wiki/Extended_Window_Manager_Hints#List_of_window_managers_that_support_Extended_Window_Manager_Hints.
Description of fontconfig pattern
https://www.freedesktop.org/software/fontconfig/fontconfig-user.html.