diff --git a/confs/starship.toml b/confs/starship.toml index f6fd56c..f4ad09d 100644 --- a/confs/starship.toml +++ b/confs/starship.toml @@ -1,115 +1,115 @@ -# Sets user-defined palette -palette = "catppuccin_mocha" +"$schema" = 'https://starship.rs/config-schema.json' -format = """$time$container$directory$all$line_break$username$hostname$character""" -right_format = """$cmd_duration$jobs$status""" +## PROMPT FORMAT +format = """$time$container$directory$all$cmd_duration$jobs$status$line_break$username$hostname$character""" +# # PALETTE +palette = 'catppuccin_mocha' + +[palettes.catppuccin_mocha] +rosewater = '#f5e0dc' +flamingo = '#f2cdcd' +pink = '#f5c2e7' +mauve = '#cba6f7' +red = '#f38ba8' +maroon = '#eba0ac' +peach = '#fab387' +yellow = '#f9e2af' +green = '#a6e3a1' +teal = '#94e2d5' +sky = '#89dceb' +sapphire = '#74c7ec' +blue = '#89b4fa' +lavender = '#b4befe' +text = '#cdd6f4' +subtext1 = '#bac2de' +subtext0 = '#a6adc8' +overlay2 = '#9399b2' +overlay1 = '#7f849c' +overlay0 = '#6c7086' +surface2 = '#585b70' +surface1 = '#45475a' +surface0 = '#313244' +base = '#1e1e2e' +mantle = '#181825' +crust = '#11111b' + +## LEFT SIDE - FIRST LINE [time] disabled = false -format = '[\[ $time \]]($style) ' -time_format = "%T" -style = "bold peach" +format = '[$time]($style) ' +time_format = '%T' +style = 'bold peach' -[username] -format = "[$user]($style)@" -style_user = "red" -style_root = "bold red" -show_always = true - -# Second param -[hostname] -format = "[$hostname]($style)" -style = "lavender" -trim_at = ".local" -ssh_only = false -disabled = false - -# Third param [directory] -style = "subtext0" +style = 'subtext0' truncation_length = 8 truncate_to_repo = true -truncation_symbol = "repo: " +truncation_symbol = 'repo: ' + +[docker_context] +symbol = 'docker: ' +format = '[$symbol$context]($style)' + +[git_branch] +symbol = ' ' -# Before all the version info (python, nodejs, php, etc.) [git_status] -style = "text" -ahead = "⇡${count}" -diverged = "⇕⇡${ahead_count}⇣${behind_count}" -behind = "⇣${count}" -deleted = "x" +style = 'text' +ahead = '⇡${count}' +diverged = '⇕⇡${ahead_count}⇣${behind_count}' +behind = '⇣${count}' +deleted = 'x' -[container] -style = "bold pink" -format = "[$symbol \\[ $name \\]]($style) " +[golang] +symbol = 'go: ' +format = '[$symbol($version )($style)' + +[nix_shell] +symbol = 'nix: ' +format = '[$symbol$state(\($name\))]($style)' + +[nodejs] +symbol = 'node: ' +format = '[$symbol($version)]($style)' + +[python] +symbol = 'py: ' +format = '[${symbol}${pyenv_prefix}(${version} )(\($virtualenv\) )]($style)' + +[rust] +symbol = 'rust: ' +format = '[$symbol($version)]($style)' -# Last param in the first line/row [cmd_duration] min_time = 1 -style = "yellow" -format = '\[duration: [$duration]($style)\] ' +style = 'yellow' +format = 'duration: [$duration]($style) ' disabled = false -# Prompt: param 2 -[character] -format = '$symbol ' -success_symbol = ' [➜](bold teal)' -error_symbol = ' [➜](bold red)' -vimcmd_symbol = ' [V](bold green)' - -# SYMBOLS [status] -format = '\[exit status: [$status = $common_meaning]($style)\]' +format = 'exit status: [$status = $common_meaning]($style) ' disabled = false -style = "bold red" +style = 'bold red' recognize_signal_code = true map_symbol = true -[docker_context] -symbol = " " +## LEFT SIDE - SECOND LINE +[username] +format = '[$user]($style)@' +style_user = 'red' +style_root = 'bold red' +show_always = true -[git_branch] -symbol = " " +[hostname] +format = '[$hostname]($style)' +style = 'lavender' +trim_at = '.local' +ssh_only = false +disabled = false -[golang] -symbol = " " - -[nodejs] -symbol = " " - -[package] -symbol = " " - -[python] -symbol = " " - -[rust] -symbol = " " - -[palettes.catppuccin_mocha] -rosewater = "#f5e0dc" -flamingo = "#f2cdcd" -pink = "#f5c2e7" -mauve = "#cba6f7" -red = "#f38ba8" -maroon = "#eba0ac" -peach = "#fab387" -yellow = "#f9e2af" -green = "#a6e3a1" -teal = "#94e2d5" -sky = "#89dceb" -sapphire = "#74c7ec" -blue = "#89b4fa" -lavender = "#b4befe" -text = "#cdd6f4" -subtext1 = "#bac2de" -subtext0 = "#a6adc8" -overlay2 = "#9399b2" -overlay1 = "#7f849c" -overlay0 = "#6c7086" -surface2 = "#585b70" -surface1 = "#45475a" -surface0 = "#313244" -base = "#1e1e2e" -mantle = "#181825" -crust = "#11111b" +[character] +format = ' [$symbol]($style) ' +success_symbol = '[➜](bold teal)' +error_symbol = '[➜](bold red)' +vimcmd_symbol = '[V](bold green)' diff --git a/confs/zshrc.d/functions.zsh b/confs/zshrc.d/functions.zsh index 64265ca..abbcb39 100644 --- a/confs/zshrc.d/functions.zsh +++ b/confs/zshrc.d/functions.zsh @@ -61,6 +61,8 @@ function rmknownhosts() { function rubbish() { if check_cmd trash-empty; then trash-empty + else + rm -rf "${HOME}/.local/share/Trash/files/*" fi } @@ -233,3 +235,9 @@ function restart() { exec $SHELL $SHELL_ARGS "$@"; } # cd to ~, clear screen, and restart zsh. function rsrc() { cd && clear && restart; } + +# Copy SSH public key to clipboard +function pubkey() { + cat "${HOME}/.ssh/id_ed25519.pubkk" | tr -d '\n' | wl-copy + echo "🔑 SSH public key copied to clipboard" +} diff --git a/home.nix b/home.nix index 7558438..6317365 100644 --- a/home.nix +++ b/home.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: { nixpkgs.config = { @@ -15,7 +20,6 @@ # The home.packages option allows you to install Nix packages into your # environment. home.packages = with pkgs; [ - arp-scan curlie direnv diskonaut @@ -35,6 +39,7 @@ ripgrep starship tealdeer + trash-cli vivid wthrr yazi @@ -44,10 +49,6 @@ # Home Manager is pretty good at managing dotfiles. The primary way to manage # plain files is through 'home.file'. home.file = { - # # Building this configuration will create a copy of 'dotfiles/screenrc' in - # # the Nix store. Activating the configuration will then make '~/.screenrc' a - # # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; ".justfile".source = confs/justfile; ".zshrc.d".source = confs/zshrc.d; ".doom.d/config.el".source = doom.d/config.el; @@ -65,16 +66,36 @@ themes = { Catppuccin-mocha = { src = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "bat"; - rev = "d3feec47b16a8e99eabb34cdfbaa115541d374fc"; - sha256 = "sha256-s0CHTihXlBMCKmbBBb8dUhfgOOQu9PBCQ+uviy7o47w="; + owner = "catppuccin"; + repo = "bat"; + rev = "d3feec47b16a8e99eabb34cdfbaa115541d374fc"; + sha256 = "sha256-s0CHTihXlBMCKmbBBb8dUhfgOOQu9PBCQ+uviy7o47w="; }; file = "/themes/Catppuccin Mocha.tmTheme"; }; }; }; + # fzf config + programs.fzf = { + enable = true; + colors = { + "bg+" = "#302D41"; + bg = "#1E1E2E"; + spinner = "#F8BD96"; + hl = "#F28FAD"; + fg = "#D9E0EE"; + header = "#F28FAD"; + info = "#DDB6F2"; + pointer = "#F8BD96"; + marker = "#F8BD96"; + "fg+" = "#F2CDCD"; + prompt = "#DDB6F2"; + "hl+" = "#F28FAD"; + }; + defaultCommand = "fd --type f --hidden --follow --exclude .git"; + }; + # starship.rs programs.starship = { enable = true; @@ -89,6 +110,7 @@ autocd = false; envExtra = '' export PATH="$HOME/bin:$HOME/.local/bin:/usr/sbin:$PATH" + eval "$(starship init zsh)" ''; history = { extended = true; @@ -120,25 +142,22 @@ } { name = "${config.home.homeDirectory}/.zshrc.d"; - tags = [ "from:local" "use:'*'" ]; + tags = [ + "from:local" + "use:'*'" + ]; } ]; shellAliases = { - acs = "sudo apt-cache search $@"; - acp = "sudo apt-cache policy $@"; - afs = "sudo apt-file search $@"; - afu = "sudo apt-file update"; - agi = "sudo apt install $@"; - agp = "sudo apt purge $@"; - agr = "sudo apt remove $@"; - agu = "sudo apt update"; - agud = "sudo apt update && sudo apt dist-upgrade"; - agar = "sudo apt autoremove"; + dnfi = "sudo dnf install $@"; + dnfs = "sudo dnf search $@"; + dnfu = "sudo dnf update $@"; + dnfr = "sudo dnf remove $@"; ls = "eza --git --icons $@"; la = "eza --git --icons -a $@"; lal = "eza --git --icons -al $@"; ll = "eza --git --icons -l $@"; - grep = "rg $@"; + grep = "grep --color=auto"; df = "duf $@"; cp = "cp -i $@"; rm = "trash $@"; @@ -170,7 +189,6 @@ dclean = "\${xdg.configHome}/emacs/bin/doom clean"; dgc = "\${xdg.configHome}/emacs/bin/doom gc"; dupgrade = "\${xdg.configHome}/emacs/bin/doom upgrade"; - pubkey = "cat ${config.home.homeDirectory}/.ssh/id_ed25519.pub | tr -d '\n' | wl-copy"; }; shellGlobalAliases = { G = "| grep"; @@ -204,10 +222,6 @@ if test -x ${config.home.homeDirectory}/bin/gumssh; then bindkey -s '^[s' 'gumssh^M'; fi bindkey -s '^[f' 'yazi^M' ''; - initExtra = '' - eval "$(direnv hook zsh)" - eval "$(starship init zsh)" - ''; }; # neovim