You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			127 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Cheetah
		
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Cheetah
		
	
# chezmoi:template:left-delimiter=#{{
 | 
						|
#{{- /* vim: set filetype=nu: */ -}}
 | 
						|
# Nushell Environment Config File
 | 
						|
 | 
						|
def command_prompt [] {(
 | 
						|
    starship prompt
 | 
						|
        $'--cmd-duration=($env.CMD_DURATION_MS)'
 | 
						|
        $'--status=($env.LAST_EXIT_CODE)'
 | 
						|
)}
 | 
						|
 | 
						|
def add_xdg [name ...parts] {
 | 
						|
    if $name in $env {
 | 
						|
        return ($env | get $name)
 | 
						|
    }
 | 
						|
    for $part in $parts {
 | 
						|
        let path = ($env.HOME | path join $part)
 | 
						|
        if ($path | path exists) {
 | 
						|
            return $path
 | 
						|
        }
 | 
						|
    }
 | 
						|
    return ''
 | 
						|
}
 | 
						|
 | 
						|
def from_string [] {
 | 
						|
    split row (char esep) | path expand --no-symlink
 | 
						|
}
 | 
						|
 | 
						|
def to_string [] {
 | 
						|
    path expand --no-symlink | str join (char esep)
 | 
						|
}
 | 
						|
 | 
						|
load-env ({
 | 
						|
    XDG_BIN_HOME: (add_xdg XDG_BIN_HOME .local/bin)
 | 
						|
    XDG_CACHE_HOME: (add_xdg XDG_CACHE_HOME .cache)
 | 
						|
    XDG_CONFIG_HOME: (add_xdg XDG_CONFIG_HOME .config)
 | 
						|
    XDG_DATA_HOME: (add_xdg XDG_DATA_HOME .local/share)
 | 
						|
    XDG_INCLUDE_HOME: (add_xdg XDG_INCLUDE_HOME .local/include)
 | 
						|
    XDG_STATE_HOME: (add_xdg XDG_STATE_HOME .local/state)
 | 
						|
 | 
						|
    XDG_DESKTOP_DIR: (add_xdg XDG_DESKTOP_DIR Desktop desktop)
 | 
						|
    XDG_DOCUMENTS_DIR: (add_xdg XDG_DOCUMENTS_DIR Documents documents)
 | 
						|
    XDG_DOWNLOAD_DIR: (add_xdg XDG_DOWNLOAD_DIR Downloads downloads)
 | 
						|
    XDG_MUSIC_DIR: (add_xdg XDG_MUSIC_DIR Music music)
 | 
						|
    XDG_PICTURES_DIR: (add_xdg XDG_PICTURES_DIR Pictures pictures)
 | 
						|
    XDG_PODCAST_DIR: (add_xdg XDG_PODCAST_DIR Podcasts podcasts)
 | 
						|
    XDG_PUBLICSHARE_DIR: (add_xdg XDG_PUBLICSHARE_DIR Public public)
 | 
						|
    XDG_TEMPLATES_DIR: (add_xdg XDG_TEMPLATES_DIR Templates templates)
 | 
						|
    XDG_VIDEOS_DIR: (add_xdg XDG_VIDEOS_DIR Videos videos)
 | 
						|
} | transpose name value
 | 
						|
  | where { $in.value | is-not-empty }
 | 
						|
  | transpose --header-row --as-record)
 | 
						|
 | 
						|
load-env {
 | 
						|
    STARSHIP_SHELL: nu
 | 
						|
    EDITOR: nvim
 | 
						|
 | 
						|
    BROWSER: firefox
 | 
						|
    MAN_DIR: $'($env.XDG_DATA_HOME)/man/man1'
 | 
						|
 | 
						|
    BAT_PAGER: "less --raw-control-chars --quit-if-one-screen --no-init"
 | 
						|
    BAT_STYLE: plain
 | 
						|
    BAT_THEME: zenburn
 | 
						|
    MANPAGER: "sh -c 'col -bx | bat --language man --plain'"
 | 
						|
    NPM_CONFIG_USERCONFIG: #{{ if ne .role "work" }}$'($env.XDG_CONFIG_HOME)/npm/npmrc'#{{ else }}$'($env.XDG_CONFIG_HOME)/npm/config'#{{ end }}
 | 
						|
    RIPGREP_CONFIG_PATH: $'($env.XDG_CONFIG_HOME)/ripgrep/config'
 | 
						|
 | 
						|
    PATH: ([
 | 
						|
        $env.XDG_BIN_HOME
 | 
						|
        /opt/homebrew/bin
 | 
						|
        /opt/homebrew/sbin
 | 
						|
        ($'($env.CARGO_HOME?)' | path join "bin")
 | 
						|
        ($'($env.HOME)/go/bin')
 | 
						|
        ($'($env.HOME)/.deno/bin')
 | 
						|
        ($'($env.HOME)/.gem/ruby/2.6.0/bin')
 | 
						|
        ($'($env.HOME)/.local/share/JetBrains/Toolbox/scripts')
 | 
						|
        ($'($env.HOME)/.rbenv/shims')
 | 
						|
        ($'($env.HOME)/google-cloud-sdk/bin')
 | 
						|
        /opt/homebrew/opt/python@3.13/libexec/bin
 | 
						|
        /usr/local/bin
 | 
						|
        /usr/bin
 | 
						|
        /bin
 | 
						|
        /usr/sbin
 | 
						|
        /sbin
 | 
						|
        /Applications/Ghostty.app/Contents/MacOS
 | 
						|
        ...($env.PATH | split row (char esep))
 | 
						|
        /snap/bin
 | 
						|
    ] | each {|p| if ($p | path exists) { $p } else { null }}
 | 
						|
        | uniq)
 | 
						|
 | 
						|
    PROMPT_COMMAND_RIGHT: ""
 | 
						|
    PROMPT_COMMAND: {|| command_prompt }
 | 
						|
 | 
						|
    PROMPT_INDICATOR: ""
 | 
						|
    PROMPT_INDICATOR_VI_INSERT: ": "
 | 
						|
    PROMPT_INDICATOR_VI_NORMAL: "〉"
 | 
						|
    PROMPT_MULTILINE_INDICATOR: "::: "
 | 
						|
 | 
						|
    NU_LIB_DIRS: [
 | 
						|
        ($nu.default-config-dir | path join lib)
 | 
						|
        ($nu.default-config-dir | path join completions)
 | 
						|
    ]
 | 
						|
 | 
						|
    NU_PLUGIN_DIRS: [
 | 
						|
        ($nu.default-config-dir | path join plugins)
 | 
						|
    ]
 | 
						|
 | 
						|
    ENV_CONVERSIONS: {
 | 
						|
        PATH: {
 | 
						|
            from_string: { from_string }
 | 
						|
            to_string: { to_string }
 | 
						|
        }
 | 
						|
        XDG_DATA_DIRS: {
 | 
						|
            from_string: { from_string }
 | 
						|
            to_string: { to_string }
 | 
						|
        }
 | 
						|
        Path: {
 | 
						|
            from_string: { from_string }
 | 
						|
            to_string: { to_string }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
hide add_xdg
 | 
						|
hide command_prompt
 | 
						|
hide from_string
 | 
						|
hide to_string
 |