diff --git a/flake.nix b/flake.nix index f6a40c9..f7dd7df 100644 --- a/flake.nix +++ b/flake.nix @@ -107,7 +107,7 @@ #codex = prev.callPackage ./pkgs/codex/package.nix { }; flow = prev.callPackage ./pkgs/flow/package.nix { }; opencode = prev.callPackage ./pkgs/opencode/package.nix { }; - pi-coding-agent = prev.callPackage ./pkgs/pi-coding-agent/package.nix { }; + #pi-coding-agent = prev.callPackage ./pkgs/pi-coding-agent/package.nix { }; xai-grok = prev.callPackage ./pkgs/xai-grok/package.nix { }; #beads = # let diff --git a/hosts/liminal/configuration.nix b/hosts/liminal/configuration.nix index 02ca187..86b5995 100644 --- a/hosts/liminal/configuration.nix +++ b/hosts/liminal/configuration.nix @@ -266,7 +266,7 @@ config = { hyprland = { default = [ "hyprland" "gtk" ]; - "org.freedesktop.impl.portal.ScreenCast" = [ "hyprland" ]; + "org.freedesktop.impl.portal.ScreenCast" = [ "wlr" ]; "org.freedesktop.impl.portal.Screenshot" = [ "wlr" ]; "org.freedesktop.impl.portal.FileChooser" = [ "gtk" ]; "org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ]; @@ -444,6 +444,7 @@ nordzy-icon-theme nordzy-cursor-theme wl-clipboard + wl-mirror onlyoffice-desktopeditors calibre clipse @@ -474,7 +475,7 @@ whois plus42 sox # claude voice - pkgs.pi-coding-agent + pkgs.unstable.pi-coding-agent pkgs.xai-grok xrandr-invert-colors xcalib @@ -482,16 +483,17 @@ kanata ]; }; - # Soteria has a working auth UI on Hyprland. Plain start-hyprland never - # activates graphical-session.target and doesn't import XDG_SESSION_ID into - # systemd --user, so wrap the agent and start it when Wayland is up. + # With Hyprland under UWSM, tie the polkit agent to the graphical session + # instead of path-triggering it from the Wayland socket. Keep the XDG + # session-id wrapper because systemd --user still doesn't export it here, + # and kill any stale soteria process by full command path before starting. security.soteria.enable = true; systemd.user.services.polkit-soteria = { - wantedBy = lib.mkForce [ ]; - wants = lib.mkForce [ ]; - after = lib.mkForce [ ]; - unitConfig.StartLimitIntervalSec = 0; + wantedBy = lib.mkForce [ "graphical-session.target" ]; + partOf = [ "graphical-session.target" ]; + after = lib.mkForce [ "graphical-session.target" ]; serviceConfig = { + ExecStartPre = "-${pkgs.procps}/bin/pkill -f ${lib.getExe pkgs.soteria}"; ExecStart = lib.mkForce ( pkgs.writeShellScript "polkit-soteria-wrapper" '' if [ -z "''${XDG_SESSION_ID:-}" ]; then @@ -502,20 +504,10 @@ exec ${lib.getExe pkgs.soteria} '' ); - Restart = lib.mkForce "on-failure"; - RestartSec = lib.mkForce 5; + Restart = lib.mkForce "no"; TimeoutStopSec = 10; }; }; - systemd.user.paths.polkit-soteria-wayland = { - description = "Start soteria polkit agent when Wayland is available"; - wantedBy = [ "default.target" ]; - pathConfig = { - PathExistsGlob = "/run/user/%U/wayland-*"; - Unit = "polkit-soteria.service"; - MakeDirectory = false; - }; - }; # Enable automatic login for the user. services.displayManager.autoLogin.enable = false;