fix: fix shellll

This commit is contained in:
Rasyidan Akbar F. 2025-10-27 16:59:38 +07:00
commit d80bbce9da
6 changed files with 57 additions and 149 deletions

12
flake.lock generated
View file

@ -209,11 +209,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1761103959, "lastModified": 1761533636,
"narHash": "sha256-TSle1gTii9QSLZIaGdpts0G+9E+vCHksnS5nsreyf1c=", "narHash": "sha256-4xLNB3dIObQIA8m5WFR/ikssWddGc9l5QsyQNaLuoeU=",
"owner": "numtide", "owner": "numtide",
"repo": "nix-ai-tools", "repo": "nix-ai-tools",
"rev": "2191428a02fc107acbbadd796bf80076a7baa770", "rev": "07559be9aee853a3a5968f2fcda14c07477a132d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -380,11 +380,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760945191, "lastModified": 1761311587,
"narHash": "sha256-ZRVs8UqikBa4Ki3X4KCnMBtBW0ux1DaT35tgsnB1jM4=", "narHash": "sha256-Msq86cR5SjozQGCnC6H8C+0cD4rnx91BPltZ9KK613Y=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "f56b1934f5f8fcab8deb5d38d42fd692632b47c2", "rev": "2eddae033e4e74bf581c2d1dfa101f9033dbd2dc",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -23,11 +23,20 @@
}; };
}; };
environment.shells = [ pkgs.nushell ]; environment.shells = [ pkgs.nushell "/etc/profiles/per-user/${user}/bin/nu" ];
# Set XDG Base Directory environment variables globally
# This ensures nushell and other XDG-compliant tools use ~/.config
environment.variables = {
XDG_CONFIG_HOME = "$HOME/.config";
XDG_DATA_HOME = "$HOME/.local/share";
XDG_CACHE_HOME = "$HOME/.cache";
};
users.users.${user} = { users.users.${user} = {
home = lib.mkDefault "/Users/${user}"; home = lib.mkDefault "/Users/${user}";
shell = pkgs.nushell; # Use the Home Manager nushell which has proper config setup
shell = "/etc/profiles/per-user/${user}/bin/nu";
}; };
system = { system = {

View file

@ -1,6 +1,4 @@
{ config, pkgs, lib, ... }: { { config, pkgs, lib, ... }: {
imports = [ ./oh-my-posh ];
programs.fish = { programs.fish = {
enable = true; enable = true;
interactiveShellInit = '' interactiveShellInit = ''
@ -10,8 +8,6 @@
''; '';
}; };
programs.oh-my-posh.enableFishIntegration = lib.mkDefault true;
# Ensure fish is available for login shells on Linux hosts. # Ensure fish is available for login shells on Linux hosts.
home.packages = lib.mkAfter [ pkgs.fish ]; home.packages = lib.mkAfter [ pkgs.fish ];
} }

View file

@ -1,6 +1,7 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
let let
profileBin = "${config.home.profileDirectory}/bin"; profileBin = "${config.home.profileDirectory}/bin";
# System binaries path - same on both NixOS and Darwin
systemBin = "/run/current-system/sw/bin"; systemBin = "/run/current-system/sw/bin";
defaultBin = "/nix/var/nix/profiles/default/bin"; defaultBin = "/nix/var/nix/profiles/default/bin";
darwinHomebrewDir = if pkgs.stdenv.hostPlatform.isAarch64 then darwinHomebrewDir = if pkgs.stdenv.hostPlatform.isAarch64 then
@ -25,8 +26,6 @@ let
formatPathList = paths: formatPathList = paths:
lib.concatMapStrings (path: " \"${path}\"\n") paths; lib.concatMapStrings (path: " \"${path}\"\n") paths;
in { in {
imports = [ ./oh-my-posh ];
programs.nushell.enable = lib.mkDefault true; programs.nushell.enable = lib.mkDefault true;
programs.nushell.extraConfig = '' programs.nushell.extraConfig = ''
@ -69,6 +68,11 @@ in {
''; '';
programs.nushell.envFile.text = '' programs.nushell.envFile.text = ''
# Set XDG Base Directory environment variables
$env.XDG_CONFIG_HOME = "${config.xdg.configHome}"
$env.XDG_DATA_HOME = "${config.xdg.dataHome}"
$env.XDG_CACHE_HOME = "${config.xdg.cacheHome}"
let nix_paths = [ let nix_paths = [
${formatPathList [ profileBin systemBin defaultBin ]} ] ${formatPathList [ profileBin systemBin defaultBin ]} ]
@ -113,6 +117,4 @@ in {
load-secret "groq-api-key" "GROQ_API_KEY" load-secret "groq-api-key" "GROQ_API_KEY"
load-secret "firecrawl-api-key" "FIRECRAWL_API_KEY" load-secret "firecrawl-api-key" "FIRECRAWL_API_KEY"
''; '';
programs.oh-my-posh.enableNushellIntegration = lib.mkDefault true;
} }

View file

@ -1,86 +0,0 @@
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"blocks": [
{
"alignment": "right",
"segments": [
{
"background": "#003543",
"foreground": "#ffffff",
"style": "plain",
"template": " \ue641 {{ .CurrentDate | date .Format }} ",
"type": "time"
},
{
"background": "#83769c",
"foreground": "#ffffff",
"properties": {
"always_enabled": true
},
"style": "plain",
"template": " \ueba2 {{ .FormattedMs }} ",
"type": "executiontime"
}
],
"type": "rprompt"
},
{
"alignment": "left",
"segments": [
{
"background": "#61AFEF",
"foreground": "#ffffff",
"properties": {
"display_host": false
},
"style": "diamond",
"template": "{{if .Root}} \uf0e7 {{.UserName}} {{else}} {{.UserName}} {{end}}",
"trailing_diamond": "\ue0b0",
"type": "session"
},
{
"background": "#C678DD",
"foreground": "#ffffff",
"powerline_symbol": "\ue0b0",
"properties": {
"folder_icon": "\uf115",
"folder_separator_icon": " \ue0b1 ",
"max_depth": 2,
"style": "agnoster_short"
},
"style": "powerline",
"template": " {{ .Path }} ",
"type": "path"
},
{
"background": "#95ffa4",
"foreground": "#193549",
"powerline_symbol": "\ue0b0",
"properties": {
"fetch_status": true
},
"style": "powerline",
"template": " {{ .HEAD }}{{ if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{- $staged := add .Staging.Added (add .Staging.Modified (add .Staging.Deleted .Staging.Unmerged)) -}}{{ if gt $staged 0 }} ^{{$staged}}{{ end }}{{ if gt .Working.Modified 0 }} ~{{ .Working.Modified }}{{ end }}{{ if gt .Working.Deleted 0 }} -{{ .Working.Deleted }}{{ end }}{{ if gt .Working.Untracked 0 }} +{{ .Working.Untracked }}{{ end }} ",
"type": "git"
}
],
"type": "prompt"
},
{
"alignment": "left",
"newline": true,
"segments": [
{
"foreground": "#61AFEF",
"style": "plain",
"template": " ",
"type": "text"
}
],
"type": "prompt"
}
],
"console_title_template": "{{if .Root}} \u26a1 {{end}}{{.UserName}} \u2794 📁{{.Folder}}",
"final_space": true,
"version": 3
}

View file

@ -1,13 +0,0 @@
{ config, lib, ... }:
let
themeName = "capr4n.omp.json";
themeSource = ./capr4n.omp.json;
themeConfigPath = "${config.xdg.configHome}/oh-my-posh/${themeName}";
in {
programs.oh-my-posh = {
enable = lib.mkDefault true;
configFile = themeConfigPath;
};
xdg.configFile."oh-my-posh/${themeName}".source = themeSource;
}