home-environment: make home.keyboard
optional
When set to `null` then the `xsession` module will not attempt to manage the keyboard settings.
This commit is contained in:
parent
6cd5c8fca5
commit
b6e1d82685
|
@ -139,9 +139,12 @@ in
|
|||
};
|
||||
|
||||
home.keyboard = mkOption {
|
||||
type = keyboardSubModule;
|
||||
type = types.nullOr keyboardSubModule;
|
||||
default = {};
|
||||
description = "Keyboard configuration.";
|
||||
description = ''
|
||||
Keyboard configuration. Set to <literal>null</literal> to
|
||||
disable Home Manager keyboard management.
|
||||
'';
|
||||
};
|
||||
|
||||
home.sessionVariables = mkOption {
|
||||
|
|
|
@ -66,7 +66,9 @@ in
|
|||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.user.services.setxkbmap = {
|
||||
systemd.user = {
|
||||
services = mkIf (config.home.keyboard != null) {
|
||||
setxkbmap = {
|
||||
Unit = {
|
||||
Description = "Set up keyboard in X";
|
||||
After = [ "graphical-session-pre.target" ];
|
||||
|
@ -92,15 +94,17 @@ in
|
|||
"${pkgs.xorg.setxkbmap}/bin/setxkbmap ${args}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# A basic graphical session target for Home Manager.
|
||||
systemd.user.targets.hm-graphical-session = {
|
||||
targets.hm-graphical-session = {
|
||||
Unit = {
|
||||
Description = "Home Manager X session";
|
||||
Requires = [ "graphical-session-pre.target" ];
|
||||
BindsTo = [ "graphical-session.target" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.file.".xprofile".text = ''
|
||||
. "${config.home.profileDirectory}/etc/profile.d/hm-session-vars.sh"
|
||||
|
|
Loading…
Reference in a new issue