summaryrefslogtreecommitdiff
path: root/niri.nix
diff options
context:
space:
mode:
Diffstat (limited to 'niri.nix')
-rw-r--r--niri.nix285
1 files changed, 285 insertions, 0 deletions
diff --git a/niri.nix b/niri.nix
new file mode 100644
index 0000000..5c131da
--- /dev/null
+++ b/niri.nix
@@ -0,0 +1,285 @@
+{
+ pkgs,
+ inputs,
+ ...
+}: {
+ xdg.configFile."niri/config.kdl".text = ''
+ gestures {
+ hot-corners {
+ off
+ }
+ }
+
+ input {
+ keyboard {
+ xkb {
+ layout "us,de"
+ }
+ }
+
+ touchpad {
+ tap
+ natural-scroll
+ }
+ }
+
+ output "eDP-1" {
+ mode "3840x2160@60.000"
+ }
+
+ output "LG Electronics LG HDR 4K 0x0001A8D9" {
+ mode "3840x2160@60.000"
+ }
+
+ layout {
+ gaps 0
+ center-focused-column "never"
+ preset-column-widths {
+ proportion 0.33333
+ proportion 0.5
+ proportion 0.66667
+ }
+ default-column-width {
+ proportion 0.5
+ }
+ focus-ring {
+ off
+ }
+ struts {
+ right 10
+ }
+
+ border {
+ width 3
+ active-color "#7fc8ff"
+ inactive-color "#DDDDDD"
+ }
+ }
+
+ overview {
+ backdrop-color "#DDDDDD"
+ }
+
+ spawn-at-startup "dbus-update-activation-environment" "WAYLAND_DISPLAY" "XDG_CURRENT_DESKTOP=sway"
+ //spawn-at-startup "/usr/libexec/pipewire-launcher"
+ //spawn-at-startup "openrc --user gui"
+
+ spawn-at-startup "waybar"
+ spawn-at-startup "mako"
+ spawn-at-startup "nm-applet"
+ spawn-at-startup "blueman-applet"
+ spawn-at-startup "swaybg" "-c" "DDDDDD"
+
+ spawn-at-startup "xwayland-satellite" ":12"
+ environment {
+ DISPLAY ":12"
+ }
+
+ spawn-at-startup "flatpak" "run" "com.slack.Slack"
+ spawn-at-startup "telegram-desktop"
+
+ prefer-no-csd
+
+ screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
+
+
+ binds {
+ Mod+Shift+Slash { show-hotkey-overlay; }
+
+ Mod+T { spawn "ghostty"; }
+ Mod+D { spawn "wofi" "--show" "run"; }
+ Mod+O repeat=false { toggle-overview; }
+ Mod+Shift+D { spawn "wofi" "--show" "drun"; }
+ Super+Alt+L { spawn "swaylock"; }
+
+ Mod+Shift+Q { close-window; }
+
+ Mod+H { focus-column-left; }
+ Mod+J { focus-window-or-workspace-down; }
+ Mod+K { focus-window-or-workspace-up; }
+ Mod+L { focus-column-right; }
+
+ Mod+Ctrl+H { move-column-left; }
+ Mod+Ctrl+J { move-workspace-down; }
+ Mod+Ctrl+K { move-workspace-up; }
+ Mod+Ctrl+L { move-column-right; }
+
+ 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+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+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; }
+ // ...
+
+ // And you can also move a whole workspace to another monitor:
+ Mod+Shift+Ctrl+U { move-workspace-to-monitor-left; }
+ Mod+Shift+Ctrl+I { move-workspace-to-monitor-right; }
+ // ...
+
+ Mod+Page_Down { focus-workspace-down; }
+ Mod+Page_Up { 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 "α"; }
+ Mod+2 { focus-workspace "γ"; }
+ Mod+3 { focus-workspace "δ"; }
+ Mod+4 { focus-workspace "ε"; }
+ Mod+5 { focus-workspace "ζ"; }
+ Mod+6 { focus-workspace "6"; }
+ Mod+7 { focus-workspace "7"; }
+ Mod+8 { focus-workspace "8"; }
+ Mod+9 { focus-workspace "9"; }
+ Mod+Minus { focus-workspace "-"; }
+ Mod+Ctrl+1 { move-column-to-workspace "α"; }
+ Mod+Ctrl+2 { move-column-to-workspace "γ"; }
+ Mod+Ctrl+3 { move-column-to-workspace "δ"; }
+ Mod+Ctrl+4 { move-column-to-workspace "ε"; }
+ Mod+Ctrl+5 { move-column-to-workspace "ζ"; }
+ 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+Minus { move-column-to-workspace "-"; }
+
+ 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+R { 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+U { set-column-width "-10%"; }
+ Mod+I { 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+V { toggle-window-floating; }
+ Mod+Shift+V { switch-focus-between-floating-and-tiling; }
+
+ Mod+W { toggle-column-tabbed-display; }
+
+ Mod+p { screenshot; }
+
+ Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
+
+ Mod+Shift+E { quit; }
+
+ Mod+Shift+P { power-off-monitors; }
+ }
+
+ workspace "α" {
+ }
+
+ workspace "γ" {
+ }
+
+ workspace "δ" {
+ }
+
+ workspace "ε" {
+ }
+
+ workspace "ζ" {
+ }
+
+ workspace "6" {
+ }
+
+ workspace "7" {
+ }
+
+ workspace "8" {
+ }
+
+ workspace "9" {
+ }
+
+ workspace "-" {
+ }
+
+ window-rule {
+ match app-id=r#"^com\.slack\.Slack$"#
+
+ open-on-workspace "chat"
+ block-out-from "screencast"
+ }
+
+ window-rule {
+ match app-id=r#"^org\.telegram\.desktop$"#
+
+ open-on-workspace "ζ"
+ block-out-from "screencast"
+ }
+
+ window-rule {
+ match app-id=r#"^Bitwarden$"#
+
+ open-on-workspace "res"
+ block-out-from "screencast"
+ }
+
+
+ window-rule {
+ match app-id=r#"^org\.pulseaudio\.pavucontrol$"#
+ match app-id=r#"^blueman\-manager$"#
+
+ open-floating true
+ }
+
+
+ layer-rule {
+ exclude namespace="^notifications$"
+
+ block-out-from "screencast"
+ }
+
+ // user private to hide private browser
+ // altgr-intl
+ '';
+}