Opensnap brings the Aero Snap feature to Openbox.
The state of X is REALLY, REALLY horrible. I didn't know what I was getting in to when I started the POC of opensnap. So I'm declaring an eternal code freeze. Meaning I will probably not add features or fix bugs that can be workarounded.
Known bugs you just have to work around:
- No "unsnapping" feature (see end of this file for workaround)
- opensnap doesn't detect screen layout changes (just restart opensnap)
Sorry, opensnap works fine enough for me in it's current state and I'm really not too keen on messing more with X API's. If you encounter a bug, you can either report it here, maybe I'll fix it, no guarantees though. Or fork opensnap and fix it yourself. (And optionally send me a pull request)
But hey, opensnap is still in use by quite a few people, including me, and it works. It's not perfect but good enough for daily use. So you might still want to give it a shot.
The goal was to make it work with every EWMH compliant window manager.
With the default configuration, you'll need wmctrl as a runtime dependency.
On most debian systems you should be able to install it by:
sudo apt-get install wmctrl
If you want to build opensnap from source make sure you have these as well:
sudo apt-get install build-essential libx11-dev libgtk-3-dev
If you want to install opensnap from source first make sure you have git installed. (Or fetch a zip file: https://github.com/lawl/opensnap/archive/master.zip)
Fetch via git:
git clone https://github.com/lawl/opensnap.git
Fetch via zip:
wget https://github.com/lawl/opensnap/archive/master.zip
unzip master.zip
Make sure you have all prerequisits:
sudo apt-get install build-essential libx11-dev libgtk-3-dev wmctrl
And finally build and install it:
cd opensnap*
make
sudo make install
And now start opensnap with
opensnap
or
opensnap --deamon
if you want it to deamonize.
By default opensnap stores its configuration files in /etc/opensnap if you've run make install
.
If you want to customize these, you should copy the global configuration to your user directory.
mkdir -p ~/.config/opensnap
cp /etc/opensnap/* ~/.config/opensnap/
You can now edit the configuration files in ~/.config/opensnap/
. Make sure to restart opensnap for it to see the new configuration directory.
This should tell you all you need to know:
opensnap --help
Copy the sample configs to ~/.config/opensnap/.
As of now opensnap does not support unsnapping (see #4). You can find a workaround here: lawl#4 (comment)
Do note however that this does not perfect unsnapping. I.e. your cursor possition and the window you are dragging might get displaced a bit on unsnapping. But it does work well enough for daily use.