From: Andre Ramnitz Date: Tue, 5 Nov 2024 22:07:39 +0000 (+0100) Subject: niri: update config WIP X-Git-Url: https://git.ramnitz.eu/?a=commitdiff_plain;h=c8c6b576c29d5d6e737bbf15b9a014b3f30e2982;p=dotfiles.git niri: update config WIP --- diff --git a/dot-config/niri/config.kdl b/dot-config/niri/config.kdl index aa99c113..d9e4e5cf 100644 --- a/dot-config/niri/config.kdl +++ b/dot-config/niri/config.kdl @@ -29,7 +29,7 @@ input { touchpad { tap // dwt - natural-scroll + // natural-scroll // accel-speed 0.2 // accel-profile "flat" // tap-button-map "left-middle-right" @@ -45,7 +45,7 @@ input { // Set the name of the output (see below) which the tablet will map to. // If this is unset or the output doesn't exist, the tablet maps to one of the // existing outputs. - map-to-output "eDP-3" + // map-to-output "eDP-3" } // By default, niri will take over the power button to make it sleep @@ -59,7 +59,7 @@ input { // by running `niri msg outputs` while inside a niri instance. // The built-in laptop monitor is usually called "eDP-1". // Remember to uncommend the node by removing "/-"! -output "DP-1" { +output "DP-2" { // Uncomment this line to disable this output. // off @@ -110,7 +110,7 @@ layout { // If you enable the border, you probably want to disable the focus ring. //off - width 1 + width 2 active-color 255 200 127 255 //active-color 127 200 255 255 inactive-color 90 90 90 255 @@ -163,13 +163,13 @@ layout { // Note that running niri as a session supports xdg-desktop-autostart, // which may be more convenient to use. // spawn-at-startup "alacritty" "-e" "fish" -spawn-at-startup "~/.config/niri/startup.sh" -spawn-at-startup "/usr/bin/foot -s" +spawn-at-startup "sh" "-c" "~/.config/niri/startup.sh" +spawn-at-startup "foot" "-s" cursor { // Change the theme and size of the cursor as well as set the // `XCURSOR_THEME` and `XCURSOR_SIZE` env variables. - xcursor-theme "breeze_cursors" + xcursor-theme "Bibata-Original-Amber" xcursor-size 32 } @@ -181,7 +181,7 @@ prefer-no-csd // You can change the path where screenshots are saved. // A ~ at the front will be expanded to the home directory. // The path is formatted with strftime(3) to give you the screenshot date and time. -screenshot-path "~/Bilder/Screenshots//scrot niri %Y-%m-%d %H-%M-%S.png" +screenshot-path "~/Bilder/Screenshots/scrot niri %Y-%m-%d %H-%M-%S.png" // You can also set this to null to disable saving screenshots to disk. // screenshot-path null @@ -205,18 +205,30 @@ binds { Mod+Shift+Slash { show-hotkey-overlay; } // Suggested binds for running programs: terminal, app launcher, screen locker. - Mod+Return { spawn "foot"; } - Mod+R { spawn "fuzzel"; } - Ctrl+Alt+L { spawn "swaylock" "-i" "/home/andy/Bilder/Wallpapers/deep-blue-sea-5120x1440.jpg"; } + Mod+Return { spawn "footclient"; } + Mod+Shift+Return { spawn "footclient" "-w" "1280x800" "-a" "popup"; } + Mod+Alt+Ctrl+Return { spawn "foot"; } + Mod+D { spawn "dolphin"; } + Mod+E { spawn "footclient -a lf lfrun"; } + Mod+Ctrl+Alt+I { spawn "keepassxc"; } + Mod+grave { spawn "~/.config/hypr/scripts/RofiEmoji.sh"; } + // Mod+Shift+grave { spawn "cliphist" "list" "|" "fuzzel" "--config=/home/andy/.config/fuzzel/fuzzel-centered.ini"; } + Mod+R { spawn "fuzzel" "--config=/home/andy/.config/fuzzel/fuzzel-centered.ini"; } + Super+Ctrl+Alt+L { spawn "swaylock" "-i" "/home/andy/Bilder/Wallpapers/deep-blue-sea-5120x1440.jpg"; } // You can also use a shell: // Mod+T { spawn "bash" "-c" "notify-send hello && exec foot"; } // Example volume keys mappings for PipeWire & WirePlumber. - XF86AudioRaiseVolume { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; } - XF86AudioLowerVolume { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; } + XF86AudioRaiseVolume { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%+"; } + XF86AudioLowerVolume { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%-"; } + XF86AudioMute { spawn "~/.config/hypr/scripts/muteorunmute.sh"; } + XF86AudioPlay { spawn "playerctl play"; } + XF86AudioNext { spawn "playerctl next"; } + XF86AudioPrev { spawn "playerctl previous"; } + XF86AudioStop { spawn "playerctl stop"; } - Mod+Q { close-window; } + Mod+Shift+Q { close-window; } Mod+Left { focus-column-left; } Mod+Down { focus-window-down; } @@ -227,44 +239,44 @@ binds { Mod+K { focus-window-up; } Mod+L { focus-column-right; } - Mod+Ctrl+Left { move-column-left; } - Mod+Ctrl+Down { move-window-down; } - Mod+Ctrl+Up { move-window-up; } - Mod+Ctrl+Right { move-column-right; } - Mod+Ctrl+H { move-column-left; } - Mod+Ctrl+J { move-window-down; } - Mod+Ctrl+K { move-window-up; } - Mod+Ctrl+L { move-column-right; } + Mod+Shift+Left { move-column-left; } + Mod+Shift+Down { move-window-down; } + Mod+Shift+Up { move-window-up; } + Mod+Shift+Right { move-column-right; } + Mod+Shift+H { move-column-left; } + Mod+Shift+J { move-window-down; } + Mod+Shift+K { move-window-up; } + Mod+Shift+L { move-column-right; } // Alternative commands that move across workspaces when reaching // the first or last window in a column. // Mod+J { focus-window-or-workspace-down; } // Mod+K { focus-window-or-workspace-up; } - // Mod+Ctrl+J { move-window-down-or-to-workspace-down; } - // Mod+Ctrl+K { move-window-up-or-to-workspace-up; } + // Mod+Shift+J { move-window-down-or-to-workspace-down; } + // Mod+Shift+K { move-window-up-or-to-workspace-up; } Mod+Home { focus-column-first; } Mod+End { focus-column-last; } - Mod+Ctrl+Home { move-column-to-first; } - Mod+Ctrl+End { move-column-to-last; } - - Mod+Shift+Left { focus-monitor-left; } - Mod+Shift+Down { focus-monitor-down; } - Mod+Shift+Up { focus-monitor-up; } - Mod+Shift+Right { focus-monitor-right; } - Mod+Shift+H { focus-monitor-left; } - Mod+Shift+J { focus-monitor-down; } - Mod+Shift+K { focus-monitor-up; } - Mod+Shift+L { focus-monitor-right; } - - Mod+Shift+Ctrl+Left { move-column-to-monitor-left; } - Mod+Shift+Ctrl+Down { move-column-to-monitor-down; } - Mod+Shift+Ctrl+Up { move-column-to-monitor-up; } - Mod+Shift+Ctrl+Right { move-column-to-monitor-right; } - Mod+Shift+Ctrl+H { move-column-to-monitor-left; } - Mod+Shift+Ctrl+J { move-column-to-monitor-down; } - Mod+Shift+Ctrl+K { move-column-to-monitor-up; } - Mod+Shift+Ctrl+L { move-column-to-monitor-right; } + Mod+Shift+Home { move-column-to-first; } + Mod+Shift+End { move-column-to-last; } + + // Mod+Alt+Left { focus-monitor-left; } + // Mod+Alt+Down { focus-monitor-down; } + // Mod+Alt+Up { focus-monitor-up; } + // Mod+Alt+Right { focus-monitor-right; } + // Mod+Alt+H { focus-monitor-left; } + // Mod+Alt+J { focus-monitor-down; } + // Mod+Alt+K { focus-monitor-up; } + // Mod+Alt+L { focus-monitor-right; } + + // Mod+Shift+Ctrl+Left { move-column-to-monitor-left; } + // Mod+Shift+Ctrl+Down { move-column-to-monitor-down; } + // Mod+Shift+Ctrl+Up { move-column-to-monitor-up; } + // Mod+Shift+Ctrl+Right { move-column-to-monitor-right; } + // Mod+Shift+Ctrl+H { move-column-to-monitor-left; } + // Mod+Shift+Ctrl+J { move-column-to-monitor-down; } + // Mod+Shift+Ctrl+K { move-column-to-monitor-up; } + // Mod+Shift+Ctrl+L { move-column-to-monitor-right; } // Alternatively, there are commands to move just a single window: // Mod+Shift+Ctrl+Left { move-window-to-monitor-left; } @@ -272,21 +284,21 @@ binds { Mod+Page_Down { focus-workspace-down; } Mod+Page_Up { focus-workspace-up; } - Mod+U { focus-workspace-down; } - Mod+I { focus-workspace-up; } + // Mod+U { focus-workspace-down; } + // Mod+I { focus-workspace-up; } Mod+Ctrl+Page_Down { move-column-to-workspace-down; } Mod+Ctrl+Page_Up { move-column-to-workspace-up; } - Mod+Ctrl+U { move-column-to-workspace-down; } - Mod+Ctrl+I { move-column-to-workspace-up; } + // Mod+Ctrl+U { move-column-to-workspace-down; } + // Mod+Ctrl+I { move-column-to-workspace-up; } // Alternatively, there are commands to move just a single window: // Mod+Ctrl+Page_Down { move-window-to-workspace-down; } // ... - Mod+Shift+Page_Down { move-workspace-down; } - Mod+Shift+Page_Up { move-workspace-up; } - Mod+Shift+U { move-workspace-down; } - Mod+Shift+I { move-workspace-up; } + // Mod+Shift+Page_Down { move-workspace-down; } + // Mod+Shift+Page_Up { move-workspace-up; } + // Mod+Shift+U { move-workspace-down; } + // Mod+Shift+I { move-workspace-up; } Mod+1 { focus-workspace 1; } Mod+2 { focus-workspace 2; } @@ -297,15 +309,15 @@ binds { Mod+7 { focus-workspace 7; } Mod+8 { focus-workspace 8; } Mod+9 { focus-workspace 9; } - Mod+Ctrl+1 { move-column-to-workspace 1; } - Mod+Ctrl+2 { move-column-to-workspace 2; } - Mod+Ctrl+3 { move-column-to-workspace 3; } - Mod+Ctrl+4 { move-column-to-workspace 4; } - Mod+Ctrl+5 { move-column-to-workspace 5; } - Mod+Ctrl+6 { move-column-to-workspace 6; } - Mod+Ctrl+7 { move-column-to-workspace 7; } - Mod+Ctrl+8 { move-column-to-workspace 8; } - Mod+Ctrl+9 { move-column-to-workspace 9; } + Mod+Shift+1 { move-column-to-workspace 1; } + Mod+Shift+2 { move-column-to-workspace 2; } + Mod+Shift+3 { move-column-to-workspace 3; } + Mod+Shift+4 { move-column-to-workspace 4; } + Mod+Shift+5 { move-column-to-workspace 5; } + Mod+Shift+6 { move-column-to-workspace 6; } + Mod+Shift+7 { move-column-to-workspace 7; } + Mod+Shift+8 { move-column-to-workspace 8; } + Mod+Shift+9 { move-column-to-workspace 9; } // Alternatively, there are commands to move just a single window: // Mod+Ctrl+1 { move-window-to-workspace 1; } @@ -327,11 +339,11 @@ binds { // Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0, // set-column-width "100" will make the column occupy 200 physical screen pixels. Mod+Minus { set-column-width "-10%"; } - Mod+Equal { set-column-width "+10%"; } + Mod+Plus { set-column-width "+10%"; } // Finer height adjustments when in column with other windows. Mod+Shift+Minus { set-window-height "-10%"; } - Mod+Shift+Equal { set-window-height "+10%"; } + Mod+Shift+Plus { set-window-height "+10%"; } // Actions to switch layouts. // Note: if you uncomment these, make sure you do NOT have @@ -345,10 +357,10 @@ binds { Ctrl+Print { screenshot-screen; } Alt+Print { screenshot-window; } - Mod+Shift+E { quit; } - Mod+Shift+P { power-off-monitors; } + Mod+Alt+Ctrl+M { quit; } + Mod+Alt+Ctrl+P { power-off-monitors; } - Mod+Shift+Ctrl+T { toggle-debug-tint; } + Mod+Alt+Ctrl+T { toggle-debug-tint; } } // Settings for debugging. Not meant for normal use. diff --git a/dot-config/niri/startup.sh b/dot-config/niri/startup.sh index 761d1288..c1ab361f 100755 --- a/dot-config/niri/startup.sh +++ b/dot-config/niri/startup.sh @@ -1,12 +1,28 @@ #!/usr/bin/env bash logger '============================' -logger 'HYPRLAND MAIN STARTUP BEGIN' +logger 'NIRI MAIN STARTUP BEGIN' + +# envs +AMD_VULKAN_ICD=RADV +XDG_CURRENT_DESKTOP=NIRI +XDG_SESSION_DESKTOP=NIRI +XDG_SESSION_TYPE=WAYLAND +QT_QPA_PLATFORM="WAYLAND;XCB" +QT_QPA_PLATFORMTHEME=KDE +QT_WAYLAND_DISABLE_WINDOWDECORATION=TRUE +GDK_BACKEND="WAYLAND,X11" +GTK_USE_PORTAL=1 +MOZ_ENABLE_WAYLAND=TRUE +SDL_VIDEODRIVER=WAYLAND + # shellcheck disable=SC2155 # shellcheck disable=SC2046 test ! -d "$XDG_RUNTIME_DIR" && export XDG_RUNTIME_DIR=$(mktemp -d /tmp/$(id -u)-runtime-dir.XXX) && logger 'xdg-runtime dir set NOW' test ! "$DBUS_SESSION_BUS_ADDRESS" && dbus-daemon --session --address=unix:path="$XDG_RUNTIME_DIR"/bus && logger 'dbus session daemon started' -dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENCT_DESKTOP +dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + +export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$HOME/go/bin:$HOME/Applications:$PATH" #------------------------------------------------------ xdg-desktop-portal killall -e xdg-desktop-portal-hyprland @@ -15,11 +31,12 @@ killall -e xdg-desktop-portal-gtk killall -e xdg-desktop-portal-gnome killall -e xdg-desktop-portal-wlr killall xdg-desktop-portal -logger 'killed all xdg-desktop' +logger 'all xdg-desktop killed ' -# sleep 1 && test -f /usr/libexec/xdg-desktop-portal-kde && sleep 1 && /usr/libexec/xdg-desktop-portal-kde & -sleep 1 && test -f /usr/libexec/xdg-desktop-portal-hyprland && sleep 1 && /usr/libexec/xdg-desktop-portal-hyprland & -sleep 1 && test -f /usr/libexec/xdg-desktop-portal && sleep 1 && /usr/libexec/xdg-desktop-portal & +sleep 1 +test -f /usr/libexec/xdg-desktop-portal-kde && sleep 1 && /usr/libexec/xdg-desktop-portal-kde & +test -f /usr/libexec/xdg-desktop-portal && /usr/libexec/xdg-desktop-portal & +echo "xdg desktop portal started" #------------------------------------------------------ polkit-kde if [[ ! $(pidof /usr/libexec/polkit-kde-authentication-agent-1) ]]; then @@ -51,10 +68,10 @@ done ! pidof mpd-mpris && mpd-mpris > /dev/null 2>&1 & ! pidof waybar && waybar > /dev/null 2>&1 & -logger 'waybar started' until [[ $(pidof waybar) ]]; do - sleep 0.5 + sleep 1 + logger "waiting for waybar to settle..." done corectrl --minimize-systray & openrgb -p default --startminimized & @@ -63,15 +80,15 @@ openrgb -p default --startminimized & ! pidof kwalletmanager5 && /usr/libexec/pam_kwallet_init & ! pidof swww-daemon && /usr/bin/swww-daemon > /dev/null 2>&1 & -sleep 0.5 && /usr/bin/swww img ~/Bilder/Wallpapers/default.jpg +sleep 0.5 && ~/.local/bin/rndwallpaper swww -pkill -f 'python /home/andy/.config/hypr/scripts/gammarelay-auto-temp.py' +pkill -f '/usr/lib/python-exec/python3.12/python /home/andy/.config/hypr/scripts/gammarelay-auto-temp.py' sleep 1 && "/home/andy/.config/hypr/scripts/gammarelay-auto-temp.py" > /dev/null 2>&1 & pidof wl-paste && killall wl-paste wl-paste --type text --watch cliphist store & wl-paste --type image --watch cliphist store & -logger 'HYPRLAND MAIN STARTUP END' +logger 'NIRI MAIN STARTUP END' logger '============================'