nichts/modules/wms/wayland/niri/config.kdl

453 lines
9.2 KiB
Text

input {
keyboard {
xkb {
layout "us,ru"
variant ",phonetic_winkeys"
options "grp:rctrl_rshift_toggle, compose:102"
}
repeat-rate 60
repeat-delay 200
numlock
}
touchpad {
tap
}
// focus-follows-mouse
focus-follows-mouse max-scroll-amount="0%"
}
// Laptop
output "eDP-1" {
mode "1920x1080@59.999"
scale 1
position x=0 y=0
}
// PC
output "DP-2" {
mode "1920x1080@59.999"
scale 1
position x=0 y=0
}
output "HDMI-A-1" {
mode "1920x1080@59.999"
scale 1
position x=1920 y=0
}
layout {
gaps 0
center-focused-column "on-overflow"
focus-ring {
width 2
active-color "#f9e2af"
inactive-color "transparent"
active-gradient from="#E5989B" to="#FFB4A2" angle=45 relative-to="workspace-view" in="oklch longer hue"
}
border {
width 1
active-color "#000"
inactive-color "#000"
}
tab-indicator {
width 2
gap 4
gaps-between-tabs 2
}
shadow {
on
}
insert-hint {
color "#ffc87f80"
gradient from="#f38ba880" to="#f9e2af80" angle=45 relative-to="workspace-view"
}
preset-column-widths {
proportion 0.33333
proportion 0.5
proportion 0.66667
}
default-column-width {
proportion 0.5
}
}
// xwayland stuff
spawn-at-startup "xwayland-satellite"
spawn-at-startup "avizo-service"
spawn-at-startup "keepassxc"
spawn-at-startup "startxfce4"
spawn-at-startup "bash" "-c" "quickshell --path ~/repos/projects/nichts/modules/style/quickshell/shell"
environment {
DISPLAY ":0"
}
layer-rule {
match namespace="overview$"
place-within-backdrop true
}
// prefer no client side decorations
prefer-no-csd
switch-events {
lid-close {
spawn "swaylock"
}
}
overview {
zoom 0.65
backdrop-color "#777777"
}
workspace "main"
workspace "scratch"
workspace "browser"
workspace "social"
workspace "keepassxc"
workspace "infra"
workspace "multimedia"
animations {
// off
}
// Open the Firefox picture-in-picture player as floating by default.
window-rule {
match app-id="librewolf$" title="^Picture-in-Picture$"
open-floating true
open-on-workspace "browser"
}
window-rule {
match app-id="org.keepassxc.KeePassXC"
block-out-from "screen-capture"
open-on-workspace "keepassxc"
}
window-rule {
match app-id="unset"
open-floating true
}
window-rule {
match app-id="org.gnome.Nautilus"
open-floating true
}
window-rule {
match app-id="org.freedesktop.impl.portal.desktop.kde"
open-floating true
}
// Fix discord screencasting
debug {
wait-for-frame-completion-in-pipewire
}
// Always focus the KeePassXC-Browser unlock dialog.
//
// This dialog opens parented to the KeePassXC window rather than the browser,
// so it doesn't get auto-focused by default.
window-rule {
match app-id="^org\\.keepassxc\\.KeePassXC$" title="^KeePassXC - Browser Access Request$"
match app-id="^org\\.keepassxc\\.KeePassXC$" title="^Unlock Database - KeePassXC$"
open-focused true
}
hotkey-overlay {
skip-at-startup
}
cursor {
xcursor-theme "BreezeX-RosePine-Linux"
xcursor-size 32
hide-when-typing
}
binds {
Mod+Shift+Slash {
show-hotkey-overlay
}
// Mod+Return {
// spawn "foot"
// }
Mod+Return {
spawn "ghostty"
}
Mod+D {
spawn "bash" "-c" "quickshell --path ~/repos/projects/nichts/modules/style/quickshell/shell msg launcher open"
}
Mod+Alt+L {
spawn "swaylock"
}
// Audio
XF86AudioRaiseVolume allow-when-locked=true {
spawn "volumectl" "-u" "up"
}
XF86AudioLowerVolume allow-when-locked=true {
spawn "volumectl" "-u" "down"
}
XF86AudioMute allow-when-locked=true {
spawn "volumectl" "toggle-mute"
}
XF86AudioMicMute allow-when-locked=true {
spawn "volumectl" "-m" "toggle-mute"
}
XF86AudioPlay allow-when-locked=true {
spawn "playerctl" "play-pause"
}
XF86AudioNext allow-when-locked=true {
spawn "playerctl" "next"
}
XF86AudioPrev allow-when-locked=true {
spawn "playerctl" "previous"
}
// Monitor brightness
XF86MonBrightnessUp allow-when-locked=true {
spawn "lightctl" "up"
}
XF86MonBrightnessDown allow-when-locked=true {
spawn "lightctl" "down"
}
Mod+Q {
close-window
}
Mod+H {
focus-column-or-monitor-left
}
Mod+J {
focus-window-or-workspace-down
}
Mod+K {
focus-window-or-workspace-up
}
Mod+L {
focus-column-or-monitor-right
}
Mod+Shift+H {
move-column-left-or-to-monitor-left
}
Mod+Shift+J {
move-window-down-or-to-workspace-down
}
Mod+Shift+K {
move-window-up-or-to-workspace-up
}
Mod+Shift+L {
move-column-right-or-to-monitor-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+Ctrl+H {
focus-monitor-left
}
Mod+Ctrl+J {
focus-monitor-down
}
Mod+Ctrl+K {
focus-monitor-up
}
Mod+Ctrl+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+Page_Down {
focus-workspace-down
}
Mod+Page_Up {
focus-workspace-up
}
Mod+Shift+Page_Down {
move-column-to-workspace-down
}
Mod+Shift+Page_Up {
move-column-to-workspace-up
}
Mod+U {
focus-workspace-down
}
Mod+I {
focus-workspace-up
}
Mod+Shift+U {
move-column-to-workspace-down
}
Mod+Shift+I {
move-column-to-workspace-up
}
Mod+WheelScrollDown cooldown-ms=150 {
focus-workspace-down
}
Mod+WheelScrollUp cooldown-ms=150 {
focus-workspace-up
}
Mod+Shift+WheelScrollDown cooldown-ms=150 {
move-column-to-workspace-down
}
Mod+Shift+WheelScrollUp cooldown-ms=150 {
move-column-to-workspace-up
}
Mod+WheelScrollRight {
focus-column-right
}
Mod+WheelScrollLeft {
focus-column-left
}
Mod+Shift+WheelScrollRight {
move-column-right
}
Mod+Shift+WheelScrollLeft {
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+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
}
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+X {
focus-workspace "keepassxc"
}
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 "-10%"
}
Mod+Shift+Equal {
set-window-height "+10%"
}
// 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
}
Mod+W {
toggle-column-tabbed-display
}
Mod+O {
toggle-overview
}
Print {
screenshot
}
Ctrl+Print {
screenshot-screen
}
Alt+Print {
screenshot
}
Mod+Escape allow-inhibiting=false {
toggle-keyboard-shortcuts-inhibit
}
Mod+Shift+E {
quit
}
Mod+Shift+P {
power-off-monitors
}
}