Otherwise, we may miss the shortcut input. With -no-lazy-grab, rofi grabs the keyboard early and wait for half a second before giving up. Without, it will try for 0 second. So, if i3 still has the grab, it will try again every millisecond for 5 seconds. However, this needs to get scheduled after everything else, so in practice, this can take some time. I get better results with -no-lazy-grab. Also, we could use --release from i3. In this case, we are guaranteed that rofi can grab the keyboard during the first try. But, after trying a bit, I think this is still better with -no-lazy-grab: the shell script needs to be executed, rofi needs to be executed. It's better to do that while the user did not depress the key yet. |
||
---|---|---|
bin | ||
dotfiles | ||
.flake8 | ||
.gitignore | ||
config | ||
README.md | ||
ws-emacs.json |
Vincent Bernat's i3 configuration
This is my i3 configuration. It does not exactly feature the same keybindings as the default configuration. I don't recommend using it by you can pick anything you need in it.
Here some of the things you may be interested in:
-
I use a Python script
bin/build-wallpaper
to build the wallpaper to be displayed. There is a random selection and it works with multihead setup. It seems that classic tools are now able to change the wallpaper per screen and therefore, the script may seem a bit useless but I keep it. -
I am using
xss-lock
withi3lock
as a screensaver. It relies on standard X screensaver handling (and therefore is easy for application to disable) and also supports systemd inhibitors. Nothing fancy but I reuse the wallpaper built above. A notification is sent 10 seconds before starting. -
There is an
i3-companion
(inbin/
) which I use to implement whatever does not match what I want in i3. I prefer to not have many Python binaries running. -
There is a Quake console included.
-
Many stuff is handled by systemd. The session is still expected to be handled by Xsession but we invoke a custom
xsession.target
which binds tographical-session.target
. i3 will then invokei3-session.target
for stuff needing i3 to run.
Also, I am using my custom terminal (vbeterm
). You can also find the
sources on GitHub.
Requirements
Required Debian packages to make everything work can be found in my Puppet configuration.
However, I am recompiling some stuff to get more recent versions:
dunst
(checkvbe/master
branch)polybar
(git HEAD)rofi
(1.6.1)