Import from root chezmoi source

This commit is contained in:
Prad Nukala committed 2026-10-14 13:32:29 -04:00
commit 97a309bbe3
21 files changed
+1394

No files matched your search

+44
View File
@@ -0,0 +1,44 @@
// Outputs (example - disabled by default)
// Run `niri msg outputs` inside a niri session to see connector names and modes.
// Then edit and uncomment this block to pin a specific monitor layout.
// ============================================================================
// INPUT
// ============================================================================
input {
keyboard {
xkb {
layout "us"
}
repeat-delay 400
repeat-rate 50
}
touchpad {
natural-scroll
tap
tap-button-map "left-right-middle"
accel-speed 1.0
}
tablet {
map-to-output "eDP-1"
}
touch {
map-to-output "eDP-1"
}
mod-key "Super"
mod-key-nested "Alt"
}
gestures {
}
cursor {
xcursor-theme "capitaine-cursors-light"
xcursor-size 24
hide-when-typing
}
+57
View File
@@ -0,0 +1,57 @@
layout {
center-focused-column "never"
background-color "transparent"
default-column-width { proportion 0.5; }
preset-column-widths {
proportion 0.33333
proportion 0.5
proportion 0.66667
}
focus-ring {
width 1.5
active-color "#7fc8ff"
inactive-color "transparent"
}
border {
off
width 1.5
active-color "#ffc87f"
inactive-color "transparent"
urgent-color "#9b0000"
}
shadow {
off
softness 30
spread 5
offset x=0 y=5
color "#0007"
}
tab-indicator {
place-within-column
hide-when-single-tab
position "left" // Can be "left", "right", "top", or "bottom"
}
}
gestures {
hot-corners {
}
}
cursor {
xcursor-theme "capitaine-cursors-light"
xcursor-size 24
hide-when-typing
}
overview {
zoom 0.4
workspace-shadow { off; }
}
+103
View File
@@ -0,0 +1,103 @@
// ============================================================================
// WINDOW RULES
// ============================================================================
window-rule {
geometry-corner-radius 10
clip-to-geometry true
}
window-rule {
background-effect {
blur true
xray false
}
}
// Noctalia v5: floating settings window.
window-rule {
match app-id="dev.noctalia.Noctalia"
open-floating true
default-column-width { fixed 1080; }
default-window-height { fixed 920; }
}
blur {
passes 4
offset 5.0
noise 0.02
saturation 2.0
}
window-rule {
match app-id="Folo"
match app-id="Spotify"
match app-id="zen"
match app-id="brave-origin"
match app-id="gemini-desktop"
match app-id="claude-desktop"
opacity 0.9
open-floating false
draw-border-with-background false
background-effect {
blur true
xray false
}
open-focused true
}
window-rule {
match app-id="kitty"
match app-id="zed"
match app-id="obsidian"
match app-id="Beeper"
match app-id="chromium"
match app-id="com.mitchellh.ghostty"
opacity 0.9
open-floating false
draw-border-with-background false
open-focused true
background-effect {
blur true
xray false
}
}
window-rule {
match app-id="org.gnome.Nautilus"
match app-id="com.gabm.satty"
open-floating true
open-focused true
draw-border-with-background false
default-column-width { proportion 0.5; }
}
window-rule {
match title="Picture-in-Picture" app-id="zen"
match title="Picture in picture"
open-floating true
open-focused false
opacity 1.0
// default-floating-position x=28 y=28 relative-to="top-right"
default-floating-position x=24 y=24 relative-to="top-right"
open-on-output "eDP-1"
// open-on-output "HDMI-A-1"
// open-on-output "Apple Computer Inc StudioDisplay 0x984262A7"
}
window-rule {
match app-id="zed"
match app-id="obsidian"
match app-id="sticky-notest-canvas"
match title="Sticky Notes"
match app-id="vacuumtube"
match app-id="Fladder"
match app-id="kitty"
match app-id="kitty-herdr"
match app-id="kitty-tmux"
open-on-output "Apple Computer Inc StudioDisplay 0x984262A7"
}
+22
View File
@@ -0,0 +1,22 @@
// ============================================================================
// ENVIRONMENT
// ============================================================================
environment {
XDG_CURRENT_DESKTOP "niri"
XDG_MENU_PREFIX "plasma-" // Required for Dolphin/KDE app file associations
QT_QPA_PLATFORM "wayland"
ELECTRON_OZONE_PLATFORM_HINT "auto"
QT_LOGGING_RULES "quickshell.dbus.properties=false"
// Qt theming: kde platform reads colors from kdeglobals (requires plasma-integration pkg)
// The installer falls back to qt6ct only if plasma-integration is not installed
QT_QPA_PLATFORMTHEME "kde"
QT_STYLE_OVERRIDE "Darkly"
// Quickshell Python virtual environment
INIR_VENV "$HOME/.local/state/quickshell/.venv"
ILLOGICAL_IMPULSE_VIRTUAL_ENV "$HOME/.local/state/quickshell/.venv"
}
+11
View File
@@ -0,0 +1,11 @@
// ============================================================================
// STARTUP
// ============================================================================
// Import XDG_MENU_PREFIX to systemd for Dolphin/KDE app file associations
spawn-at-startup "bash" "-c" "systemctl --user import-environment XDG_MENU_PREFIX && kbuildsycoca6"
spawn-at-startup "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1"
spawn-at-startup "noctalia"
spawn-at-startup "niri-dynamic-workspaces" "daemon"
spawn-at-startup "vicinae" "server"
spawn-at-startup "bash" "-c" "wl-paste --watch cliphist store &"
+32
View File
@@ -0,0 +1,32 @@
// ============================================================================
// ANIMATIONS
// ============================================================================
// Tuned to complement quickshell's expressive Material motion curves
// QS uses ~500ms for main movements, ~400ms enter, ~200ms exit
animations {
workspace-switch {
spring damping-ratio=1.0 stiffness=4000 epsilon=0.0001
}
window-open {
spring damping-ratio=1.0 stiffness=5000 epsilon=0.0001
}
window-close {
spring damping-ratio=1.0 stiffness=6000 epsilon=0.0001
}
horizontal-view-movement {
spring damping-ratio=1.0 stiffness=4500 epsilon=0.0001
}
window-movement {
spring damping-ratio=1.0 stiffness=5000 epsilon=0.0001
}
window-resize {
spring damping-ratio=1.0 stiffness=5500 epsilon=0.0001
}
config-notification-open-close {
spring damping-ratio=1.0 stiffness=5000 epsilon=0.0001
}
screenshot-ui-open {
spring damping-ratio=1.0 stiffness=5000 epsilon=0.0001
}
}
+156
View File
@@ -0,0 +1,156 @@
// ============================================================================
// KEYBINDINGS
// ============================================================================
binds {
// System
Mod+Tab repeat=false { toggle-overview; }
Mod+Shift+E { quit; }
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
// ii Overview (daemon)
Mod+Space repeat=false { spawn "vicinae" "toggle"; }
Mod+Shift+Space repeat=false { spawn "vicinae" "vicinae://launch/core/search-emojis"; }
Mod+Shift+Return repeat=false { spawn "vicinae" "vicinae://launch/wm/switch-windows"; }
Mod+BackSpace { focus-window-previous; }
// ii Clipboard
Mod+P { spawn "vicinae" "vicinae://launch/clipboard/history"; }
Mod+Ctrl+R { spawn "noctalia" "msg" "plugin" "prdlk/ostt:recorder" "focused" "toggle"; }
// ii Region tools
// Goliath: mosh + tmux and the tmux keymaps live in ~/.config/kitty/goliath.conf
Mod+Shift+G { spawn-sh "kitty --class=kitty-goliath --title=goliath --config ~/.config/kitty/goliath.conf"; }
Mod+S { spawn "dot-screenshot" "region"; }
Mod+Shift+S { spawn "dot-screenshot" "window"; }
Mod+Ctrl+S { spawn "dot-screenshot" "monitor-focused"; }
Mod+Ctrl+Shift+S { spawn "dot-screenshot" "monitor-all"; }
// v4: Mod+Period { spawn-sh "qs -c noctalia-shell ipc call controlCenter toggle"; }
// v4: Mod+Comma { spawn-sh "qs -c noctalia-shell ipc call settings toggle"; }
Mod+Period { spawn-sh "noctalia msg panel-toggle control-center"; }
Mod+Comma { spawn-sh "noctalia msg settings-toggle"; }
Super+Ctrl+A { spawn "vicinae" "vicinae://launch/applications/com.anthropic.Claude"; }
Super+Ctrl+G { spawn "vicinae" "vicinae://launch/applications/gemini-desktop"; }
Super+Alt+Ctrl+H { spawn "niri-launch-ai"; }
Super+Alt+Ctrl+J { spawn "niri-launch-terminal"; }
Super+Alt+Ctrl+K { spawn "niri-launch-browser"; }
Super+Alt+Ctrl+O { spawn "niri-launch" "obsidian"; }
Super+Alt+Ctrl+W { spawn "vicinae" "vicinae://launch/applications/tldraw_offline"; }
Super+Alt+Ctrl+E { spawn "vicinae" "vicinae://launch/applications/com.fastmail.Fastmail"; }
Super+Alt+Ctrl+B { spawn "vicinae" "vicinae://launch/applications/beeper"; }
Super+Alt+Ctrl+G { spawn "vicinae" "vicinae://launch/applications/com.mitchellh.ghostty"; }
Super+Alt+Ctrl+L { spawn "vicinae" "vicinae://launch/applications/WebApp-Linear3312"; }
Super+Alt+Ctrl+M { spawn "vicinae" "vicinae://launch/applications/beeper"; }
Super+Alt+Ctrl+T { spawn "vicinae" "vicinae://launch/applications/todoist"; }
Super+Alt+Ctrl+N { spawn "noctalia" "msg" "panel-open" "noctalia/notes:panel"; }
Super+Alt+Ctrl+F { spawn "vicinae" "vicinae://launch/applications/org.gnome.Nautilus"; }
Super+Alt+Ctrl+Space { spawn "vicinae" "vicinae://launch/applications/io.github.faridjaff.StickyNotesCanvas"; }
Super+Alt+Ctrl+Return { spawn "vicinae" "vicinae://launch/wm/switch-windows"; }
Super+Shift+Alt+Ctrl+W { spawn "niri-dynamic-workspaces" "switch" "w"; }
Super+Shift+Alt+Ctrl+H { spawn "niri-dynamic-workspaces" "switch" "h"; }
Super+Alt+Ctrl+Y { spawn "niri-launch-webapp"; }
Super+Alt+Ctrl+X { spawn "niri-dynamic-workspaces" "switch" "x"; }
// ─── Monitors ─── (Vertical)
Mod+Left { focus-monitor-left; }
Mod+Up { focus-monitor-up; }
Mod+Right { focus-monitor-right; }
Mod+Shift+Down { move-column-to-monitor-right; }
Mod+Shift+Up { move-column-to-monitor-left; }
// ─── Layout ───
Mod+R { switch-preset-column-width; }
Mod+Shift+R { switch-preset-window-height; }
Mod+Shift+F { maximize-column; }
Mod+F { expand-column-to-available-width; }
Super+C { center-column; }
Mod+Ctrl+C { center-visible-columns; }
Mod+Ctrl+F { fullscreen-window; }
Mod+Ctrl+O { toggle-window-floating; }
// ─── Window Sizing: hjkl ───
Alt+Shift+H { set-column-width "-10%"; }
Alt+Shift+J { set-window-height "-10%"; }
Alt+Shift+K { set-window-height "+10%"; }
Alt+Shift+L { set-column-width "+10%"; }
// Window management
Mod+Q repeat=false { spawn "/home/prad/.local/bin/niri-smart-close"; }
// Focus
Mod+H { focus-column-left-or-last; }
Mod+L { focus-column-right-or-first; }
Mod+J { focus-window-or-workspace-down; }
Mod+K { focus-window-or-workspace-up; }
// Workspaces
Mod+Shift+J { move-column-to-workspace-down; }
Mod+Shift+K { move-column-to-workspace-up; }
// Monitors
Super+O { focus-monitor-next; }
Super+Ctrl+J { focus-monitor-next; }
Super+Ctrl+K { focus-monitor-previous; }
Super+Shift+O { move-column-to-monitor-next; }
Mod+Ctrl+Shift+J { move-column-to-monitor-next; }
Mod+Ctrl+Shift+K { move-column-to-monitor-previous; }
// Columns
Super+Ctrl+H { focus-column-first; }
Super+Ctrl+L { focus-column-last; }
Super+Ctrl+Shift+H { move-column-to-first; }
Super+Ctrl+Shift+L { move-column-to-last; }
// Tabs
Mod+W { toggle-column-tabbed-display; }
Mod+Shift+H { spawn "/home/prad/.local/bin/niri-smart-move" "left"; }
Mod+Shift+L { spawn "/home/prad/.local/bin/niri-smart-move" "right"; }
// Screenshots (native)
Print { screenshot; }
Ctrl+Print { screenshot-screen; }
Alt+Print { screenshot-window; }
// ========================================================================
// HARDWARE KEYS - Audio, Brightness, Media
// ========================================================================
// These use noctalia IPC so the OSD (On Screen Display) shows feedback
Mod+F24 { spawn "voxtype" "record" "toggle" "--profile" "hermes"; }
// ─── Media Controls ───
// v4: XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume increase"; }
// v4: XF86AudioLowerVolume allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume decrease"; }
// v4: XF86AudioMute allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume muteOutput"; }
// v4: XF86AudioMicMute allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume muteInput"; }
// v4: XF86AudioNext allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media next"; }
// v4: XF86AudioPrev allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media previous"; }
// v4: XF86AudioPlay allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media playPause"; }
// v4: XF86AudioPause allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media playPause"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "noctalia msg volume-up"; }
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "noctalia msg volume-down"; }
XF86AudioMute allow-when-locked=true { spawn-sh "noctalia msg volume-mute"; }
XF86AudioMicMute allow-when-locked=true { spawn-sh "noctalia msg mic-mute"; }
XF86AudioNext allow-when-locked=true { spawn-sh "noctalia msg media next"; }
XF86AudioPrev allow-when-locked=true { spawn-sh "noctalia msg media previous"; }
XF86AudioPlay allow-when-locked=true { spawn-sh "noctalia msg media toggle"; }
XF86AudioPause allow-when-locked=true { spawn-sh "noctalia msg media toggle"; }
// ─── Brightness Controls ───
// v4: XF86MonBrightnessUp allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call brightness increase"; }
// v4: XF86MonBrightnessDown allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call brightness decrease"; }
XF86MonBrightnessUp allow-when-locked=true { spawn-sh "noctalia msg brightness-up"; }
XF86MonBrightnessDown allow-when-locked=true { spawn-sh "noctalia msg brightness-down"; }
// Power / Session
// v4: Mod+Shift+Q { spawn-sh "qs -c noctalia-shell ipc call sessionMenu toggle"; }
Mod+Shift+Q hotkey-overlay-title="Session Menu: noctalia session" { spawn-sh "noctalia msg panel-toggle session"; }
}
+34
View File
@@ -0,0 +1,34 @@
/*
Noctalia v5: disable xray on all our surfaces so blur looks more realistic.
Noctalia publishes blur regions automatically when ext-background-effects is available.
*/
layer-rule {
match namespace="^noctalia-(bar-[^\"]+|notification|dock|panel|attached-panel|osd)$"
background-effect {
xray false
//blur false
}
}
// Option 2 (Stationary Wallpaper): place the regular wallpaper on the backdrop.
layer-rule {
match namespace="^noctalia-wallpaper"
place-within-backdrop true
}
// Set transparent workspace background color so you see the backdrop at all times.
layout {
background-color "transparent"
}
// Optionally, disable the workspace shadows in the overview.
overview {
workspace-shadow {
off
}
}
+47
View File
@@ -0,0 +1,47 @@
// ============================================================================
// OUTPUTS
// ============================================================================
//
// // Apple Display
// output "Apple Computer Inc StudioDisplay 0x984262A7" {
// position x=0 y=0
// scale 1.5
// layout {
// center-focused-column "never"
// always-center-single-column true
// gaps 8
// default-column-width {
// proportion 0.75
// }
// preset-column-widths {
// proportion 0.25
// proportion 0.5
// proportion 0.75
// }
// }
// }
//
//
//
output "DP-5" {
off
}
//
//
// output "DP-4" {
// off
// }
// ============================================================================
// OUTPUTS
// ============================================================================
// The Studio Display exposes a phantom second connector (DP-4/5/6, varies per
// boot) whose only mode is 640x480. Connector name and EDID both shift, so it
// can't be matched in config — this script finds it by mode signature instead.
// spawn-at-startup "/home/prad/.config/niri/scripts/kill-phantom-display.fish"
include "91-internal-display.kdl"
// include "92-ultrawide.kdl"
include "93-apple-display.kdl"
include "94-portable-hdmi.kdl"
// include "95-portable-usbc.kdl"
+69
View File
@@ -0,0 +1,69 @@
// Internal Display
output "Tianma Microelectronics Ltd. TL134ADXP03 Unknown" {
position x=0 y=0
scale 1.5
variable-refresh-rate on-demand=true
layout {
always-center-single-column true
center-focused-column "never"
gaps 8
default-column-width { proportion 1.0; }
preset-column-widths {
proportion 0.5
proportion 1.0
}
}
}
workspace "1" {
open-on-output "Tianma Microelectronics Ltd. TL134ADXP03 Unknown"
}
window-rule {
match app-id="chrome-youtube.com__-Default"
match app-id="chromium"
draw-border-with-background false
open-focused true
open-maximized true
open-on-workspace "1"
}
workspace "2" {
open-on-output "Tianma Microelectronics Ltd. TL134ADXP03 Unknown"
}
window-rule {
match app-id="org.gnome.Calendar"
match app-id="discord"
match app-id="slack"
match app-id="com-fastmail-fastmail"
match app-id="gemini-desktop"
match app-id="Beeper"
match app-id="com.anthropic.Claude"
match app-id="Hermes"
match app-id="todoist"
draw-border-with-background false
open-focused true
open-maximized true
open-on-workspace "1"
}
workspace "3" {
open-on-output "Tianma Microelectronics Ltd. TL134ADXP03 Unknown"
}
window-rule {
match app-id="WebApp-CloudflarePersonal7594"
match app-id="WebApp-CloudflareWalletbase8881"
draw-border-with-background false
open-focused true
open-maximized true
open-on-workspace "1"
}
+24
View File
@@ -0,0 +1,24 @@
// ============================================================================
// OUTPUTS
// ============================================================================
output "Samsung Electric Company S34CG50 HNTY501103" {
position x=0 y=0
mode "3440x1440@100.00"
scale 1
variable-refresh-rate on-demand=true
layout {
center-focused-column "never"
always-center-single-column true
gaps 16
default-column-width {
proportion 0.3333
}
preset-column-widths {
proportion 0.3333
proportion 0.5
proportion 0.6667
}
}
}
+23
View File
@@ -0,0 +1,23 @@
// ============================================================================
// OUTPUTS
// ============================================================================
// Apple Display
output "Apple Computer Inc StudioDisplay 0x984262A7" {
scale 1.75
layout {
center-focused-column "never"
always-center-single-column true
gaps 8
default-column-width {
proportion 0.5
}
preset-column-widths {
proportion 0.25
proportion 0.3333
proportion 0.5
proportion 0.6667
}
}
}
+22
View File
@@ -0,0 +1,22 @@
// ============================================================================
// OUTPUTS
// ============================================================================
// Portable Display #1
output "PNP(AOP) 16PM1QB 14490001D3X00" {
transform "90"
layout {
always-center-single-column true
center-focused-column "never"
gaps 2
default-column-width {
proportion 1.0
}
preset-column-widths {
proportion 0.5
proportion 1.0
}
}
}
+20
View File
@@ -0,0 +1,20 @@
// ============================================================================
// OUTPUTS
// ============================================================================
output "ASUSTek COMPUTER INC ASUS MB16AC M8LMTF195749" {
position x=0 y=0
layout {
always-center-single-column true
center-focused-column "never"
gaps 2
default-column-width {
proportion 1.0
}
preset-column-widths {
proportion 0.5
proportion 1.0
}
}
}