{ config , lib , pkgs , ... }: with lib; let cfg = config.my.theming; in { imports = [ ./dracula.nix ./catppuccin-frappe.nix ./catppuccin-latte.nix ./catppuccin-macchiato.nix ./catppuccin-mocha.nix ]; options.my.theming = { enable = mkEnableOption "theming"; scheme = mkOption { type = types.enum [ "dracula" "catppuccin-latte" "catppuccin-frappe" "catppuccin-macchiato" "catppuccin-mocha" ]; }; }; config = mkIf cfg.enable { my.programs.tofi.settings = { font-size = "20"; font = let fontBasePath = pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; }; in "${fontBasePath}/share/fonts/truetype/NerdFonts/FiraCodeNerdFont-Regular.ttf"; height = "360"; width = "720"; outline-width = "0"; border-width = "0"; }; home-manager.users.moritz = { services.polybar = { config = { "bar/bottom" = { # position monitor = "\${env:MONITOR}"; bottom = true; width = "100%"; height = 15; border-size = 2; separator = " "; font-0 = "FiraCode Nerd Font:size=8;0"; font-1 = "FiraCode Nerd Font:size=8;1"; font-2 = "FiraCode Nerd Font:size=8;2"; modules-left = "cpu memory network battery"; modules-center = "bspwm"; modules-right = "pulseaudio date time"; tray-position = "right"; tray-padding = 2; wm-restack = "bspwm"; cursor-click = "pointer"; cursor-scroll = "ns-resize"; }; "module/battery" = { type = "internal/battery"; battery = "BATT"; adapter = "ACAD"; time-format = "%H:%M"; format-charging = "<animation-charging> <label-charging>"; format-charging-padding = 1; format-discharging = "<animation-discharging> <label-discharging>"; format-discharging-padding = 1; format-full = " <label-full>"; format-full-padding = 1; label-charging = "%percentage%% %time% remaining"; label-discharging = "%percentage%% %time% remaining"; label-full = "Fully charged"; animation-charging-0 = " "; animation-charging-1 = " "; animation-charging-2 = " "; animation-charging-3 = " "; animation-charging-4 = " "; animation-charging-framerate = 500; animation-discharging-0 = " "; animation-discharging-1 = " "; animation-discharging-2 = " "; animation-discharging-3 = " "; animation-discharging-4 = " "; animation-discharging-framerate = 500; }; "module/bspwm" = { type = "internal/bspwm"; label-focused = ""; label-focused-padding = 1; label-occupied = ""; label-occupied-padding = 1; label-urgent = ""; label-urgent-padding = 1; label-empty = ""; label-empty-padding = 1; label-separator = " "; label-separator-padding = 1; pin-workspaces = true; }; "module/cpu" = { type = "internal/cpu"; interval = 2; format = "<ramp-load><label>"; format-padding = 1; format-font = 3; ramp-load-0 = " "; ramp-load-1 = " "; ramp-load-2 = " "; ramp-load-3 = " "; label = "%percentage:2%%"; }; "module/time" = { type = "internal/date"; interval = 1; time = "%H:%M"; time-alt = "%H:%M:%S"; label = "%time%"; format-prefix = " "; format-prefix-font = 2; format-padding = 1; label-font = 3; }; "module/date" = { type = "internal/date"; interval = 5; format = "<label>"; format-prefix = " "; format-prefix-font = 2; format-padding = 1; format-font = 3; date = "%A"; date-alt = "%Y-%m-%d"; label = "%date%"; label-font = 3; }; "module/memory" = { type = "internal/memory"; interval = 2; format = "<label>"; format-prefix = " "; format-padding = 1; format-font = 2; label = "%gb_used%"; label-font = 3; }; "module/pulseaudio" = { type = "internal/pulseaudio"; format-volume = "<ramp-volume> <label-volume>"; label-volume = "%percentage%%"; format-volume-padding = 1; format-volume-font = 2; format-muted-padding = 1; format-muted-font = 2; ramp-volume-0 = "奄"; ramp-volume-1 = "奄"; ramp-volume-2 = "奔"; ramp-volume-3 = "墳"; ramp-volume-4 = "墳"; click-middle = "${pkgs.pavucontrol}/bin/pavucontrol"; }; "module/network" = { type = "internal/network"; interface = builtins.head (builtins.attrNames config.networking.interfaces); interval = 3; format-connected = "<label-connected>"; label-connected = "%{T2}祝%{T3} %upspeed% %{T2}%{T3} %downspeed%"; format-connected-padding = 1; format-connected-font = 3; }; }; }; }; }; }