added niri config with waybar, rip, nvim update, brightness sh

This commit is contained in:
liph22
2026-01-12 22:26:10 +01:00
parent d7b808ce59
commit c4df37dacb
38 changed files with 1801 additions and 414 deletions

View File

@@ -0,0 +1,322 @@
// 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
input {
keyboard {
xkb {
layout "ch"
variant "de_mac"
model "apple"
}
}
touchpad {
tap
natural-scroll
}
mouse {
}
trackpoint {
}
}
// x11 support for wayland
xwayland-satellite {
path "xwayland-satellite"
}
environment {
ELECTRON_OZONE_PLATFORM_HINT "auto"
ELECTRON_ENABLE_LOGGING "1"
}
output "eDP-1" {
mode "1920x1080@120.030"
position x=1280 y=0
}
layout {
gaps 2
center-focused-column "never"
preset-column-widths {
proportion 0.3333
proportion 0.5
proportion 0.66667
}
default-column-width { proportion 0.5; }
focus-ring {
width 2
active-color "#b4befe"
inactive-color "#a6adc8"
}
border {
off
width 4
active-color "#eba0ac"
inactive-color "#505050"
urgent-color "#9b0000"
}
shadow {
softness 30
spread 5
offset x=0 y=5
color "#0007"
}
struts {
}
}
spawn-at-startup "waybar" "-c" "/home/liph/.config/waybar-niri/config.jsonc" "-s" "/home/liph/.config/waybar-niri/style.css"
spawn-at-startup "swaync"
spawn-at-startup "swww-daemon"
spawn-at-startup "kitty"
spawn-at-startup "librewolf"
spawn-at-startup "sh" "-c" "sleep 5 && exec swayidle -w timeout 300 hyprlock timeout 600 'niri msg action power-off-monitors' resume 'niri msg action power-on-monitors' timeout 3600 'systemctl suspend'"
prefer-no-csd
gestures {
hot-corners {
off
}
}
// Open the Firefox picture-in-picture player as floating by default.
// window-rule {
// match app-id=r#"librewolf$"# title="^Picture-in-Picture$"
// open-floating false
// }
workspace "1"
workspace "2"
workspace "3"
// workspace "4"
// workspace "5"
// 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"
}
// terminal window-rule
window-rule {
match at-startup=true app-id="kitty"
open-on-workspace "1"
clip-to-geometry true
}
window-rule {
match at-startup=false app-id="kitty"
clip-to-geometry true
}
// browser window-rules
window-rule {
match at-startup=true app-id="librewolf"
open-on-workspace "2"
open-maximized true
// geometry-corner-radius 5
clip-to-geometry true
}
window-rule {
match at-startup=false app-id="librewolf"
clip-to-geometry true
}
window-rule {
match app-id="Claude"
open-on-workspace "3"
default-column-width { proportion 0.6667; }
clip-to-geometry true
}
window-rule {
geometry-corner-radius 5
clip-to-geometry true
}
binds {
// Mod+Shift+Slash { show-hotkey-overlay; }
Mod+Shift+L { spawn "hyprlock"; }
Mod+Alt+P hotkey-overlay-title="Open Bitwarden" { spawn "bitwarden-desktop"; }
Mod+Alt+T hotkey-overlay-title="Open Tipp10" { spawn "tipp10"; }
Mod+Alt+V hotkey-overlay-title="Open Vial" { spawn "Vial"; }
Mod+Alt+M hotkey-overlay-title="Open Tidal" { spawn "tidal-hifi" "--ozone-platform=wayland" "--enable-features=WaylandWindowDecorations"; }
Mod+Alt+O hotkey-overlay-title="Open Obsidian" { spawn "obsidian"; }
Mod+Alt+C hotkey-overlay-title="Open Claude" { spawn "claude-desktop"; }
Mod+Alt+Z hotkey-overlay-title="Open Librewolf" { spawn "librewolf"; }
Mod+Alt+Return hotkey-overlay-title="Open Kitty" { spawn "kitty"; }
Mod+Alt+Space hotkey-overlay-title="Open Wofi" { spawn "wofi" "--show" "drun"; }
// Brightness Controll
Mod+Ctrl+0 { spawn "sh" "-c" "~/scripts/layer_notify.sh 0"; }
Mod+Ctrl+1 { spawn "sh" "-c" "~/scripts/layer_notify.sh 1"; }
Mod+Ctrl+2 { spawn "sh" "-c" "~/scripts/layer_notify.sh 2"; }
Mod+Ctrl+3 { spawn "sh" "-c" "~/scripts/layer_notify.sh 3"; }
// Brightness controls
Mod+Ctrl+4 { spawn "sh" "-c" "~/scripts/niri_br_up.sh"; }
Mod+Ctrl+5 { spawn "sh" "-c" "~/scripts/niri_br_down.sh"; }
Mod+Ctrl+6 { spawn "sh" "-c" "~/scripts/niri_br_blue.sh"; }
Mod+Ctrl+7 { spawn "sh" "-c" "~/scripts/niri_br_reset.sh"; }
// Swaync Notifications
Mod+Ctrl+8 { spawn "swaync-client" "-t"; }
Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0"; }
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"; }
XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; }
XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; }
XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; }
XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; }
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
Mod+O repeat=false { toggle-overview; }
Mod+Shift+C repeat=false { close-window; }
Mod+Left { focus-column-left; }
Mod+Down { focus-window-down; }
Mod+Up { focus-window-up; }
Mod+Right { focus-column-right; }
Mod+H { focus-column-left; }
Mod+J { focus-window-down; }
Mod+K { focus-window-up; }
Mod+L { focus-column-right; }
Mod+Ctrl+Left { move-column-left; }
Mod+Ctrl+Down { move-window-down; }
Mod+Ctrl+Up { move-window-up; }
Mod+Ctrl+Right { move-column-right; }
Mod+Ctrl+H { move-column-left; }
Mod+Ctrl+J { move-window-down; }
Mod+Ctrl+K { move-window-up; }
Mod+Ctrl+L { move-column-right; }
// Mod+Shift+Down { focus-monitor-down; }
// Mod+Shift+Up { focus-monitor-up; }
// Mod+Shift+Right { focus-monitor-right; }
// Mod+Shift+H { focus-monitor-left; }
// Mod+Shift+J { focus-monitor-down; }
// Mod+Shift+K { focus-monitor-up; }
// Mod+Shift+L { focus-monitor-right; }
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
Mod+Page_Down { focus-workspace-down; }
Mod+Page_Up { focus-workspace-up; }
Mod+U { focus-workspace-down; }
Mod+I { focus-workspace-up; }
Mod+Alt+J { move-column-to-workspace-down; }
Mod+Alt+K { move-column-to-workspace-up; }
Mod+Alt+U { move-column-to-workspace-down; }
Mod+Alt+I { move-column-to-workspace-up; }
Mod+Shift+Page_Down { move-workspace-down; }
Mod+Shift+Page_Up { move-workspace-up; }
Mod+Shift+U { move-workspace-down; }
Mod+Shift+I { move-workspace-up; }
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
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 { focus-column-right; }
Mod+Shift+WheelScrollUp { focus-column-left; }
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
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+Ctrl+1 { move-column-to-workspace 1; }
// Mod+Ctrl+2 { move-column-to-workspace 2; }
// Mod+Ctrl+3 { move-column-to-workspace 3; }
// Mod+Ctrl+4 { move-column-to-workspace 4; }
// Mod+Ctrl+5 { move-column-to-workspace 5; }
// Mod+Ctrl+6 { move-column-to-workspace 6; }
// Mod+Ctrl+7 { move-column-to-workspace 7; }
// Mod+Ctrl+8 { move-column-to-workspace 8; }
// Mod+Ctrl+9 { move-column-to-workspace 9; }
Mod+BracketLeft { consume-or-expel-window-left; }
Mod+BracketRight { consume-or-expel-window-right; }
Mod+Comma { consume-window-into-column; }
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; }
Mod+Ctrl+F { expand-column-to-available-width; }
// Mod+C { center-column; }
Mod+Ctrl+C { center-visible-columns; }
Mod+Minus { set-column-width "-10%"; }
Mod+Equal { 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+V { toggle-window-floating; }
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
Mod+W { toggle-column-tabbed-display; }
// screenshot
Mod+Alt+4 { spawn "sh" "-c" "grim -g \"$(slurp)\" ~/Pictures/screenshot-$(date +%Y%m%d-%H%M%S).png && notify-send 'Screenshot' 'Area screenshot saved'"; }
// Fullscreen and save
Mod+Alt+5 { spawn "sh" "-c" "grim ~/Pictures/screenshot-$(date +%Y%m%d-%H%M%S).png && notify-send -t 2000 'Screenshot' 'Fullscreen screenshot saved'"; }
// Select area to clipboard
Mod+Shift+4 { spawn "sh" "-c" "grim -g \"$(slurp)\" - | wl-copy && notify-send -t 2000 'Screenshot' 'Fullscreen copied to clipboard'"; }
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
Mod+Shift+E { quit; }
Ctrl+Alt+Delete { quit; }
Mod+Shift+P { power-off-monitors; }
}

