aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/.config/niri
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles/.config/niri')
-rw-r--r--dotfiles/.config/niri/config.kdl149
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"; }