feat(home): Starship

This commit is contained in:
punkfairie 2024-11-16 20:45:03 -08:00
parent 279102f413
commit 5ed3ac9754
Signed by: punkfairie
GPG key ID: A509E8F77FB9D696
4 changed files with 186 additions and 128 deletions

View file

@ -39,6 +39,7 @@ in
rbw = enabled; rbw = enabled;
ripgrep = enabled; ripgrep = enabled;
ssh = enabled; ssh = enabled;
starship = enabled;
systemctl = enabled; systemctl = enabled;
}; };
xorg = { xorg = {

View file

@ -0,0 +1,82 @@
{
lib,
config,
namespace,
...
}:
let
inherit (lib)
mkIf
enabled
mkForce
concatStrings
;
inherit (lib.${namespace}) mkEnableModule;
cfg = config.${namespace}.programs.starship;
inherit (config.${namespace}) theme;
in
{
options = mkEnableModule "programs.starship";
imports = [
./nerd-font-symbols.nix
];
config = mkIf cfg.enable {
programs.starship = {
enable = true;
"${theme.colors.base}" = enabled;
settings = mkIf config.programs.starship.rose-pine.enabled {
format = mkForce (concatStrings [
"$username "
"$directory "
"$nix_shell "
"$git_branch "
"$git_status "
"$fill "
"$c "
"$elixir "
"$elm "
"$golang "
"$haskell "
"$java "
"$julia "
"$nodejs "
"$nim "
"$rust "
"$scala "
"$python "
"$time "
"$line_break "
"$character "
]);
character =
let
vim = "";
mkChar = sym: col: "[${sym}](fg:${col}) ";
in
{
success_symbol = mkChar "" "iris";
error_symbol = mkChar "󰋔" "love";
vimcmd_symbol = mkChar vim "rose";
vimcmd_replace_one_symbol = mkChar vim "gold";
vimcmd_replace_symbol = mkChar vim "gold";
vimcmd_visual_symbol = mkChar vim "iris";
};
nix_shell = {
format = "[](fg:overlay)[ $symbol $state( \($name\)) ]($style)[](fg:overlay) ";
style = "bg:overlay fg:foam";
};
git_branch.style = mkForce "bg:overlay fg:love";
git_status.style = mkForce "bg:overlay fg:rose";
time.style = mkForce "bg:overlay fg:gold";
};
};
};
}

View file

@ -0,0 +1,103 @@
{
lib,
config,
namespace,
...
}:
let
inherit (lib) mkIf mkForce;
cfg = config.${namespace}.programs.starship;
in
{
config = mkIf cfg.enable {
programs.starship.settings = {
aws.symbol = mkForce " ";
buf.symbol = mkForce " ";
c.symbol = mkForce " ";
conda.symbol = mkForce " ";
crystal.symbol = mkForce " ";
dart.symbol = mkForce " ";
directory.read_only = mkForce " 󰌾";
docker_context.symbol = mkForce " ";
elixir.symbol = mkForce " ";
elm.symbol = mkForce " ";
fennel.symbol = mkForce " ";
fossil_branch.symbol = mkForce " ";
git_branch.symbol = mkForce " ";
git_commit.tag_symbol = mkForce " ";
golang.symbol = mkForce " ";
guix_shell.symbol = mkForce " ";
haskell.symbol = mkForce " ";
haxe.symbol = mkForce " ";
hg_branch.symbol = mkForce " ";
hostname.ssh_symbol = mkForce " ";
java.symbol = mkForce " ";
julia.symbol = mkForce " ";
kotlin.symbol = mkForce " ";
lua.symbol = mkForce " ";
memory_usage.symbol = mkForce "󰍛 ";
meson.symbol = mkForce "󰔷 ";
nim.symbol = mkForce "󰆥 ";
nix_shell.symbol = mkForce " ";
nodejs.symbol = mkForce " ";
ocaml.symbol = mkForce " ";
os.symbols = {
Alpine = mkForce " ";
AlmaLinux = mkForce " ";
Amazon = mkForce " ";
Android = mkForce " ";
Arch = mkForce " ";
Artix = mkForce " ";
CentOS = mkForce " ";
Debian = mkForce " ";
DragonFly = mkForce " ";
Emscripten = mkForce " ";
EndeavourOS = mkForce " ";
Fedora = mkForce " ";
FreeBSD = mkForce " ";
Garuda = mkForce "󰛓 ";
Gentoo = mkForce " ";
HardenedBSD = mkForce "󰞌 ";
Illumos = mkForce "󰈸 ";
Kali = mkForce " ";
Linux = mkForce " ";
Mabox = mkForce " ";
Macos = mkForce " ";
Manjaro = mkForce " ";
Mariner = mkForce " ";
MidnightBSD = mkForce " ";
Mint = mkForce " ";
NetBSD = mkForce " ";
NixOS = mkForce " ";
OpenBSD = mkForce "󰈺 ";
openSUSE = mkForce " ";
OracleLinux = mkForce "󰌷 ";
Pop = mkForce " ";
Raspbian = mkForce " ";
Redhat = mkForce " ";
RedHatEnterprise = mkForce " ";
RockyLinux = mkForce " ";
Redox = mkForce "󰀘 ";
Solus = mkForce "󰠳 ";
SUSE = mkForce " ";
Ubuntu = mkForce " ";
Unknown = mkForce " ";
Void = mkForce " ";
Windows = mkForce "󰍲 ";
};
package.symbol = mkForce "󰏗 ";
perl.symbol = mkForce " ";
php.symbol = mkForce " ";
pijul_channel.symbol = mkForce " ";
python.symbol = mkForce " ";
rlang.symbol = mkForce "󰟔 ";
ruby.symbol = mkForce " ";
rust.symbol = mkForce "󱘗 ";
scala.symbol = mkForce " ";
swift.symbol = mkForce " ";
zig.symbol = mkForce " ";
gradle.symbol = mkForce " ";
};
};
}

View file

@ -1,128 +0,0 @@
{ lib, ... }:
{
programs.starship = {
enable = true;
rose-pine.enable = true;
settings = lib.mkMerge [
# Nerd Font Symbols
{
aws.symbol = lib.mkForce " ";
buf.symbol = lib.mkForce " ";
c.symbol = lib.mkForce " ";
conda.symbol = lib.mkForce " ";
crystal.symbol = lib.mkForce " ";
dart.symbol = lib.mkForce " ";
directory.read_only = lib.mkForce " 󰌾";
docker_context.symbol = lib.mkForce " ";
elixir.symbol = lib.mkForce " ";
elm.symbol = lib.mkForce " ";
fennel.symbol = lib.mkForce " ";
fossil_branch.symbol = lib.mkForce " ";
git_branch.symbol = lib.mkForce " ";
git_commit.tag_symbol = lib.mkForce " ";
golang.symbol = lib.mkForce " ";
guix_shell.symbol = lib.mkForce " ";
haskell.symbol = lib.mkForce " ";
haxe.symbol = lib.mkForce " ";
hg_branch.symbol = lib.mkForce " ";
hostname.ssh_symbol = lib.mkForce " ";
java.symbol = lib.mkForce " ";
julia.symbol = lib.mkForce " ";
kotlin.symbol = lib.mkForce " ";
lua.symbol = lib.mkForce " ";
memory_usage.symbol = lib.mkForce "󰍛 ";
meson.symbol = lib.mkForce "󰔷 ";
nim.symbol = lib.mkForce "󰆥 ";
nix_shell.symbol = lib.mkForce " ";
nodejs.symbol = lib.mkForce " ";
ocaml.symbol = lib.mkForce " ";
os.symbols = {
Alpine = lib.mkForce " ";
AlmaLinux = lib.mkForce " ";
Amazon = lib.mkForce " ";
Android = lib.mkForce " ";
Arch = lib.mkForce " ";
Artix = lib.mkForce " ";
CentOS = lib.mkForce " ";
Debian = lib.mkForce " ";
DragonFly = lib.mkForce " ";
Emscripten = lib.mkForce " ";
EndeavourOS = lib.mkForce " ";
Fedora = lib.mkForce " ";
FreeBSD = lib.mkForce " ";
Garuda = lib.mkForce "󰛓 ";
Gentoo = lib.mkForce " ";
HardenedBSD = lib.mkForce "󰞌 ";
Illumos = lib.mkForce "󰈸 ";
Kali = lib.mkForce " ";
Linux = lib.mkForce " ";
Mabox = lib.mkForce " ";
Macos = lib.mkForce " ";
Manjaro = lib.mkForce " ";
Mariner = lib.mkForce " ";
MidnightBSD = lib.mkForce " ";
Mint = lib.mkForce " ";
NetBSD = lib.mkForce " ";
NixOS = lib.mkForce " ";
OpenBSD = lib.mkForce "󰈺 ";
openSUSE = lib.mkForce " ";
OracleLinux = lib.mkForce "󰌷 ";
Pop = lib.mkForce " ";
Raspbian = lib.mkForce " ";
Redhat = lib.mkForce " ";
RedHatEnterprise = lib.mkForce " ";
RockyLinux = lib.mkForce " ";
Redox = lib.mkForce "󰀘 ";
Solus = lib.mkForce "󰠳 ";
SUSE = lib.mkForce " ";
Ubuntu = lib.mkForce " ";
Unknown = lib.mkForce " ";
Void = lib.mkForce " ";
Windows = "󰍲 ";
};
package.symbol = lib.mkForce "󰏗 ";
perl.symbol = lib.mkForce " ";
php.symbol = lib.mkForce " ";
pijul_channel.symbol = lib.mkForce " ";
python.symbol = lib.mkForce " ";
rlang.symbol = lib.mkForce "󰟔 ";
ruby.symbol = lib.mkForce " ";
rust.symbol = lib.mkForce "󱘗 ";
scala.symbol = lib.mkForce " ";
swift.symbol = lib.mkForce " ";
zig.symbol = lib.mkForce " ";
gradle.symbol = lib.mkForce " ";
}
{
format = lib.mkForce (
lib.concatStrings [
"$username "
"$directory "
"$direnv "
"$git_branch "
"$git_status "
"$fill "
"$c "
"$elixir "
"$elm "
"$golang "
"$haskell "
"$java "
"$julia "
"$nodejs "
"$nim "
"$rust "
"$scala "
"$python "
"$time "
"$line_break "
"[󱞪](fg:iris) "
]
);
}
];
};
}