From b79fc0f573e7e687bf59c4df198609c2b12b3e63 Mon Sep 17 00:00:00 2001 From: minco Date: Thu, 7 May 2026 21:05:42 +0900 Subject: [PATCH] migrate to fish --- configuration.nix | 4 +- home.nix | 4 +- modules/home/fish/env.nix | 6 +- modules/home/git.nix | 6 +- modules/home/starship.nix | 212 +++++++++++++++++++++++++++++++++++++- pkgs/tools.nix | 2 +- services/x.nix | 6 +- 7 files changed, 221 insertions(+), 19 deletions(-) diff --git a/configuration.nix b/configuration.nix index 9f11162..1a6cdfd 100644 --- a/configuration.nix +++ b/configuration.nix @@ -189,7 +189,7 @@ in "podman" "dialout" ]; # Enable ‘sudo’ for the user. - shell = pkgs.nushell; + shell = pkgs.fish; home = "/home/allen"; packages = with pkgs; [ tree ]; }; @@ -230,7 +230,7 @@ in myRizin libgit2 ntfs3g - inputs.helix.packages."${pkgs.system}".helix + inputs.helix.packages."${pkgs.stdenv.hostPlatform.system}".helix bambu-studio ]; diff --git a/home.nix b/home.nix index 433ca84..9e8a7e5 100644 --- a/home.nix +++ b/home.nix @@ -25,8 +25,6 @@ "Xft.dpi" = 172; }; - nixpkgs.config.permittedInsecurePackages = [ "qtwebkit-5.212.0-alpha4" ]; - home.packages = let fonts = import ./pkgs/fonts.nix { inherit pkgs; }; @@ -55,7 +53,7 @@ wayland.windowManager.hyprland = { enable = true; xwayland.enable = true; - package = inputs.hyprland.packages.${pkgs.system}.hyprland; + package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; plugins = [ split-monitor-workspaces.packages.x86_64-linux.split-monitor-workspaces ]; diff --git a/modules/home/fish/env.nix b/modules/home/fish/env.nix index d5fe22e..f1ee92b 100644 --- a/modules/home/fish/env.nix +++ b/modules/home/fish/env.nix @@ -1,4 +1,5 @@ -{ config, ... }: { +{ config, ... }: +{ home.sessionVariables = { EDITOR = "nvim"; PNPM_HOME = "${config.home.homeDirectory}/.local/share/pnpm"; @@ -7,7 +8,6 @@ #OPENSSL_LIB_DIR = "${pkgs.openssl.out}/lib"; # OPENSSL_INCLUDE_DIR = "${pkgs.openssl.dev}/include"; # PKG_CONFIG_PATH = "${pkgs.openssl.dev}/lib/pkgconfig"; - NIX_DEV_SHELL_DEFAULT_SHELL = "(which nu)"; + NIX_DEV_SHELL_DEFAULT_SHELL = "(which fish)"; }; } - diff --git a/modules/home/git.nix b/modules/home/git.nix index 3e8a45a..053ce72 100644 --- a/modules/home/git.nix +++ b/modules/home/git.nix @@ -3,9 +3,9 @@ { programs.git = { enable = true; - userName = "minco"; - userEmail = "mail@drchi.co.kr"; - extraConfig = { + settings = { + user.name = "minco"; + user.email = "mail@drchi.co.kr"; credential.helper = "store"; credential.credentialStore = "store"; init.defaultBranch = "main"; diff --git a/modules/home/starship.nix b/modules/home/starship.nix index af6ca5a..cd96b9c 100644 --- a/modules/home/starship.nix +++ b/modules/home/starship.nix @@ -1,12 +1,216 @@ -{ ... }: { +{ ... }: +{ programs.starship = { enable = true; - # custom settings settings = { + "$schema" = "https://starship.rs/config-schema.json"; add_newline = false; - aws.disabled = true; - gcloud.disabled = true; + continuation_prompt = "[.](bright-black) "; + + character = { + success_symbol = "[>](bold green)"; + error_symbol = "[x](bold red)"; + vimcmd_symbol = "[<](bold green)"; + vimcmd_visual_symbol = "[<](bold yellow)"; + vimcmd_replace_symbol = "[<](bold purple)"; + vimcmd_replace_one_symbol = "[<](bold purple)"; + }; + line_break.disabled = true; + + git_commit.tag_symbol = " tag "; + + git_status = { + ahead = ">"; + behind = "<"; + diverged = "<>"; + renamed = "r"; + deleted = "x"; + }; + + aws = { + symbol = "aws "; + disabled = true; + }; + + gcloud = { + symbol = "gcp "; + disabled = true; + }; + + azure.symbol = "az "; + battery = { + full_symbol = "full "; + charging_symbol = "charging "; + discharging_symbol = "discharging "; + unknown_symbol = "unknown "; + empty_symbol = "empty "; + }; + + buf.symbol = "buf "; + bun.symbol = "bun "; + c.symbol = "C "; + cpp.symbol = "C++ "; + cobol.symbol = "cobol "; + conda.symbol = "conda "; + container.symbol = "container "; + crystal.symbol = "cr "; + cmake.symbol = "cmake "; + daml.symbol = "daml "; + dart.symbol = "dart "; + deno.symbol = "deno "; + dotnet = { + format = "via [$symbol($version )(target $tfm )]($style)"; + symbol = ".NET "; + }; + directory.read_only = " ro"; + docker_context.symbol = "docker "; + elixir.symbol = "exs "; + elm.symbol = "elm "; + erlang.symbol = "erl "; + fennel.symbol = "fnl "; + fortran.symbol = "fortran "; + fossil_branch = { + symbol = "fossil "; + truncation_symbol = "..."; + }; + git_branch = { + symbol = "git "; + truncation_symbol = "..."; + }; + gleam.symbol = "gleam "; + golang.symbol = "go "; + gradle.symbol = "gradle "; + guix_shell.symbol = "guix "; + haskell.symbol = "haskell "; + haxe.symbol = "hx "; + helm.symbol = "helm "; + hg_branch = { + symbol = "hg "; + truncation_symbol = "..."; + }; + hostname.ssh_symbol = "ssh "; + java.symbol = "java "; + jobs.symbol = "*"; + julia.symbol = "jl "; + kotlin.symbol = "kt "; + kubernetes.symbol = "kubernetes "; + lua.symbol = "lua "; + maven.symbol = "maven "; + nodejs.symbol = "nodejs "; + memory_usage.symbol = "memory "; + meson = { + symbol = "meson "; + truncation_symbol = "..."; + }; + mojo.symbol = "mojo "; + nats.symbol = "nats "; + netns.symbol = "netns "; + nim.symbol = "nim "; + nix_shell.symbol = "nix "; + ocaml.symbol = "ml "; + odin.symbol = "odin "; + opa.symbol = "opa "; + openstack.symbol = "openstack "; + + os.symbols = { + AIX = "aix "; + Alpaquita = "alq "; + AlmaLinux = "alma "; + Alpine = "alp "; + ALTLinux = "alt "; + Amazon = "amz "; + Android = "andr "; + AOSC = "aosc "; + Arch = "rch "; + Artix = "atx "; + Bluefin = "blfn "; + CachyOS = "cach "; + CentOS = "cent "; + Debian = "deb "; + DragonFly = "dfbsd "; + Elementary = "elem "; + Emscripten = "emsc "; + EndeavourOS = "ndev "; + Fedora = "fed "; + FreeBSD = "fbsd "; + Garuda = "garu "; + Gentoo = "gent "; + HardenedBSD = "hbsd "; + Illumos = "lum "; + Ios = "ios "; + InstantOS = "inst "; + Kali = "kali "; + Linux = "lnx "; + Mabox = "mbox "; + Macos = "mac "; + Manjaro = "mjo "; + Mariner = "mrn "; + MidnightBSD = "mid "; + Mint = "mint "; + NetBSD = "nbsd "; + NixOS = "nix "; + Nobara = "nbra "; + OpenBSD = "obsd "; + OpenCloudOS = "ocos "; + openEuler = "oeul "; + openSUSE = "osuse "; + OracleLinux = "orac "; + PikaOS = "pika "; + Pop = "pop "; + Raspbian = "rasp "; + Redhat = "rhl "; + RedHatEnterprise = "rhel "; + RockyLinux = "rky "; + Redox = "redox "; + Solus = "sol "; + SUSE = "suse "; + Ubuntu = "ubnt "; + Ultramarine = "ultm "; + Unknown = "unk "; + Uos = "uos "; + Void = "void "; + Windows = "win "; + Zorin = "zorn "; + }; + + package.symbol = "pkg "; + perl.symbol = "pl "; + php.symbol = "php "; + pijul_channel = { + symbol = "pijul "; + truncation_symbol = "..."; + }; + pixi.symbol = "pixi "; + pulumi.symbol = "pulumi "; + purescript.symbol = "purs "; + python.symbol = "py "; + quarto.symbol = "quarto "; + raku.symbol = "raku "; + red.symbol = "red "; + rlang.symbol = "r "; + ruby.symbol = "rb "; + rust.symbol = "rs "; + scala.symbol = "scala "; + shlvl.symbol = "shlvl "; + spack.symbol = "spack "; + solidity.symbol = "solidity "; + + status = { + symbol = "[x](bold red) "; + not_executable_symbol = "noexec"; + not_found_symbol = "notfound"; + sigint_symbol = "sigint"; + signal_symbol = "sig"; + }; + + sudo.symbol = "sudo "; + swift.symbol = "swift "; + typst.symbol = "typst "; + vagrant.symbol = "vagrant "; + terraform.symbol = "terraform "; + xmake.symbol = "xmake "; + zig.symbol = "zig "; }; }; } diff --git a/pkgs/tools.nix b/pkgs/tools.nix index 2b02b9d..1ac5233 100644 --- a/pkgs/tools.nix +++ b/pkgs/tools.nix @@ -41,7 +41,7 @@ with pkgs; yt-dlp stellarium blender - jetbrains.idea-ultimate + jetbrains.idea krita deskflow obsidian diff --git a/services/x.nix b/services/x.nix index 38f6f86..8e5dbcc 100644 --- a/services/x.nix +++ b/services/x.nix @@ -23,10 +23,10 @@ config.common.default = "*"; }; - services.xserver.displayManager.gdm.enable = true; - # services.xserver.displayManager.sddm.enable = true; + services.displayManager.gdm.enable = true; + # services.displayManager.sddm.enable = true; - services.xserver.desktopManager.gnome.enable = true; + services.desktopManager.gnome.enable = true; services.xserver.xkb.layout = "us"; services.picom.enable = true;