macbook syncing

nvim
kdeppe 2 years ago
commit 57b610f138

2
.gitignore vendored

@ -1 +1,3 @@
*.swp
gui/i3/wallpaper.jpg
passwords/gnupg/.*

42
.gitmodules vendored

@ -32,18 +32,24 @@
[submodule "vimtex"]
path = editors/vim/pack/man/start/vimtex
url = https://github.com/lervag/vimtex.git
[submodule "vim-nerdtree-tabs"]
path = editors/vim/pack/man/start/vim-nerdtree-tabs
url = https://github.com/jistr/vim-nerdtree-tabs
[submodule "editors/vim/pack/man/start/vim-typescript"]
path = editors/vim/pack/man/start/vim-typescript
url = https://github.com/leafgarland/typescript-vim.git
[submodule "tmux-mem-cpu-load"]
path = src/tmux-mem-cpu-load
url = https://github.com/thewtex/tmux-mem-cpu-load
[submodule "fzf"]
path = src/fzf
url = https://github.com/junegunn/fzf.git
[submodule "vimwiki"]
path = editors/vim/pack/man/start/vimwiki
url = https://github.com/vimwiki/vimwiki.git
[submodule "vim-markdown"]
path = editors/vim/pack/man/start/vim-markdown
url = https://github.com/preservim/vim-markdown.git
[submodule "fzf"]
path = src/fzf
url = https://github.com/junegunn/fzf.git
[submodule "i3lock-blur"]
path = src/i3lock-blur
url = https://git.keegandeppe.com/kdeppe/i3lock-blur.git
@ -62,3 +68,33 @@
[submodule "shells/st"]
path = shells/st
url = https://git.keegandeppe.com/kdeppe/st.git
[submodule "gui/rofi"]
path = gui/rofi
url = https://git.keegandeppe.com/kdeppe/rofi.git
[submodule "src/quotes"]
path = src/quotes
url = https://git.keegandeppe.com/kdeppe/quotes.git
[submodule "device-battery"]
path = src/device-battery
url = https://git.keegandeppe.com/kdeppe/device-battery.git
[submodule "editors/nvim/site/pack/filebroswer/start/nvim-tree"]
path = editors/nvim/site/pack/filebroswer/start/nvim-tree
url = https://github.com/nvim-tree/nvim-tree.lua
[submodule "editors/nvim/site/pack/markdown/opt/vim-markdown"]
path = editors/nvim/site/pack/markdown/opt/vim-markdown
url = https://github.com/preservim/vim-markdown
[submodule "editors/nvim/site/pack/markdown/opt/vimwiki"]
path = editors/nvim/site/pack/markdown/opt/vimwiki
url = https://github.com/vimwiki/vimwiki.git
[submodule "editors/nvim/site/pack/golang/opt/vim-go"]
path = editors/nvim/site/pack/golang/opt/vim-go
url = https://github.com/fatih/vim-go.git
[submodule "editors/nvim/site/pack/statusbar/start/vim-airline"]
path = editors/nvim/site/pack/statusbar/start/vim-airline
url = https://github.com/vim-airline/vim-airline.git
[submodule "editors/nvim/site/pack/typescript/opt/vim-typescript"]
path = editors/nvim/site/pack/typescript/opt/vim-typescript
url = https://github.com/leafgarland/typescript-vim.git
[submodule "editors/nvim/site/pack/markdown/start/markdown-preview.nvim"]
path = editors/nvim/site/pack/markdown/start/markdown-preview.nvim
url = https://github.com/iamcco/markdown-preview.nvim.git

@ -1,4 +1,4 @@
# dotfiles
### TODO
- Need to correct the ST linking of configs to have 1 repo and then link in config.h as needed
- Add main polybar file and create bar as needed from modules

@ -2,3 +2,7 @@ cmake
make
bat
calcurse
pam-gnupg
zfxtop
neovim
lua

@ -1,2 +1,8 @@
feh
imagemagick
rofi
mpv
mpd
mpc
playerctl
zscroll-git

@ -1 +0,0 @@
14:11:33 LOG

@ -0,0 +1,17 @@
#!/bin/bash
# yellow for in progress
polybar-msg action calendar-sync hook 3 1>/dev/null
OUTPUT=$(CALCURSE_CALDAV_PASSWORD=$(pass show cal.keegandeppe.com/kdeppe 2>&1) calcurse-caldav 2>&1)
ERRORS=$(echo "$OUTPUT" | grep error)
if [ -n "$ERRORS" ] ; then
polybar-msg action calendar-sync hook 2 1>/dev/null
exit 0
fi
# success, show green for a few seconds and quit
polybar-msg action calendar-sync hook 1 1>/dev/null
sleep 3
polybar-msg action calendar-sync hook 0 1>/dev/null
exit 0

@ -0,0 +1,26 @@
#!/usr/bin/env bash
WM_DESKTOP=$(xdotool getwindowfocus)
if [[ $WM_DESKTOP == "4194404" ]] ; then
echo ""
else
WM_CLASS=$(xprop -id "$WM_DESKTOP" WM_CLASS | awk 'NF {print $NF}' | sed 's/"//g')
WM_NAME=$(xprop -id "$WM_DESKTOP" WM_NAME | cut -d '=' -f 2 | awk -F '"' '{print $2}')
# filtering
if [ "$WM_NAME" == "tmux" ] ; then
echo "tmux"
elif [ "$WM_CLASS" == "st-256color" ] ; then
echo "st"
elif [ "$WM_CLASS" == "Brave-browser" ] ; then
echo "Brave"
elif [ "$WM_CLASS" == "Spotify" ] ; then
echo "Spotify"
elif [ "$WM_CLASS" == "Zathura" ] ; then
echo "Zathura"
else
echo "$WM_NAME"
fi
fi

@ -0,0 +1,20 @@
#!/bin/bash
# checks if instance of arg 1 exists, will show it if it does
exists=$(i3-msg "[instance=$1] scratchpad show" 2>&1 | grep ERROR)
if [ -n "$exists" ] ; then
# creating it then showing
if [ -z "$1" ] ; then
echo "Missing class in arg 1" >&2
exit 1
elif [ -z "$2" ] ; then
echo "Missing command to launch application in arg 2" >&2
exit 1
fi
# runs remaining commands and shows
${@:2} 2>&1 1>/dev/null &
sleep 1
# lets application load then shows it on scratchpad
i3-msg "[instance=$1] scratchpad show" 1>/dev/null
fi

@ -0,0 +1,9 @@
#!/usr/bin/env bash
if [ -n "$1" ] ; then
URL="$1"
fi
i3-msg "workspace 1; exec brave --new-window $URL"
sleep 0.3
i3-msg "[class=st-256color] focus"

@ -1,5 +1,5 @@
#!/bin/bash
#!/usr/bin/env bash
if [ ! -e "$ZSH/oh-my-zsh.sh" ] ; then
/bin/zsh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussel/oh-my-zsh/master/tools/install.sh)"
/bin/zsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh) --keep-zshrc --unattended"
fi

@ -0,0 +1,18 @@
#!/usr/bin/env bash
if [ "$1" == '--toggle' ]; then
playerctl --player=spotify play-pause
fi
if [[ "$1" == "--scroll" ]] ; then
zscroll -l $2 \
-p " 󰎈 " \
--delay 0.5 \
--update-check true \
--match-command "playerctl --player=spotify status" \
--match-text "Playing" "--scroll 1" \
--match-text "Paused" "--scroll 0" \
"playerctl --player=spotify metadata -s --format '{{artist}} - {{title}}'" &
wait
fi

@ -4,10 +4,10 @@
killall -q polybar
# wait for termination
while pgrep -x polybar >/dev/null; do sleep 1; done
# loads polybar one every monitor
# loads polybar one every monitor based on calling param
if type "xrandr"; then
for monitor in $(xrandr --query | grep " connected" | cut -d" " -f1); do
MONITOR=$monitor polybar --reload main-bar &
MONITOR=$monitor polybar --reload $1 &
done
else
polybar --reload main-bar &

@ -0,0 +1,41 @@
#!/usr/bin/env bash
# Gets the current seafile status to display icon
SYNC_COMPLETE=$(printf '%s %s' '%{F#0F0}' $(echo -e '\Uf0216')) # green
SYNC_IN_PROGRESS=$(printf '%s %s' '%{F#FF0}' $(echo -e '\Uf1216')) # yellow
SYNC_FAILED=$(printf '%s %s' '%{F#F00}' $(echo -e '\Uf0b98')) # red
if ! command -v seaf-cli &>/dev/null ; then
echo "Seafile not downloaded to device!">&2
echo "$SYNC_FAILED"
exit 1
fi
# getting folder status and trimming headers
SEAFILE_STATUS=$(seaf-cli status | tail -n +2)
ERRORS=$(echo "$SEAFILE_STATUS" | grep "error")
if [[ -n "$ERRORS" ]] ; then
# some directories have errors
echo "Error: Failed to sync">&2
echo "$ERRORS">&2
echo "$SYNC_FAILED"
exit 1
fi
IN_PROGRESS=$(echo "$SEAFILE_STATUS" | grep -v "synchronized")
if [[ -n "$IN_PROGRESS" ]] ; then
# some form of syncing in progress
echo "$SYNC_IN_PROGRESS"
exit 0
fi
if [[ -z "$IN_PROGRESS" ]] ; then
# nothing in progress and no errors
echo "$SYNC_COMPLETE"
exit 0
fi
# should never get here
echo "UNKNOWN_ERROR!">&2
exit 1

@ -1,14 +1,26 @@
#!/usr/bin/env bash
# checks for agent status and echos to status bar
if [ -S ~/.ssh/ssh_auth_sock ] ; then
# agent active
clr='#[fg=color34]' # green
symb=$(echo -e '\uf00c')
#ICON=$(echo -e '\Uf08c0')
if [[ -S ~/.ssh/ssh_auth_sock ]] ; then
ICON=$(echo -e '\uf00c')
if [[ "$1" == "-t" ]] ; then
DEFAULT=' #[default]'
clr='#[fg=color34]'
else
clr='%{F#0F0}'
fi
else
# agent not active
clr='#[fg=color1]' # red
symb=$(echo -e '\uf00d')
ICON=$(echo -e '\uf00d')
if [[ "$1" == "-t" ]] ; then
DEFAULT=' #[default]'
clr='#[fg=color1]'
else
clr='%{F#F00}'
fi
fi
printf 'Agent %s%s #[default]' $clr $symb
printf 'Agent %s%s%s' $clr $ICON "$DEFAULT"

