From 1a0064894d7b0e60c2a5f59a963565b3f47c104d Mon Sep 17 00:00:00 2001 From: DashieTM Date: Tue, 6 Aug 2024 04:15:00 +0200 Subject: [PATCH] Change to starship --- modules/programs/base_packages.nix | 234 ++++++++++++++++++++--------- programs/common.nix | 9 +- 2 files changed, 164 insertions(+), 79 deletions(-) diff --git a/modules/programs/base_packages.nix b/modules/programs/base_packages.nix index 1a889cb..4944456 100644 --- a/modules/programs/base_packages.nix +++ b/modules/programs/base_packages.nix @@ -1,4 +1,4 @@ -{ config, lib, options, pkgs, ... }: { +{ config, lib, options, pkgs, inputs, ... }: { options.mods = { default_base_packages = { enable = lib.mkOption { @@ -26,83 +26,169 @@ (lib.optionalAttrs (options?environment.systemPackages) { environment.systemPackages = config.mods.default_base_packages.additional_packages; - } // (lib.mkIf config.mods.default_base_packages.enable ( - lib.optionalAttrs - (options?environment.systemPackages) - { - environment.systemPackages = with pkgs; [ - openssl - dbus - glib - gtk4 - gtk3 - libadwaita - gtk-layer-shell - gtk4-layer-shell - direnv - dconf - gsettings-desktop-schemas - gnome.nixos-gsettings-overrides - bibata-cursors - xorg.xkbutils - libxkbcommon - icon-library - adwaita-icon-theme - hicolor-icon-theme - morewaita-icon-theme - kdePackages.breeze-icons - seahorse - upower - (lib.mkIf config.conf.streamdeck.enable (callPackage - ../../override/streamdeck.nix - { })) - ]; + } // (lib.mkIf config.mods.default_base_packages.enable + ( + lib.optionalAttrs + (options?environment.systemPackages) + { + environment.systemPackages = with pkgs; [ + openssl + dbus + glib + gtk4 + gtk3 + libadwaita + gtk-layer-shell + gtk4-layer-shell + direnv + dconf + gsettings-desktop-schemas + gnome.nixos-gsettings-overrides + bibata-cursors + xorg.xkbutils + libxkbcommon + icon-library + adwaita-icon-theme + hicolor-icon-theme + morewaita-icon-theme + kdePackages.breeze-icons + seahorse + upower + (lib.mkIf config.conf.streamdeck.enable (callPackage + ../../override/streamdeck.nix + { })) + ]; - gtk.iconCache.enable = false; + gtk.iconCache.enable = false; - fonts.packages = with pkgs; [ - cantarell-fonts - ]; + fonts.packages = with pkgs; [ + cantarell-fonts + ]; - virtualisation.docker.enable = true; + virtualisation.docker.enable = true; - services.upower.enable = true; - services.dbus.enable = true; - services.dbus.packages = with pkgs; [ - gnome2.GConf - ]; - services.avahi = { - enable = true; - nssmdns4 = true; - openFirewall = true; - }; - programs.starship = { - enable = true; - interactiveOnly = true; - presets = [ "pastel-powerline" ]; - settings = { }; - }; - - programs.fish.enable = true; - programs.fish.promptInit = '' - ${pkgs.any-nix-shell}/bin/any-nix-shell fish --info-right | source - ''; - programs.nix-ld.enable = true; - programs.nix-ld.libraries = with pkgs; [ - jdk - zlib - ]; - programs.direnv = { - package = pkgs.direnv; - silent = false; - loadInNixShell = true; - direnvrcExtra = ""; - nix-direnv = { + services.upower.enable = true; + services.dbus.enable = true; + services.dbus.packages = with pkgs; [ + gnome2.GConf + ]; + services.avahi = { enable = true; - package = pkgs.nix-direnv; + nssmdns4 = true; + openFirewall = true; }; - }; - programs.ssh.startAgent = true; - programs.gnupg.agent.enable = true; - }))); + programs.starship = + let + base16 = pkgs.callPackage inputs.base16.lib { }; + scheme = (base16.mkSchemeAttrs config.stylix.base16Scheme); + code_format = "[](bg:prev_bg fg:#5256c3)[ $symbol ($version)](bg:#5256c3)"; + in + { + enable = true; + interactiveOnly = true; + presets = [ "pastel-powerline" ]; + settings = + { + # derived from https://starship.rs/presets/pastel-powerline + format = ''$username$directory$git_branch$git_status$git_metrics[ ](bg:none fg:prev_bg)''; + right_format = ''$c$elixir$elm$golang$gradle$haskell$java$julia$nodejs$nim$rust$scala$python$ocaml$opa$perl$zig$dart$dotnet$nix_shell$shell$solidity[](bg:prev_bg fg:#3465A4)$time$os''; + username = { + show_always = false; + style_user = "bg:#5277C3 fg:#${scheme.base05}"; + style_root = "bg:#5277C3 fg:#${scheme.base05}"; + format = "[ $user ]($style)[](bg:#3465A4 fg:#5277C3)"; + disabled = false; + }; + os = { + symbols = { NixOS = "  "; }; + style = "bg:#3465A4 fg:#${scheme.base05}"; + disabled = false; + }; + directory = { + style = "bg:#3465A4 fg:#${scheme.base05}"; + format = "[ $path ]($style)"; + truncation_length = 3; + truncation_symbol = "…/"; + }; + git_branch = { + symbol = ""; + style = "bg:#5256c3 fg:#${scheme.base05}"; + format = "[ ](bg:#5256c3 fg:prev_bg)[$symbol $branch ]($style)"; + }; + git_status = { + staged = "+\${count} (fg:#C4A000)"; + ahead = "⇡\${count} (fg:#C4A000)"; + diverged = "⇕⇡\${count} (fg:#C4A000)"; + behind = "⇣\${count} (fg:#C4A000)"; + stashed = " "; + untracked = "?\${count} (fg:#C4A000)"; + modified = "!\${count} (fg:#C4A000)"; + deleted = "✘\${count} (fg:#C4A000)"; + conflicted = "=\${count} (fg:#C4A000)"; + renamed = "»\${count} (fg:#C4A000)"; + style = "bg:#5256c3 fg:fg:#C4A000"; + format = "[$all_status$ahead_behind]($style)"; + }; + git_metrics = { + disabled = false; + format = "([| ](bg:#5256c3)[+$added]($added_style bg:#5256c3)[ -$deleted]($deleted_style bg:#5256c3))"; + }; + c = { format = code_format; }; + elixir = { format = code_format; }; + elm = { format = code_format; }; + golang = { format = code_format; }; + gradle = { format = code_format; }; + haskell = { format = code_format; }; + java = { format = code_format; }; + julia = { format = code_format; }; + nodejs = { format = code_format; }; + nim = { format = code_format; }; + nix_shell = { symbol = ""; format = code_format; }; + rust = { format = code_format; }; + scala = { format = code_format; }; + typst = { format = code_format; }; + python = { format = code_format; }; + ocaml = { format = code_format; }; + opa = { format = code_format; }; + perl = { format = code_format; }; + zig = { format = code_format; }; + dart = { format = code_format; }; + dotnet = { format = code_format; }; + # docker_context = { + # symbol = " "; + # style = "bg:#06969A"; + # format = "[](bg:#06969A fg:prev_bg)[ $symbol $context ]($style)"; + # }; + time = { + disabled = false; + time_format = "%R"; # Hour:Minute Format + style = "bg:#3465A4 fg:#${scheme.base05}"; + format = "[ $time ]($style)"; + }; + }; + }; + + + programs.fish.enable = true; + programs.fish.promptInit = '' + ${pkgs.any-nix-shell}/bin/any-nix-shell fish --info-right | source + ''; + programs.nix-ld.enable = true; + programs.nix-ld.libraries = with pkgs; [ + jdk + zlib + ]; + programs.direnv = { + package = pkgs.direnv; + silent = false; + loadInNixShell = true; + direnvrcExtra = ""; + nix-direnv = { + enable = true; + package = pkgs.nix-direnv; + }; + }; + programs.ssh.startAgent = true; + programs.gnupg.agent.enable = true; + }))); } diff --git a/programs/common.nix b/programs/common.nix index 1cd99fb..07c28e4 100644 --- a/programs/common.nix +++ b/programs/common.nix @@ -31,11 +31,10 @@ in filesystems=xdg-config/gtk-3.0;xdg-config/gtk-4.0 ''; - programs.nix-index = - { - enable = true; - enableFishIntegration = true; - }; + programs.nix-index = { + enable = true; + enableFishIntegration = true; + }; nix = { extraOptions = ''