From 1f2bcec14329a3e84386208df23fa4e56d8e4295 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Fri, 24 May 2019 18:01:26 +0000 Subject: modules/sway: extract swayidle to own module --- modules/workstation/windowing/sway/config.in | 6 +-- modules/workstation/windowing/sway/default.nix | 56 ++++++++++++++-------- .../windowing/sway/swayidle/default.nix | 23 +++++++++ 3 files changed, 60 insertions(+), 25 deletions(-) create mode 100644 modules/workstation/windowing/sway/swayidle/default.nix (limited to 'modules/workstation/windowing') diff --git a/modules/workstation/windowing/sway/config.in b/modules/workstation/windowing/sway/config.in index 1833246d0bf5..ab7f50b5cb2b 100644 --- a/modules/workstation/windowing/sway/config.in +++ b/modules/workstation/windowing/sway/config.in @@ -89,8 +89,4 @@ bar { } } -exec swayidle \ - timeout 300 'swaylock -c 000000' \ - timeout 600 'swaymsg "output * dpms off"' \ - resume 'swaymsg "output * dpms on"' \ - before-sleep 'swaylock -c 000000' +@extraConfig@ diff --git a/modules/workstation/windowing/sway/default.nix b/modules/workstation/windowing/sway/default.nix index 23076c475001..2aa073b7d943 100644 --- a/modules/workstation/windowing/sway/default.nix +++ b/modules/workstation/windowing/sway/default.nix @@ -1,29 +1,45 @@ -{ pkgs, ... }: +{ pkgs, lib, config, ... }: -let - config = pkgs.substituteAll { - src = ./config.in; - inherit status_command choose_workspace; - }; +{ + imports = [ ./swayidle ]; - status_command = pkgs.substituteAll { - src = ./status_command.in; - isExecutable = true; - inherit (pkgs) execline; + options = { + programs.sway.extraConfig = with lib; mkOption { + type = types.lines; + description = "Lines to append to sway's config file"; + default = ""; + }; }; - choose_workspace = pkgs.substituteAll { - src = ./choose_workspace.in; - isExecutable = true; - inherit (pkgs) execline jq; - }; + config = let + cfg = config.programs.sway; -in + configFile = pkgs.substituteAll { + src = ./config.in; + inherit choose_workspace status_command; + inherit (cfg) extraConfig; + }; -{ - environment.systemPackages = with pkgs; [ choose ]; + status_command = pkgs.substituteAll { + src = ./status_command.in; + isExecutable = true; + inherit (pkgs) execline; + }; - programs.sway.enable = true; + choose_workspace = pkgs.substituteAll { + src = ./choose_workspace.in; + isExecutable = true; + inherit (pkgs) execline jq; + }; - xdg.config.users.qyliss.paths."sway/config" = config; + in + + { + environment.systemPackages = with pkgs; [ choose ]; + + programs.sway.enable = true; + programs.swayidle.enable = true; + + xdg.config.users.qyliss.paths."sway/config" = configFile; + }; } diff --git a/modules/workstation/windowing/sway/swayidle/default.nix b/modules/workstation/windowing/sway/swayidle/default.nix new file mode 100644 index 000000000000..8e5f264b5038 --- /dev/null +++ b/modules/workstation/windowing/sway/swayidle/default.nix @@ -0,0 +1,23 @@ +{ lib, config, ... }: + +let + cfg = config.programs.swayidle; +in + +with lib; + +{ + options = { + programs.swayidle.enable = mkEnableOption "swayidle"; + }; + + config = mkIf cfg.enable { + programs.sway.extraConfig = '' + exec swayidle \ + timeout 300 'swaylock -c 000000' \ + timeout 600 'swaymsg "output * dpms off"' \ + resume 'swaymsg "output * dpms on"' \ + before-sleep 'swaylock -c 000000' + ''; + }; +} -- cgit 1.4.1