437 lines
12 KiB
Text
437 lines
12 KiB
Text
input {
|
|
keyboard {
|
|
xkb {
|
|
layout "latam"
|
|
options "caps:escape"
|
|
}
|
|
// 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 {
|
|
// off
|
|
// natural-scroll
|
|
// accel-speed 0.2
|
|
// accel-profile "flat"
|
|
// scroll-method "no-scroll"
|
|
|
|
}
|
|
trackpoint {
|
|
// off
|
|
// natural-scroll
|
|
// accel-speed 0.2
|
|
// accel-profile "flat"
|
|
// scroll-method "on-button-down"
|
|
// scroll-button 273
|
|
// scroll-button-lock
|
|
// middle-emulation
|
|
|
|
}
|
|
// 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 {
|
|
// Uncomment to turn off all animations.
|
|
// off
|
|
|
|
// Slow down all animations by this factor. Values below 1 speed them up instead.
|
|
// 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+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
|
|
}
|
|
}
|
|
|