Commit graph

65 commits

Author SHA1 Message Date
ea066eebb5
waybar: Fix event module spacing
Added a new state which should fix the icon spacing issues:

When we have no upcoming events or upcoming events but none today, we
only display the icon and so we do not add any additional spacing.
(This is alt state `event` or `no-event`)

Only if we have an upcoming event today (alt state `event-today`) are we
printing it directly on the status bar and only then should be have
additional spacing. So we have an icon (the same as for event) with the
correct spacing so that whether there is text on the statusbar or not,
we space correctly.
2025-03-10 20:22:01 +01:00
554e13cd36
river: Fix pass-pick invocation
Running pass-pick (or other gpg requiring software) through river was
not correctly accessing the gpg agent since being managed by runit user
service did not point them to the correct gpg agent socket.

This commit fixes it using keychain as auxiliary software to manage a
session-long gpg agent process which is also exported into the turnstile
environment so other runit services can make use of it.
2025-03-10 20:22:00 +01:00
270a6f1e0d
waybar: Remove event module spacing
Removed spacing left over when an event was occuring on the current day.
2025-03-06 21:22:00 +01:00
343c1f0a35
river: Use built-in option to set compose key
So far, we used the external `setxkbmap` tool to map the compose key to
the 'menu' button (AltGr on my keyboard). With this I am able to type
äöü€ß.

Now using the built-in option in riverctl which I just discovered, so we
rely on fewer external programs.

Also setting the keyboard itself to 'us(altgr-intl)' which I _think_ I
had enabled before. If it turns out not, well, can always change back to
us layout with a single line.
2025-03-06 21:22:00 +01:00
2627055e7c
swaybg: Fix single screen wallpaper display 2025-03-06 21:21:58 +01:00
f252c628ec
powermenu: Remove hybrid-suspend
Hybrid suspending is not working for my system currently (definitely
TODO). For the time being, we simply suspend only instead.
2025-03-06 21:21:56 +01:00
c00cbdbade
services: Add swayidle processing as service
swayidle is now also presented as a user service managed by runit on
voidlinux. It comes with the same defaults as before (300 seconds to
lockscreen, 600 seconds to screen dimming and 900 seconds before
suspending).

Additionally the lockscreen script has been updated to correctly tell a
wayland from a non-wayland session without logind being available on the
system, though it still defaults to using loginctl if it finds it.

The service runs as swayidle in the user services directory and can be
confirured using a 'conf' file which would be placed in the 'swayidle'
service directory. Timeouts can be set with `time_to_lockscreen`,
`time_to_screendim` and `time_to_suspend`.
2025-02-25 23:25:30 +01:00
a3f30cf228
services: Add desktop environment programs as user services
Added a runit-managed kanshi, swaybg, waybar, wl-paste and wlsunset
service.
2025-02-25 23:25:27 +01:00
e08f88db9c
services: Move pipewire into user service
Will be managed by runit service manager under voidlinux.
2025-02-25 23:25:27 +01:00
7c0bd5738f
river: Change to runit-managed user service
Switching to runit (and turnstiled, which in turn activates user-local
runit service supervision) we can now have river run supervised by our
service manager quite easily.

We make use of this, but have to take care to export the
river-established wayland variables (DISPLAY, WAYLAND_DISPLAY) back into
the user environment for other processes since river will not be the
one responsible for spawning them anymore.

On finishing the service (i.e. exiting the process), we ensure
that the variables get removed from the environment again so it is not
polluted in the future.

Additionally, we load the (default for void runit) 'turnstile-ready'
service which can define core user services that need to exist before
others on login, and the session-local dbus service which river and
other programs will make use of. It is marked as essential with
turnstile-ready.
2025-02-25 23:25:26 +01:00
1aa94aa866 HACK: river: Autostart pipewire on non-systemd systems
This is a temporary adjustment to start pipewire as a user process when
river starts up, targeting my new voidlinux installation. Ideally, we
want to have runit user services up and running and being responsible
for maintaining a running pipewire instance but until that is set up we
can simply start it with river.
2025-02-24 14:22:36 +01:00
e3742d43ec fonts: Fix for Iosevka on Voidlinux
Prefer regular 'Iosevka' font in most cases, not the highly specific
'Iosevka Nerd Font'. This may break some things back in Archlinux-land
but it is required for iosevka to be correctly displayed in Voidlinux,
and, to be honest, also feels more clean than using such a highly
specialized font for everything.

