Initial fish commit

Need to make sure functions are being stow'ed properly.
This commit is contained in:
2019-01-29 07:44:51 -05:00
parent 10195a6d24
commit 1e69a014f3
16 changed files with 300 additions and 19 deletions

View File

@@ -3,7 +3,7 @@
# clear screen # clear screen
cs "printf '\033c'" cs "printf '\033c'"
hst "history" hst "history"
nf "cs && neofetch | lolcat" nf "printf '\033c' && neofetch | lolcat"
fi "fish" fi "fish"
# reload urxvt # reload urxvt
ru "xrdb ~/.Xresources" ru "xrdb ~/.Xresources"
@@ -83,7 +83,9 @@ vlh "alsamixer -c 2"
# pacman # pacman
pc "sudo pacman -S" pc "sudo pacman -S"
pcr "sudo pacman -Rs" pcr "sudo pacman -Rs"
pcu "sudo pacman -Sy" pcud "sudo pacman -Sy"
pcug "sudo pacman -Syu"
pcv "sudo pacman -Q"
xpc "pacman -Qqe > ~/linux-config/txt/nzxt-pkgs.txt" xpc "pacman -Qqe > ~/linux-config/txt/nzxt-pkgs.txt"
# tri "trizen -S --noconfirm" # tri "trizen -S --noconfirm"
tri "trizen -S" tri "trizen -S"
@@ -120,6 +122,7 @@ n "nvim"
sni "sudo nvim" sni "sudo nvim"
fh "feh" fh "feh"
sx "sxiv" sx "sxiv"
sxg "sxiv -a"
wp "grep wallpaper ~/.cache/wal/colors.sh" wp "grep wallpaper ~/.cache/wal/colors.sh"
# rsl "java -jar ~/Downloads/RuneLite.jar" # rsl "java -jar ~/Downloads/RuneLite.jar"
@@ -151,13 +154,12 @@ yu "echo 'kevin.mok@mail.utoronto.ca' | xclip -selection clipboard"
p3 "python3" p3 "python3"
py "python" py "python"
wt "watson" w "watson"
wt "watson" wa "watson start"
wta "watson start" we "watson edit"
wte "watson edit" wl "watson log"
wtl "watson log" ws "watson stop"
wts "watson stop" wt "watson status"
wtt "watson status"
# }}} applications # # }}} applications #
@@ -266,15 +268,17 @@ upip "pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xa
# update pip req's. # update pip req's.
ureq "pip freeze > requirements.txt" ureq "pip freeze > requirements.txt"
# scan history
hs "$spv_dir/src/update-history.sh && hlg"
# show last history scan # show last history scan
hlg "cat $spv_dir/src/api/management/commands/update-history.log | tail -n 1" hlg "cat $spv_dir/src/api/management/commands/update-history.log | tail -n 1"
# scan history
hs "$spv_dir/src/update-history.sh && cat $spv_dir/src/api/management/commands/update-history.log | tail -n 1"
# scan cron log for hs cmd # scan cron log for hs cmd
crnl "grep \"(kevin) CMD\" /var/log/syslog | tail -n 1 && hlg" crnl "grep \"(kevin) CMD\" /var/log/syslog | tail -n 1 && hlg"
# removes all but newest file # removes all but newest file
# rmol "ls -t | tail -n +2 | xargs rm -- && l" # rmol "ls -t | tail -n +2 | xargs rm -- && l"
snw "spotify-now -i '%artist - %title'"
# }}} spotify-lib-vis # # }}} spotify-lib-vis #
sc "shellcheck" sc "shellcheck"

View File

