diff options
author | aszlig <aszlig@redmoonstudios.org> | 2014-05-02 01:21:35 +0200 |
---|---|---|
committer | aszlig <aszlig@redmoonstudios.org> | 2014-05-02 01:21:35 +0200 |
commit | 7a99937b12abbceadbdb227f9f661efb09fbe5b2 (patch) | |
tree | 02ed069dd84e4f6d9ea96207ce21544d6a730015 /modules/i3/default.nix | |
parent | 279a97b5f972b2229b3d76a3a859b11b016c4aca (diff) |
Move i3 configuration into its own module.
We want to keep common.nix nice and clean and in the long term the whole config should be more modular. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'modules/i3/default.nix')
-rw-r--r-- | modules/i3/default.nix | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/modules/i3/default.nix b/modules/i3/default.nix new file mode 100644 index 00000000..99849bf4 --- /dev/null +++ b/modules/i3/default.nix @@ -0,0 +1,56 @@ +{ pkgs, config, ... }: + +{ + services.xserver.windowManager = { + default = "i3"; + + i3.enable = true; + i3.configFile = with pkgs.lib; pkgs.substituteAll ({ + name = "i3.conf"; + src = ./i3.conf; + + inherit (pkgs) conky dmenu xterm pvolctrl; + inherit (pkgs.xorg) xsetroot; + leftHead = head config.services.xserver.xrandrHeads; + rightHead = last config.services.xserver.xrandrHeads; + + primaryNetInterface = "enp0s25"; + + conkyrc = pkgs.writeText "conkyrc" '' + cpu_avg_samples 2 + net_avg_samples 2 + no_buffers yes + out_to_console yes + out_to_ncurses no + out_to_stderr no + extra_newline no + update_interval 1.0 + uppercase no + use_spacer none + pad_percents 3 + use_spacer left + TEXT + ''; + } // (let + # Workaround for Synergy: we need to have polarizing heads. + leftHead = head config.services.xserver.xrandrHeads; + rightHead = last config.services.xserver.xrandrHeads; + in if config.networking.hostName == "mmrnmhrm" + then { inherit leftHead rightHead; } + else { leftHead = rightHead; rightHead = leftHead; } + ) // (let + wsConfig = if config.networking.hostName == "mmrnmhrm" + then [ "XMPP" null "chromium" null null + null null null null null ] + else [ "chromium" null null null null + null null null null null ]; + + mkWsName = num: name: let + mkPair = nameValuePair "ws${toString num}"; + in if name == null + then mkPair (toString num) + else mkPair "${toString num}: ${name}"; + + in listToAttrs (imap mkWsName wsConfig))); + }; +} |