b9851a975e
* bemenu: init at 2017-02-14 * velox: 2015-11-03 -> 2017-07-04 * orbment, velox: don't expose subprojects the development of orbment and velox got stuck their subprojects (bemenu, dmenu-wayland, st-wayland) don't work correctly outside of parent projects so hide them to not confuse people swc and wld libraries are unpopular and unlike wlc are not used by anything except velox * pythonPackages.pydbus: init at 0.6.0 * way-cooler: 0.5.2 -> 0.6.2 * nixos/way-cooler: add module * dconf module: use for wayland non-invasive approach for #31293 see discussion at #32210 * sway: embed LD_LIBRARY_PATH for #32755 * way-cooler: switch from buildRustPackage to buildRustCrate #31150
73 lines
1.8 KiB
Nix
73 lines
1.8 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
cfg = config.programs.sway;
|
|
sway = pkgs.sway;
|
|
|
|
swayWrapped = pkgs.writeShellScriptBin "sway" ''
|
|
if [ "$1" != "" ]; then
|
|
sway-setcap "$@"
|
|
exit
|
|
fi
|
|
${cfg.extraSessionCommands}
|
|
exec ${pkgs.dbus.dbus-launch} --exit-with-session sway-setcap
|
|
'';
|
|
swayJoined = pkgs.symlinkJoin {
|
|
name = "sway-wrapped";
|
|
paths = [ swayWrapped sway ];
|
|
};
|
|
in
|
|
{
|
|
options.programs.sway = {
|
|
enable = mkEnableOption "sway";
|
|
|
|
extraSessionCommands = mkOption {
|
|
default = "";
|
|
type = types.lines;
|
|
example = ''
|
|
export XKB_DEFAULT_LAYOUT=us,de
|
|
export XKB_DEFAULT_VARIANT=,nodeadkeys
|
|
export XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle,
|
|
'';
|
|
description = ''
|
|
Shell commands executed just before sway is started.
|
|
'';
|
|
};
|
|
|
|
extraPackages = mkOption {
|
|
type = with types; listOf package;
|
|
default = with pkgs; [
|
|
i3status xwayland rxvt_unicode dmenu
|
|
];
|
|
example = literalExample ''
|
|
with pkgs; [
|
|
i3status xwayland rxvt_unicode dmenu
|
|
]
|
|
'';
|
|
description = ''
|
|
Extra packages to be installed system wide.
|
|
'';
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
environment.systemPackages = [ swayJoined ] ++ cfg.extraPackages;
|
|
security.wrappers.sway = {
|
|
program = "sway-setcap";
|
|
source = "${sway}/bin/sway";
|
|
capabilities = "cap_sys_ptrace,cap_sys_tty_config=eip";
|
|
owner = "root";
|
|
group = "sway";
|
|
permissions = "u+rx,g+rx";
|
|
};
|
|
|
|
users.extraGroups.sway = {};
|
|
security.pam.services.swaylock = {};
|
|
|
|
hardware.opengl.enable = mkDefault true;
|
|
fonts.enableDefaultFonts = mkDefault true;
|
|
programs.dconf.enable = mkDefault true;
|
|
};
|
|
}
|