revamp of nix organization
This commit is contained in:
parent
01a48ac956
commit
4a4014bf59
20 changed files with 369 additions and 129 deletions
27
nix/home/programs/zsh/default.nix
Normal file
27
nix/home/programs/zsh/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
with builtins; {
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
defaultKeymap = "viins";
|
||||
|
||||
initExtra = readFile ./zshrc;
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
theme = "typewritten";
|
||||
custom = "$HOME/.oh-my-zsh/custom";
|
||||
plugins = [
|
||||
"vi-mode"
|
||||
"git"
|
||||
"z"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
home.file.".oh-my-zsh/custom/themes/typewritten.zsh-theme" = {
|
||||
source = ./typewritten.zsh-theme;
|
||||
};
|
||||
}
|
||||
58
nix/home/programs/zsh/typewritten.zsh-theme
Normal file
58
nix/home/programs/zsh/typewritten.zsh-theme
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
# ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____
|
||||
# ||t |||y |||p |||e |||w |||r |||i |||t |||t |||e |||n ||
|
||||
# ||__|||__|||__|||__|||__|||__|||__|||__|||__|||__|||__||
|
||||
# |/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|
|
||||
#
|
||||
# A minimal, informative zsh prompt theme
|
||||
#
|
||||
# Adapted from https://github.com/reobin/typewritten/commit/0eebac711e98ee759942ed82f8c20e92912e2cc7
|
||||
|
||||
# git status variables
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$reset_color%}%{$fg[magenta]%}"
|
||||
ZSH_THEME_GIT_PROMPT_SUFFIX=""
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY=""
|
||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
||||
ZSH_THEME_GIT_PROMPT_ADDED="%{$fg_bold[cyan]%} +"
|
||||
ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg_bold[yellow]%} !"
|
||||
ZSH_THEME_GIT_PROMPT_DELETED="%{$fg_bold[red]%} —"
|
||||
ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg_bold[green]%} »"
|
||||
ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg_bold[white]%} #"
|
||||
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[blue]%} ?"
|
||||
ZSH_THEME_GIT_PROMPT_STASHED="%{$fg_bold[yellow]%} $"
|
||||
ZSH_THEME_GIT_PROMPT_BEHIND="%{$fg_bold[blue]%} •|"
|
||||
ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg_bold[blue]%} |•"
|
||||
|
||||
# git status display
|
||||
local git_info='$(git_prompt_info)$(git_prompt_status)%{$reset_color%}'
|
||||
|
||||
# current user and hostname
|
||||
local user_host='%{$fg[yellow]%}%n%{$reset_color%}@%{$fg[yellow]%}%m %{$reset_color%}'
|
||||
|
||||
# default: blue, if return code other than 0: red
|
||||
local prompt='%(?,%{$fg[blue]%}> ,%{$fg[red]%}> )'
|
||||
|
||||
# current directory display
|
||||
local directory_path='%{$fg[magenta]%}%~'
|
||||
|
||||
# last command return code
|
||||
local return_code='%(?,,%{$fg[red]%} RC=%?%{$reset_color%})'
|
||||
|
||||
# left prompt definition (multiline)
|
||||
PROMPT="${directory_path}
|
||||
${prompt}"
|
||||
|
||||
# right prompt definition
|
||||
RPROMPT="${git_info}"
|
||||
RPROMPT+="${return_code}"
|
||||
|
||||
# prompt cursor fix when exiting vim
|
||||
local cursor="\e[3 q"
|
||||
if [ "$TYPEWRITTEN_CURSOR" = "block" ]; then
|
||||
cursor="\e[1 q"
|
||||
elif [ "$TYPEWRITTEN_CURSOR" = "beam" ]; then
|
||||
cursor="\e[5 q"
|
||||
fi
|
||||
_fix_cursor() {
|
||||
echo -ne "${cursor}"
|
||||
}
|
||||
precmd_functions+=(_fix_cursor)
|
||||
32
nix/home/programs/zsh/zshrc
Normal file
32
nix/home/programs/zsh/zshrc
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
export LOCALE_ARCHIVE="/usr/lib/locale/locale-archive"
|
||||
export NIX_PATH=darwin-config=$HOME/.nixpkgs/darwin-configuration.nix:$HOME/.nix-defexpr/channels:$NIX_PATH
|
||||
export EDITOR=vim
|
||||
|
||||
source $HOME/.nix-profile/etc/profile.d/nix.sh
|
||||
source $HOME/.nix-profile/share/fzf/key-bindings.zsh
|
||||
source $HOME/.nix-profile/share/fzf/completion.zsh
|
||||
source $HOME/.nix-profile/share/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||
source $HOME/.nix-profile/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||
source $HOME/.config/zsh/local.zsh
|
||||
|
||||
bindkey '^[[A' history-substring-search-up
|
||||
bindkey '^[[B' history-substring-search-down
|
||||
bindkey -M viins 'jj' vi-cmd-mode
|
||||
|
||||
# utility for storing functions under a new name
|
||||
save_function() {
|
||||
local ORIG_FUNC=$(declare -f $1)
|
||||
local NEWNAME_FUNC="$2''${ORIG_FUNC#$1}"
|
||||
eval "$NEWNAME_FUNC"
|
||||
}
|
||||
|
||||
# Override an oh-my-zsh/lib/git.sh function so that old repositories
|
||||
# don't slow the shell down
|
||||
save_function git_prompt_status old_git_prompt_status
|
||||
function git_prompt_status() {
|
||||
if [[ "$(command git config --get oh-my-zsh.hide-prompt-status 2>/dev/null)" != "1" ]]; then
|
||||
old_git_prompt_status
|
||||
fi
|
||||
}
|
||||
|
||||
eval "$(direnv hook zsh)"
|
||||
Loading…
Add table
Add a link
Reference in a new issue