Skip to content
Use X11 without a window manager
C Shell Makefile
Branch: master
Clone or download
patrickhaller Merge pull request #8 from sagb/master
mention 3rd party alttab app
Latest commit ae789fb Dec 8, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
scripts add MRU and select-window for alt-tab Jul 8, 2017
COPYING.txt added cc0 licensing Sep 13, 2012
Makefile add support for make install to make everything, init x-focus-topmost… Jun 11, 2017
README
notes.md added engineering notes to track ideas Feb 11, 2014
x-alt-tab-mru.c add MRU and select-window for alt-tab Jul 8, 2017
x-alt-tab.c apply window viewability heuristic from x-window-list Jun 9, 2017
x-focus-manager.c whitespace, config update Jun 8, 2017
x-move-resize.c use more c99 Oct 15, 2015
x-placement-manager.c whitespace, config update Jun 8, 2017
x-raise.c mv raise from x-window-list to x-raise, add list all to x-window-list Jun 8, 2017
x-session.c switch to defined style standard Oct 15, 2015
x-undecorate.c switch to defined style standard Oct 15, 2015
x-window-list.c add filter out of unmanaged windows, add (un)mapped indicator to output Jun 8, 2017

README

no-wm
	Use X11 without a window manager

components
	included
		x-alt-tab
		x-move-resize
		x-session
		x-focus-manager
	distributed with X11 
		xsel xprop xrdb xset xsetroot xwininfo
	key-daemons
		xbindkeys http://www.nongnu.org/xbindkeys/xbindkeys.html
		speckeysd http://www.jessies.org/~enh/software/x11/
		xchainkeys http://code.google.com/p/xchainkeys/
		sxhkd https://github.com/baskerville/sxhkd
		alttab https://github.com/sagb/alttab
	window-manipulators
		xdotool http://www.semicomplete.com/projects/xdotool/
		window http://www.jessies.org/~enh/software/x11/
	niceties
		unclutter http://unclutter.sourceforge.net/
		dmenu http://tools.suckless.org/dmenu/
		autocutsel http://www.nongnu.org/autocutsel/ 
	overview
		http://www.sbin.org/doc/Xlib/index_contents.html

procedure
	set up your ${HOME}/.xinitrc to be something like
		#!/bin/bash
		while ! xprop -root | grep -q Free; do sleep 1; done
		xrdb -merge ${HOME}/etc/Xresources
		xsetroot -solid black
		xset b off
		exec xterm &
		exec speckeysd ${HOME}/etc/speckeysd.conf &
		exec x-focus-manager &
		exec x-session
	and your ${HOME}/etc/speckeysd.conf to be like
		# Key names come from <X11/keysymdef.h> (remove the XK_ prefix).
		# MUST have a Tab separating the key-combo and command
		Alt-Tab	x-alt-tab
		Alt-Shift-Tab	x-alt-tab -1
		Alt-Return	x-banish push
		Alt-BackSpace	x-banish pop
		Alt-m	x-move-resize
		Alt-r	echo run | dmenu -fn 10x20 | exec bash -s
		Alt-s	surf "$( echo www.duckduckgo.com | dmenu )"
		Alt-t	urxvt & x-focus-topmost wait
		Alt-f	xdotool selectwindow windowsize 100% 100% windowmove 0 0

	then ${HOME}/etc/Xresources with the preferred window geometries
		R_x11*geometry: 1024x600+0+0
		XTerm*geometry: 1024x600+0+0
		URxvt*geometry: 1024x600+0+0
		surf*geometry: 1024x600+0+0


window managers bind orthogonals (keyboard shortcuts, window manipulation,
window decoration) which should remain separate. 

x-focus-manager is not needed when all your apps return focus properly. A
mis-behaving app can be fixed by calling x-alt-tab after it runs; however that
needs to be scripted as focus remains with a window that no longer exists.
You can’t perform that action at this time.