diff --git a/eva-01/configuration.nix b/eva-01/configuration.nix index 03bc868..1a4b048 100644 --- a/eva-01/configuration.nix +++ b/eva-01/configuration.nix @@ -2,7 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ config, pkgs, pkgs-unstable, inputs, ... }: +{ config, pkgs, pkgs-unstable, inputs, configPath, ... }: { imports = @@ -232,6 +232,7 @@ home-manager = { extraSpecialArgs = { inherit + configPath inputs pkgs-unstable ; diff --git a/flake.nix b/flake.nix index a39abb5..c5c48a1 100644 --- a/flake.nix +++ b/flake.nix @@ -34,6 +34,7 @@ }@inputs: let system = "x86_64-linux"; + configPath = "/etc/nixos"; pkgs-unstable = import nixpkgs-unstable { system = system; config.allowUnfree = true; @@ -42,7 +43,7 @@ { nixosConfigurations = { eva-01 = nixpkgs.lib.nixosSystem { - specialArgs = {inherit inputs pkgs-unstable;}; + specialArgs = {inherit inputs pkgs-unstable configPath;}; system = system; modules = [ ./eva-01/configuration.nix @@ -52,7 +53,7 @@ }; eva-03 = nixpkgs.lib.nixosSystem { - specialArgs = {inherit inputs pkgs-unstable;}; + specialArgs = {inherit inputs pkgs-unstable configPath;}; system = system; modules = [ ./eva-03/configuration.nix diff --git a/home-manager/commands/nixvim/plugins/exit b/home-manager/commands/nixvim/plugins/exit new file mode 100644 index 0000000..e69de29 diff --git a/home-manager/programs/ghostty.nix b/home-manager/programs/ghostty/ghostty.nix similarity index 100% rename from home-manager/programs/ghostty.nix rename to home-manager/programs/ghostty/ghostty.nix diff --git a/home-manager/programs/programs.nix b/home-manager/programs/programs.nix index cc56bc3..df4f257 100644 --- a/home-manager/programs/programs.nix +++ b/home-manager/programs/programs.nix @@ -2,7 +2,8 @@ { imports = [ - ./ghostty.nix + ./ghostty/ghostty.nix + ./rofi/rofi.nix ]; home.packages = with pkgs; [ @@ -10,6 +11,7 @@ # # "Hello, world!" when run. # pkgs.hello bambu-studio + blender brave jellyfin-media-player kdePackages.bluedevil @@ -18,6 +20,7 @@ kdePackages.kdeconnect-kde kdePackages.oxygen-sounds kdePackages.partitionmanager + ladybird libreoffice-still librewolf localsend diff --git a/home-manager/programs/rofi/rofi.nix b/home-manager/programs/rofi/rofi.nix new file mode 100644 index 0000000..88cda2c --- /dev/null +++ b/home-manager/programs/rofi/rofi.nix @@ -0,0 +1,278 @@ +{ + config, + pkgs, + configPath, + ... +}: + +{ + programs.rofi = { + enable = true; + terminal = "ghostty"; + package = pkgs.rofi-wayland.override { + plugins = [ pkgs.rofi-emoji-wayland ]; + }; + font = "JetBrainsMono Nerd Font 12"; + plugins = [ + pkgs.rofi-emoji-wayland + pkgs.rofi-calc + pkgs.rofi-games + pkgs.rofi-file-browser + ]; + extraConfig = { + modi = "drun,run,filebrowser,emoji"; + show-icons = true; + display-drun = "Apps"; + display-run = "Run"; + display-filebrowser = "Files"; + drun-display-format = "{name}"; + hover-select = true; + me-select-entry = "MouseSecondary"; + me-accept-entry = "MousePrimary"; + window-format = "{w} · {c} · {t}"; + dpi = 1; + }; + theme = + let + inherit (config.lib.formats.rasi) mkLiteral; + in + { + "*" = { + active-background = mkLiteral "#101C2F"; + active-foreground = mkLiteral "#D6CBD5"; + normal-background = mkLiteral "#030508"; + normal-foreground = mkLiteral "#D6CBD5"; + urgent-background = mkLiteral "#2B7F48"; + urgent-foreground = mkLiteral "#D6CBD5"; + alternate-active-background = mkLiteral "#11606B"; + alternate-active-foreground = mkLiteral "#D6CBD5"; + alternate-normal-background = mkLiteral "#030508"; + alternate-normal-foreground = mkLiteral "#D6CBD5"; + alternate-urgent-background = mkLiteral "#030508"; + alternate-urgent-foreground = mkLiteral "#D6CBD5"; + selected-active-background = mkLiteral "#101C2F"; + selected-active-foreground = mkLiteral "#D6CBD5"; + selected-normal-background = mkLiteral "#BCADBB"; + selected-normal-foreground = mkLiteral "#D6CBD5"; + selected-urgent-background = mkLiteral "#2B7F48"; + selected-urgent-foreground = mkLiteral "#D6CBD5"; + background-color = mkLiteral "#030508"; + background = mkLiteral "rgba(32,32,32,0.7)"; + foreground = mkLiteral "#BCADBB"; + border-color = mkLiteral "#101C2F"; + + background-alt = mkLiteral "@selected-active-background"; + selected = mkLiteral "@selected-urgent-background"; + active = mkLiteral "@selected-normal-background"; + urgent = mkLiteral "@selected"; + text-selected = mkLiteral "@background"; + text-color = mkLiteral "@foreground"; + }; + + "window" = { + enabled = true; + fullscreen = false; + transparency = mkLiteral "\"real\""; + cursor = mkLiteral "\"default\""; + spacing = 0; + border = mkLiteral "4px 0px 4px 0px"; + border-radius = 30; + location = mkLiteral "center"; + anchor = mkLiteral "center"; + width = mkLiteral "50%"; + background-color = mkLiteral "@background"; + }; + + "mainbox" = { + padding = 15; + enabled = true; + orientation = mkLiteral "vertical"; + children = map mkLiteral [ + "inputbar" + "listbox" + ]; + background-color = mkLiteral "transparent"; + }; + + "inputbar" = { + enabled = true; + padding = mkLiteral "10px 10px 100px 10px"; + margin = 10; + background-color = mkLiteral "transparent"; + border-radius = 25; + orientation = mkLiteral "horizontal"; + children = map mkLiteral [ + "entry" + "dummy" + "mode-switcher" + ]; + background-image = mkLiteral "url(\"${configPath}/assets/background.png\", width)"; + }; + + "entry" = { + enabled = true; + expand = false; + width = mkLiteral "20%"; + padding = 10; + border-radius = 12; + background-color = mkLiteral "@selected"; + text-color = mkLiteral "@text-selected"; + cursor = mkLiteral "text"; + placeholder = mkLiteral "\"🖥️ Search \""; + placeholder-color = mkLiteral "inherit"; + }; + + "listbox" = { + spacing = 10; + padding = 10; + background-color = mkLiteral "transparent"; + orientation = mkLiteral "vertical"; + children = map mkLiteral [ + "message" + "listview" + ]; + }; + + "listview" = { + enabled = true; + columns = 2; + lines = 6; + cycle = true; + dynamic = true; + scrollbar = true; + layout = mkLiteral "vertical"; + reverse = false; + fixed-height = false; + fixed-columns = true; + spacing = 10; + background-color = mkLiteral "transparent"; + border = 0; + }; + + "dummy" = { + expand = true; + background-color = mkLiteral "transparent"; + }; + + "mode-switcher" = { + enabled = true; + spacing = 10; + background-color = mkLiteral "transparent"; + }; + + "button" = { + width = mkLiteral "5%"; + padding = 12; + border-radius = 12; + background-color = mkLiteral "@text-selected"; + text-color = mkLiteral "@text-color"; + cursor = mkLiteral "pointer"; + }; + + "button selected" = { + background-color = mkLiteral "@selected"; + text-color = mkLiteral "@text-selected"; + }; + + "scrollbar" = { + width = 4; + border = 0; + handle-color = mkLiteral "@border-color"; + handle-width = 8; + padding = 0; + }; + + "element" = { + enabled = true; + spacing = 10; + padding = 10; + border-radius = 12; + background-color = mkLiteral "transparent"; + cursor = mkLiteral "pointer"; + }; + + "element normal.normal" = { + background-color = mkLiteral "inherit"; + text-color = mkLiteral "inherit"; + }; + + "element normal.urgent" = { + background-color = mkLiteral "@urgent"; + text-color = mkLiteral "@foreground"; + }; + + "element normal.active" = { + background-color = mkLiteral "@active"; + text-color = mkLiteral "@foreground"; + }; + + "element selected.normal" = { + border = mkLiteral "1px 6px 1px 6px"; + border-radius = 16; + border-color = mkLiteral "@selected"; + background-color = mkLiteral "transparent"; + text-color = mkLiteral "@selected"; + }; + + "element selected.urgent" = { + background-color = mkLiteral "@urgent"; + text-color = mkLiteral "@text-selected"; + }; + + "element selected.active" = { + background-color = mkLiteral "@urgent"; + text-color = mkLiteral "@text-selected"; + }; + + "element alternate.normal" = { + background-color = mkLiteral "transparent"; + text-color = mkLiteral "inherit"; + }; + + "element alternate.urgent" = { + background-color = mkLiteral "transparent"; + text-color = mkLiteral "inherit"; + }; + + "element alternate.active" = { + background-color = mkLiteral "transparent"; + text-color = mkLiteral "inherit"; + }; + + "element-icon" = { + background-color = mkLiteral "transparent"; + text-color = mkLiteral "inherit"; + cursor = mkLiteral "inherit"; + }; + + "element-text" = { + background-color = mkLiteral "transparent"; + text-color = mkLiteral "inherit"; + cursor = mkLiteral "inherit"; + vertical-align = mkLiteral "0.5"; + horizontal-align = mkLiteral "0.0"; + }; + + "message" = { + background-color = mkLiteral "transparent"; + border = 0; + }; + + "textbox" = { + padding = 12; + border-radius = 10; + background-color = mkLiteral "@background-alt"; + text-color = mkLiteral "@background"; + vertical-align = mkLiteral "0.5"; + horizontal-align = mkLiteral "0.0"; + }; + + "error-message" = { + padding = 12; + border-radius = 20; + background-color = mkLiteral "@background-alt"; + text-color = mkLiteral "@background"; + }; + }; + }; +}