@@ -0,0 +1,161 @@
# copy this into ~/.config/fish/completions/ to enable autocomplete for the watson time tracker
#
function __fish_watson_needs_sub -d "provides a list of sub commands"
set cmd (commandline -opc)
if [ (count $cmd) -eq 1 -a $cmd[1] = 'watson' ]
return 0
end
return 1
end
function __fish_watson_using_command -d "determine if watson is using the passed command"
set cmd (commandline -opc)
if [ (count $cmd) -ge 2 -a $cmd[1] = 'watson' ]
if [ $argv[1] = $cmd[2] ]
return 0
end
return 1
end
return 1
end
function __fish_watson_get_projects -d "return a list of projects"
command watson projects
end
function __fish_watson_get_tags -d "return a list of tags"
command watson tags
end
function __fish_watson_has_project -d "determine if watson is using a passed command and if it has a project"
set cmd (commandline -opc)
if [ (count $cmd) -gt 2 -a $cmd[1] = 'watson' ]
if [ $argv[1] = $cmd[2] ]
if contains "$cmd[3]" (__fish_watson_get_projects)
return 0
end
end
end
return 1
end
function __fish_watson_has_from -d "determine if watson is using a passed command and if it is using from"
set cmd (commandline -opc)
if [ (count $cmd) -gt 2 -a $cmd[1] = 'watson' ]
if [ $argv[1] = $cmd[2] ]
if contains -- "$cmd[3]" -f --from
return 0
end
end
end
return 1
end
function __fish_watson_get_frames -d "return a list of frames" #TODO, use watson logs to get more info
command watson frames
end
function __fish_watson_needs_project -d "check if we need a project"
set cmd (commandline -opc)
if [ (count $cmd) -ge 2 -a $cmd[1] = 'watson' ]
if [ $argv[1] = $cmd[2] ]
for i in $cmd
if contains $i (__fish_watson_get_projects)
return 1 # return 1 because we alredy have a project
end
end
return 0 # we are using $argv as our command and the command does not contain any projects
end
end
return 1
end
# if a backend.url is set, use it in the command description
if [ -e ~/.config/watson/config ]
set url_string (command watson config backend.url 2> /dev/null)
if test -n "$url_string"
set url $url_string
end
else
set url "a remote Crick server"
end
# ungrouped
complete -f -c watson -n '__fish_watson_needs_sub' -a cancel -d "Cancel the last start command"
complete -f -c watson -n '__fish_watson_needs_sub' -a stop -d " Stop monitoring time for the current project"
complete -f -c watson -n '__fish_watson_needs_sub' -a frames -d "Display the list of all frame IDs"
complete -f -c watson -n '__fish_watson_needs_sub' -a help -d "Display help information"
complete -f -c watson -n '__fish_watson_needs_sub' -a projects -d "Display the list of projects"
complete -f -c watson -n '__fish_watson_needs_sub' -a tags -d "Display the list of tags"
complete -f -c watson -n '__fish_watson_needs_sub' -a sync -d "sync your work with $url"
# config
complete -f -c watson -n '__fish_watson_needs_sub' -a config -d "Get and set configuration options"
complete -f -c watson -n '__fish_watson_using_command config' -s e -l edit -d "Edit the config with an editor"
# edit
complete -f -c watson -n '__fish_watson_needs_sub' -a edit -d "Edit a frame"
complete -f -c watson -n '__fish_watson_using_command edit' -a "(__fish_watson_get_frames)"
# log
complete -f -c watson -n '__fish_watson_needs_sub' -a log -d "Display sessions during the given timespan"
complete -f -c watson -n '__fish_watson_using_command log' -s c -l current -d "include the running frame"
complete -f -c watson -n '__fish_watson_using_command log' -s C -l no-current -d "exclude the running frame (default)"
complete -f -c watson -n '__fish_watson_using_command log' -s f -l from -d "Start date for log"
complete -f -c watson -n '__fish_watson_has_from log' -s t -l to -d "end date for log"
complete -f -c watson -n '__fish_watson_using_command log' -s y -l year -d "show the last year"
complete -f -c watson -n '__fish_watson_using_command log' -s m -l month -d "show the last month"
complete -f -c watson -n '__fish_watson_using_command log' -s w -l week -d "show week-to-day"
complete -f -c watson -n '__fish_watson_using_command log' -s d -l day -d "show today"
complete -f -c watson -n '__fish_watson_using_command log' -s a -l all -d "show all"
complete -f -c watson -n '__fish_watson_using_command log' -s p -l project -d "restrict to project" -a "(__fish_watson_get_projects)"
complete -f -c watson -n '__fish_watson_using_command log' -s T -l tag -d "restrict to tag" -a "(__fish_watson_get_tags)"
complete -f -c watson -n '__fish_watson_using_command log' -s j -l json -d "output json"
complete -f -c watson -n '__fish_watson_using_command log' -s g -l pager -d "view through pager"
complete -f -c watson -n '__fish_watson_using_command log' -s G -l no-pager -d "don't vew through pager"
# merge
complete -f -c watson -n '__fish_watson_needs_sub' -a merge -d "merge existing frames with conflicting ones"
complete -f -c watson -n '__fish_watson_using_command merge' -s f -l force -d "silently merge"
# remove
complete -f -c watson -n '__fish_watson_needs_sub' -a remove -d "Remove a frame"
complete -f -c watson -n '__fish_watson_using_command remove' -a "(__fish_watson_get_frames)"
complete -f -c watson -n '__fish_watson_using_command remove' -s f -l force -d "silently remove"
# rename
complete -f -c watson -n '__fish_watson_needs_sub' -a rename -d "Rename a project or tag"
complete -f -c watson -n '__fish_watson_using_command rename' -a "(__fish_watson_get_projects) (__fish_watson_get_tags)"
# report
complete -f -c watson -n '__fish_watson_needs_sub' -a report -d "Display a report of time spent"
complete -f -c watson -n '__fish_watson_using_command report' -s c -l current -d "include the running frame"
complete -f -c watson -n '__fish_watson_using_command report' -s C -l no-current -d "exclude the running frame (default)"
complete -f -c watson -n '__fish_watson_using_command report' -s f -l from -d "Start date for report"
complete -f -c watson -n '__fish_watson_has_from report' -s t -l to -d "end date for report"
complete -f -c watson -n '__fish_watson_using_command report' -s y -l year -d "show the last year"
complete -f -c watson -n '__fish_watson_using_command report' -s m -l month -d "show the last month"
complete -f -c watson -n '__fish_watson_using_command report' -s w -l week -d "show week-to-day"
complete -f -c watson -n '__fish_watson_using_command report' -s d -l day -d "show today"
complete -f -c watson -n '__fish_watson_using_command report' -s a -l all -d "show all"
complete -f -c watson -n '__fish_watson_using_command report' -s p -l project -d "restrict to project" -a "(__fish_watson_get_projects)"
complete -f -c watson -n '__fish_watson_using_command report' -s T -l tag -d "restrict to tag" -a "(__fish_watson_get_tags)"
complete -f -c watson -n '__fish_watson_using_command report' -s j -l json -d "output json"
complete -f -c watson -n '__fish_watson_using_command report' -s g -l pager -d "view through pager"
complete -f -c watson -n '__fish_watson_using_command report' -s G -l no-pager -d "don't vew through pager"
complete -f -c watson -n '__fish_watson_needs_sub' -a restart -d "Restart monitoring time for a stopped project"
complete -f -c watson -n '__fish_watson_using_command restart' -s s -l stop -d "stop running project"
complete -f -c watson -n '__fish_watson_using_command restart' -s S -l no-stop -d "do not stop running project"
complete -f -c watson -n '__fish_watson_using_command restart' -a "(__fish_watson_get_frames)"
# start
complete -f -c watson -n '__fish_watson_needs_sub' -a start -d "Start monitoring time for a project"
complete -f -c watson -n '__fish_watson_needs_project start' -a "(__fish_watson_get_projects)"
complete -f -c watson -n '__fish_watson_has_project start' -a "+(__fish_watson_get_tags)"
# status
complete -f -c watson -n '__fish_watson_needs_sub' -a status -d "Display when the current project was started and time spent"
complete -f -c watson -n '__fish_watson_using_command status' -s p -l project -d "only show project"
complete -f -c watson -n '__fish_watson_using_command status' -s t -l tags -d "only show tags"
complete -f -c watson -n '__fish_watson_using_command status' -s e -l elapsed -d "only show elapsed time"