Additionally, we generally make use of both where possible, defaulting
to the more specific 'Nerd Font' family variant but falling back to
regular old Iosevka.

One exception is 'wezterm' which, though it nicely includes a font
fallback option (and a very configurable one at that), _always_ produces
a warning when the first font in a fallback list is not found -- even
when the specific 'warn_about_missing_glyphs' option is ticked. No clue
why but for now this works well enough for me.
2025-02-24 14:22:36 +01:00
dd62c8a2d0 river: Automatically choose layout engine
Prefers filtile as layouting engine but falls back to rivertile if it
does not find it.
2025-02-23 01:02:57 +01:00
c19dbefb2c
river: Add init reload without program restarts
By passing the 'no-restart' argument as the first parameter of the river init
file, we can prevent program restarting which we do not want to have restarted
every time (e.g. kanshi, wlsunset, waybar, swayidle, etc)

By default these programs will still always be restarted. However, passing the
parameter means that if the program is already running, we do not restart it.
If the program is not yet running it will still be started like normally.

The functionality makes use of the `pidof` program, so on Arch it requires the
'procps-ng' package. This is by default installed as a requirement for the
'base' package group.


Reverted changes from earlier wallpaper switch.
2025-02-14 10:48:01 +01:00
1ab2b3a94f
river: Change to swaybg for stable wallpaper setting
Multi-output wallpaper setting was never particularly stable using swww.

Using swaybg we can directly call on the 'description' of the outputs
like we do in kanshi. This makes the interface way more stable than
hoping that 'DP-3' and or 'DP-5' are discovered first. Thus, we default
to use swaybg and my screens, but if the program is not found on the
system we can still fall back to swww.
2025-02-14 10:48:00 +01:00
1c49e52268
river: Update for current screen setup
HACK Still need to figure out a better way to identify and set displays.
2025-02-07 13:13:47 +01:00
b64116fac7
waybar: Switch tray and battery placement
Battery will always be displayed on the very right of the status bar
now, to easily find the indicator. Also removed the remaining time from
the alternative display which snuck in there accidentally - it can be
seen from the tooltip instead.
2025-01-24 11:31:29 +01:00
6002c49a16
waybar: Make alt formats consistent
Every notification icon (except wifi) has a more detailed alternative
display format which can be toggle with right click. By default only the
icons are displayed.
2025-01-23 16:48:49 +01:00
7f35be07f7
waybar: Declutter status icons
Slightly declutter the status icons: Only display an icon which shows
the rough state until you hover over or activate alternative modes
(rightclick on respective icon) which show more detail.
2025-01-21 11:31:29 +01:00
5dff1db3db
river: Add monocle mapping if running filtile layout
When using filtile layout it also gives the option of using 'monocle'
mode which is similar to fullscreen in that it only shows one window at
a time (which also occupies the full screen, except for the statusbar)
but you can cycle between the windows shown as you would usually between
the different views in a tag. You can imagine the windows 'stacked' on
top of each other and cycling which one is on top or on the bottom.

Toggled with `Mod+Shift+F`, shifting up from fullscreen mode.

TODO: Ideally, it would be accompanied by an indicator in the statusbar
but I have no time to create one currently. Without one, it is sometimes
hard to remember that other windows exist on the tag after a while.
2024-09-16 20:33:17 +02:00
19bafa910e
river: Improve floating mode mappings
Simplify the system of mappings in floating:

- HJKL for moving a floating window around.
- C-HJKL for quickly snapping to screen edges (as before)
- Mod-HJKL for resizing the floating window.
- Mod-Shift-HJKL for changing the tag's setting:
  - HL to change size ratio of main/side pane
  - JK to change amount of windows in main pane
