anchor.diff:        default = with pkgs; [
           i3status xwayland rxvt_unicode dmenu
         ];
  +      defaultText = literalExample ''
  +        with pkgs; [ i3status xwayland rxvt_unicode dmenu ];
  +      '';
         example = literalExample ''
           with pkgs; [
  -          i3status xwayland rxvt_unicode dmenu
  +          i3lock light termite
           ]
         '';
         description = ''
  
positive.code: 
  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.
        '';
      };
  
  
negative.code:     environment.systemPackages = [ swayJoined ] ++ cfg.extraPackages;
      security.wrappers.sway = {
        program = "sway-setcap";
        source = "${swayPackage}/bin/sway";
        capabilities = "cap_sys_ptrace,cap_sys_tty_config=eip";
        owner = "root";
        group = "sway";
  