Merge branch 'stow' of gaw:stonewareslord/sync into stow

This commit is contained in:
Austen Adler 2020-03-17 08:41:16 -04:00
commit 92625e74b2
13 changed files with 250 additions and 200 deletions

9
.gitmodules vendored Normal file
View File

@ -0,0 +1,9 @@
[submodule "kak/.config/kak/plugins/fzf.kak"]
path = kak/.config/kak/plugins/fzf.kak
url = https://github.com/andreyorst/fzf.kak
[submodule "kak/.config/kak/plugins/plug.kak"]
path = kak/.config/kak/plugins/plug.kak
url = https://github.com/andreyorst/plug.kak
[submodule "kak/.config/kak/plugins/smarttab.kak"]
path = kak/.config/kak/plugins/smarttab.kak
url = https://github.com/andreyorst/smarttab.kak

View File

@ -1,6 +1,7 @@
!URxvt.boldFont: -misc-fixed-medium-r-semicondensed--13-100-100-100-c-60-iso8859-1
URxvt.font: xft:Less Perfect DOS VGA
!URxvt.font: -*-*-*-*-*-*-*-*-*-*-*-*-*-*
URxvt.font: xft:Misc Fixed:size=14
!URxvt.font: xft:Misc Fixed:size=14
!URxvt.boldFont: -*-*-*-*-*-*-*-*-*-*-*-*-*-*
!URxvt.font: xft:Fixed:style=SemiCondensed:size=10
!URxvt.font: xft:Inconsolata:size=12

View File

@ -18,7 +18,7 @@ bindsym $mod+shift+apostrophe bar mode dock
# Rename a workspace
bindsym $mod+shift+d exec i3-input -F 'rename workspace to "%s"' -P 'Rename to: '
# Rofi shortcuts
bindsym $mod+p exec "~/.config/i3/run.sh run"
bindsym $mod+d exec "~/.config/i3/run.sh run"
# Clipboard manager
#bindsym ctrl+Mod1+v exec "~/.config/i3/run.sh clip"
# Pass shortcut
@ -26,7 +26,7 @@ bindsym $mod+p exec "~/.config/i3/run.sh run"
#bindsym $mod+shift+p exec "rofi-pass --last-used"
# Misc shortcuts
bindsym --release Num_Lock exec "xdotool key --clearmodifiers Shift+Insert;numlockx on"
bindsym Print exec "~/.config/i3/run.sh screenshot"
bindsym $mod+p exec "~/.config/i3/run.sh screenshot"
# Split in vertical orientation
bindsym $mod+v split h
# Split in horizontal orientation
@ -110,7 +110,6 @@ bindsym $mod+shift+7 move container to workspace 7
bindsym $mod+shift+8 move container to workspace 8
bindsym $mod+shift+9 move container to workspace 9
bindsym $mod+shift+0 move container to workspace 10
bindsym $mod+d exec "~/.config/i3/run.sh copy"
bindsym $mod+grave exec "~/.config/i3/run.sh screen-lock"
bindsym $mod+shift+grave exec "~/.config/i3/run.sh screen-lock"
bindsym $mod+r mode "resize"
@ -208,6 +207,7 @@ exec --no-startup-id amixer set Master 0% mute
exec --no-startup-id "~/.config/i3/run.sh wall"
# Keyboard
exec --no-startup-id xmodmap ~/.xmodmap
exec --no-startup-id xrdb ~/.Xresources
#exec --no-startup-id ~/xmodmap.sh
# Misc
# Compositor
@ -223,7 +223,7 @@ exec --no-startup-id /usr/bin/parcellite
# Turn off numlock!
exec --no-startup-id /usr/bin/numlockx
# Run firefox/firefox-bin
exec --no-startup-id firefox -p a || firefox-bin -p a
exec --no-startup-id firefox || firefox-bin
# Start syncthing if it hasn't already been started
exec --no-startup-id /bin/zsh -c 'pidof syncthing||screen -dmS syncthing ~/bin/syncthing'
#exec --no-startup-id nextcloud
@ -231,4 +231,6 @@ exec --no-startup-id /bin/zsh -c 'pidof syncthing||screen -dmS syncthing ~/bin/s
#exec --no-startup-id "~/bin/indicator-kdeconnect"
# riot
exec --no-startup-id riot-web --hidden
# setxkbmap
exec --no-startup-id setxkbmap -option caps:swapescape
# vim: ts=2:sw=2:et

View File