View File

@@ -0,0 +1,7 @@
# Path to Oh My Fish install.
set -q XDG_DATA_HOME
and set -gx OMF_PATH "$XDG_DATA_HOME/omf"
or set -gx OMF_PATH "$HOME/.local/share/omf"
# Load Oh My Fish configuration.
source $OMF_PATH/init.fish

View File

@@ -0,0 +1 @@
/home/kevin/.local/share/omf/themes/pure/conf.d/pure.fish

View File

@@ -0,0 +1,32 @@
# login to X {{{ #
if status is-login
if test -z "$DISPLAY" -a $XDG_VTNR = 1
exec startx -- -keeptty
end
end
set -x GPG_TTY=$(tty)
# }}} login to X #
# input
xset r rate 200 60
fish_vi_key_bindings
set -x EDITOR /usr/bin/nvim
set -x VISUAL /usr/bin/nvim
builtin cd $last_dir
# fish-specific
source /home/kevin/.config/fish/key_abbr.fish
abbr xf "fish_config"
abbr f. "cd .."
abbr f.. "cd ../.."
# spv
set -U spv_dir "/home/kevin/coding/spotify-lib-vis"
source $spv_dir/src/api-keys.sh
# set -U PATH /usr/local/sbin /usr/local/bin /usr/bin /usr/bin/site_perl /usr/bin/vendor_perl /usr/bin/core_perl /home/kevin/linux-config/scripts
set -x PATH $PATH /home/kevin/linux-config/scripts
set -x PASSWORD_STORE_CLIP_TIME 120

