mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-27 23:41:05 +00:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a570cef49b | ||
| 441ba01455 | |||
| 73a00fcdf0 | |||
| 205ea28e16 | |||
| ade8162660 | |||
| 1745a15acf | |||
| ad08a2956e | |||
| 8d2083be4c | |||
| 87281a436f | |||
| 4ec9444e29 | |||
|
|
95d358ae3d | ||
|
|
cea61a5719 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -7,6 +7,8 @@ Brewfile.lock.json
|
||||
config/fzf
|
||||
config/cheat/cheatsheets/pure-bash-bible/*
|
||||
config/cheat/cheatsheets/tldr/*
|
||||
ssh/local.d/*
|
||||
!ssh/local.d/.gitkeep
|
||||
!.gitkeep
|
||||
.env
|
||||
|
||||
|
||||
4
Brewfile
4
Brewfile
@@ -202,6 +202,10 @@ brew "shfmt"
|
||||
brew "starship"
|
||||
# Version control system designed to be a better CVS
|
||||
brew "subversion"
|
||||
# Feature-rich console based todo list manager
|
||||
brew "task"
|
||||
# Terminal user interface for taskwarrior
|
||||
brew "taskwarrior-tui"
|
||||
# Send macOS User Notifications from the command-line
|
||||
brew "terminal-notifier"
|
||||
# Thin wrapper for Terraform e.g. for locking state
|
||||
|
||||
@@ -17,6 +17,7 @@ return {
|
||||
}
|
||||
},
|
||||
-- { import = "astrocommunity.completion.copilot-lua-cmp" },
|
||||
{ import = "astrocommunity.completion.tabnine-nvim" },
|
||||
{ import = "astrocommunity.bars-and-lines.smartcolumn-nvim" },
|
||||
{
|
||||
"m4xshen/smartcolumn.nvim",
|
||||
@@ -33,6 +34,7 @@ return {
|
||||
position = "bottom"
|
||||
}
|
||||
},
|
||||
{ import = "astrocommunity.editing-support.comment-box-nvim" },
|
||||
{ import = "astrocommunity.editing-support.refactoring-nvim" },
|
||||
{ import = "astrocommunity.editing-support.neogen" },
|
||||
{ import = "astrocommunity.editing-support.nvim-regexplainer" },
|
||||
@@ -45,10 +47,12 @@ return {
|
||||
{ import = "astrocommunity.pack.docker" },
|
||||
{ import = "astrocommunity.pack.go" },
|
||||
{ import = "astrocommunity.pack.html-css" },
|
||||
{ import = "astrocommunity.pack.json" },
|
||||
{ import = "astrocommunity.pack.markdown" },
|
||||
{ import = "astrocommunity.pack.php" },
|
||||
{ import = "astrocommunity.pack.typescript" },
|
||||
{ import = "astrocommunity.pack.vue" },
|
||||
{ import = "astrocommunity.pack.yaml" },
|
||||
{ import = "astrocommunity.project.nvim-spectre" },
|
||||
{ import = "astrocommunity.project.project-nvim" },
|
||||
{ import = "astrocommunity.test.neotest" },
|
||||
|
||||
@@ -11,9 +11,6 @@
|
||||
[pull]
|
||||
rebase = true
|
||||
|
||||
[gpg]
|
||||
format = ssh
|
||||
|
||||
[alias]
|
||||
branchbydate = for-each-ref --count=30 --sort=-committerdate refs/heads/ --format='%(refname:short)'
|
||||
branchcolor = "!for ref in $(git for-each-ref --sort=-committerdate --format=\"%(refname)\" refs/heads/ refs/remotes ); do git log -n1 $ref --pretty=format:\"%Cgreen%cr%Creset %C(yellow)%d%Creset %C(bold blue)<%an>%Creset%n\" | cat ; done | awk '! a[$0]++'"
|
||||
|
||||
Submodule config/nvim updated: 215b560533...8fe945f07a
@@ -42,3 +42,40 @@ data.location=$XDG_DATA_HOME/task/
|
||||
weekstart=monday
|
||||
|
||||
news.version=2.6.0
|
||||
|
||||
default.project=Inbox
|
||||
calendar.details=full
|
||||
calendar.holidays=sparse
|
||||
|
||||
uda.taskwarrior-tui.keyconfig.quit=q
|
||||
uda.taskwarrior-tui.keyconfig.refresh=r
|
||||
uda.taskwarrior-tui.keyconfig.go-to-bottom=G
|
||||
uda.taskwarrior-tui.keyconfig.go-to-top=g
|
||||
uda.taskwarrior-tui.keyconfig.down=j
|
||||
uda.taskwarrior-tui.keyconfig.up=k
|
||||
uda.taskwarrior-tui.keyconfig.page-down=J
|
||||
uda.taskwarrior-tui.keyconfig.page-up=K
|
||||
uda.taskwarrior-tui.keyconfig.delete=x
|
||||
uda.taskwarrior-tui.keyconfig.done=d
|
||||
uda.taskwarrior-tui.keyconfig.start-stop=s
|
||||
uda.taskwarrior-tui.keyconfig.quick-tag=t
|
||||
uda.taskwarrior-tui.keyconfig.undo=u
|
||||
uda.taskwarrior-tui.keyconfig.edit=e
|
||||
uda.taskwarrior-tui.keyconfig.modify=m
|
||||
uda.taskwarrior-tui.keyconfig.shell=!
|
||||
uda.taskwarrior-tui.keyconfig.log=l
|
||||
uda.taskwarrior-tui.keyconfig.add=a
|
||||
uda.taskwarrior-tui.keyconfig.annotate=A
|
||||
uda.taskwarrior-tui.keyconfig.filter=/
|
||||
uda.taskwarrior-tui.keyconfig.zoom=z
|
||||
uda.taskwarrior-tui.keyconfig.context-menu=c
|
||||
uda.taskwarrior-tui.keyconfig.next-tab=.
|
||||
uda.taskwarrior-tui.keyconfig.previous-tab=,
|
||||
|
||||
taskd.certificate=$XDG_DATA_HOME/task/private.certificate.pem
|
||||
taskd.key=$XDG_DATA_HOME/task/private.key.pem
|
||||
taskd.ca=$XDG_DATA_HOME/task/ca.cert.pem
|
||||
taskd.server=inthe.am:53589
|
||||
taskd.credentials=inthe_am/ivuorinen/b99a4970-94fb-4fb8-b9fe-e1a8140dd44d
|
||||
taskd.trust=strict
|
||||
|
||||
|
||||
@@ -21,6 +21,9 @@ set -g @tpm_plugins ' \
|
||||
tmux-plugins/tmux-yank \
|
||||
'
|
||||
|
||||
# Set plugins install dir
|
||||
set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.config/tmux/plugins/'
|
||||
|
||||
set-option -sa terminal-overrides ",xterm*:Tc"
|
||||
|
||||
# Mouse support
|
||||
|
||||
@@ -226,7 +226,7 @@ bind-key -T prefix D choose-client -Z
|
||||
bind-key -T prefix E select-layout -E
|
||||
bind-key -T prefix I run-shell /Users/ivuorinen/.config/tmux/plugins/tpm/bindings/install_plugins
|
||||
bind-key -T prefix L switch-client -l
|
||||
bind-key -T prefix M select-pane -M
|
||||
bind-key -T prefix M run-shell -b /Users/ivuorinen/.tmux/plugins/tmux-notify/scripts/cancel.sh
|
||||
bind-key -T prefix N new-window
|
||||
bind-key -T prefix R run-shell " tmux source-file /Users/ivuorinen/.config/tmux/tmux.conf > /dev/null; tmux display-message 'Sourced /Users/ivuorinen/.config/tmux/tmux.conf!'"
|
||||
bind-key -T prefix S switch-client -l
|
||||
@@ -248,11 +248,11 @@ bind-key -T prefix n next-window
|
||||
bind-key -T prefix o select-pane -t :.+
|
||||
bind-key -T prefix p paste-buffer
|
||||
bind-key -T prefix q display-panes
|
||||
bind-key -T prefix r source-file /Users/ivuorinen/.dotfiles/config/tmux/tmux.conf \; display-message "tmux cfg reloaded!"
|
||||
bind-key -T prefix r source-file /Users/ivuorinen/.config/tmux/tmux.conf \; display-message "tmux cfg reloaded!"
|
||||
bind-key -T prefix s choose-tree -Zs
|
||||
bind-key -T prefix t run-shell "/Users/ivuorinen/.config/tmux/plugins/tmux-sessionist/scripts/join_pane.sh 'join-pane' '-b'"
|
||||
bind-key -T prefix w choose-tree -Zw
|
||||
bind-key -T prefix x confirm-before -p "kill-pane #P? (y/n)" kill-pane
|
||||
bind-key -T prefix x run-shell "tmux split-window -l 10 \"/Users/ivuorinen/.tmux/plugins/tmux-1password/scripts/main.sh '#{pane_id}'\""
|
||||
bind-key -T prefix y run-shell -b /Users/ivuorinen/.config/tmux/plugins/tmux-yank/scripts/copy_line.sh
|
||||
bind-key -T prefix z resize-pane -Z
|
||||
bind-key -T prefix \{ swap-pane -U
|
||||
@@ -269,6 +269,7 @@ bind-key -T prefix M-2 select-layout even-vertical
|
||||
bind-key -T prefix M-3 select-layout main-horizontal
|
||||
bind-key -T prefix M-4 select-layout main-vertical
|
||||
bind-key -T prefix M-5 select-layout tiled
|
||||
bind-key -T prefix M-m run-shell -b "/Users/ivuorinen/.tmux/plugins/tmux-notify/scripts/notify.sh refocus"
|
||||
bind-key -T prefix M-n next-window -a
|
||||
bind-key -T prefix M-o rotate-window -D
|
||||
bind-key -T prefix M-p previous-window -a
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
[include]
|
||||
path = ~/.dotfiles/config/git/shared
|
||||
|
||||
[gpg]
|
||||
format = ssh
|
||||
|
||||
[user]
|
||||
name = Ismo Vuorinen
|
||||
email = ismo.vuorinen@vincit.fi
|
||||
|
||||
149
local/bin/pushover
Executable file
149
local/bin/pushover
Executable file
@@ -0,0 +1,149 @@
|
||||
#!/usr/bin/env sh
|
||||
#
|
||||
# Send Pushover messages from cli
|
||||
# Based on https://github.com/mrusme/dotfiles/blob/master/usr/local/bin/pushover
|
||||
#
|
||||
# Modified by Ismo Vuorinen <https://github.com/ivuorinen> 2023
|
||||
|
||||
__pushover_usage() {
|
||||
printf "pushover <options> <message>\n"
|
||||
printf " -c <callback>\n"
|
||||
printf " -d <device>\n"
|
||||
printf " -D <timestamp>\n"
|
||||
printf " -e <expire>\n"
|
||||
printf " -p <priority>\n"
|
||||
printf " -r <retry>\n"
|
||||
printf " -t <title>\n"
|
||||
printf " -T <TOKEN> (required if not in 'PUSHOVER_TOKEN' env)\n"
|
||||
printf " -s <sound>\n"
|
||||
printf " -u <url>\n"
|
||||
printf " -U <USER> (required if not in 'PUSHOVER_USER' env)\n"
|
||||
printf " -a <url_title>\n"
|
||||
return 1
|
||||
}
|
||||
|
||||
__pushover_opt_field() {
|
||||
field=$1
|
||||
shift
|
||||
value="${*}"
|
||||
if [ -n "${value}" ]; then
|
||||
printf "%s \"%s=%s\"\n" "-F" "$field" "$value"
|
||||
fi
|
||||
}
|
||||
|
||||
__pushover_send_message() {
|
||||
device="${1:-}"
|
||||
|
||||
curl_cmd="\"${CURL}\" -s -S \
|
||||
${CURL_OPTS} \
|
||||
-F \"token=${TOKEN}\" \
|
||||
-F \"user=${USER}\" \
|
||||
-F \"message=${message}\" \
|
||||
$(__pushover_opt_field device "${device}") \
|
||||
$(__pushover_opt_field callback "${callback}") \
|
||||
$(__pushover_opt_field timestamp "${timestamp}") \
|
||||
$(__pushover_opt_field priority "${priority}") \
|
||||
$(__pushover_opt_field retry "${retry}") \
|
||||
$(__pushover_opt_field expire "${expire}") \
|
||||
$(__pushover_opt_field title "${title}") \
|
||||
$(__pushover_opt_field sound "${sound}") \
|
||||
$(__pushover_opt_field url "${url}") \
|
||||
$(__pushover_opt_field url_title "${url_title}") \
|
||||
\"${PUSHOVER_URL}\""
|
||||
|
||||
response="$(eval "${curl_cmd}")"
|
||||
printf "%s\n" "$response"
|
||||
# TODO: Parse response
|
||||
r="${?}"
|
||||
if [ "${r}" -ne 0 ]; then
|
||||
printf "%s: Failed to send message\n" "${0}" >&2
|
||||
fi
|
||||
|
||||
return "${r}"
|
||||
}
|
||||
|
||||
CURL="$(which curl)"
|
||||
PUSHOVER_URL="https://api.pushover.net/1/messages.json"
|
||||
TOKEN=$PUSHOVER_TOKEN
|
||||
USER=$PUSHOVER_USER
|
||||
CURL_OPTS=""
|
||||
devices="${devices} ${device}"
|
||||
optstring="c:d:D:e:f:p:r:t:T:s:u:U:a:h"
|
||||
|
||||
OPTIND=1
|
||||
while getopts ${optstring} c
|
||||
do
|
||||
case ${c} in
|
||||
c)
|
||||
callback="${OPTARG}"
|
||||
;;
|
||||
d)
|
||||
devices="${devices} ${OPTARG}"
|
||||
;;
|
||||
D)
|
||||
timestamp="${OPTARG}"
|
||||
;;
|
||||
e)
|
||||
expire="${OPTARG}"
|
||||
;;
|
||||
p)
|
||||
priority="${OPTARG}"
|
||||
;;
|
||||
r)
|
||||
retry="${OPTARG}"
|
||||
;;
|
||||
t)
|
||||
title="${OPTARG}"
|
||||
;;
|
||||
k)
|
||||
TOKEN="${OPTARG}"
|
||||
;;
|
||||
s)
|
||||
sound="${OPTARG}"
|
||||
;;
|
||||
u)
|
||||
url="${OPTARG}"
|
||||
;;
|
||||
U)
|
||||
USER="${OPTARG}"
|
||||
;;
|
||||
a)
|
||||
url_title="${OPTARG}"
|
||||
;;
|
||||
|
||||
[h\?])
|
||||
__pushover_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND-1))
|
||||
|
||||
if [ "$#" -lt 1 ]; then
|
||||
__pushover_usage
|
||||
exit 1
|
||||
fi
|
||||
message="$*"
|
||||
|
||||
if [ ! -x "${CURL}" ]; then
|
||||
printf "CURL is unset, empty, or does not point to curl executable.\n \
|
||||
This script requires curl!\n" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
devices="$(printf "${devices}" | xargs -n1 | sort -u | uniq)\n"
|
||||
|
||||
if [ -z "${devices}" ]; then
|
||||
__pushover_send_message
|
||||
r=${?}
|
||||
else
|
||||
for device in ${devices}; do
|
||||
__pushover_send_message "${device}"
|
||||
r=${?}
|
||||
if [ "${r}" -ne 0 ]; then
|
||||
break;
|
||||
fi
|
||||
done
|
||||
fi
|
||||
exit "${r}"
|
||||
|
||||
@@ -51,14 +51,15 @@ for d in "$TLDR_TEMP_DIR"/pages/*; do
|
||||
TLDR_FILE="$SECTION_DIR/${FILENAME}"
|
||||
# echo "-> dest: $TLDR_FILE"
|
||||
|
||||
replacable "$FILE" "$TLDR_FILE"
|
||||
override=$?
|
||||
if [ "$override" -ne 1 ]; then
|
||||
cp "$FILE" "$TLDR_FILE" && msg_run "Updated: $TLDR_FILE"
|
||||
# Update the original file for making the replacable value comparable
|
||||
if [ -f "$FILE" ] && [ '---' != "$(head -1 < "$FILE")" ]; then
|
||||
echo -e "---\n$TLDR_SYNTAX\n$TLDR_TAGS\n$TLDR_SOURCE\n---\n$(cat "$FILE")" > "$FILE"
|
||||
fi
|
||||
|
||||
if [ -f "$TLDR_FILE" ] && [ '---' != "$(head -1 < "$TLDR_FILE")" ]; then
|
||||
echo -e "---\n$TLDR_SYNTAX\n$TLDR_TAGS\n$TLDR_SOURCE\n---\n$(cat "$TLDR_FILE")" > "$TLDR_FILE"
|
||||
replacable "$FILE" "$TLDR_FILE"
|
||||
override=$?
|
||||
if [ "$override" -ne 0 ]; then
|
||||
cp "$FILE" "$TLDR_FILE" && msg_run "Updated: $TLDR_FILE"
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
@@ -2,7 +2,10 @@
|
||||
#
|
||||
# Shared bash functions and helpers
|
||||
# that can be sourced to other scripts.
|
||||
#
|
||||
|
||||
# Helper env variables. Use like this: VERBOSE=1 ./script.sh
|
||||
: "${VERBOSE:=0}"
|
||||
|
||||
|
||||
# -- Colors -- #
|
||||
CLR_RED="\033[1;31m"
|
||||
@@ -249,23 +252,34 @@ function replacable()
|
||||
FILE1="$1"
|
||||
FILE2="$2"
|
||||
|
||||
[[ ! -r "$FILE1" ]] && { msg_err "File 1 ($FILE1) does not exist" && return 1; }
|
||||
[[ ! -r "$FILE2" ]] && { msg_err "File 2 ($FILE2) does not exist" && return 1; }
|
||||
[[ ! -r "$FILE1" ]] && {
|
||||
[[ $VERBOSE -eq 1 ]] && msg_err "File 1 ($FILE1) does not exist"
|
||||
return 0;
|
||||
}
|
||||
[[ ! -r "$FILE2" ]] && {
|
||||
[[ $VERBOSE -eq 1 ]] && msg_err "File 2 ($FILE2) does not exist, replacable"
|
||||
return 1;
|
||||
}
|
||||
|
||||
FILE1_HASH=$(get_sha256sum "$FILE1")
|
||||
FILE2_HASH=$(get_sha256sum "$FILE2")
|
||||
|
||||
[[ $FILE1_HASH = "" ]] && {
|
||||
msg_err "Could not get hash for file 1 ($FILE1)" && return 1;
|
||||
[[ $VERBOSE -eq 1 ]] && msg_err "Could not get hash for file 1 ($FILE1)"
|
||||
return 0;
|
||||
}
|
||||
[[ $FILE2_HASH = "" ]] && {
|
||||
msg_err "Could not get hash for file 2 ($FILE2)" && return 1;
|
||||
[[ $VERBOSE -eq 1 ]] && msg_err "Could not get hash for file 2 ($FILE2), replacable"
|
||||
return 1;
|
||||
}
|
||||
|
||||
[[ "$FILE1_HASH" == "$FILE2_HASH" ]] && {
|
||||
msg_ok "Files match, not replacable" && return 0;
|
||||
[[ $VERBOSE -eq 1 ]] && msg_ok "Files match, not replacable: $FILE1"
|
||||
return 0;
|
||||
}
|
||||
|
||||
[[ $VERBOSE -eq 1 ]] && msg_warn "Files do not match ($FILE1_HASH != $FILE2_HASH), replacable"
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
Host github.com
|
||||
User git
|
||||
|
||||
Host lakka
|
||||
User viir
|
||||
HostName lakka.kapsi.fi
|
||||
IdentityFile ~/.ssh/id_rsa
|
||||
Include shared.d/*
|
||||
Include local.d/*
|
||||
|
||||
Host *
|
||||
# IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
|
||||
|
||||
0
ssh/local.d/.gitkeep
Normal file
0
ssh/local.d/.gitkeep
Normal file
3
ssh/shared.d/github
Normal file
3
ssh/shared.d/github
Normal file
@@ -0,0 +1,3 @@
|
||||
Host github.com
|
||||
User git
|
||||
|
||||
5
ssh/shared.d/lakka
Normal file
5
ssh/shared.d/lakka
Normal file
@@ -0,0 +1,5 @@
|
||||
Host lakka
|
||||
User viir
|
||||
HostName lakka.kapsi.fi
|
||||
IdentityFile ~/.ssh/id_rsa
|
||||
|
||||
Reference in New Issue
Block a user