This commit is contained in:
Cy Pokhrel 2024-10-24 22:47:30 -04:00
parent 574daaf9eb
commit 8497e08e5e
No known key found for this signature in database
GPG key ID: 1200FBE36C2ADE2E
6 changed files with 219 additions and 45 deletions

145
dot_zshrc
View file

@ -89,3 +89,148 @@ export NVM_DIR="$HOME/.config/nvm"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
source <(fzf --zsh)
ghcs() {
FUNCNAME="$funcstack[1]"
TARGET="shell"
local GH_DEBUG="$GH_DEBUG"
local GH_HOST="$GH_HOST"
read -r -d '' __USAGE <<-EOF
Wrapper around \`gh copilot suggest\` to suggest a command based on a natural language description of the desired output effort.
Supports executing suggested commands if applicable.
USAGE
$FUNCNAME [flags] <prompt>
FLAGS
-d, --debug Enable debugging
-h, --help Display help usage
--hostname The GitHub host to use for authentication
-t, --target target Target for suggestion; must be shell, gh, git
default: "$TARGET"
EXAMPLES
- Guided experience
$ $FUNCNAME
- Git use cases
$ $FUNCNAME -t git "Undo the most recent local commits"
$ $FUNCNAME -t git "Clean up local branches"
$ $FUNCNAME -t git "Setup LFS for images"
- Working with the GitHub CLI in the terminal
$ $FUNCNAME -t gh "Create pull request"
$ $FUNCNAME -t gh "List pull requests waiting for my review"
$ $FUNCNAME -t gh "Summarize work I have done in issues and pull requests for promotion"
- General use cases
$ $FUNCNAME "Kill processes holding onto deleted files"
$ $FUNCNAME "Test whether there are SSL/TLS issues with github.com"
$ $FUNCNAME "Convert SVG to PNG and resize"
$ $FUNCNAME "Convert MOV to animated PNG"
EOF
local OPT OPTARG OPTIND
while getopts "dht:-:" OPT; do
if [ "$OPT" = "-" ]; then # long option: reformulate OPT and OPTARG
OPT="${OPTARG%%=*}" # extract long option name
OPTARG="${OPTARG#"$OPT"}" # extract long option argument (may be empty)
OPTARG="${OPTARG#=}" # if long option argument, remove assigning `=`
fi
case "$OPT" in
debug | d)
GH_DEBUG=api
;;
help | h)
echo "$__USAGE"
return 0
;;
hostname)
GH_HOST="$OPTARG"
;;
target | t)
TARGET="$OPTARG"
;;
esac
done
# shift so that $@, $1, etc. refer to the non-option arguments
shift "$((OPTIND-1))"
TMPFILE="$(mktemp -t gh-copilotXXXXXX)"
trap 'rm -f "$TMPFILE"' EXIT
if GH_DEBUG="$GH_DEBUG" GH_HOST="$GH_HOST" gh copilot suggest -t "$TARGET" "$@" --shell-out "$TMPFILE"; then
if [ -s "$TMPFILE" ]; then
FIXED_CMD="$(cat $TMPFILE)"
print -s "$FIXED_CMD"
echo
eval "$FIXED_CMD"
fi
else
return 1
fi
}
ghce() {
FUNCNAME="$funcstack[1]"
local GH_DEBUG="$GH_DEBUG"
local GH_HOST="$GH_HOST"
read -r -d '' __USAGE <<-EOF
Wrapper around \`gh copilot explain\` to explain a given input command in natural language.
USAGE
$FUNCNAME [flags] <command>
FLAGS
-d, --debug Enable debugging
-h, --help Display help usage
--hostname The GitHub host to use for authentication
EXAMPLES
# View disk usage, sorted by size
$ $FUNCNAME 'du -sh | sort -h'
# View git repository history as text graphical representation
$ $FUNCNAME 'git log --oneline --graph --decorate --all'
# Remove binary objects larger than 50 megabytes from git history
$ $FUNCNAME 'bfg --strip-blobs-bigger-than 50M'
EOF
local OPT OPTARG OPTIND
while getopts "dh-:" OPT; do
if [ "$OPT" = "-" ]; then # long option: reformulate OPT and OPTARG
OPT="${OPTARG%%=*}" # extract long option name
OPTARG="${OPTARG#"$OPT"}" # extract long option argument (may be empty)
OPTARG="${OPTARG#=}" # if long option argument, remove assigning `=`
fi
case "$OPT" in
debug | d)
GH_DEBUG=api
;;
help | h)
echo "$__USAGE"
return 0
;;
hostname)
GH_HOST="$OPTARG"
;;
esac
done
# shift so that $@, $1, etc. refer to the non-option arguments
shift "$((OPTIND-1))"
GH_DEBUG="$GH_DEBUG" GH_HOST="$GH_HOST" gh copilot explain "$@"
}

View file

@ -6,17 +6,17 @@
"cmp-omni": { "branch": "main", "commit": "4ef610bbd85a5ee4e97e09450c0daecbdc60de86" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"dressing.nvim": { "branch": "master", "commit": "1b7921eecc65af1baf8ac1dc06f0794934cbcfb2" },
"fzf-lua": { "branch": "main", "commit": "5dec364c9dedec00dcd6d06e323d7bc7f8d6b596" },
"fzf-lua": { "branch": "main", "commit": "052491ee887b04e231787515a81aa3f358a68147" },
"gitsigns.nvim": { "branch": "main", "commit": "ee7634ab4f0a6606438fe13e16cbf2065589a5ed" },
"lazy.nvim": { "branch": "main", "commit": "cf8ecc2c5e4332760431a33534240b0cbc6680ab" },
"lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" },
"nvim-autopairs": { "branch": "master", "commit": "ee297f215e95a60b01fde33275cc3c820eddeebe" },
"nvim-cmp": { "branch": "main", "commit": "29fb4854573355792df9e156cb779f0d31308796" },
"nvim-lspconfig": { "branch": "master", "commit": "0d62a16429dba5fded93a076237079b81527e8f3" },
"nvim-tree.lua": { "branch": "master", "commit": "2a268f631da85e83b7a95291be589bcddfc785d8" },
"nvim-treesitter": { "branch": "master", "commit": "bab7b0f20bd3e805b77231a77f516c7d69382693" },
"nvim-lspconfig": { "branch": "master", "commit": "85afd4b936acd62b578c2e2d8e86541fb972c32e" },
"nvim-tree.lua": { "branch": "master", "commit": "68be6df2fc7a1ca941b95e00ac37922b56130bfc" },
"nvim-treesitter": { "branch": "master", "commit": "377039daa260b71f304c881d1b21d643c501a261" },
"nvim-web-devicons": { "branch": "master", "commit": "19d257cf889f79f4022163c3fbb5e08639077bd8" },
"tokyonight.nvim": { "branch": "main", "commit": "4867d10ead04e69872b24818d0d306539305cf87" },
"tokyonight.nvim": { "branch": "main", "commit": "2e1daa1d164ad8cc3e99b44ca68e990888a66038" },
"ultisnips": { "branch": "master", "commit": "49dc8cb2086db19d385791c8e1635723b0fd95c7" },
"vim-commentary": { "branch": "master", "commit": "64a654ef4a20db1727938338310209b6a63f60c9" },
"vim-snippets": { "branch": "master", "commit": "f0a3184d9f90b96b044d5914625a25c554d7f301" }

View file

@ -51,7 +51,7 @@ bindsym $mod+$alt+p exec pomatez
bindsym $mod+$alt+y exec $youtube
bindsym $mod+$alt+m exec $music
bindsym $mod+$alt+r exec $rss
bindsym $mod+$alt+e exec kmail
bindsym $mod+$alt+e exec evolution
bindsym $mod+$left focus left
bindsym $mod+$down focus down

View file

@ -1,4 +1,3 @@
set -g default-terminal tmux-256color
set -g set-titles on
set -g mouse off

View file

@ -1,11 +1,11 @@
-----BEGIN PGP MESSAGE-----
hF4DTouuqIuaNhASAQdAHpW7oJyEYKH7UdYaBAKxV8+u9vCDnXZ+WRA2V3lcxUUw
aqRgnYYndvQIUDVa5jxYSqdUfsB4ED1rrbIeLFBJ0VTVFNU1lhWPmkEmtZ0r2hAX
1MAiAQkCEKwTiIvBotvOssGu4TEs5Z6PzA+yzJXjeTWGwvmp4gVzUqnBLTO6/ZKh
UTjJv6g1EqhwozXPtBiILQT2GzEl40JhaZmvdhWEGIsKqlEHzgzGFpUJXDCDSu+1
DHlIf94DwdsCx/RGu3PWlX9Q5lkOXqgoMtye7LFSUnG5uBLu4YFMSzvPEe0BY+uB
bGnpAL01pKVRnAKexskJ4rO6Br6s7+wdDoqWX6V74dJzsafaHdLI/uo1Khu/+9AK
PXFcg6ZMK5Mr19g5jEAYFak23c+z27+GAE3q1OnFP2JxENyRVQ==
=IqLm
hF4DTouuqIuaNhASAQdAm6gg7hHC4oJZ5caZXI20eV+oPkOc4t7I3J9Gl+8jpxQw
D+yEJ1XgHD67fjfKWZoN1Hy0GiKiPH8JmVyWOWdvwU7KaooHkpBfi5EBjXOA4Uvw
1MAqAQkCEFhTzNVIZGlDyscdM5UOYOftkclEdG9IHzSDZ7ySD8yFPvxMzH2nQFpp
wiyFDXNnGYpuwekxCogCPoWxkU1Gh/1iENH95Ag0O931FiGd7xvlUJL0Horedki1
WS6880ceKYVm08o/ADl61uCmrIgmxeqRWOrOlR1gbWF8TpAghuIvIVbyt7Mwh6He
6BslRy23sue513j2zxrTujheMoRunMQhvEaIhB7MF99WYYXvb2IaXL0B+hycrA+n
RayrysIIXBAVAjX9xCtDqWv2te09po1Y6DSVjWJF6zF8OPY6NM9OHMbRCk0h
=Fc7b
-----END PGP MESSAGE-----

View file

@ -1,33 +1,63 @@
-----BEGIN PGP MESSAGE-----
hF4DTouuqIuaNhASAQdAKS7CgC8DjOi2cg0gi0k427Ev3SnK1mCAGnTAeTDzqzww
Bjvf4f+Iw3Umyl7/fWgBS5hYOOL9PRqWL5tjV7eFdNJO9iI3lx/vTjkSKPfvXqsk
1OoBCQIQgtzQe0hAZOnmeQUZWUHp0ifbqqRYKfb9PzaoBqAWRyOxO6OkX01lHVJL
mRzy49wuwfLbpKz2qsyFpaDoTHpqheykrq/Bs85/nr+2mz60E2mFCj6vR4IEDfBV
yIXOpJzWWzap72nMXRhdQzsqyIPqCeVxH5GCiT+PMxj+rIDU7IM+lWlYTOtd/Dot
SliMW1WIUaUXbXeRMEEHz24okbda/A6kCSD35puqPgG6Cuur3sjAJa1QfmewhDfk
ZRDlUYK9ypraD72jvMCo9ZdOIewCHCMlKaI+p9niYtV31Dlq0e0XOTGOawKs9XHH
OJECRXXa32ucwFBb+o/Kq5DPPdeEWPNuM8xyg50h81cGqbGIFdplv/4LUuAI6c54
+/TqTuu3rBT54qgi5bR9AbwLcS88rfoJiahbvGAcQVB6imkh3ocMS36tzYd1r6gd
6fBmuA6B5pTyNVJ6b2IYTyIfbQ1d+gkBzq8gJoQ4UZB07f2cxFr01Xc2NWz3Lfba
kPqCmWNJItPawbzYvjPF28Du05mizjb5wrRD56+lBLkoVZYU39d3bMX7aqGxYOfp
3Y+yCLm/ISzUI/L2KmDI8O3RIn0IBSi1tylSf4/ZsRGW6Qaxfb2Cg6WfmLDDgGT4
cFuBRSo4J1+YdWq5oOpA/T9CMxSBl2N4UKNxigXU79UjdXTxvg1Zrm2A+xVOPMmG
vD7Dyd+B3a8O7CNcRY0hTFOpWJ897OOxQHqFi0iBdL9lv1UHPT1TFuobPhvNW0dl
zKpLRzk6gy11vlFAfZbSx5m23j7EN4YGQUHB7CDbcdWOl88Uum0VZzfX8n80TD8z
9L5AdSzNGcppuWg9uNiG1Bd9boNI/BHAbMKGIL9FxGyMsq7xCckgGjgTo+RUKjIU
GMH9gahNg/ejFTw13JXm1fm64Mc/grsmnV7i1+dIMDmYvfJm/6p/4IYC3CXNQPD7
t2zbynVgud6e1wYZotz8UqwZocMdEd+MpyeA30iQyH8LunxQ5r9MZ4V45hw0UVJr
64CzIw+0Pr82YOe8WACMyubogp9LnC1aUZZXVM7ZH2Bs4lCQXxsGYRZ4prg6/eVZ
KGTyRdDxdF3o8+ENEGOL034Cxi9Ew9o8IwFRoUxCjk5sYN5TZ028QpTcIsz1E+TU
954ctUuRAb+AnzM+NZbjW5mcevixSe5P3Zj938rHAze9o3Z3mi87kgivJmaah9dH
Xdyus+39ohZzKX+n6OWd0L5VHLIvtgiypqH098kxvSk8RSA0ROxMl+ARgk47/Mor
Hb2b9tp7y70/90kk5ed5TVWi7sPfKDI5ZjLYp7INs0zfidGFLOcmrmda2V/UvOX7
8lt6R/wmMm2P4cR74LLc7Th1wDpXDxCjmmJQryM+hIYc+eQW1RhyzSSG81ehftOu
KjrUXHHzkDToSfhlSziF/Hw/P3WZV8BJUNjmq6tk6/W/xUS4UjLp9eRZLyTj6BE4
3Rvt+PmkiWkmEARCCK9gTr9JBZ+AdqxV/rPLbvRttHy96kdN+Y1penM6KxJZ3OFU
xwnY6kPlISbSj19UNn7ytZW5Jk10RgrTrVtP2iM2eNDSRAKAhsGPML7/UA6XeywF
W3lDulCRWWoo0zVBoTNtvTblw2pgrDFotq2OPU6IPWKQlckrNib3vAj6ZugYCHs1
GSbpQ+F40K49PDyml6txx/Y47Uz+nQ7vlckJ6BQB
=w0KD
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
hMLiEOIoJj8Ug683ihCV0k0O
=9pO0
-----END PGP MESSAGE-----