View File

@@ -0,0 +1,52 @@
#
# Wrap the builtin cd command to maintain directory history.
#
function cd --description "Change directory"
set -l MAX_DIR_HIST 25
if test (count $argv) -gt 1
printf "%s\n" (_ "Too many args for cd command")
return 1
end
# Skip history in subshells.
if status --is-command-substitution
builtin cd $argv
return $status
end
# Avoid set completions.
set -l previous $PWD
if test "$argv" = "-"
if test "$__fish_cd_direction" = "next"
nextd
else
prevd
end
return $status
end
# allow explicit "cd ." if the mount-point became stale in the meantime
if test "$argv" = "."
cd "$PWD"
return $status
end
builtin cd $argv
set -l cd_status $status
if test $cd_status -eq 0 -a "$PWD" != "$previous"
set -q dirprev
or set -l dirprev
set -q dirprev[$MAX_DIR_HIST]
and set -e dirprev[1]
set -g -a dirprev $previous
set -e dirnext
set -g __fish_cd_direction prev
set -U last_dir $PWD
ls -a
end
return $cd_status
end

View File

@@ -0,0 +1,9 @@
function certbot-ssl
set domain_args ""
for domain in $argv
set -a domain_args "-d" $domain
end
echo sudo certbot certonly --manual --preferred-challenges=dns \
--email kevin.mok@live.ca --server https://acme-v02.api.letsencrypt.org/directory \
--agree-tos $domain_args
end

View File

@@ -0,0 +1 @@
/home/kevin/.local/share/omf/themes/pure/fish_prompt.fish

View File

@@ -0,0 +1,4 @@
function gx
set key_aliases /home/kevin/linux-config/aliases/key_aliases
grep $argv[1] $key_aliases
end

View File

@@ -0,0 +1,2 @@
function vsnp
end

View File

@@ -254,7 +254,7 @@ set $ws11 "11 "
# set $ws11 "11 📊" # set $ws11 "11 📊"
# assign [class="Summoners War Exporter"] $ws11 # assign [class="Summoners War Exporter"] $ws11
workspace $ws11 output $samsung workspace $ws11 output $samsung
bindsym $mod+F11 workspace $ws11; exec urxvt -e htop -s PERCENT_MEM bindsym $mod+F11 workspace $ws11; exec urxvt -e htop -s PERCENT_CPU
set $ws12 "12 " set $ws12 "12 "
bindsym $mod+F12 workspace $ws12; exec $def_term bindsym $mod+F12 workspace $ws12; exec $def_term

