mirror of
https://github.com/vincentbernat/i3wm-configuration.git
synced 2025-06-20 17:15:41 +02:00
84 lines
3.6 KiB
Markdown
84 lines
3.6 KiB
Markdown
# Vincent Bernat's i3 configuration
|
|
|
|
This is my [i3](https://i3wm) 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.
|
|
|
|

|
|
|
|
More details in this [blog post](https://vincent.bernat.ch/en/blog/2021-i3-window-manager).
|
|
|
|
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](https://github.com/vincentbernat/vbeterm).
|
|
|
|
## 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][].
|
|
|
|
[Puppet configuration]: https://github.com/vincentbernat/puppet-workstation/blob/master/local-modules/desktop/manifests/i3.pp
|
|
[home-manager configuration]: https://github.com/vincentbernat/homemanager-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:
|
|
|
|
- Sway does not support
|
|
[`append_layout`](https://github.com/swaywm/sway/issues/1005), but it should
|
|
be possible to get something close (also, I use it mostly on start)
|
|
- Something to replace `xsecurelock` (I want to use my own screen saver), maybe
|
|
[swaylock-plugin](https://github.com/mstoeckl/swaylock-plugin)?
|
|
- Something to replace `polybar`, maybe [Waybar](https://github.com/Alexays/Waybar)?
|
|
- Ability to [mirror outputs](https://github.com/swaywm/sway/issues/1666) (and
|
|
more complex layouts would be nice too).
|
|
|
|
Everything else should be adaptable:
|
|
|
|
- i3 can be replaced by Sway
|
|
- Dunst [supports](https://github.com/dunst-project/dunst/issues/264) Wayland
|
|
- There is a [fork](https://github.com/lbonn/rofi) of Rofi with Wayland support
|
|
- Wallpaper building should be adaptable
|
|
|
|
Also see [this post from Anarcat](https://anarc.at/software/desktop/wayland/).
|
|
|
|
## Interesting links
|
|
|
|
- [/r/unixporn on reddit](https://www.reddit.com/r/unixporn/search?q=i3&restrict_sr=1)
|
|
- [Hacking i3: Automatic Layout](https://aduros.com/blog/hacking-i3-automatic-layout/)
|
|
- [__luccy desktop](https://www.reddit.com/r/unixporn/comments/odlf79/i3gaps_simple_minimal_round/)
|
|
- [SI7Bot desktop](https://github.com/cosmicraccoon/thinky-nature-dots)
|
|
- [Catppucin theme](https://github.com/catppuccin/catppuccin)
|