3
0
Fork 0
forked from mirrors/nixpkgs

nixos/sway: Extend the descriptions and examples

This'll hopefully make it a bit easier to get started with Sway and make
some things about the module more obvious.
This commit is contained in:
Michael Weiss 2017-12-23 21:03:06 +01:00
parent ae03a11c86
commit 4be298bf6d

View file

@ -4,35 +4,42 @@ with lib;
let let
cfg = config.programs.sway; cfg = config.programs.sway;
sway = pkgs.sway; swayPackage = pkgs.sway;
swayWrapped = pkgs.writeShellScriptBin "sway" '' swayWrapped = pkgs.writeShellScriptBin "sway" ''
if [ "$1" != "" ]; then if [[ "$#" -ge 1 ]]; then
sway-setcap "$@" exec sway-setcap "$@"
exit else
fi
${cfg.extraSessionCommands} ${cfg.extraSessionCommands}
exec ${pkgs.dbus.dbus-launch} --exit-with-session sway-setcap exec ${pkgs.dbus.dbus-launch} --exit-with-session sway-setcap
fi
''; '';
swayJoined = pkgs.symlinkJoin { swayJoined = pkgs.symlinkJoin {
name = "sway-wrapped"; name = "sway-joined";
paths = [ swayWrapped sway ]; paths = [ swayWrapped swayPackage ];
}; };
in in {
{
options.programs.sway = { options.programs.sway = {
enable = mkEnableOption "sway"; enable = mkEnableOption ''
the tiling Wayland compositor Sway. After adding yourself to the "sway"
group you can manually launch Sway by executing "sway" from a terminal.
If you call "sway" with any parameters the extraSessionCommands won't be
executed and Sway won't be launched with dbus-launch'';
extraSessionCommands = mkOption { extraSessionCommands = mkOption {
default = "";
type = types.lines; type = types.lines;
default = "";
example = '' example = ''
export XKB_DEFAULT_LAYOUT=us,de # Define a keymap (US QWERTY is the default)
export XKB_DEFAULT_VARIANT=,nodeadkeys export XKB_DEFAULT_LAYOUT=de,us
export XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle, export XKB_DEFAULT_VARIANT=nodeadkeys
export XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle,caps:escape
# Change the Keyboard repeat delay and rate
export WLC_REPEAT_DELAY=660
export WLC_REPEAT_RATE=25
''; '';
description = '' description = ''
Shell commands executed just before sway is started. Shell commands executed just before Sway is started.
''; '';
}; };
@ -41,9 +48,12 @@ in
default = with pkgs; [ default = with pkgs; [
i3status xwayland rxvt_unicode dmenu i3status xwayland rxvt_unicode dmenu
]; ];
defaultText = literalExample ''
with pkgs; [ i3status xwayland rxvt_unicode dmenu ];
'';
example = literalExample '' example = literalExample ''
with pkgs; [ with pkgs; [
i3status xwayland rxvt_unicode dmenu i3lock light termite
] ]
''; '';
description = '' description = ''
@ -56,7 +66,7 @@ in
environment.systemPackages = [ swayJoined ] ++ cfg.extraPackages; environment.systemPackages = [ swayJoined ] ++ cfg.extraPackages;
security.wrappers.sway = { security.wrappers.sway = {
program = "sway-setcap"; program = "sway-setcap";
source = "${sway}/bin/sway"; source = "${swayPackage}/bin/sway";
capabilities = "cap_sys_ptrace,cap_sys_tty_config=eip"; capabilities = "cap_sys_ptrace,cap_sys_tty_config=eip";
owner = "root"; owner = "root";
group = "sway"; group = "sway";
@ -70,4 +80,6 @@ in
fonts.enableDefaultFonts = mkDefault true; fonts.enableDefaultFonts = mkDefault true;
programs.dconf.enable = mkDefault true; programs.dconf.enable = mkDefault true;
}; };
meta.maintainers = with lib.maintainers; [ gnidorah primeos ];
} }