1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-12-23 10:19:48 +01:00

sway, bspwm: add extraConfigEarly (#2847)

This commit is contained in:
Matthew Toohey 2022-08-27 00:09:46 -04:00 committed by GitHub
parent 8e4220e6c6
commit d89bdff445
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 99 additions and 67 deletions

View file

@ -61,7 +61,9 @@ in {
home.packages = [ cfg.package ]; home.packages = [ cfg.package ];
xdg.configFile."bspwm/bspwmrc".source = pkgs.writeShellScript "bspwmrc" '' xdg.configFile."bspwm/bspwmrc".source = pkgs.writeShellScript "bspwmrc"
((optionalString (cfg.extraConfigEarly != "")
(cfg.extraConfigEarly + "\n")) + ''
${concatStringsSep "\n" (mapAttrsToList formatMonitor cfg.monitors)} ${concatStringsSep "\n" (mapAttrsToList formatMonitor cfg.monitors)}
${concatStringsSep "\n" (mapAttrsToList formatSetting cfg.settings)} ${concatStringsSep "\n" (mapAttrsToList formatSetting cfg.settings)}
@ -75,7 +77,7 @@ in {
${cfg.extraConfig} ${cfg.extraConfig}
${concatMapStringsSep "\n" formatStartupProgram cfg.startupPrograms} ${concatMapStringsSep "\n" formatStartupProgram cfg.startupPrograms}
''; '');
# for applications not started by bspwm, e.g. sxhkd # for applications not started by bspwm, e.g. sxhkd
xsession.profileExtra = '' xsession.profileExtra = ''

View file

@ -187,6 +187,13 @@ in {
''; '';
}; };
extraConfigEarly = mkOption {
type = types.lines;
default = "";
description =
"Like extraConfig, except commands are run at the start of the config file.";
};
monitors = mkOption { monitors = mkOption {
type = types.attrsOf (types.listOf types.str); type = types.attrsOf (types.listOf types.str);
default = { }; default = { };

View file

@ -263,7 +263,8 @@ let
seatStr = moduleStr "seat"; seatStr = moduleStr "seat";
configFile = pkgs.writeText "sway.conf" (concatStringsSep "\n" configFile = pkgs.writeText "sway.conf" (concatStringsSep "\n"
((if cfg.config != null then ((optional (cfg.extraConfigEarly != "") cfg.extraConfigEarly)
++ (if cfg.config != null then
with cfg.config; with cfg.config;
([ ([
(fontConfigStr fonts) (fontConfigStr fonts)
@ -425,6 +426,13 @@ in {
description = description =
"Extra configuration lines to add to ~/.config/sway/config."; "Extra configuration lines to add to ~/.config/sway/config.";
}; };
extraConfigEarly = mkOption {
type = types.lines;
default = "";
description =
"Like extraConfig, except lines are added to ~/.config/sway/config before all other configuration.";
};
}; };
config = mkIf cfg.enable (mkMerge [ config = mkIf cfg.enable (mkMerge [

View file

@ -1,3 +1,5 @@
extra config early
if [[ $(bspc query --desktops --names --monitor 'focused') == Desktop ]]; then if [[ $(bspc query --desktops --names --monitor 'focused') == Desktop ]]; then
bspc monitor 'focused' -d 'desktop 1' 'd'\''esk top' bspc monitor 'focused' -d 'desktop 1' 'd'\''esk top'
fi fi

View file

@ -24,6 +24,9 @@ with lib;
border = null; border = null;
unknownRule = 42; unknownRule = 42;
}; };
extraConfigEarly = ''
extra config early
'';
extraConfig = '' extraConfig = ''
extra config extra config
''; '';

View file

@ -1,6 +1,7 @@
{ {
sway-bar-focused-colors = ./sway-bar-focused-colors.nix; sway-bar-focused-colors = ./sway-bar-focused-colors.nix;
sway-bindkeys-to-code = ./sway-bindkeys-to-code.nix; sway-bindkeys-to-code-and-extra-config =
./sway-bindkeys-to-code-and-extra-config.nix;
sway-default = ./sway-default.nix; sway-default = ./sway-default.nix;
sway-followmouse = ./sway-followmouse.nix; sway-followmouse = ./sway-followmouse.nix;
sway-followmouse-legacy = ./sway-followmouse-legacy.nix; sway-followmouse-legacy = ./sway-followmouse-legacy.nix;

View file

@ -1,3 +1,5 @@
import $HOME/.cache/wal/colors-sway
font pango:monospace 8.000000 font pango:monospace 8.000000
floating_modifier Mod1 floating_modifier Mod1
default_border pixel 2 default_border pixel 2
@ -104,3 +106,4 @@ bar {
} }
exec "/nix/store/00000000000000000000000000000000-dbus/bin/dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP; systemctl --user start sway-session.target" exec "/nix/store/00000000000000000000000000000000-dbus/bin/dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP; systemctl --user start sway-session.target"
exec_always pkill flashfocus; flasfocus &

View file

@ -9,11 +9,17 @@
# overriding findutils causes issues # overriding findutils causes issues
config.menu = "${pkgs.dmenu}/bin/dmenu_run"; config.menu = "${pkgs.dmenu}/bin/dmenu_run";
config.bindkeysToCode = true; config.bindkeysToCode = true;
extraConfigEarly = ''
import $HOME/.cache/wal/colors-sway
'';
extraConfig = ''
exec_always pkill flashfocus; flasfocus &
'';
}; };
nmt.script = '' nmt.script = ''
assertFileExists home-files/.config/sway/config assertFileExists home-files/.config/sway/config
assertFileContent $(normalizeStorePaths home-files/.config/sway/config) \ assertFileContent $(normalizeStorePaths home-files/.config/sway/config) \
${./sway-bindkeys-to-code.conf} ${./sway-bindkeys-to-code-and-extra-config.conf}
''; '';
} }