From b7ef29a8886a57aadb787807a7c6cf74c1f0ed3a Mon Sep 17 00:00:00 2001 From: anand Date: Wed, 17 Dec 2025 15:57:55 +0530 Subject: Nixos --- niri/config.kdl | 276 ++++++++++++++++++++++++++++++++++++++++++++++ niri/screenshotwayland.sh | 12 ++ 2 files changed, 288 insertions(+) create mode 100755 niri/config.kdl create mode 100755 niri/screenshotwayland.sh (limited to 'niri') diff --git a/niri/config.kdl b/niri/config.kdl new file mode 100755 index 0000000..bca951b --- /dev/null +++ b/niri/config.kdl @@ -0,0 +1,276 @@ +// This config is in the KDL format: https://kdl.dev +// "/-" comments out the following node. +input { + keyboard { + xkb { + layout "in(eng)" + // options "caps:swapescape" + } + // numlock + } + + touchpad { + // off + tap + dwt + dwtp + drag true + drag-lock + natural-scroll + accel-speed 0.0 + accel-profile "flat" + scroll-method "two-finger" + } +} + +output "eDP-1" { + mode "1366x768@60.138" + scale 1 + transform "normal" + position x=1280 y=0 +} + +layout { + gaps 4 + tab-indicator { + gap 8 + length total-proportion=1.0 + position "left" + place-within-column + } + + center-focused-column "on-overflow" // "never" + + preset-column-widths { + proportion 0.5 + proportion 0.8 + } + + default-column-width { proportion 0.8; } + + focus-ring { + // off + width 3 + active-color "#7fc8ff" + inactive-color "#505050" + } + + border { + off + + width 4 + active-color "#ffc87f" + inactive-color "#505050" + + urgent-color "#9b0000" + } +} +spawn-at-startup "niriswitcher" +// spawn-at-startup "foot --server" +spawn-at-startup "waybar" +spawn-at-startup "xwayland-satellite &" +spawn-at-startup "swww-daemon" +spawn-at-startup "swww restore" +spawn-at-startup "xrdb .Xresources" +spawn-at-startup "nm-applet" +spawn-at-startup "hypridle" +spawn-at-startup "copyq" +spawn-at-startup "zapzap" +spawn-at-startup "mpd" +spawn-at-startup "systemctl --user start hyprpolkitagent" + +prefer-no-csd + +screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" + +window-rule { + match app-id=r#"^org\.wezfurlong\.wezterm$"# + default-column-width {} +} + +window-rule { + match app-id=r#"firefox$"# title="^Picture-in-Picture$" + open-floating true +} + +window-rule { + match app-id=r#"^com\.github\.hluk\.copyq\.desktop$"# + open-floating true +} + +window-rule { + match app-id=r#"^org\.keepassxc\.KeePassXC$"# + match app-id=r#"^org\.gnome\.World\.Secrets$"# + + block-out-from "screen-capture" +} + +window-rule { + geometry-corner-radius 5 + clip-to-geometry true +} + +hotkey-overlay { + skip-at-startup +} + +binds { + Mod+Shift+Slash { show-hotkey-overlay; } + + Mod+Return hotkey-overlay-title="Open a Terminal: wezterm" { spawn "wezterm"; } + Mod+R hotkey-overlay-title="Run an Application: rofi" { spawn "bash" "-c" "rofi -show drun"; } + Mod+B hotkey-overlay-title="Browser" { spawn "~/.nix-profile/bin/nixGL" "qutebrowser"; } + // Mod+B hotkey-overlay-title="Browser" { spawn "qutebrowser"; } + Mod+E hotkey-overlay-title="File Explorer" { spawn "thunar"; } + Mod+Shift+Period hotkey-overlay-title="Emoji" { spawn "bash" "-c" "rofi -show emoji"; } + Super+Alt+L hotkey-overlay-title="Power menu" { spawn "bash" "-c" "/home/anand/.local/bin/rofi-power-menu.sh"; } + Alt+Tab hotkey-overlay-title="Niriswitcher" { spawn "niriswitcherctl" "show" "--window"; } + Mod+P hotkey-overlay-title="Passwords" { spawn "passmenu"; } + + XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05+"; } + XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05-"; } + XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } + XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; } + XF86MonBrightnessDown allow-when-locked=true { spawn "brillo" "-U" "5"; } + XF86MonBrightnessUP allow-when-locked=true { spawn "brillo" "-A" "5"; } + + Mod+O repeat=false { toggle-overview; } + + Mod+Q { close-window; } + + Mod+Left { focus-column-left; } + Mod+Down { focus-window-down; } + Mod+Up { focus-window-up; } + Mod+Right { focus-column-right; } + Mod+H { focus-column-left; } + // Mod+J { focus-window-down; } + // Mod+K { focus-window-up; } + Mod+L { focus-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+Ctrl+J { move-window-down; } + // Mod+Ctrl+K { move-window-up; } + Mod+Shift+L { move-column-right; } + + Mod+J { focus-window-or-workspace-down; } + Mod+K { focus-window-or-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+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+Page_Down { focus-workspace-down; } + Mod+Page_Up { 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+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+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } + Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } + Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } + Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } + + Mod+WheelScrollRight { focus-column-right; } + Mod+WheelScrollLeft { focus-column-left; } + Mod+Ctrl+WheelScrollRight { move-column-right; } + Mod+Ctrl+WheelScrollLeft { move-column-left; } + + Mod+Shift+WheelScrollDown { focus-column-right; } + Mod+Shift+WheelScrollUp { focus-column-left; } + Mod+Ctrl+Shift+WheelScrollDown { move-column-right; } + Mod+Ctrl+Shift+WheelScrollUp { move-column-left; } + + 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+6 { focus-workspace 6; } + Mod+7 { focus-workspace 7; } + Mod+8 { focus-workspace 8; } + Mod+9 { focus-workspace 9; } + Mod+0 { focus-workspace 10; } + 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+Ctrl+0 { move-column-to-workspace 10; } + + Mod+BracketLeft { consume-or-expel-window-left; } + Mod+BracketRight { consume-or-expel-window-right; } + + Mod+Comma { consume-window-into-column; } + Mod+Period { expel-window-from-column; } + + Mod+D { switch-preset-column-width; } + Mod+Shift+R { switch-preset-window-height; } + Mod+Ctrl+R { reset-window-height; } + Mod+F { maximize-column; } + Mod+Shift+F { fullscreen-window; } + + Mod+Ctrl+F { expand-column-to-available-width; } + + Mod+C { center-column; } + + Mod+Ctrl+C { center-visible-columns; } + + Mod+Minus { set-column-width "-10%"; } + Mod+Equal { set-column-width "+10%"; } + + // Finer height adjustments when in column with other windows. + Mod+Shift+Minus { set-window-height "-5%"; } + Mod+Shift+Equal { set-window-height "+5%"; } + + // Move the focused window between the floating and the tiling layout. + Mod+V { toggle-window-floating; } + Mod+Shift+V { switch-focus-between-floating-and-tiling; } + + // Toggle tabbed column display mode. + // Windows in this column will appear as vertical tabs, + // rather than stacked on top of each other. + Mod+W { toggle-column-tabbed-display; } + + Mod+Shift+S { spawn "~/dots/niri/screenshotwayland.sh"; } + Ctrl+Print { screenshot-screen; } + Alt+Print { screenshot-window; } + + Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } + + Mod+Shift+E { quit; } + Ctrl+Alt+Delete { quit; } + + Mod+Shift+P { power-off-monitors; } +} + +environment { + CHROME_EXECUTABLE "/usr/bin/chromium" +} diff --git a/niri/screenshotwayland.sh b/niri/screenshotwayland.sh new file mode 100755 index 0000000..22bacd0 --- /dev/null +++ b/niri/screenshotwayland.sh @@ -0,0 +1,12 @@ +#!/bin/bash +slurp | grim -g - - | wl-copy +choice=$(printf "save to clipboard\nsave to file" | rofi -dmenu) + +case "$choice" in + "Save to File") + wl-paste > ~/Pictures/Screenshots/screenshot-$(date +%F_%H-%M-%S).png + ;; + *) + exit 0 + ;; +esac -- cgit v1.2.3