sway: enable logging at both levels (base sway and layered sway)
This commit is contained in:
parent
9aca00c186
commit
768bc35940
|
@ -72,6 +72,38 @@ let
|
||||||
];
|
];
|
||||||
# waybar-config-text = lib.generators.toJSON {} waybar-config;
|
# waybar-config-text = lib.generators.toJSON {} waybar-config;
|
||||||
waybar-config-text = (pkgs.formats.json {}).generate "waybar-config.json" waybar-config;
|
waybar-config-text = (pkgs.formats.json {}).generate "waybar-config.json" waybar-config;
|
||||||
|
|
||||||
|
# bare sway launcher
|
||||||
|
sway-launcher = pkgs.writeShellScriptBin "sway-launcher" ''
|
||||||
|
${pkgs.sway}/bin/sway --debug > /tmp/sway.log 2>&1
|
||||||
|
'';
|
||||||
|
# start sway and have it construct the gtkgreeter
|
||||||
|
sway-as-greeter = pkgs.writeShellScriptBin "sway-as-greeter" ''
|
||||||
|
${pkgs.sway}/bin/sway --debug --config ${sway-config-into-gtkgreet} > /tmp/sway-as-greeter.log 2>&1
|
||||||
|
'';
|
||||||
|
# (config file for the above)
|
||||||
|
sway-config-into-gtkgreet = pkgs.writeText "greetd-sway-config" ''
|
||||||
|
exec "${gtkgreet-launcher}"
|
||||||
|
'';
|
||||||
|
# gtkgreet which launches a layered sway instance
|
||||||
|
gtkgreet-launcher = pkgs.writeShellScript "gtkgreet-launcher" ''
|
||||||
|
# NB: the "command" field here is run in the user's shell.
|
||||||
|
# so that command must exist on the specific user's path who is logging in. it doesn't need to exist system-wide.
|
||||||
|
${pkgs.greetd.gtkgreet}/bin/gtkgreet --layer-shell --command sway-launcher
|
||||||
|
'';
|
||||||
|
greeter-session = {
|
||||||
|
# greeter session config
|
||||||
|
command = "${sway-as-greeter}/bin/sway-as-greeter";
|
||||||
|
# alternatives:
|
||||||
|
# - TTY: `command = "${pkgs.greetd.greetd}/bin/agreety --cmd ${pkgs.sway}/bin/sway";`
|
||||||
|
# - autologin: `command = "${pkgs.sway}/bin/sway"; user = "colin";`
|
||||||
|
# - Dumb Login (doesn't work)": `command = "${pkgs.greetd.dlm}/bin/dlm";`
|
||||||
|
};
|
||||||
|
greeterless-session = {
|
||||||
|
# no greeter
|
||||||
|
command = "${sway-launcher}/bin/sway-launcher";
|
||||||
|
user = "colin";
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
|
@ -91,41 +123,19 @@ in
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
sane.gui.enable = true;
|
sane.gui.enable = true;
|
||||||
|
|
||||||
# instead of using `services.greetd`, can instead use SDDM by swapping in these lines.
|
# swap in these lines to use SDDM instead of `services.greetd`.
|
||||||
# services.xserver.displayManager.sddm.enable = true;
|
# services.xserver.displayManager.sddm.enable = true;
|
||||||
# services.xserver.enable = true;
|
# services.xserver.enable = true;
|
||||||
services.greetd = let
|
services.greetd = {
|
||||||
sway-launcher = pkgs.writeShellScript "sway-launcher" ''
|
|
||||||
# launch sway with logging enabled
|
|
||||||
${pkgs.sway}/bin/sway --debug > /home/colin/.sway.log 2>&1
|
|
||||||
'';
|
|
||||||
swayConfig-greeter = pkgs.writeText "greetd-sway-config" ''
|
|
||||||
# `-l` activates layer-shell mode.
|
|
||||||
exec "${pkgs.greetd.gtkgreet}/bin/gtkgreet -l -c ${sway-launcher}"
|
|
||||||
'';
|
|
||||||
default_session = {
|
|
||||||
"01" = {
|
|
||||||
# greeter session config
|
|
||||||
command = "${pkgs.sway}/bin/sway --config ${swayConfig-greeter}";
|
|
||||||
# alternatives:
|
|
||||||
# - TTY: `command = "${pkgs.greetd.greetd}/bin/agreety --cmd ${pkgs.sway}/bin/sway";`
|
|
||||||
# - autologin: `command = "${pkgs.sway}/bin/sway"; user = "colin";`
|
|
||||||
# - Dumb Login (doesn't work)": `command = "${pkgs.greetd.dlm}/bin/dlm";`
|
|
||||||
};
|
|
||||||
"0" = {
|
|
||||||
# no greeter
|
|
||||||
command = sway-launcher;
|
|
||||||
user = "colin";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
# greetd source/docs:
|
# greetd source/docs:
|
||||||
# - <https://git.sr.ht/~kennylevinsen/greetd>
|
# - <https://git.sr.ht/~kennylevinsen/greetd>
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
default_session = default_session."0${builtins.toString cfg.useGreeter}";
|
default_session = if cfg.useGreeter then greeter-session else greeterless-session;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
# we need the greeter's command to be on our PATH
|
||||||
|
users.users.colin.packages = [ sway-launcher ];
|
||||||
|
|
||||||
# some programs (e.g. fractal) **require** a "Secret Service Provider"
|
# some programs (e.g. fractal) **require** a "Secret Service Provider"
|
||||||
services.gnome.gnome-keyring.enable = true;
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user