View File

@@ -87,8 +87,8 @@ ext x?html?, has w3m, terminal = w3m "$@"
# Define the "editor" for text files as first action # Define the "editor" for text files as first action
mime ^text, label editor = ${VISUAL:-$EDITOR} -- "$@" mime ^text, label editor = ${VISUAL:-$EDITOR} -- "$@"
mime ^text, label pager = "$PAGER" -- "$@" mime ^text, label pager = "$PAGER" -- "$@"
!mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php = ${VISUAL:-$EDITOR} -- "$@" !mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php|fish = ${VISUAL:-$EDITOR} -- "$@"
!mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@" !mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|js|sh|php|fish = "$PAGER" -- "$@"
ext 1 = man "$1" ext 1 = man "$1"
ext s[wmf]c, has zsnes, X = zsnes "$1" ext s[wmf]c, has zsnes, X = zsnes "$1"

View File

@@ -171,7 +171,6 @@ fi
# # }}} autoreload zsh aliases # # # }}} autoreload zsh aliases #
source /home/kevin/.shortcuts
source /home/kevin/coding/spotify-lib-vis/src/api-keys.sh source /home/kevin/coding/spotify-lib-vis/src/api-keys.sh
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
@@ -179,4 +178,4 @@ export GPG_TTY=$(tty)
export PASSWORD_STORE_CLIP_TIME=120 export PASSWORD_STORE_CLIP_TIME=120
source /home/kevin/.key_aliases source /home/kevin/.key_aliases
exec fish #exec fish

View File

@@ -5,7 +5,8 @@ cf /home/kevin/.config
lc /home/kevin/linux-config/ lc /home/kevin/linux-config/
d /home/kevin/Downloads d /home/kevin/Downloads
D /home/kevin/Documents D /home/kevin/Documents
fs /home/kevin/.config/fish ff /home/kevin/.config/fish
fs /home/kevin/linux-config/fish/.config/fish
k /home/kevin/ k /home/kevin/
lc /home/kevin/linux-config/ lc /home/kevin/linux-config/
me /run/media/kevin me /run/media/kevin

View File

@@ -11,7 +11,8 @@ sr /home/kevin/linux-config/configs/ranger/shortcuts.conf
ss /home/kevin/.shortcuts ss /home/kevin/.shortcuts
u /home/kevin/.Xresources u /home/kevin/.Xresources
v /home/kevin/.vimrc v /home/kevin/.vimrc
# y /home/kevin/.zshrc x /home/kevin/.config/fish/config.fish
y /home/kevin/.zshrc
z /home/kevin/linux-config/aliases/zsh_aliases z /home/kevin/linux-config/aliases/zsh_aliases
# }}} sys * # }}} sys *

View File

@@ -1,5 +1,6 @@
alsa-utils alsa-utils
arch-install-scripts arch-install-scripts
asp
autoconf autoconf
automake automake
bash bash
@@ -68,6 +69,8 @@ licenses
linux linux
linux-firmware linux-firmware
linux-headers linux-headers
linux-kevin
linux-kevin-headers
logrotate logrotate
lolcat lolcat
lsof lsof
@@ -89,16 +92,18 @@ noto-fonts
ntfs-3g ntfs-3g
ntp ntp
numlockx numlockx
nvidia nvidia-dkms
openssh openssh
os-prober os-prober
pacman pacman
pacman-contrib
pass pass
patch patch
pciutils pciutils
pcmanfm pcmanfm
pdfgrep pdfgrep
peaclock peaclock
peek
perl perl
pgadmin4 pgadmin4
pipes.sh pipes.sh
@@ -127,10 +132,12 @@ shadow
shellcheck shellcheck
spotify spotify
spotify-now-git spotify-now-git
sqlitebrowser
st st
steam steam
steam-native-runtime steam-native-runtime
steamos-xpad-dkms steamos-xpad-dkms
stow
sudo sudo
surf surf
sxiv sxiv