From 76fa24022b2031f815f03e1004b340365aaed8bf Mon Sep 17 00:00:00 2001 From: "quentin@aristote.fr" Date: Sat, 10 Oct 2026 12:03:19 +0200 Subject: home: i3 bar: apply stylix theme and other visual tweaks --- modules/home-manager/personal/gui/x/i3/bar.nix | 34 ++++++++++++++++++---- .../home-manager/personal/gui/x/i3/keybindings.nix | 1 + modules/home-manager/personal/gui/x/picom.nix | 3 ++ modules/home-manager/personal/programs/rofi.nix | 2 +- 4 files changed, 34 insertions(+), 6 deletions(-) (limited to 'modules/home-manager') diff --git a/modules/home-manager/personal/gui/x/i3/bar.nix b/modules/home-manager/personal/gui/x/i3/bar.nix index 554b38a..3d88692 100644 --- a/modules/home-manager/personal/gui/x/i3/bar.nix +++ b/modules/home-manager/personal/gui/x/i3/bar.nix @@ -6,7 +6,7 @@ }: let cfg = config.personal.x.i3; - cfgStylix = config.stylix.targets.i3; + cfgStylix = config.stylix.targets.i3.exportedBarConfig; mkDeviceOption = lib.mkOption { type = with lib.types; nullOr str; default = null; @@ -71,16 +71,35 @@ in config = lib.mkIf cfg.enable { xsession.windowManager.i3.config.bars = [ - { - statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs ~/.config/i3status-rust/config-default.toml"; - fonts = { inherit (cfgStylix.exportedBarConfig.fonts) size; }; - } + ( + cfgStylix + // { + command = "i3bar"; + statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs ~/.config/i3status-rust/config-default.toml"; + mode = "hide"; + trayPadding = 6; + } + ) ]; programs.i3status-rust = { enable = true; bars = { default = { + settings.theme.overrides = + let + bgColor = cfgStylix.colors.background; + in + { + idle_bg = bgColor; + good_bg = bgColor; + info_bg = bgColor; + warning_bg = bgColor; + critical_bg = bgColor; + + separator = " ยท "; + separator_bg = bgColor; + }; icons = "material-nf"; blocks = (serviceStatusBlock { @@ -159,6 +178,11 @@ in interval = 1; format = " $timestamp.datetime(f:'%a. %b. %d, %H:%M:%S') "; } + { + block = "custom"; + command = "true"; + interval = "once"; + } ]; }; }; diff --git a/modules/home-manager/personal/gui/x/i3/keybindings.nix b/modules/home-manager/personal/gui/x/i3/keybindings.nix index d28e9fb..e4b0589 100644 --- a/modules/home-manager/personal/gui/x/i3/keybindings.nix +++ b/modules/home-manager/personal/gui/x/i3/keybindings.nix @@ -55,6 +55,7 @@ in "${modifier}+Print" = exec rofiBluetooth; "${modifier}+Delete" = exec "${rofiShow} menu -modi menu:${rofiPowerMenu}"; "${modifier}+p" = "move workspace to output right"; + "${modifier}+b" = "bar mode toggle"; } // { # exiting diff --git a/modules/home-manager/personal/gui/x/picom.nix b/modules/home-manager/personal/gui/x/picom.nix index 0ae695a..ab373fb 100644 --- a/modules/home-manager/personal/gui/x/picom.nix +++ b/modules/home-manager/personal/gui/x/picom.nix @@ -7,6 +7,9 @@ activeOpacity = lib.mkDefault 1.0; inactiveOpacity = lib.mkDefault 0.9; menuOpacity = lib.mkDefault 0.8; + opacityRules = [ + "80:class_g = 'i3bar'" + ]; shadow = lib.mkDefault true; settings.blur.method = lib.mkDefault "gaussian"; vSync = true; # not default because false seems to be buggy diff --git a/modules/home-manager/personal/programs/rofi.nix b/modules/home-manager/personal/programs/rofi.nix index 10c284c..6a6549c 100644 --- a/modules/home-manager/personal/programs/rofi.nix +++ b/modules/home-manager/personal/programs/rofi.nix @@ -6,7 +6,7 @@ }: { programs.rofi = { - cycle = lib.mkDefault true; + settings.cycle = lib.mkDefault true; theme = lib.mkIf (config.lib ? stylix) ( lib.mkForce ( config.lib.stylix.colors { -- cgit v1.3.1