i3-sway: only return current user's socket (#2914)

Constrain the pgrep command to only return results for the current user.
Additionally, quote the socket variables to prevent splitting.

Previously, if multiple users on a system were running `sway`, the
`pgrep` used in finding `swaySocket` would return multiple results. As a
result, reloads of sway would fail.

Fixes #2912.
main
Nathan Typanski 2 years ago committed by GitHub
parent 65a32578d9
commit 6f025b3825
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      modules/services/window-managers/i3-sway/sway.nix

@ -434,8 +434,8 @@ in {
xdg.configFile."sway/config" = {
source = configFile;
onChange = ''
swaySocket=''${XDG_RUNTIME_DIR:-/run/user/$UID}/sway-ipc.$UID.$(${pkgs.procps}/bin/pgrep -x sway || true).sock
if [ -S $swaySocket ]; then
swaySocket="''${XDG_RUNTIME_DIR:-/run/user/$UID}/sway-ipc.$UID.$(${pkgs.procps}/bin/pgrep --uid $UID -x sway || true).sock"
if [ -S "$swaySocket" ]; then
${pkgs.sway}/bin/swaymsg -s $swaySocket reload
fi
'';

Loading…
Cancel
Save