2024-09-16 20:29:55 +02:00
1cc47ac7df
river: Add passhthrough mode to disable river keys
`super+F11` enters passthrough mode (displayed on waybar) which disables
all normal keybinds that river listens to and - surprise - passes them
through to whatever application is running. The same binding exits the
mode.
2024-09-16 20:11:56 +02:00
0d41481763
river: Fix filter rules for new version
Riverwm changed the way filters are applied at some point, this fixes
the applied rules (for floating and client side decoration windows).
2024-09-15 22:06:46 +02:00
d9779ba966
papis: Remove test journal csv 2024-08-07 20:02:13 +02:00
63cc63bb70
river: Add quick emergency clipboard clear shortcut
Use `Mod+Shift+Control + Space` to clear all. Basically is the same
shortcut as *showing* the clipboard, only with control pressed on
additionally.
2024-07-29 22:54:58 +02:00
017668792c
waybar: Improve vpn block icon rendering
This is a change which is very much hardcoded for my setup, but the vpn
block will now give preference to displaying individual VPN types from
top to bottom:

If privateinternetaccess is connected, it will display its icon.
If proton is connected, it will display its icon.
If netbird is connected it will display its icon.
If nothing is connected it will display nothing.

It is still quite a hacky solution and should also be replaced by a
signal-driven system instead of the recurrent polling it does currently
(it only polls once a minute atm, to keep system load/battery drain low
but since it invokes a lot of external commands, e.g. piactl and
netbird, it should really only be invoked on vpn changes).
2024-07-26 10:56:36 +02:00
12d186d871
waybar: Improve events block icon rendering
Using the 'alt' json return field to set the icon and change the icon
within waybar itself instead of doing so manually in the script. This
makes us a little more flexible and puts all the 'what' is rendered that
is specific to waybar into waybar (keeping the 'how' it's rendered in
the style.css).
2024-07-25 22:15:12 +02:00
6905ce3ea7
waybar: Change calendar block whitespace
When there are no new calendar events for the current day we do not
display any whitespace after the icon.
2024-07-25 22:01:50 +02:00
670057d543
river: Fix variable quoting 2024-06-14 22:01:56 +02:00
107a07693e
flavours: Fix zathura colorscheme file naming
In preparation for at some point leaving flavours in favour of tinty
(since flavours is not maintained anymore), started preparing a rough
translation of the config file for the new program. One of the things I
changed (to make more semantic sense) is the zathura colorscheme file
name.
2024-06-13 16:57:34 +02:00
d1ef6584f1
river: Refactor layout engine definition
Since we can dynamically define and spawn layout engines this commit
changes the riverwm config file setup in a way that makes it possible to
change the layout engine with a single variable instead of all
throughout the file (variable extraction).
2024-06-13 16:32:15 +02:00
6e9056d5ca
vimiv: Add basic configuration 2024-06-13 10:21:38 +02:00
d0a2853bf2
flavours: Add fzf styling
Added styling for fzf using the base16 schemes. Currently applies only
on newly opened shell environments but that's good enough for me.
2024-06-13 10:20:40 +02:00
6defdd3f33
kanshi: Fix screen names for new kernel 2024-04-20 08:40:56 +02:00
6c6b01a822
river: Add shortcut to open papis library items
Added 'Mod+Shift+L' as shortcut to open the associated file of a
papis library item. May make more sense in a dedicated river
mode but for now is good enough to get an overview of papis items
and open them if needed. Could also probably use an equivalent
of 'open edit file' and 'open note if exists' but again -
let's see how much I use it first.

Takes a second to open with my library size.
2024-02-24 09:10:37 +01:00
ffededb995
river: Fix wallpaper screen order
Since reorganizing my screens we have to switch the output
order of wallpapers. Would be really useful to be able to
talk to `swww` like kanshi with the full screen ID instead
of just the output number for wallpaper setting.
2024-02-24 09:08:44 +01:00
1d0f47f2e8
flavours: Check for nvim plugin existence in template
Checks that mini.base16 plugin exists before executing its setup,
and checks that lualine exists before executing its setup.
2024-02-15 08:47:50 +01:00
cf153808a2
nvim: Switch to mini base16 plugin
Since we already have the mini library installed in our setup, we don't
need to make use of external base16 plugins. It provides the same exact
functionality, and seems slim and bug-free. Nothing changes for the
user, but we have 1 plugin less to take care of (and it was
mis-behaving in new versions anyway).

