git clone http://github.com/nvms/envi
cd envi
python setup.py install
envi
- An EWMH/NetWM compatible X Window Manager.
xwininfo
wmctrl
~/.config/envi/config.yml
.
This sample config defines a 'music' and 'dev' space that each start a few applications. Arguments can be passed in brackets: [args, ...]
. Using ;
as a delimiter, you can tell envi to do something immediately after opening the application. See the subl example below.
music:
pithos:
height: 650
width: 350
x: 75
y: 75
rhythmbox:
height: 650
width: 1024
x: 800
y: 75
dev:
subl[; notify-send "It's so sublime"; sh /some/script.sh]:
height: 1567
width: 1748
x: 75
y: 68
firefox[--new-tab localhost:8000/ --devtools]:
height: 1567
width: 1994
x: 1833
y: 68
nautilus:
adjust: true
height: 550
width: 1251
x: 1067
y: 1630
gnome-terminal:
height: 477
width: 1010
x: 2817
y: 1645
gnome-terminal*:
height: 477
width: 1010
x: 1817
y: 1645
gnome-terminal**:
height: 477
width: 1010
x: 0
y: 1645
In order of importance:
-
Applications can have any number of arguments. -
Safely wait until an application has opened successfully: do we have a new WINID yet? If not, don't proceed. If yes, the application must have opened. This would remove the need for the global startup delay timer. -
Introduce capture command to dump details of focused window (x, y, w, h):envi capture <float>
. - Use
wmctrl
to switch between workspaces if a space is defined as being on anything other than the current one. - More than one application with the same name. I might need to bootstrap the YAML loader.
- Workaround: In the config, place asterisks after the application name. The YAML loader doesn't count these as duplicates and therefore preserves them in the data it returns.
-
Verbose output withenvi space {spacename} -v |--verbose
. - Look into output of
wmctrl -l [-p -x]
. Might be able to remove xdotool dependency entirely if this gives me everything I need. Example and explaination