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]
|
||||
"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]
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ default_target_type = "symbolic"
|
|||
[helpers]
|
||||
|
||||
[default]
|
||||
depends = []
|
||||
depends = ["niri"]
|
||||
|
||||
[default.files]
|
||||
"configs/fish" = "~/.config/fish"
|
||||
|
|
@ -21,7 +21,6 @@ depends = []
|
|||
"configs/mako" = "~/.config/mako"
|
||||
"configs/mise" = "~/.config/mise"
|
||||
"configs/mpv" = "~/.config/mpv"
|
||||
"configs/niri" = "~/.config/niri"
|
||||
"configs/nvim" = "~/.config/nvim"
|
||||
"configs/rofi" = "~/.config/rofi"
|
||||
"configs/swappy" = "~/.config/swappy"
|
||||
|
|
@ -37,3 +36,6 @@ depends = []
|
|||
|
||||
|
||||
[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 {
|
||||
keyboard {
|
||||
xkb {
|
||||
layout "latam"
|
||||
options "caps:escape"
|
||||
}
|
||||
// Enable numlock on startup, omitting this setting disables it.
|
||||
numlock
|
||||
keyboard {
|
||||
xkb {
|
||||
layout "latam"
|
||||
options "caps:escape"
|
||||
}
|
||||
// Next sections include libinput settings.
|
||||
// Omitting settings disables them, or leaves them at their default values.
|
||||
// All commented-out settings here are examples, not defaults.
|
||||
touchpad {
|
||||
// off
|
||||
tap
|
||||
// dwt
|
||||
// dwtp
|
||||
// drag false
|
||||
// drag-lock
|
||||
natural-scroll
|
||||
// Enable numlock on startup, omitting this setting disables it.
|
||||
numlock
|
||||
}
|
||||
// Next sections include libinput settings.
|
||||
// Omitting settings disables them, or leaves them at their default values.
|
||||
// All commented-out settings here are examples, not defaults.
|
||||
touchpad {
|
||||
// off
|
||||
tap
|
||||
// dwt
|
||||
// dwtp
|
||||
// drag false
|
||||
// drag-lock
|
||||
natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "two-finger"
|
||||
// disabled-on-external-mouse
|
||||
}
|
||||
mouse {
|
||||
}
|
||||
mouse {
|
||||
// off
|
||||
// natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "no-scroll"
|
||||
|
||||
}
|
||||
trackpoint {
|
||||
}
|
||||
trackpoint {
|
||||
// off
|
||||
// natural-scroll
|
||||
// accel-speed 0.2
|
||||
|
|
@ -41,53 +458,11 @@ input {
|
|||
// scroll-button-lock
|
||||
// middle-emulation
|
||||
|
||||
}
|
||||
// warp-mouse-to-focus
|
||||
focus-follows-mouse
|
||||
}
|
||||
// warp-mouse-to-focus
|
||||
focus-follows-mouse
|
||||
}
|
||||
output "DP-1" {
|
||||
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.
|
||||
// off
|
||||
|
|
@ -96,348 +471,19 @@ animations {
|
|||
// slowdown 3.0
|
||||
|
||||
}
|
||||
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 {
|
||||
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
|
||||
}
|
||||
}
|
||||
// ── Misc ────────────────────────────────────────────────────────────
|
||||
cursor {
|
||||
xcursor-theme "catppuccin-macchiato-lavender-cursors"
|
||||
xcursor-size 24
|
||||
}
|
||||
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
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ opt.pumblend = 10 -- Popup blend
|
|||
opt.pumheight = 10 -- Maximum number of entries in a popup
|
||||
-- opt.relativenumber = true -- Relative line numbers
|
||||
opt.scrolloff = 15 -- Lines of context
|
||||
opt.sidescrolloff = 25 -- Columns of context
|
||||
opt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize" }
|
||||
opt.shiftround = true -- Round 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