Also set lualine to be reloaded on theme switch so it takes on the
colorscheme as well.
2024-02-10 13:27:37 +01:00
e4b560cc7f
flavours: Target new sioyek version
Sioyek features an option to set the background color for normal
operations (`background_color`) and for custom color mode
(`custom_color_mode_empty_background_color`) separately since this
commit:

0c2251b1be

Here, we change flavours to *only* target the custom color mode, leaving
the normal background color as it is.
This will not work yet for the current official sioyek 2.0 release which
is still the release for archlinux as of 2023-10-16, but it will already
work for its git release. Should work for everything as of the next
official sioyek release.
2023-10-16 11:26:31 +02:00
08062027ae
mako: Add flavours templating start and end strings
Added strings which signify to flavours that it should insert
its theme color template in-between. Since the file is not
symlinked but *moved* to the config dir (through being
designated as 'template' in dotter), any future changes
should not reflect back into the repository.
2023-10-03 15:04:11 +02:00
ec74d0ddff
xdg: Change default video directory location
Changed from ~/videos to ~/media/videos to declutter
home somewhat.
2023-10-02 19:08:40 +02:00
bad45b937d
river: Do not always restart kanshi with river
Kanshi used to be restarted every time river would be reloaded.
This is not desired however, as restarting river would also
kill the kanshi daemon, and subsequently reload it, reseting
any custom kanshi output layouts or options set.

With this commit kanshi only gets started if it is not already
running through river (i.e. on first boot most of the time).
2023-10-02 19:07:58 +02:00
e98d527f5d
river: Add gap toggling key bind
Use F10 to enable gaps (default) or Shift+F10 to disable gaps.
TODO Would love to make it a toggle on pressing F10 alone, but
I am not sure we can get the current gap width from the
layout in any way.
2023-10-02 19:05:58 +02:00
6bca05f212
river: Make volume and brightness keys repeatable
Will rapidly increase/decrease brightness and volume
when holding down the corresponding keys.
2023-10-02 19:01:31 +02:00
af410c0b77
writing: Add sioyek configuration 2023-10-02 13:55:46 +02:00
580f8e1452
kanshi: Add profiles for triple-/single-display
Added a profile for having all my screens display something when docked
(when usually the internal screen is turned off)
as well as to *only* display the internal screen even when connected
to the dock (should the need ever arise).
2023-09-16 11:14:49 +02:00
b58bd2767d
qutebrowser: Make recently downloaded executable
Moved the qutebrowser userscript to open recently downloaded files
to be accessible as a normal shell script as well
(`recently-downloaded`).

Mapped this to Super+Shift+D in riverwm to be easily able to open
the most recent downloads from anywhere.

Double the default lines shown to 20.
2023-08-08 11:38:25 +02:00
c8eb9fdb4c
sh: Fix quoting 2023-07-23 19:24:42 +02:00
f33b4c9c37
nvim: Restructure lua dir
Moved plugins into individual component module files which are
automatically required by lazy.nvim. Should make everything a tiny bit
more modular, or at least prepare the way for true modularity if I ever
have the time on my hands to ensure everything works with missing
modules.

Moved core settings into their own directory (`core`), and created a
`personal` folder which contains functions/plugins I wrote that do not
necessarily have to be their own imported plugin yet.

Finally, extended the utility functions a little, so we can detect if a
plugin exists and change e.g. key maps based on that (once again,
extending modularity a little more). Some simple attempts have been made
at that in the `mappings.lua` file, though it is nowhere near extensive
yet - most keymaps are still set regardless of plugin availability.

However, with this slimmer base to work off of, I feel more confident in
changing future things about this setup a little more ad-hoc without
having as many ripple repercussions as before.
2023-06-17 21:54:22 +02:00
a43e2cc4bd
river: Switch call to terminal to be more general
Switched the calls for the term variable mappings (opening
term, floating term, calculator, and so on) to make use of
the pretty much standard 'terminal -e' invocation to start
the terminal and execute something within it.

This newly works for wezterm since any release after
2022-12-26, which are now also on the Arch repositories
and will make the river init a tiny bit more portable
whenever wanting to switch to a different terminal.
2023-06-07 10:32:26 +02:00