// This config is in the KDL format: https://kdl.dev // "/-" comments out the following node. // Check the wiki for a full description of the configuration: // https://yalter.github.io/niri/Configuration:-Introduction include "input.kdl" include "output.kdl" include "layout.kdl" include "binds.kdl" // Add lines like this to spawn processes at startup. // Note that running niri as a session supports xdg-desktop-autostart, // which may be more convenient to use. // See the binds section below for more spawn examples. // This line starts waybar, a commonly used bar for Wayland compositors. spawn-at-startup "waybar" // 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 { // Uncomment this line to disable the "Important Hotkeys" pop-up at startup. // 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 // You can change the path where screenshots are saved. // A ~ at the front will be expanded to the home directory. // The path is formatted with strftime(3) to give you the screenshot date and time. screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" // You can also set this to null to disable saving screenshots to disk. // screenshot-path null // Animation settings. // The wiki explains how to configure individual animations: // https://yalter.github.io/niri/Configuration:-Animations 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 rules let you adjust behavior for individual windows. // Find more information on the wiki: // https://yalter.github.io/niri/Configuration:-Window-Rules // Work around WezTerm's initial configure bug // by setting an empty default-column-width. 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=r#"^org\.wezfurlong\.wezterm$"# default-column-width {} } // Open the Firefox picture-in-picture player as floating by default. window-rule { // This app-id regular expression will work for both: // - host Firefox (app-id is "firefox") // - Flatpak Firefox (app-id is "org.mozilla.firefox") match app-id=r#"firefox$"# title="^Picture-in-Picture$" open-floating true } // Example: block out two password managers from screen capture. // (This example rule is commented out with a "/-" in front.) /-window-rule { match app-id=r#"^org\.keepassxc\.KeePassXC$"# match app-id=r#"^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" } // Example: enable rounded corners for all windows. // (This example rule is commented out with a "/-" in front.) window-rule { geometry-corner-radius 12 clip-to-geometry true } cursor { xcursor-theme "breeze_cursors" }