diff options
32 files changed, 259 insertions, 1069 deletions
diff --git a/DEPENDENCIES.md b/DEPENDENCIES.md index 9e1b086..a2b356e 100644 --- a/DEPENDENCIES.md +++ b/DEPENDENCIES.md @@ -16,17 +16,18 @@ each and every file in this repository can be altered by anyone with any goal, i * `opt: any of the previous bullets`: same meaning as before but optional * `(description)`: explains why it's necessary/what optional feature it enables if present # bin/ -* popmail: populate local maildirs and notify the user if there is new mail +* mbsync-cron: populate local maildirs and notify the user if there is new mail * [isync](https://isync.sourceforge.net) * properly configured `$HOME/.mbsync` (One Group per email account) * libnotify (notifies the user for new mail and the subject line of said mail) * `$XDG_DATA_HOME` * comm-sel: a handy menu for spawning communication clients - * [irssi](https://irssi.org) + * [epic5](https://epicsol.org) * [6cord](https://gitlab.com/diamondburned/6cord) * [scli](https://github.com/isamert/scli) * [dmenu](https://dmenu.suckless.org) (provides a menu for selecting which client to start) * notify-send (notifies the user that they made an invalid choice) + * opt: st-altscreen (build of st that doesn't have scrollback or extra bindings, doesnt interfere with programs and is generally smaller) * `$TERMINAL` * lh: a script that takes a URL as input and does different things depending on what the URL links to * [mpv](https://mpv.io) (video file streaming, streaming from sites like youtube, viewing livestreams from twitch) @@ -39,11 +40,16 @@ each and every file in this repository can be altered by anyone with any goal, i * `$READER` * `$EDITOR` * `$BROWSER` +* opener: a script that uses file(1) to determine what a file is, then opens it with an appropriate program + * [mpv](https://mpv.io) (opens video and audio files) + * [sxiv](https://github.com/muennich/sxiv) (used to view images) + * `$READER` + * `$EDITOR` * prompt: makes prompting the user for particular actions easier * [dmenu](https://dmenu.suckless.org) * pw: generates a password of variable length - * opt: xclip (enables pw's mode copying the generated password to the clipboard) - * opt: libnotify (notifies the user that the password is generated, how long the password will be kept in the clipboard for, and when the clipboard is cleared.) + * opt: xclip (enables pw's mode copying the generated password to the clipboard or the primary selection) + * opt: libnotify (notifies the user that the password is generated, how long the password will be kept in the clipboard/primary selection for, and when the clipboard/primary selection is cleared.) * rsschk: takes a URL as an argument and adds it to newsboat's url file, with an optional second argument specifying a category * libnotify (notifies the user of improper usage, and whether or not they should probably edit the url file manually to add a category.) * [newsboat](https://newsboat.org) @@ -55,14 +61,9 @@ each and every file in this repository can be altered by anyone with any goal, i * xwallpaper (sets the wallpaper) # config/ * lfrc: configuration file for [lf](https://github.com/gokcehan/lf) - * opt: $EDITOR (viewing text files) - * opt: [gimp](https://gimp.org) (editing vector images) - * opt: [zathura](https://pwmt.org/projects/zathura) (viewing ebooks) - * opt: [sxiv](https://github.com/muennich/sxiv) (view images) - * opt: mpv (listening to audio files or viewing video files) - * opt: bin/lh (wildcard for opening files not detected by other MIME types) + * opt: bin/opener (for opening files) * shrc: shell environment, particularly for bin/shenv - * nvim (`$EDITOR`) + * neovim (`$EDITOR`) * lf (`$FILE`) * st (`$TERMINAL`) * firefox (`$BROWSER`) @@ -71,23 +72,20 @@ each and every file in this repository can be altered by anyone with any goal, i * neomutt (`$MAILER`) * ncmpcpp (`$MUSIC`) * newsboat (`$RSS`) - * zsh (`$ISH` `$ZDOTDIR`) + * ksh (`$ISH` `$ZDOTDIR`) * maim (`$SCR`) * slock (`$LOCK`) * opt: go (`$GOPATH`) * opt: cargo (`$CARGO_HOME`) * opt: mednafen (`$MEDNAFEN_HOME`) -## zsh/ -configuration files for zsh -* zshrc - * git (installing zplugin) -* functions.zsh - * bin/pw (for pw() to work) -* exports.zsh +## ksh/ +configuration files for ksh +* kshrc * config/shrc (for the majority of variables set) +* functions.ksh + * mpv (for mpvpin() to work) +* exports.ksh * opt: pfetch (`$PF_INFO`) -* themes/p10k.zsh - * [Nerd Fonts font](https://nerdfonts.com) # data/ * mailcap: helps neomutt figure out what to do with particular MIME types * $EDITOR diff --git a/bin/bother b/bin/bother new file mode 100755 index 0000000..701b1a4 --- /dev/null +++ b/bin/bother @@ -0,0 +1,10 @@ +#!/bin/sh +# puts up a critical notification if $HOME/today exists, containing the contents of that file. +if [ -f "$HOME"/today ]; then + until pgrep -x dwm>/dev/null + do + true + done + sleep 0.5 + notify-send -u critical "DO TODAY:" "$(cat "$HOME"/today)" +fi diff --git a/bin/comm-sel b/bin/comm-sel index f67787f..0678679 100755 --- a/bin/comm-sel +++ b/bin/comm-sel @@ -1,9 +1,14 @@ #!/bin/sh -# sends a list of communication TUIs (e.g irssi) to dmenu and allows the user to choose one. +# sends a list of communication TUIs (e.g epic5) to dmenu and allows the user to choose one. # class "comm" is added to enable window managers (e.g dwm) to do specific things with them. -case "$(dmenu_path|grep -E "irssi|6cord|scli$"|dmenu -p "choose chat app:")" in - irssi) $TERMINAL -c comm -e irssi --home=$XDG_CONFIG_HOME/irssi&;; - 6cord) $TERMINAL -c comm -e 6cord&;; +# st-altscreen is a built of st that doesn't have scrollback or extra keybindings, so it doesn't get in the way of whatever binds clients have. +# as a result it's lighter than the build of st i use for interactive use. +if command -v st-altscreen>/dev/null; then + TERMINAL="st-altscreen" +fi +case "$(dmenu_path|grep -E "epic5$|6cord|scli$"|dmenu -p "choose chat app:")" in + epic5) $TERMINAL -c comm -e epic5 -l "$XDG_CONFIG_HOME/epic/epicrc" ensa&;; + 6cord) $TERMINAL -c comm -e env TERM=xterm 6cord&;; scli) $TERMINAL -c comm -e scli&;; *) notify-send "comm-sel error" "invalid program selection"&&return 1;; esac diff --git a/bin/popmail b/bin/mbsync-cron index d1bae9f..dd69c01 100755 --- a/bin/popmail +++ b/bin/mbsync-cron @@ -21,23 +21,20 @@ if ! [ -d "$XDG_DATA_HOME/neomutt" ]; then fi # check account for new mail, notify for new content syncandnotify() { - # sanitize $account for use in function - acc="$(printf '%s\n' "$account" | sed "s/.*\///")" - mbsync "$acc">/dev/null 2>&1 + mbsync "$account">/dev/null 2>&1 # $new holds an index of all mail since the last time popmail ran - new=$(find "$XDG_DATA_HOME/mail/$acc/inbox/new/" -type f -newer "$XDG_DATA_HOME/neomutt/.popmail-last" 2> /dev/null) + new=$(find "$XDG_DATA_HOME/mail/$account/inbox/new/" -type f -newer "$XDG_DATA_HOME/neomutt/.popmail-last" 2> /dev/null) # $newcount is the number of new mails newcount=$(printf '%s\n' "$new" | sed '/^\s*$/d' | wc -l | tr -d " ") - # send $newcount to a file specific to $acc + # send $newcount to a file specific to $account # the preceding space makes generating a status bar string easier. - printf ' %s' "$newcount" > "$XDG_DATA_HOME/mail/$acc/note" + printf ' %s' "$newcount" > "$XDG_DATA_HOME/mail/$account/note" # don't notify if there isn't new mail if [ "$newcount" -gt "0" ]; then - notify-send --app-name="popmail" "mail fetcher" "new mail for profile $acc! [$newcount]" & + notify-send --app-name="popmail" "mail fetcher" "new mail for profile $account! [$newcount]" & + # reduce output if you have a lot of new mail + if [ "$newcount" -lt "16" ]; then for file in $new; do - # broken lines, not sure what they're supposed to do - #from=$(awk '/^From: / && ++n ==1,/^\<.*\>:/' "$file" | perl -CS -MEncode -ne 'print decode("MIME-Header", $_)' | awk '{ $1=""; if (NF>=3)$NF=""; print $0 }' | sed 's/^[[:blank:]]*[\"'\''\<]*//;s/[\"'\''\>]*[[:blank:]]*$//') - #subject=$(awk '/^Subject: / && ++n == 1,/^\<.*\>: / && ++i == 2' "$file" | sed '$D' | perl -CS -MEncode -ne 'print decode("MIME-Header", $_)' | sed 's/^Subject: //' | sed 's/^{[[:blank:]]*[\"'\''\<]*//;s/[\"'\''\>]*[[:blank:]]*$//' | tr -d '\n') # Extract subject and sender from mail. # modified version of broken $from variable, only prints the first from (so forwards are slightly unclear) from=$(awk '/^From: / && ++n ==1,/^\<.*\>:/' "$file" | awk '{ $1=""; if (NF>=3)$NF=""; print $0 }' | sed '1!d'| sed '1,/From/s/From: //') @@ -47,6 +44,7 @@ syncandnotify() { # sleep for half a second to avoid notification clog sleep .5 done + fi fi } @@ -65,7 +63,13 @@ do done wait -# collect all previously created note files and collate them into a file that can be read by a status bar to notify the user of new mails -printf "$(cat "$XDG_DATA_HOME"/mail/*/note|tr " " "|"|sed 's/|//')\n">"$XDG_DATA_HOME/mail/note" +## OLD: collect all previously created note files and collate them into a file that can be read by a status bar to notify the user of new mails +#printf "$(cat "$XDG_DATA_HOME"/mail/*/note|tr " " "|"|sed 's/|//')\n">"$XDG_DATA_HOME/mail/note" +# use a single symbol to indicate new mail in any maildir +if cat "$XDG_DATA_HOME"/mail/*/note|grep -q '[1-9]'; then + printf ' \n'>"$XDG_DATA_HOME/mail/note" +else + printf '\n'>"$XDG_DATA_HOME/mail/note" +fi #create/update modification time on an empty file that indicates the time of the last run of popmail touch "$XDG_DATA_HOME/neomutt/.popmail-last" diff --git a/bin/opener b/bin/opener new file mode 100755 index 0000000..755da51 --- /dev/null +++ b/bin/opener @@ -0,0 +1,41 @@ +#!/bin/sh +# opener: opens files according to its contents +# takes one path as its argument, launches the appropriate program for it +if ! [ -f "$1" ]; then + printf 'file %s does not exist!\n' "$1" >/dev/stderr + return 1 +fi +FILEPATH="$1" +FILEMIME="$(file -ib "$FILEPATH")" +echo() { + printf '%s\n' "$*" +} +case "$FILEMIME" in + #ebooks + application/epub*|application/pdf|application/postscript|image/vnd.djvu) + if [ -n "$READER" ]; then + $READER "$FILEPATH">/dev/null 2>&1 & + else + zathura "$FILEPATH" & + fi ;; + #videos + video/*) + mpv --input-ipc-server=/tmp/mpv-socket$(date +%s) --quiet "$FILEPATH" >/dev/null 2>&1 & ;; + #images + image/*) + sxiv -a "$FILEPATH">/dev/null 2>&1 & ;; + #audio + audio/*) + mpv --input-ipc-server=/tmp/mpv-socket$(date +%s) "$FILEPATH" >/dev/null 2>&1 & ;; + #text + text/*) + if [ -n "$EDITOR" ]; then + $EDITOR "$FILEPATH">/dev/null 2>&1 & + else + vi "$FILEPATH" & + fi ;; + #catchall + *) + echo "file $(basename "$FILEPATH") could not be opened. its type is $FILEMIME, go tell ensa that opener didn't work" >/dev/stderr + return 1 ;; +esac diff --git a/bin/pw b/bin/pw index 140f1dc..cec9e54 100755 --- a/bin/pw +++ b/bin/pw @@ -1,14 +1,25 @@ #!/bin/sh -# generates a password of length $1, sends it to stdout if $2 isn't clip. -# if it is clip, sends it to the X clipboard and clears it after 10 seconds. +# generates a password of length $1, sends it to stdout if $2 is blank. +# if $2 is clip, sends it to the X clipboard and clears it after 10 seconds. +# if $2 is anything else, sends it to the X primary selection and clears it after 10 seconds if [ "$1" = "-h" ]; then - printf 'usage: %s [-h]|LENGTH [clip]\n' "$(basename $0)">/dev/stderr&&return 1 + printf 'usage: %s [-h]|LENGTH [clip|pri]\n' "$(basename $0)">/dev/stderr + return 1 fi -PW=$(tr -cd "[:alnum:][:punct:]"</dev/urandom|fold -w $1|head -1) -if [ "$2" = "clip" ]; then - printf '%s' "$PW"|xclip -sel clip -i&¬ify-send "Password Generated" "$1-character password generated. It will clear in 10 seconds." - sleep 10 - printf "\0"|xclip -sel clip -i&¬ify-send "Clipboard Cleared" "Generated password cleared from clipboard." +PW=$(tr -cd "[:alnum:][:punct:]"</dev/urandom|fold -w "$1"|head -1) +if [ -n "$2" ]; then + # streamline selection variation by using $SEL + if [ "$2" = "clip" ]; then + SEL="-sel clip" + else + SEL="" + fi + # backgrounds so the user doesn't have to wait 10 seconds to get a prompt again + { + printf "%s" "$PW"|xclip $SEL -i&¬ify-send "Password Generated" "$1-character password generated. It will clear in 10 seconds." + sleep 10 + printf '\0'|xclip $SEL -i&¬ify-send "Clipboard Cleared" "Generated password cleared from clipboard." + } & else - printf '%s\n' "$PW" + printf '%s\n' "$PW" fi diff --git a/config/ksh/00-opts.ksh b/config/ksh/00-opts.ksh new file mode 100644 index 0000000..4b7ff4c --- /dev/null +++ b/config/ksh/00-opts.ksh @@ -0,0 +1 @@ +set -o vi diff --git a/config/ksh/diraliases b/config/ksh/diraliases new file mode 100644 index 0000000..f4546a5 --- /dev/null +++ b/config/ksh/diraliases @@ -0,0 +1,10 @@ +#!/bin/ksh +alias -d "src=$HOME/src"\ + "vcs=$HOME/src/vcs"\ + "me=$HOME/src/me"\ + "ports=/usr/ports"\ + "conf=$XDG_CONFIG_HOME"\ + "data=$XDG_DATA_HOME"\ + "write=$HOME/doc/writing"\ + "crit=$HOME/doc/writing/critique"\ + "bin=$HOME/.local/bin" diff --git a/config/zsh/exports.zsh b/config/ksh/exports.ksh index 48ec72b..c2ec25d 100644 --- a/config/zsh/exports.zsh +++ b/config/ksh/exports.ksh @@ -1,7 +1,10 @@ -. $XDG_CONFIG_HOME/shrc # exports for convenience export GITHUB="https://github.com" +# programs +export IRC_SERVERS_FILE="$HOME/.local/share/ircservers" # make pfetch show what i want export PF_INFO="ascii title os host shell editor wm pkgs uptime palette" +# color +export CLICOLOR=1 # fix manpath so local man pages work export MANPATH="/usr/share/man:/usr/X11R6/man:/usr/local/man:$XDG_DATA_HOME/man" diff --git a/config/ksh/functions.ksh b/config/ksh/functions.ksh new file mode 100644 index 0000000..e5d2668 --- /dev/null +++ b/config/ksh/functions.ksh @@ -0,0 +1,6 @@ +mc() { + mkdir "$1" && cd "$1"; +} +mpvpin() { + mpv --input-ipc-server=/tmp/mpv-socket$(date +%s) --quiet --title "PIN" "$1" >/dev/null 2>&1 & +} diff --git a/config/ksh/kshrc b/config/ksh/kshrc new file mode 100644 index 0000000..abf9bf0 --- /dev/null +++ b/config/ksh/kshrc @@ -0,0 +1,22 @@ +#!/bin/ksh +export XDG_CACHE_HOME=${XDG_CACHE_HOME:=~/.cache} +export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:=~/.config} +export XDG_DATA_HOME=${XDG_DATA_HOME:=~/.local/share} +. $XDG_CONFIG_HOME/shrc +KSHCONFIG="$XDG_CONFIG_HOME/ksh" +if ! echo "$PATH"|grep -q ".local/bin"; then + export PATH="$HOME/.local/bin:$PATH" +fi + +HISTFILE=$XDG_DATA_HOME/ksh/histfile +HISTSIZE=5000 +HISTCONTROL="ignoredups" +TMPDIR=$XDG_CACHE_HOME/ksh + +#load ksh external configs +for file in $KSHCONFIG/*.ksh; do + . "$file" +done +. $XDG_CONFIG_HOME/lf/lfcd.sh +[[ -f "$KSHCONFIG/diraliases" ]] && . "$KSHCONFIG/diraliases" +[[ -f "$XDG_CONFIG_HOME/aliasrc" ]] && . "$XDG_CONFIG_HOME/aliasrc" diff --git a/config/ksh/zz-prompt.ksh b/config/ksh/zz-prompt.ksh new file mode 100644 index 0000000..b7f80cf --- /dev/null +++ b/config/ksh/zz-prompt.ksh @@ -0,0 +1,32 @@ +#!/bin/ksh +SEP="|" +_PS1='\[\033[' +_END='m\]' + +_CLEAR='0' +_BRIGHT='1' +_DIM='2' +_UNDER='4' +_BLINK='5' +_REVERSE='7' +_HIDDEN='8' + +_FG_BLACK='30' +_FG_RED='31' +_FG_GREEN='32' +_FG_YELLOW='33' +_FG_BLUE='34' +_FG_MAGENTA='35' +_FG_CYAN='36' +_FG_WHITE='37' + +_BG_BLACK='40' +_BG_RED='41' +_BG_GREEN='42' +_BG_YELLOW='43' +_BG_BLUE='44' +_BG_MAGENTA='45' +_BG_CYAN='46' +_BG_WHITE='47' +PS1='$_PS1$_FG_BLACK;$_BG_GREEN$_END$?$_PS1$_CLEAR$_END$SEP$_PS1$_FG_BLACK;$_BG_MAGENTA$_END\A$_PS1$_CLEAR$_END$SEP$_PS1$_BRIGHT;$_FG_RED$_END\u$_PS1$_CLEAR;$_FG_GREEN$_END@$_PS1$_BRIGHT;$_FG_BLUE$_END\h$_PS1$_CLEAR$_END:$_PS1$_BRIGHT;$_FG_CYAN$_END\w$_PS1$_CLEAR;$_FG_GREEN$_END\$$_PS1$_CLEAR$_END ' +export PS1 diff --git a/config/lf/lfrc b/config/lf/lfrc index 21634d4..e5e58cd 100644 --- a/config/lf/lfrc +++ b/config/lf/lfrc @@ -3,30 +3,14 @@ set shell sh set shellopts '-eu' set ifs "\n" +set promptfmt "\033[1;31m%u\033[0;32m@\033[1;34m%h\033[0m:\033[1;36m%w/\033[0m\033[1m%f\033[0m" # cmds cmd open ${{ - case $(file -bi $f) in - text/troff) man ./ $f;; - text/*) $EDITOR $fx;; - image/x-xcf|image/svg+xml) gimp $f >/dev/null 2>&1 & ;; - image/vnd.djvu|application/epub+zip|application/pdf) zathura $f >/dev/null 2>&1 & ;; - image/*) sxiv -ai >/dev/null 2>&1 & ;; - audio/*) mpv --input-ipc-server=/tmp/mpvsoc$(date +%%s) --quiet $f >/dev/null 2>&1 & ;; - video/*) mpv --input-ipc-server=/tmp/mpvsoc$(date +%%s) $f ;; - *) for f in $fx; do lh $f > /dev/null 2>&1 & done;; - esac + opener $f }} cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1 -cmd delete ${{ - set -f - printf "%s\n\t" "$fx" - printf "delete?[y/n]" - read ans - [ $ans = "y" ] && rm -rf $fx -}} - # binds map D delete map a push %mkdir<space> diff --git a/config/ncmpcpp/config b/config/ncmpcpp/config index 04c319f..ffeb996 100644 --- a/config/ncmpcpp/config +++ b/config/ncmpcpp/config @@ -321,7 +321,7 @@ progressbar_look = -> ## media_library_primary_tag = album_artist # -media_library_albums_split_by_date = no +media_library_albums_split_by_date = yes # ## Available values: wrapped, normal. ## @@ -430,7 +430,7 @@ ignore_leading_the = yes # #block_search_constraints_change_if_items_found = yes # -#mouse_support = yes +mouse_support = no # #mouse_list_scroll_whole_page = yes # diff --git a/config/newsboat/config b/config/newsboat/config index aeb6ddf..233cd8b 100644 --- a/config/newsboat/config +++ b/config/newsboat/config @@ -33,6 +33,6 @@ color article cyan default browser lh macro , open-in-browser macro t set browser "youtube-dl --add-metadata -ic"; open-in-browser ; set browser lh -macro a set browser "youtube-dl --config-location ~/.config/youtube-dl/config-audio --add-metadata -xic -f bestaudio/best"; open-in-browser ; set browser lh +macro a set browser "youtube-dl --add-metadata -ic --config-location ~/.config/youtube-dl/config-music"; open-in-browser ; set browser lh macro v set browser "mpv"; open-in-browser ; set browser lh macro w set browser "w3m"; open-in-browser ; set browser lh diff --git a/config/nvim/colors/asmanian_blood.vim b/config/nvim/colors/asmanian_blood.vim deleted file mode 100644 index 90df688..0000000 --- a/config/nvim/colors/asmanian_blood.vim +++ /dev/null @@ -1,42 +0,0 @@ - -set background=dark - -hi Normal guifg=#b4b0b0 guibg=#080404 gui=none -hi NonText guifg=#b4b0b0 guibg=#181414 gui=none -hi SpecialKey guifg=#b4b0b0 guibg=#282424 gui=bold - -hi Comment guifg=#686460 guibg=#080404 gui=none -hi Todo guifg=#686460 guibg=#080404 gui=underline,italic -hi Search guifg=#000000 guibg=#00f0f0 gui=underline,italic -hi Visual guibg=#282020 -hi MatchParen guifg=#ffffff guibg=#904030 gui=none - -hi Title guifg=#ffffff guibg=#202020 gui=underline -hi Underlined guifg=#b4b0b0 guibg=#080404 gui=underline - -hi CursorColumn guifg=#f4f0f0 guibg=#201c1c gui=none -hi CursorLine guifg=#f4f0f0 guibg=#201c1c gui=none - -hi StatusLine guifg=#f8e0d0 guibg=#301810 gui=bold -hi StatusLineNC guifg=#503830 guibg=#200800 gui=none -hi VertSplit guifg=#200800 guibg=#301810 gui=none -hi LineNr guifg=#848070 guibg=#181414 gui=none -hi Folded guifg=#484040 guibg=#080404 gui=bold,italic - -hi Define guifg=#607080 guibg=#080404 gui=italic -hi Function guifg=#60b050 guibg=#080404 gui=italic -hi PreProc guifg=#a090a0 guibg=#080404 gui=italic -hi Define guifg=#806080 guibg=#080404 gui=italic -hi Identifier guifg=#c0b060 guibg=#080404 gui=italic - -hi Statement guifg=#506090 guibg=#080404 gui=underline -hi Repeat guifg=#906050 guibg=#080404 gui=underline -hi Conditional guifg=#609050 guibg=#080404 gui=underline -hi Exception guifg=#903020 guibg=#080404 gui=underline - -hi Type guifg=#705850 guibg=#080404 gui=italic -hi String guifg=#a06050 guibg=#080404 gui=italic -hi Special guifg=#a06050 guibg=#181414 gui=italic -hi Number guifg=#60d060 guibg=#080404 gui=none -hi Constant guifg=#60d060 guibg=#080404 gui=none - diff --git a/config/nvim/init.vim b/config/nvim/init.vim index 41450bb..0632b5d 100644 --- a/config/nvim/init.vim +++ b/config/nvim/init.vim @@ -10,8 +10,6 @@ call plug#begin('~/.local/share/nvim/plugged') Plug 'gregsexton/matchtag' " lightline.vim Plug 'itchyny/lightline.vim' -" wal.vim -Plug 'dylanaraps/wal.vim' " vim-fugitive Plug 'tpope/vim-fugitive' " vim-gitgutter @@ -20,20 +18,23 @@ Plug 'airblade/vim-gitgutter' Plug 'tpope/vim-surround' " JsBeautify Plug 'maksimr/vim-jsbeautify' -" recognize color tags -Plug 'lilydjwg/colorizer' " syntax checking Plug 'vim-syntastic/syntastic' +" lf integration +Plug 'ptzz/lf.vim' +" req for lf.vim +Plug 'rbgrouleff/bclose.vim' +"""plugin graveyard +" END PLUGINS +"" recognize color tags +"Plug 'lilydjwg/colorizer' "" VimCompletesMe "Plug 'ajh17/VimCompletesMe' -" END PLUGINS call plug#end() " end of vim-plug related lines -"colo wal -colo asmanian_blood -set tgc +colo delek " productivity binds @@ -79,26 +80,29 @@ let g:syntastic_check_on_open = 1 let g:syntastic_check_on_wq = 0 let g:syntastic_c_checkers = ["cppcheck"] +let g:syntastic_cpp_checkers = ["cppcheck"] let g:syntastic_sh_checkers = ["shellcheck", "sh"] " lightline config set noshowmode let g:lightline = { \ 'colorscheme': 'selenized_dark', - \ 'separator': { - \ 'left': '', - \ 'right': '' - \ }, - \ 'subseparator': { - \ 'left': '', - \ 'right': '' - \ }, \ } +" lf config +let g:lf_replace_netrw = 1 + " betterize set path+=** +cno w!! exe 'sil! w !doas tee % >/dev/null' <bar> e! +nno <space> :noh<return><space> " add a ctags shortcut like a shitty goblin -command! MakeTags !ectags -R . +com! MakeTags !ectags -R . " make make work when im learning c -autocmd BufRead $HOME/src/c-practice/*.c set makeprg=cc\ --std=c89\ % +autocmd BufRead $HOME/src/me/c-practice/*.c set makeprg=pcc\ -ansi\ % +" calcurse notes should be treated as markdown +autocmd BufRead,BufNewFile /tmp/calcurse* set filetype=markdown +autocmd BufRead,BufNewFile ~/.local/share/calcurse/notes/* set filetype=markdown +" ksh should work +autocmd FileType ksh let g:is_kornshell = 1 diff --git a/config/shrc b/config/shrc index a3cc31c..bc5162e 100644 --- a/config/shrc +++ b/config/shrc @@ -16,7 +16,7 @@ export READER="zathura" export MAILER="neomutt" export MUSIC="ncmpcpp" export RSS="newsboat" -export ISH="zsh" +export ISH="ksh" export SCR="maim" export LOCK="slock" export LESS='-iMRS -x2' @@ -31,4 +31,3 @@ export LESSHISTFILE="-" export GOPATH="$HOME/.local/go" export CARGO_HOME="$XDG_DATA_HOME/cargo" export MEDNAFEN_HOME="$XDG_CONFIG_HOME/mednafen" -export ZDOTDIR="$XDG_CONFIG_HOME/zsh" diff --git a/config/wal/colorschemes/dark/base16-causalagency.json b/config/wal/colorschemes/dark/base16-causalagency.json new file mode 100644 index 0000000..8b21dfd --- /dev/null +++ b/config/wal/colorschemes/dark/base16-causalagency.json @@ -0,0 +1,25 @@ +{ + "special": { + "background": "#14130e", + "foreground": "#b7a980", + "cursor": "#72694f" + }, + "colors": { + "color0": "#161510", + "color1": "#a32810", + "color2": "#727a18", + "color3": "#a37720", + "color4": "#3d6266", + "color5": "#7a4955", + "color6": "#557a55", + "color7": "#8e8463", + "color8": "#4c4635", + "color9": "#cc3214", + "color10": "#8e991e", + "color11": "#cc9528", + "color12": "#4c7b7f", + "color13": "#995b6b", + "color14": "#6b996b", + "color15": "#ccbc8e" + } +} diff --git a/config/wal/templates/6cord.toml b/config/wal/templates/6cord.toml index f267982..52b5321 100644 --- a/config/wal/templates/6cord.toml +++ b/config/wal/templates/6cord.toml @@ -1,11 +1,14 @@ +# comment to get vim to recognize the ft +token = "" [ properties ] - true-color = true + true-color = false default-name-color = "{color7}" mention-color = "{color5}" mention-self-color = "{color14}" compact-mode = false syntax-highlight-colorscheme = "native" show-emoji-urls = false - obfuscate-words = false shorten-url = false + command-prefix = "[${{CHANNEL}}] " + default-status = "" diff --git a/config/wal/templates/colors-wal-dmenu.h b/config/wal/templates/colors-wal-dmenu.h index afcbb8d..d139d56 100644 --- a/config/wal/templates/colors-wal-dmenu.h +++ b/config/wal/templates/colors-wal-dmenu.h @@ -1,6 +1,6 @@ static const char *colors[SchemeLast][2] = {{ /* fg bg */ - [SchemeNorm] = {{ "{color13}", "{color0}" }}, - [SchemeSel] = {{ "{color13}", "{color4}" }}, + [SchemeNorm] = {{ "{color4}", "{color0}" }}, + [SchemeSel] = {{ "{color1}", "{color0}" }}, [SchemeOut] = {{ "{color13}", "{color8}" }}, }}; diff --git a/config/wal/templates/colors-wal-dwm.h b/config/wal/templates/colors-wal-dwm.h index 133c7a3..eeea645 100644 --- a/config/wal/templates/colors-wal-dwm.h +++ b/config/wal/templates/colors-wal-dwm.h @@ -1,9 +1,9 @@ -static const char norm_fg[] = "{color13}"; +static const char norm_fg[] = "{color4}"; static const char norm_bg[] = "{color0}"; static const char norm_border[] = "{color8}"; -static const char sel_fg[] = "{color13}"; -static const char sel_bg[] = "{color4}"; +static const char sel_fg[] = "{color1}"; +static const char sel_bg[] = "{color0}"; static const char sel_border[] = "{color9}"; static const char *colors[][3] = {{ diff --git a/config/wal/templates/dunstrc b/config/wal/templates/dunstrc index cea407f..61972d6 100644 --- a/config/wal/templates/dunstrc +++ b/config/wal/templates/dunstrc @@ -24,7 +24,7 @@ idle_threshold = 120 ### Text ### - font = Terminus 9 + font = Terminus Medium 8 line_height = 0 markup = full @@ -59,7 +59,7 @@ history_length = 20 ### Misc/Advanced ### - dmenu = /usr/local/bin/dmenu -fn "Terminus:style=Regular:pixelsize=12" -nb "{color0}" -nf "{color13}" -sb "{color4}" -sf "{color13}" -p dunst: + dmenu = /usr/local/bin/dmenu -p dunst: browser = /usr/local/bin/firefox -new-tab always_run_script = true title = Dunst diff --git a/config/wal/templates/zathurarc b/config/wal/templates/zathurarc index ebfd44a..ebb74ca 100644 --- a/config/wal/templates/zathurarc +++ b/config/wal/templates/zathurarc @@ -32,3 +32,4 @@ set render-loading-fg "{color15}" set window-title-home-tilde true set statusbar-basename true set selection-clipboard clipboard +set font "SauceCodePro Nerd Font Mono 10" diff --git a/config/youtube-dl/config b/config/youtube-dl/config index 46041ac..0b55e08 100644 --- a/config/youtube-dl/config +++ b/config/youtube-dl/config @@ -2,7 +2,7 @@ # always use axel --external-downloader axel # coherent output format ---output ~/vid/%(uploader)s:%(title)s.%(ext)s +--output ~/vid/%(uploader)s/%(title)s.%(ext)s # always merge into mkv --merge-output-format mkv # embed subtitles if they are to be written diff --git a/config/youtube-dl/config-music b/config/youtube-dl/config-music index a5cf801..5860766 100644 --- a/config/youtube-dl/config-music +++ b/config/youtube-dl/config-music @@ -1,6 +1,6 @@ # only download audio stream --format bestaudio # always use axel ---external-downloader axel +#--external-downloader axel # coherent output format ---output ~/mus/%(uploader)s/%(album)s/S%(track_number)s-%(track)s.%(ext)s +--output ~/mus/%(uploader)s/%(album)s/S%(track_number)02d-%(track)s.%(ext)s diff --git a/config/zsh/.zshrc b/config/zsh/.zshrc deleted file mode 120000 index c8b42f4..0000000 --- a/config/zsh/.zshrc +++ /dev/null @@ -1 +0,0 @@ -zshrc \ No newline at end of file diff --git a/config/zsh/00-opts.zsh b/config/zsh/00-opts.zsh deleted file mode 100644 index 4573008..0000000 --- a/config/zsh/00-opts.zsh +++ /dev/null @@ -1,3 +0,0 @@ -setopt append_history auto_pushd hist_ignore_dups inc_append_history -setopt interactive_comments list_packed no_auto_menu no_autocd -setopt no_beep no_share_history pushd_ignore_dups diff --git a/config/zsh/binds.zsh b/config/zsh/binds.zsh deleted file mode 100644 index 02c0fc7..0000000 --- a/config/zsh/binds.zsh +++ /dev/null @@ -1,12 +0,0 @@ -autoload up-line-or-beginning-search down-line-or-beginning-search edit-command-line -zle -N up-line-or-beginning-search -zle -N down-line-or-beginning-search -zle -N edit-command-line -bindkey -v -bindkey -a "!" edit-command-line -[[ -n "$terminfo[kpp]" ]] && bindkey "$terminfo[kpp]" up-line-or-beginning-search # PAGE UP -[[ -n "$terminfo[knp]" ]] && bindkey "$terminfo[knp]" down-line-or-beginning-search # PAGE DOWN -[[ -n "$terminfo[khome]" ]] && bindkey "$terminfo[khome]" beginning-of-line # HOME -[[ -n "$terminfo[kend]" ]] && bindkey "$terminfo[kend]" end-of-line # END -[[ -n "$terminfo[kdch1]" ]] && bindkey "$terminfo[kdch1]" delete-char # DELETE -[[ -n "$terminfo[kbs]" ]] && bindkey "$terminfo[kbs]" backward-delete-char # BACKSPACE diff --git a/config/zsh/functions.zsh b/config/zsh/functions.zsh deleted file mode 100644 index fca5709..0000000 --- a/config/zsh/functions.zsh +++ /dev/null @@ -1,2 +0,0 @@ -mc() { mkdir $1 && cd $1 } -pw() { "$(which -p pw)" "$1" "$2" & } diff --git a/config/zsh/themes/p10k.zsh b/config/zsh/themes/p10k.zsh deleted file mode 100644 index db7e1a9..0000000 --- a/config/zsh/themes/p10k.zsh +++ /dev/null @@ -1,856 +0,0 @@ -# Generated by Powerlevel10k configuration wizard on 2019-10-24 at 12:41 PDT. -# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh. -# Wizard options: nerdfont-complete + powerline, small icons, rainbow, -# slanted separators, slanted heads, flat tails, 2 lines, disconnected, no frame, -# compact, few icons, concise. -# Type `p10k configure` to generate another config. -# -# Config for Powerlevel10k with powerline prompt style with colorful background. -# Type `p10k configure` to generate your own config based on it. -# -# Tip: Looking for a nice color? Here's a one-liner to print colormap. -# -# for i in {0..255}; do print -Pn "%${i}F${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done - -# Temporarily change options. -'builtin' 'local' '-a' 'p10k_config_opts' -[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases') -[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob') -[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand') -'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand' - -() { - emulate -L zsh - setopt no_unset extended_glob - zmodload zsh/langinfo - if [[ ${langinfo[CODESET]:-} != (utf|UTF)(-|)8 ]]; then - local LC_ALL=${${(@M)$(locale -a):#*.(utf|UTF)(-|)8}[1]:-en_US.UTF-8} - fi - - # Unset all configuration options. This allows you to apply configuration changes without - # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`. - unset -m 'POWERLEVEL9K_*' - - # The list of segments shown on the left. Fill it with the most important segments. - typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( - # =========================[ Line #1 ]========================= - os_icon # os identifier - prompt_char # prompt symbol - dir # current directory - vcs # git status - # =========================[ Line #2 ]========================= - newline - # prompt_char # prompt symbol - ) - - # The list of segments shown on the right. Fill it with less important segments. - # Right prompt on the last prompt line (where you are typing your commands) gets - # automatically hidden when the input line reaches it. Right prompt above the - # last prompt line gets hidden if it would overlap with left prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( - # =========================[ Line #1 ]========================= - status # exit code of the last command - command_execution_time # duration of the last command - background_jobs # presence of background jobs - # virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html) - # anaconda # conda environment (https://conda.io/) - # pyenv # python environment (https://github.com/pyenv/pyenv) - # nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv) - # nvm # node.js version from nvm (https://github.com/nvm-sh/nvm) - # nodeenv # node.js environment (https://github.com/ekalinin/nodeenv) - # node_version # node.js version - # go_version # go version (https://golang.org) - # rust_version # rustc version (https://www.rust-lang.org) - # dotnet_version # .NET version (https://dotnet.microsoft.com) - # rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv) - # rvm # ruby version from rvm (https://rvm.io) - # kubecontext # current kubernetes context (https://kubernetes.io/) - # terraform # terraform workspace (https://www.terraform.io) - # aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) - # aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) - # azure # azure account name (https://docs.microsoft.com/en-us/cli/azure) - context # user@hostname - # nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) - # ranger # ranger shell (https://github.com/ranger/ranger) - # vpn_ip # virtual private network indicator - # ram # free RAM - # load # CPU load - # time # current time - # =========================[ Line #2 ]========================= - newline - # public_ip # public IP address - # proxy # system-wide http/https/ftp proxy - # battery # internal battery - # example # example user-defined segment (see prompt_example function below) - ) - - # To disable default icons for all segments, set POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION=''. - # - # To enable default icons for all segments, don't define POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION - # or set it to '${P9K_VISUAL_IDENTIFIER}'. - # - # To remove trailing space from all default icons, set POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION - # to '${P9K_VISUAL_IDENTIFIER% }'. - # - # To enable default icons for one segment (e.g., dir), set - # POWERLEVEL9K_DIR_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'. - # - # To assign a specific icon to one segment (e.g., dir), set - # POWERLEVEL9K_DIR_VISUAL_IDENTIFIER_EXPANSION='⭐'. - # - # To assign a specific icon to a segment in a given state (e.g., dir in state NOT_WRITABLE), - # set POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'. - # - # Note: You can use $'\u2B50' instead of '⭐'. It's especially convenient when specifying - # icons that your text editor cannot render. Don't forget to put $ and use single quotes when - # defining icons via Unicode codepoints. - # - # Note: Many default icons cannot be displayed with system fonts. You'll need to install a - # capable font to use them. See POWERLEVEL9K_MODE below. - typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER// }' - - # This option makes a difference only when default icons are enabled for all or some prompt - # segments (see POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION above). LOCK_ICON can be printed as - # $'\uE0A2', $'\uE138' or $'\uF023' depending on POWERLEVEL9K_MODE. The correct value of this - # parameter depends on the provider of the font your terminal is using. - # - # Font Provider | POWERLEVEL9K_MODE - # ---------------------------------+------------------- - # Powerline | powerline - # Font Awesome | awesome-fontconfig - # Adobe Source Code Pro | awesome-fontconfig - # Source Code Pro | awesome-fontconfig - # Awesome-Terminal Fonts (regular) | awesome-fontconfig - # Awesome-Terminal Fonts (patched) | awesome-patched - # Nerd Fonts | nerdfont-complete - # Other | compatible - # - # If this looks overwhelming, either stick with a preinstalled system font and set - # POWERLEVEL9K_MODE=compatible, or install the recommended Powerlevel10k font from - # https://github.com/romkatv/powerlevel10k/#recommended-meslo-nerd-font-patched-for-powerlevel10k - # and set POWERLEVEL9K_MODE=nerdfont-complete. - typeset -g POWERLEVEL9K_MODE=nerdfont-complete - - # When set to true, icons appear before content on both sides of the prompt. When set - # to false, icons go after content. If empty or not set, icons go before content in the left - # prompt and after content in the right prompt. - # - # You can also override it for a specific segment: - # - # POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false - # - # Or for a specific segment in specific state: - # - # POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false - typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT= - - # Add an empty line before each prompt. - typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false - - # Connect left prompt lines with these symbols. You'll probably want to use the same color - # as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX= - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX= - typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX= - # Connect right prompt lines with these symbols. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX= - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX= - typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX= - - # Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or - # '─'. The last two make it easier to see the alignment between left and right prompt and to - # separate prompt from command output. You might want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false - # for more compact prompt if using using this option. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND= - if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then - # The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE - # ornaments defined above. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=242 - # Start filler from the edge of the screen if there are no left segments on the first line. - typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}' - # End filler on the edge of the screen if there are no right segments on the first line. - typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}' - fi - - # Separator between same-color segments on the left. - typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='\uE0B9' - # Separator between same-color segments on the right. - typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='\uE0B9' - # Separator between different-color segments on the left. - typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B8' - # Separator between different-color segments on the right. - typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0BE' - # The right end of left prompt. - typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B8' - # The left end of right prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0BE' - # The left end of left prompt. - typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL='' - # The right end of right prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL='' - # Left prompt terminator for lines without any segments. - typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL= - - #################################[ os_icon: os identifier ]################################## - # OS identifier color. - # typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=255 - # typeset -g POWERLEVEL9K_OS_ICON_BACKGROUND=0 - # Make the icon bold. - typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='${P9K_CONTENT// }' - - ################################[ prompt_char: prompt symbol ]################################ - # Transparent background. - typeset -g POWERLEVEL9K_PROMPT_CHAR_BACKGROUND=8 - # Green prompt symbol if the last command succeeded. - typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS}_FOREGROUND=76 - # Red prompt symbol if the last command failed. - typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS}_FOREGROUND=196 - # Default prompt symbol. - # typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯' - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION=' INSERT ' - # Prompt symbol in command vi mode. - # typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮' - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION=' NORMAL ' - # Prompt symbol in visual vi mode. - # typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='Ⅴ' - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION=' VISUAL ' - # Prompt symbol in overwrite vi mode. - # typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶' - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION=' REPLACE ' - typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true - # No line terminator if prompt_char is the last segment. - typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL= - # No line introducer if prompt_char is the first segment. - typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL= - # No surrounding whitespace. - typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_{LEFT,RIGHT}_WHITESPACE= - - ##################################[ dir: current directory ]################################## - # Current directory background color. - # typeset -g POWERLEVEL9K_DIR_BACKGROUND=4 - # Default current directory foreground color. - typeset -g POWERLEVEL9K_DIR_FOREGROUND=254 - # If directory is too long, shorten some of its segments to the shortest possible unique - # prefix. The shortened directory can be tab-completed to the original. - typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique - # Replace removed segment suffixes with this symbol. - typeset -g POWERLEVEL9K_SHORTEN_DELIMITER= - # Color of the shortened directory segments. - typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=250 - # Color of the anchor directory segments. Anchor segments are never shortened. The first - # segment is always an anchor. - typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=255 - # Display anchor directory segments in bold. - typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true - # Don't shorten directories that contain any of these files. They are anchors. - local anchor_files=( - .bzr - .citc - .git - .hg - .node-version - .python-version - .ruby-version - .shorten_folder_marker - .svn - .terraform - CVS - Cargo.toml - composer.json - go.mod - package.json - ) - typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})" - # Don't shorten this many last directory segments. They are anchors. - typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1 - # Shorten directory if it's longer than this even if there is space for it. The value can - # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty, - # directory will be shortened only when prompt doesn't fit or when other parameters demand it - # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below). - typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80 - # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this - # many columns for typing commands. - typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40 - # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least - # COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands. - typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50 - # If set to true, embed a hyperlink into the directory. Useful for quickly - # opening a directory in the file manager simply by clicking the link. - # Can also be handy when the directory is shortened, as it allows you to see - # the full directory that was used in previous commands. - typeset -g POWERLEVEL9K_DIR_HYPERLINK=false - - # Enable special styling for non-writable directories. - typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=true - # Show this icon when the current directory is not writable. POWERLEVEL9K_DIR_SHOW_WRITABLE - # above must be set to true for this parameter to have effect. - # typeset -g POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # Custom prefix. - # typeset -g POWERLEVEL9K_DIR_PREFIX='in ' - - # POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons for different directories. - # It must be an array with 3 * N elements. Each triplet consists of: - # - # 1. A pattern against which the current directory is matched. Matching is done with - # extended_glob option enabled. - # 2. Directory class for the purpose of styling. - # 3. Icon. - # - # Triplets are tried in order. The first triplet whose pattern matches $PWD wins. If there - # are no matches, the directory will have no icon. - # - # Example: - # - # typeset -g POWERLEVEL9K_DIR_CLASSES=( - # '~/work(/*)#' WORK '(╯°□°)╯︵ ┻━┻' - # '~(/*)#' HOME '⌂' - # '*' DEFAULT '') - # - # With these settings, the current directory in the prompt may look like this: - # - # (╯°□°)╯︵ ┻━┻ ~/work/projects/important/urgent - # - # Or like this: - # - # ⌂ ~/best/powerlevel10k - # - # You can also set different colors for directories of different classes. Remember to override - # FOREGROUND, SHORTENED_FOREGROUND and ANCHOR_FOREGROUND for every directory class that you wish - # to have its own color. - # - # typeset -g POWERLEVEL9K_DIR_WORK_BACKGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=254 - # typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=250 - # typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=255 - # - typeset -g POWERLEVEL9K_DIR_CLASSES=() - - #####################################[ vcs: git status ]###################################### - # Versio control system colors. - # typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=2 - # typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=3 - # typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=2 - # typeset -g POWERLEVEL9K_VCS_CONFLICTED_BACKGROUND=3 - # typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=8 - - # Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon. - typeset -g POWERLEVEL9K_VCS_BRANCH_ICON='\uF126 ' - POWERLEVEL9K_VCS_BRANCH_ICON=${(g::)POWERLEVEL9K_VCS_BRANCH_ICON} - - # Untracked files icon. It's really a question mark, your font isn't broken. - # Change the value of this parameter to show a different icon. - typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?' - POWERLEVEL9K_VCS_UNTRACKED_ICON=${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON} - - # Formatter for Git status. - # - # Example output: master ⇣42⇡42 *42 merge ~42 +42 !42 ?42. - # - # You can edit the function to customize how Git status looks. - # - # VCS_STATUS_* parameters are set by gitstatus plugin. See reference: - # https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh. - function my_git_formatter() { - emulate -L zsh - - if [[ -n $P9K_CONTENT ]]; then - # If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from - # gitstatus plugin). VCS_STATUS_* parameters are not available in this case. - typeset -g my_git_format=$P9K_CONTENT - return - fi - - # Styling for different parts of Git status. - local meta='%7F' # white foreground - local clean='%0F' # black foreground - local modified='%0F' # black foreground - local untracked='%0F' # black foreground - local conflicted='%1F' # red foreground - - local res - local where # branch name, tag or commit - if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then - res+="${clean}${POWERLEVEL9K_VCS_BRANCH_ICON}" - where=${(V)VCS_STATUS_LOCAL_BRANCH} - elif [[ -n $VCS_STATUS_TAG ]]; then - res+="${meta}#" - where=${(V)VCS_STATUS_TAG} - else - res+="${meta}@" - where=${VCS_STATUS_COMMIT[1,8]} - fi - - # If local branch name or tag is at most 32 characters long, show it in full. - # Otherwise show the first 12 … the last 12. - (( $#where > 32 )) && where[13,-13]="…" - res+="${clean}${where//\%/%%}" # escape % - - # Show tracking branch name if it differs from local branch. - if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then - res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" # escape % - fi - - # ⇣42 if behind the remote. - (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}" - # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42. - (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" " - (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}" - # *42 if have stashes. - (( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}" - # 'merge' if the repo is in an unusual state. - [[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}" - # ~42 if have merge conflicts. - (( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}" - # +42 if have staged changes. - (( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}" - # !42 if have unstaged changes. - (( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}" - # ?42 if have untracked files. It's really a question mark, your font isn't broken. - # See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon. - # Remove the next line if you don't want to see untracked files at all. - (( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}" - - typeset -g my_git_format=$res - } - functions -M my_git_formatter 2>/dev/null - - # Disable the default Git status formatting. - typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true - # Install our own Git status formatter. - typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter(1)))+${my_git_format}}' - # Enable counters for staged, unstaged, etc. - typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1 - - # Custom icon. - typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION= - # Custom prefix. - # typeset -g POWERLEVEL9K_VCS_PREFIX='on ' - - # Show status of repositories of these types. You can add svn and/or hg if you are - # using them. If you do, your prompt may become slow even when your current directory - # isn't in an svn or hg reposotiry. - typeset -g POWERLEVEL9K_VCS_BACKENDS=(git) - - ##########################[ status: exit code of the last command ]########################### - # Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and - # style them independently from the regular OK and ERROR state. - typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true - - # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as - # it will signify success by turning green. - typeset -g POWERLEVEL9K_STATUS_OK=false - typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔' - # typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2 - # typeset -g POWERLEVEL9K_STATUS_OK_BACKGROUND=0 - - # Status when some part of a pipe command fails but the overall exit status is zero. It may look - # like this: 1|0. - typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true - typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔' - # typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=2 - # typeset -g POWERLEVEL9K_STATUS_OK_PIPE_BACKGROUND=0 - - # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as - # it will signify error by turning red. - typeset -g POWERLEVEL9K_STATUS_ERROR=false - typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='↵' - # typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=3 - # typeset -g POWERLEVEL9K_STATUS_ERROR_BACKGROUND=1 - - # Status when the last command was terminated by a signal. - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true - # Use terse signal names: "INT" instead of "SIGINT(2)". - typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='↵' - # typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=3 - # typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_BACKGROUND=1 - - # Status when some part of a pipe command fails and the overall exit status is also non-zero. - # It may look like this: 1|0. - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='↵' - # typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=3 - # typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_BACKGROUND=1 - - ###################[ command_execution_time: duration of the last command ]################### - # Execution time color. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=0 - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND=3 - # Show duration of the last command if takes longer than this many seconds. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3 - # Show this many fractional digits. Zero means round to seconds. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0 - # Duration format: 1d 2h 3m 4s. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s' - # Custom icon. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION= - # Custom prefix. - # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='took ' - - #######################[ background_jobs: presence of background jobs ]####################### - # Background jobs color. - # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=6 - # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND=0 - # Don't show the number of background jobs. - typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false - # Icon to show when there are background jobs. - typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER// }' - - ##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]########### - # NordVPN connection indicator color. - # typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=7 - # typeset -g POWERLEVEL9K_NORDVPN_BACKGROUND=4 - # Hide NordVPN connection indicator when not connected. - typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION= - typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION= - # Custom icon. - # typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #################[ ranger: ranger shell (https://github.com/ranger/ranger) ]################## - # Ranger shell color. - # typeset -g POWERLEVEL9K_RANGER_FOREGROUND=3 - # typeset -g POWERLEVEL9K_RANGER_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######################################[ ram: free RAM ]####################################### - # RAM color. - # typeset -g POWERLEVEL9K_RAM_FOREGROUND=0 - # typeset -g POWERLEVEL9K_RAM_BACKGROUND=3 - # Custom icon. - # typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######################################[ load: CPU load ]###################################### - # Show average CPU load over this many last minutes. Valid values are 1, 5 and 15. - typeset -g POWERLEVEL9K_LOAD_WHICH=5 - # Load color when load is under 50%. - # typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=0 - # typeset -g POWERLEVEL9K_LOAD_NORMAL_BACKGROUND=2 - # Load color when load is between 50% and 70%. - # typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=0 - # typeset -g POWERLEVEL9K_LOAD_WARNING_BACKGROUND=3 - # Load color when load is over 70%. - # typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=0 - # typeset -g POWERLEVEL9K_LOAD_CRITICAL_BACKGROUND=1 - # Custom icon. - # typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##################################[ context: user@hostname ]################################## - # Default context color. - typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=3 - typeset -g POWERLEVEL9K_CONTEXT_BACKGROUND=0 - # Default context format: %n is username, %m is hostname. - typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m' - - # Context color when running with privileges. - typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1 - typeset -g POWERLEVEL9K_CONTEXT_ROOT_BACKGROUND=0 - # Context format when running with privileges: %n is username, %m is hostname. - typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%n@%m' - - # Don't show context unless running with privileges or in SSH. - # Tip: Remove the next line to always show context. - typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION= - - # Custom icon. - # typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - # typeset -g POWERLEVEL9K_CONTEXT_PREFIX='with ' - - ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]### - # Python virtual environment color. - # typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=0 - # typeset -g POWERLEVEL9K_VIRTUALENV_BACKGROUND=4 - # Don't show Python version next to the virtual environment name. - typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false - # Separate environment name from Python version only with a space. - typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER= - # Custom icon. - # typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #####################[ anaconda: conda environment (https://conda.io/) ]###################### - # Anaconda environment color. - # typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=0 - # typeset -g POWERLEVEL9K_ANACONDA_BACKGROUND=4 - # Don't show Python version next to the anaconda environment name. - typeset -g POWERLEVEL9K_ANACONDA_SHOW_PYTHON_VERSION=false - # Separate environment name from Python version only with a space. - typeset -g POWERLEVEL9K_ANACONDA_{LEFT,RIGHT}_DELIMITER= - # Custom icon. - # typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################ - # Pyenv color. - # typeset -g POWERLEVEL9K_PYENV_FOREGROUND=0 - # typeset -g POWERLEVEL9K_PYENV_BACKGROUND=4 - # Don't show the current Python version if it's the same as global. - typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false - # Custom icon. - # typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]########## - # Nodenv color. - # typeset -g POWERLEVEL9K_NODENV_FOREGROUND=2 - # typeset -g POWERLEVEL9K_NODENV_BACKGROUND=0 - # Don't show node version if it's the same as global: $(nodenv version-name) == $(nodenv global). - typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false - # Custom icon. - # typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]############### - # Nvm color. - # typeset -g POWERLEVEL9K_NVM_FOREGROUND=70 - # Custom icon. - # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############ - # Nodeenv color. - # typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=2 - # typeset -g POWERLEVEL9K_NODEENV_BACKGROUND=0 - # Don't show Node version next to the environment name. - typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false - # Separate environment name from Node version only with a space. - typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER= - # Custom icon. - # typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##############################[ node_version: node.js version ]############################### - # Node version color. - # typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=7 - # typeset -g POWERLEVEL9K_NODE_VERSION_BACKGROUND=2 - # Show node version only when in a directory tree containing package.json. - typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #######################[ go_version: go version (https://golang.org) ]######################## - # Go version color. - # typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=255 - # typeset -g POWERLEVEL9K_GO_VERSION_BACKGROUND=2 - # Show go version only when in a go project subdirectory. - typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #################[ rust_version: rustc version (https://www.rust-lang.org) ]################## - # Rust version color. - # typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=0 - # typeset -g POWERLEVEL9K_RUST_VERSION_BACKGROUND=208 - # Show rust version only when in a rust project subdirectory. - typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################ - # .NET version color. - # typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=7 - # typeset -g POWERLEVEL9K_DOTNET_VERSION_BACKGROUND=5 - # Show .NET version only when in a .NET project subdirectory. - typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]############## - # Rbenv color. - # typeset -g POWERLEVEL9K_RBENV_FOREGROUND=0 - # typeset -g POWERLEVEL9K_RBENV_BACKGROUND=1 - # Don't show ruby version if it's the same as global: $(rbenv version-name) == $(rbenv global). - typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false - # Custom icon. - # typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #######################[ rvm: ruby version from rvm (https://rvm.io) ]######################## - # Rvm color. - # typeset -g POWERLEVEL9K_RVM_FOREGROUND=0 - # typeset -g POWERLEVEL9K_RVM_BACKGROUND=240 - # Don't show @gemset at the end. - typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false - # Don't show ruby- at the front. - typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false - # Custom icon. - # typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################[ terraform: terraform workspace (https://www.terraform.io) ]################# - # Terraform color. - # typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=4 - # typeset -g POWERLEVEL9K_TERRAFORM_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_TERRAFORM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]# - # AWS profile color. - # typeset -g POWERLEVEL9K_AWS_FOREGROUND=7 - # typeset -g POWERLEVEL9K_AWS_BACKGROUND=1 - # Custom icon. - # typeset -g POWERLEVEL9K_AWS_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]# - # AWS Elastic Beanstalk environment color. - # typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=2 - # typeset -g POWERLEVEL9K_AWS_EB_ENV_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]########## - # Azure account name color. - # typeset -g POWERLEVEL9K_AZURE_FOREGROUND=7 - # typeset -g POWERLEVEL9K_AZURE_BACKGROUND=4 - # Custom icon. - # typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]############# - # Kubernetes context classes for the purpose of using different colors, icons and expansions with - # different contexts. - # - # POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element - # in each pair defines a pattern against which the current kubernetes context gets matched. - # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) - # that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters, - # you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The - # first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( - # '*prod*' PROD - # '*test*' TEST - # '*' DEFAULT) - # - # If your current kubernetes context is "deathray-testing/default", its class is TEST - # because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=0 - # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_BACKGROUND=2 - # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' - typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( - # '*prod*' PROD # These values are examples that are unlikely - # '*test*' TEST # to match your needs. Customize them as needed. - '*' DEFAULT) - typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=7 - typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_BACKGROUND=5 - # typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext - # segment. Parameter expansions are very flexible and fast, too. See reference: - # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion. - # - # Within the expansion the following parameters are always available: - # - # - P9K_CONTENT The content that would've been displayed if there was no content - # expansion defined. - # - P9K_KUBECONTEXT_NAME The current context's name. Corresponds to column NAME in the - # output of `kubectl config get-contexts`. - # - P9K_KUBECONTEXT_CLUSTER The current context's cluster. Corresponds to column CLUSTER in the - # output of `kubectl config get-contexts`. - # - P9K_KUBECONTEXT_NAMESPACE The current context's namespace. Corresponds to column NAMESPACE - # in the output of `kubectl config get-contexts`. If there is no - # namespace, the parameter is set to "default". - # - # If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS), - # the following extra parameters are available: - # - # - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks". - # - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID. - # - P9K_KUBECONTEXT_CLOUD_ZONE Availability zone. - # - P9K_KUBECONTEXT_CLOUD_CLUSTER Cluster. - # - # P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example, - # if P9K_KUBECONTEXT_CLUSTER is "gke_my-account_us-east1-a_my-cluster-01": - # - # - P9K_KUBECONTEXT_CLOUD_NAME=gke - # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account - # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a - # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 - # - # If P9K_KUBECONTEXT_CLUSTER is "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01": - # - # - P9K_KUBECONTEXT_CLOUD_NAME=eks - # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012 - # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1 - # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 - typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION= - # Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME. - POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}' - # Append the current context's namespace if it's not "default". - POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}' - - # Custom prefix. - # typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='at ' - - ###############################[ public_ip: public IP address ]############################### - # Public IP color. - # typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=7 - # typeset -g POWERLEVEL9K_PUBLIC_IP_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ########################[ vpn_ip: virtual private network indicator ]######################### - # VPN IP color. - # typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=0 - # typeset -g POWERLEVEL9K_VPN_IP_BACKGROUND=6 - # When on VPN, show just an icon without the IP address. - typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION= - # Regular expression for the VPN network interface. Run ifconfig while on VPN to see the - # name of the interface. - typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(wg|(.*tun))[0-9]*' - # Icon to show when on VPN. - typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER// }' - - #########################[ proxy: system-wide http/https/ftp proxy ]########################## - # Proxy color. - # typeset -g POWERLEVEL9K_PROXY_FOREGROUND=4 - # typeset -g POWERLEVEL9K_PROXY_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################################[ battery: internal battery ]################################# - # Show battery in red when it's below this level and not connected to power supply. - typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20 - typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=1 - # Show battery in green when it's charging or fully charged. - typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=2 - # Show battery in yellow when it's discharging. - typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=3 - # Battery pictograms going from low to high level of charge. - typeset -g POWERLEVEL9K_BATTERY_STAGES=$'\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578' - # Don't show the remaining time to charge/discharge. - typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false - # typeset -g POWERLEVEL9K_BATTERY_BACKGROUND=0 - - ####################################[ time: current time ]#################################### - # Current time color. - # typeset -g POWERLEVEL9K_TIME_FOREGROUND=0 - # typeset -g POWERLEVEL9K_TIME_BACKGROUND=7 - # Format for the current time: 09:51:02. See `man 3 strftime`. - typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}' - # If set to true, time will update when you hit enter. This way prompts for the past - # commands will contain the start times of their commands as opposed to the default - # behavior where they contain the end times of their preceding commands. - typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false - # Custom icon. - typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION= - # Custom prefix. - # typeset -g POWERLEVEL9K_TIME_PREFIX='at ' - - # Example of a user-defined prompt segment. Function prompt_example will be called on every - # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or - # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user. - # - # Type `p10k help segment` for documentation and a more sophisticated example. - function prompt_example() { - p10k segment -b red -f yellow -i '⭐' -t 'hello, %n' - } - - # User-defined prompt segments can be customized the same way as built-in segments. - # typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=4 - typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}' -} - -(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]} -'builtin' 'unset' 'p10k_config_opts' diff --git a/config/zsh/zshrc b/config/zsh/zshrc deleted file mode 100644 index 559b1ca..0000000 --- a/config/zsh/zshrc +++ /dev/null @@ -1,53 +0,0 @@ -export XDG_CACHE_HOME=${XDG_CACHE_HOME:=~/.cache} -export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:=~/.config} -export XDG_DATA_HOME=${XDG_DATA_HOME:=~/.local/share} -if printf "$PATH"|grep -q ".local/bin"; then - export PATH="$PATH:$HOME/.local/bin" -fi - -HISTFILE=$XDG_DATA_HOME/zsh/histfile -HISTSIZE=5000 -SAVEHIST=5000 - -typeset -A ZPLGM -ZPLG_HOME=$XDG_CACHE_HOME/zsh/zplugin -ZPLGM[HOME_DIR]=$ZPLG_HOME -ZPLGM[ZCOMPDUMP_PATH]=$XDG_CACHE_HOME/zsh/zcompdump -ZPLGM[COMPLETIONS_DIR]=$XDG_DATA_HOME/zsh/completions -if [[ ! -f $ZPLG_HOME/bin/zplugin.zsh ]]; then - git clone https://github.com/zdharma/zplugin $ZPLG_HOME/bin - zcompile $ZPLG_HOME/bin/zplugin.zsh -fi -autoload -Uz _zplugin -(( ${+_comps} )) && _comps[zplugin]=_zplugin -source $ZPLG_HOME/bin/zplugin.zsh -load=light - -#load zsh external configs -for file in $ZDOTDIR/*.zsh; do - source "$file" -done -#make fpath not contain all the completions I don't use (enable completions using "zplugin creinstall [PATH_TO_COMPLETIONS_FOLDER]") -if [[ -d /usr/local/share/zsh ]]; then -fpath=($XDG_DATA_HOME/zsh/completions /usr/local/share/zsh/site-functions /usr/local/share/zsh/$ZSH_VERSION/functions/Calendar /usr/local/share/zsh/$ZSH_VERSION/functions/Chpwd /usr/local/share/zsh/$ZSH_VERSION/functions/Completion /usr/local/share/zsh/$ZSH_VERSION/functions/Exceptions /usr/local/share/zsh/$ZSH_VERSION/functions/MIME /usr/local/share/zsh/$ZSH_VERSION/functions/Exceptions /usr/local/share/zsh/$ZSH_VERSION/functions/Math /usr/local/share/zsh/$ZSH_VERSION/functions/Exceptions /usr/local/share/zsh/$ZSH_VERSION/functions/Misc /usr/local/share/zsh/$ZSH_VERSION/functions/TCP /usr/local/share/zsh/$ZSH_VERSION/functions/VCS_Info /usr/local/share/zsh/$ZSH_VERSION/functions/VCS_Info/Backends /usr/local/share/zsh/$ZSH_VERSION/functions/Zftp /usr/local/share/zsh/$ZSH_VERSION/functions/Zle) -else -fpath=($XDG_DATA_HOME/zsh/completions /usr/share/zsh/site-functions /usr/share/zsh/$ZSH_VERSION/functions/Calendar /usr/share/zsh/$ZSH_VERSION/functions/Chpwd /usr/share/zsh/$ZSH_VERSION/functions/Completion /usr/share/zsh/$ZSH_VERSION/functions/Exceptions /usr/share/zsh/$ZSH_VERSION/functions/MIME /usr/share/zsh/$ZSH_VERSION/functions/Exceptions /usr/share/zsh/$ZSH_VERSION/functions/Math /usr/share/zsh/$ZSH_VERSION/functions/Exceptions /usr/share/zsh/$ZSH_VERSION/functions/Misc /usr/share/zsh/$ZSH_VERSION/functions/TCP /usr/share/zsh/$ZSH_VERSION/functions/VCS_Info /usr/share/zsh/$ZSH_VERSION/functions/VCS_Info/Backends /usr/share/zsh/$ZSH_VERSION/functions/Zftp /usr/share/zsh/$ZSH_VERSION/functions/Zle) -fi -# load shortcutrc and aliasrc to grab cross-shell niceties -[ -f "$XDG_CONFIG_HOME/shortcutrc" ] && source "$XDG_CONFIG_HOME/shortcutrc" -[ -f "$XDG_CONFIG_HOME/aliasrc" ] && source "$XDG_CONFIG_HOME/aliasrc" -# plugin loading goes here: -# theme -zplugin ice silent depth=1 -zplugin $load romkatv/powerlevel10k -# Ctrl-R functionality -zplugin $load zdharma/history-search-multi-word -# completions -zplugin ice blockf -zplugin $load zsh-users/zsh-completions -# good, fast syntax highlighting -zplugin ice silent wait!1 atload"ZPLGM[COMPINIT_OPTS]=-C; zpcompinit" -zplugin $load zdharma/fast-syntax-highlighting - -# theme config loading -[ -f "$ZDOTDIR/themes/p10k.zsh" ] && source "$ZDOTDIR/themes/p10k.zsh" |