@ -13,25 +13,19 @@ general {
order += "disk /"
order += "cpu_usage"
order += "ethernet tun0"
order += "wireless wlp2s0"
order += "ethernet enp1s0"
order += "wireless wlo1"
order += "volume master"
order += "battery 1"
order += "battery 0"
order += "tztime local"
ethernet tun0 {
# if you use %speed, i3status requires root privileges
format_up = "%ip"
format_down = "!T"
}
wireless wlp2s0 {
wireless wlo1 {
format_up = "%essid : %ip @ %quality"
format_down = "!W"
}
ethernet enp1s0 {
# if you use %speed, i3status requires root privileges
format_up = "%ip (%speed)"
format_down = "!E"
}
tztime local {
#format = "%a %b%e %r"
format = "%a %e %b %F %r"
@ -47,10 +41,10 @@ volume master {
mixer = "Master"
mixer_idx = 0
}
battery 1 {
battery 0 {
#format = "%status %remaining %emptytime"
format = "%status %percentage"
path = "/sys/class/power_supply/BAT1/uevent"
path = "/sys/class/power_supply/BAT0/uevent"
low_threshold = 20
}
disk "/" {

View File

@ -1,50 +1,49 @@
#!/usr/bin/env zsh
#!/usr/bin/env bash
ARG="$1"
shift
if [ "$ARG" = "move" ]; then
shift
case "${ARG}" in
move)
eval "$(xdotool getwindowfocus getwindowgeometry | grep Geometry: | perl -pe 's/^\s*Geometry: /WinH=/;s/x/\nWinW=/g')"
eval "$(xdotool getwindowfocus getwindowgeometry | grep Position: | perl -pe 's/^\s*Position: /WinY=/;s/,/\nWinX=/g;s/\s\(.+//')"
eval "$(xrandr | grep -w connected | perl -pe 's/.+?(\d+x\d+)\+\d+\+\d+.*/\1/g;s/^/MonH=/;s/x/\nMonW=/;' | head -n2)"
if [ "$ARG" = "top" ]; then
if [[ "$ARG" = "top" ]]; then
echo $((WinY))
xdotool getwindowfocus windowmove $((WinY - 1)) 0
elif [ "$ARG" = "right" ]; then
elif [[ "$ARG" = "right" ]]; then
xdotool getwindowfocus windowmove $((MonH - WinH)) $((WinX - 1))
elif [ "$ARG" = "left" ]; then
elif [[ "$ARG" = "left" ]]; then
xdotool getwindowfocus windowmove 0 $((WinX - 1))
elif [ "$ARG" = "bottom" ]; then
elif [[ "$ARG" = "bottom" ]]; then
xdotool getwindowfocus windowmove $((WinY - 1)) $((MonW - WinW))
fi
elif [ "$ARG" = "lock" ];then
#!/bin/bash
;;
lock)
declare -i ID
ID=`xinput list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`
declare -i STATE
STATE=`xinput list-props $ID|grep 'Device Enabled'|awk '{print $4}'`
if [ $STATE -eq 1 ];then
xinput disable $ID
STATE=`xinput list-props "${ID}"|grep 'Device Enabled'|awk '{print $4}'`
if [[ $STATE -eq 1 ]];then
xinput disable "${ID}"
echo "Touchpad disabled."
else
xinput enable $ID
xinput enable "${ID}"
echo "Touchpad enabled."
fi
fi
if [ "$ARG" = "pass" ];then
pass -c $(ls ~/.password-store/*/*|cut -b-37 --complement|rofi -dmenu|sed -e 's/\.gpg//')
fi
if [ "$ARG" = "screensaver" ];then
;;
pass)
pass -c "$(ls ~/.password-store/*/*|cut -b-37 --complement|rofi -dmenu|sed -e 's/\.gpg//')"
;;
screensaver)
cat /tmp/noss||i3lock -di `shuf -n1 -e ~/.i3/wall/*`
fi
if [ "$ARG" = "wall" ];then
;;
wall)
#if [[ -d ~/.i3/wallOM ]];then feh --bg-scale "`shuf -n1 -e ~/.i3/wallOM/*`";else feh --bg-scale "`shuf -n1 -e ~/.i3/wall/*`";fi;
#feh --bg-scale "$(shuf -n1 -e ~/.i3/wallOM/*)"
#feh --bg-scale ~/.i3/image.png
feh --bg-scale "$(shuf -n1 <(realpath /home/stonewareslord/sync/wallpaper/"$(hostname)"/*))"
fi
if [ "$ARG" = "swap" ];then
python << EOF
;;
swap)
python <<-EOF
import i3
swap = [output for output in i3.get_outputs() if output['active']]
if len(swap) == 2:
@ -52,8 +51,8 @@ if len(swap) == 2:
i3.workspace(output['current_workspace'])
i3.command('move', 'workspace to output right')
EOF
fi
if [ "$ARG" = "boot" ];then
;;
boot)
test -f ~/.screenlayout/default.sh && ~/.screenlayout/default.sh
/usr/bin/xset -b
/usr/bin/xset +fp /usr/share/fonts/X11/misc
@ -63,10 +62,10 @@ if [ "$ARG" = "boot" ];then
/usr/bin/xset -dpms
# This will segfault and ruin your day
#/usr/bin/urxvtd -q -f -o
#if [ "$(hostname)" = "MMLin" ]; then
#if [[ "$(hostname)" = "MMLin" ]]; then
# xrandr --output HDMI1 --primary
# xmodmap <(echo pointer = 3 2 1)
#elif [ "$(hostname)" = "G2" ]; then
#elif [[ "$(hostname)" = "G2" ]]; then
# #TODO: Figure out what the display is called
# xrandr --output eDP1 --primary
# xmodmap <(echo pointer = 1 2 3)
@ -78,8 +77,8 @@ if [ "$ARG" = "boot" ];then
else
i3
fi
fi
if [ "$ARG" = "screen-lock" ];then
;;
screen-lock)
revert(){
xset dpms 0 0 0
}
@ -87,15 +86,14 @@ if [ "$ARG" = "screen-lock" ];then
xset +dpms dpms 5 5 5
slock
revert
fi
if [ "$ARG" = "paste" ]; then
;;
paste)
sleep 2
DISPLAY=:0.0 xdotool type --clearmodifiers --file <(xsel)
fi
if [ "$ARG" = "ping" ]; then
shift
;;
ping)
# Return code
local RET=0
RET=0
# nc has some intense divergence. netcat6 has no -z, but netcat has no -x
# -w3: 3 second timeout
# -4 : ipv4 only
@ -107,43 +105,24 @@ if [ "$ARG" = "ping" ]; then
nc -w 1 -4 "$ARG" "$1" -x </dev/null >& /dev/null && RET=1
fi
echo $RET
fi
if [ "$ARG" = "ip" ]; then
shift
local RET=0
if [ "$(hostname)" = "MMLin" ]; then
if grep -q "$ARG" < <(ifconfig enp2s0f0); then
RET=1
fi
elif [ "$(hostname)" = "G2" ]; then
if grep -q "$ARG" < <(ifconfig enp1s0;ifconfig wlp2s0); then
RET=1
fi
elif [ "$(hostname)" = "SGen" ]; then
if grep -q "$ARG" < <(ifconfig enp0s25); then
RET=1
fi
fi
echo $RET
fi
if [ "$ARG" = "copy" ]; then
(printf '-chegg ';xsel | perl -pe 's/[^a-zA-Z ]//g;chomp()') | xsel && notify-send "Copied" || notify-send "Error"
fi
if [ "$ARG" = "screenshot" ]; then
\rm -f ~/last-photo/*(N)
sleep .2
;;
screenshot)
#\rm -f ~/last-photo/*(N)
find ~/last-photo/ -type f -delete
#DISPLAY=:0.0 xfce4-screenshooter -r -s ~/last-photo
local FNAME="$HOME/last-photo/$(date +'%Y-%m-%d_%T').png"
FNAME="$HOME/last-photo/$(date +'%Y-%m-%d_%T').png"
DISPLAY=:0.0 import "${FNAME}"
DISPLAY=:0.0 xclip -selection clipboard -t image/png -i "${FNAME}"
#DISPLAY=:0.0 scrot -s "$HOME/last-photo/$(date +'%Y-%m-%d_%T').png"
\cp ~/last-photo/* ~/Pictures
fi
if [ "$ARG" = "shutdownprompt" ]; then
;;
shutdownprompt)
RESP=$(printf 'Sleep\nNMRestart\nShutdown\nRestart\nLogout\n' | rofi -i -dmenu 2>/dev/null)
if [[ ! -z "$RESP" ]]; then
case "$RESP" in
NMRestart) nmcli radio wifi off;sleep 1;nmcli radio wifi on;;
NMRestart)
nmcli radio wifi off;sleep 1;nmcli radio wifi on
;;
Restart)
sudo /sbin/shutdown -r now
;;
@ -155,7 +134,10 @@ if [ "$ARG" = "shutdownprompt" ]; then
;;
Sleep)
amixer set Master 0% mute
slock&until echo mem|sudo tee /sys/power/state>/dev/null;do sleep 1;done
slock &
until sudo tee /sys/power/state <<<"mem" >/dev/null; do
sleep 1
done
sleep 4
nmcli radio wifi off
sleep 3
@ -163,18 +145,19 @@ if [ "$ARG" = "shutdownprompt" ]; then
;;
esac
fi
fi
if [ "$ARG" = "run" ]; then
;;
run)
PATH="$HOME/bin:/usr/games/bin:$PATH" rofi -show run
fi
if [ "$ARG" = "window" ]; then
;;
window)
rofi -show window
fi
if [ "$ARG" = "clip" ]; then
;;
clip)
# Get the rofi-selected index of what to paste
local INDEX="$(gpaste-client --oneline | colrm 80 | rofi -dmenu | perl -pe 's/:.*//')"
INDEX="$(gpaste-client --oneline | colrm 80 | rofi -dmenu | perl -pe 's/:.*//')"
# If they made a selection, select it
if [[ ! -z "$INDEX" ]]; then
gpaste-client select "$INDEX"
fi
fi
;;
esac

