Merge branch 'dev' of ssh://git.lyte.dev:2222/lytedev/dotfiles into dev
This commit is contained in:
commit
84abbe0339
63 changed files with 361 additions and 215 deletions
|
@ -1,11 +1,11 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
NUM_DESKTOPS="$(xrq bspwm.num_desktops)"
|
||||
NUM_DESKTOPS="$(xrq bspwm.num_desktops || echo '10')"
|
||||
REVERSE_DESKTOP_ORDERING="$(xrq bspwm.reverse_desktop_ordering)"
|
||||
REVERSE_MONITOR_DESKTOPS="$(xrq bspwm.reverse_monitor_desktops)"
|
||||
BSPWM_MONITORS=$(bspc query -M)
|
||||
MONITOR_COUNT=$(echo "$BSPWM_MONITORS" | wc -w | awk '{ printf $1 }')
|
||||
PER_MONITOR=$((NUM_DESKTOPS / MONITOR_COUNT))
|
||||
PER_MONITOR="$(xrq bspwm.num_desktops_per_monitor || echo $((NUM_DESKTOPS / MONITOR_COUNT)))"
|
||||
DESKTOPS=$(seq "$NUM_DESKTOPS")
|
||||
|
||||
[ "$REVERSE_MONITOR_DESKTOPS" -eq 1 ] && BSPWM_MONITORS=$(echo "$BSPWM_MONITORS" | tac)
|
||||
|
@ -26,11 +26,14 @@ bspc config remove_disabled_monitors true
|
|||
bspc rule -a "*" split_dir=right
|
||||
|
||||
i=1
|
||||
total_screens=0
|
||||
for mon in $BSPWM_MONITORS; do
|
||||
max=$((i + PER_MONITOR - 1))
|
||||
screens=""
|
||||
for j in $(seq $i $max); do
|
||||
screens="${screens}${j} "
|
||||
[[ "$total_screens" -ge "$NUM_DESKTOPS" ]] || screens="${screens}${j} "
|
||||
total_screens=$((total_screens+1))
|
||||
echo $NUM_DESKTOPS $total_screens $screens
|
||||
done
|
||||
bspc monitor "$mon" -d $screens
|
||||
i=$((max + 1))
|
||||
|
|
|
@ -1,14 +1,2 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
feh --no-fehbg --bg-fill \
|
||||
"${HOME}/.wallpaper" \
|
||||
"${HOME}/.wallpaper2" \
|
||||
"${HOME}/.wallpaper3" \
|
||||
"${HOME}/.wallpaper4" \
|
||||
"${HOME}/.wallpaper5" \
|
||||
"${HOME}/.wallpaper6" \
|
||||
"${HOME}/.wallpaper7" \
|
||||
"${HOME}/.wallpaper8" \
|
||||
"${HOME}/.wallpaper9" \
|
||||
"${HOME}/.wallpaper_last" \
|
||||
2>/dev/null
|
||||
#!/bin/sh
|
||||
feh --no-fehbg --bg-scale '/home/daniel/.home/.wallpaper'
|
||||
|
|
|
@ -2,3 +2,12 @@ max-visible=5
|
|||
default-timeout=30000
|
||||
background-color=#111111
|
||||
border-color=#666666
|
||||
font=iosevka-lyte 11
|
||||
progress-color=source #33333388
|
||||
# format="<b>%s</b>
|
||||
default-timeout=15000
|
||||
|
||||
[urgency="high"]
|
||||
background-color=#f92672
|
||||
text-color=#111111
|
||||
border-color=#f92672
|
||||
|
|
|
@ -1,26 +1,43 @@
|
|||
set $mod Mod4
|
||||
# TODO:
|
||||
#
|
||||
# + Super+r should rotate the selected group of windows.
|
||||
# + Super+Control+{1-9} should control the size of the preselect space.
|
||||
# + Super+Shift+b should balance the size of all selected nodes.
|
||||
|
||||
set $default_gap 20
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
|
||||
set $term kitty
|
||||
# TODO: launcher for wayland
|
||||
# set $menu app-launcher
|
||||
set $menu dmenu_path | dmenu | xargs swaymsg exec --
|
||||
set $term term
|
||||
set $fterm floating-term
|
||||
set $menu app-launcher
|
||||
|
||||
output * bg $HOME/.wallpaper fill
|
||||
|
||||
focus_wrapping no
|
||||
gaps inner $default_gap
|
||||
smart_borders on|no_gaps
|
||||
hide_edge_borders smart_no_gaps
|
||||
set $mod Mod4
|
||||
|
||||
bindsym Control+Space exec makoctl dismiss
|
||||
# bindsym $mod+Control+Space exec makoctl invoke
|
||||
bindsym $mod+Return exec $term
|
||||
bindsym $mod+shift+Return exec $fterm
|
||||
bindsym $mod+t exec $term
|
||||
bindsym $mod+Alt+Return exec urxvt
|
||||
bindsym $mod+Shift+Alt+Return exec kitty
|
||||
bindsym $mod+c kill
|
||||
bindsym $mod+Shift+c kill # TODO: kill -9
|
||||
bindsym $mod+Space exec $menu
|
||||
bindsym $mod+Shift+r reload
|
||||
bindsym $mod+Control+Escape exit
|
||||
bindsym $mod+Shift+e exit
|
||||
bindsym $mod+Shift+p exec pass-chooser
|
||||
bindsym $mod+Control+j split v
|
||||
bindsym $mod+Control+l split h
|
||||
bindsym $mod+Control+f focus mode_toggle
|
||||
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
|
@ -74,8 +91,12 @@ bindsym $mod+e layout toggle split
|
|||
|
||||
bindsym $mod+Shift+f fullscreen
|
||||
bindsym $mod+f floating toggle
|
||||
bindsym $mod+s floating disable
|
||||
bindsym $mod+Alt+f focus mode_toggle
|
||||
bindsym $mod+p focus parent
|
||||
bindsym $mod+period focus child
|
||||
bindsym $mod+comma focus child
|
||||
bindsym $mod+tab workspace back_and_forth
|
||||
|
||||
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
|
||||
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
|
||||
|
@ -89,8 +110,14 @@ bindsym XF86AudioPrev exec playerctl previous
|
|||
|
||||
bindsym $mod+Shift+v exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
bindsym $mod+minus scratchpad show
|
||||
bindsym $mod+minus gaps inner current minus 5
|
||||
bindsym $mod+plus gaps inner current plus 5
|
||||
bindsym $mod+Control+Alt+h gaps horizontal current minus 5
|
||||
bindsym $mod+Control+Alt+l gaps horizontal current plus 5
|
||||
bindsym $mod+Control+Alt+j gaps vertical current minus 5
|
||||
bindsym $mod+Control+Alt+k gaps vertical current plus 5
|
||||
# TODO: this should also reset the horizontal and vertical gaps?
|
||||
bindsym $mod+Control+equal gaps inner current set $default_gap
|
||||
|
||||
bindsym $mod+Control+Shift+l exec swaylock
|
||||
|
||||
|
@ -109,13 +136,13 @@ mode "resize" {
|
|||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
default_border none
|
||||
for_window [app_id="^.*"] border pixel 5
|
||||
for_window [class="^.*"] border pixel 5
|
||||
default_border pixel 5
|
||||
for_window [app_id="floating_terminal"] floating enable
|
||||
for_window [class="floating_terminal"] floating enable
|
||||
for_window [class=".*"] layout splith
|
||||
|
||||
# bindsym $mod+r mode "resize"
|
||||
|
||||
# man 5 sway-bar
|
||||
bar {
|
||||
swaybar_command waybar
|
||||
}
|
||||
|
@ -131,6 +158,9 @@ client.focused #66d9ef #66d9ef #66d9ef #66d9ef #66d9ef
|
|||
client.focused_inactive #111111 #111111 #ffffff #111111 #111111
|
||||
client.unfocused #111111 #111111 #ffffff #111111 #111111
|
||||
|
||||
exec_always makoctl reload
|
||||
exec_always notify-send -a "Sway" -i ~/.wallpaper "Sway configuration loaded."
|
||||
|
||||
include $ENV_PATH/sway/config.d/*
|
||||
|
||||
exec mako
|
||||
|
|
|
@ -260,4 +260,7 @@ super + Escape
|
|||
pkill -USR1 -x sxhkd
|
||||
|
||||
super + ctrl + c
|
||||
bspc rule -a '*' -o state=floating && urxvt --geometry 64x9 -e sh -c "cal -n 3 && bash"
|
||||
bspc rule -a '*' -o state=floating && kitty -o remember_window_size=no -o initial_window_width=66c -o initial_window_height=10c sh -c "cal -n 3 && printf 'Press [ENTER] to close.' && read"
|
||||
|
||||
super + ctrl + p
|
||||
pass-chooser
|
||||
|
|
|
@ -17,18 +17,8 @@ window#waybar.hidden {
|
|||
opacity: 0.2;
|
||||
}
|
||||
|
||||
window#waybar.termite {
|
||||
background-color: #3F3F3F;
|
||||
}
|
||||
|
||||
window#waybar.chromium {
|
||||
background-color: #000000;
|
||||
border: none;
|
||||
}
|
||||
|
||||
window#waybar.empty {
|
||||
color: #666666;
|
||||
background-color: #111111;
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
|
@ -44,10 +34,20 @@ window#waybar.empty {
|
|||
*/
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
#workspaces button.visible {
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
background-color: #66d9ef;
|
||||
color: #111111;
|
||||
}
|
||||
|
||||
#workspaces button.empty {
|
||||
color: #666666;
|
||||
/* background-color: #111111; */
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env sh
|
||||
#!/usr/bin/env bash
|
||||
|
||||
[ -z "$XDG_CONFIG_HOME" ] && export XDG_CONFIG_HOME="$HOME/.config"
|
||||
[ -z "$DOTFILES_PATH" ] && export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
|
||||
|
@ -9,7 +9,7 @@
|
|||
[ -f "$HOME/.xmodmap" ] && xmodmap "$HOME/.xmodmap"
|
||||
has_command libinput-gestures-setup && libinput-gestures-setup start
|
||||
has_command autorandr && autorandr -c
|
||||
has_command redshift && redshift -r -l 39.1:-94.6 -t 6500K:3000K &
|
||||
# has_command redshift && redshift -r -l 39.1:-94.6 -t 6500K:3000K &
|
||||
has_command kdeconnect-indicator && kdeconnect-indicator &
|
||||
|
||||
has_command gnome-keyring-daemon && eval "$(gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)"
|
||||
|
@ -17,4 +17,4 @@ export SSH_AUTH_SOCK
|
|||
|
||||
xset r rate 250 80 & # keyrepeat
|
||||
|
||||
. maybe_source_env_file x/profile
|
||||
source maybe_source_env_file x/profile
|
||||
|
|
|
@ -8,7 +8,7 @@ hide_kernel_threads=1
|
|||
hide_userland_threads=1
|
||||
shadow_other_users=0
|
||||
show_thread_names=0
|
||||
show_program_path=1
|
||||
show_program_path=0
|
||||
highlight_base_name=1
|
||||
highlight_megabytes=1
|
||||
highlight_threads=1
|
||||
|
@ -24,4 +24,3 @@ left_meters=LeftCPUs2 Memory Swap
|
|||
left_meter_modes=1 1 1
|
||||
right_meters=RightCPUs2 Tasks LoadAverage Uptime
|
||||
right_meter_modes=1 2 2 2
|
||||
vim_mode=1
|
||||
|
|
|
@ -83,3 +83,9 @@ color15 #f9f8f5
|
|||
#
|
||||
# color18 #cccccc
|
||||
#
|
||||
|
||||
color18 #333333
|
||||
kitty_mod ctrl+shift+alt
|
||||
open_url_modifiers ctrl
|
||||
wheel_scroll_multiplier 5.0
|
||||
touch_scroll_multiplier 5.0
|
||||
|
|
47
apps/mutt/rc
47
apps/mutt/rc
|
@ -1,33 +1,15 @@
|
|||
# set imap_user = "wraithx2@gmail.com"
|
||||
# set imap_pass = "`pass google | head -n 1`"
|
||||
set realname = "Daniel Flanagan"
|
||||
set from = "daniel@lytedev.io"
|
||||
set from = "Daniel Flanagan <daniel@lyte.dev>"
|
||||
set use_from = yes
|
||||
set envelope_from = yes
|
||||
set edit_headers = yes
|
||||
|
||||
set folder="~/../mail"
|
||||
set sendmail="/usr/bin/esmtp"
|
||||
set sidebar_visible
|
||||
set sidebar_format = "%B%?F? [%F]?%* %?N?%N/?%S"
|
||||
set mail_check_stats
|
||||
|
||||
set smtp_url = 'smtps://wraithx2@gmail.com@smtp.gmail.com:465/'
|
||||
set smtp_pass = `pass google-app-password | head -n 1`
|
||||
set imap_user = 'wraithx2@gmail.com'
|
||||
set imap_pass = `pass google-app-password | head -n 1`
|
||||
|
||||
set mbox="imaps://imap.gmail.com/[Gmail]/All Mail"
|
||||
|
||||
set ssl_force_tls = yes
|
||||
set folder = imaps://imap.gmail.com/
|
||||
set spoolfile = +INBOX
|
||||
# set record = "+[Gmail]/Sent Mail"
|
||||
set postponed = "+[Gmail]/Drafts"
|
||||
set editor = "nvim"
|
||||
set timeout = 30
|
||||
|
||||
mailboxes =INBOX "=[Gmail]/All Mail" =[Gmail]/Sent\ Mail =[Gmail]/Drafts =[Gmail]/Spam =[Gmail]/Trash
|
||||
|
||||
set sort=reverse-date
|
||||
|
||||
bind index,pager \CD sync-mailbox
|
||||
bind index,pager \CP sidebar-prev
|
||||
bind index,pager \CN sidebar-next
|
||||
|
@ -37,8 +19,6 @@ bind index,pager \CB sidebar-toggle-visible
|
|||
bind pager g top
|
||||
bind pager G bottom
|
||||
|
||||
# bind pager j top
|
||||
# bind pager j top
|
||||
bind pager \Cu half-up
|
||||
bind pager \Cd half-down
|
||||
bind pager k half-up
|
||||
|
@ -51,25 +31,6 @@ bind attach,index G last-entry
|
|||
|
||||
set header_cache = "~/.cache/mutt/headers"
|
||||
set message_cachedir = "~/.cache/mutt/bodies"
|
||||
|
||||
macro index,pager A s><return>y
|
||||
|
||||
# C-R to get mail
|
||||
bind index \CR imap-fetch-mail
|
||||
|
||||
# bind index g noop
|
||||
# macro index ga "<change-folder>=[Gmail]/All Mail<enter>" "Go to all mail"
|
||||
# macro index gd "<change-folder>=[Gmail]/Drafts<enter>" "Go to drafts"
|
||||
# macro index gi "<change-folder>=INBOX<enter>" "Go to inbox"
|
||||
# macro index gs "<change-folder>=[Gmail]/Starred<enter>" "Go to starred messages"
|
||||
# macro index gt "<change-folder>=[Gmail]/Trash<enter>" "Go to trash"
|
||||
# macro index,pager d "<save-message>=[Gmail]/Trash<enter><enter>" "Trash"
|
||||
# macro index,pager y "<save-message>=[Gmail]/All Mail<enter><enter>" "Archive"
|
||||
|
||||
set record=""
|
||||
|
||||
# bulk operations
|
||||
# T - tag messages matching... [type in regex]
|
||||
# ; - perform command on tagged messages
|
||||
# <command> - A to archive!
|
||||
|
||||
|
|
|
@ -88,11 +88,12 @@ Plug 'sheerun/vim-polyglot' " vim plugin loa
|
|||
Plug 'leafo/moonscript-vim', {'for': ['moon', 'moonscript']} " moonscript language
|
||||
Plug 'OmniSharp/omnisharp-vim', {'for': ['cs']} " C# language
|
||||
Plug 'neoclide/coc.nvim', {'branch': 'release'} " language server interface
|
||||
Plug 'JakeBecker/elixir-ls', {'for': ['elixir', 'eelixir'], 'do': { -> g:elixirls.compile() }}
|
||||
Plug 'elixir-lsp/elixir-ls', {'for': ['elixir', 'eelixir'], 'do': { -> g:elixirls.compile() }}
|
||||
Plug 'tpope/vim-dadbod' " vim
|
||||
Plug 'lytedev/elm-vim', {'for': ['elm']} " elm lang
|
||||
Plug 'google/vim-jsonnet', {'for': ['jsonnet', 'libsonnet']} " jsonnet
|
||||
Plug 'sirtaj/vim-openscad', {'for': ['scad']} " openscad
|
||||
Plug 'jjo/vim-cue'
|
||||
Plug 'chrisbra/csv.vim'
|
||||
Plug 'calviken/vim-gdscript3', {'for': ['gdscript']} " godot scripts
|
||||
" Plug 'ssh://git@git.lyte.dev:2222/lytedev/vim-lytlang.git'
|
||||
|
|
|
@ -126,6 +126,7 @@ alias pbcopy="clip"
|
|||
alias pt="htop -t" # experimental htop tree-view-by-default
|
||||
alias resrc="source \$HOME/.bashrc"
|
||||
alias redshift="redshift -r -l 39.0997:-94.5786 -t 6500K:2500K"
|
||||
alias noredshift="killall redshift; redshift -P -O 5700"
|
||||
alias gpmdpe="electron --app=/usr/share/gpmdp/resources/app.asar"
|
||||
alias t="task"
|
||||
alias sc="sc-im"
|
||||
|
|
|
@ -26,7 +26,7 @@ export ERL_AFLAGS="-kernel shell_history enabled -kernel shell_history_file_byte
|
|||
has_command fd && export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
|
||||
export LS_COLORS='ow=01;36;40'
|
||||
export LESS="-x2" # less tab size of 2 spaces
|
||||
export TERMINAL="urxvtc"
|
||||
export TERMINAL="kitty"
|
||||
export BROWSER="firefox-developer-edition"
|
||||
export HISTFILESIZE="10000000" # "unlimited" history
|
||||
export HISTSIZE="10000000" # "unlimited" history
|
||||
|
@ -59,12 +59,10 @@ if [ "$PWD" = "$HOME" ] || [ "$PWD" = "$NICE_HOME" ]; then
|
|||
cd "$NICE_HOME" || cd || return
|
||||
fi
|
||||
|
||||
[ -f "$HOME/.fzf.bash" ] && . "$HOME/.fzf.bash"
|
||||
# if [[ -d "$HOME/.asdf/" ]] && [[ -f "$HOME/.asdf/asdf.sh" ]]; then
|
||||
# . "$HOME/.asdf/asdf.sh"
|
||||
# elif [[ -d /opt/asdf-vm/ ]] && [[ -f /opt/asdf-vm/asdf.sh ]]; then
|
||||
# . "/opt/asdf-vm/asdf.sh"
|
||||
# fi
|
||||
|
||||
if [[ -d "$HOME/.asdf/" ]] && [[ -f "$HOME/.asdf/asdf.sh" ]]; then
|
||||
. "$HOME/.asdf/asdf.sh"
|
||||
elif [[ -d /opt/asdf-vm/ ]] && [[ -f /opt/asdf-vm/asdf.sh ]]; then
|
||||
. "/opt/asdf-vm/asdf.sh"
|
||||
fi
|
||||
|
||||
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
|
||||
# [ -f ~/.fzf.bash ] && source ~/.fzf.bash
|
||||
|
|
|
@ -91,7 +91,7 @@ alias ......... "d ../../../../../../../.."
|
|||
# tmux aliases
|
||||
# TODO: see if this can be worked around?
|
||||
alias tmnew "tmux new -s"
|
||||
alias tmls "tmux list-sessions"
|
||||
alias tmls "tmux list-sessions | rg --color never -o '^(.*?):.*?\(.*?\)(.*)\$' -r '\$1\$2'"
|
||||
alias tmatt "tmux attach -t"
|
||||
alias tu "tmux attach -t utils || tmux new -s utils"
|
||||
alias tdf "tmux attach -t dotfiles || tmux new -s dotfiles -c $DOTFILES_PATH"
|
||||
|
@ -154,6 +154,7 @@ alias pbcopy "clip"
|
|||
alias pt "htop -t" # experimental htop tree-view-by-default
|
||||
alias resrc "source $XDG_CONFIG_HOME/fish/config.fish"
|
||||
alias redshift "redshift -r -l 39.0997:-94.5786 -t 6500K:2500K"
|
||||
alias noredshift "killall redshift; redshift -P -O 5700"
|
||||
alias gpmdpe "electron --app=/usr/share/gpmdp/resources/app.asar"
|
||||
alias t "task"
|
||||
alias sc "sc-im"
|
||||
|
@ -181,13 +182,12 @@ alias mail "mutt"
|
|||
# fsw aliases
|
||||
alias fsw-mix-test 'fsw "mix test" ./**/*.{ex,exs,erl,hrl,xrl,yrl}'
|
||||
|
||||
function field
|
||||
not scount $argv && echo "No field index provided"; exit 1
|
||||
awk "{print \$$argv[1]}"
|
||||
end
|
||||
|
||||
# weechat aliases
|
||||
function chat
|
||||
set -l pass (pass config/weechat-passphrase | head -n 1)
|
||||
env WEECHAT_PASSPHRASE=$pass weechat
|
||||
end
|
||||
|
||||
# grep aliases
|
||||
alias rg "rg --text"
|
||||
alias grep "rg"
|
||||
|
|
|
@ -4,8 +4,6 @@ set -Ux XDG_CONFIG_HOME $HOME/.config
|
|||
set -Ux DOTFILES_PATH $XDG_CONFIG_HOME/dotfiles
|
||||
set -Ux ENV_PATH $HOME/.env
|
||||
|
||||
function has_command; command -v $argv[1] 2>&1 >/dev/null; end
|
||||
|
||||
source $DOTFILES_PATH/apps/shell/fish/paths.fish
|
||||
|
||||
status --is-interactive || exit
|
||||
|
@ -60,3 +58,10 @@ for cf in config.fish .hidden/config.fish
|
|||
end
|
||||
|
||||
mkdir -p $NOTES_PATH $USER_LOGS_PATH $SCROTS_PATH
|
||||
|
||||
# start a tmux session by default if possible and we're not already in
|
||||
# a terminal multiplexer
|
||||
if has_command tmux && string match -v -q '*tmux*' $TERM && string match -v -q '*screen*' $TERM
|
||||
tmux attach -t default || tmux new -s default
|
||||
end
|
||||
|
||||
|
|
|
@ -15,14 +15,28 @@ function preprocess_pwd
|
|||
end
|
||||
|
||||
function fish_prompt
|
||||
if test $status -eq 0
|
||||
set_color blue
|
||||
set last_cmd_status $status
|
||||
if test (id -u) -eq 0
|
||||
if test $last_cmd_status -eq 0
|
||||
set_color -b blue black
|
||||
else
|
||||
set_color -b red black
|
||||
end
|
||||
printf " SUDO $USER@$hostname "
|
||||
else
|
||||
set_color red
|
||||
if test $last_cmd_status -eq 0
|
||||
set_color blue
|
||||
else
|
||||
set_color red
|
||||
end
|
||||
printf "$USER@$hostname"
|
||||
end
|
||||
printf $USER"@"$hostname" "
|
||||
set_color normal
|
||||
printf " "
|
||||
set_color magenta
|
||||
printf (preprocess_pwd)" "
|
||||
printf (preprocess_pwd)""
|
||||
set_color normal
|
||||
printf " "
|
||||
end
|
||||
|
||||
function fish_mode_prompt; end
|
||||
|
|
|
@ -63,7 +63,7 @@ set -g status-left-length 200
|
|||
set -g status-left "#[fg=colour7]#(~/.config/dotfiles/bin/tmux-session-list #S)"
|
||||
set -g message-style "fg=colour7 bg=colour18"
|
||||
|
||||
bind-key O display-message "#(tmux-save-buffer #S)"
|
||||
bind-key O display-message "#(~/.config/dotfiles/bin/tmux-save-buffer #S)"
|
||||
|
||||
# pane split line colors
|
||||
set -g pane-active-border-style bg=black,fg=blue
|
||||
|
@ -97,7 +97,7 @@ bind-key u capture-pane \;\
|
|||
is_vim="ps -o state= -o comm= -t \"#{pane_tty}\" \
|
||||
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
||||
bind-key -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
|
||||
bind-key -Tcopy-mode-vi "C-h" send -X "cancel select-pane -L"
|
||||
bind-key -T copy-mode-vi "C-h" send -X "cancel select-pane -L"
|
||||
bind-key -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
|
||||
bind-key -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
|
||||
bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
|
||||
|
@ -105,7 +105,8 @@ bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
|
|||
# bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
|
||||
|
||||
# YANKING
|
||||
bind-key -Tcopy-mode-vi "y" send -X copy-selection
|
||||
# bind-key -T copy-mode-vi "y" send -X copy-selection
|
||||
bind-key -T copy-mode-vi "y" send-keys -X copy-pipe-and-cancel -X 'clip'
|
||||
|
||||
set-environment -g TMUX_PLUGIN_MANAGER_PATH "~/.config/tmux/plugins/"
|
||||
|
||||
|
@ -131,7 +132,10 @@ set -g @plugin "christoomey/vim-tmux-navigator"
|
|||
set -g @continuum-restore "on"
|
||||
|
||||
# let continuum startup on boot
|
||||
set -g @continuum-boot "on"
|
||||
# NOTE: disabled this due to it starting up before sway socket is up and then
|
||||
# sway commands do not work from within tmux
|
||||
# TODO: maybe sway (or any wm) can start continuum?
|
||||
# set -g @continuum-boot "on"
|
||||
|
||||
# bindings for tmux-resurrect
|
||||
set -g @resurrect-save "C-v"
|
||||
|
@ -155,3 +159,5 @@ run "~/.config/tmux/plugins/tpm/tpm"
|
|||
# refresh-client -S
|
||||
|
||||
unbind-key C-p
|
||||
|
||||
set -g @resurrect-hook-pre-restore-pane-processes 'tmux switch-client -n && tmux kill-session -t 0'
|
||||
|
|
3
bin/N
3
bin/N
|
@ -1,4 +1,3 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
fn="${1}"; shift
|
||||
nf "${fn}.md" $*
|
||||
fn="${1}"; shift; nf "${fn}.md" "$@"
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
rofi -combi-modi run,window -show combi -modi combi -sorting-method fzf --sort "$@"
|
||||
if is_wayland; then
|
||||
floating-term sh -c "launch | xargs swaymsg exec --"
|
||||
else
|
||||
rofi -combi-modi run,window -show combi -modi combi -sorting-method fzf --sort "$@"
|
||||
fi
|
||||
|
|
11
bin/at
Executable file
11
bin/at
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
[[ -z "$1" ]] && { echo "No argument provided." >&2 ; exit 1; }
|
||||
|
||||
d="$(date -d "${@}" +%s)"
|
||||
while [[ "$d" -ge "$(date +%s)" ]]; do
|
||||
_dt=$((d - $(date +%s)))
|
||||
days=$((_dt / 86400))
|
||||
echo -ne "\rTime Remaining: ${days}d $(date -u --date @$((_dt)) +%H:%M:%S) ";
|
||||
sleep 0.1
|
||||
done
|
6
bin/b
6
bin/b
|
@ -4,11 +4,11 @@ bbin="bible" # npm i -g bible
|
|||
pbin="less"
|
||||
|
||||
# bible args
|
||||
bargs=""
|
||||
bargs=("")
|
||||
|
||||
# pager args
|
||||
pargs="-R"
|
||||
|
||||
[ "$1" = "s" ] && bargs="$bargs --search" && shift
|
||||
[[ $1 = s ]] && { bargs+=("--search"); shift; }
|
||||
|
||||
"${bbin}" $bargs "$*" | "${pbin}" $pargs
|
||||
"${bbin}" "${bargs[@]}" "$*" | "${pbin}" $pargs
|
||||
|
|
2
bin/cdp
2
bin/cdp
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# TODO: needs fixing...?
|
||||
cd "$(dirname "$(fzf)")"
|
||||
cd "$(dirname "$(fzf)")" || exit 1
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
if [[ $1 = t ]] || [[ $1 = tcp ]] || \
|
||||
[[ $1 = T ]] || [[ $1 = TCP ]]; then
|
||||
echo "TCP is the default. You don't need to specify it."
|
||||
echo "TCP is the default. You don't need to specify it." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -10,8 +10,8 @@ if [[ $1 = u ]] || [[ $1 = udp ]] || \
|
|||
[[ $1 = U ]] || [[ $1 = UDP ]]; then
|
||||
shift
|
||||
set -x
|
||||
sudo nmap -sU $1 -p $2
|
||||
sudo nmap -sU "$1" -p "$2"
|
||||
else
|
||||
set -x
|
||||
nmap $1 -p $2
|
||||
nmap "$1" -p "$2"
|
||||
fi
|
||||
|
|
|
@ -49,23 +49,26 @@ fi
|
|||
|
||||
# main function
|
||||
check_domain() {
|
||||
local tmp
|
||||
local domain
|
||||
|
||||
if [ "$#" == "0" ]; then
|
||||
echo "No domain specified."
|
||||
return
|
||||
fi
|
||||
|
||||
local domain="$1"
|
||||
domain="$1"
|
||||
|
||||
# create a unique temporary file
|
||||
local tmp=$(mktemp "${domain}_XXX")
|
||||
tmp=$(mktemp "${domain}_XXX")
|
||||
|
||||
# dump whois output into temp file
|
||||
whois "$domain" > "$tmp" 2>&1
|
||||
|
||||
# check contents and output appropriately
|
||||
if egrep -q "$AVAIL_REGEX" "$tmp" > /dev/null 2>&1; then
|
||||
if grep -E -q "$AVAIL_REGEX" "$tmp" > /dev/null 2>&1; then
|
||||
echo -e "$COLOR_GREEN$domain / probably available$COLOR_RESET"
|
||||
elif egrep -q "$TIMEOUT_REGEX" "$tmp" > /dev/null 2>&1; then
|
||||
elif grep -E -q "$TIMEOUT_REGEX" "$tmp" > /dev/null 2>&1; then
|
||||
echo -e "$COLOR_YELLOW$domain / timed out$COLOR_RESET"
|
||||
else
|
||||
echo -e "$COLOR_RED$domain / unavailable$COLOR_RESET"
|
||||
|
@ -79,7 +82,7 @@ check_domain() {
|
|||
# concurrently
|
||||
elements=${#DOMAINS[@]}
|
||||
while (( "$#" )); do
|
||||
for (( i=0;i<${elements};i++ )); do
|
||||
for (( i=0;i<elements;i++ )); do
|
||||
check_domain "$1${DOMAINS[${i}]}" &
|
||||
done
|
||||
shift
|
||||
|
|
16
bin/clip
16
bin/clip
|
@ -1,13 +1,11 @@
|
|||
#!/usr/bin/env sh
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# TODO: detect MIME type?
|
||||
# can a `clip-once` script exist building on this?
|
||||
# wl-copy `-o`, xclip `-l 1`?
|
||||
|
||||
if is_wayland; then
|
||||
# echo "Clip: YES. THIS IS WAYLAND SPEAKING." >&2
|
||||
sed 's/^\s+//g' | wl-copy "$@"
|
||||
echo "Your trimmed input was stored in all clipboards."
|
||||
wl-copy -n "$@"
|
||||
else
|
||||
xclip -selection primary
|
||||
xclip -selection primary -out | xclip -selection clipboard
|
||||
xclip -selection primary -out | xclip -selection secondary
|
||||
echo "Your input was stored in all clipboards."
|
||||
sleep 5 && killall xclip > /dev/null 2>&1 &
|
||||
xclip -i -sel c "$@"
|
||||
fi
|
||||
|
|
13
bin/clipshot
13
bin/clipshot
|
@ -5,11 +5,12 @@ if is_wayland; then
|
|||
else
|
||||
pkill unclutter
|
||||
sleep 0.1
|
||||
import ~/.ss.png
|
||||
chmod 700 ~/.ss.png
|
||||
< ~/.ss.png xclip -t image/png -i -selection clipboard
|
||||
< ~/.ss.png xclip -t image/png -i -selection primary
|
||||
< ~/.ss.png xclip -t image/png -i -selection secondary
|
||||
< ~/.ss.png xclip -t image/png -i -selection buffer-cut
|
||||
fn="$SCROTS_PATH/clipshot_$(date +"%Y-%m-%d_%H-%M-%S").png"
|
||||
import "$fn"
|
||||
chmod 700 "$fn"
|
||||
< "$fn" xclip -t image/png -i -selection clipboard
|
||||
< "$fn" xclip -t image/png -i -selection primary
|
||||
< "$fn" xclip -t image/png -i -selection secondary
|
||||
< "$fn" xclip -t image/png -i -selection buffer-cut
|
||||
unclutter &
|
||||
fi
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
d=$((`date +%s` + $1));
|
||||
echo "Countdown started $(date)"
|
||||
[[ -z "${@}" ]] && { echo "No argument provided." >&2 ; exit 1; }
|
||||
|
||||
while [ "$d" -ge $(date +%s) ]; do
|
||||
_dt=$(($d - `date +%s`))
|
||||
d=$(($(date +%s) + $1));
|
||||
echo "Countdown started at $(date)"
|
||||
|
||||
while [[ "$d" -ge "$(date +%s)" ]]; do
|
||||
_dt=$((d - $(date +%s)))
|
||||
days=$((_dt / 86400))
|
||||
echo -ne "\r${days}d $(date -u --date @$((_dt)) +%H:%M:%S) ";
|
||||
sleep 0.1
|
||||
|
|
2
bin/dns
2
bin/dns
|
@ -1,3 +1,3 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
getent hosts $*
|
||||
getent hosts "$@"
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
SCROT_DIR="$NICE_HOME/img/scrots/"
|
||||
LATEST_SCROT="$(\ls -Art "${SCROT_DIR}" | tail -n 1)"
|
||||
krita "${SCROT_DIR}${LATEST_SCROT}"
|
||||
scrot_dir="$NICE_HOME/img/scrots/"
|
||||
# shellcheck disable=SC2012
|
||||
latest_scrot="$(\ls -Art "${scrot_dir}" | tail -n 1)"
|
||||
krita "${scrot_dir}${latest_scrot}"
|
||||
|
|
|
@ -5,12 +5,12 @@ err() {
|
|||
errpost=""
|
||||
if test -t 1; then
|
||||
ncolors=$(tput colors)
|
||||
if test -n "$ncolors" && test $ncolors -ge 8; then
|
||||
if test -n "$ncolors" && test "$ncolors" -ge 8; then
|
||||
errpre="$(tput setaf 1)"
|
||||
errpost="$(tput setaf 7)"
|
||||
fi
|
||||
fi
|
||||
>&2 echo "${errpre}ERROR: $@${errpost}"; usage; exit 1
|
||||
>&2 echo "${errpre}ERROR: $*${errpost}"; usage; exit 1
|
||||
}
|
||||
|
||||
warn() {
|
||||
|
@ -18,12 +18,12 @@ warn() {
|
|||
post=""
|
||||
if test -t 1; then
|
||||
ncolors=$(tput colors)
|
||||
if test -n "$ncolors" && test $ncolors -ge 8; then
|
||||
if test -n "$ncolors" && test "$ncolors" -ge 8; then
|
||||
pre="$(tput setaf 3)"
|
||||
post="$(tput setaf 7)"
|
||||
fi
|
||||
fi
|
||||
>&2 echo "${pre}WARNING: $@${post}"
|
||||
>&2 echo "${pre}WARNING: $*${post}"
|
||||
}
|
||||
|
||||
usage() { >&2 cat <<USAGEDOC
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
gawk '{print $'${1:-1}'}'
|
||||
has_command gawk || { echo "No gawk." >&2 ; exit 1; }
|
||||
index="${1:-1}"
|
||||
[ "$#" -lt 1 ] || shift
|
||||
gawk '{print $'"${index}"'}' "$@"
|
||||
|
|
21
bin/floating-term
Executable file
21
bin/floating-term
Executable file
|
@ -0,0 +1,21 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# TODO: geomoetry flags?
|
||||
|
||||
flags=("")
|
||||
case "$TERMINAL" in
|
||||
kitty )
|
||||
flags=(-o remember_window_size=no -o initial_window_width=122c -o initial_window_height=24c --class floating_terminal)
|
||||
;;
|
||||
|
||||
# TODO: rxvt?
|
||||
esac
|
||||
|
||||
if is_wayland; then
|
||||
# wayland only needs app_id or class set to "floating_terminal"
|
||||
: # no-op
|
||||
else
|
||||
bspc rule -a '*' -o state=floating
|
||||
fi
|
||||
|
||||
"$TERMINAL" "${flags[@]}" "$@"
|
|
@ -1,8 +1,5 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
op="${1:--c}"; shift &>/dev/null
|
||||
cd ~/.password-store || ( echo "Could not cd to ~/.password-store" && exit 1 )
|
||||
r="$(< "$HOME/.emoji.txt" fzf --height 40%)"
|
||||
echo "Selected $r (it's in your clipboard)"
|
||||
<<< $r awk '$0=$1' | tr -d '\n' | clip
|
||||
cd - || return 1
|
||||
echo "$r" | awk '$0=$1' | tr -d '\n' | clip
|
||||
echo "Copied $r emoji to your clipboard"
|
||||
|
|
16
bin/fzfp
16
bin/fzfp
|
@ -1,8 +1,12 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
op="${1:--c}"; shift &>/dev/null
|
||||
cd ~/.password-store || ( echo "Could not cd to ~/.password-store" && exit 1 )
|
||||
pp="$(fd gpg | sd ".gpg" "" | fzf --height 40%)"
|
||||
echo pass $op $pp
|
||||
pass "$op" "$@" "$pp"
|
||||
cd - || return 1
|
||||
FZFP_PASS_CMD="pass"
|
||||
FZFP_PASS_DIR="$HOME/.password-store"
|
||||
|
||||
FZFP_HEIGHT="${FZFP_HEIGHT:-40%}"
|
||||
FZFP_PROMPT="${FZFP_PROMPT:-"$FZFP_PASS_CMD@$FZFP_PASS_DIR> "}"
|
||||
FZFP_PASS_OPTS="${FZFP_PASS_OPTS:-}"
|
||||
cd "$FZFP_PASS_DIR" || { echo "Could not cd to $FZFP_PASS_DIR" >&2; exit 1; }
|
||||
pp="$(fd gpg | sd ".gpg" "" | fzf --height "$FZFP_HEIGHT" --prompt "$FZFP_PROMPT")"
|
||||
"${FZFP_PASS_CMD}" $FZFP_PASS_OPTS "$@" "$pp"
|
||||
cd - >/dev/null || return 1
|
||||
|
|
4
bin/grb
4
bin/grb
|
@ -2,10 +2,10 @@
|
|||
|
||||
MAIN_BRANCH="master"
|
||||
CUR_BRANCH="$(git branch | grep '\*' | cut -d ' ' -f2-)"
|
||||
if [[ ! -z ${2+x} ]]; then
|
||||
if [[ -n ${2+x} ]]; then
|
||||
MAIN_BRANCH="$2"
|
||||
CUR_BRANCH="$1"
|
||||
elif [[ ! -z ${1+x} ]]; then
|
||||
elif [[ -n ${1+x} ]]; then
|
||||
MAIN_BRANCH="$1"
|
||||
fi
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
[ "$#" -lt 1 ] && { echo "No arguments provided" >&2 ; exit 1; }
|
||||
command -v "$1" >/dev/null 2>&1
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
test "$IS_WAYLAND" == "1" || test -n "$WAYLAND_DISPLAY" || test -n "$SWAYSOCK" || test -z "$DISPLAY"
|
||||
loginctl show-session "$(loginctl | grep "$(whoami)" | tail -n 1 | field 1)" -p Type | grep -i wayland >/dev/null
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
[ "$#" -lt 1 ] && echo "Need a filename." && exit 1
|
||||
cat "$1" | yq -s . | jq -S '
|
||||
< "$1" yq -s . | jq -S '
|
||||
sort_by(.metadata.name) |
|
||||
sort_by(.kind) |
|
||||
.[] | .spec.template.spec.containers |=
|
||||
|
|
15
bin/launch
Executable file
15
bin/launch
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
LAUNCHER_HISTORY_FILE="$ENV_PATH/launch.log"
|
||||
touch "$LAUNCHER_HISTORY_FILE"
|
||||
app="$(
|
||||
< "$LAUNCHER_HISTORY_FILE" \
|
||||
awk 'NF{NF--};1' | \
|
||||
cat - <(dmenu_path) | \
|
||||
sort | uniq -c | sort -nr | \
|
||||
sd '^\s+' '' | \
|
||||
cut -d' ' -f2- | \
|
||||
fzf
|
||||
)"
|
||||
echo "$app $(date +%s)" >> "$LAUNCHER_HISTORY_FILE"
|
||||
echo "$app"
|
|
@ -60,6 +60,7 @@ pacaur --needed -S \
|
|||
fortune-mod fortune-mod-archlinux `# Fortune` \
|
||||
diff-so-fancy `# Fancy Diffs` \
|
||||
oath-toolkig `# One-Time Passwords` \
|
||||
sysstat `# System Statistics` \
|
||||
--noconfirm --noedit
|
||||
|
||||
# install rxvt-unicode script for resizing font on-the-fly
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
if [[ ! -z "${1+x}" ]]; then
|
||||
while read r; do
|
||||
<<< "${r}" "$@"
|
||||
if [[ -n "${1+x}" ]]; then
|
||||
while read -r line; do
|
||||
<<< "${line}" "$@"
|
||||
done
|
||||
else
|
||||
echo "No reader program provided."
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env sh
|
||||
#!/usr/bin/env bash
|
||||
|
||||
f="$1"; shift
|
||||
. source_if_exists "$ENV_PATH/$f" "$@"
|
||||
[ -f "$f" ] && source "$f" "$@"
|
||||
true
|
||||
|
|
3
bin/n
3
bin/n
|
@ -1,4 +1,3 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
fn="${1}"; shift
|
||||
N "$(date +%Y-%m-%d)_${fn}" $*
|
||||
fn="${1}"; shift; N "$(date +%Y-%m-%d)_${fn}" "$@"
|
||||
|
|
3
bin/nd
3
bin/nd
|
@ -1,4 +1,3 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
fn="${1}"; shift
|
||||
N "$(date +%Y-%m-%d)_${fn}" $*
|
||||
fn="${1}"; shift; N "$(date +%Y-%m-%d)_${fn}" "$@"
|
||||
|
|
|
@ -15,4 +15,4 @@ mogrify \
|
|||
-define png:exclude-chunk=all \
|
||||
-interlace none \
|
||||
-colorspace sRGB \
|
||||
$1
|
||||
"$1"
|
||||
|
|
15
bin/pass-chooser
Executable file
15
bin/pass-chooser
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# TODO: can we use fzfp here?
|
||||
floating-term \
|
||||
bash -c "
|
||||
cd $HOME/.password-store
|
||||
fd gpg |
|
||||
sd '.gpg\$' '' |
|
||||
fzf --height 100% --prompt 'fzf-pass> ' > /tmp/fzfp-key
|
||||
pass \"\$(cat /tmp/fzfp-key)\" |
|
||||
head -n 1 |
|
||||
sd '\s+\$' '' |
|
||||
nohup clip &>/dev/null &
|
||||
notify-send -a 'pass' 'Password in Clipboard'
|
||||
"
|
|
@ -8,6 +8,7 @@ if [ -n "${1+x}" ]; then
|
|||
mkdir -p "$pdir"
|
||||
if [ -z ${1+x} ]; then
|
||||
td="$(mktemp -p "$pdir" -d "tmp_pipeline.XXXXXXXX")"
|
||||
# shellcheck disable=SC2064
|
||||
trap "rm -rf '$td'" EXIT
|
||||
else
|
||||
td="$pdir/$1"; shift
|
||||
|
@ -17,6 +18,7 @@ if [ -n "${1+x}" ]; then
|
|||
else
|
||||
td="$(mktemp --tmpdir -d pipeline.XXXXXXXX)"
|
||||
transform="$td/transform"
|
||||
# shellcheck disable=SC2064
|
||||
trap "rm -rf '$td'" EXIT
|
||||
fi
|
||||
|
||||
|
@ -36,4 +38,4 @@ chmod +x "$transform"
|
|||
# TODO: saved inputs?
|
||||
echo "Hello World" > "$in"
|
||||
|
||||
env PIPELINE_IN="$id" PIPELINE_TRANSFORM="$transform" PIPELINE_OUT="$out" nvim --cmd "source $DOTFILES_PATH/apps/neovim/scripts/pipeline.vim"
|
||||
env PIPELINE_IN="$in" PIPELINE_TRANSFORM="$transform" PIPELINE_OUT="$out" nvim --cmd "source $DOTFILES_PATH/apps/neovim/scripts/pipeline.vim"
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
export GITHUB_UPSTREAM="$(git remote -vv | awk '{$0=$2}')"
|
||||
GITHUB_UPSTREAM="$(git remote -vv | awk '{$0=$2}')"
|
||||
|
||||
git log --merges --ancestry-path --oneline $1..master \
|
||||
git log --merges --ancestry-path --oneline "$1"..master \
|
||||
| grep -i 'pull request' \
|
||||
| tail -n1 \
|
||||
| awk '{$0=$5}' \
|
||||
| cut -c2- \
|
||||
| xargs -I % open https://github.com/$GITHUB_UPSTREAM/${PWD##*/}/pull/%
|
||||
| xargs -I % open https://github.com/"$GITHUB_UPSTREAM"/"${PWD##*/}"/pull/%
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
export XDG_CONFIG_HOME="$HOME/.config"
|
||||
export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
|
||||
export ENV_PATH="$HOME/.env"
|
||||
export TERMINAL="kitty"
|
||||
|
||||
# TODO: better logic for auto-detecting alternative home directories?
|
||||
# 1. check dirname(basename $HOME)) matches username
|
||||
|
@ -16,4 +17,5 @@ NICE_HOME="$HOME"
|
|||
[ -e "${ENV_PATH}/.nice_home" ] && NICE_HOME="$(cat "${ENV_PATH}/.nice_home")"
|
||||
export NICE_HOME
|
||||
|
||||
# shellcheck disable=SC1090
|
||||
. "$DOTFILES_PATH/bin/paths"
|
||||
|
|
23
bin/resource-usage
Executable file
23
bin/resource-usage
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# TODO: radeontop can continuously dump to a file, would be fast to just keep
|
||||
# last line and have this run in the background
|
||||
gpu_usage="$(radeontop -l 1 -d - | rg --color never -o "gpu (\d+.\d+)" -r '$1')"
|
||||
gpu_temp="$(sensors | rg 'amdgpu.*mem:\s+\+(\d+\.\d+)' --multiline-dotall --multiline -o -r '$1')"
|
||||
|
||||
# NOTE: this is all cpu usage since boot:
|
||||
# cpu_usage_data_snapshot="$(cat /proc/stat | head -n 1 | cut -d ' ' -f 2- | sd '^\s+' '')"
|
||||
# function cpu_usage_data() {
|
||||
# echo "$cpu_usage_data_snapshot"
|
||||
# }
|
||||
# cpu_usage="$(bc -l <<< "100-(100*($(cpu_usage_data | awk '{printf $4}').0/$(cpu_usage_data | sd " " "+" | bc).0))")"
|
||||
|
||||
mpstat_samples=2
|
||||
mpstat_sample_seconds=1
|
||||
cpu_idle="$(mpstat --dec=2 "$mpstat_sample_seconds" "$mpstat_samples" | tail -n 1 | field 12)"
|
||||
cpu_usage="$(echo "100.0-$cpu_idle" | bc -l)"
|
||||
cpu_temp="0.0"
|
||||
|
||||
printf "GPU [USAGE: %6.2f%%] [THERMALS: %6.2f°C]\n" "$gpu_usage" "$gpu_temp"
|
||||
printf "CPU [USAGE: %6.2f%%] [THERMALS: %6.2f°C]\n" "$cpu_usage" "$cpu_temp"
|
||||
|
4
bin/scn
4
bin/scn
|
@ -1,3 +1,3 @@
|
|||
#!/usr/bin/env bash
|
||||
#!/usr/bin/env sh
|
||||
|
||||
EDITOR="sc-im" nf $*
|
||||
EDITOR="sc-im" nf "$@"
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
|
||||
SCROT_DIR="$NICE_HOME/img/scrots"
|
||||
mkdir -p "$SCROT_DIR/"
|
||||
FILENAME="$SCROT_DIR/%Y-%m-%d_%H-%M-%S_\$wx\$h.png"
|
||||
FILENAME="$SCROT_DIR/screenshot_%Y-%m-%d_%H-%M-%S_\$wx\$h.png"
|
||||
scrot "$@" "${FILENAME}" >/dev/null && echo "Saved screenshot to: ${FILENAME}"
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
#!/usr/bin/env sh
|
||||
#!/usr/bin/env bash
|
||||
|
||||
[ "$#" -lt 1 ] && { echo "No arguments provided" >&2 ; exit 1; }
|
||||
|
||||
# shellcheck disable=SC1090
|
||||
f="$1"; shift
|
||||
[ -f "$f" ] && . "$f" "$@"
|
||||
{ [ -f "$f" ] && source "$f" "$@"; } || { echo "$f does not exist" >&2 ; exit 3; }
|
||||
|
|
6
bin/sw
6
bin/sw
|
@ -1,10 +1,13 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
d="$(date +%s)"
|
||||
_dt=$(($(date +%s) - d))
|
||||
echo "Stopwatch started $(date)"
|
||||
|
||||
trap 'echo -ne "\nStopwatch stopped at $(date)\n" && exit 0' SIGINT
|
||||
|
||||
while true; do
|
||||
_dt=$((`date +%s` - d))
|
||||
_dt=$(($(date +%s) - d))
|
||||
days=$((_dt / 86400))
|
||||
echo -ne "\r${days}d $(date -u --date @$((_dt)) +%H:%M:%S) "
|
||||
sleep 0.1
|
||||
|
@ -12,4 +15,3 @@ done
|
|||
|
||||
# TODO: add "lap" capabilities?
|
||||
|
||||
echo -ne "\rStopwatch stopped at $(date)\n"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
prelude
|
||||
echo "${USER_LOGS_PATH}"
|
||||
|
||||
sess="$1"; shift
|
||||
d="$(date +%Y-%m-%d_%H-%M-%S)"
|
||||
|
@ -8,4 +8,4 @@ f="${USER_LOGS_PATH}/${d}.${sess}.tmux-buffer.log"
|
|||
touch "$f"
|
||||
chmod 600 "$f"
|
||||
tmux capture-pane -pS -1000000000 > "$f"
|
||||
echo "$f"
|
||||
echo "Saved output to $f"
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
ANY_SESSION_PREFIX="#[bg=colour18]#[fg=colour7]"
|
||||
CUR_SESSION_PREFIX="#[bg=colour4]#[fg=colour0]"
|
||||
URG_SESSION_PREFIX="#[bg=colour1]#[fg=colour0]"
|
||||
ANY_SESSION_SUFFIX="#[bg=default]#[fg=default] "
|
||||
URG_SESSION_SUFFIX="${ANY_SESSION_SUFFIX}"
|
||||
CUR_SESSION_PREFIX="#[bg=colour4]#[fg=colour0]"
|
||||
CUR_SESSION_SUFFIX="${ANY_SESSION_SUFFIX}"
|
||||
# TODO: implement urgent session highlighting
|
||||
# URG_SESSION_SUFFIX="${ANY_SESSION_SUFFIX}"
|
||||
# URG_SESSION_PREFIX="#[bg=colour1]#[fg=colour0]"
|
||||
|
||||
CUR_TMUX_SESSION="$1"
|
||||
if [ -z "$1" ]; then
|
||||
|
@ -26,4 +27,5 @@ if(s==curSesh){
|
|||
s=aspre" "s" "assuf
|
||||
}printf s}')"
|
||||
|
||||
# shellcheck disable=SC2001
|
||||
echo "${TMUX_SESSION_LIST//\s*$/}" | sed -e 's/\s*$//'
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
archive_name="${1}"; shift
|
||||
to_dir="$(basename $archive_name)"
|
||||
to_dir="$(basename "$archive_name")"
|
||||
mkdir -p "${to_dir}"
|
||||
pushd "${to_dir}"
|
||||
pushd "${to_dir}" || ( echo "${to_dir} does not exist" ; exit 1 )
|
||||
tar --zstd -xvf "${archive_name}"
|
||||
echo "Unarchived to: ${to_dir}"
|
||||
popd
|
||||
popd || exit 2
|
||||
|
|
|
@ -21,6 +21,7 @@ fi
|
|||
ssh ld mkdir -p "${internal_dir}"
|
||||
rsync --progress --no-owner --no-group --no-perms --stats --ignore-existing "${f}" "${HOST}:${internal_dir}/${fname}" | tee "${HOME}/.upload.log"
|
||||
code="$?"
|
||||
# shellcheck disable=SC2029
|
||||
ssh ld chmod a+r "${internal_dir}/${fname}"
|
||||
echo "Uploaded to: ${url}"
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@ if ! pushd "$repo_root" &> /dev/null; then
|
|||
echo "Repo doesn't exist!"
|
||||
exit 2
|
||||
fi
|
||||
td="$(mktemp -p "$pdir" -d "vdiff.XXXXXXXX")"
|
||||
trap "rm -rf \"$td\"" EXIT
|
||||
td="$(mktemp -d "vdiff.XXXXXXXX")"
|
||||
trap 'rm -rf '"$td" EXIT
|
||||
files="$(git diff --name-only "$@")"
|
||||
|
||||
args=()
|
||||
|
@ -23,8 +23,8 @@ for f in $files; do
|
|||
echo "<FILE CREATED>" > "$d/$fn"
|
||||
cp "$f" "$d/$cfn" 2>/dev/null || echo "<FILE DELETED>" > "$d/$cfn"
|
||||
|
||||
if [ -z "$args" ]; then
|
||||
args+=($d/$fn -c)
|
||||
if [ -z "${args[0]}" ]; then
|
||||
args+=("$d/$fn -c")
|
||||
vcmd="vert diffsplit $d/$cfn"
|
||||
else
|
||||
vcmd="$vcmd | tabnew | e $d/$fn | vert diffsplit $d/$cfn"
|
||||
|
|
4
bin/vman
4
bin/vman
|
@ -4,5 +4,5 @@
|
|||
# `asmanviewer` variable, so launch vim that way when using vim as our man
|
||||
# page viewer
|
||||
|
||||
"$EDITOR" --cmd "let asmanviewer=1" -c "SuperMan $*"
|
||||
[ "$?" != "0" ] && echo "No manual entry for $*" && exit 1
|
||||
"$EDITOR" --cmd "let asmanviewer=1" -c "SuperMan $*" || \
|
||||
( echo "No manual entry for $*" && exit 1 )
|
||||
|
|
15
env/desktop/sway/config.d/main
vendored
15
env/desktop/sway/config.d/main
vendored
|
@ -1,3 +1,12 @@
|
|||
output HDMI-A-1 res 2560x1440@60Hz pos 0 0
|
||||
output HDMI-A-1 transform 270
|
||||
output DP-1 res 3440x1440@100Hz pos 1440 1120
|
||||
output DP-1 res 3440x1440@100Hz pos 0 0
|
||||
output DP-3 res 2560x1440@60Hz pos -1440 0 transform 270
|
||||
output DP-4 res 2560x1440@60Hz pos 3440 0 transform 270
|
||||
workspace 1 output DP-1
|
||||
workspace 2 output DP-1
|
||||
workspace 3 output DP-1
|
||||
workspace 4 output DP-4
|
||||
workspace 5 output DP-4
|
||||
workspace 6 output DP-4
|
||||
workspace 7 output DP-3
|
||||
workspace 8 output DP-3
|
||||
workspace 9 output DP-3
|
||||
|
|
3
env/desktop/x/resources
vendored
3
env/desktop/x/resources
vendored
|
@ -1,7 +1,8 @@
|
|||
#define bar_font_size 12
|
||||
# TODO: this needs fixing
|
||||
polybar.primary_font: iosevka\-lyte:pixelsize=bar_font_size;1
|
||||
bspwm.num_desktops_per_monitor: 4
|
||||
bspwm.reverse_desktop_ordering: 0
|
||||
bspwm.reverse_monitor_desktops: 1
|
||||
bspwm.reverse_monitor_desktops: 0
|
||||
polybar.display_monitor: DisplayPort-0
|
||||
polybar.height: 40
|
||||
|
|
2
env/laptop/sway/config.d/main
vendored
2
env/laptop/sway/config.d/main
vendored
|
@ -3,6 +3,8 @@ output HDMI-A-1 res 2560x1440@60Hz pos 0 0
|
|||
output HDMI-A-1 transform 270
|
||||
output DP-1 res 3440x1440@100Hz pos 1440 1120
|
||||
|
||||
bindswitch lid:toggle exec swaylock
|
||||
|
||||
# TODO: setup trackpad/gestures
|
||||
### Input configuration
|
||||
#
|
||||
|
|
Reference in a new issue