An experimental window manager with which you can pan a virtual desktop by moving your head.
It's somewhat usable. Some critical features are missing, like fullscreen handling. See below for limitations and known issues.
-
You can pan the windows using your face!
-
It has DBus interface which can be controlled using the included
ftwmcmd
script, which can be used in keyboard shortcuts using something like xbindkeys. -
Click to focus
-
Optimal window arrangement
-
Configuration via a
.ini
file -
Automatically selects the first camera that can see your face
-
Windows completely stop moving when your head is still
The following issues include bugs and missing features that I plan to fix.
Fullscreen applications may not take up the whole screen, nor will they be static.
Windows opened before the application has finished loading are unmanaged. As a workaround, I put a delay in my .xinitrc
before any startup GUI applications load.
New windows may be difficult to find. Currently all new windows are placed wherever there is room, and if there's a lot of windows on the screen already, you'll have to look around to find them. Also, there is a bug where empty space is counted as occupied, causing windows to be placed in sub-optimal locations. As a workaround, when this happens, just re-arrange the windows.
It uses up to about 17% of the CPU on my machine, or about 1.36 cores.
Changing the window sizes is supposed to be smarter than it is now. Currently I can resize them by 20% at a time using the keyboard, but this is supposed to vary so you can get closer to the exact size you want.
The settings.ini
file, located by default in ~/.config/ftwm
, includes options to tune the smoothness of window movements, customize how far you can move them, and specify the threshold at which stillness is detected. There are also some camera settings. Details are in the included settings.ini
file.
-
Fullscreen handling
-
Monocle layout
-
Panning toggle action
-
Close-all-windows action
-
Calibration: re-center the windows so you don't have to adjust the screen
-
Mouse-only panning mode, in case you can't sit still
-
Remember window sizes
-
Handle floating windows
-
Hot reload settings
-
Zoom in and out with your face (maybe)
-
Fix window placement
-
Manage existing windows on startup
-
Support _NET_ACTIVE_WINDOW
-
Installer
-
Point to new windows
-
Focus new windows
-
Reduce CPU usage
-
Improve window-resizing
-
Dock support
-
Add a setting for changing the event handling rate
-
Window-killing functionality
-
Compensate for low camera framerates
-
Some refactoring