51
kak/.config/kak/kakrc Normal file
View File

@ -0,0 +1,51 @@
# Disable mouse
set global ui_options ncurses_enable_mouse=false
colorscheme gruvbox
# Word-wrap
add-highlighter global/ wrap
add-highlighter global/ number-lines
# Tab complete and indent
hook global InsertCompletionShow .* %{
try %{
execute-keys -draft 'h<a-K>\h<ret>'
map window insert <tab> <c-n>
map window insert <s-tab> <c-p>
}
}
hook global InsertCompletionHide .* %{
unmap window insert <tab> <c-n>
unmap window insert <s-tab> <c-p>
}
# Editorconfig
hook global BufOpenFile .* %{ editorconfig-load }
hook global BufNewFile .* %{ editorconfig-load }
# Surround
map global user [ i[<esc>a]<esc>H
map global user { i{<esc>a}<esc>H
map global user ( i(<esc>a)<esc>H
map global user <lt> i<lt><esc>a<gt><esc>H
map global user \' i'<esc>a'<esc>H
map global user \" i"<esc>a"<esc>H
# Plug
source "%val{config}/plugins/plug.kak/rc/plug.kak"
# Plugins
plug "andreyorst/smarttab.kak" defer smarttab %{
# when `backspace' is pressed, 4 spaces are deleted at once
set-option global softtabstop 4
} config %{
hook global WinSetOption filetype=(rust|markdown|kak|lisp|scheme|perl|c|cpp|java) expandtab
hook global WinSetOption filetype=(sh|makefile|gas) noexpandtab
}
plug "andreyorst/fzf.kak" config %{
map -docstring 'fzf mode' global normal '<c-p>' ': fzf-mode<ret>'
set-option global fzf_file_command 'rg' # 'ag', 'fd', or 'find'
}

@ -0,0 +1 @@
Subproject commit dc6d0a504ef43511642448c1d7447855b8f17f54

@ -0,0 +1 @@
Subproject commit af0b50a2e080a2f4d81b411f10b0f8b22438a0e4

@ -0,0 +1 @@
Subproject commit 1321c308edac6bd892e2bd2f683432402a04be98

View File

@ -325,6 +325,7 @@ bind editor ^T complete
# Writing mail
bind index,pager m mail
bind index,pager r reply
bind index,pager <Esc>r group-reply # Control-r, \Cr
bind index,pager b bounce-message
bind index,pager f forward-message
@ -367,5 +368,4 @@ bind pager H display-toggle-weed
#
# bind browser <Space> check-new
# bind browser N select-new
# bind index <Esc>r group-reply # Control-r, \Cr
# vim: set ft=neomuttrc

View File

@ -13,6 +13,6 @@ cp "$FILE" "$TMP_DIR/input.html"
# docker container run -it --rm -v "$TMP_DIR:/usr/src/app" zenika/alpine-chrome --no-sandbox --screenshot --hide-scrollbars "file:///usr/src/app/input.html"
# Works but screenshot is usually too large
# docker container run -it --net none --rm -v "$TMP_DIR:/usr/src/app" zenika/alpine-chrome --no-sandbox --screenshot --window-size=1280,1696 --hide-scrollbars "file:///usr/src/app/input.html"
docker container run -it --rm -v "$TMP_DIR:/usr/src/app" zenika/alpine-chrome --no-sandbox --print-to-pdf --hide-scrollbars "file:///usr/src/app/input.html"
docker container run -it --net none --rm -v "$TMP_DIR:/usr/src/app" zenika/alpine-chrome --no-sandbox --print-to-pdf --hide-scrollbars "file:///usr/src/app/input.html"
xdg-open "$TMP_DIR/output.pdf"

View File

@ -69,6 +69,11 @@ set wait_key = no
set mailcap_path = ~/.mutt/mailcap
# set record="+Sent"
# set postponed="+Drafts"
set copy=yes
# macro index z "!mbsync -a^M" "Update through mbsync"
# Load account information

View File

@ -8,3 +8,5 @@ export PATH="${HOME}/go/bin:${PATH}"
#trap 'export CESIUM_LAST_COMMAND_TIME="$(date +%s)"' DEBUG
#PROMPT_COMMAND=prompt_cmd
export EDITOR=kak
[ -f ~/.fzf.bash ] && source ~/.fzf.bash