{environment, xdg, pkgs, services, ...}: { # Main packages environment.systemPackages = with pkgs; [ # Fonts fontconfig fira-code-nerdfont libertinus kanshi # auto-configure monitors on connect/disconnect river # wm lua # river config luajitPackages.luaposix foot # terminal tofi # launcher (dmenu-like) swaybg # wallpaper waybar # bar wev # detect inputs cronie tmux # for my homemade dropdowns # Screenshots grim slurp dunst # notifications libnotify wl-clipboard # copy/paste wlr-randr # detect monitors wdisplays # arrange monitors jq # parse wlr-randr json output pulsemixer # adjust audio playerctl # control next/previous song glib # for gdbus needed by volumectl ]; # Screen capture/sharing: xdg.portal = { enable = true; xdgOpenUsePortal = true; config = { common = { default = ["wlr"]; }; }; wlr = { enable = true; settings = { screencast = { max_fps = 30; chooser_type = "simple"; chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or"; }; }; }; }; # Force wayland on electron environment.sessionVariables.NIXOS_OZONE_WL = "1"; # Trigger updates to waybar services.cron = { enable = true; systemCronJobs = [ # Time & Date "* * * * * kill -42 $(pidof waybar)" "* * * * * kill -40 $(pidof waybar)" # Battery "* * * * * kill -35 $(pidof waybar)" # Yadm Dotfiles "*/10 * * * * kill -41 $(pidof waybar)" # Emails "*/5 * * * * kill -46 $(pidof waybar)" # Gentoo News "*/30 * * * * kill -45 $(pidof waybar)" ]; }; }