{ config, pkgs, ... }: let wallpaper = ../../wallpapers/miku.png; in { home.sessionVariables = { XDG_SESSION_TYPE = "wayland"; XDG_CURRENT_DESKTOP = "niri"; XDG_SESSION_DESKTOP = "niri"; QT_QPA_PLATFORM = "wayland;xcb"; QT_AUTO_SCREEN_SCALE_FACTOR = "1"; QT_ENABLE_HIGHDPI_SCALING = "1"; QT_SCALE_FACTOR_ROUNDING_POLICY = "RoundPreferFloor"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; XDG_MENU_PREFIX = "plasma-"; }; home.packages = with pkgs; [ grim slurp satty wl-clipboard ]; home.file.".local/bin/screenshot" = { executable = true; text = '' #!/usr/bin/env bash MODE="''${1:-region}" SAVE_DIR="$HOME/Images/screenshots" mkdir -p "$SAVE_DIR" FILENAME="$SAVE_DIR/$(date '+%Y%m%d-%H%M%S').png" case "$MODE" in region) grim -g "$(slurp)" -t ppm - | satty --filename - --output-filename "$FILENAME" --copy-command wl-copy --early-exit ;; screen) grim -t ppm - | satty --filename - --output-filename "$FILENAME" --copy-command wl-copy --early-exit ;; monitor) grim -o "$(niri msg focused-output | grep 'Output' | awk '{print $2}')" -t ppm - \ | satty --filename - --output-filename "$FILENAME" --copy-command wl-copy --early-exit ;; esac ''; }; xdg.configFile."quickshell".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/repos/nixos/quickshell"; xdg.configFile."niri/config.kdl".text = '' // Modificadores: Mod = Super (tecla Windows) input { keyboard { xkb { layout "us,pt" variant ",br" } } touchpad { tap natural-scroll } } layout { gaps 6 border { width 2 active-color "#fabd2f" inactive-color "#504945" } focus-ring { width 2 active-color "#fabd2f" inactive-color "transparent" } } prefer-no-csd spawn-at-startup "swww-daemon" spawn-at-startup "swww" "img" "${wallpaper}" "--transition-type" "none" spawn-at-startup "quickshell" screenshot-path "~/Imagens/screenshots/%Y-%m-%d %H-%M-%S.png" binds { // Aplicativos Mod+Return { spawn "kitty"; } Mod+D { spawn "fuzzel"; } Mod+Q { close-window; } // Foco Mod+Left { focus-column-left; } Mod+Right { focus-column-right; } Mod+Up { focus-window-up; } Mod+Down { focus-window-down; } // Mover janelas Mod+Shift+Left { move-column-left; } Mod+Shift+Right { move-column-right; } Mod+Shift+Up { move-window-up; } Mod+Shift+Down { move-window-down; } // Workspaces Mod+1 { focus-workspace 1; } Mod+2 { focus-workspace 2; } Mod+3 { focus-workspace 3; } Mod+4 { focus-workspace 4; } Mod+5 { focus-workspace 5; } Mod+Shift+1 { move-window-to-workspace 1; } Mod+Shift+2 { move-window-to-workspace 2; } Mod+Shift+3 { move-window-to-workspace 3; } Mod+Shift+4 { move-window-to-workspace 4; } Mod+Shift+5 { move-window-to-workspace 5; } // Sistema Mod+Shift+E { quit; } Mod+L { spawn "swaylock" "-i" "${wallpaper}" "--scaling" "fill"; } // Volume XF86AudioRaiseVolume { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%+"; } XF86AudioLowerVolume { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%-"; } XF86AudioMute { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } // Zen mode (toggle quickshell bar) Mod+Z { spawn "quickshell" "ipc" "call" "zen" "toggle"; } // Input layout Mod+Space { switch-layout "next"; } // Screenshot Mod+Shift+S { spawn "bash" "-c" "$HOME/.local/bin/screenshot region"; } Mod+Shift+Alt+S { spawn "bash" "-c" "$HOME/.local/bin/screenshot screen"; } Mod+Shift+Ctrl+S { spawn "bash" "-c" "$HOME/.local/bin/screenshot monitor"; } } ''; }