aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRubén Beltrán del Río <jj@r.bdr.sh>2026-07-14 15:02:51 +0200
committerRubén Beltrán del Río <jj@r.bdr.sh>2026-09-02 23:47:42 +0200
commit6fe6fae6df2d732756910ea4381908ec1417a4d8 (patch)
tree68cc48d4b68a752fb73447421d3e3006bb3b6a9d
parent2460463dc0f5d87cad528fe46740feadc0826ea8 (diff)
Replace waybar/gnome/wpaperd/mako with noctalia/qt
-rw-r--r--config/niri/config.kdl77
1 files changed, 56 insertions, 21 deletions
diff --git a/config/niri/config.kdl b/config/niri/config.kdl
index a36c96e..89f970a 100644
--- a/config/niri/config.kdl
+++ b/config/niri/config.kdl
@@ -6,12 +6,17 @@
environment {
DISPLAY ":0"
MOZ_ENABLE_WAYLAND "1"
- QT_QPA_PLATFORM "wayland-egl"
+ QT_QPA_PLATFORM "wayland"
+ QT_WAYLAND_DISABLE_WINDOWDECORATION "0"
+ QT_QPA_PLATFORMTHEME "kde"
+ QT_QPA_PLATFORMTHEME_QT6 "kde"
SDL_VIDEODRIVER "wayland"
_JAVA_AWT_WM_NONREPARENTING "1"
ELECTRON_OZONE_PLATFORM_HINT "auto"
MPD_HOST "music.bdr.place"
- XDG_CURRENT_DESKTOP "gnome"
+ XDG_SESSION_TYPE "wayland"
+ XDG_CURRENT_DESKTOP "plasma"
+ XDG_MENU_PREFIX "arch- kbuildsycoca6 --noincremental"
}
// Input device configuration.
@@ -47,7 +52,7 @@ input {
mouse {
// off
- // natural-scroll
+ natural-scroll
// accel-speed 0.2
// accel-profile "flat"
// scroll-method "no-scroll"
@@ -77,18 +82,19 @@ gestures {
}
}
-// You can configure outputs by their name, which you can find
-// by running `niri msg outputs` while inside a niri instance.
-// The built-in laptop monitor is usually called "eDP-1".
-// Find more information on the wiki:
-// https://github.com/YaLTeR/niri/wiki/Configuration:-Outputs
-// Remember to uncomment the node by removing "/-"!
output "HDMI-A-1" {
mode "2560x1440@60.000"
scale 1
transform "normal"
position x=1280 y=0
}
+
+output "DP-1" {
+ mode "5120x2880@60.000"
+ variable-refresh-rate on-demand=true
+ scale 2
+}
+
output "eDP-1" {
// Uncomment this line to disable this output.
// off
@@ -141,9 +147,9 @@ layout {
// For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
proportion 0.25
- proportion 0.33333
+ proportion 0.3
proportion 0.5
- proportion 0.66667
+ proportion 0.7
// Fixed sets the width in logical pixels exactly.
// fixed 1920
@@ -153,7 +159,7 @@ layout {
// preset-window-heights { }
// You can change the default width of the new windows.
- default-column-width { proportion 0.5; }
+ default-column-width { proportion 0.3; }
// If you leave the brackets empty, the windows themselves will decide their initial width.
// default-column-width {}
@@ -260,14 +266,28 @@ layout {
}
}
+blur {
+ passes 2
+ offset 3
+ noise 0.25
+ saturation 1
+}
+
// 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.
// spawn-at-startup "alacritty" "-e" "fish"
-spawn-at-startup "xwayland-satellite"
-spawn-at-startup "wl-paste" "--watch" "cliphist" "store"
+// xwayland-satellite is spawned by niri itself since 25.08 — a second manual instance fights over the clipboard
+// spawn-at-startup "xwayland-satellite"
+// Secret Service provider (org.freedesktop.secrets) via KWallet, needed by noctalia
+spawn-at-startup "/usr/bin/ksecretd"
+// The portal daemon keeps the XDG_CURRENT_DESKTOP it started under; restart it
+// so it re-reads niri-portals.conf after switching from a Plasma session
+spawn-at-startup "systemctl" "--user" "restart" "xdg-desktop-portal.service"
spawn-at-startup "systemctl" "--user" "import-environment" "MPD_HOST"
+spawn-at-startup "noctalia"
+spawn-at-startup "~/.local/bin/idle.sh"
// 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.
@@ -311,6 +331,10 @@ window-rule {
window-rule {
match is-focused=false
+ opacity 0.8
+ background-effect {
+ blur true
+ }
shadow {
on
softness 15
@@ -339,6 +363,11 @@ window-rule {
open-floating true
}
+window-rule {
+ match app-id=r#"org.kde.plasma.emojier"#
+ open-floating true
+}
+
layer-rule {
match namespace="^wallpaper$"
place-within-backdrop true
@@ -379,6 +408,7 @@ window-rule {
window-rule {
geometry-corner-radius 4
clip-to-geometry true
+ draw-border-with-background false
}
binds {
@@ -398,10 +428,10 @@ binds {
// Suggested binds for running programs: terminal, app launcher, screen locker.
Mod+Return hotkey-overlay-title="Open Terminal (kitty)" { spawn "kitty"; }
- Mod+Space hotkey-overlay-title="Open Launcher (Desktop)" { spawn "j4-dmenu-desktop" "-d" "bemenu --single-instance -i -n -H 26 --hp 10 --fn 'InputSansCompressed Light 10' -p '>' --ff '#0f261F' --tf '#23C17C' --nf '#0f261F' --cf '#23C17C2' --af '#00140d' --hb '#23C17C' --hf '#DAE6E3' --nb '#DAE6E3' --tb '#DAE6E3' --fb '#DAE6E3' --cb '#DAE6E3' --ab '#DAE6E3'";}
+ Mod+Space { spawn-sh "noctalia msg panel-toggle launcher"; }
Mod+Shift+Space hotkey-overlay-title="Open Launcher (Terminal)" { spawn "bemenu-run" "--single-instance" "-i" "-n" "-H" "26" "--hp" "10" "--fn" "InputSansCompressed Light 10" "-p" ">" "--ff" "#0f261F" "--tf" "#23C17C" "--nf" "#0f261F" "--cf" "#23C17C2" "--af" "#00140d" "--hb" "#23C17C" "--hf" "#0f261F" "--hf" "#DAE6E3" "--nb" "#DAE6E3" "--tb" "#DAE6E3" "--fb" "#DAE6E3" "--cb" "#DAE6E3" "--ab" "#DAE6E3";}
- Mod+Alt+L hotkey-overlay-title="Lock Screen" { spawn "swaylock"; }
- Mod+Ctrl+Space hotkey-overlay-title="Emoji Picker (smile)" { spawn "flatpak" "run" "it.mijorus.smile"; }
+ Mod+Alt+L hotkey-overlay-title="Lock Screen" { spawn "noctalia" "msg" "session" "lock"; }
+ Mod+Ctrl+Space hotkey-overlay-title="Emoji Picker" { spawn "plasma-emojier" "--replace"; }
// You can also use a shell. Do this if you need pipes, multiple commands, etc.
// Note: the entire command goes as a single argument in the end.
@@ -430,12 +460,12 @@ binds {
XF86Search hotkey-overlay-title="Contacts" { spawn "bash" "-c" "~/.dotfiles/scripts/contacts.sh"; }
- Mod+V hotkey-overlay-title="Open Clipboard Manager" { spawn "bash" "-c" "cliphist list | bemenu --single-instance -i -l 10 -n -H 26 --hp 10 --fn 'InputSansCompressed Light 10' -p '>' --ff '#0f261F' --tf '#23C17C' --nf '#0f261F' --cf '#23C17C2' --af '#00140d' --hb '#23C17C' --hf '#0f261F' --hf '#DAE6E3' --nb '#DAE6E3' --tb '#DAE6E3' --fb '#DAE6E3' --cb '#DAE6E3' --ab '#DAE6E3' | cliphist decode | wl-copy"; }
+ Mod+V hotkey-overlay-title="Open Clipboard Manager" { spawn "noctalia" "msg" "panel-open" "clipboard"; }
Mod+grave hotkey-overlay-title="Quick Terminal" { spawn "kitten" "quick-access-terminal"; }
- XF86AudioMicMute { spawn "wpaperctl" "next"; }
- Shift+XF86AudioMicMute { spawn "wpaperctl" "previous"; }
- Mod+Alt+Ctrl+XF86AudioMicMute hotkey-overlay-title=null { spawn "~/.wpaperalt"; }
+ Mod+F5 { spawn "noctalia" "msg" "wallpaper-next"; }
+ Mod+Shift+F5 { spawn "noctalia" "msg" "wallpaper-previous"; }
+ Mod+Alt+Shift+F5 hotkey-overlay-title=null { spawn "~/.wpaperalt"; }
XF86LaunchA { toggle-overview; }
Mod+XF86LaunchA hotkey-overlay-title="Open App Grid" { spawn "wofi"; }
@@ -460,6 +490,11 @@ binds {
Mod+Ctrl+K { move-window-up; }
Mod+Ctrl+L { move-column-right; }
+ // Binds for the Mouse
+ Ctrl+Left { focus-column-left; }
+ Ctrl+Right { focus-column-right; }
+ Ctrl+Up { toggle-overview; }
+
// Alternative commands that move across workspaces when reaching
// the first or last window in a column.
// Mod+J { focus-window-or-workspace-down; }