sxmo: fix so the sway session launched via phog includes debug logging
This commit is contained in:
parent
dec5826be8
commit
b65eca7dcf
|
@ -4,6 +4,39 @@
|
||||||
# sway-config docs: `man 5 sway`
|
# sway-config docs: `man 5 sway`
|
||||||
let
|
let
|
||||||
cfg = config.sane.gui.sway;
|
cfg = config.sane.gui.sway;
|
||||||
|
defaultPackage = let
|
||||||
|
# `defaultPackage` exists to create a `sway.desktop` file
|
||||||
|
# which will launch sway with our desired debugging facilities.
|
||||||
|
# i.e. redirect output to syslog.
|
||||||
|
scfg = config.programs.sway;
|
||||||
|
systemd-cat = "${pkgs.systemd}/bin/systemd-cat";
|
||||||
|
swayWithLogger = pkgs.writeShellScriptBin "sway-session" ''
|
||||||
|
echo "launching sway-session (sway.desktop)..." | ${systemd-cat} --identifier=sway-session
|
||||||
|
sway 2>&1 | ${systemd-cat} --identifier=sway-session
|
||||||
|
'';
|
||||||
|
origSway = (pkgs.sway.override {
|
||||||
|
# this override is what `programs.nixos` would do internally if we left `package` unset.
|
||||||
|
extraSessionCommands = scfg.extraSessionCommands;
|
||||||
|
extraOptions = scfg.extraOptions;
|
||||||
|
withBaseWrapper = scfg.wrapperFeatures.base;
|
||||||
|
withGtkWrapper = scfg.wrapperFeatures.gtk;
|
||||||
|
isNixOS = true;
|
||||||
|
# TODO: `enableXWayland = ...`?
|
||||||
|
});
|
||||||
|
desktop-file = pkgs.runCommand "sway-desktop-wrapper" {} ''
|
||||||
|
mkdir -p $out/share/wayland-sessions
|
||||||
|
substitute ${origSway}/share/wayland-sessions/sway.desktop $out/share/wayland-sessions/sway.desktop \
|
||||||
|
--replace 'Exec=sway' 'Exec=${swayWithLogger}/bin/sway-session'
|
||||||
|
'';
|
||||||
|
in pkgs.symlinkJoin {
|
||||||
|
inherit (origSway) name meta;
|
||||||
|
# the order of these `paths` is suchs that the desktop-file should claim share/wayland-sessions/sway.deskop,
|
||||||
|
# overriding whatever the origSway provides
|
||||||
|
paths = [ desktop-file origSway ];
|
||||||
|
passthru = {
|
||||||
|
inherit (origSway.passthru) providedSessions;
|
||||||
|
};
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = with lib; {
|
options = with lib; {
|
||||||
|
@ -11,6 +44,10 @@ in
|
||||||
default = false;
|
default = false;
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
};
|
};
|
||||||
|
sane.gui.sway.package = mkOption {
|
||||||
|
default = defaultPackage;
|
||||||
|
type = types.package;
|
||||||
|
};
|
||||||
sane.gui.sway.useGreeter = mkOption {
|
sane.gui.sway.useGreeter = mkOption {
|
||||||
description = ''
|
description = ''
|
||||||
launch sway via a greeter (like greetd's gtkgreet).
|
launch sway via a greeter (like greetd's gtkgreet).
|
||||||
|
@ -167,7 +204,7 @@ in
|
||||||
sway.gtkgreet = {
|
sway.gtkgreet = {
|
||||||
enable = true;
|
enable = true;
|
||||||
session.name = "sway-on-gtkgreet";
|
session.name = "sway-on-gtkgreet";
|
||||||
session.command = "${pkgs.sway}/bin/sway --debug";
|
session.command = "${cfg.package}/bin/sway";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -205,9 +242,12 @@ in
|
||||||
# - org.freedesktop.impl.portal.Screenshot
|
# - org.freedesktop.impl.portal.Screenshot
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPackages = []; # nixos adds swaylock, swayidle, foot, dmenu by default
|
extraPackages = []; # nixos adds swaylock, swayidle, foot, dmenu by default
|
||||||
|
extraOptions = [ "--debug" ];
|
||||||
# "wrapGAppsHook wrapper to execute sway with required environment variables for GTK applications."
|
# "wrapGAppsHook wrapper to execute sway with required environment variables for GTK applications."
|
||||||
wrapperFeatures.gtk = true;
|
wrapperFeatures.gtk = true;
|
||||||
|
package = cfg.package;
|
||||||
};
|
};
|
||||||
|
programs.xwayland.enable = cfg.config.xwayland;
|
||||||
# provide portals for:
|
# provide portals for:
|
||||||
# - org.freedesktop.impl.portal.Access
|
# - org.freedesktop.impl.portal.Access
|
||||||
# - org.freedesktop.impl.portal.Account
|
# - org.freedesktop.impl.portal.Account
|
||||||
|
|
|
@ -406,7 +406,6 @@ in
|
||||||
sway.enable = true;
|
sway.enable = true;
|
||||||
sway.gtkgreet.enable = true;
|
sway.gtkgreet.enable = true;
|
||||||
sway.gtkgreet.session.name = "sxmo-on-gtkgreet";
|
sway.gtkgreet.session.name = "sxmo-on-gtkgreet";
|
||||||
# sway.gtkgreet.session.command = "${package}/bin/sxmo_winit.sh";
|
|
||||||
sway.gtkgreet.session.command = "${pkgs.sway}/bin/sway --debug";
|
sway.gtkgreet.session.command = "${pkgs.sway}/bin/sway --debug";
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
@ -417,7 +416,7 @@ in
|
||||||
sway.enable = true;
|
sway.enable = true;
|
||||||
sway.greeterCmd = "${pkgs.phog}/libexec/phog";
|
sway.greeterCmd = "${pkgs.phog}/libexec/phog";
|
||||||
};
|
};
|
||||||
# phog locates sxmo_winit.sh via <env>/share/wayland-sessions
|
# phog locates sxmo_winit.sh (or sway.desktop) via <env>/share/wayland-sessions
|
||||||
environment.pathsToLink = [ "/share/wayland-sessions" ];
|
environment.pathsToLink = [ "/share/wayland-sessions" ];
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -427,7 +426,7 @@ in
|
||||||
session.name = "phog";
|
session.name = "phog";
|
||||||
session.command = "${pkgs.phog}/bin/phog";
|
session.command = "${pkgs.phog}/bin/phog";
|
||||||
};
|
};
|
||||||
# phog locates sxmo_winit.sh via <env>/share/wayland-sessions
|
# phog locates sxmo_winit.sh (or sway.desktop) via <env>/share/wayland-sessions
|
||||||
environment.pathsToLink = [ "/share/wayland-sessions" ];
|
environment.pathsToLink = [ "/share/wayland-sessions" ];
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user