No description
Find a file
Vincent Bernat 2e86e06461 Revert "firefox: remove browser.tabs.insertAfterCurrent"
This reverts commit c8a1ea4610. We can
keep it. The idea is that if we don't want to be part of a group, there
is a shortcut: Ctrl-Shift-PageUp or Ctrl-Shift-PageDown to move the tab
outside the group.
2025-09-21 10:10:26 +02:00
.github github: add FUNDING.yml 2023-07-03 08:10:06 +02:00
bin xsettingsd: add an inverse correction factor when not a laptop 2025-09-16 08:20:23 +02:00
dotfiles Revert "firefox: remove browser.tabs.insertAfterCurrent" 2025-09-21 10:10:26 +02:00
wallpapers wallpaper: fix sorting criteria 2025-05-07 00:54:49 +02:00
.dir-locals.el bin: use apheleia to format code 2022-04-08 21:56:42 +02:00
.flake8 i3-companion: reblacken at 88 line-length 2021-07-17 09:14:45 +02:00
.gitignore xsettings: remove reference to xsettingsd.local 2020-02-08 16:44:17 +01:00
config i3: when switching workspace, focus tiling instead of last one 2025-06-09 16:13:42 +02:00
LICENSE doc: add some random license 2021-08-08 22:22:00 +02:00
README.md docs: tell what I really need to switch to Wayland 2025-09-10 22:04:51 +02:00
ws-emacs.json Revert "i3: give more space to Emacs in its workspace" 2021-08-20 19:38:34 +02:00

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 as-is by you can pick anything you need in it.

Screenshot

More details in this blog post.

Here some of the things you may be interested in:

  • I use a Python script bin/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 with xsecurelock 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 for both the dimmer (xss-dimmer) and the screen saver (xsecurelock-saver).

  • There is an i3-companion (in bin/) 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 to graphical-session.target. i3 will then invoke i3-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. Packages are basically pulled from Debian unstable but some of them are pulled from Nix. Check my home-manager configuration.

However, I am recompiling some stuff to get more recent versions:

  • polybar (check vbe/master branch)
  • xsecurelock (check vbe/master branch)

The binaries are put in ~/.local/bin.

About Wayland

What's missing for me to migrate to Wayland:

  • Something to replace xsecurelock (I want to use my own screen saver), maybe swaylock-plugin? Also, how to fade the screen before locking? This should be possible with swayidle and two timeouts or by wrapping swaylock into a script running the dimmer, then the lock.
  • Something to replace polybar, maybe Waybar, but it would be nice if there was something like custom/ipc, but this could be emulated with exec and a small long-running process for each widget, exposing an Unix socket.

What would be nice to have, but I can live without it:

  • Ability to mirror outputs (and more complex layouts would be nice too).
  • Sway does not support append_layout, but it should be possible to get something close (also, I use it mostly on start)

Everything else should be adaptable:

  • i3 can be replaced by Sway
  • Dunst supports Wayland
  • There is a fork of Rofi with Wayland support
  • Wallpaper building should be adaptable

Also see this post from Anarcat.