@ -0,0 +1,30 @@
#!/usr/bin/env bash
calindx="$HOME/.local/share/calcurse/.env"
todoitems=$(calcurse --todo=1 --format-todo="%m\n"| tail -n +2 )
readarray -t todolist <<<$todoitems
# get index
if [[ ! -f "$calindx" ]] ; then
echo "INDEX=0" > "$calindx"
fi
source "$calindx"
# increment
if [[ "$1" == "inc" ]] ; then
((INDEX+=1))
elif [[ "$1" == "dec" ]] ; then
((INDEX-=1))
fi
# perform checks on the index. Adjusts to dynamic lists
if [[ $INDEX -ge ${#todolist[@]} ]] ; then
INDEX=0 # loops
elif [[ $INDEX -lt 0 ]] ; then
INDEX=$((${#todolist[@]}-1))
fi
# saves index
echo "INDEX=$INDEX" > "$calindx"
printf '%s (%d/%d)\n' "${todolist[$INDEX]}" $(($INDEX+1)) ${#todolist[@]}

@ -0,0 +1,24 @@
#!/bin/bash
wallpapers_dir=~/.local/share/wallpapers
finder="rofi-dmenu Wallpaper"
cd "$wallpapers_dir"
# fzf selector
if [ "$1" == '-s' ] ; then
# follows links and omits the env file
selection=$(find -L -type f -printf '%P\n' | $finder)
if [ -n "$selection" ] ; then
# didnt exit
feh --bg-scale "$selection"
fi
fi
# feh slideshow selector
if [ "$1" == '-p' ] ; then
# follows links and omits the env file
# find -L -type f -printf '%P\n' | feh -A "echo '%f';"
echo "BROKEN">&2
exit 1
fi

@ -0,0 +1,453 @@
" File: hybrid.vim
" Maintainer: Andrew Wong (w0ng)
" URL: https://github.com/w0ng/vim-hybrid
" Modified: 27 Jan 2013 07:33 AM AEST
" License: MIT
" Description:"{{{
" ----------------------------------------------------------------------------
" The default RGB colour palette is taken from Tomorrow-Night.vim:
" https://github.com/chriskempson/vim-tomorrow-theme
"
" The reduced RGB colour palette is taken from Codecademy's online editor:
" https://www.codecademy.com/learn
"
" The syntax highlighting scheme is taken from jellybeans.vim:
" https://github.com/nanotech/jellybeans.vim
"
" The is code taken from solarized.vim:
" https://github.com/altercation/vim-colors-solarized
"}}}
" Requirements And Recommendations:"{{{
" ----------------------------------------------------------------------------
" Requirements
" - gVim 7.3+ on Linux, Mac and Windows.
" - Vim 7.3+ on Linux and Mac, using a terminal that supports 256 colours.
"
" Due to the limited 256 palette, colours in Vim and gVim will still be slightly
" different.
"
" In order to have Vim use the same colours as gVim (the way this colour scheme
" is intended), it is recommended that you define the basic 16 colours in your
" terminal.
"
" For Linux users (rxvt-unicode, xterm):
"
" 1. Add the default palette to ~/.Xresources:
"
" https://gist.github.com/3278077
"
" or alternatively, add the reduced contrast palette to ~/.Xresources:
"
" https://gist.github.com/w0ng/16e33902508b4a0350ae
"
" 2. Add to ~/.vimrc:
"
" let g:hybrid_custom_term_colors = 1
" let g:hybrid_reduced_contrast = 1 " Remove this line if using the default palette.
" colorscheme hybrid
"
" For OSX users (iTerm):
"
" 1. Import the default colour preset into iTerm:
"
" https://raw.githubusercontent.com/w0ng/dotfiles/master/iterm2/hybrid.itermcolors
"
" or alternatively, import the reduced contrast color preset into iTerm:
"
" https://raw.githubusercontent.com/w0ng/dotfiles/master/iterm2/hybrid-reduced-contrast.itermcolors
"
" 2. Add to ~/.vimrc:
"
" let g:hybrid_custom_term_colors = 1
" let g:hybrid_reduced_contrast = 1 " Remove this line if using the default palette.
" colorscheme hybrid
"}}}
" Initialisation:"{{{
" ----------------------------------------------------------------------------
hi clear
if exists("syntax_on")
syntax reset
endif
let s:style = &background
let g:colors_name = "hybrid"
"}}}
" GUI And Cterm Palettes:"{{{
" ----------------------------------------------------------------------------
let s:palette = {'gui' : {} , 'cterm' : {}}
if exists("g:hybrid_reduced_contrast") && g:hybrid_reduced_contrast == 1
let s:gui_background = "#232c31"
let s:gui_selection = "#425059"
let s:gui_line = "#2d3c46"
let s:gui_comment = "#6c7a80"
else
let s:gui_background = "#1d1f21"
let s:gui_selection = "#373b41"
let s:gui_line = "#282a2e"
let s:gui_comment = "#707880"
endif
let s:palette.gui.background = { 'dark' : s:gui_background , 'light' : "#e4e4e4" }
let s:palette.gui.foreground = { 'dark' : "#c5c8c6" , 'light' : "#000000" }
let s:palette.gui.selection = { 'dark' : s:gui_selection , 'light' : "#bcbcbc" }
let s:palette.gui.line = { 'dark' : s:gui_line , 'light' : "#d0d0d0" }
let s:palette.gui.comment = { 'dark' : s:gui_comment , 'light' : "#5f5f5f" }
let s:palette.gui.red = { 'dark' : "#cc6666" , 'light' : "#5f0000" }
let s:palette.gui.orange = { 'dark' : "#de935f" , 'light' : "#875f00" }
let s:palette.gui.yellow = { 'dark' : "#f0c674" , 'light' : "#5f5f00" }
let s:palette.gui.green = { 'dark' : "#b5bd68" , 'light' : "#005f00" }
let s:palette.gui.aqua = { 'dark' : "#8abeb7" , 'light' : "#005f5f" }
let s:palette.gui.blue = { 'dark' : "#81a2be" , 'light' : "#00005f" }
let s:palette.gui.purple = { 'dark' : "#b294bb" , 'light' : "#5f005f" }
let s:palette.gui.window = { 'dark' : "#303030" , 'light' : "#9e9e9e" }
let s:palette.gui.darkcolumn = { 'dark' : "#1c1c1c" , 'light' : "#808080" }
let s:palette.gui.addbg = { 'dark' : "#5F875F" , 'light' : "#d7ffd7" }
let s:palette.gui.addfg = { 'dark' : "#d7ffaf" , 'light' : "#005f00" }
let s:palette.gui.changebg = { 'dark' : "#5F5F87" , 'light' : "#d7d7ff" }
let s:palette.gui.changefg = { 'dark' : "#d7d7ff" , 'light' : "#5f005f" }
let s:palette.gui.delbg = { 'dark' : "#cc6666" , 'light' : "#ffd7d7" }
let s:palette.gui.darkblue = { 'dark' : "#00005f" , 'light' : "#d7ffd7" }
let s:palette.gui.darkcyan = { 'dark' : "#005f5f" , 'light' : "#005f00" }
let s:palette.gui.darkred = { 'dark' : "#5f0000" , 'light' : "#d7d7ff" }
let s:palette.gui.darkpurple = { 'dark' : "#5f005f" , 'light' : "#5f005f" }
if exists("g:hybrid_custom_term_colors") && g:hybrid_custom_term_colors == 1
let s:cterm_foreground = "15" " White
let s:cterm_selection = "8" " DarkGrey
let s:cterm_line = "0" " Black
let s:cterm_comment = "7" " LightGrey
let s:cterm_red = "9" " LightRed
let s:cterm_orange = "3" " DarkYellow
let s:cterm_yellow = "11" " LightYellow
let s:cterm_green = "10" " LightGreen
let s:cterm_aqua = "14" " LightCyan
let s:cterm_blue = "12" " LightBlue
let s:cterm_purple = "13" " LightMagenta
let s:cterm_delbg = "9" " LightRed
else
let s:cterm_foreground = "250"
let s:cterm_selection = "237"
let s:cterm_line = "235"
let s:cterm_comment = "243"
let s:cterm_red = "167"
let s:cterm_orange = "173"
let s:cterm_yellow = "221"
let s:cterm_green = "143"
let s:cterm_aqua = "109"
let s:cterm_blue = "110"
let s:cterm_purple = "139"
let s:cterm_delbg = "167"
endif
let s:palette.cterm.background = { 'dark' : "234" , 'light' : "254" }
let s:palette.cterm.foreground = { 'dark' : s:cterm_foreground , 'light' : "16" }
let s:palette.cterm.window = { 'dark' : "236" , 'light' : "247" }
let s:palette.cterm.selection = { 'dark' : s:cterm_selection , 'light' : "250" }
let s:palette.cterm.line = { 'dark' : s:cterm_line , 'light' : "252" }
let s:palette.cterm.comment = { 'dark' : s:cterm_comment , 'light' : "59" }
let s:palette.cterm.red = { 'dark' : s:cterm_red , 'light' : "52" }
let s:palette.cterm.orange = { 'dark' : s:cterm_orange , 'light' : "94" }
let s:palette.cterm.yellow = { 'dark' : s:cterm_yellow , 'light' : "58" }
let s:palette.cterm.green = { 'dark' : s:cterm_green , 'light' : "22" }
let s:palette.cterm.aqua = { 'dark' : s:cterm_aqua , 'light' : "23" }
let s:palette.cterm.blue = { 'dark' : s:cterm_blue , 'light' : "17" }
let s:palette.cterm.purple = { 'dark' : s:cterm_purple , 'light' : "53" }
let s:palette.cterm.darkcolumn = { 'dark' : "234" , 'light' : "244" }
let s:palette.cterm.addbg = { 'dark' : "65" , 'light' : "194" }
let s:palette.cterm.addfg = { 'dark' : "193" , 'light' : "22" }
let s:palette.cterm.changebg = { 'dark' : "60" , 'light' : "189" }
let s:palette.cterm.changefg = { 'dark' : "189" , 'light' : "53" }
let s:palette.cterm.delbg = { 'dark' : s:cterm_delbg , 'light' : "224" }
let s:palette.cterm.darkblue = { 'dark' : "17" , 'light' : "194" }
let s:palette.cterm.darkcyan = { 'dark' : "24" , 'light' : "22" }
let s:palette.cterm.darkred = { 'dark' : "52" , 'light' : "189" }
let s:palette.cterm.darkpurple = { 'dark' : "53" , 'light' : "53" }
"}}}
" Formatting Options:"{{{
" ----------------------------------------------------------------------------
let s:none = "NONE"
let s:t_none = "NONE"
let s:n = "NONE"
let s:c = ",undercurl"
let s:r = ",reverse"
let s:s = ",standout"
let s:b = ",bold"
let s:u = ",underline"
let s:i = ",italic"
"}}}
" Highlighting Primitives:"{{{
" ----------------------------------------------------------------------------
function! s:build_prim(hi_elem, field)
" Given a:hi_elem = bg, a:field = comment
let l:vname = "s:" . a:hi_elem . "_" . a:field " s:bg_comment
let l:gui_assign = "gui".a:hi_elem."=".s:palette.gui[a:field][s:style] " guibg=...
let l:cterm_assign = "cterm".a:hi_elem."=".s:palette.cterm[a:field][s:style] " ctermbg=...
exe "let " . l:vname . " = ' " . l:gui_assign . " " . l:cterm_assign . "'"
endfunction
let s:bg_none = ' guibg=NONE ctermbg=NONE'
call s:build_prim('bg', 'foreground')
call s:build_prim('bg', 'background')
call s:build_prim('bg', 'selection')
call s:build_prim('bg', 'line')
call s:build_prim('bg', 'comment')
call s:build_prim('bg', 'red')
call s:build_prim('bg', 'orange')
call s:build_prim('bg', 'yellow')
call s:build_prim('bg', 'green')
call s:build_prim('bg', 'aqua')
call s:build_prim('bg', 'blue')
call s:build_prim('bg', 'purple')
call s:build_prim('bg', 'window')
call s:build_prim('bg', 'darkcolumn')
call s:build_prim('bg', 'addbg')
call s:build_prim('bg', 'addfg')
call s:build_prim('bg', 'changebg')
call s:build_prim('bg', 'changefg')
call s:build_prim('bg', 'delbg')
call s:build_prim('bg', 'darkblue')
call s:build_prim('bg', 'darkcyan')
call s:build_prim('bg', 'darkred')
call s:build_prim('bg', 'darkpurple')
let s:fg_none = ' guifg=NONE ctermfg=NONE'
call s:build_prim('fg', 'foreground')
call s:build_prim('fg', 'background')
call s:build_prim('fg', 'selection')
call s:build_prim('fg', 'line')
call s:build_prim('fg', 'comment')
call s:build_prim('fg', 'red')
call s:build_prim('fg', 'orange')
call s:build_prim('fg', 'yellow')
call s:build_prim('fg', 'green')
call s:build_prim('fg', 'aqua')
call s:build_prim('fg', 'blue')
call s:build_prim('fg', 'purple')
call s:build_prim('fg', 'window')
call s:build_prim('fg', 'darkcolumn')
call s:build_prim('fg', 'addbg')
call s:build_prim('fg', 'addfg')
call s:build_prim('fg', 'changebg')
call s:build_prim('fg', 'changefg')
call s:build_prim('fg', 'darkblue')
call s:build_prim('fg', 'darkcyan')
call s:build_prim('fg', 'darkred')
call s:build_prim('fg', 'darkpurple')
exe "let s:fmt_none = ' gui=NONE". " cterm=NONE". " term=NONE" ."'"
exe "let s:fmt_bold = ' gui=NONE".s:b. " cterm=NONE".s:b. " term=NONE".s:b ."'"
exe "let s:fmt_bldi = ' gui=NONE".s:b. " cterm=NONE".s:b. " term=NONE".s:b ."'"
exe "let s:fmt_undr = ' gui=NONE".s:u. " cterm=NONE".s:u. " term=NONE".s:u ."'"
exe "let s:fmt_undb = ' gui=NONE".s:u.s:b. " cterm=NONE".s:u.s:b. " term=NONE".s:u.s:b."'"
exe "let s:fmt_undi = ' gui=NONE".s:u. " cterm=NONE".s:u. " term=NONE".s:u ."'"
exe "let s:fmt_curl = ' gui=NONE".s:c. " cterm=NONE".s:c. " term=NONE".s:c ."'"
exe "let s:fmt_ital = ' gui=NONE".s:i. " cterm=NONE".s:i. " term=NONE".s:i ."'"
exe "let s:fmt_stnd = ' gui=NONE".s:s. " cterm=NONE".s:s. " term=NONE".s:s ."'"
exe "let s:fmt_revr = ' gui=NONE".s:r. " cterm=NONE".s:r. " term=NONE".s:r ."'"
exe "let s:fmt_revb = ' gui=NONE".s:r.s:b. " cterm=NONE".s:r.s:b. " term=NONE".s:r.s:b."'"
exe "let s:sp_none = ' guisp=". s:none ."'"
exe "let s:sp_foreground = ' guisp=". s:palette.gui.foreground[s:style] ."'"
exe "let s:sp_background = ' guisp=". s:palette.gui.background[s:style] ."'"
exe "let s:sp_selection = ' guisp=". s:palette.gui.selection[s:style] ."'"
exe "let s:sp_line = ' guisp=". s:palette.gui.line[s:style] ."'"
exe "let s:sp_comment = ' guisp=". s:palette.gui.comment[s:style] ."'"
exe "let s:sp_red = ' guisp=". s:palette.gui.red[s:style] ."'"
exe "let s:sp_orange = ' guisp=". s:palette.gui.orange[s:style] ."'"
exe "let s:sp_yellow = ' guisp=". s:palette.gui.yellow[s:style] ."'"
exe "let s:sp_green = ' guisp=". s:palette.gui.green[s:style] ."'"
exe "let s:sp_aqua = ' guisp=". s:palette.gui.aqua[s:style] ."'"
exe "let s:sp_blue = ' guisp=". s:palette.gui.blue[s:style] ."'"
exe "let s:sp_purple = ' guisp=". s:palette.gui.purple[s:style] ."'"
exe "let s:sp_window = ' guisp=". s:palette.gui.window[s:style] ."'"
exe "let s:sp_addbg = ' guisp=". s:palette.gui.addbg[s:style] ."'"
exe "let s:sp_addfg = ' guisp=". s:palette.gui.addfg[s:style] ."'"
exe "let s:sp_changebg = ' guisp=". s:palette.gui.changebg[s:style] ."'"
exe "let s:sp_changefg = ' guisp=". s:palette.gui.changefg[s:style] ."'"
exe "let s:sp_darkblue = ' guisp=". s:palette.gui.darkblue[s:style] ."'"
exe "let s:sp_darkcyan = ' guisp=". s:palette.gui.darkcyan[s:style] ."'"
exe "let s:sp_darkred = ' guisp=". s:palette.gui.darkred[s:style] ."'"
exe "let s:sp_darkpurple = ' guisp=". s:palette.gui.darkpurple[s:style] ."'"
"}}}
" Vim Highlighting: (see :help highlight-groups)"{{{
" ----------------------------------------------------------------------------
exe "hi! ColorColumn" .s:fg_none .s:bg_line .s:fmt_none
" Conceal"
" Cursor"
" CursorIM"
exe "hi! CursorColumn" .s:fg_none .s:bg_line .s:fmt_none
exe "hi! CursorLine" .s:fg_none .s:bg_line .s:fmt_none
exe "hi! Directory" .s:fg_blue .s:bg_none .s:fmt_none
exe "hi! DiffAdd" .s:fg_addfg .s:bg_addbg .s:fmt_none
exe "hi! DiffChange" .s:fg_changefg .s:bg_changebg .s:fmt_none
exe "hi! DiffDelete" .s:fg_background .s:bg_delbg .s:fmt_none
exe "hi! DiffText" .s:fg_background .s:bg_blue .s:fmt_none
exe "hi! ErrorMsg" .s:fg_background .s:bg_red .s:fmt_stnd
exe "hi! VertSplit" .s:fg_window .s:bg_none .s:fmt_none
exe "hi! Folded" .s:fg_comment .s:bg_darkcolumn .s:fmt_none
exe "hi! FoldColumn" .s:fg_none .s:bg_darkcolumn .s:fmt_none
exe "hi! SignColumn" .s:fg_none .s:bg_darkcolumn .s:fmt_none
" Incsearch"
exe "hi! LineNr" .s:fg_selection .s:bg_none .s:fmt_none
exe "hi! CursorLineNr" .s:fg_yellow .s:bg_none .s:fmt_none
exe "hi! MatchParen" .s:fg_background .s:bg_changebg .s:fmt_none
exe "hi! ModeMsg" .s:fg_green .s:bg_none .s:fmt_none
exe "hi! MoreMsg" .s:fg_green .s:bg_none .s:fmt_none
exe "hi! NonText" .s:fg_selection .s:bg_none .s:fmt_none
exe "hi! Pmenu" .s:fg_foreground .s:bg_selection .s:fmt_none
exe "hi! PmenuSel" .s:fg_foreground .s:bg_selection .s:fmt_revr
" PmenuSbar"
" PmenuThumb"
exe "hi! Question" .s:fg_green .s:bg_none .s:fmt_none
exe "hi! Search" .s:fg_background .s:bg_yellow .s:fmt_none
exe "hi! SpecialKey" .s:fg_selection .s:bg_none .s:fmt_none
exe "hi! SpellCap" .s:fg_blue .s:bg_darkblue .s:fmt_undr
exe "hi! SpellLocal" .s:fg_aqua .s:bg_darkcyan .s:fmt_undr
exe "hi! SpellBad" .s:fg_red .s:bg_darkred .s:fmt_undr
exe "hi! SpellRare" .s:fg_purple .s:bg_darkpurple .s:fmt_undr
exe "hi! StatusLine" .s:fg_comment .s:bg_background .s:fmt_revr
exe "hi! StatusLineNC" .s:fg_window .s:bg_comment .s:fmt_revr
exe "hi! TabLine" .s:fg_foreground .s:bg_darkcolumn .s:fmt_revr
" TabLineFill"
" TabLineSel"
exe "hi! Title" .s:fg_yellow .s:bg_none .s:fmt_none
exe "hi! Visual" .s:fg_none .s:bg_selection .s:fmt_none
" VisualNos"
exe "hi! WarningMsg" .s:fg_red .s:bg_none .s:fmt_none
" FIXME LongLineWarning to use variables instead of hardcoding
hi LongLineWarning guifg=NONE guibg=#371F1C gui=underline ctermfg=NONE ctermbg=NONE cterm=underline
" WildMenu"
" Use defined custom background colour for terminal Vim.
if !has('gui_running') && exists("g:hybrid_custom_term_colors") && g:hybrid_custom_term_colors == 1
let s:bg_normal = s:bg_none
else
let s:bg_normal = s:bg_background
endif
exe "hi! Normal" .s:fg_foreground .s:bg_normal .s:fmt_none
"}}}
" Generic Syntax Highlighting: (see :help group-name)"{{{
" ----------------------------------------------------------------------------
exe "hi! Comment" .s:fg_comment .s:bg_none .s:fmt_none
exe "hi! Constant" .s:fg_red .s:bg_none .s:fmt_none
exe "hi! String" .s:fg_green .s:bg_none .s:fmt_none
" Character"
" Number"
" Boolean"
" Float"
exe "hi! Identifier" .s:fg_purple .s:bg_none .s:fmt_none
exe "hi! Function" .s:fg_yellow .s:bg_none .s:fmt_none
exe "hi! Statement" .s:fg_blue .s:bg_none .s:fmt_none
" Conditional"
" Repeat"
" Label"
exe "hi! Operator" .s:fg_aqua .s:bg_none .s:fmt_none
" Keyword"
" Exception"
exe "hi! PreProc" .s:fg_aqua .s:bg_none .s:fmt_none
" Include"
" Define"
" Macro"
" PreCondit"
exe "hi! Type" .s:fg_orange .s:bg_none .s:fmt_none
" StorageClass"
exe "hi! Structure" .s:fg_aqua .s:bg_none .s:fmt_none
" Typedef"
exe "hi! Special" .s:fg_green .s:bg_none .s:fmt_none
" SpecialChar"
" Tag"
" Delimiter"
" SpecialComment"
" Debug"
"
exe "hi! Underlined" .s:fg_blue .s:bg_none .s:fmt_none
exe "hi! Ignore" .s:fg_none .s:bg_none .s:fmt_none
exe "hi! Error" .s:fg_red .s:bg_darkred .s:fmt_undr
exe "hi! Todo" .s:fg_addfg .s:bg_none .s:fmt_none
" Quickfix window highlighting
exe "hi! qfLineNr" .s:fg_yellow .s:bg_none .s:fmt_none
" qfFileName"
" qfLineNr"
" qfError"
"}}}
" Diff Syntax Highlighting:"{{{
" ----------------------------------------------------------------------------
" Diff
" diffOldFile
" diffNewFile
" diffFile
" diffOnly
" diffIdentical
" diffDiffer
" diffBDiffer
" diffIsA
" diffNoEOL
" diffCommon
hi! link diffRemoved Constant
" diffChanged
hi! link diffAdded Special
" diffLine
" diffSubname
" diffComment
"}}}
"
" This is needed for some reason: {{{
let &background = s:style
" }}}
" Legal:"{{{
" ----------------------------------------------------------------------------
" Copyright (c) 2011 Ethan Schoonover
" Copyright (c) 2009-2012 NanoTech
" Copyright (c) 2012 w0ng
"
" Permission is hereby granted, free of charge, to any per
" son obtaining a copy of this software and associated doc
" umentation files (the “Software”), to deal in the Soft
" ware without restriction, including without limitation
" the rights to use, copy, modify, merge, publish, distrib
" ute, sublicense, and/or sell copies of the Software, and
" to permit persons to whom the Software is furnished to do
" so, subject to the following conditions:
"
" The above copyright notice and this permission notice
" shall be included in all copies or substantial portions
" of the Software.
"
" THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY
" KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
" THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICU
" LAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CON
" TRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON
" NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
" THE SOFTWARE.
" }}}

@ -0,0 +1,40 @@
require('keymap')
require('plugins')
require('calcurse')
-- prevent cursor override
vim.cmd('set guicursor=')
-- basic settings
vim.cmd('filetype plugin indent on')
vim.cmd('set ts=4 sts=4 sw=4 expandtab')
vim.opt.relativenumber = true
vim.opt.compatible = false
-- colorscheme and syntax settings
vim.cmd([[
syntax enable
colorscheme hybrid
hi Normal ctermbg=NONE
]])
-- defaults to transparent
transparent = true
-- timeouts
vim.opt.ttimeout = true
vim.opt.ttimeoutlen = 100
-- nvim tree basics
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
-- vimwiki changes
vim.cmd([[
let g:vimwiki_list = [{'path': '~/vimwiki/',
\ 'syntax': 'markdown', 'ext':'.md'}]
]])

@ -0,0 +1,7 @@
-- calcurse -> markdown
vim.api.nvim_create_autocmd({"BufRead","BufNewFile"}, {
pattern = {"/tmp/calcurse*","~/.local/share/calcurse/notes/*"},
command = "set filetype=markdown",
})

@ -0,0 +1,33 @@
require("transparent")
vim.g.mapleader = " "
vim.keymap.set("n", "<leader>b", ":lua toggleTransparent()<CR>")
-- nvim-tree bindings
vim.keymap.set("n", "<leader>t", ":NvimTreeToggle<CR>")
vim.keymap.set("n", "<leader>s", ":lua spellToggle()<CR>")
-- toggle spell check
function spellToggle()
if vim.o.spell == nil or vim.o.spell then
vim.o.spell = false
else
vim.o.spell = true
end
end
-- markdown preview
vim.keymap.set("n", "<leader>p", ":MarkdownPreviewToggle<CR>")
-- custom shell script to move windows
vim.cmd([[
function OpenMarkdownPreview (url)
execute "silent ! markdown-preview.sh " . a:url
endfunction
]])
vim.g.mkdp_browserfunc = 'OpenMarkdownPreview'

@ -0,0 +1,12 @@
require('tree')
-- airline settings
if vim.g.airline_symbols == nil then
vim.g.airline_symbols = vim.empty_dict()
end
vim.g.airline_powerline_fonts = 1
vim.g.airline_symbols.linenr = ''
vim.g.airline_symbols.maxlinenr = ''
vim.g.airline_symbols.dirty = ''

@ -0,0 +1,9 @@
function toggleTransparent()
transparent = not transparent
if transparent then
vim.cmd("hi Normal ctermbg=NONE")
else
vim.cmd("set background=dark")
vim.cmd("syntax enable")
end
end

@ -0,0 +1,40 @@
require('nvim-tree').setup({
open_on_tab = false,
filters = {
dotfiles = true,
},
actions = {
open_file = {
quit_on_open = true,
},
},
})
showHiddenFiles = false
local function open_nvim_tree(data)
-- buffer is a directory
local directory = vim.fn.isdirectory(data.file) == 1
local empty_file = data.file == ""
if not directory and not empty_file then
return
end
if directory then
vim.cmd.cd(data.file)
end
vim.cmd.enew()
vim.cmd.bw(data.buf)
-- change to directory and open
require("nvim-tree.api").tree.open()
end
-- toggle dotfiles visibility
vim.keymap.set("n", "<leader>d", ":lua require('nvim-tree.api').tree.toggle_hidden_filter()<CR>")
-- nvim-tree open at startup
vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree, })

@ -0,0 +1,8 @@
vim.cmd('packadd vim-go')
vim.g.go_hightlight_types = 1
vim.g.go_hightlight_fields = 1
vim.g.go_hightlight_functions = 1
vim.g.go_hightlight_function_calls = 1
vim.g.go_hightlight_operators = 1
vim.g.go_hightlight_extra_types = 1

@ -0,0 +1,14 @@
-- adding packages
vim.cmd('packadd vim-markdown')
vim.cmd('packadd vimwiki')
-- setting spell check
vim.cmd([[
setlocal spell
setlocal wrap
]])
-- markdown plugin settings
vim.opt.conceallevel = 2
vim.g.vim_markdown_folding_disabled = 1
vim.g.vim_markdown_math = 1
vim.g.vim_markdown_strikethrough = 1

@ -0,0 +1,2 @@
-- adding packages
vim.cmd('packadd vim-typescript')

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

@ -0,0 +1 @@
Subproject commit 23cc4bca2f586c8c2f7d2cb78bbbfec4b7361763

@ -0,0 +1 @@
Subproject commit 5d3d1b6cbdc4be0b4c6105c1ab1f769d76d3c68f

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

@ -0,0 +1 @@
Subproject commit 02cc3874738bc0f86e4b91f09b8a0ac88aef8e96

@ -0,0 +1 @@
Subproject commit 038e3a6ca59f11b3bb6a94087c1792322d1a1d5c

@ -0,0 +1 @@
Subproject commit 52f3ca3474d51f5021696ffb7297d989e49121ac

@ -0,0 +1 @@
Subproject commit 07d19f0299762669c6f93fbadb8249da6ba9de62

@ -0,0 +1 @@
Subproject commit 52f3ca3474d51f5021696ffb7297d989e49121ac

@ -17,8 +17,23 @@ set nocompatible
set background=dark
syntax enable
colorscheme hybrid
" default transparent bg
hi Normal guibg=NONE ctermbg=NONE
let t:is_transparent = 1
"toggle func
function! ToggleTransparent()
if t:is_transparent == 0
hi Normal guibg=NONE ctermbg=NONE
let t:is_transparent = 1
else
set background=dark
syntax enable
let t:is_transparent = 0
endif
endfunction
nnoremap <silent> <leader>b : call ToggleTransparent()<CR>
" syntax highlighting
" syntax highlighting for go
let g:go_highlight_types=1
let g:go_highlight_fields=1
let g:go_highlight_functions=1
@ -30,10 +45,12 @@ let g:go_highlight_extra_types=1
let g:vim_markdown_folding_disabled = 1
let g:vim_markdown_math = 1
let g:vim_markdown_strikethrough = 1
" let g:vim_markdown_new_list_item_indent = 4
" use md for vim wiki and disable global linking
let g:vimwiki_list = [{'path': '~/vimwiki/',
\ 'syntax': 'markdown', 'ext': '.md'}]
let g:vimwiki_global_ext = 0
" let g:vimwiki_global_ext = 0
" calcurse markdown support
autocmd BufRead,BufNewFile /tmp/calcurse* set filetype=markdown
@ -44,6 +61,7 @@ let g:airline_powerline_fonts = 1
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
" setting nf symbols
let g:airline_symbols.linenr = ''
let g:airline_symbols.maxlinenr = ''
@ -52,6 +70,11 @@ let g:airline_symbols.dirty = ''
" nerdtree settings
let NERDTreeHighlightCursorLine=1
let NERDTreeQuitOnOpen=1
" nerdtree tab settings
let g:nerdtree_tabs_open_on_console_startup=2
let g:nerdtree_tabs_autoclose=1
let g:nerdtree_tabs_smart_startup_focus=1
"let g:nerd
autocmd StdinReadPre * let s:std_in=1
" auto open on empty
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
@ -60,8 +83,8 @@ autocmd BufEnter * if bufname('#') =~ 'NERD_tree_\d\+' && bufname('%') !~ 'NERD_
\ let buf=bufnr() | buffer# | execute "normal! \<C-W>w" | execute 'buffer'.buf | endif
" nerdtree binds
nnoremap <silent> <leader>n :NERDTree<CR>
nnoremap <silent> <leader>t :NERDTreeMirror<CR>:NERDTreeToggle<CR>
nnoremap <silent> <leader>t :NERDTreeMirrorToggle<CR>
nnoremap <silent> <leader>n :NERDTreeFocusToggle<CR>
" nnoremap <C-f> :NERDTreeFocus<CR> going to conflict with fzf and I dont use
" this anyway
"
@ -118,3 +141,9 @@ inoremap <down> <NOP>
inoremap <left> <NOP>
inoremap <right> <NOP>
" " ale fixing for ts
" let g:ale_fixers = {
" \ '*': ['remove_trailing_lines', 'trim_whitespace'],
" \ 'typescript': ['eslint'],
" \}
" let g:ale_fix_on_save = 1

@ -1 +0,0 @@
/home/spinach/.dotfiles/gui/wallpapers/pine_tree.jpg

@ -1 +0,0 @@
/home/spinach/.dotfiles/gui/wallpapers/pine_tree.jpg

@ -1,14 +1,3 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
@ -23,23 +12,20 @@ smart_gaps on
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart
workspace 1 output DP-2
workspace 2 output DP-0
exec --no-startup-id dex --autostart --environment i3 'workspace 2; exec brave-bin; workspace 1; exec st'
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
exec --no-startup-id dex --autostart --environment i3
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock-blur --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
exec --no-startup-id nm-applet
# auto starting default applications
# assign [class="st-256color"] 1
# assign [title="startup-browser"] 2
exec --no-startup-id i3-msg "workspace 1; exec st -e tmux"
exec --no-startup-id i3-msg "workspace 2; exec brave"
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
@ -51,32 +37,35 @@ bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOU
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# move tiling windows via drag & drop by left-clicking into the title bar,
# or left-clicking anywhere into the window while holding the floating modifier.
#set tiling_drag modifier titlebar
# start a terminal
bindsym $mod+Return exec st
# lock the screen
bindsym $mod+q exec ~/.local/bin/i3lock-blur
bindsym $mod+q exec xset s activate
# kill focused window
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec --no-startup-id dmenu_run -b
# A more modern dmenu replacement is rofi:
# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
# There also is i3-dmenu-desktop which only displays applications shipping a
# .desktop file. It is a wrapper around dmenu, so you need that installed.
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
bindsym $mod+d exec --no-startup-id rofi-launcher
# setting up a vimscratch pad to use vimwiki
for_window [instance="todo"] move window to scratchpad
for_window [instance="cal"] move window to scratchpad
for_window [instance="spotify"] move window to scratchpad
for_window [instance="wiki"] move window to scratchpad
for_window [instance="scratch"] move window to scratchpad
# bindings
bindsym $mod+s exec i3-scratchpad.sh todo st -n todo -e vim ~/vimwiki/todo/index.md
bindsym $mod+c exec i3-scratchpad.sh cal st -n cal -e calcurse
bindsym $mod+m exec i3-scratchpad.sh spotify spotify
bindsym $mod+w exec i3-scratchpad.sh wiki st -n wiki -e vim ~/vimwiki/index.md
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
@ -85,10 +74,10 @@ bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
@ -97,17 +86,17 @@ bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+h split h
#bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
#bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
# bindsym $mod+s layout stacking
# bindsym $mod+w layout tabbed i never use these
bindsym $mod+e layout toggle split
# toggle tiling / floating
@ -174,10 +163,10 @@ mode "resize" {
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt
bindsym h resize shrink width 10 px or 10 ppt
bindsym j resize grow height 10 px or 10 ppt
bindsym k resize shrink height 10 px or 10 ppt
bindsym l resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
@ -193,15 +182,7 @@ mode "resize" {
bindsym $mod+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
# bar {
#status_command
# }
exec_always --no-startup-id picom-launch.sh
exec --no-startup-id picom-launch.sh
# background
exec_always --no-startup-id feh --bg-scale ~/.config/i3/wallpaper.jpg
# poly bar
exec_always --no-startup-id polybar-launch.sh
exec_always --no-startup-id ~/.fehbg

@ -0,0 +1,8 @@
include base.conf
# binding workspaces
workspace 1 output DP-2
workspace 2 output DP-0
# poly bar
exec_always --no-startup-id polybar-launch.sh desktop-bar

@ -0,0 +1,3 @@
include base.conf
# poly bar
exec_always --no-startup-id polybar-launch.sh thinkpad-bar

@ -0,0 +1,8 @@
include base.conf
# binding workspaces
workspace 1 output DP-2
workspace 2 output DP-1
# poly bar
exec_always --no-startup-id polybar-launch.sh work-bar

@ -1,127 +0,0 @@
[colors]
background = #1D1F21
background-alt = #373B41
foreground = #C5C8C6
primary = #F0C674
secondary = #8ABEB7
disabled = #707880
alert = #A54242
[bar/main-bar]
width = 100%
height = 24pt
radius = 5
; seperator
separator = |
separator-foreground = ${colors.disabled}
module-margin = 1
padding = 2
; font
font-0 = Hack Nerd Font;2
monitor = ${env:MONITOR:}
bottom = false
fixed-center = true
; hybrid bg color, might go lighter grey
background = ${colors.background}
; hybrid fg color, might go lighter if I go lighter grey
foreground = ${colors.foreground}
modules-left = xworkspaces xwindow
modules-center = weather
modules-right = pulseaudio memory cpu eth date
[module/xworkspaces]
type = internal/xworkspaces
label-active = %name%
label-active-background = ${colors.background-alt}
label-active-underline= ${colors.primary}
label-active-padding = 1
label-occupied = %name%
label-occupied-padding = 1
label-urgent = %name%
label-urgent-background = ${colors.alert}
label-urgent-padding = 1
label-empty = %name%
label-empty-foreground = ${colors.disabled}
label-empty-padding = 1
[module/xwindow]
type = internal/xwindow
label = %title:0:40:...%
[module/pulseaudio]
type = internal/pulseaudio
format-volume-prefix = "VOL "
format-volume-prefix-foreground = ${colors.primary}
format-volume = <label-volume>
label-volume = %percentage%%
label-muted = muted
label-muted-foreground = ${colors.disabled}
[module/weather]
type = custom/script
exec = weather -pd
interval = 30
[module/memory]
type = internal/memory
interval = 2
format-prefix = "RAM "
format-prefix-foreground = ${colors.primary}
label = %total%
format = <bar-used> <label>
bar-used-indicator =
bar-used-width = 10
bar-used-fill =
bar-used-empty = _
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = "CPU "
format-prefix-foreground = ${colors.primary}
label = %percentage:2%%
[network-base]
type = internal/network
interval = 5
format-connected = <label-connected>
format-connected-prefix = "ETH "
format-connected-prefix-foreground = ${colors.primary}
format-disconnected = <label-disconnected>
label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
[module/eth]
inherit = network-base
interface-type = wired
;label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
label-connected = %ifname% %linkspeed%
[module/date]
type = internal/date
date = %A, %b %d %l:%M %P
;date = %H:%M
date-alt = %Y-%m-%d %H:%M:%S
label = %date%
label-foreground = ${colors.primary}
[settings]
screenchange-reload = true

@ -1,139 +0,0 @@
[colors]
background = #1D1F21
background-alt = #373B41
foreground = #C5C8C6
primary = #F0C674
secondary = #8ABEB7
disabled = #707880
alert = #A54242
[bar/main-bar]
width = 100%
height = 24pt
radius = 5
; seperator
separator = |
separator-foreground = ${colors.disabled}
module-margin = 1
padding = 2
; font
font-0 = Hack Nerd Font;2
monitor = ${env:MONITOR:}
bottom = false
fixed-center = true
; hybrid bg color, might go lighter grey
background = ${colors.background}
; hybrid fg color, might go lighter if I go lighter grey
foreground = ${colors.foreground}
modules-left = xworkspaces xwindow
modules-center = weather
modules-right = battery pulseaudio memory cpu eth date
[module/xworkspaces]
type = internal/xworkspaces
label-active = %name%
label-active-background = ${colors.background-alt}
label-active-underline= ${colors.primary}
label-active-padding = 1
label-occupied = %name%
label-occupied-padding = 1
label-urgent = %name%
label-urgent-background = ${colors.alert}
label-urgent-padding = 1
label-empty = %name%
label-empty-foreground = ${colors.disabled}
label-empty-padding = 1
[module/xwindow]
type = internal/xwindow
label = %title:0:40:...%
[module/pulseaudio]
type = internal/pulseaudio
format-volume-prefix = "VOL "
format-volume-prefix-foreground = ${colors.primary}
format-volume = <label-volume>
label-volume = %percentage%%
label-muted = muted
label-muted-foreground = ${colors.disabled}
[module/weather]
type = custom/script
exec = weather -pd
interval = 30
[module/memory]
type = internal/memory
interval = 2
format-prefix = "RAM "
format-prefix-foreground = ${colors.primary}
label = %total%
format = <bar-used> <label>
bar-used-indicator =
bar-used-width = 10
bar-used-fill =
bar-used-empty = _
[module/battery]
type = internal/battery
poll-interval = 5
low-at = 10
format-charging = <label-charging>
format-discharging = <label-discharging>
label-charging = %percentage%% %time%
label-discharging = %percentage%% %time%
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = "CPU "
format-prefix-foreground = ${colors.primary}
label = %percentage:2%%
[network-base]
type = internal/network
interval = 5
format-connected = <label-connected>
format-disconnected = <label-disconnected>
label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
[module/eth]
inherit = network-base
interface-type = wired
label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
[module/date]
type = internal/date
date = %A, %b %d %l:%M %P
;date = %H:%M
date-alt = %Y-%m-%d %H:%M:%S
label = %date%
label-foreground = ${colors.primary}
[settings]
screenchange-reload = true

@ -1,144 +0,0 @@
[colors]
background = #1D1F21
background-alt = #373B41
foreground = #C5C8C6
primary = #F0C674
secondary = #8ABEB7
disabled = #707880
alert = #A54242
[bar/main-bar]
width = 100%
height = 16pt
radius = 5
; seperator
separator = |
separator-foreground = ${colors.disabled}
module-margin = 1
padding = 2
; font
font-0 = Hack Nerd Font:size=10;2
monitor = ${env:MONITOR:}
bottom = false
; hybrid bg color, might go lighter grey
background = ${colors.background}
; hybrid fg color, might go lighter if I go lighter grey
foreground = ${colors.foreground}
modules-left = xworkspaces xwindow weather
modules-right = battery pulseaudio memory cpu wlan date
[module/xworkspaces]
type = internal/xworkspaces
label-active = %name%
label-active-background = ${colors.background-alt}
label-active-underline= ${colors.primary}
label-active-padding = 1
label-occupied = %name%
label-occupied-padding = 1
label-urgent = %name%
label-urgent-background = ${colors.alert}
label-urgent-padding = 1
label-empty = %name%
label-empty-foreground = ${colors.disabled}
label-empty-padding = 1
[module/xwindow]
type = internal/xwindow
label = %title:0:20:...%
[module/pulseaudio]
type = internal/pulseaudio
format-volume-prefix = "VOL "
format-volume-prefix-foreground = ${colors.primary}
format-volume = <label-volume>
label-volume = %percentage%%
label-muted = muted
label-muted-foreground = ${colors.disabled}
[module/weather]
type = custom/script
exec = weather -p
interval = 30
[module/memory]
type = internal/memory
interval = 2
format-prefix = "RAM "
format-prefix-foreground = ${colors.primary}
label = %percentage_used%%
format = <label>
[module/battery]
type = internal/battery
poll-interval = 10
low-at = 10
format-discharging-prefix = "BAT "
format-discharging-prefix-foreground = ${colors.primary}
format-discharging = <label-discharging>
format-charging-prefix = "CHR "
format-charging-prefix-foreground = ${colors.primary}
format-charging = <label-charging>
time-format = %l:%M
label-charging = %percentage%%%time%
label-discharging = %percentage%%%time%
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = "CPU "
format-prefix-foreground = ${colors.primary}
label = %percentage%%
[network-base]
type = internal/network
interval = 5
format-connected = <label-connected>
format-connected-foreground = ${colors.primary}
format-disconnected = <label-disconnected>
format-disconnected-foreground = ${colors.disabled}
[module/wlan]
inherit = network-base
interface-type = wireless
label-connected = %ifname%
[module/eth]
inherit = network-base
interface-type = wired
label-connected = %{F#F0C674}%ifname%%{F-} %net_speed%
[module/date]
type = internal/date
date = %a, %b %d %l:%M %P
;date = %H:%M
date-alt = %Y-%m-%d %H:%M:%S
label = %date%
label-foreground = ${colors.primary}
[settings]
screenchange-reload = true

@ -0,0 +1,297 @@
[colors]
background = #001D1F21
background-alt = #373B41
#foreground = #C5C8C6
foreground = #DDD
primary = #F0C674
secondary = #8ABEB7
disabled = #707880
alert = #A54242
[section/base-bar]
; base bar settings
width = 100%
radius = 5
; font
font-0 = Hack Nerd Font;2
; ipc
enable-ipc = true
; seperator
separator = |
separator-foreground = ${colors.disabled}
module-margin = 1
padding = 2
; multi-monitor support
monitor = ${env:MONITOR}
; places bar at the top
bottom = false
fixed-center = true
; hybrid bg color, might go lighter grey
background = ${colors.background}
; hybrid fg color, might go lighter if I go lighter grey
foreground = ${colors.foreground}
[bar/thinkpad-bar]
; thinkpad bar conf
inherit = section/base-bar
font-0 = Hack Nerd Font:size=10;2
height = 14pt
; modules
modules-left = xworkspaces weather-thinkpad
modules-right = battery pulseaudio memory cpu wlan uptime seafile calendar-sync bg-selector date-tp powermenu
[bar/desktop-bar]
; desktop bar config
inherit = section/base-bar
; height
height = 24pt
; modules
modules-left = xworkspaces focus spotify spotify-len todo
;modules-left = xworkspaces spotify spotify-len
modules-center = weather-desktop
modules-right = pulseaudio memory cpu temperature eth dev-bat seafile calendar-sync bg-selector quotes date powermenu
[bar/work-bar]
; desktop bar config
inherit = section/base-bar
; height
height = 24pt
; modules
modules-left = xworkspaces focus todo
;modules-left = xworkspaces spotify spotify-len
modules-center = weather-desktop
modules-right = memory cpu temperature eth bg-selector date powermenu
[module/xworkspaces]
type = internal/xworkspaces
label-active = %name%
label-active-background = ${colors.background-alt}
label-active-underline= ${colors.primary}
label-active-padding = 1
label-occupied = %name%
label-occupied-padding = 1
label-urgent = %name%
label-urgent-background = ${colors.alert}
label-urgent-padding = 1
label-empty = %name%
label-empty-foreground = ${colors.disabled}
label-empty-padding = 1
format = <label-state>
[module/focus]
; correct title size
type = custom/script
interval = 0.2
exec = ~/.dotfiles/bin/focus_class
[module/pulseaudio]
type = internal/pulseaudio
format-volume-prefix = "VOL "
format-volume-prefix-foreground = ${colors.primary}
format-volume = <label-volume>
label-volume = %percentage%%
label-muted = muted
label-muted-foreground = ${colors.disabled}
[section/weather]
type = custom/script
interval = 30
; left click is forecast
click-left = i3-scratchpad.sh scratch st -n scratch -e weather -f
; middle click is nerdfont forecast
click-middle = i3-scratchpad.sh scratch st -n scratch -e weather -pf
; right click is radar
click-right = weather -r
[module/weather-thinkpad]
; no desc to shorten
inherit = section/weather
exec = weather -p
[module/weather-desktop]
; longer desc
inherit = section/weather
exec = weather -pd
[module/memory]
type = internal/memory
interval = 2
format-prefix = "RAM "
format-prefix-foreground = ${colors.primary}
label = %used%
format = <label>
[module/battery]
type = internal/battery
poll-interval = 10
low-at = 10
format-discharging-prefix = "BAT "
format-discharging-prefix-foreground = ${colors.primary}
format-discharging = <label-discharging>
format-charging-prefix = "CHR "
format-charging-prefix-foreground = ${colors.primary}
format-charging = <label-charging>
time-format = %H:%M
label-charging = %percentage%% %time%
label-discharging = %percentage%% %time%
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = "%{A1:i3-scratchpad.sh scratch st -n scratch -e zfxtop:}CPU %{A}"
format-prefix-foreground = ${colors.primary}
label = %percentage%%
; zfxtop for monitoring
[module/temperature]
type = internal/temperature
format-prefix = "TEMP "
format-prefix-foreground = ${colors.primary}
units = true
label = %temperature-c%
[network-base]
type = internal/network
interval = 5
format-connected-prefix = "NET "
format-connected-prefix-foreground = ${colors.primary}
format-connected = <label-connected>
; packet loss
animation-packetloss-0 = "⚠ "
animation-packetloss-0-foreground = #e1e815
animation-packetloss-1 = "⚠ "
animation-packetloss-1-foreground = #000000
format-packetloss = <animation-packetloss> <label-connected>
;format-connected-foreground = ${colors.primary}
format-disconnected = <label-disconnected>
format-disconnected-foreground = ${colors.disabled}
[module/wlan]
inherit = network-base
interface-type = wireless
label-connected = %signal%%
[module/eth]
inherit = network-base
interface-type = wired
label-connected = %linkspeed%
[module/date]
type = internal/date
date = %A, %b %d %l:%M %P
;date alt is for laptop
date-alt = %a, %b %d %l:%M %P
label = %date%
label-foreground = ${colors.primary}
[module/date-tp]
type = internal/date
date = %a, %b %d %l:%M %P
label = %date%
label-foreground = ${colors.primary}
[module/seafile]
; custom seafile script
type = custom/script
exec = seafile_check
interval = 3
[module/powermenu]
type = custom/text
content = %{F#F30} 
click-left = rofi-powermenu
[module/spotify]
; playerctl interaction for spotify
type = custom/script
tail = true
; spotify logo
format-prefix = " "
format-prefix-foreground = "#1ed760"
exec = poly_spotify --scroll 20
click-left = poly_spotify --toggle
click-right = rofi-music
[module/spotify-len]
; playerctl interaction for spotify
type = custom/script
interval = 1
exec = playerctl --player=spotify metadata -s --format '{{duration(position)}}/{{duration(mpris:length)}}'
[module/todo]
; uses calcurse to cycle through todo items
type = custom/script
interval = 1
exec = todo_display.sh
click-left = todo_display.sh inc
click-right = todo_display.sh dec
[module/dev-bat]
; grabs mouse power from custom script
type = custom/script
interval = 5
exec = device_battery.sh -dc
click-left = i3-scratchpad.sh scratch st -n scratch -e bluetuith
[module/calendar-sync]
; clickable sync for calendar
type = custom/ipc
hook-0 = echo -e '\uf073'
hook-1 = echo -e '%{F#0F0}\uf274'
hook-2 = echo -e '%{F#F00}\uf273'
hook-3 = echo -e '%{F#FF0}\uf073'
initial = 1
click-left = calcurse-sync.sh
[module/bg-selector]
; select background
type = custom/script
interval = 60
exec = echo -e '\uf1c5'
click-left = wallpaper.sh -s
[module/quotes]
type = custom/script
interval = 120
exec = echo -e '\ueaa4'
; left click is random quote
click-left = i3-scratchpad.sh scratch st -n scratch -e quotes -rl
; right click is daily quote
click-right = i3-scratchpad.sh scratch st -n scratch -e quotes -dl
[module/uptime]
type = custom/script
interval = 30
format-prefix = "UP "
format-prefix-foreground = ${colors.primary}
exec = display_uptime
[settings]
screenchange-reload = true

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

@ -8,7 +8,6 @@
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
@ -23,9 +22,10 @@ smart_gaps on
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart
workspace 1 output DP-2
workspace 2 output DP-0
exec --no-startup-id dex --autostart --environment i3
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
@ -33,11 +33,18 @@ exec --no-startup-id dex --autostart --environment i3
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- ~/.local/bin/i3lock-blur --nofork
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock-blur --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
exec --no-startup-id nm-applet
#exec --no-startup-id nm-applet
# loading layout
assign [class="st-256color"] 1
assign [class="Brave-browser"] 2
exec --no-startup-id st -e tmux
exec --no-startup-id brave
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
@ -49,32 +56,36 @@ bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOU
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# move tiling windows via drag & drop by left-clicking into the title bar,
# or left-clicking anywhere into the window while holding the floating modifier.
#set tiling_drag modifier titlebar
# start a terminal
bindsym $mod+Return exec st
# lock the screen
bindsym $mod+q exec ~/.local/bin/i3lock-blur
bindsym $mod+q exec swaylock
# kill focused window
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec --no-startup-id dmenu_run -b
# A more modern dmenu replacement is rofi:
bindsym $mod+d exec --no-startup-id rofi-launcher
# setting up a vimscratch pad to use vimwiki
for_window [instance="todo"] move window to scratchpad
for_window [instance="cal"] move window to scratchpad
exec --no-startup-id st -n todo -e vim ~/vimwiki/todo/index.md
exec --no-startup-id st -n cal -e calcurse
bindsym $mod+s [instance="todo"] scratchpad show
bindsym $mod+c [instance="cal"] scratchpad show
# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
# There also is i3-dmenu-desktop which only displays applications shipping a
# .desktop file. It is a wrapper around dmenu, so you need that installed.
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
@ -95,16 +106,16 @@ bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+h split h
#bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
#bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
# bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
@ -172,10 +183,10 @@ mode "resize" {
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt
bindsym h resize shrink width 10 px or 10 ppt
bindsym j resize grow height 10 px or 10 ppt
bindsym k resize shrink height 10 px or 10 ppt
bindsym l resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
@ -197,9 +208,9 @@ bindsym $mod+r mode "resize"
#status_command
# }
exec_always --no-startup-id picom-launch.sh
#exec --no-startup-id picom-launch.sh
# background
exec_always --no-startup-id feh --bg-scale ~/.config/i3/wallpaper.jpg
output "*" bg ~/.config/i3/wallpaper.jpg fill
# poly bar
exec_always --no-startup-id polybar-launch.sh
exec_always --no-startup-id polybar-launch.sh desktop-bar

@ -0,0 +1 @@
/home/keegan/.dotfiles/gui/wallpapers/pine_tree.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

@ -10,3 +10,6 @@
- clean:
~/:
~/.config:
~/.config/systemd/user:
~/.local/bin:
~/.local/share:

@ -1,2 +1,3 @@
- link:
~/.config/calcurse: tui/calcurse
~/.local/bin/calcurse-sync.sh: bin/calcurse-sync.sh

@ -1,6 +1,10 @@
- shell:
- [cd src/i3lock-blur && make install, Building i3lock]
- clean:
~/.config/i3:
~/.local/share/wallpapers:
- link:
~/.config/i3: gui/i3-desktop
~/.config/i3/wallpaper.jpg: gui/wallpapers/pine_tree.jpg
~/.config/i3/config: gui/i3/desktop.conf
~/.local/bin/wallpaper.sh: bin/wallpaper.sh

@ -1,6 +0,0 @@
- shell:
- [cd src/i3lock-blur && make install, Building i3lock]
- link:
~/.config/i3: gui/i3-laptop
~/.config/i3/wallpaper.jpg: gui/wallpapers/pine_tree.jpg

@ -0,0 +1,10 @@
- shell:
- [cd src/i3lock-blur && make install, Building i3lock]
- clean:
~/.config/i3:
~/.local/share/wallpapers:
- link:
~/.config/i3/config: gui/i3/thinkpad.conf
~/.local/bin/wallpaper.sh: bin/wallpaper.sh

@ -0,0 +1,9 @@
- shell:
- [cd src/i3lock-blur && make install, Building i3lock]
- clean:
~/.config/i3:
~/.local/share/wallpapers:
- link:
~/.config/i3/config: gui/i3/work.conf
~/.local/bin/wallpaper.sh: bin/wallpaper.sh

@ -0,0 +1,7 @@
- clean:
~/.config/nvim:
~/.local/share/nvim:
- link:
~/.config/nvim: editors/nvim/config
~/.local/share/nvim/site: editors/nvim/site

@ -1,6 +1,10 @@
- shell:
- [bin/oh-my-zsh-check.sh]
- link:
~/.oh-my-zsh/custom:
path: shells/oh-my-zsh/custom
force: true
~/.oh-my-zsh/custom/plugins/:
path: shells/oh-my-zsh/custom/plugins/**
glob: true
~/.oh-my-zsh/custom/themes/:
path: shells/oh-my-zsh/custom/themes/**
glob: true

@ -0,0 +1,4 @@
- link:
~/.config/pam-gnupg: passwords/pam-gnupg
~/.gnupg: passwords/gnupg
~/.password-store: passwords/password-store

@ -1,3 +0,0 @@
- link:
~/.config/polybar: gui/polybar-desktop
~/.local/bin/polybar-launch.sh: bin/polybar-launch.sh

@ -1,3 +0,0 @@
- link:
~/.config/polybar: gui/polybar-thinkpad
~/.local/bin/polybar-launch.sh: bin/polybar-launch.sh

@ -1,3 +1,3 @@
- link:
~/.config/polybar: gui/polybar-laptop
~/.config/polybar: gui/polybar
~/.local/bin/polybar-launch.sh: bin/polybar-launch.sh

@ -0,0 +1,2 @@
- link:
~/.config/rofi: gui/rofi

@ -7,9 +7,16 @@
- link:
~/.local/bin/ssh_agent_check: bin/ssh_agent_check
~/.local/bin/poly_spotify: bin/poly_spotify
~/.local/bin/i3-scratchpad.sh: bin/i3-scratchpad.sh
~/.local/bin/todo_display.sh: bin/todo_display.sh
~/.local/bin/display_uptime: bin/display_uptime
~/.local/bin/markdown-preview.sh: bin/markdown-preview.sh
~/.local/bin/docker_check: bin/docker_check
~/.local/bin/seafile_check: bin/seafile_check
~/.local/bin/watertracker: src/watertracker/watertracker
~/.local/bin/device_battery.sh: src/device-battery/device_battery.sh
~/.local/bin/weather: src/weather/weather
~/.local/bin/bluebikes: src/bluebikes/bluebikes
~/.local/bin/quotes: src/quotes/quotes.sh
~/.local/bin/tmux-mem-cpu-load: src/tmux-mem-cpu-load/tmux-mem-cpu-load

@ -0,0 +1,8 @@
- link:
~/.config/systemd/user/seafile.service: services/seafile.service
- shell:
-
command: "yay --sudoloop --nodiffmenu --noeditmenu --noupgrademenu --nocleanmenu --noredownload --norebuild --useask --needed -S seafile seafile-client"
description: "Installing seafile"
- command: "systemctl --user enable seafile && systemctl --user start seafile"

@ -1,3 +1,3 @@
- shell:
- [rm shells/st/config.h && cp shells/st-desktop/config.h shells/st/, Copying config]
- [cd shells/st && sudo make install, Installing st]
- [cd shells/st && sudo make install && make clean, Installing st]

@ -1,3 +0,0 @@
- shell:
- [rm shells/st/config.h && cp shells/st-laptop/config.h shells/st/, Copying config]
- [cd shells/st && sudo make install, Installing st]

@ -0,0 +1,3 @@
- shell:
- [rm shells/st/config.h && cp shells/st-thinkpad/config.h shells/st/, Copying config]
- [cd shells/st && sudo make install, Installing st]

@ -0,0 +1,3 @@
- shell:
- [rm shells/st/config.h && cp shells/st-work/config.h shells/st/, Copying config]
- [cd shells/st && sudo make install, Installing st]

@ -0,0 +1,3 @@
- link:
~/.config/sway: gui/sway-desktop
~/.config/sway/wallpaper.jpg: gui/wallpapers/pine_tree.jpg

@ -3,14 +3,18 @@ arch.i3
arch.picom
arch.polybar
vim
nvim
zsh
oh-my-zsh
fzf
tmux.sparse
st.desktop
i3.desktop
polybar.desktop
polybar
picom
rofi
lf
scripts
calcurse
seafile
passwords

@ -1,16 +0,0 @@
arch.base
arch.i3
arch.picom
arch.polybar
vim
zsh
oh-my-zsh
fzf
tmux.sparse
st.laptop
i3.laptop
polybar.laptop
picom
lf
scripts
calcurse

@ -7,10 +7,13 @@ zsh
oh-my-zsh
fzf
tmux.sparse
st.laptop
i3.laptop
polybar.thinkpad
st.thinkpad
i3.thinkpad
polybar
picom
rofi
lf
scripts
calcurse
seafile
passwords

@ -7,11 +7,11 @@ zsh
oh-my-zsh
fzf
tmux.sparse
st
i3
st.work
i3.work
picom
polybar.desktop
polybar
rofi
lf
scripts
timetracker
calcurse

@ -0,0 +1,3 @@
default-cache-ttl 86400
max-cache-ttl 86400
allow-preset-passphrase

@ -0,0 +1,37 @@
This is a revocation certificate for the OpenPGP key:
pub rsa4096 2023-02-22 [S]
0BA0EDD5955DEF50547255F19AC1E4C2CC9412F0
uid spinach <spinach@spin.ach>
A revocation certificate is a kind of "kill switch" to publicly
declare that a key shall not anymore be used. It is not possible
to retract such a revocation certificate once it has been published.
Use it to revoke this key in case of a compromise or loss of
the secret key. However, if the secret key is still accessible,
it is better to generate a new revocation certificate and give
a reason for the revocation. For details see the description of
of the gpg command "--generate-revocation" in the GnuPG manual.
To avoid an accidental use of this file, a colon has been inserted
before the 5 dashes below. Remove this colon with a text editor
before importing and publishing this revocation certificate.
:-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: This is a revocation certificate
iQI2BCABCAAgFiEEC6Dt1ZVd71BUclXxmsHkwsyUEvAFAmP2qgwCHQAACgkQmsHk
wsyUEvDt4w//Tk5Y6NS0291OLn1atyPqD9QeQN4GorYhXxygBPRqGLCVtd6fYNPi
/k2bkiOJy3Wlgos+iLDJ/qIDGm+F1Yf+5ohHv5b8EN2o+kAb69czMhLYNM8OrN5R
L2mbwHBfZ/D9u5Bb20DQXND9fdeGyg+N1KXkXqyuA+xXlbeWLT9f/tWKZ3iHwoHn
eKTjkrQIuraDxx7y0GdGnZDyN0Z92xTegdiDhDMf1LbzHDyJvQ2O8uv9A2IoZjlf
FRdxHoB+oFZnSg0DUrEqgwnrKmwo+M6QzI8dAE/S5RIkpiQq/XawMQp7U0jVQm8j
R1ppxtugrv5Hrs71ELxmVM9OAMEI+cLgjB4eUtDjvYzT40fXBlOJB8LBAIBzhcmU
4/pwc9i/gS7f06hhihI1xMzHuv8VbZbLXW1raYOAwmYisDMNO+EcXTYN3yl/gVZE
vOFs1PcYmalQc8WbYCVpwjGKzEp5GYRm2ll4zoeKcagqg4tbpcb0UBf4NPA8b9oX
v3QKMBKv470brNMPVmiUdtMgXzkjP7LE/ksUH/khYBHwAJGlpS3Cl4n5oohzcKI2
QvWRfHi7UoNBbD2RLMmF8enp+XZoC1uiPFd4S36JBomMz+XdhPdBHze5951RF51w
PYmFSQ8OoeaSri46jOEPMu3cggDBxGdnwNN+tYfFt6Sn2TquhT3+NO4=
=MD6+
-----END PGP PUBLIC KEY BLOCK-----

@ -0,0 +1,57 @@
Created: 20230222T234843
Key: (protected-private-key (rsa (n #00CF34CB3D28FA931C9B228B07AEB99DBA
23676E9ACB5220F2810E3B8B008D1AAC46A0CEA4935CA54B7D8ACAAF9769998D87B374
971710FAB210DA72C81F954E5C85D370BF66970E7085CA753EFA5AB8F039C7FF95956B
76F3781C6E5AA36FB3B0339305C4769ACD7C72F792E4B938E0EAD7E38E5E012BDE52FB
703808B0198D3C9FBA4F21AEC61A283E09677052AEEA6EC3ACF8738AFCD3558123C173
3B3BBF8D59BAE4AB58CF8EB7BAFC74DFD587A0C9FDA384C99AB4B695AF6EBCEDBFD875
906C7DA7FE2AE1A8ADD9AC15D195351B91F455210A4E143A985C5EAA74B272F6C4948C
AA12765A212A500EE05F69328275CF3C41FBFF77B4CA4EC1FBF6B7D91EBD2CD1AA6AFC
702DE0D81EDB65AAE3210E4DE3CF0176A015271F6CE78DBEF80719CF7266BC84C749E6
4F4AA726674DDEEE06157B514ADE01766071A3CF1D2FCD2E47A1F38197D1B869F30BD2
0EBB1A9E60C100DA033076661CC1DD773364FB32DA9093A2797AA576EC017B85008323
669A6B5EBA065DBC9AC1EC9FD51F99EC944EF397EEA599EBA385AEE04132F02818017C
B1B05A13498FD7DBAA290B02DEB8E27F23BD5010A2AC146EA72D269E3E05A5AF049578
260AB1066719C85CDA6F4557493A6B98DBC25692B8FB5156459CA132A8AE75607CEFBB
F6FFBC6FD53ECBFE2BC41E6ECE7EEB3C47A1B3DE34E8ED0AFA2E7DA6C1370382CF250E
6A522C9DB71D#)(e #010001#)(protected openpgp-s2k3-ocb-aes ((sha1
#DFAF51F1DB763DB4# "112787456")#7881CA29AAC0C6B9F8EFDC7F#)#0C4FFC3323
6B3FCDFFA2250E479AC80FA638B73154A1CF77C42C6F0E519332410F99778ABF3537A4
3791A471C287BA6A816F04523DD2676FB084031A83B0E2A204A2F740AEDD7C096AD6E8
334F06CF05BB30D0ED207C7550CEA33D134363BA40877B34DBB382EBE0AC1A0B258AA2
03FCB3F24D6F45857D967FF84A8208E793EB538924615F3427BD64A3D43DCFDC8FDD30
BC8029F1A8985F271B7182978412E39399FD1432C6DD9CBCE8F51875632B269318D172
7E1D003A2E4F49015E250C45F45E5F478E04AF481E387305415B3EDF4B6DDA9DC9BC62
75F4D3E76FEE0BD0FC1F7784001B3E18144DEE5C8ACBC91B9097A980D78DE0AE3F677A
0AFFC4512D190011F402B7381C66904B182F004081E561A226226E5A7CEA8353F6CDA7
D62FF6082138B317787458DE10BBDA92D5B6806FD00F61D24E40A2D5485C8001E3A20C
D9F98965F5F764EFDBDF629DA1C9F2EA5160965127637520E72303044B56B1223C6E7F
728D53F6EE1777DAE71E7CF73C03E22CE13D9C7A4282550189A4F200DC57729C6FF2E2
B86A22886E725F4262C01FEE8EFD124D8905B9A0DA0AAC09AE99963EC98CCE36B23C11
5AA78347F1824F5A1C5301B908FF272338FDCBFE1020B5F70D1557AC89BCC294E191E0
FB1E3A8EDFFD814F53481E282AEF2B981C8631A017085E79FB9F90BBDA0D26D3C8E4C7
09BB7B9479B589FE16440984153E713A7954789188D7D0E9C7C71D49E242CC908C3B0C
87BB8642FA985ADA2511C4FB20C25C793779032FA292E50459F6A2CFFDA4FBB52FA65D
28CE2E48F08091DB1BC09B19C9BA76AD92B8CA712D1F1743912775BA361FC5E378FACA
85D897393DE7CA9C32D6DB6B0B4A63902D58D91E6DFB43B6E42A36969CE326A62A6B67
43A360C7272C09367D51F027A2E92B43751E326910804FB0B808A9DCFD5B63A9971199
8EF926166037472943FB3EA24580A067F06787A3774D14694EF27C9AE0A59BE50EEE75
0FB3297E7A272086773DADDCABBD66F4DA6BE7693EA3BAD4AB2D31899C3B2491064769
A2F36714A311AFA282D9B469A39C5F45873243398FECDF29499E6385D9B299EFE5A217
D1CAC4EDA6418784033A93C6B5F795B10AF9904BB681EAB4FA98C6B72F937281378B44
928F3A106F5FA700AC8F348D4959ABB47B062E93315A7E775A3C1F4E73B59047A7EDA6
411D208895F1AA47F8FEAD25634512E41F05418F927AAC26B69AB76DA3AFCCB6E3BD35
386A2A58289853F4296FE3C8077CEE3765599EA3165B8AEB5E544CEE094BE83B159C12
3794B0E22DA86CEEA0D0679C2528BFCEEFAEAA9B1623A7FAB0203FE9D8290A7AD89073
E794BB5FF2D5715B796A6B2014EC056E0834CDFC1B598FB694715D6B1912F4D1F76ACF
64874B796329EE7DBF82D8552493C68E983ECA1A1D65E676558CFF56E3FBA36A7EDE16
AB5ACD9C9657DB4B0B89A5C02A09EAD7D1C6223F9295100C81EB8E1D6CF0662677E4E1
4FEFF555ADC46A9D406D9EBC03E4196F811FDAD01007B87F1615B73C381199B95BACA3
134289906B540574F7A0650E090BC9CFF99AE437886D8DA52DFF482089AEA67902486F
DD0BC3C2CFCF1562B5E4DB79A21A35779ADF626FDFB41FD9D5474A4A3558BB629F8287
E1C5E7C3821207104A7808521381C946B796209A6B7861D636C4E9B7FB9CE3C4A89B3B
9BBA104CA971AA7D170E945A76FE1558E13D1EC274C703D9774F8E09B4F72B915DAF6E
443513BFC097AB00E900C0B7BB3AC054D246C264D18CA7B6713BB8BD67A326D063392C
13C75AC11A4264C1C1B8DE912C5D3F7189DADE494814E9C413AE84635A34030F8E1FF0
EC7DCE4A4674498EEFBC492D5D2B2458C24775E01E96AA22853BECC59DA52C9628BEB3
A197CECD#)(protected-at "20230223T033446")))

@ -0,0 +1,57 @@
Created: 20230222T234843
Key: (protected-private-key (rsa (n #00AFC83282AFC426C0C64D0B8BAF59420B
B052E6DC77A873B9B07921995F2026DE1AC9726399EE519E2BCD85AEE737863283CBFB
9C11136E12789B2E58BBB55FD7830AA6F5746E1975AAD8FB048CBD8F30E79A3D76EE20
496F530C254CCEC5485AEC76EA89AC77E2845F3270B10BCDA4FA3AF4A93B8B4B0263B4
70D1584B2D0BD9C60DEEE009124630E9C30F80414F7C1A6D97651997979DAA8F153334
DBDD2D1B4B0A3A5B6D88606C64301E841DED09919590E728F96715E900C34EEB05D95C
A16253D53DCB61877ADB5F5D1EAC9C0B3D657107F5259365F4AF5E00426C8E54182F41
D8345452E399881EDE0BF3B6BEB06B0A0662A624A1E0F62774C7D019D5FA20D6AE7A8C
73F5A205885775ECCA3E57CE708F09F1B649DD35634B93CCCA57B3411A199B47D505D3
97B42B5486FE7EDFBAED026ADFE84C0D6031B771F5E4560CBFA7FD575FEBBFF5EDFAB7
7EB1FE9956BB580535FAF71AB5D0DEEE6DC8748B03A50C52C2A92D40A2FEA8AD3B933D
FB87B26B8F25AB5ED6773EE890937C2A02051A9A9D0DF66124D863F1C7A60747A9A6C1
6274C34A5F0ED5403CAA0C49D161214821D8FF06AC28D11621D487E8766A10FE4672DE
9DA3B014D0DD89AEE71A39463A3D620EF62261359C90295B3CC9E7C15D0F7D3C9F0A92
92D6B2D8FCA3E71380EDD411C70379318FD72ED6086C4A028D8F75F28B56EF99746442
E33E29C67C77#)(e #010001#)(protected openpgp-s2k3-ocb-aes ((sha1
#3A918191BC09BAB8# "112787456")#84C538C0C1434F5FC53A6BEC#)#C586BC3DB5
9E3455A02BE254DE83F56EA17ACAAFD12BB8AFAEF635FAD0B491A78108C7E353B48879
2839FF03FA9C2678C23E96E4FFB1744910DD53ECAA62E288F64C95B8B194D0007179FB
01EDE7D1B3D0C9A04FDA5FBF67FB665B65FBF805AE5C65C9F3F6737C7E90BD660E9433
91A9B17422190E6197A765A3EE9CFD4223076E68CF15F4A484D9DCF2D71F8AC65DCCE6
F757D69CCD5EED1DB5C57274380372E226283F670B9A7347D2A312BE872CF129E70D8C
7ED36E35CDA8A6A3E0B9F99E5A3FD694F1AD0D0FEF05C1D6E24E98BD78CAFC11628FB7
407BE8B3D1B458A963469DBB53EB20A5884CB3B630FE6069F230AC805D37ED594719F1
FE9DD8FC5F25C16805456ACFC5E24B8FBC070657F20545E8DE70DE7F91C0BFD1DADFBD
BDA284353F031B8A34498975E17FDA90EACB9C42C0EB75AB5C8A5F0672663AF454CA99
7E0CFAEA9BC622EE0513ACC27174E5F58C4F8EC1E905F4B55EAA5888D7ED4E38E13AA0
8F8F5D34E8F13262E264946D0C669A59A852EF0ADB8760453F20DB1A144B56A825DA19
6A40AAA7713688BC250F4E1D0AE6508B14AA49DA3AF3450729F32025814D4B03304447
08FE5E91A92193E899E7713DF65519C8767A0102A24E30F814C116E52F8F51EE32C157
0D813A417D94063D9056531B7A6DAF605D4CC9D12E110B2FBBA3B8239F42F5A1B60D6E
2C1EC847D93F1BE219BF13582EA68006C640B7754932939B14EF7F601358B7F96F1A7F
3F844197BEF1AD2724C82454BA03B324DFCE16FAE0BCB27B3A08E3EEEB04449B6D14C8
1E206E081A267D695F13009619B57FAF3786D00E6807F3F571D86E8EF19D71B8DE4F80
DD1B0EF6FE89B2B851227189F7A4174BE2839D4BFED485AB42FBBA9A441ADF3D0B3611
C8432AA8C5BBEA3D64D74DA604DCBCF602A7418E42625EF109B2AA5EED0C1259437F53
25B6C1B4FC2423FBF8AC2149FA83BF3083051945F4F100CDC3BA97B6B6BF469977D568
9BE0DD78D67026C5B35AE449919FA4A660132E92662E2A6A8DAE21C594AF537F91FA19
B96D803F76EF4E726487B4A1D465ECDD4D9B27110424AEE2FB8B3B694CAAA9172798EA
252F2AA0ACC253ED71E06CE6291D289DAAAA422FC166EB2EB1C384FB4A41F5E4D0E879
29F43EEF3FE0A45A4EE234E9942272FE10F22FF096519093568D2C54AF8BDD7DDAA773
E7947E30540A76446AE19112E556D813AA59C455F914997004C26169A40964F5E7BBA6
C68AF9DC5E8FE71D3A6AE1417346577FB598B7B4E0BE905BDEACE3A7463A1BC0AD421C
F483E9CE6F7358CE73FCB485F4FCD18E5C867255AA1F3A351ECF763BCACB948AB37A12
A32400C9A02BC671156D371CD923C9631D04001CEBF370EE1F765C691E4CA962666436
A84074D8ECDF180085D0842EF966311EC0CFEF9E3A8CB6F1773BFADF6A51346EDC2502
26FE6499BA5B419A75CB0A16DA0831AA9514265ABA33C57299333CDE81646DB077E501
2AA1625832FEA188578710D1954B9CD222DE006973C2627C4560724BCFA62FB979A8B4
4FFBC5A4F112B55B6295770774E5F3B54720DB49BC416D723DBACB48C30A080D1A87DC
0BB2B3556AE53D17DAAE2C1FA6BEBFD1460BB729298D94ACDB833994ED531449266824
4F1FB351E7C4CB183FEB577E095BFF1799CCF42BD60B554F8220E859EDC4A5BD7A4731
13411FEEA8B94317A6C7B50318D49FBABFE51FD8E2771B1AEA294B15CDD4CDD350D440
79DC03EC7D636E4F6E1785A877BA790B1B27C29E67F93931BA53179DB5A8BF4BB78D64
6465447862D516B77FCB24CB270D379D96B45EF54CF6133549E078E26AA8B54DC75D95
5945D383F573146054135548D8B8E97998CD218BF5054BF2E5AC19740359622C015B6F
6594BB#)(protected-at "20230223T033446")))

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1 @@
983763953EE9FF1FE017C62200D1646812FF6FDC

@ -0,0 +1,12 @@
[Unit]
Description=Seafile Daemon Startup
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/seaf-cli start
ExecStop=/usr/bin/seaf-cli stop
RemainAfterExit=yes
[Install]
WantedBy=default.target

@ -0,0 +1,487 @@
/* See LICENSE file for copyright and license details. */
/*
* appearance
*
* font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
*/
static char *font = "Hack Nerd Font:pixelsize=16:antialias=true:autohint=true";
static int borderpx = 2;
/*
* What program is execed by st depends of these precedence rules:
* 1: program passed with -e
* 2: scroll and/or utmp
* 3: SHELL environment variable
* 4: value of shell in /etc/passwd
* 5: value of shell in config.h
*/
static char *shell = "/bin/sh";
char *utmp = NULL;
/* scroll program: to enable use a string like "scroll" */
char *scroll = NULL;
char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400";
/* identification sequence returned in DA and DECID */
char *vtiden = "\033[?6c";
/* Kerning / character bounding-box multipliers */
static float cwscale = 1.0;
static float chscale = 1.0;
/*
* word delimiter string
*
* More advanced example: L" `'\"()[]{}"
*/
wchar_t *worddelimiters = L" ";
/* selection timeouts (in milliseconds) */
static unsigned int doubleclicktimeout = 300;
static unsigned int tripleclicktimeout = 600;
/* alt screens */
int allowaltscreen = 1;
/* allow certain non-interactive (insecure) window operations such as:
setting the clipboard text */
int allowwindowops = 0;
/*
* draw latency range in ms - from new content/keypress/etc until drawing.
* within this range, st draws when content stops arriving (idle). mostly it's
* near minlatency, but it waits longer for slow updates to avoid partial draw.
* low minlatency will tear/flicker more, as it can "detect" idle too early.
*/
static double minlatency = 8;
static double maxlatency = 33;
/*
* blinking timeout (set to 0 to disable blinking) for the terminal blinking
* attribute.
*/
static unsigned int blinktimeout = 800;
/*
* thickness of underline and bar cursors
*/
static unsigned int cursorthickness = 2;
/*
* bell volume. It must be a value between -100 and 100. Use 0 for disabling
* it
*/
static int bellvolume = 0;
/* default TERM value */
char *termname = "st-256color";
/*
* spaces per tab
*
* When you are changing this value, don't forget to adapt the »it« value in
* the st.info and appropriately install the st.info in the environment where
* you use this st version.
*
* it#$tabspaces,
*
* Secondly make sure your kernel is not expanding tabs. When running `stty
* -a` »tab0« should appear. You can tell the terminal to not expand tabs by
* running following command:
*
* stty tabs
*/
unsigned int tabspaces = 8;
/* bg opacity */
float alpha = 0.8, alphaUnfocused = 0.6;
/* Terminal colors (16 first used in escape sequence) */
static const char *colorname[] = {
/* 8 normal colors */
"black",
"red3",
"green3",
"yellow3",
"blue2",
"magenta3",
"cyan3",
"gray90",
/* 8 bright colors */
"gray50",
"red",
"green",
"yellow",
"#5c5cff",
"magenta",
"cyan",
"white",
[255] = 0,
/* more colors can be added after 255 to use with DefaultXX */
"#cccccc",
"#555555",
"gray90", /* default foreground colour */
"black", /* default background colour */
"#c5c8c6", // hybrid fg
"#1d1f21", // hybrid bg
};
/*
* Default colors (colorname index)
* foreground, background, cursor, reverse cursor
*/
unsigned int defaultfg = 260;
unsigned int defaultbg = 261;
unsigned int defaultcs = 256;
static unsigned int defaultrcs = 257;
unsigned int bg = 261, bgUnfocused = 261;
/*
* https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h4-Functions-using-CSI-_-ordered-by-the-final-character-lparen-s-rparen:CSI-Ps-SP-q.1D81
* Default style of cursor
* 0: blinking block
* 1: blinking block (default)
* 2: steady block ("")
* 3: blinking underline
* 4: steady underline ("_")
* 5: blinking bar
* 6: steady bar ("|")
* 7: blinking st cursor
* 8: steady st cursor
*/
static unsigned int cursorstyle = 3;
static Rune stcursor = 0x2603; /* snowman ("☃") */
/*
* Default columns and rows numbers
*/
static unsigned int cols = 80;
static unsigned int rows = 24;
/*
* Default colour and shape of the mouse cursor
*/
static unsigned int mouseshape = XC_xterm;
static unsigned int mousefg = 7;
static unsigned int mousebg = 0;
/*
* Color used to display font attributes when fontconfig selected a font which
* doesn't match the ones requested.
*/
static unsigned int defaultattr = 11;
/*
* Force mouse select/shortcuts while mask is active (when MODE_MOUSE is set).
* Note that if you want to use ShiftMask with selmasks, set this to an other
* modifier, set to 0 to not use it.
*/
static uint forcemousemod = ShiftMask;
/*
* Internal mouse shortcuts.
* Beware that overloading Button1 will disable the selection.
*/
static MouseShortcut mshortcuts[] = {
/* mask button function argument release */
{ XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 },
{ ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} },
{ XK_ANY_MOD, Button4, ttysend, {.s = "\031"} },
{ ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} },
{ XK_ANY_MOD, Button5, ttysend, {.s = "\005"} },
};
/* Internal keyboard shortcuts. */
#define MODKEY Mod1Mask
#define TERMMOD (ControlMask|ShiftMask)
static Shortcut shortcuts[] = {
/* mask keysym function argument */
{ XK_ANY_MOD, XK_Break, sendbreak, {.i = 0} },
{ ControlMask, XK_Print, toggleprinter, {.i = 0} },
{ ShiftMask, XK_Print, printscreen, {.i = 0} },
{ XK_ANY_MOD, XK_Print, printsel, {.i = 0} },
{ TERMMOD, XK_Prior, zoom, {.f = +1} },
{ TERMMOD, XK_Next, zoom, {.f = -1} },
{ TERMMOD, XK_Home, zoomreset, {.f = 0} },
{ TERMMOD, XK_C, clipcopy, {.i = 0} },
{ TERMMOD, XK_V, clippaste, {.i = 0} },
{ TERMMOD, XK_Y, selpaste, {.i = 0} },
{ ShiftMask, XK_Insert, selpaste, {.i = 0} },
{ TERMMOD, XK_Num_Lock, numlock, {.i = 0} },
};
/*
* Special keys (change & recompile st.info accordingly)
*
* Mask value:
* * Use XK_ANY_MOD to match the key no matter modifiers state
* * Use XK_NO_MOD to match the key alone (no modifiers)
* appkey value:
* * 0: no value
* * > 0: keypad application mode enabled
* * = 2: term.numlock = 1
* * < 0: keypad application mode disabled
* appcursor value:
* * 0: no value
* * > 0: cursor application mode enabled
* * < 0: cursor application mode disabled
*
* Be careful with the order of the definitions because st searches in
* this table sequentially, so any XK_ANY_MOD must be in the last
* position for a key.
*/
/*
* If you want keys other than the X11 function keys (0xFD00 - 0xFFFF)
* to be mapped below, add them to this array.
*/
static KeySym mappedkeys[] = { -1 };
/*
* State bits to ignore when matching key or button events. By default,
* numlock (Mod2Mask) and keyboard layout (XK_SWITCH_MOD) are ignored.
*/
static uint ignoremod = Mod2Mask|XK_SWITCH_MOD;
/*
* This is the huge key array which defines all compatibility to the Linux
* world. Please decide about changes wisely.
*/
static Key key[] = {
/* keysym mask string appkey appcursor */
{ XK_KP_Home, ShiftMask, "\033[2J", 0, -1},
{ XK_KP_Home, ShiftMask, "\033[1;2H", 0, +1},
{ XK_KP_Home, XK_ANY_MOD, "\033[H", 0, -1},
{ XK_KP_Home, XK_ANY_MOD, "\033[1~", 0, +1},
{ XK_KP_Up, XK_ANY_MOD, "\033Ox", +1, 0},
{ XK_KP_Up, XK_ANY_MOD, "\033[A", 0, -1},
{ XK_KP_Up, XK_ANY_MOD, "\033OA", 0, +1},
{ XK_KP_Down, XK_ANY_MOD, "\033Or", +1, 0},
{ XK_KP_Down, XK_ANY_MOD, "\033[B", 0, -1},
{ XK_KP_Down, XK_ANY_MOD, "\033OB", 0, +1},
{ XK_KP_Left, XK_ANY_MOD, "\033Ot", +1, 0},
{ XK_KP_Left, XK_ANY_MOD, "\033[D", 0, -1},
{ XK_KP_Left, XK_ANY_MOD, "\033OD", 0, +1},
{ XK_KP_Right, XK_ANY_MOD, "\033Ov", +1, 0},
{ XK_KP_Right, XK_ANY_MOD, "\033[C", 0, -1},
{ XK_KP_Right, XK_ANY_MOD, "\033OC", 0, +1},
{ XK_KP_Prior, ShiftMask, "\033[5;2~", 0, 0},
{ XK_KP_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
{ XK_KP_Begin, XK_ANY_MOD, "\033[E", 0, 0},
{ XK_KP_End, ControlMask, "\033[J", -1, 0},
{ XK_KP_End, ControlMask, "\033[1;5F", +1, 0},
{ XK_KP_End, ShiftMask, "\033[K", -1, 0},
{ XK_KP_End, ShiftMask, "\033[1;2F", +1, 0},
{ XK_KP_End, XK_ANY_MOD, "\033[4~", 0, 0},
{ XK_KP_Next, ShiftMask, "\033[6;2~", 0, 0},
{ XK_KP_Next, XK_ANY_MOD, "\033[6~", 0, 0},
{ XK_KP_Insert, ShiftMask, "\033[2;2~", +1, 0},
{ XK_KP_Insert, ShiftMask, "\033[4l", -1, 0},
{ XK_KP_Insert, ControlMask, "\033[L", -1, 0},
{ XK_KP_Insert, ControlMask, "\033[2;5~", +1, 0},
{ XK_KP_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
{ XK_KP_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
{ XK_KP_Delete, ControlMask, "\033[M", -1, 0},
{ XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0},
{ XK_KP_Delete, ShiftMask, "\033[2K", -1, 0},
{ XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[P", -1, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
{ XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0},
{ XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\r", -1, 0},
{ XK_KP_Subtract, XK_ANY_MOD, "\033Om", +2, 0},
{ XK_KP_Decimal, XK_ANY_MOD, "\033On", +2, 0},
{ XK_KP_Divide, XK_ANY_MOD, "\033Oo", +2, 0},
{ XK_KP_0, XK_ANY_MOD, "\033Op", +2, 0},
{ XK_KP_1, XK_ANY_MOD, "\033Oq", +2, 0},
{ XK_KP_2, XK_ANY_MOD, "\033Or", +2, 0},
{ XK_KP_3, XK_ANY_MOD, "\033Os", +2, 0},
{ XK_KP_4, XK_ANY_MOD, "\033Ot", +2, 0},
{ XK_KP_5, XK_ANY_MOD, "\033Ou", +2, 0},
{ XK_KP_6, XK_ANY_MOD, "\033Ov", +2, 0},
{ XK_KP_7, XK_ANY_MOD, "\033Ow", +2, 0},
{ XK_KP_8, XK_ANY_MOD, "\033Ox", +2, 0},
{ XK_KP_9, XK_ANY_MOD, "\033Oy", +2, 0},
{ XK_Up, ShiftMask, "\033[1;2A", 0, 0},
{ XK_Up, Mod1Mask, "\033[1;3A", 0, 0},
{ XK_Up, ShiftMask|Mod1Mask,"\033[1;4A", 0, 0},
{ XK_Up, ControlMask, "\033[1;5A", 0, 0},
{ XK_Up, ShiftMask|ControlMask,"\033[1;6A", 0, 0},
{ XK_Up, ControlMask|Mod1Mask,"\033[1;7A", 0, 0},
{ XK_Up,ShiftMask|ControlMask|Mod1Mask,"\033[1;8A", 0, 0},
{ XK_Up, XK_ANY_MOD, "\033[A", 0, -1},
{ XK_Up, XK_ANY_MOD, "\033OA", 0, +1},
{ XK_Down, ShiftMask, "\033[1;2B", 0, 0},
{ XK_Down, Mod1Mask, "\033[1;3B", 0, 0},
{ XK_Down, ShiftMask|Mod1Mask,"\033[1;4B", 0, 0},
{ XK_Down, ControlMask, "\033[1;5B", 0, 0},
{ XK_Down, ShiftMask|ControlMask,"\033[1;6B", 0, 0},
{ XK_Down, ControlMask|Mod1Mask,"\033[1;7B", 0, 0},
{ XK_Down,ShiftMask|ControlMask|Mod1Mask,"\033[1;8B",0, 0},
{ XK_Down, XK_ANY_MOD, "\033[B", 0, -1},
{ XK_Down, XK_ANY_MOD, "\033OB", 0, +1},
{ XK_Left, ShiftMask, "\033[1;2D", 0, 0},
{ XK_Left, Mod1Mask, "\033[1;3D", 0, 0},
{ XK_Left, ShiftMask|Mod1Mask,"\033[1;4D", 0, 0},
{ XK_Left, ControlMask, "\033[1;5D", 0, 0},
{ XK_Left, ShiftMask|ControlMask,"\033[1;6D", 0, 0},
{ XK_Left, ControlMask|Mod1Mask,"\033[1;7D", 0, 0},
{ XK_Left,ShiftMask|ControlMask|Mod1Mask,"\033[1;8D",0, 0},
{ XK_Left, XK_ANY_MOD, "\033[D", 0, -1},
{ XK_Left, XK_ANY_MOD, "\033OD", 0, +1},
{ XK_Right, ShiftMask, "\033[1;2C", 0, 0},
{ XK_Right, Mod1Mask, "\033[1;3C", 0, 0},
{ XK_Right, ShiftMask|Mod1Mask,"\033[1;4C", 0, 0},
{ XK_Right, ControlMask, "\033[1;5C", 0, 0},
{ XK_Right, ShiftMask|ControlMask,"\033[1;6C", 0, 0},
{ XK_Right, ControlMask|Mod1Mask,"\033[1;7C", 0, 0},
{ XK_Right,ShiftMask|ControlMask|Mod1Mask,"\033[1;8C",0, 0},
{ XK_Right, XK_ANY_MOD, "\033[C", 0, -1},
{ XK_Right, XK_ANY_MOD, "\033OC", 0, +1},
{ XK_ISO_Left_Tab, ShiftMask, "\033[Z", 0, 0},
{ XK_Return, Mod1Mask, "\033\r", 0, 0},
{ XK_Return, XK_ANY_MOD, "\r", 0, 0},
{ XK_Insert, ShiftMask, "\033[4l", -1, 0},
{ XK_Insert, ShiftMask, "\033[2;2~", +1, 0},
{ XK_Insert, ControlMask, "\033[L", -1, 0},
{ XK_Insert, ControlMask, "\033[2;5~", +1, 0},
{ XK_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
{ XK_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
{ XK_Delete, ControlMask, "\033[M", -1, 0},
{ XK_Delete, ControlMask, "\033[3;5~", +1, 0},
{ XK_Delete, ShiftMask, "\033[2K", -1, 0},
{ XK_Delete, ShiftMask, "\033[3;2~", +1, 0},
{ XK_Delete, XK_ANY_MOD, "\033[P", -1, 0},
{ XK_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
{ XK_BackSpace, XK_NO_MOD, "\177", 0, 0},
{ XK_BackSpace, Mod1Mask, "\033\177", 0, 0},
{ XK_Home, ShiftMask, "\033[2J", 0, -1},
{ XK_Home, ShiftMask, "\033[1;2H", 0, +1},
{ XK_Home, XK_ANY_MOD, "\033[H", 0, -1},
{ XK_Home, XK_ANY_MOD, "\033[1~", 0, +1},
{ XK_End, ControlMask, "\033[J", -1, 0},
{ XK_End, ControlMask, "\033[1;5F", +1, 0},
{ XK_End, ShiftMask, "\033[K", -1, 0},
{ XK_End, ShiftMask, "\033[1;2F", +1, 0},
{ XK_End, XK_ANY_MOD, "\033[4~", 0, 0},
{ XK_Prior, ControlMask, "\033[5;5~", 0, 0},
{ XK_Prior, ShiftMask, "\033[5;2~", 0, 0},
{ XK_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
{ XK_Next, ControlMask, "\033[6;5~", 0, 0},
{ XK_Next, ShiftMask, "\033[6;2~", 0, 0},
{ XK_Next, XK_ANY_MOD, "\033[6~", 0, 0},
{ XK_F1, XK_NO_MOD, "\033OP" , 0, 0},
{ XK_F1, /* F13 */ ShiftMask, "\033[1;2P", 0, 0},
{ XK_F1, /* F25 */ ControlMask, "\033[1;5P", 0, 0},
{ XK_F1, /* F37 */ Mod4Mask, "\033[1;6P", 0, 0},
{ XK_F1, /* F49 */ Mod1Mask, "\033[1;3P", 0, 0},
{ XK_F1, /* F61 */ Mod3Mask, "\033[1;4P", 0, 0},
{ XK_F2, XK_NO_MOD, "\033OQ" , 0, 0},
{ XK_F2, /* F14 */ ShiftMask, "\033[1;2Q", 0, 0},
{ XK_F2, /* F26 */ ControlMask, "\033[1;5Q", 0, 0},
{ XK_F2, /* F38 */ Mod4Mask, "\033[1;6Q", 0, 0},
{ XK_F2, /* F50 */ Mod1Mask, "\033[1;3Q", 0, 0},
{ XK_F2, /* F62 */ Mod3Mask, "\033[1;4Q", 0, 0},
{ XK_F3, XK_NO_MOD, "\033OR" , 0, 0},
{ XK_F3, /* F15 */ ShiftMask, "\033[1;2R", 0, 0},
{ XK_F3, /* F27 */ ControlMask, "\033[1;5R", 0, 0},
{ XK_F3, /* F39 */ Mod4Mask, "\033[1;6R", 0, 0},
{ XK_F3, /* F51 */ Mod1Mask, "\033[1;3R", 0, 0},
{ XK_F3, /* F63 */ Mod3Mask, "\033[1;4R", 0, 0},
{ XK_F4, XK_NO_MOD, "\033OS" , 0, 0},
{ XK_F4, /* F16 */ ShiftMask, "\033[1;2S", 0, 0},
{ XK_F4, /* F28 */ ControlMask, "\033[1;5S", 0, 0},
{ XK_F4, /* F40 */ Mod4Mask, "\033[1;6S", 0, 0},
{ XK_F4, /* F52 */ Mod1Mask, "\033[1;3S", 0, 0},
{ XK_F5, XK_NO_MOD, "\033[15~", 0, 0},
{ XK_F5, /* F17 */ ShiftMask, "\033[15;2~", 0, 0},
{ XK_F5, /* F29 */ ControlMask, "\033[15;5~", 0, 0},
{ XK_F5, /* F41 */ Mod4Mask, "\033[15;6~", 0, 0},
{ XK_F5, /* F53 */ Mod1Mask, "\033[15;3~", 0, 0},
{ XK_F6, XK_NO_MOD, "\033[17~", 0, 0},
{ XK_F6, /* F18 */ ShiftMask, "\033[17;2~", 0, 0},
{ XK_F6, /* F30 */ ControlMask, "\033[17;5~", 0, 0},
{ XK_F6, /* F42 */ Mod4Mask, "\033[17;6~", 0, 0},
{ XK_F6, /* F54 */ Mod1Mask, "\033[17;3~", 0, 0},
{ XK_F7, XK_NO_MOD, "\033[18~", 0, 0},
{ XK_F7, /* F19 */ ShiftMask, "\033[18;2~", 0, 0},
{ XK_F7, /* F31 */ ControlMask, "\033[18;5~", 0, 0},
{ XK_F7, /* F43 */ Mod4Mask, "\033[18;6~", 0, 0},
{ XK_F7, /* F55 */ Mod1Mask, "\033[18;3~", 0, 0},
{ XK_F8, XK_NO_MOD, "\033[19~", 0, 0},
{ XK_F8, /* F20 */ ShiftMask, "\033[19;2~", 0, 0},
{ XK_F8, /* F32 */ ControlMask, "\033[19;5~", 0, 0},
{ XK_F8, /* F44 */ Mod4Mask, "\033[19;6~", 0, 0},
{ XK_F8, /* F56 */ Mod1Mask, "\033[19;3~", 0, 0},
{ XK_F9, XK_NO_MOD, "\033[20~", 0, 0},
{ XK_F9, /* F21 */ ShiftMask, "\033[20;2~", 0, 0},
{ XK_F9, /* F33 */ ControlMask, "\033[20;5~", 0, 0},
{ XK_F9, /* F45 */ Mod4Mask, "\033[20;6~", 0, 0},
{ XK_F9, /* F57 */ Mod1Mask, "\033[20;3~", 0, 0},
{ XK_F10, XK_NO_MOD, "\033[21~", 0, 0},
{ XK_F10, /* F22 */ ShiftMask, "\033[21;2~", 0, 0},
{ XK_F10, /* F34 */ ControlMask, "\033[21;5~", 0, 0},
{ XK_F10, /* F46 */ Mod4Mask, "\033[21;6~", 0, 0},
{ XK_F10, /* F58 */ Mod1Mask, "\033[21;3~", 0, 0},
{ XK_F11, XK_NO_MOD, "\033[23~", 0, 0},
{ XK_F11, /* F23 */ ShiftMask, "\033[23;2~", 0, 0},
{ XK_F11, /* F35 */ ControlMask, "\033[23;5~", 0, 0},
{ XK_F11, /* F47 */ Mod4Mask, "\033[23;6~", 0, 0},
{ XK_F11, /* F59 */ Mod1Mask, "\033[23;3~", 0, 0},
{ XK_F12, XK_NO_MOD, "\033[24~", 0, 0},
{ XK_F12, /* F24 */ ShiftMask, "\033[24;2~", 0, 0},
{ XK_F12, /* F36 */ ControlMask, "\033[24;5~", 0, 0},
{ XK_F12, /* F48 */ Mod4Mask, "\033[24;6~", 0, 0},
{ XK_F12, /* F60 */ Mod1Mask, "\033[24;3~", 0, 0},
{ XK_F13, XK_NO_MOD, "\033[1;2P", 0, 0},
{ XK_F14, XK_NO_MOD, "\033[1;2Q", 0, 0},
{ XK_F15, XK_NO_MOD, "\033[1;2R", 0, 0},
{ XK_F16, XK_NO_MOD, "\033[1;2S", 0, 0},
{ XK_F17, XK_NO_MOD, "\033[15;2~", 0, 0},
{ XK_F18, XK_NO_MOD, "\033[17;2~", 0, 0},
{ XK_F19, XK_NO_MOD, "\033[18;2~", 0, 0},
{ XK_F20, XK_NO_MOD, "\033[19;2~", 0, 0},
{ XK_F21, XK_NO_MOD, "\033[20;2~", 0, 0},
{ XK_F22, XK_NO_MOD, "\033[21;2~", 0, 0},
{ XK_F23, XK_NO_MOD, "\033[23;2~", 0, 0},
{ XK_F24, XK_NO_MOD, "\033[24;2~", 0, 0},
{ XK_F25, XK_NO_MOD, "\033[1;5P", 0, 0},
{ XK_F26, XK_NO_MOD, "\033[1;5Q", 0, 0},
{ XK_F27, XK_NO_MOD, "\033[1;5R", 0, 0},
{ XK_F28, XK_NO_MOD, "\033[1;5S", 0, 0},
{ XK_F29, XK_NO_MOD, "\033[15;5~", 0, 0},
{ XK_F30, XK_NO_MOD, "\033[17;5~", 0, 0},
{ XK_F31, XK_NO_MOD, "\033[18;5~", 0, 0},
{ XK_F32, XK_NO_MOD, "\033[19;5~", 0, 0},
{ XK_F33, XK_NO_MOD, "\033[20;5~", 0, 0},
{ XK_F34, XK_NO_MOD, "\033[21;5~", 0, 0},
{ XK_F35, XK_NO_MOD, "\033[23;5~", 0, 0},
};
/*
* Selection types' masks.
* Use the same masks as usual.
* Button1Mask is always unset, to make masks match between ButtonPress.
* ButtonRelease and MotionNotify.
* If no match is found, regular selection is used.
*/
static uint selmasks[] = {
[SEL_RECTANGULAR] = Mod1Mask,
};
/*
* Printable characters in ASCII, used to estimate the advance width
* of single wide characters.
*/
static char ascii_printable[] =
" !\"#$%&'()*+,-./0123456789:;<=>?"
"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
"`abcdefghijklmnopqrstuvwxyz{|}~";

@ -1,8 +1,9 @@
# go path
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
export PATH=$PATH:$HOME/.config/rofi/bin
# editor
export VISUAL=vim
export VISUAL=nvim
export EDITOR="$VISUAL"
# add local paths

@ -126,6 +126,8 @@ source $ZSH/oh-my-zsh.sh
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
#
# switching to vimrc
alias vim="nvim"
# helpful aliasis
alias ifconfig="/sbin/ifconfig"
# git stuff
@ -156,6 +158,9 @@ export FZF_DEFAULT_OPTS='--layout=reverse --border'
#alias bat="batcat" Only needed on ubuntu/debian
# vim wiki alias
alias vimwiki="vim $HOME/vimwiki/index.md"
alias vimwiki="nvim $HOME/vimwiki/index.md"
# yt-dlp alias for simplicity
alias yt-vid="yt-dlp -P $HOME/media/video"
alias yt-mu="yt-dlp -P $HOME/media/music -x -f m4a/bestaudio --add-metadata --recode mp4"

@ -0,0 +1 @@
Subproject commit 06434a49350a669263b7bc45e5210b5f3e699ced

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

@ -28,7 +28,7 @@ set -g clock-mode-colour white
# status config
set -g status-interval 10
set -g status-style "bg=black, fg=brightWhite"
set -g status-right "#(docker_check)| #(ssh_agent_check) | #(tmux-mem-cpu-load -p -i 1 -a 1) | #(display_uptime) | %A, %b %d %l:%M %P "
set -g status-right "#(docker_check)| #(ssh_agent_check -t) | #(tmux-mem-cpu-load -p -i 1 -a 1) | #(display_uptime) | %A, %b %d %l:%M %P "
set -g status-right-length 100
set -g status-left " #(weather -p) | #(bluebikes -pc) | #(watertracker -Scr) |"
set -g status-left-length 100

@ -8,12 +8,21 @@ set -g display-panes-time 5000
# setup automatic renaming
set -g automatic-rename on
# escape sequence delay
set -g escape-time 10
#set -g default-shell $SHELL
# keybinds
bind-key v select-layout even-vertical
bind-key h select-layout even-horizontal
# vimlike keybinds
bind -n M-h "select-pane -L"
bind -n M-j "select-pane -D"
bind -n M-k "select-pane -U"
bind -n M-l "select-pane -R"
# binds path to current one
bind-key a attach -c "#{pane_current_path}"
@ -27,10 +36,9 @@ set -g clock-mode-colour white
# status config
set -g status-interval 10
set -g status-style "bg=black, fg=brightWhite"
set -g status-right "#(docker_check)| #(ssh_agent_check) | #(tmux-mem-cpu-load -p -i 1 -a 1) | #(display_uptime) | %A, %b %d %l:%M %P "
set -g status-right "%a, %b %d %l:%M %P "
set -g status-right-length 100
set -g status-left " #(bluebikes -pc) | #(watertracker -Scr) |"
set -g status-left-length 100
set -g status-left ""
# tmux auto start
# set -g @plugin 'tmux-plugins/tmux-resurrect'

@ -0,0 +1,72 @@
# If you want to synchronize calcurse with a CalDAV server using
# calcurse-caldav, create a new directory at $XDG_CONFIG_HOME/calcurse/caldav/
# (~/.config/calcurse/caldav/) and $XDG_DATA_HOME/calcurse/caldav/
# (~/.local/share/calcurse/caldav/) and copy this file to
# $XDG_CONFIG_HOME/calcurse/caldav/config and adjust the configuration below.
# Alternatively, if using ~/.calcurse, create a new directory at
# ~/.calcurse/caldav/ and copy this file to ~/.calcurse/caldav/config and adjust
# the configuration file below.
[General]
# Path to the calcurse binary that is used for importing/exporting items.
Binary = calcurse
# Host name of the server that hosts CalDAV. Do NOT prepend a protocol prefix,
# such as http:// or https://. Append :<port> for a port other than 80.
Hostname = cal.keegandeppe.com
# Path to the CalDAV calendar on the host specified above. This is the base
# path following your host name in the URL.
Path = /kdeppe/be30a9ed-74c0-00fb-8f24-7ed6fa9d08ee/
# Type of authentication to use. Must be "basic" or "oauth2"
AuthMethod = basic
# Enable this if you want to skip SSL certificate checks.
InsecureSSL = No
# Disable this if you want to use HTTP instead of HTTPS.
# Using plain HTTP is highly discouraged.
HTTPS = Yes
# This option allows you to filter the types of tasks synced. To this end, the
# value of this option should be a comma-separated list of item types, where
# each item type is either "event", "apt", "recur-event", "recur-apt", "todo",
# "recur" or "cal". Note that the comma-separated list must not contain any
# spaces. Refer to the documentation of the --filter-type command line argument
# of calcurse for more details. Set this option to "cal" if the configured
# CalDAV server doesn't support tasks, such as is the case with Google
# Calendar.
SyncFilter = cal,todo
# Disable this option to actually enable synchronization. If it is enabled,
# nothing is actually written to the server or to the local data files. If you
# combine DryRun = Yes with Verbose = Yes, you get a log of what would have
# happened with this option disabled.
DryRun = No
# Enable this if you want detailed logs written to stdout.
Verbose = Yes
# Credentials for HTTP Basic Authentication. Leave this commented out if you do
# not want to use authentication.
[Auth]
Username = kdeppe
#Password =
# Optionally specify additional HTTP headers here.
#[CustomHeaders]
#User-Agent = Mac_OS_X/10.9.2 (13C64) CalendarAgent/176
# Use the following to synchronize with an OAuth2-based service
# such as Google Calendar.
#[OAuth2]
#ClientID = your_client_id
#ClientSecret = your_client_secret
# Scope of access for API calls. Synchronization requires read/write.
#Scope = https://example.com/resource/scope
# Change the redirect URI if you receive errors, but ensure that it is identical
# to the redirect URI you specified in the API settings.
#RedirectURI = http://127.0.0.1

@ -4,8 +4,8 @@ appearance.defaultpanel=todo
appearance.layout=5
appearance.headerline=yes
appearance.eventseparator=yes
appearance.dayseparator=yes
appearance.emptyline=yes
appearance.dayseparator=no
appearance.emptyline=no
appearance.emptyday=No Events
appearance.notifybar=yes
appearance.sidebarwidth=2
@ -19,7 +19,7 @@ format.notifydate=%a %F
format.notifytime=%T
format.outputdate=%D
format.dayheading=%B %e, %Y
general.autogc=no
general.autogc=yes
general.autosave=yes
general.confirmdelete=yes
general.confirmquit=yes
@ -30,4 +30,4 @@ general.systemevents=yes
notification.command=printf '\a'
notification.notifyall=flagged-only
notification.warning=300
format.appointmenttime=%H:%M
format.appointmenttime=%l:%M %P

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save