{ config, pkgs, ... }: { imports = [ ./gtk.nix ./dunst.nix ]; home.pointerCursor = { enable = true; package = pkgs.vanilla-dmz; name = "Vanilla-DMZ-AA"; size = 16; }; home.file.".config/niri/config.kdl".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dotfiles/home/gui/conf/niri.kdl"; services.screen-locker.enable = false; services.swayidle = { enable = true; timeouts = [ { timeout = 300; command = "${pkgs.swaylock}/bin/swaylock -c 000000"; } { timeout = 300; command = "${pkgs.niri}/bin/niri-msg 'output * --dpms off'"; resumeCommand = "${pkgs.niri}/bin/niri-msg 'output * --dpms on'"; } ]; events = [ { event = "before-sleep"; command = "${pkgs.swaylock}/bin/swaylock -c 000000"; } ]; }; programs.waybar = { enable = true; systemd.enable = true; settings = { top = { start_hidden = true; on-sigusr1 = "show"; on-sigusr2 = "hide"; layer = "top"; exclusive = false; passthrough = false; gtk-layer-shell = true; position = "top"; margin = "30 30 0 30"; height = 48; modules-left = [ "tray" ]; modules-right = [ "battery" "pulseaudio" "backlight" "clock" ]; "tray" = { icon-size = 32; spacing = 5; }; "battery" = { format = "🔋 {capacity}%"; }; "pulseaudio" = { format = "🔈 {volume}%"; format-muted = "🔇 {volume}%"; on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle"; }; "backlight" = { format = "💡 {percent}%"; }; "clock" = { format = "{:%Y-%m-%d %H:%M}"; tooltip-format = "{calendar}"; calendar = { mode = "year"; mode-mon-col = 3; weeks-pos = "left"; }; }; }; }; }; home.file.".config/waybar/style.css".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dotfiles/home/gui/conf/waybar.css"; home.packages = with pkgs; [ wdisplays wayvnc copyq (pkgs.writeShellScriptBin "niri-event-handler-waybar-toggle" '' #!/bin/sh ${pkgs.niri}/bin/niri msg --json event-stream | while read -r event; do event_type=$(echo "$event" | ${pkgs.jq}/bin/jq -r 'keys[0]') if [[ "$event_type" == "OverviewOpenedOrClosed" ]]; then is_open=$(echo "$event" | ${pkgs.jq}/bin/jq -r '.OverviewOpenedOrClosed.is_open') case "$is_open" in "true") pkill -SIGUSR1 waybar ;; "false") pkill -SIGUSR2 waybar ;; esac fi done '') ]; }