View File

@@ -0,0 +1,126 @@
// -*- mode: jsonc -*-
{
"layer": "top",
"position": "top",
"height": 30,
"spacing": 0,
"modules-left": ["custom/logo", "cpu", "memory", "bluetooth", "mpris"],
"modules-center": ["niri/workspaces"],
"modules-right": [
"tray",
"power-profiles-daemon",
// "niri/language",
"pulseaudio",
"network",
"battery",
"clock",
"custom/power",
],
"niri/workspaces": {
"format": "{icon}",
"format-icons": {
// Named workspaces
// (you need to configure them in niri)
// "1",
// "2": "2",
// "3": "3",
// "4": "4",
// "5": "5",
// "6": "6",
// Icons by state
"active": "",
"default": "",
},
},
"mpris": {
"format": "DEFAULT: {player_icon} {dynamic}",
"format-paused": "DEFAULT: {status_icon} <i>{dynamic}</i>",
"player-icons": {
"default": "▶",
"mpv": "🎵",
},
"status-icons": {
"paused": "⏸",
},
},
"tray": {
"icon-size": 14,
"spacing": 10,
},
"clock": {
"format": "{:%I:%M:%S %p}",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "{:%Y-%m-%d}",
"interval": 1,
},
"cpu": {
"format": "<span font='14' color='#a6d189'> </span> {usage}%",
"tooltip": false,
"interval": 1,
},
"memory": {
"format": "<span font='14' color='#ea999c'> </span> {}%",
"interval": 1,
},
"battery": {
"interval": 1,
"states": {
"warning": 30,
"critical": 15,
},
"format": "<span font='14' color='#8caaee'>{icon}</span> {capacity}%",
"format-full": "<span font='14' color='#8caaee'>{icon}</span> {capacity}%",
"format-charging": "<span font='14' color='#8caaee'>󰂄</span> {capacity}%",
"format-plugged": "<span font='14' color='#8caaee'>󰂄</span> {capacity}%",
"format-icons": ["󰁺", "󰁼", "󰁾", "󰂀", "󰂂"],
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "",
"balanced": "",
"power-saver": "󰌪",
},
},
"network": {
"format-wifi": "<span font='14' color='#a6d189'>󰖩</span> ",
"format-ethernet": "<span font='14' color='#e5c890'>󰈀</span>",
"format-disconnected": "<span font='14'color='#e78284'>󱚵</span>",
"format-alt": "{bandwidthDownBytes}",
"interval": 1,
},
"pulseaudio": {
"format": "<span font='14' color='#e5c890'>{icon}</span> {volume}%",
"format-muted": "<span font='14'>󰝟</span>",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["󰕿", "󰖀", "󰕾"],
},
"on-click": "pavucontrol",
},
"custom/power": {
"format": "⏻",
"tooltip": false,
"on-click": "wlogout -l ~/.config/niri/wlogout/layout",
},
"custom/logo": {
"format": "<span font='14'>󰣇</span>",
"on-click": "wofi --show drun",
},
"bluetooth": {
"format": "<span font='14'>󰂯</span>",
"format-disabled": "<span font='14' color='#8caaee'>󰂲</span>",
"format-connected": "<span font='14' color='#8caaee'>󰂱</span>",
"on-click": "blueman-manager",
},
}

