Merge remote-tracking branch 'refs/remotes/origin/main'

nvim
KeeganForelight 2 years ago
commit 9e59906f83

1
.gitignore vendored

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

12
.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

@ -2,3 +2,5 @@ cmake
make
bat
calcurse
pam-gnupg
zfxtop

@ -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,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

@ -7,7 +7,7 @@ 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 "Seafile not downloaded to device!">&2
echo "$SYNC_FAILED"
exit 1
fi
@ -17,8 +17,8 @@ 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 "Error: Failed to sync">&2
echo "$ERRORS">&2
echo "$SYNC_FAILED"
exit 1
fi
@ -37,5 +37,5 @@ if [[ -z "$IN_PROGRESS" ]] ; then
fi
# should never get here
echo "UNKNOWN_ERROR!">2
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"

@ -11,18 +11,20 @@ fi
source "$calindx"
# increment
if [[ "$1" == "inc" ]] ; then
((INDEX+=1))
if [[ $INDEX -ge ${#todolist[@]} ]] ; then
INDEX=0 # loops
fi
elif [[ "$1" == "dec" ]] ; then
((INDEX-=1))
fi
if [[ "$1" == "dec" ]] ; then
((INDEX-=1))
if [[ $INDEX -lt 0 ]] ; then
# 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
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

@ -1 +1 @@
Subproject commit 582ceb4b14d1aaf9b0a52c7f4ede68ea29c85416
Subproject commit b8a41085bfd67fee97ad075c6df65590ce7417a7

@ -1 +1 @@
Subproject commit df4be8626e2c5b2a42eb60e1f100fce469b81f7d
Subproject commit 5d3d1b6cbdc4be0b4c6105c1ab1f769d76d3c68f

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

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

@ -1 +1 @@
Subproject commit 3a9180f1d2cc984fe24bc7afaf9d4d00b3e4c20a
Subproject commit 112e62c1c873fb1910c08ed331f354ae017aac57

@ -17,8 +17,22 @@ 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
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,6 +44,8 @@ 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'}]
@ -44,6 +60,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 +69,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 +82,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
"

@ -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,21 +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
exec --no-startup-id dex --autostart --environment i3
# 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.
# 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
# auto starting default applications
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 +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
@ -83,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
@ -95,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
@ -172,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
@ -191,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 thinkpad-bar
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

@ -34,10 +34,11 @@ foreground = ${colors.foreground}
[bar/thinkpad-bar]
; thinkpad bar conf
inherit = section/base-bar
height = 16pt
font-0 = Hack Nerd Font:size=10;2
height = 14pt
; modules
modules-left = xworkspaces focus weather-thinkpad
modules-right = battery pulseaudio memory cpu wlan seafile date powermenu
modules-left = xworkspaces weather-thinkpad
modules-right = battery pulseaudio memory cpu wlan seafile calendar-sync bg-selector date-tp powermenu
[bar/desktop-bar]
; desktop bar config
@ -48,7 +49,7 @@ height = 24pt
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 seafile date powermenu
modules-right = pulseaudio memory cpu temperature eth mouse-power seafile calendar-sync bg-selector date powermenu
[bar/work-bar]
; desktop bar config
@ -104,9 +105,9 @@ type = custom/script
interval = 30
; left click is forecast
click-left = weather -f
click-left = i3-scratchpad.sh scratch st -n scratch -e weather -f
; middle click is nerdfont forecast
click-middle = weather -pf
click-middle = i3-scratchpad.sh scratch st -n scratch -e weather -pf
; right click is radar
click-right = weather -r
@ -126,7 +127,7 @@ type = internal/memory
interval = 2
format-prefix = "RAM "
format-prefix-foreground = ${colors.primary}
label = %percentage_used%%
label = %used%
format = <label>
[module/battery]
@ -144,19 +145,20 @@ format-charging-prefix = "CHR "
format-charging-prefix-foreground = ${colors.primary}
format-charging = <label-charging>
time-format = %l:%M
time-format = %H:%M
label-charging = %percentage%%%time%
label-charging = %percentage%% %time%
label-discharging = %percentage%%%time%
label-discharging = %percentage%% %time%
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = "CPU "
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
@ -168,20 +170,28 @@ label = %temperature-c%
[network-base]
type = internal/network
interval = 5
format-connected-prefix = "NET "
format-connected-prefix-foreground = ${colors.primary}
format-connected = <label-connected>
format-connected-foreground = ${colors.primary}
; 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 = %ifname%
label-connected = %signal%%
[module/eth]
inherit = network-base
interface-type = wired
label-connected = %ifname% %linkspeed%
label-connected = %linkspeed%
[module/date]
type = internal/date
@ -193,6 +203,14 @@ 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
@ -232,5 +250,29 @@ exec = todo_display.sh
click-left = todo_display.sh inc
click-right = todo_display.sh dec
[module/mouse-power]
; grabs mouse power from custom script
type = custom/script
interval = 5
exec = PERCENTAGE=true g703monitor.sh
[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
[settings]
screenchange-reload = true

@ -1 +1 @@
Subproject commit 692d5ef4bd5b9bd06126221cd1e895938166d183
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
@ -61,7 +60,7 @@ floating_modifier $mod
bindsym $mod+Return exec st
# lock the screen
bindsym $mod+q exec i3lock-blur
bindsym $mod+q exec swaylock
# kill focused window
bindsym $mod+Shift+q kill
@ -209,9 +208,9 @@ bindsym $mod+r mode "resize"
#status_command
# }
exec --no-startup-id picom-launch.sh
#exec --no-startup-id picom-launch.sh
# background
exec --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 desktop-bar

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 +1,10 @@
- shell:
- [cd src/i3lock-blur && make install, Building i3lock]
- clean:
~/.config/i3:
~/.local/share/wallpapers:
- link:
~/.config/i3: gui/i3-laptop
~/.config/i3/wallpaper.jpg: gui/wallpapers/pine_tree.jpg
~/.config/i3/config: gui/i3/thinkpad.conf
~/.local/bin/wallpaper.sh: bin/wallpaper.sh

@ -2,9 +2,9 @@
- [bin/oh-my-zsh-check.sh]
- link:
~/.oh-my-zsh/custom/plugins:
path: shells/oh-my-zsh/custom/plugins
force: true
~/.oh-my-zsh/custom/themes:
path: shells/oh-my-zsh/custom/themes
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

@ -8,6 +8,7 @@
- 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/docker_check: bin/docker_check

@ -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"

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

@ -9,9 +9,12 @@ fzf
tmux.sparse
st.desktop
i3.desktop
sway.desktop
polybar
picom
rofi
lf
scripts
calcurse
seafile
passwords

@ -15,3 +15,5 @@ rofi
lf
scripts
calcurse
seafile
passwords

@ -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

@ -159,3 +159,7 @@ export FZF_DEFAULT_OPTS='--layout=reverse --border'
# vim wiki alias
alias vimwiki="vim $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"

@ -1 +1 @@
Subproject commit 96c3de12eb717e33b175fd01a9aaaac84ea8d6af
Subproject commit 3364d4d147ade148d8e5dd67609e46f0ef6c50fc

@ -1 +1 @@
Subproject commit afe4dc5e12d0eb99dcae4ae320c48bdbd7f5a8c2
Subproject commit 35ba33193f93e4e849a18d262d2691afb3782f82

@ -1 +1 @@
Subproject commit 6e263798b4cd202273f7debc3ce882ef51a7b6e7
Subproject commit cb8bdd3e43b50a0610cff3a69959cb27eb407afc

@ -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,9 +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 "#(display_uptime) | %a, %b %d %l:%M %P "
set -g status-right-length 100
set -g status-left " #(bluebikes -pc) | #(watertracker -Scr) |"
set -g status-left " #(bluebikes -pc) |"
set -g status-left-length 100
# tmux auto start

@ -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

@ -19,13 +19,13 @@ 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
general.firstdayofweek=monday
general.multipledays=yes
general.periodicsave=10
general.periodicsave=0
general.systemevents=yes
notification.command=printf '\a'
notification.notifyall=flagged-only

@ -0,0 +1,27 @@
#!/bin/sh
#
# This is an example hook. It does two things whenever you save the data files:
#
# 1. Make a commit if the calcurse directories contain a Git repository.
# 2. Synchronize with a CalDAV server if calcurse-caldav is configured.
#
# In order to install this hook, copy this file to
# $XDG_CONFIG_HOME/calcurse/hooks/ (~/.config/calcurse/hooks/) or
# ~/.calcurse/hooks/ if using ~/.calcurse.
data_dir="$HOME/.local/share/calcurse"
config_dir="$HOME/.config/calcurse"
# Do not do anything when synchronizing with a CalDAV server.
[ -f "$data_dir/caldav/lock" ] && exit
# Optionally run the CalDAV synchronization script in the background.
cd "$data_dir" || exit
if [ -d caldav ] && command -v calcurse-caldav >/dev/null; then
(
date="$(date +'%b %d %H:%M:%S')"
echo "$date Running calcurse-caldav from the post-save hook..."
CALCURSE_CALDAV_PASSWORD=$(pass show cal.keegandeppe.com/kdeppe) calcurse-caldav
echo
) >>caldav/log 2>&1 &
fi

@ -0,0 +1,23 @@
#!/bin/sh
#
# This is an example hook. It synchronizes calcurse with a CalDAV server before
# loading the data files.
#
# In order to install this hook, copy this file to
data_dir="$HOME/.local/share/calcurse"
cd "$data_dir" || exit
# Do not do anything when synchronizing with a CalDAV server.
[ -f caldav/lock ] && exit
# Run the CalDAV synchronization script in the background.
if [ -d caldav ] && command -v calcurse-caldav >/dev/null; then
(
date="$(date +'%b %d %H:%M:%S')"
echo "$date Running calcurse-caldav from the pre-load hook..."
CALCURSE_CALDAV_PASSWORD=$(pass show cal.keegandeppe.com/kdeppe) calcurse-caldav
echo
) >>caldav/log 2>&1 &
fi
Loading…
Cancel
Save