diff options
Diffstat (limited to 'modules/desktop')
25 files changed, 231 insertions, 336 deletions
diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 759b979..27926ec 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -7,6 +7,7 @@ { imports = [ ./gtk + ./rofi ./xdg ./hyprland ./waybar diff --git a/modules/desktop/hyprland/default.nix b/modules/desktop/hyprland/default.nix index 9f52232..97e0134 100644 --- a/modules/desktop/hyprland/default.nix +++ b/modules/desktop/hyprland/default.nix @@ -76,18 +76,18 @@ in } { - name = "float-application-launcher"; - match.class = "^(application-launcher)$"; + name = "float-rofi"; + match.class = "^(rofi)$"; float = true; } { - name = "size-application-launcher"; - match.class = "^(application-launcher)$"; + name = "size-rofi"; + match.class = "^(rofi)$"; size = "800 600"; } { - name = "center-application-launcher"; - match.class = "^(application-launcher)$"; + name = "center-rofi"; + match.class = "^(rofi)$"; center = true; } @@ -114,7 +114,7 @@ in enable = true; package = pkgs.rose-pine-hyprcursor; name = "rose-pine-hyprcursor"; - size = 24; + size = 20; hyprcursor.enable = true; gtk.enable = false; x11.enable = false; diff --git a/modules/desktop/hyprland/keybindings.nix b/modules/desktop/hyprland/keybindings.nix index 09ba822..d265478 100644 --- a/modules/desktop/hyprland/keybindings.nix +++ b/modules/desktop/hyprland/keybindings.nix @@ -28,10 +28,8 @@ in { config.wayland.windowManager.hyprland.settings.bind = lib.flatten [ # --- General Applications --- - (lib.optionals (config.terminal.fzf.enable && config.terminal.kitty.enable) [ - (bind "R" ( - execLua "${lib.getExe config.terminal.kitty.package} --class application-launcher -e ${lib.getExe config.scripts.fzf-launcher.package}" - )) + (lib.optionals config.desktop.rofi.enable [ + (bind "R" (execLua "${lib.getExe config.desktop.rofi.package} -show drun")) ]) (lib.optionals config.terminal.kitty.enable [ (bind "Return" (execLua "${lib.getExe config.terminal.kitty.package}")) diff --git a/modules/desktop/polybar/bar/default.nix b/modules/desktop/polybar/bar/default.nix deleted file mode 100644 index 3b13420..0000000 --- a/modules/desktop/polybar/bar/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -# Bar - Polybar bar definitions (main bar) -{ config }: -{ - "bar/main" = import ./main.nix { inherit config; }; -} diff --git a/modules/desktop/polybar/bar/main.nix b/modules/desktop/polybar/bar/main.nix deleted file mode 100644 index ed4f1fa..0000000 --- a/modules/desktop/polybar/bar/main.nix +++ /dev/null @@ -1,40 +0,0 @@ -# Main - Main polybar bar configuration (dimensions, colors, modules) -{ config }: -with config.scheme.withHashtag; -let - largerFontSize = toString (builtins.ceil (config.fonts.size * 9.0 / 8.0)); -in -{ - width = "100%:-20"; - fixed-center = false; - height = 35; - override-redirect = true; - wm-restack = "i3"; - enable-ipc = true; - - border-top-size = 1; - border-bottom-size = 1; - border-left-size = 1; - border-right-size = 1; - border-color = base03; - - background = base00; - foreground = base05; - - line-size = 3; - line-color = base08; - - padding-left = 1; - padding-right = 1; - - offset-x = "10"; - offset-y = "10"; - - font-0 = "${config.fonts.normal}:pixelsize=${toString config.fonts.size};3"; - font-1 = "${config.fonts.normal}:weight=Bold:pixelsize=${largerFontSize};3"; - font-2 = "${config.fonts.normal}:style=Light:pixelsize=${largerFontSize};2"; - - modules-left = "i3 separator"; - modules-center = "xwindow"; - modules-right = "separator volume separator battery separator vpn vpn-separator wifi wifi-separator ethernet ethernet-separator time separator memory separator cpu separator date"; -} diff --git a/modules/desktop/polybar/default.nix b/modules/desktop/polybar/default.nix deleted file mode 100644 index 0ff7a43..0000000 --- a/modules/desktop/polybar/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -# Polybar - Status bar configuration (i3 integration, modules) -{ - config, - lib, - pkgs, - ... -}: -{ - config = lib.mkIf config.desktop.enable { - services.polybar.enable = true; - services.polybar.package = ( - pkgs.polybar.override { - pulseSupport = true; - i3Support = true; - } - ); - services.polybar.script = "${config.services.polybar.package}/bin/polybar main &"; - services.polybar.config = lib.mkMerge [ - (import ./bar { inherit config; }) - (import ./module { inherit config lib pkgs; }) - { - settings = { - screenchange-reload = true; - }; - } - ]; - }; -} diff --git a/modules/desktop/polybar/module/battery.nix b/modules/desktop/polybar/module/battery.nix deleted file mode 100644 index 6dafb67..0000000 --- a/modules/desktop/polybar/module/battery.nix +++ /dev/null @@ -1,40 +0,0 @@ -# Battery - Battery status module with icons and charging animation -{ config }: -with config.scheme.withHashtag; -{ - type = "internal/battery"; - battery = "BAT1"; - adapter = "ADP1"; - - low-at = 0; - format-charging = "%{T2}%{F${base03}}<animation-charging>%{F-}%{T-} <label-charging>"; - format-discharging = "%{T2}%{F${base03}}<ramp-capacity>%{F-}%{T-} <label-discharging>"; - format-full-prefix = " "; - - label-charging = "%percentage:3%%"; - label-discharging = "%percentage:3%%"; - - ramp-capacity-0 = ""; - ramp-capacity-1 = ""; - ramp-capacity-2 = ""; - ramp-capacity-3 = ""; - ramp-capacity-4 = ""; - ramp-capacity-5 = ""; - ramp-capacity-6 = ""; - ramp-capacity-7 = ""; - ramp-capacity-8 = ""; - ramp-capacity-9 = ""; - - animation-charging-0 = ""; - animation-charging-1 = ""; - animation-charging-2 = ""; - animation-charging-3 = ""; - animation-charging-4 = ""; - animation-charging-5 = ""; - animation-charging-6 = ""; - animation-charging-7 = ""; - animation-charging-8 = ""; - animation-charging-9 = ""; - - animation-charging-framerate = 750; -} diff --git a/modules/desktop/polybar/module/cpu.nix b/modules/desktop/polybar/module/cpu.nix deleted file mode 100644 index 44ba984..0000000 --- a/modules/desktop/polybar/module/cpu.nix +++ /dev/null @@ -1,9 +0,0 @@ -# CPU - CPU usage percentage module -{ config }: -with config.scheme.withHashtag; -{ - type = "internal/cpu"; - interval = 2; - format-prefix = "%{T2}%{F${base03}} %{F-}%{T-}"; - label = "%percentage:3%%"; -} diff --git a/modules/desktop/polybar/module/date.nix b/modules/desktop/polybar/module/date.nix deleted file mode 100644 index 45e373b..0000000 --- a/modules/desktop/polybar/module/date.nix +++ /dev/null @@ -1,10 +0,0 @@ -# Date - Current date display module -{ config }: -with config.scheme.withHashtag; -{ - type = "internal/date"; - interval = 60; - date = "%d/%m/%Y"; - label = "%date%"; - format-prefix = "%{T2}%{F${base03}} %{F-}%{T-}"; -} diff --git a/modules/desktop/polybar/module/default.nix b/modules/desktop/polybar/module/default.nix deleted file mode 100644 index 785cd6f..0000000 --- a/modules/desktop/polybar/module/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -# Module - Polybar module definitions (battery, cpu, date, i3, memory, volume, wifi, etc.) -{ - lib, - config, - pkgs, -}: -{ - "module/battery" = import ./battery.nix { inherit config; }; - "module/cpu" = import ./cpu.nix { inherit config; }; - "module/date" = import ./date.nix { inherit config; }; - "module/ethernet-separator" = import ./ethernet-separator.nix { inherit config; }; - "module/ethernet" = import ./ethernet.nix { inherit config; }; - "module/i3" = import ./i3.nix { inherit config; }; - "module/memory" = import ./memory.nix { inherit config; }; - "module/separator" = import ./separator.nix { inherit config; }; - "module/time" = import ./time.nix { inherit config; }; - "module/volume" = import ./volume.nix { inherit config; }; - "module/vpn-separator" = import ./vpn-separator.nix { inherit config lib pkgs; }; - "module/vpn" = import ./vpn.nix { inherit config lib pkgs; }; - "module/wifi-separator" = import ./wifi-separator.nix { inherit config; }; - "module/wifi" = import ./wifi.nix { inherit config; }; - "module/xwindow" = import ./xwindow.nix { }; -} diff --git a/modules/desktop/polybar/module/ethernet-separator.nix b/modules/desktop/polybar/module/ethernet-separator.nix deleted file mode 100644 index 3bdcb0e..0000000 --- a/modules/desktop/polybar/module/ethernet-separator.nix +++ /dev/null @@ -1,14 +0,0 @@ -# Ethernet-separator - Visual separator for ethernet module -{ config }: -with config.scheme.withHashtag; -{ - type = "internal/network"; - interface = "enp4s0"; - interface-type = "wired"; - - format-connected = " %{F${base03}}%{T3}│%{T-}%{F-} "; - format-disconnected = ""; - - label-connected = ""; - label-disconnected = ""; -} diff --git a/modules/desktop/polybar/module/ethernet.nix b/modules/desktop/polybar/module/ethernet.nix deleted file mode 100644 index 4e8dfed..0000000 --- a/modules/desktop/polybar/module/ethernet.nix +++ /dev/null @@ -1,14 +0,0 @@ -# Ethernet - Wired network module (connection speed) -{ config }: -with config.scheme.withHashtag; -{ - type = "internal/network"; - interface = "enp4s0"; - interface-type = "wired"; - - format-connected = "%{T2}%{F${base03}}%{F-}%{T-} <label-connected>"; - format-disconnected = ""; - - label-connected = "%netspeed:8%"; - label-disconnected = ""; -} diff --git a/modules/desktop/polybar/module/i3.nix b/modules/desktop/polybar/module/i3.nix deleted file mode 100644 index 57e83dc..0000000 --- a/modules/desktop/polybar/module/i3.nix +++ /dev/null @@ -1,28 +0,0 @@ -# i3 - i3 workspace display module (focused, occupied, urgent workspaces) -{ config }: -with config.scheme.withHashtag; -{ - type = "internal/i3"; - - label-focused = "%index%"; - label-focused-underline = "${base0D}"; - label-focused-padding = 1; - - label-unfocused = "%index%"; - label-unfocused-padding = 1; - - label-occupied = "%index%"; - label-occupied-padding = 1; - - label-urgent = "%index%"; - label-urgent-underline = "${base08}"; - label-urgent-padding = 1; - - label-empty = "%index%"; - label-empty-foreground = "${base03}"; - label-empty-padding = 1; - - pin-workspaces = true; - index-sort = true; - show-all = true; -} diff --git a/modules/desktop/polybar/module/memory.nix b/modules/desktop/polybar/module/memory.nix deleted file mode 100644 index b401703..0000000 --- a/modules/desktop/polybar/module/memory.nix +++ /dev/null @@ -1,9 +0,0 @@ -# Memory - RAM usage module (displays GB used) -{ config }: -with config.scheme.withHashtag; -{ - type = "internal/memory"; - interval = 2; - format-prefix = "%{T2}%{F${base03}} %{F-}%{T-} "; - label = "%gb_used:9%"; -} diff --git a/modules/desktop/polybar/module/separator.nix b/modules/desktop/polybar/module/separator.nix deleted file mode 100644 index f24b975..0000000 --- a/modules/desktop/polybar/module/separator.nix +++ /dev/null @@ -1,7 +0,0 @@ -# Separator - Visual separator between modules -{ config }: -with config.scheme.withHashtag; -{ - type = "custom/text"; - label = " %{F${base03}}%{T3}│%{T-}%{F-} "; -} diff --git a/modules/desktop/polybar/module/time.nix b/modules/desktop/polybar/module/time.nix deleted file mode 100644 index 4e6a03d..0000000 --- a/modules/desktop/polybar/module/time.nix +++ /dev/null @@ -1,10 +0,0 @@ -# Time - Current time display module (12-hour format) -{ config }: -with config.scheme.withHashtag; -{ - type = "internal/date"; - interval = 30; - time = "%I:%M %p"; - label = "%time%"; - format-prefix = "%{T2}%{F${base03}} %{F-}%{T-}"; -} diff --git a/modules/desktop/polybar/module/volume.nix b/modules/desktop/polybar/module/volume.nix deleted file mode 100644 index 1dfbb8e..0000000 --- a/modules/desktop/polybar/module/volume.nix +++ /dev/null @@ -1,13 +0,0 @@ -# Volume - PulseAudio volume level module with icons -{ config }: -with config.scheme.withHashtag; -{ - type = "internal/pulseaudio"; - interval = 5; - format-volume = "%{T2}%{F${base03}}<ramp-volume>%{F-}%{T-} <label-volume>"; - label-volume = "%percentage:3%%"; - label-muted = "%{T2}%{F${base03}} %{F-}%{T-} "; - ramp-volume-0 = " "; - ramp-volume-1 = " "; - ramp-volume-2 = " "; -} diff --git a/modules/desktop/polybar/module/vpn-separator.nix b/modules/desktop/polybar/module/vpn-separator.nix deleted file mode 100644 index 2444522..0000000 --- a/modules/desktop/polybar/module/vpn-separator.nix +++ /dev/null @@ -1,16 +0,0 @@ -# VPN-separator - Visual separator for VPN module -{ - pkgs, - lib, - config, -}: -with config.scheme.withHashtag; -{ - type = "custom/script"; - exec-if = "${pkgs.runtimeShell} -c '${lib.getExe' pkgs.iproute2 "ip"} a | ${lib.getExe pkgs.gnugrep} -q tun0'"; - exec = "echo VPN"; - interval = 5; - - format = " %{F${base03}}%{T3}│%{T-}%{F-} "; - label = "%output%"; -} diff --git a/modules/desktop/polybar/module/vpn.nix b/modules/desktop/polybar/module/vpn.nix deleted file mode 100644 index 58bb80c..0000000 --- a/modules/desktop/polybar/module/vpn.nix +++ /dev/null @@ -1,16 +0,0 @@ -# VPN - Just indicates if VPN is connected with openvpn -{ - pkgs, - lib, - config, -}: -with config.scheme.withHashtag; -{ - type = "custom/script"; - exec-if = "${pkgs.runtimeShell} -c '${lib.getExe' pkgs.iproute2 "ip"} a | ${lib.getExe pkgs.gnugrep} -q tun0'"; - exec = "echo VPN"; - interval = 5; - - format = "%{T2}%{F${base03}} %{F-}%{T-} <label>"; - label = "%output%"; -} diff --git a/modules/desktop/polybar/module/wifi-separator.nix b/modules/desktop/polybar/module/wifi-separator.nix deleted file mode 100644 index 0d51b06..0000000 --- a/modules/desktop/polybar/module/wifi-separator.nix +++ /dev/null @@ -1,14 +0,0 @@ -# WiFi-separator - Visual separator for WiFi module -{ config }: -with config.scheme.withHashtag; -{ - type = "internal/network"; - interface = "wlan0"; - interface-type = "wireless"; - - format-connected = " %{F${base03}}%{T3}│%{T-}%{F-} "; - format-disconnected = ""; - - label-connected = ""; - label-disconnected = ""; -} diff --git a/modules/desktop/polybar/module/wifi.nix b/modules/desktop/polybar/module/wifi.nix deleted file mode 100644 index 8836b9e..0000000 --- a/modules/desktop/polybar/module/wifi.nix +++ /dev/null @@ -1,21 +0,0 @@ -# WiFi - Wireless network module (signal strength, speed) -{ config }: -with config.scheme.withHashtag; -{ - type = "internal/network"; - interface = "wlan0"; - interface-type = "wireless"; - - format-connected = "%{T2}%{F${base03}}<ramp-signal>%{F-}%{T-} <label-connected>"; - format-disconnected = ""; - - label-connected = "%netspeed:8%"; - label-disconnected = ""; - - ramp-signal-0 = ""; - ramp-signal-1 = ""; - ramp-signal-2 = ""; - ramp-signal-3 = ""; - ramp-signal-4 = ""; - ramp-signal-5 = ""; -} diff --git a/modules/desktop/polybar/module/xwindow.nix b/modules/desktop/polybar/module/xwindow.nix deleted file mode 100644 index d36b03c..0000000 --- a/modules/desktop/polybar/module/xwindow.nix +++ /dev/null @@ -1,6 +0,0 @@ -# XWindow - Focused window title module -{ }: -{ - type = "internal/xwindow"; - label = "%title:0:20:...%"; -} diff --git a/modules/desktop/rofi/default.nix b/modules/desktop/rofi/default.nix new file mode 100644 index 0000000..8ef6bdc --- /dev/null +++ b/modules/desktop/rofi/default.nix @@ -0,0 +1,36 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + options.desktop.rofi = { + enable = lib.mkEnableOption "Enables rofi launcher." // { + default = true; + }; + package = lib.mkOption { + type = lib.types.package; + description = "The rofi package to use."; + }; + }; + + config = lib.mkIf config.desktop.enable { + desktop.rofi.package = lib.mkDefault config.programs.rofi.finalPackage; + + programs.rofi = { + enable = config.desktop.rofi.enable; + theme = "${config.scheme { + template = builtins.readFile ./theme.mustache.rasi; + extension = ".rasi"; + }}"; + extraConfig = { + modi = "drun"; + show-icons = true; + drun-display-format = "{name}"; + display-drun = "Launch"; + sort = true; + }; + }; + }; +} diff --git a/modules/desktop/rofi/theme.mustache.rasi b/modules/desktop/rofi/theme.mustache.rasi new file mode 100644 index 0000000..d877fe8 --- /dev/null +++ b/modules/desktop/rofi/theme.mustache.rasi @@ -0,0 +1,180 @@ +/** + * Rofi Theme — Base16 "OneDark Dark" (olimorris) + * Mustache template: render with a base16 color map to produce a .rasi file + * + * base00 - default background + * base01 - lighter background (status bar, line numbers) + * base02 - selection background + * base03 - comments, invisibles + * base04 - dark foreground (status bar) + * base05 - default foreground + * base06 - light foreground + * base07 - lightest foreground + * base08 - red (errors, urgent) + * base09 - orange (numbers) + * base0A - yellow (search matches) + * base0B - green (strings) + * base0C - cyan (support, regex) + * base0D - blue (functions, active/selected) + * base0E - purple/magenta (keywords) + * base0F - brown (deprecated) + */ + +* { + base00: #{{base00}}; + base01: #{{base01}}; + base02: #{{base02}}; + base03: #{{base03}}; + base04: #{{base04}}; + base05: #{{base05}}; + base06: #{{base06}}; + base07: #{{base07}}; + base08: #{{base08}}; + base09: #{{base09}}; + base0A: #{{base0A}}; + base0B: #{{base0B}}; + base0C: #{{base0C}}; + base0D: #{{base0D}}; + base0E: #{{base0E}}; + base0F: #{{base0F}}; + + background: @base00; + background-color: transparent; + foreground: @base07; + + border-color: @base03; + separatorcolor: @base02; + + selected-normal-background: @base02; + selected-normal-foreground: @base07; + selected-active-background: @base0D; + selected-active-foreground: @base00; + selected-urgent-background: @base08; + selected-urgent-foreground: @base00; + + normal-background: @base00; + normal-foreground: @base03; + active-background: @base00; + active-foreground: @base07; + urgent-background: @base00; + urgent-foreground: @base08; +} + +window { + background-color: @background; + border: 1.5px; + border-color: @border-color; + padding: 0; + width: 600px; + location: center; + anchor: center; +} + +mainbox { + background-color: transparent; + padding: 12px; + spacing: 12px; + children: [ "inputbar", "listview" ]; +} + +inputbar { + background-color: @base01; + text-color: @foreground; + padding: 10px 14px; + spacing: 10px; + children: [ "prompt", "entry" ]; +} + +prompt { + background-color: transparent; + text-color: @base04; + font: "JetBrainsMono Nerd Font Bold 11"; +} + +entry { + background-color: transparent; + text-color: @foreground; + placeholder: "Search…"; + placeholder-color: @base03; + cursor: text; +} + +listview { + background-color: transparent; + columns: 1; + lines: 8; + spacing: 4px; + cycle: true; + dynamic: true; + scrollbar: false; + fixed-height: false; +} + +element { + background-color: transparent; + text-color: @normal-foreground; + padding: 8px 10px; + spacing: 10px; + orientation: horizontal; +} + +element normal.normal { + background-color: @normal-background; + text-color: @normal-foreground; +} + +element normal.active { + background-color: @active-background; + text-color: @active-foreground; +} + +element normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} + +element selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} + +element selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} + +element selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} + +element-icon { + background-color: transparent; + size: 24px; + vertical-align: 0.5; +} + +element-text { + background-color: transparent; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +message { + background-color: @base01; + padding: 8px 12px; +} + +textbox { + background-color: transparent; + text-color: @foreground; +} + +error-message { + background-color: @base00; + text-color: @base08; + border: 1.5px; + border-color: @base08; + padding: 10px; +} diff --git a/modules/desktop/waybar/style.nix b/modules/desktop/waybar/style.nix index 5ec8070..beb8727 100644 --- a/modules/desktop/waybar/style.nix +++ b/modules/desktop/waybar/style.nix @@ -17,6 +17,10 @@ with config.scheme.withHashtag; margin: 0 2px; } + #window { + margin-right: 3px; + } + #workspaces { border: none; margin-left: 2.5px; @@ -52,7 +56,6 @@ with config.scheme.withHashtag; } #workspaces button.urgent { - background: ${base08}; - border-color: ${base08}; + color: ${base08}; } '' |
