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