From b132ba24475f7065ca805babd9aff44f00c64128 Mon Sep 17 00:00:00 2001 From: Artur Manuel Date: Wed, 8 Jan 2025 09:44:48 +0000 Subject: [PATCH] feat(xonsh): added starship --- hosts/shared/xonsh.nix | 14 +++ overlays/default.nix | 1 + overlays/derivations/starship.nix | 143 ++++++++++++++++++++++++++++++ 3 files changed, 158 insertions(+) create mode 100644 overlays/derivations/starship.nix diff --git a/hosts/shared/xonsh.nix b/hosts/shared/xonsh.nix index 7104995..93f6ed6 100644 --- a/hosts/shared/xonsh.nix +++ b/hosts/shared/xonsh.nix @@ -38,6 +38,19 @@ in { hash = "sha256-PhhdZ3iLPDEIG9uDeR5ctJ9zz2+YORHBhbsiLrJckyA="; }; }) + (let + name = "xontrib-prompt-starship"; + version = "0.3.6"; + in + ps.buildPythonPackage { + inherit name version; + src = fetchFromGitHub { + owner = "anki-code"; + repo = name; + tag = version; + hash = "sha256-CLOvMa3L4XnH53H/k6/1W9URrPakPjbX1T1U43+eSR0="; + }; + }) ]; }; enable = true; @@ -45,6 +58,7 @@ in { }; environment.systemPackages = [ pkgs.zoxide + pkgs.amadaluzian-starship ]; }; } diff --git a/overlays/default.nix b/overlays/default.nix index f6c2d41..2652701 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -20,6 +20,7 @@ hash = "sha256-vCWs+TOVURl18EdbJr5QAHfB+JX9lYJ3TPO6IklKeFE="; }; }); + amadaluzian-starship = prev.callPackage ./derivations/starship.nix {}; }; perSystem = {pkgs, ...}: { packages = self.overlays.default null pkgs; diff --git a/overlays/derivations/starship.nix b/overlays/derivations/starship.nix new file mode 100644 index 0000000..2f90dd1 --- /dev/null +++ b/overlays/derivations/starship.nix @@ -0,0 +1,143 @@ +{ + symlinkJoin, + starship, + makeWrapper, + writers, +}: let + config = writers.writeTOML "starship.toml" { + aws = {symbol = "aws ";}; + azure = {symbol = "az ";}; + bun = {symbol = "bun ";}; + c = {symbol = "C ";}; + character = { + error_symbol = "[x](bold red)"; + success_symbol = "[>](bold green)"; + vimcmd_symbol = "[<](bold green)"; + }; + cmake = {symbol = "cmake ";}; + cobol = {symbol = "cobol ";}; + conda = {symbol = "conda ";}; + crystal = {symbol = "cr ";}; + daml = {symbol = "daml ";}; + dart = {symbol = "dart ";}; + deno = {symbol = "deno ";}; + directory = {read_only = " ro";}; + docker_context = {symbol = "docker ";}; + dotnet = {symbol = ".NET ";}; + elixir = {symbol = "exs ";}; + elm = {symbol = "elm ";}; + fennel = {symbol = "fnl ";}; + fossil_branch = {symbol = "fossil ";}; + gcloud = {symbol = "gcp ";}; + git_branch = {symbol = "git ";}; + git_commit = {tag_symbol = " tag ";}; + git_status = { + ahead = ">"; + behind = "<"; + deleted = "x"; + diverged = "<>"; + renamed = "r"; + }; + gleam = {symbol = "gleam ";}; + golang = {symbol = "go ";}; + gradle = {symbol = "gradle ";}; + guix_shell = {symbol = "guix ";}; + hg_branch = {symbol = "hg ";}; + java = {symbol = "java ";}; + julia = {symbol = "jl ";}; + kotlin = {symbol = "kt ";}; + lua = {symbol = "lua ";}; + memory_usage = {symbol = "memory ";}; + meson = {symbol = "meson ";}; + nats = {symbol = "nats ";}; + nim = {symbol = "nim ";}; + nix_shell = {symbol = "nix ";}; + nodejs = {symbol = "nodejs ";}; + ocaml = {symbol = "ml ";}; + opa = {symbol = "opa ";}; + os = { + symbols = { + AIX = "aix "; + AlmaLinux = "alma "; + Alpaquita = "alq "; + Alpine = "alp "; + Amazon = "amz "; + Android = "andr "; + Arch = "rch "; + Artix = "atx "; + CentOS = "cent "; + Debian = "deb "; + DragonFly = "dfbsd "; + Emscripten = "emsc "; + EndeavourOS = "ndev "; + Fedora = "fed "; + FreeBSD = "fbsd "; + Garuda = "garu "; + Gentoo = "gent "; + HardenedBSD = "hbsd "; + Illumos = "lum "; + Kali = "kali "; + Linux = "lnx "; + Mabox = "mbox "; + Macos = "mac "; + Manjaro = "mjo "; + Mariner = "mrn "; + MidnightBSD = "mid "; + Mint = "mint "; + NetBSD = "nbsd "; + NixOS = "nix "; + OpenBSD = "obsd "; + OpenCloudOS = "ocos "; + OracleLinux = "orac "; + Pop = "pop "; + Raspbian = "rasp "; + RedHatEnterprise = "rhel "; + Redhat = "rhl "; + Redox = "redox "; + RockyLinux = "rky "; + SUSE = "suse "; + Solus = "sol "; + Ubuntu = "ubnt "; + Ultramarine = "ultm "; + Unknown = "unk "; + Void = "void "; + Windows = "win "; + openEuler = "oeul "; + openSUSE = "osuse "; + }; + }; + package = {symbol = "pkg ";}; + perl = {symbol = "pl ";}; + php = {symbol = "php ";}; + pijul_channel = {symbol = "pijul ";}; + pulumi = {symbol = "pulumi ";}; + purescript = {symbol = "purs ";}; + python = {symbol = "py ";}; + quarto = {symbol = "quarto ";}; + raku = {symbol = "raku ";}; + ruby = {symbol = "rb ";}; + rust = {symbol = "rs ";}; + scala = {symbol = "scala ";}; + solidity = {symbol = "solidity ";}; + spack = {symbol = "spack ";}; + status = {symbol = "[x](bold red) ";}; + sudo = {symbol = "sudo ";}; + swift = {symbol = "swift ";}; + terraform = {symbol = "terraform ";}; + typst = {symbol = "typst ";}; + zig = {symbol = "zig ";}; + }; +in + symlinkJoin { + name = "starship"; + paths = [ + starship + ]; + nativeBuildInputs = [ + makeWrapper + ]; + postBuild = '' + wrapProgram $out/bin/starship \ + --set STARSHIP_CONFIG ${config} + ''; + }