Is anyone using Niri with guix-home and would be willing to share their config? Thanks! #guix
@cwebber I am, you can check my config here, though I don't use the niri-home service, for other gotchas like screen sharing, portals etc and niri config, just share a message in guix irc pinging me its not in a repo yet 
@cwebber note that this is not fully my daily driver yet, but here is what I did: https://git.karp.lol/Follpvosten/system-configuration/src/branch/main/modules/karp/home/niri.scm and then I just symlinked that into .config/niri.
note that I used this person’s channel to allow myself to write kdl in scheme: https://codeberg.org/hako/Rosenthal/src/branch/trunk/modules/rosenthal/utils/file.scm and I haven’t necessarily vetted my dependencies well 😅
their config is here fwiw: https://codeberg.org/hako/Testament/src/branch/trunk/config/dorphine.org#headline-27
I’m still not entirely sure I wanna keep the tty-only login and the somewhat wonky seeming “graphical-system” target that they use, it has some issues on my side.
@follpvosten@karp.lol I wrote about current limitations on graphical session support, so my services and configs are based on the same idea and try to solve the same issue.
> note that I used this person’s channel to allow myself to write kdl in scheme
Thanks for using! I posted about it here 😉
> I’m still not entirely sure I wanna keep the tty-only login
If you have a display manager (e.g. GDM by default in Guix System %desktop-services), you'll be able to select niri in the menu after installing it into the system profile (for example, adding it to the packages field of your operating-system).
Before starting niri on tty-login, I was using noctalia-greeter, you can see how it was set up in that commit. Similar config can be applied to other login managers (e.g. tuigreet) as well.
Stuff prefixed with ros: in my configs are from my personal channel, there's an index to browse sources.
> and the somewhat wonky seeming “graphical-system” target that they use, it has some issues on my side.
I wrote the graphical-session service with the following roles in mind:
- As a target to prevent graphical services from starting in a non-graphical login.
- Import graphical environment variables into Shepherd environment.
- Reduce race conditions by delay the starting of graphical services.
But it won't be possible to avoid race conditions, since importing environment variables requires manual setup and there's possibility to start a graphical service before the import, although I haven't encountered it yet.
Importing env vars is implemented via the set-environment Shepherd action in the service, which is used like the following niri config:
spawn-sh-at-startup "herd set-environment graphical-session XDG_CURRENT_DESKTOP=$XDG_CURRENT_DESKTOP XDG_SESSION_TYPE=$XDG_SESSION_TYPE NIRI_SOCKET=$NIRI_SOCKET"
The snippet in my config does the same thing:
(spawn-sh-at-startup
#$(format #f "herd set-environment graphical-session~{ ~a=$~:*~a~}"
'("XDG_CURRENT_DESKTOP"
"XDG_SESSION_TYPE"
"NIRI_SOCKET")))
set-environment needs to be started by the compositor, since only the compositor knows these environment variables.
#guix
@cwebber@social.coop
@cwebber i used it briefly, but i couldn't get idle detection stuff to work properly. it's supposed to be compatible with swayidle, from what i read, but it would lock or go to sleep in the middle of using it all the time and i couldn't fix it.
if anybody figures that out i would love to try it again
I've been interested in trying Niri for a while since @expede told me how nice it was https://github.com/niri-wm/niri
In the latest Guix release my custom shortcuts broke so I feel like the issue has been forced ;|
It's an extremely good quality piece of software in my opinion. They have a decent (imperfect, but workable) #noai contribution policy, though it is rooted in pragmatism and merit rather than for reasons I would most prefer - but I am not crusading here, I'll take it.
It's particularly easy to configure, no reloading required, and quite well documented.
I was even able to drop local use of tmux in favour of the awesome tabbed column implementation combined with foot running in client/server mode. Not for everyone I'm sure, but works for me.
Not running under guix so I have no guix home config, but if you're interested in a working config I'll make a paste somewhere. LMK and I'll tidy it up a bit.
Have fun!
@cwebber when I was on guix I was using niri too, mostly the same settings from https://codeberg.org/jjba23/sss
The project is archived and the way @jjba23 organized it was a little unorthodox, but I still use niri on my gentoo day-to-day laptop using almost the same settings from that repo. Look under src/sss/niri.scm
sss