diff options
Diffstat (limited to 'dotfiles/.config/niri')
-rw-r--r-- | dotfiles/.config/niri/config.kdl | 149 |
1 files changed, 122 insertions, 27 deletions
diff --git a/dotfiles/.config/niri/config.kdl b/dotfiles/.config/niri/config.kdl index f362317..a34902d 100644 --- a/dotfiles/.config/niri/config.kdl +++ b/dotfiles/.config/niri/config.kdl @@ -53,10 +53,14 @@ input { // Focus windows and outputs automatically when moving the mouse into them. // Setting max-scroll-amount="0%" makes it work only on windows already fully on screen. - focus-follows-mouse + // focus-follows-mouse // focus-follows-mouse max-scroll-amount="0%" } +hotkey-overlay { + skip-at-startup +} + cursor { hide-when-typing } @@ -72,7 +76,7 @@ output "eDP-1" { // Uncomment this line to disable this output. // off - background-color "#000000" + // background-color "#000000" // Resolution and, optionally, refresh rate of the output. // The format is "<width>x<height>" or "<width>x<height>@<refresh rate>". @@ -102,8 +106,14 @@ output "eDP-1" { } output "DP-1" { - background-color "#000000" + // background-color "#000000" position x=1536 y=0 + //mode "2560x1440@165.000" +} + +overview { + zoom 0.4 + backdrop-color "#00807F" } // Settings that influence how windows are positioned and sized. @@ -113,6 +123,8 @@ layout { // Set gaps around windows in logical pixels. gaps 5 + background-color "#00000000" + // When to center a column when changing focus, options are: // - "never", default behavior, focusing an off-screen column will keep at the left // or right edge of the screen. @@ -198,10 +210,33 @@ layout { // active-color "#5b8277" // inactive-color "#4d4d42" - active-gradient from="#335975" to="#7fac96" angle=45 + active-gradient from="#1f5c9a" to="#99d0b5" angle=60 inactive-gradient from="#252832" to="#676775" angle=45 } + // You can enable drop shadows for windows. + shadow { + // Uncomment the next line to enable shadows. + on + + // draw-behind-window true + + // You can change how shadows look. The values below are in logical + // pixels and match the CSS box-shadow properties. + + // Softness controls the shadow blur radius. + softness 15 + + // Spread expands the shadow. + spread 6 + + // Offset moves the shadow relative to the window. + offset x=0 y=2 + + // You can also change the shadow color and opacity. + color "#000a" + } + // Struts shrink the area occupied by windows, similarly to layer-shell panels. // You can think of them as a kind of outer gaps. They are set in logical pixels. // Left and right struts will cause the next window to the side to always be visible. @@ -217,6 +252,36 @@ layout { insert-hint { color "#5b8277" } + + tab-indicator { + // off + // hide-when-single-tab + place-within-column + gap 3 + width 6 + length total-proportion=0.8 + // position "bottom" + gaps-between-tabs 3 + // corner-radius 8 + active-color "#99d0b5" + // inactive-color "gray" + active-gradient from="#1f5c9a" to="#99d0b5" angle=180 + inactive-gradient from="#000000" to="#252832" angle=180 + } +} + +gestures { + dnd-edge-view-scroll { + trigger-width 200 + delay-ms 200 + max-speed 4000 + } + + dnd-edge-workspace-switch { + trigger-height 100 + delay-ms 200 + max-speed 4000 + } } // Add lines like this to spawn processes at startup. @@ -248,13 +313,26 @@ animations { // off // Slow down all animations by this factor. Values below 1 speed them up instead. - slowdown 0.35 + slowdown 0.4 } // Window rules let you adjust behavior for individual windows. // Find more information on the wiki: // https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules +layer-rule { + match namespace="notifications" + + block-out-from "screencast" +} + +layer-rule { + match namespace="notifications" + match namespace="rofi" + + shadow { on; } +} + // Work around WezTerm's initial configure bug // by setting an empty default-column-width. window-rule { @@ -267,9 +345,8 @@ window-rule { window-rule { match app-id="GLava" - border { - off - } + border { off; } + shadow { off; } } window-rule { @@ -304,9 +381,9 @@ window-rule { clip-to-geometry true } -//spawn-at-startup "pipewire-restart" +spawn-at-startup "pipewire-restart" spawn-at-startup "waybar_launch" -spawn-at-startup "playerctld daemon" +spawn-at-startup "playerctld" "daemon" spawn-at-startup "mpd-restart" spawn-at-startup "blueman-applet" spawn-at-startup "mako" @@ -327,6 +404,9 @@ spawn-at-startup "gsettings" "set" "org.gnome.desktop.interface" "color-scheme" spawn-at-startup "swaybg" "-i" "/home/yaroslav/.config/wall1.png" "-m" "fill" +// Just a nice jingle on startup because why not +spawn-at-startup "canberra-gtk-play" "-i" "Oxygen-Sys-App-Positive" + binds { // Keys consist of modifiers separated by + signs, followed by an XKB key name // in the end. To find an XKB name for a particular key, you may use a program @@ -344,7 +424,10 @@ binds { // Suggested binds for running programs: terminal, app launcher, screen locker. Mod+Return { spawn "alacritty"; } - Mod+D { spawn "rofi" "-show" "drun" "-sidebar-mode" "-modi" "drun,run,filebrowser,ssh,combi"; } + Mod+D { + spawn "rofi" "-show" "drun" "-sidebar-mode" "-modi" "window,drun,run,ssh,filebrowser"; + } + Mod+S { toggle-overview; } Mod+X { spawn "lock-color"; } Mod+Shift+X { spawn "lock-color" "screenon"; } @@ -457,22 +540,22 @@ binds { // To avoid scrolling through workspaces really fast, you can use // the cooldown-ms property. The bind will be rate-limited to this value. // You can set a cooldown on any bind, but it's most useful for the wheel. - Mod+WheelScrollDown cooldown-ms=200 { focus-workspace-down; } - Mod+WheelScrollUp cooldown-ms=200 { focus-workspace-up; } - Mod+Ctrl+WheelScrollDown cooldown-ms=200 { move-column-to-workspace-down; } - Mod+Ctrl+WheelScrollUp cooldown-ms=200 { move-column-to-workspace-up; } + Mod+WheelScrollDown { focus-workspace-down; } + Mod+WheelScrollUp { focus-workspace-up; } + Mod+Ctrl+WheelScrollDown { move-column-to-workspace-down; } + Mod+Ctrl+WheelScrollUp { move-column-to-workspace-up; } - Mod+WheelScrollRight cooldown-ms=200 { focus-column-right; } - Mod+WheelScrollLeft cooldown-ms=200 { focus-column-left; } - Mod+Ctrl+WheelScrollRight cooldown-ms=200 { move-column-right; } - Mod+Ctrl+WheelScrollLeft cooldown-ms=200 { move-column-left; } + Mod+WheelScrollRight { focus-column-right; } + Mod+WheelScrollLeft { focus-column-left; } + Mod+Ctrl+WheelScrollRight { move-column-right; } + Mod+Ctrl+WheelScrollLeft { move-column-left; } // Usually scrolling up and down with Shift in applications results in // horizontal scrolling; these binds replicate that. - Mod+Shift+WheelScrollDown cooldown-ms=200 { focus-column-right; } - Mod+Shift+WheelScrollUp cooldown-ms=200 { focus-column-left; } - Mod+Ctrl+Shift+WheelScrollDown cooldown-ms=200 { move-column-right; } - Mod+Ctrl+Shift+WheelScrollUp cooldown-ms=200 { 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; } // Similarly, you can bind touchpad scroll "ticks". // Touchpad scrolling is continuous, so for these binds it is split into @@ -533,6 +616,8 @@ binds { // There are also commands that consume or expel a single window to the side. Mod+BracketLeft { consume-or-expel-window-left; } Mod+BracketRight { consume-or-expel-window-right; } + Mod+Shift+BracketLeft { swap-window-left; } + Mod+Shift+BracketRight { swap-window-right; } Mod+R { switch-preset-column-width; } Mod+Shift+R { switch-preset-window-height; } @@ -549,12 +634,21 @@ binds { // * adjust width as a percentage of screen width: "-10%" or "+10%" // 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+Minus { set-column-width "-5%"; } + Mod+Equal { set-column-width "+5%"; } // 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+Minus { set-window-height "-5%"; } + Mod+Shift+Equal { set-window-height "+5%"; } + + // Switch between floating and tiling. + Mod+Shift+Space { toggle-window-floating; } + Mod+Space { 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; } // Actions to switch layouts. // Note: if you uncomment these, make sure you do NOT have @@ -586,6 +680,7 @@ binds { Mod+F3 { spawn "rofi" "-show" "display" "-modi" "display:rofidisplay"; } Mod+F4 { spawn "menublk"; } Mod+F10 { spawn "chcolors"; } + Mod+F12 { spawn "rofi" "-show" "tz" "-modi" "tz:rofitz"; } Mod+Shift+N { spawn "networkmanager_dmenu"; } Mod+Shift+C { spawn "rofi" "-show" "calc" "-modi" "calc" "-no-show-match" "-no-sort"; } Mod+Grave { spawn "rofi" "-show" "moji" "-modi" "moji:rofimoji"; } |