update niri config
This commit is contained in:
parent
5b5e426d94
commit
48f52f3c7b
5 changed files with 492 additions and 414 deletions
|
|
@ -4,4 +4,30 @@ packages = ["default"]
|
||||||
[files]
|
[files]
|
||||||
"configs/hypr/work-laptop/hyprland.conf" = "~/.config/hypr/include/work-laptop.conf"
|
"configs/hypr/work-laptop/hyprland.conf" = "~/.config/hypr/include/work-laptop.conf"
|
||||||
|
|
||||||
|
|
||||||
|
[files."configs/niri/config.kdl"]
|
||||||
|
target = "~/.config/niri/config.kdl"
|
||||||
|
type = "template"
|
||||||
|
append = """
|
||||||
|
window-rule {
|
||||||
|
match app-id="brave-work"
|
||||||
|
open-on-workspace "1"
|
||||||
|
open-focused true
|
||||||
|
|
||||||
|
default-column-width {
|
||||||
|
proportion 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window-rule {
|
||||||
|
match app-id="brave-personal"
|
||||||
|
open-on-workspace "2"
|
||||||
|
open-focused false
|
||||||
|
|
||||||
|
default-column-width {
|
||||||
|
proportion 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
[variables]
|
[variables]
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ default_target_type = "symbolic"
|
||||||
[helpers]
|
[helpers]
|
||||||
|
|
||||||
[default]
|
[default]
|
||||||
depends = []
|
depends = ["niri"]
|
||||||
|
|
||||||
[default.files]
|
[default.files]
|
||||||
"configs/fish" = "~/.config/fish"
|
"configs/fish" = "~/.config/fish"
|
||||||
|
|
@ -21,7 +21,6 @@ depends = []
|
||||||
"configs/mako" = "~/.config/mako"
|
"configs/mako" = "~/.config/mako"
|
||||||
"configs/mise" = "~/.config/mise"
|
"configs/mise" = "~/.config/mise"
|
||||||
"configs/mpv" = "~/.config/mpv"
|
"configs/mpv" = "~/.config/mpv"
|
||||||
"configs/niri" = "~/.config/niri"
|
|
||||||
"configs/nvim" = "~/.config/nvim"
|
"configs/nvim" = "~/.config/nvim"
|
||||||
"configs/rofi" = "~/.config/rofi"
|
"configs/rofi" = "~/.config/rofi"
|
||||||
"configs/swappy" = "~/.config/swappy"
|
"configs/swappy" = "~/.config/swappy"
|
||||||
|
|
@ -37,3 +36,6 @@ depends = []
|
||||||
|
|
||||||
|
|
||||||
[default.variables]
|
[default.variables]
|
||||||
|
|
||||||
|
[niri.files]
|
||||||
|
"configs/niri" = "~/.config/niri"
|
||||||
|
|
|
||||||
|
|
@ -1,37 +1,454 @@
|
||||||
|
// ╭─────────────────────────────────────────────────────────╮
|
||||||
|
// │ Windows Rules │
|
||||||
|
// ╰─────────────────────────────────────────────────────────╯
|
||||||
|
window-rule {
|
||||||
|
// This regular expression is intentionally made as specific as possible,
|
||||||
|
// since this is the default config, and we want no false positives.
|
||||||
|
// You can get away with just app-id="wezterm" if you want.
|
||||||
|
match app-id="^org\\.wezfurlong\\.wezterm$"
|
||||||
|
default-column-width {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window-rule {
|
||||||
|
match app-id="firefox$" title="^Picture-in-Picture$"
|
||||||
|
open-floating true
|
||||||
|
}
|
||||||
|
window-rule {
|
||||||
|
match app-id="^org\\.keepassxc\\.KeePassXC$"
|
||||||
|
match app-id="^org\\.gnome\\.World\\.Secrets$"
|
||||||
|
// block-out-from "screen-capture"
|
||||||
|
// Use this instead if you want them visible on third-party screenshot tools.
|
||||||
|
block-out-from "screencast"
|
||||||
|
}
|
||||||
|
window-rule {
|
||||||
|
match app-id="brave-browser"
|
||||||
|
match at-startup=true
|
||||||
|
default-column-width {
|
||||||
|
proportion 0.75
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window-rule {
|
||||||
|
match title="^Meet: .*"
|
||||||
|
match app-id="brave-browser"
|
||||||
|
open-floating true
|
||||||
|
}
|
||||||
|
window-rule {
|
||||||
|
geometry-corner-radius 4
|
||||||
|
clip-to-geometry true
|
||||||
|
}
|
||||||
|
// ╭─────────────────────────────────────────────────────────╮
|
||||||
|
// │ Auto Start Apps │
|
||||||
|
// ╰─────────────────────────────────────────────────────────╯
|
||||||
|
spawn-at-startup "/usr/lib/pam_kwallet_init"
|
||||||
|
spawn-at-startup "udieskiiw"
|
||||||
|
spawn-at-startup "brave"
|
||||||
|
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
|
||||||
|
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
|
||||||
|
// ╭─────────────────────────────────────────────────────────╮
|
||||||
|
// │ System Config │
|
||||||
|
// ╰─────────────────────────────────────────────────────────╯
|
||||||
|
// ── Layout Config ───────────────────────────────────────────────────
|
||||||
|
layout {
|
||||||
|
gaps 10
|
||||||
|
always-center-single-column
|
||||||
|
center-focused-column "never"
|
||||||
|
preset-column-widths {
|
||||||
|
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
|
||||||
|
proportion 0.33333
|
||||||
|
proportion 0.5
|
||||||
|
proportion 0.66667
|
||||||
|
}
|
||||||
|
preset-window-heights {
|
||||||
|
|
||||||
|
}
|
||||||
|
default-column-width {
|
||||||
|
|
||||||
|
}
|
||||||
|
focus-ring {
|
||||||
|
// Uncomment this line to disable the focus ring.
|
||||||
|
// off
|
||||||
|
// How many logical pixels the ring extends out from the windows.
|
||||||
|
width 2
|
||||||
|
active-color "#7fc8ff"
|
||||||
|
inactive-color "#505050"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// ── Keybindings ─────────────────────────────────────────────────────
|
||||||
|
binds {
|
||||||
|
Mod+Shift+Slash {
|
||||||
|
show-hotkey-overlay
|
||||||
|
}
|
||||||
|
Mod+Return hotkey-overlay-title="Open a Terminal: kitty" {
|
||||||
|
spawn "kitty"
|
||||||
|
}
|
||||||
|
Mod+D hotkey-overlay-title="Run an Application: Rofi" {
|
||||||
|
spawn "rofi" "-show" "drun" "-run-command" "uwsm app -- {cmd}"
|
||||||
|
}
|
||||||
|
XF86AudioRaiseVolume allow-when-locked=true {
|
||||||
|
spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"
|
||||||
|
}
|
||||||
|
XF86AudioLowerVolume allow-when-locked=true {
|
||||||
|
spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"
|
||||||
|
}
|
||||||
|
XF86AudioMute allow-when-locked=true {
|
||||||
|
spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
|
}
|
||||||
|
XF86AudioMicMute allow-when-locked=true {
|
||||||
|
spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||||
|
}
|
||||||
|
XF86MonBrightnessUp allow-when-locked=true {
|
||||||
|
spawn "brightnessctl" "--class=backlight" "set" "+10%"
|
||||||
|
}
|
||||||
|
XF86MonBrightnessDown allow-when-locked=true {
|
||||||
|
spawn "brightnessctl" "--class=backlight" "set" "10%-"
|
||||||
|
}
|
||||||
|
// Open/close the Overview: a zoomed-out view of workspaces and windows.
|
||||||
|
// You can also move the mouse into the top-left hot corner,
|
||||||
|
// or do a four-finger swipe up on a touchpad.
|
||||||
|
Mod+A repeat=false {
|
||||||
|
toggle-overview
|
||||||
|
}
|
||||||
|
Mod+Shift+Q repeat=false {
|
||||||
|
close-window
|
||||||
|
}
|
||||||
|
Mod+Tab {
|
||||||
|
focus-column-right-or-first
|
||||||
|
}
|
||||||
|
Mod+shift+Tab {
|
||||||
|
focus-column-left-or-last
|
||||||
|
}
|
||||||
|
Mod+Left {
|
||||||
|
focus-column-left
|
||||||
|
}
|
||||||
|
Mod+Down {
|
||||||
|
focus-window-or-workspace-down
|
||||||
|
}
|
||||||
|
Mod+Up {
|
||||||
|
focus-window-or-workspace-up
|
||||||
|
}
|
||||||
|
Mod+Right {
|
||||||
|
focus-column-right
|
||||||
|
}
|
||||||
|
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+Shift+Left {
|
||||||
|
move-column-left
|
||||||
|
}
|
||||||
|
Mod+Shift+Down {
|
||||||
|
move-window-down-or-to-workspace-down
|
||||||
|
}
|
||||||
|
Mod+Shift+Up {
|
||||||
|
move-window-up-or-to-workspace-up
|
||||||
|
}
|
||||||
|
Mod+Shift+Right {
|
||||||
|
move-column-right
|
||||||
|
}
|
||||||
|
Mod+Shift+H {
|
||||||
|
move-column-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
|
||||||
|
}
|
||||||
|
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+WheelScrollDown cooldown-ms=150 {
|
||||||
|
focus-column-right
|
||||||
|
}
|
||||||
|
Mod+WheelScrollUp cooldown-ms=150 {
|
||||||
|
focus-column-left
|
||||||
|
}
|
||||||
|
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 cooldown-ms=150 {
|
||||||
|
focus-workspace-down
|
||||||
|
}
|
||||||
|
Mod+Shift+WheelScrollUp cooldown-ms=150 {
|
||||||
|
focus-workspace-up
|
||||||
|
}
|
||||||
|
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
|
||||||
|
// discrete intervals.
|
||||||
|
// These binds are also affected by touchpad's natural-scroll, so these
|
||||||
|
// example binds are "inverted", since we have natural-scroll enabled for
|
||||||
|
// touchpads by default.
|
||||||
|
// Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
|
||||||
|
// Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }
|
||||||
|
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-window-to-workspace 1
|
||||||
|
}
|
||||||
|
Mod+Shift+2 {
|
||||||
|
move-window-to-workspace 2
|
||||||
|
}
|
||||||
|
Mod+Shift+3 {
|
||||||
|
move-window-to-workspace 3
|
||||||
|
}
|
||||||
|
Mod+Shift+4 {
|
||||||
|
move-window-to-workspace 4
|
||||||
|
}
|
||||||
|
Mod+Shift+5 {
|
||||||
|
move-window-to-workspace 5
|
||||||
|
}
|
||||||
|
Mod+Shift+6 {
|
||||||
|
move-window-to-workspace 6
|
||||||
|
}
|
||||||
|
Mod+Shift+7 {
|
||||||
|
move-window-to-workspace 7
|
||||||
|
}
|
||||||
|
Mod+Shift+8 {
|
||||||
|
move-window-to-workspace 8
|
||||||
|
}
|
||||||
|
Mod+Shift+9 {
|
||||||
|
move-window-to-workspace 9
|
||||||
|
}
|
||||||
|
// Switches focus between the current and the previous workspace.
|
||||||
|
Mod+Bar {
|
||||||
|
focus-workspace-previous
|
||||||
|
}
|
||||||
|
// The following binds move the focused window in and out of a column.
|
||||||
|
// If the window is alone, they will consume it into the nearby column to the side.
|
||||||
|
// If the window is already in a column, they will expel it out.
|
||||||
|
Mod+BraceLeft {
|
||||||
|
consume-or-expel-window-left
|
||||||
|
}
|
||||||
|
Mod+BraceRight {
|
||||||
|
consume-or-expel-window-right
|
||||||
|
}
|
||||||
|
// Consume one window from the right to the bottom of the focused column.
|
||||||
|
Mod+Comma {
|
||||||
|
consume-window-into-column
|
||||||
|
}
|
||||||
|
// Expel the bottom window from the focused column to the right.
|
||||||
|
Mod+Period {
|
||||||
|
expel-window-from-column
|
||||||
|
}
|
||||||
|
Mod+R {
|
||||||
|
switch-preset-column-width
|
||||||
|
}
|
||||||
|
// Cycling through the presets in reverse order is also possible.
|
||||||
|
// Mod+R { switch-preset-column-width-back; }
|
||||||
|
Mod+Shift+R {
|
||||||
|
switch-preset-window-height
|
||||||
|
}
|
||||||
|
Mod+Ctrl+R {
|
||||||
|
reset-window-height
|
||||||
|
}
|
||||||
|
Mod+F {
|
||||||
|
maximize-column
|
||||||
|
}
|
||||||
|
Mod+Shift+F {
|
||||||
|
fullscreen-window
|
||||||
|
}
|
||||||
|
// Expand the focused column to space not taken up by other fully visible columns.
|
||||||
|
// Makes the column "fill the rest of the space".
|
||||||
|
Mod+Ctrl+F {
|
||||||
|
expand-column-to-available-width
|
||||||
|
}
|
||||||
|
Mod+C {
|
||||||
|
center-column
|
||||||
|
}
|
||||||
|
// Center all fully visible columns on screen.
|
||||||
|
Mod+Ctrl+C {
|
||||||
|
center-visible-columns
|
||||||
|
}
|
||||||
|
// Finer width adjustments.
|
||||||
|
// This command can also:
|
||||||
|
// * set width in pixels: "1000"
|
||||||
|
// * adjust width in pixels: "-5" or "+5"
|
||||||
|
// * set width as a percentage of screen width: "25%"
|
||||||
|
// * 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+Plus {
|
||||||
|
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+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
|
||||||
|
}
|
||||||
|
Print {
|
||||||
|
screenshot
|
||||||
|
}
|
||||||
|
Shift+Ctrl+Print {
|
||||||
|
screenshot-screen
|
||||||
|
}
|
||||||
|
Shift+Print {
|
||||||
|
screenshot-window
|
||||||
|
}
|
||||||
|
// Applications such as remote-desktop clients and software KVM switches may
|
||||||
|
// request that niri stops processing the keyboard shortcuts defined here
|
||||||
|
// so they may, for example, forward the key presses as-is to a remote machine.
|
||||||
|
// It's a good idea to bind an escape hatch to toggle the inhibitor,
|
||||||
|
// so a buggy application can't hold your session hostage.
|
||||||
|
//
|
||||||
|
// The allow-inhibiting=false property can be applied to other binds as well,
|
||||||
|
// which ensures niri always processes them, even when an inhibitor is active.
|
||||||
|
Mod+Escape allow-inhibiting=false {
|
||||||
|
toggle-keyboard-shortcuts-inhibit
|
||||||
|
}
|
||||||
|
// The quit action will show a confirmation dialog to avoid accidental exits.
|
||||||
|
Mod+Shift+E {
|
||||||
|
quit
|
||||||
|
}
|
||||||
|
Ctrl+Alt+Delete {
|
||||||
|
quit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// ── Environment Variables ───────────────────────────────────────────
|
||||||
|
environment {
|
||||||
|
QT_STYLE_OVERRIDE "kvantum"
|
||||||
|
QT_AUTO_SCREEN_SCALE_FACTOR "1"
|
||||||
|
QT_QPA_PLATFORM "wayland;xcb"
|
||||||
|
QT_WAYLAND_DISABLE_WINDOWDECORATION "1"
|
||||||
|
QT_QPA_PLATFORMTHEME "qt5ct"
|
||||||
|
MOZ_ENABLE_WAYLAND "1"
|
||||||
|
XCURSOR_SIZE "24"
|
||||||
|
GTK_THEME "catppuccin-macchiato-teal-standard-default"
|
||||||
|
SSH_AUTH_SOCK "$XDG_RUNTIME_DIR/rbw/ssh-agent-socket"
|
||||||
|
EDITOR "nvim"
|
||||||
|
VISUAL "nvim"
|
||||||
|
TERMINAL "/usr/bin/kitty"
|
||||||
|
}
|
||||||
|
// ── Display Options ─────────────────────────────────────────────────
|
||||||
|
output "eDP-1" {
|
||||||
|
off
|
||||||
|
}
|
||||||
|
output "HDMI-A-1" {
|
||||||
|
scale 1
|
||||||
|
mode "3440x1440"
|
||||||
|
}
|
||||||
|
output "DP-1" {
|
||||||
|
variable-refresh-rate on-demand=true
|
||||||
|
}
|
||||||
|
// ── Input Options ───────────────────────────────────────────────────
|
||||||
input {
|
input {
|
||||||
keyboard {
|
keyboard {
|
||||||
xkb {
|
xkb {
|
||||||
layout "latam"
|
layout "latam"
|
||||||
options "caps:escape"
|
options "caps:escape"
|
||||||
}
|
|
||||||
// Enable numlock on startup, omitting this setting disables it.
|
|
||||||
numlock
|
|
||||||
}
|
}
|
||||||
// Next sections include libinput settings.
|
// Enable numlock on startup, omitting this setting disables it.
|
||||||
// Omitting settings disables them, or leaves them at their default values.
|
numlock
|
||||||
// All commented-out settings here are examples, not defaults.
|
}
|
||||||
touchpad {
|
// Next sections include libinput settings.
|
||||||
// off
|
// Omitting settings disables them, or leaves them at their default values.
|
||||||
tap
|
// All commented-out settings here are examples, not defaults.
|
||||||
// dwt
|
touchpad {
|
||||||
// dwtp
|
// off
|
||||||
// drag false
|
tap
|
||||||
// drag-lock
|
// dwt
|
||||||
natural-scroll
|
// dwtp
|
||||||
|
// drag false
|
||||||
|
// drag-lock
|
||||||
|
natural-scroll
|
||||||
// accel-speed 0.2
|
// accel-speed 0.2
|
||||||
// accel-profile "flat"
|
// accel-profile "flat"
|
||||||
// scroll-method "two-finger"
|
// scroll-method "two-finger"
|
||||||
// disabled-on-external-mouse
|
// disabled-on-external-mouse
|
||||||
}
|
}
|
||||||
mouse {
|
mouse {
|
||||||
// off
|
// off
|
||||||
// natural-scroll
|
// natural-scroll
|
||||||
// accel-speed 0.2
|
// accel-speed 0.2
|
||||||
// accel-profile "flat"
|
// accel-profile "flat"
|
||||||
// scroll-method "no-scroll"
|
// scroll-method "no-scroll"
|
||||||
|
|
||||||
}
|
}
|
||||||
trackpoint {
|
trackpoint {
|
||||||
// off
|
// off
|
||||||
// natural-scroll
|
// natural-scroll
|
||||||
// accel-speed 0.2
|
// accel-speed 0.2
|
||||||
|
|
@ -41,53 +458,11 @@ input {
|
||||||
// scroll-button-lock
|
// scroll-button-lock
|
||||||
// middle-emulation
|
// middle-emulation
|
||||||
|
|
||||||
}
|
}
|
||||||
// warp-mouse-to-focus
|
// warp-mouse-to-focus
|
||||||
focus-follows-mouse
|
focus-follows-mouse
|
||||||
}
|
}
|
||||||
output "DP-1" {
|
// ── Animations ──────────────────────────────────────────────────────
|
||||||
variable-refresh-rate on-demand=true
|
|
||||||
}
|
|
||||||
layout {
|
|
||||||
gaps 10
|
|
||||||
always-center-single-column
|
|
||||||
center-focused-column "never"
|
|
||||||
preset-column-widths {
|
|
||||||
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
|
|
||||||
proportion 0.33333
|
|
||||||
proportion 0.5
|
|
||||||
proportion 0.66667
|
|
||||||
}
|
|
||||||
preset-window-heights {
|
|
||||||
|
|
||||||
}
|
|
||||||
default-column-width {
|
|
||||||
|
|
||||||
}
|
|
||||||
focus-ring {
|
|
||||||
// Uncomment this line to disable the focus ring.
|
|
||||||
// off
|
|
||||||
// How many logical pixels the ring extends out from the windows.
|
|
||||||
width 2
|
|
||||||
active-color "#7fc8ff"
|
|
||||||
inactive-color "#505050"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
spawn-at-startup "/usr/lib/pam_kwallet_init"
|
|
||||||
spawn-at-startup "udieskiiw"
|
|
||||||
spawn-at-startup "brave"
|
|
||||||
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
|
|
||||||
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
|
|
||||||
hotkey-overlay {
|
|
||||||
skip-at-startup
|
|
||||||
}
|
|
||||||
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
|
|
||||||
// If the client will specifically ask for CSD, the request will be honored.
|
|
||||||
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
|
|
||||||
// This option will also fix border/focus ring drawing behind some semitransparent windows.
|
|
||||||
// After enabling or disabling this, you need to restart the apps for this to take effect.
|
|
||||||
// prefer-no-csd
|
|
||||||
screenshot-path null
|
|
||||||
animations {
|
animations {
|
||||||
// Uncomment to turn off all animations.
|
// Uncomment to turn off all animations.
|
||||||
// off
|
// off
|
||||||
|
|
@ -96,348 +471,19 @@ animations {
|
||||||
// slowdown 3.0
|
// slowdown 3.0
|
||||||
|
|
||||||
}
|
}
|
||||||
window-rule {
|
// ── Misc ────────────────────────────────────────────────────────────
|
||||||
// This regular expression is intentionally made as specific as possible,
|
cursor {
|
||||||
// since this is the default config, and we want no false positives.
|
xcursor-theme "catppuccin-macchiato-lavender-cursors"
|
||||||
// You can get away with just app-id="wezterm" if you want.
|
xcursor-size 24
|
||||||
match app-id="^org\\.wezfurlong\\.wezterm$"
|
}
|
||||||
default-column-width {
|
hotkey-overlay {
|
||||||
|
skip-at-startup
|
||||||
}
|
}
|
||||||
}
|
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
|
||||||
window-rule {
|
// If the client will specifically ask for CSD, the request will be honored.
|
||||||
match app-id="firefox$" title="^Picture-in-Picture$"
|
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
|
||||||
open-floating true
|
// This option will also fix border/focus ring drawing behind some semitransparent windows.
|
||||||
}
|
// After enabling or disabling this, you need to restart the apps for this to take effect.
|
||||||
window-rule {
|
// prefer-no-csd
|
||||||
match app-id="^org\\.keepassxc\\.KeePassXC$"
|
screenshot-path null
|
||||||
match app-id="^org\\.gnome\\.World\\.Secrets$"
|
|
||||||
// block-out-from "screen-capture"
|
|
||||||
// Use this instead if you want them visible on third-party screenshot tools.
|
|
||||||
block-out-from "screencast"
|
|
||||||
}
|
|
||||||
window-rule {
|
|
||||||
match app-id="brave-browser"
|
|
||||||
match at-startup=true
|
|
||||||
default-column-width {
|
|
||||||
proportion 0.75
|
|
||||||
}
|
|
||||||
}
|
|
||||||
window-rule {
|
|
||||||
geometry-corner-radius 4
|
|
||||||
clip-to-geometry true
|
|
||||||
}
|
|
||||||
binds {
|
|
||||||
Mod+Shift+Slash {
|
|
||||||
show-hotkey-overlay
|
|
||||||
}
|
|
||||||
Mod+Return hotkey-overlay-title="Open a Terminal: kitty" {
|
|
||||||
spawn "kitty"
|
|
||||||
}
|
|
||||||
Mod+D hotkey-overlay-title="Run an Application: Rofi" {
|
|
||||||
spawn "rofi" "-show" "drun" "-run-command" "uwsm app -- {cmd}"
|
|
||||||
}
|
|
||||||
XF86AudioRaiseVolume allow-when-locked=true {
|
|
||||||
spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"
|
|
||||||
}
|
|
||||||
XF86AudioLowerVolume allow-when-locked=true {
|
|
||||||
spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"
|
|
||||||
}
|
|
||||||
XF86AudioMute allow-when-locked=true {
|
|
||||||
spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
|
||||||
}
|
|
||||||
XF86AudioMicMute allow-when-locked=true {
|
|
||||||
spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
|
||||||
}
|
|
||||||
XF86MonBrightnessUp allow-when-locked=true {
|
|
||||||
spawn "brightnessctl" "--class=backlight" "set" "+10%"
|
|
||||||
}
|
|
||||||
XF86MonBrightnessDown allow-when-locked=true {
|
|
||||||
spawn "brightnessctl" "--class=backlight" "set" "10%-"
|
|
||||||
}
|
|
||||||
// Open/close the Overview: a zoomed-out view of workspaces and windows.
|
|
||||||
// You can also move the mouse into the top-left hot corner,
|
|
||||||
// or do a four-finger swipe up on a touchpad.
|
|
||||||
Mod+A repeat=false {
|
|
||||||
toggle-overview
|
|
||||||
}
|
|
||||||
Mod+Shift+Q repeat=false {
|
|
||||||
close-window
|
|
||||||
}
|
|
||||||
Mod+Tab {
|
|
||||||
focus-column-right-or-first
|
|
||||||
}
|
|
||||||
Mod+shift+Tab {
|
|
||||||
focus-column-left-or-last
|
|
||||||
}
|
|
||||||
Mod+Left {
|
|
||||||
focus-column-left
|
|
||||||
}
|
|
||||||
Mod+Down {
|
|
||||||
focus-window-or-workspace-down
|
|
||||||
}
|
|
||||||
Mod+Up {
|
|
||||||
focus-window-or-workspace-up
|
|
||||||
}
|
|
||||||
Mod+Right {
|
|
||||||
focus-column-right
|
|
||||||
}
|
|
||||||
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+Shift+Left {
|
|
||||||
move-column-left
|
|
||||||
}
|
|
||||||
Mod+Shift+Down {
|
|
||||||
move-window-down-or-to-workspace-down
|
|
||||||
}
|
|
||||||
Mod+Shift+Up {
|
|
||||||
move-window-up-or-to-workspace-up
|
|
||||||
}
|
|
||||||
Mod+Shift+Right {
|
|
||||||
move-column-right
|
|
||||||
}
|
|
||||||
Mod+Shift+H {
|
|
||||||
move-column-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
|
|
||||||
}
|
|
||||||
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+WheelScrollDown cooldown-ms=150 {
|
|
||||||
focus-column-right
|
|
||||||
}
|
|
||||||
Mod+WheelScrollUp cooldown-ms=150 {
|
|
||||||
focus-column-left
|
|
||||||
}
|
|
||||||
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 cooldown-ms=150 {
|
|
||||||
focus-workspace-down
|
|
||||||
}
|
|
||||||
Mod+Shift+WheelScrollUp cooldown-ms=150 {
|
|
||||||
focus-workspace-up
|
|
||||||
}
|
|
||||||
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
|
|
||||||
// discrete intervals.
|
|
||||||
// These binds are also affected by touchpad's natural-scroll, so these
|
|
||||||
// example binds are "inverted", since we have natural-scroll enabled for
|
|
||||||
// touchpads by default.
|
|
||||||
// Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
|
|
||||||
// Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }
|
|
||||||
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-window-to-workspace 1
|
|
||||||
}
|
|
||||||
Mod+Shift+2 {
|
|
||||||
move-window-to-workspace 2
|
|
||||||
}
|
|
||||||
Mod+Shift+3 {
|
|
||||||
move-window-to-workspace 3
|
|
||||||
}
|
|
||||||
Mod+Shift+4 {
|
|
||||||
move-window-to-workspace 4
|
|
||||||
}
|
|
||||||
Mod+Shift+5 {
|
|
||||||
move-window-to-workspace 5
|
|
||||||
}
|
|
||||||
Mod+Shift+6 {
|
|
||||||
move-window-to-workspace 6
|
|
||||||
}
|
|
||||||
Mod+Shift+7 {
|
|
||||||
move-window-to-workspace 7
|
|
||||||
}
|
|
||||||
Mod+Shift+8 {
|
|
||||||
move-window-to-workspace 8
|
|
||||||
}
|
|
||||||
Mod+Shift+9 {
|
|
||||||
move-window-to-workspace 9
|
|
||||||
}
|
|
||||||
// Switches focus between the current and the previous workspace.
|
|
||||||
Mod+Bar {
|
|
||||||
focus-workspace-previous
|
|
||||||
}
|
|
||||||
// The following binds move the focused window in and out of a column.
|
|
||||||
// If the window is alone, they will consume it into the nearby column to the side.
|
|
||||||
// If the window is already in a column, they will expel it out.
|
|
||||||
Mod+BraceLeft {
|
|
||||||
consume-or-expel-window-left
|
|
||||||
}
|
|
||||||
Mod+BraceRight {
|
|
||||||
consume-or-expel-window-right
|
|
||||||
}
|
|
||||||
// Consume one window from the right to the bottom of the focused column.
|
|
||||||
Mod+Comma {
|
|
||||||
consume-window-into-column
|
|
||||||
}
|
|
||||||
// Expel the bottom window from the focused column to the right.
|
|
||||||
Mod+Period {
|
|
||||||
expel-window-from-column
|
|
||||||
}
|
|
||||||
Mod+R {
|
|
||||||
switch-preset-column-width
|
|
||||||
}
|
|
||||||
// Cycling through the presets in reverse order is also possible.
|
|
||||||
// Mod+R { switch-preset-column-width-back; }
|
|
||||||
Mod+Shift+R {
|
|
||||||
switch-preset-window-height
|
|
||||||
}
|
|
||||||
Mod+Ctrl+R {
|
|
||||||
reset-window-height
|
|
||||||
}
|
|
||||||
Mod+F {
|
|
||||||
maximize-column
|
|
||||||
}
|
|
||||||
Mod+Shift+F {
|
|
||||||
fullscreen-window
|
|
||||||
}
|
|
||||||
// Expand the focused column to space not taken up by other fully visible columns.
|
|
||||||
// Makes the column "fill the rest of the space".
|
|
||||||
Mod+Ctrl+F {
|
|
||||||
expand-column-to-available-width
|
|
||||||
}
|
|
||||||
Mod+C {
|
|
||||||
center-column
|
|
||||||
}
|
|
||||||
// Center all fully visible columns on screen.
|
|
||||||
Mod+Ctrl+C {
|
|
||||||
center-visible-columns
|
|
||||||
}
|
|
||||||
// Finer width adjustments.
|
|
||||||
// This command can also:
|
|
||||||
// * set width in pixels: "1000"
|
|
||||||
// * adjust width in pixels: "-5" or "+5"
|
|
||||||
// * set width as a percentage of screen width: "25%"
|
|
||||||
// * 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+Plus {
|
|
||||||
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+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
|
|
||||||
}
|
|
||||||
Print {
|
|
||||||
screenshot
|
|
||||||
}
|
|
||||||
Shift+Ctrl+Print {
|
|
||||||
screenshot-screen
|
|
||||||
}
|
|
||||||
Shift+Print {
|
|
||||||
screenshot-window
|
|
||||||
}
|
|
||||||
// Applications such as remote-desktop clients and software KVM switches may
|
|
||||||
// request that niri stops processing the keyboard shortcuts defined here
|
|
||||||
// so they may, for example, forward the key presses as-is to a remote machine.
|
|
||||||
// It's a good idea to bind an escape hatch to toggle the inhibitor,
|
|
||||||
// so a buggy application can't hold your session hostage.
|
|
||||||
//
|
|
||||||
// The allow-inhibiting=false property can be applied to other binds as well,
|
|
||||||
// which ensures niri always processes them, even when an inhibitor is active.
|
|
||||||
Mod+Escape allow-inhibiting=false {
|
|
||||||
toggle-keyboard-shortcuts-inhibit
|
|
||||||
}
|
|
||||||
// The quit action will show a confirmation dialog to avoid accidental exits.
|
|
||||||
Mod+Shift+E {
|
|
||||||
quit
|
|
||||||
}
|
|
||||||
Ctrl+Alt+Delete {
|
|
||||||
quit
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ opt.pumblend = 10 -- Popup blend
|
||||||
opt.pumheight = 10 -- Maximum number of entries in a popup
|
opt.pumheight = 10 -- Maximum number of entries in a popup
|
||||||
-- opt.relativenumber = true -- Relative line numbers
|
-- opt.relativenumber = true -- Relative line numbers
|
||||||
opt.scrolloff = 15 -- Lines of context
|
opt.scrolloff = 15 -- Lines of context
|
||||||
|
opt.sidescrolloff = 25 -- Columns of context
|
||||||
opt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize" }
|
opt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize" }
|
||||||
opt.shiftround = true -- Round indent
|
opt.shiftround = true -- Round indent
|
||||||
opt.shiftwidth = 2 -- Size of an indent
|
opt.shiftwidth = 2 -- Size of an indent
|
||||||
|
|
|
||||||
3
kdlfmt.kdl
Normal file
3
kdlfmt.kdl
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
indent_size 2
|
||||||
|
use_tabs #false
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue