1
0
mirror of https://github.com/nix-community/home-manager synced 2024-06-02 04:53:33 +02:00

Fix eval errors when i3 or sway null configs are null (#1989)

This commit is contained in:
Michal Sojka 2021-05-07 23:39:10 +02:00 committed by GitHub
parent ff959fd49a
commit b2dec35b86
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 116 additions and 133 deletions

View File

@ -258,14 +258,14 @@ in {
mkDefault (if (cfg.config.gaps != null) then pkgs.i3-gaps else pkgs.i3);
})
{
(mkIf (cfg.config != null) {
warnings = (optional (isList cfg.config.fonts)
"Specifying i3.config.fonts as a list is deprecated. Use the attrset version instead.")
++ flatten (map (b:
optional (isList b.fonts)
"Specifying i3.config.bars[].fonts as a list is deprecated. Use the attrset version instead.")
cfg.config.bars);
}
})
(mkIf (cfg.config != null
&& (any (s: s.workspace != null) cfg.config.startup)) {

View File

@ -410,34 +410,38 @@ in {
};
};
config = mkIf cfg.enable {
warnings = (optional (isList cfg.config.fonts)
"Specifying sway.config.fonts as a list is deprecated. Use the attrset version instead.")
++ flatten (map (b:
optional (isList b.fonts)
"Specifying sway.config.bars[].fonts as a list is deprecated. Use the attrset version instead.")
cfg.config.bars);
config = mkIf cfg.enable (mkMerge [
(mkIf (cfg.config != null) {
warnings = (optional (isList cfg.config.fonts)
"Specifying sway.config.fonts as a list is deprecated. Use the attrset version instead.")
++ flatten (map (b:
optional (isList b.fonts)
"Specifying sway.config.bars[].fonts as a list is deprecated. Use the attrset version instead.")
cfg.config.bars);
})
home.packages = optional (cfg.package != null) cfg.package
++ optional cfg.xwayland pkgs.xwayland;
xdg.configFile."sway/config" = {
source = configFile;
onChange = ''
swaySocket=''${XDG_RUNTIME_DIR:-/run/user/$UID}/sway-ipc.$UID.$(${pkgs.procps}/bin/pgrep -x sway || ${pkgs.coreutils}/bin/true).sock
if [ -S $swaySocket ]; then
echo "Reloading sway"
$DRY_RUN_CMD ${pkgs.sway}/bin/swaymsg -s $swaySocket reload
fi
'';
};
systemd.user.targets.sway-session = mkIf cfg.systemdIntegration {
Unit = {
Description = "sway compositor session";
Documentation = [ "man:systemd.special(7)" ];
BindsTo = [ "graphical-session.target" ];
Wants = [ "graphical-session-pre.target" ];
After = [ "graphical-session-pre.target" ];
{
home.packages = optional (cfg.package != null) cfg.package
++ optional cfg.xwayland pkgs.xwayland;
xdg.configFile."sway/config" = {
source = configFile;
onChange = ''
swaySocket=''${XDG_RUNTIME_DIR:-/run/user/$UID}/sway-ipc.$UID.$(${pkgs.procps}/bin/pgrep -x sway || ${pkgs.coreutils}/bin/true).sock
if [ -S $swaySocket ]; then
echo "Reloading sway"
$DRY_RUN_CMD ${pkgs.sway}/bin/swaymsg -s $swaySocket reload
fi
'';
};
};
};
systemd.user.targets.sway-session = mkIf cfg.systemdIntegration {
Unit = {
Description = "sway compositor session";
Documentation = [ "man:systemd.special(7)" ];
BindsTo = [ "graphical-session.target" ];
Wants = [ "graphical-session-pre.target" ];
After = [ "graphical-session-pre.target" ];
};
};
}
]);
}

View File

@ -3,4 +3,5 @@
i3-fonts = ./i3-fonts.nix;
i3-fonts-deprecated = ./i3-fonts-deprecated.nix;
i3-keybindings = ./i3-keybindings.nix;
i3-null-config = ./i3-null-config.nix;
}

View File

@ -13,17 +13,7 @@ with lib;
};
};
nixpkgs.overlays = [
(self: super: {
dmenu = super.dmenu // { outPath = "@dmenu@"; };
i3 = super.writeScriptBin "i3" "" // { outPath = "@i3@"; };
i3-gaps = super.writeScriptBin "i3" "" // { outPath = "@i3-gaps@"; };
i3status = super.i3status // { outPath = "@i3status@"; };
})
];
nixpkgs.overlays = [ (import ./i3-overlay.nix) ];
nmt.script = ''
assertFileExists home-files/.config/i3/config

View File

@ -22,17 +22,7 @@ with lib;
};
};
nixpkgs.overlays = [
(self: super: {
dmenu = super.dmenu // { outPath = "@dmenu@"; };
i3 = super.writeScriptBin "i3" "" // { outPath = "@i3@"; };
i3-gaps = super.writeScriptBin "i3" "" // { outPath = "@i3-gaps@"; };
i3status = super.i3status // { outPath = "@i3status@"; };
})
];
nixpkgs.overlays = [ (import ./i3-overlay.nix) ];
nmt.script = ''
assertFileExists home-files/.config/i3/config

View File

@ -16,16 +16,7 @@ with lib;
};
};
nixpkgs.overlays = [
(self: super: {
dmenu = super.dmenu // { outPath = "@dmenu@"; };
i3 = super.writeScriptBin "i3" "" // { outPath = "@i3@"; };
i3-gaps = super.writeScriptBin "i3-gaps" "" // {
outPath = "@i3-gaps@";
};
i3status = super.i3status // { outPath = "@i3status@"; };
})
];
nixpkgs.overlays = [ (import ./i3-overlay.nix) ];
nmt.script = ''
assertFileExists home-files/.config/i3/config

View File

@ -0,0 +1,20 @@
{ config, lib, pkgs, ... }:
with lib;
{
config = {
xsession.windowManager.i3 = {
enable = true;
config = null;
};
nixpkgs.overlays = [ (import ./i3-overlay.nix) ];
nmt.script = ''
assertFileExists home-files/.config/i3/config
assertFileContent home-files/.config/i3/config \
${pkgs.writeText "expected" "\n"}
'';
};
}

View File

@ -0,0 +1,12 @@
self: super:
# Avoid unnecessary downloads in CI jobs and/or make out paths
# constant, i.e., not containing hashes, version numbers etc.
{
dmenu = super.dmenu // { outPath = "@dmenu@"; };
i3 = super.writeScriptBin "i3" "" // { outPath = "@i3@"; };
i3-gaps = super.writeScriptBin "i3" "" // { outPath = "@i3-gaps@"; };
i3status = super.i3status // { outPath = "@i3status@"; };
}

View File

@ -3,6 +3,7 @@
sway-post-2003 = ./sway-post-2003.nix;
sway-followmouse = ./sway-followmouse.nix;
sway-followmouse-legacy = ./sway-followmouse-legacy.nix;
sway-null-config = ./sway-null-config.nix;
sway-null-package = ./sway-null-package.nix;
sway-modules = ./sway-modules.nix;
}

View File

@ -15,17 +15,7 @@ in {
config.menu = "${pkgs.dmenu}/bin/dmenu_run";
};
nixpkgs.overlays = [
(self: super: {
dmenu = dummy-package // { outPath = "@dmenu@"; };
rxvt-unicode-unwrapped = dummy-package // {
outPath = "@rxvt-unicode-unwrapped@";
};
i3status = dummy-package // { outPath = "@i3status@"; };
sway = dummy-package // { outPath = "@sway@"; };
xwayland = dummy-package // { outPath = "@xwayland@"; };
})
];
nixpkgs.overlays = [ (import ./sway-overlay.nix) ];
nmt.script = ''
assertFileExists home-files/.config/sway/config

View File

@ -19,21 +19,7 @@ in {
};
};
nixpkgs.overlays = [
(self: super: {
dmenu = dummy-package // { outPath = "@dmenu@"; };
rxvt-unicode-unwrapped = dummy-package // {
outPath = "@rxvt-unicode-unwrapped@";
};
sway = dummy-package // { outPath = "@sway@"; };
sway-unwrapped = dummy-package // {
outPath = "@sway-unwrapped@";
version = "1";
};
swaybg = dummy-package // { outPath = "@swaybg@"; };
xwayland = dummy-package // { outPath = "@xwayland@"; };
})
];
nixpkgs.overlays = [ (import ./sway-overlay.nix) ];
nmt.script = ''
assertFileExists home-files/.config/sway/config

View File

@ -19,18 +19,7 @@ in {
};
};
nixpkgs.overlays = [
(self: super: {
dmenu = dummy-package // { outPath = "@dmenu@"; };
rxvt-unicode-unwrapped = dummy-package // {
outPath = "@rxvt-unicode-unwrapped@";
};
sway = dummy-package // { outPath = "@sway@"; };
sway-unwrapped = dummy-package // { version = "1"; };
swaybg = dummy-package // { outPath = "@swaybg@"; };
xwayland = dummy-package // { outPath = "@xwayland@"; };
})
];
nixpkgs.overlays = [ (import ./sway-overlay.nix) ];
nmt.script = ''
assertFileExists home-files/.config/sway/config

View File

@ -21,17 +21,7 @@ in {
};
};
nixpkgs.overlays = [
(self: super: {
dmenu = dummy-package // { outPath = "@dmenu@"; };
rxvt-unicode-unwrapped = dummy-package // {
outPath = "@rxvt-unicode-unwrapped@";
};
i3status = dummy-package // { outPath = "@i3status@"; };
sway = dummy-package // { outPath = "@sway@"; };
xwayland = dummy-package // { outPath = "@xwayland@"; };
})
];
nixpkgs.overlays = [ (import ./sway-overlay.nix) ];
nmt.script = ''
assertFileExists home-files/.config/sway/config

View File

@ -0,0 +1,22 @@
{ config, lib, pkgs, ... }:
with lib;
{
config = {
wayland.windowManager.sway = {
enable = true;
config = null;
systemdIntegration = false;
package = pkgs.sway;
};
nixpkgs.overlays = [ (import ./sway-overlay.nix) ];
nmt.script = ''
assertFileExists home-files/.config/sway/config
assertFileContent home-files/.config/sway/config \
${pkgs.writeText "expected" "\n"}
'';
};
}

View File

@ -17,17 +17,7 @@ in {
config.menu = "${pkgs.dmenu}/bin/dmenu_run";
};
nixpkgs.overlays = [
(self: super: {
dmenu = dummy-package // { outPath = "@dmenu@"; };
rxvt-unicode-unwrapped = dummy-package // {
outPath = "@rxvt-unicode-unwrapped@";
};
i3status = dummy-package // { outPath = "@i3status@"; };
sway = dummy-package // { outPath = "@sway@"; };
xwayland = dummy-package // { outPath = "@xwayland@"; };
})
];
nixpkgs.overlays = [ (import ./sway-overlay.nix) ];
assertions = [{
assertion =

View File

@ -0,0 +1,17 @@
self: super:
# Avoid unnecessary downloads in CI jobs.
let dummy-package = super.runCommandLocal "dummy-package" { } "mkdir $out";
in {
dmenu = dummy-package // { outPath = "@dmenu@"; };
rxvt-unicode-unwrapped = dummy-package // {
outPath = "@rxvt-unicode-unwrapped@";
};
i3status = dummy-package // { outPath = "@i3status@"; };
sway = dummy-package // { outPath = "@sway@"; };
sway-unwrapped = dummy-package // {
outPath = "@sway-unwrapped@";
version = "1";
};
swaybg = dummy-package // { outPath = "@swaybg@"; };
xwayland = dummy-package // { outPath = "@xwayland@"; };
}

View File

@ -17,17 +17,7 @@ in {
config.menu = "${pkgs.dmenu}/bin/dmenu_run";
};
nixpkgs.overlays = [
(self: super: {
dmenu = dummy-package // { outPath = "@dmenu@"; };
rxvt-unicode-unwrapped = dummy-package // {
outPath = "@rxvt-unicode-unwrapped@";
};
sway = dummy-package // { outPath = "@sway@"; };
i3status = dummy-package // { outPath = "@i3status@"; };
xwayland = dummy-package // { outPath = "@xwayland@"; };
})
];
nixpkgs.overlays = [ (import ./sway-overlay.nix) ];
nmt.script = ''
assertFileExists home-files/.config/sway/config