Often when I want to open a new workspace, I look at my bar to see which
workspaces are still free. This does not work sometimes when having
multiple monitors connected, as workspace numbers are unique between all
outputs.
Add a script that handles workspace switching/moving by prepending the
index with the index of the current monitor.
Since I run kitty with --single-instance, xcwd does not work for it.
Replace it with a short script that retrieves the CWD for the focused
window through the remote-control ls command.
This changes the current behaviour slightly, since now only terminals
are used and not any X window (which I rarely used or needed) and that
the working dir of the shell running in kitty will be used and not of
any deeper children. I'm still unsure if I want the latter back, but
will figure this out in the future.
This is an addendum to 0139294831 ("Use kitty instead of st as
terminal").
Starting a new kitty process is quite slow. With --single-instance "new
invocations will instead create a new top-level window in the existing
kitty instance"[^1] to allow "kitty to share a single sprite cache on
the GPU"[^1], so that startup is almost instant.
For this to work best, launch one hidden "daemon" instance at startup so
that the kitty process is always running, even when no OS windows
exists.
[^1]: kitty(1)
Link: https://github.com/kovidgoyal/kitty/issues/330
scrot parses `-sf` as `-s f` and complains about the invalid argument. I
This seem to have come with a newer version as I believe that this
mapping used to work.
Remove the vim modeline that sets the filetype to `i3`, as I do not have
a i3.vim filetype plugin. Now it is recognized as `ft=conf`, providing
at least highlighting of strings.
I am a big supporter of the approach to indent with tabs and align with
spaces. (Read [here][1] f.e.) Thus at some places a simple `s/ {4}/\t/g`
(replace 4 with whatever fits) is not enough and a bit more thought is
needed. Because of that there are still places where I plan to
substitute the whitespace in the future.
This patch contains exclusively whitespace changes. Check for yourself
with `git diff --ignore-all-space`.
[1]: https://dmitryfrank.com/articles/indent_with_tabs_align_with_spaces
Wrap lines at 80 columns where appropriate and I had the energy to think
about how/where to wrap.
There are still lines longer than that, which I plan to wrap in the
future. But that is enough for now.
While installing i3 (not i3-gaps, as not easily available) on an Ubuntu
system with my dotfiles, I had to deactivate the gaps.
I think I prefer this look now, as it gives more screen real estate and
looks cleaner in my opinion.
Also deactivate rounded corners through picom as they only really make
sense with gaps enabled.
Change layout so that instead of rebinding caps_lock, escape and ctrl_r
in a circle, the caps_lock key now just emulates escape. Caps_lock can now be
accessed by pressing both Shifts together.
Because of that xcape is disabled for now too. Not sure if I will keep
it this way.
Caps_lock is now triggered on every shift for a very small time too,
that is why the caps_lock binding is removed from the i3 config.
Move everything that is desirable independent of the WM or shell into
xinitrc.
Move .Xresources and .Xmodmap into .config/X11.
Remove all unneeded GNOME bits from i3 config.
Make compositor launch script portable.
Add locker symlink and launch.sh similar to the compositor.
Divide config into different sections and move all relevant lines into
those.
Use the $TERMINAL variable wherever possible.
Cleanup some stuff and add a couple of comments.
Add vim modeline to indicate filetype.
Set the key repeat rate.
Ditch scratchpad-terminal.sh:
The reason why I created that script was that I liked to have
different bindings for showing and hiding the terminal. At this
point it just brings too much overhead in a dirty way for a feature
I do not really need. mod+space can still be used to toggle focus
and with mod+comma the window is now shown/hidden from/to
scratchpad.
Use a terminal flag to set the window name instead of using escape
sequences at the start of a new shell.
Add blur using the fork from https://github.com/tryone144/compton.
picom seems to be very CPU heavy on my system, so until I figure out how
to fix that I will use this outdated version.
Make the dotfiles a bit more flexible by creating symlinks for stuff
like the wallpaper or the compositor. When switching/exchanging these
components only the symlinks have to be updated.
This fixes the bug that the scratchpad-terminal is not able to change
into a directory with multiple spaces since I forgot to substitute the
spaces globally.