Files
dots/configs/niri_l/README.md
2026-04-29 19:17:54 -07:00

4.9 KiB
Raw Blame History

Installation

Arch Linux

sudo pacman -S niri

To have a better experience install all of the following packages

sudo pacman -S fuzzel mako xdg-desktop-portal-gtk xdg-desktop-portal-gnome swaybg swayidle swaylock xwayland-satellite udiskie hyprlock waybar

Default Replacements

Open terminal change from mod+T to mod+Return

Mod+T hotkey-overlay-title="Open a Terminal: alacritty" { spawn "alacritty"; }
# Changed to
Mod+Return hotkey-overlay-title="Open a Terminal: alacritty" { spawn "alacritty"; }

Open application launcher change from fuzzel to rofi-wayland

Mod+D hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; }
# Changed to
Mod+D hotkey-overlay-title="Run an Application: rofi" { spawn "~/Scripts/toggle-rofi.sh"; }

Setting Changed From Default Values

Input (Desktops)

    mouse {
        // off
        // natural-scroll
        // accel-speed 0.2
         accel-profile "flat"
        // scroll-method "no-scroll"
    }

Set accel-profile "flat" accel-speed can be changed as desired, each mouse value will vary

Input (Laptops)

    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"
    }

Set accel-profile "flat" for mouse and touchpad accel-speed can be changed as desired, each mouse value will vary

Binds

    // Suggested binds for running programs: terminal, app launcher, screen locker.
    Mod+Shift+Return { spawn "foot" "--app-id" "float"; }
    Mod+Ctrl+Return { spawn "kitty" "--class=floating-kitty"; }
    Mod+Shift+A hotkey-overlay-title="Open btop" { spawn "kitty" "btop"; }
    Mod+Shift+N hotkey-overlay-title="Open Obsidian" { spawn "obsidian"; }

Window Rules

window-rule {
    match app-id="float"
    open-floating true
}

Layout

layout {
    // Set gaps around windows in logical pixels.
    gaps 10

Change gaps 16 to gaps 10

Focus-ring

focus-ring {
        // Uncomment this line to disable the focus ring.
        // off

        // How many logical pixels the ring extends out from the windows.
        width 2

        // Colors can be set in a variety of ways:
        // - CSS named colors: "red"
        // - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
        // - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.

        // Color of the ring on the active monitor.
        // active-color "#7fc8ff"
	active-color "#fe8019"

        // Color of the ring on inactive monitors.
        //
        // The focus ring only draws around the active window, so the only place
        // where you can see its inactive-color is on other monitors.
        // inactive-color "#505050"
	inactive-color "#7c6f64"

Change width 4 to width 2 Change active-color "#7fc8ff" to active-color "fe8019" Change inactive-color "#505050" to inactive-color "#7c6f64"

Output

/-output "eDP-1" {
    // Uncomment this line to disable this output.
    // off

    // Resolution and, optionally, refresh rate of the output.
    // The format is "<width>x<height>" or "<width>x<height>@<refresh rate>".
    // If the refresh rate is omitted, niri will pick the highest refresh rate
    // for the resolution.
    // If the mode is omitted altogether or is invalid, niri will pick one automatically.
    // Run `niri msg outputs` while inside a niri instance to list all outputs and their modes.
    mode "1920x1080@120.030"

    // You can use integer or fractional scale, for example use 1.5 for 150% scale.
    scale 2

    // Transform allows to rotate the output counter-clockwise, valid values are:
    // normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270.
    transform "normal"

    // Position of the output in the global coordinate space.
    // This affects directional monitor actions like "focus-monitor-left", and cursor movement.
    // The cursor can only move between directly adjacent outputs.
    // Output scale and rotation has to be taken into account for positioning:
    // outputs are sized in logical, or scaled, pixels.
    // For example, a 3840×2160 output with scale 2.0 will have a logical size of 1920×1080,
    // so to put another output directly adjacent to it on the right, set its x to 1920.
    // If the position is unset or results in an overlap, the output is instead placed
    // automatically.
    position x=1280 y=0
}

Settings for output would need to be change as per device. I am mostly using niri on desktops. To get what resolutions your display can take run niri msg outputs

Independent File Configuration