diff options
| author | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2024-11-08 21:32:55 +0530 |
|---|---|---|
| committer | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2024-11-08 21:32:55 +0530 |
| commit | 159fbf8c5573d85a731d2582b52b3e8cb223618c (patch) | |
| tree | de3d89b3b026121e8d3f597eddd4302e001953ab /modules | |
| parent | 4b322dc7eb9339ec8297f05bd305f699755598e1 (diff) | |
| download | home-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')
| -rw-r--r-- | modules/desktop/status-bar/polybar/bar/main.nix | 8 | ||||
| -rw-r--r-- | modules/desktop/status-bar/polybar/default.nix | 8 | ||||
| -rw-r--r-- | modules/desktop/status-bar/polybar/module/default.nix | 4 | ||||
| -rw-r--r-- | modules/desktop/status-bar/polybar/module/i3.nix | 23 | ||||
| -rw-r--r-- | modules/desktop/window-manager/default.nix | 2 | ||||
| -rw-r--r-- | modules/desktop/window-manager/i3/default.nix | 38 |
6 files changed, 79 insertions, 4 deletions
diff --git a/modules/desktop/status-bar/polybar/bar/main.nix b/modules/desktop/status-bar/polybar/bar/main.nix index 25cce91..a389b8c 100644 --- a/modules/desktop/status-bar/polybar/bar/main.nix +++ b/modules/desktop/status-bar/polybar/bar/main.nix @@ -36,9 +36,11 @@ in { font-2 = "${config.fonts.normal}:style=Light:pixelsize=${largerFontSize};2"; modules-left = - lib.mkIf - config.desktop.window-manager.bspwm.enable - "bspwm separator"; + if config.desktop.window-manager.bspwm.enable then + "bspwm separator" + else if config.desktop.window-manager.i3.enable then + "i3 separator" + else ""; modules-center = "xwindow"; modules-right = "separator memory cpu battery time date kernel-version"; } diff --git a/modules/desktop/status-bar/polybar/default.nix b/modules/desktop/status-bar/polybar/default.nix index 0ea66c7..76901f6 100644 --- a/modules/desktop/status-bar/polybar/default.nix +++ b/modules/desktop/status-bar/polybar/default.nix @@ -1,5 +1,10 @@ { config, lib, pkgs, ... }: +let + polybarPackage = pkgs.polybar.override { + i3Support = config.desktop.window-manager.i3.enable; + }; +in { options.desktop.status-bar.polybar = { enable = lib.mkEnableOption "Enables polybar."; @@ -12,7 +17,7 @@ MONITOR_WIDTH=$(xrandr | grep '*' | awk '{print $1}' | cut -d'x' -f1 | head -n1) OFFSET=${toString config.desktop.window-manager.gap} -POLYBAR_WIDTH=$((MONITOR_WIDTH - 2 * OFFSET)) POLYBAR_OFFSET=$OFFSET polybar main & +POLYBAR_WIDTH=$((MONITOR_WIDTH - 2 * OFFSET)) POLYBAR_OFFSET=$OFFSET ${polybarPackage}/bin/polybar main & ''); }; }; @@ -20,6 +25,7 @@ POLYBAR_WIDTH=$((MONITOR_WIDTH - 2 * OFFSET)) POLYBAR_OFFSET=$OFFSET polybar mai config = lib.mkIf config.desktop.status-bar.polybar.enable { services.polybar.enable = true; services.polybar.script = config.desktop.status-bar.polybar.command; + services.polybar.package = polybarPackage; services.polybar.config = lib.mkMerge [ (import ./bar { inherit config lib; }) (import ./module { inherit config lib; }) diff --git a/modules/desktop/status-bar/polybar/module/default.nix b/modules/desktop/status-bar/polybar/module/default.nix index 3444086..5507569 100644 --- a/modules/desktop/status-bar/polybar/module/default.nix +++ b/modules/desktop/status-bar/polybar/module/default.nix @@ -7,6 +7,10 @@ lib.mkIf config.desktop.window-manager.bspwm.enable (import ./bspwm.nix { inherit config; }); + "module/i3" = + lib.mkIf + config.desktop.window-manager.i3.enable + (import ./i3.nix { inherit config; }); "module/cpu" = import ./cpu.nix { inherit config; }; "module/memory" = import ./memory.nix { inherit config; }; "module/date" = import ./date.nix { inherit config; }; diff --git a/modules/desktop/status-bar/polybar/module/i3.nix b/modules/desktop/status-bar/polybar/module/i3.nix new file mode 100644 index 0000000..46595cd --- /dev/null +++ b/modules/desktop/status-bar/polybar/module/i3.nix @@ -0,0 +1,23 @@ +{ config }: + +with config.scheme.withHashtag; +{ + type = "internal/i3"; + + pin-workspaces = true; + + label-focused = "%index%"; + label-focused-underline = "${base0D}"; + label-focused-padding = 2; + + label-occupied = "%index%"; + label-occupied-padding = 2; + + label-urgent = "%index%"; + label-urgent-underline = "${base08}"; + label-urgent-padding = 2; + + label-empty = "%index%"; + label-empty-foreground = "${base03}"; + label-empty-padding = 2; +} 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; + } + ]; + }; + }; +} |
