From 831ae7bbc20f5d9848092e6ea75c33cc0000e6d1 Mon Sep 17 00:00:00 2001 From: moons Date: Thu, 30 Jul 2026 15:56:46 +0900 Subject: [PATCH] labwc --- modules/applications/labwc/home.nix | 6 +++- modules/applications/labwc/rc.xml | 24 ++++++++++++++- modules/applications/noctalia/home.nix | 42 ++++++++++++++++++++++++-- 3 files changed, 68 insertions(+), 4 deletions(-) diff --git a/modules/applications/labwc/home.nix b/modules/applications/labwc/home.nix index 956f79f..09c5ccf 100644 --- a/modules/applications/labwc/home.nix +++ b/modules/applications/labwc/home.nix @@ -13,7 +13,11 @@ # portals, Vicinae, and the idle manager follow the labwc session. ${lib.getExe' pkgs.systemd "systemctl"} --user --no-block start labwc-session.target - noctalia >/dev/null 2>&1 & + # labwc does not run XDG autostart entries itself. Start the input method + # explicitly so both native Wayland and XWayland applications can use it. + fcitx5 -d --replace >/dev/null 2>&1 & + + NOCTALIA_CONFIG_HOME="$HOME/.config/noctalia-labwc" noctalia >/dev/null 2>&1 & ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1 >/dev/null 2>&1 & ''; }; diff --git a/modules/applications/labwc/rc.xml b/modules/applications/labwc/rc.xml index 2071a50..4237980 100644 --- a/modules/applications/labwc/rc.xml +++ b/modules/applications/labwc/rc.xml @@ -14,7 +14,7 @@ yes - + @@ -32,6 +32,28 @@ + + + + + + + + + + + + + + + + + + + center + center + + diff --git a/modules/applications/noctalia/home.nix b/modules/applications/noctalia/home.nix index b4fc024..a401fa6 100644 --- a/modules/applications/noctalia/home.nix +++ b/modules/applications/noctalia/home.nix @@ -1,4 +1,9 @@ -{ pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let wallpapers = pkgs.fetchFromGitHub { owner = "moons-14"; @@ -6,6 +11,34 @@ let rev = "cc3256f4aaf2c8e7d16fb000b1ee251af54085db"; hash = "sha256-emQ/FqKqMq3YI5bLx8gBZg/ZE72OG9Ilh71ggq78WdQ="; }; + + labwcSettings = lib.recursiveUpdate config.programs.noctalia.settings { + dock = { + position = "bottom"; + icon_size = 32; + main_axis_padding = 10; + cross_axis_padding = 4; + item_spacing = 4; + margin_edge = 0; + radius = 8; + background_opacity = 0.9; + show_running = true; + auto_hide = false; + smart_auto_hide = false; + reserve_space = true; + active_scale = 1.0; + inactive_scale = 1.0; + magnification = false; + show_instance_count = true; + active_monitor_only = false; + }; + }; + + labwcRawConfig = (pkgs.formats.toml { }).generate "noctalia-labwc-config.toml" labwcSettings; + labwcConfig = pkgs.runCommand "noctalia-labwc-config" { } '' + ${lib.getExe config.programs.noctalia.package} config validate ${labwcRawConfig} + cp ${labwcRawConfig} $out + ''; in { home.packages = [ pkgs.networkmanagerapplet ]; @@ -20,7 +53,10 @@ in programs.noctalia = { enable = true; - systemd.enable = true; + + # Both compositors start Noctalia themselves so labwc can select its own + # config home without racing the generic graphical-session service. + systemd.enable = false; settings = { theme = { @@ -164,4 +200,6 @@ in ]; }; }; + + xdg.configFile."noctalia-labwc/noctalia/config.toml".source = labwcConfig; }