View File

@@ -0,0 +1,26 @@
@define-color rosewater #f5e0dc;
@define-color flamingo #f2cdcd;
@define-color pink #f5c2e7;
@define-color mauve #cba6f7;
@define-color red #f38ba8;
@define-color maroon #eba0ac;
@define-color peach #fab387;
@define-color yellow #f9e2af;
@define-color green #a6e3a1;
@define-color teal #94e2d5;
@define-color sky #89dceb;
@define-color sapphire #74c7ec;
@define-color blue #89b4fa;
@define-color lavender #b4befe;
@define-color text #cdd6f4;
@define-color subtext1 #bac2de;
@define-color subtext0 #a6adc8;
@define-color overlay2 #9399b2;
@define-color overlay1 #7f849c;
@define-color overlay0 #6c7086;
@define-color surface2 #585b70;
@define-color surface1 #45475a;
@define-color surface0 #313244;
@define-color base #1e1e2e;
@define-color mantle #181825;
@define-color crust #11111b;

View File

@@ -0,0 +1,125 @@
* {
font-family: "FiraCode Nerd Font";
font-size: 13px;
}
window#waybar {
background-color: rgba(43, 48, 59, 0.5);
background: radial-gradient(alpha(@theme_base_color, 0.4), @theme_base_color);
color: @theme_fg_color;
transition-property: background-color;
transition-duration: 0.5s;
}
window#waybar.hidden {
opacity: 0.2;
}
button {
border: none;
border-radius: 0;
}
button:hover {
background: inherit;
}
#workspaces {
padding: 5px;
}
#workspaces button {
padding: 0 10px;
background-color: transparent;
color: @theme_fg_color;
border-radius: 10px;
}
#workspaces button:hover {
color: #e5c890;
}
#workspaces button.active,
#workspaces button.default,
#workspaces button.focused {
background: #babbf1;
}
#workspaces button.urgent {
background-color: #eb4d4b;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#tray,
#mode,
#idle_inhibitor,
#scratchpad,
#power-profiles-daemon,
#mpd {
padding: 0 10px;
color: @theme_fg_color;
}
#window,
#workspaces {
margin: 0 4px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#clock,
#battery,
#cpu,
#memory,
#backlight,
#network,
#pulseaudio,
#custom-media,
#tray,
#custom-power,
#bluetooth,
#power-profiles-daemon {
padding: 5px 15px;
color: @theme_text_color;
background-color: alpha(@theme_unfocused_bg_color, 0.4);
border-radius: 20px;
margin: 0 4px;
}
#custom-power {
background-color: #e78284;
border-radius: 20px 0 0 20px;
transition: all 250ms ease-in-out;
}
#battery.charging {
color: #00ff1c;
}
#clock {
border-radius: 20px;
margin: 0 5px;
}
#pulseaudio.muted {
color: orange;
}
#network.disconnected {
color: red;
}
#tray {
border-radius: 20px;
margin: 0 5px;
}
#custom-logo {
background-color: #8caaee;
padding: 0 17px;
border-radius: 0 20px 20px 0;
}
#custom-power {
margin: 0;
}
#bluetooth {
border-radius: 20px;
margin: 0 5px;
}

View File

@@ -0,0 +1,36 @@
{
"label": "lock",
"action": "hyprlock",
"text": "Lock",
"keybind": "l"
}
{
"label": "logout",
"action": "niri msg action quit",
"text": "Logout",
"keybind": "e"
}
{
"label": "suspend",
"action": "systemctl suspend",
"text": "Suspend",
"keybind": "u"
}
{
"label": "hibernate",
"action": "systemctl hibernate",
"text": "Hibernate",
"keybind": "h"
}
{
"label": "shutdown",
"action": "systemctl poweroff",
"text": "Shutdown",
"keybind": "s"
}
{
"label": "reboot",
"action": "systemctl reboot",
"text": "Reboot",
"keybind": "r"
}