aboutsummaryrefslogtreecommitdiffstats
path: root/modules/desktop/window-manager
diff options
context:
space:
mode:
authorArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2024-11-08 21:32:55 +0530
committerArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2024-11-08 21:32:55 +0530
commit159fbf8c5573d85a731d2582b52b3e8cb223618c (patch)
treede3d89b3b026121e8d3f597eddd4302e001953ab /modules/desktop/window-manager
parent4b322dc7eb9339ec8297f05bd305f699755598e1 (diff)
downloadhome-manager-config-159fbf8c5573d85a731d2582b52b3e8cb223618c.tar.gz
home-manager-config-159fbf8c5573d85a731d2582b52b3e8cb223618c.zip
Added config for i3 window manager.
i3 configuration is not finished.
Diffstat (limited to 'modules/desktop/window-manager')
-rw-r--r--modules/desktop/window-manager/default.nix2
-rw-r--r--modules/desktop/window-manager/i3/default.nix38
2 files changed, 40 insertions, 0 deletions
diff --git a/modules/desktop/window-manager/default.nix b/modules/desktop/window-manager/default.nix
index 5d0f38e..2f36bce 100644
--- a/modules/desktop/window-manager/default.nix
+++ b/modules/desktop/window-manager/default.nix
@@ -3,6 +3,7 @@
{
imports = [
./bspwm
+ ./i3
./sxhkd
];
@@ -10,6 +11,7 @@
default = lib.mkOption {
type = lib.types.enum [
"bspwm"
+ "i3"
];
description = "Default window manager.";
};
diff --git a/modules/desktop/window-manager/i3/default.nix b/modules/desktop/window-manager/i3/default.nix
new file mode 100644
index 0000000..369fe34
--- /dev/null
+++ b/modules/desktop/window-manager/i3/default.nix
@@ -0,0 +1,38 @@
+{ config, lib, pkgs, ... }:
+
+{
+ options.desktop.window-manager.i3 = {
+ enable = lib.mkEnableOption "Enables i3.";
+ };
+
+ config = lib.mkIf config.desktop.window-manager.i3.enable {
+ # Set i3 as the default window manager
+ desktop.window-manager.default = lib.mkDefault "i3";
+ desktop.window-manager.command =
+ if config.desktop.window-manager.default == "i3" then
+ "${pkgs.i3}/bin/i3"
+ else lib.mkDefault "";
+
+ xsession.windowManager.i3.enable = true;
+
+ xsession.windowManager.i3.config = {
+ modifier = "Mod4";
+ gaps = {
+ inner = config.desktop.window-manager.gap;
+ };
+ terminal = config.tools.terminal.command;
+ fonts = {
+ names = [ "FiraCode Nerd Font" ];
+ size = 11.0;
+ };
+ bars = [
+ {
+ command =
+ lib.mkIf
+ config.desktop.status-bar.polybar.enable
+ config.desktop.status-bar.polybar.command;
+ }
+ ];
+ };
+ };
+}