From 2ec607e5c02ecd7acfa29c64cea29fe6e27cfdc1 Mon Sep 17 00:00:00 2001 From: biscuit Date: Tue, 13 May 2025 14:30:52 -0500 Subject: [PATCH] WIP --- packages/zoxide/config.omp.json | 118 ++++++++++++++++++++++++++++++++ packages/zoxide/default.nix | 11 ++- packages/zsh/default.nix | 15 +++- 3 files changed, 139 insertions(+), 5 deletions(-) create mode 100644 packages/zoxide/config.omp.json diff --git a/packages/zoxide/config.omp.json b/packages/zoxide/config.omp.json new file mode 100644 index 0000000..7533a9b --- /dev/null +++ b/packages/zoxide/config.omp.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json", + "blocks": [ + { + "alignment": "left", + "newline": true, + "segments": [ + { + "foreground": "#E5C07B", + "properties": { + "time_format": "15:04" + }, + "style": "plain", + "template": "[{{ .CurrentDate | date .Format }}]", + "type": "time" + }, + { + "type": "shell", + "style": "plain", + "foreground": "#E06C75", + "properties": { + "mapped_shell_names": { + "pwsh": "Shell", + "powershell": "Shell", + "cmd": "Cmd", + "bash": "Bash" + } + }, + "template": " \ue795 {{ .Name }}" + }, + { + "foreground": "#F3C267", + "foreground_templates": [ + "{{ if or (.Working.Changed) (.Staging.Changed) }}#FF9248{{ end }}", + "{{ if and (gt .Ahead 0) (gt .Behind 0) }}#ff4500{{ end }}", + "{{ if gt .Ahead 0 }}#B388FF{{ end }}", + "{{ if gt .Behind 0 }}#B388FF{{ end }}" + ], + "properties": { + "branch_template": "{{ trunc 25 .Branch }}", + "fetch_stash_count": true, + "fetch_status": true, + "fetch_upstream_icon": true + }, + "style": "plain", + "template": " {{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} \uf044 {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} \uf046 {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} \ueb4b {{ .StashCount }}{{ end }} ", + "type": "git" + } + ], + "type": "prompt" + }, + { + "alignment": "right", + "segments": [ + { + "type": "status", + "style": "plain", + "foreground": "#b8ff75", + "foreground_templates": [ + "{{ if gt .Code 0 }}#E06C75{{ end }}" + ], + "template": " x{{ reason .Code }}" + }, + { + "foreground": "#b8ff75", + "foreground_templates": [ + "{{ if gt .Code 0 }}#E06C75{{ end }}" + ], + "properties": { + "style": "roundrock", + "always_enabled": true + }, + "style": "diamond", + "template": " {{ .FormattedMs }} ", + "type": "executiontime" + } + ], + "type": "prompt" + }, + { + "alignment": "left", + "newline": true, + "segments": [ + { + "foreground": "#61AFEF", + "properties": { + "style": "full" + }, + "style": "plain", + "template": "\ue5ff {{ .Path }}", + "type": "path" + } + ], + "type": "prompt" + }, + { + "alignment": "left", + "newline": true, + "segments": [ + { + "foreground": "#E06C75", + "style": "plain", + "template": "\u0021", + "type": "root" + }, + { + "foreground": "#E06C75", + "style": "plain", + "template": "\u276f", + "type": "text" + } + ], + "type": "prompt" + } + ], + "final_space": true, + "version": 3 + } diff --git a/packages/zoxide/default.nix b/packages/zoxide/default.nix index a65a525..e321479 100644 --- a/packages/zoxide/default.nix +++ b/packages/zoxide/default.nix @@ -1,8 +1,15 @@ -{ pkgs, ... }: { +{ pkgs , ... }: { + home.packages = [ pkgs.zoxide + pkgs.oh-my-posh ]; programs.zoxide.enable = true; - programs.zoxide.enableZshIntegration = true; programs.zoxide.options = []; + + programs.oh-my-posh.enable = true; + home.file.".config/oh-my-posh/config.omp.json" = { + source = /home/biscuit/Nixos/packages/zoxide/config.omp.json; + force = true; + }; } diff --git a/packages/zsh/default.nix b/packages/zsh/default.nix index e3fde04..0da8c62 100644 --- a/packages/zsh/default.nix +++ b/packages/zsh/default.nix @@ -10,8 +10,7 @@ rev = "762afacbf227ecd173e899d10a28a478b4c84a3f"; sha256 = "1357hygrjwj5vd4cjdvxzrx967f1d2dbqm2rskbz5z1q6jri1hm3"; }; # e.g., nix-prefetch-url --unpack https://github.com/marlonrichert/zsh-autocomplete/archive/762afacbf227ecd173e899d10a28a478b4c84a3f.tar.gz - } - ]; + } ]; enableCompletion = true; syntaxHighlighting.enable = true; shellAliases = { @@ -25,10 +24,11 @@ enable = true; theme = "robbyrussell"; extraConfig = '' - # Required for autocomplete with box: https://unix.stackexchange.com/a/778868 + Required for autocomplete with box: https://unix.stackexchange.com/a/778868 zstyle ':completion:*' completer _expand _complete _ignored _approximate _expand_alias zstyle ':autocomplete:*' default-context curcontext zstyle ':autocomplete:*' min-input 0 + # zstyle ':autocomplete:*' automatic no setopt HIST_FIND_NO_DUPS @@ -39,5 +39,14 @@ setopt globdots # show dotfiles in autocomplete list ''; }; + initContent = '' + # Oh-My-Posh initialization for Zsh + eval "$(oh-my-posh init zsh --config /home/biscuit/.config/oh-my-posh/config.omp.json)" + + # zsh-autocomplete + bindkey -M menuselect '^M' .accept-line # run code when selected completion + bindkey '^I' autocomplete-manual + ''; + }; }