dotfiles

<-- duh.
Log | Files | Refs | LICENSE

commit cd0183b06accda87e30f0fb7947af633f7e35558
parent 81dc8dc542b47a913f061296614474f198a5d705
Author: Hayden Hamilton <hayden@haydenvh.com>
Date:   Sat, 28 Dec 2019 16:05:39 +0000

Made some changes

Diffstat:
M.config/fish/config.fish | 13++++++-------
M.config/i3/config | 10++++------
M.config/i3blocks/config | 10+++++-----
M.config/irssi/config | 9+++++++--
A.config/vim/plugin/commentary.vim | 117+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.config/vim/plugin/repeat.vim | 165+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.config/vim/plugin/surround.vim | 619+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.config/vim/plugin/system_copy.vim | 148+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
M.scripts/bin/display/hlock | 2+-
M.scripts/bin/display/rfeh | 6++++++
M.scripts/bin/dmenu/daskpass | 2+-
M.scripts/bin/dmenu/dbrowse | 7-------
M.scripts/bin/dmenu/dfm | 2+-
A.scripts/bin/dmenu/dircgetpass | 15+++++++++++++++
M.scripts/bin/dmenu/dmpvurl | 3++-
M.scripts/bin/dmenu/dpass | 5+++--
M.scripts/bin/dmenu/userinput | 8--------
M.scripts/bin/misc/hmpv | 6++++++
M.scripts/bin/misc/rmpv | 6++++++
M.scripts/bin/misc/trimfiles | 6++++++
M.scripts/i3blocks/bat | 2+-
M.scripts/i3blocks/cal | 6++++++
M.scripts/i3blocks/cpu | 3+--
M.scripts/i3blocks/disk | 5++---
M.scripts/i3blocks/disk2 | 5++---
M.scripts/i3blocks/host | 6++++++
M.scripts/i3blocks/mem | 5++---
M.scripts/i3blocks/mpv | 6++++++
M.scripts/i3blocks/net | 5++---
M.scripts/i3blocks/news | 6++++++
M.scripts/i3blocks/time | 7+++++++
M.scripts/i3blocks/time2 | 7+++++++
M.scripts/i3blocks/title | 8++++++++
M.scripts/i3blocks/vol | 8+++++++-
M.scripts/i3blocks/weather | 6++++++
M.scripts/i3blocks/weather2 | 6++++++
36 files changed, 1193 insertions(+), 57 deletions(-)

diff --git a/.config/fish/config.fish b/.config/fish/config.fish @@ -1,6 +1,5 @@ #Prompt function fish_prompt - tput setaf bold tput setaf 2 printf "[" tput setaf 3 @@ -19,9 +18,9 @@ end #Aliases function vi; vim $argv; end -function xi; sudo xbps-install $argv; end -function xq; sudo xbps-query $argv; end -function xr; sudo xbps-remove $argv; end +function xi; sudo xbps-install $argv; cleancache; end +function xq; sudo xbps-query $argv; cleancache; end +function xr; sudo xbps-remove $argv; cleancache; end function irssi; irssi --config ~/.config/irssi/config $argv; end function pipes; command pipes -R -r 10000 -c 10 -c 11 -c 12 -c 13 -c 14 -c 15 -s 15 $argv; end function clock; tty-clock; end @@ -32,9 +31,9 @@ function map; telnet mapscii.me; end function tetris; ssh netris.rocketnine.space; end function calcurse; command calcurse -D ~/.config/calcurse/; end function irssi; command irssi --home ~/.config/irssi/ -n hayden; ircgetpass; end -function xsleep; sudo zzz; end -function xhibernate; sudo ZZZ; end -function urxvtrestart; xrdb ~/.Xdefaults; xrdb ~/.Xresources; exec urxvtc; end +function sleep; sudo zzz; end +function hibernate; sudo ZZZ; end +function urxvtrestart; xrdb -merge ~/.Xdefaults; xrdb -merge ~/.Xresources; exec urxvtc; end function rmst; bash ~/.scripts/random/gnulinux.sh; end function fff; bash ~/.config/fff/config; end function python; python3; end diff --git a/.config/i3/config b/.config/i3/config @@ -145,15 +145,13 @@ bindsym $mod+Mod1+0 move container to workspace $ws10 ##Outputs for workspaces workspace $ws1 output VGA1 workspace $ws2 output LVDS1 +workspace "TEMPORARY" output VGA1 ##Setting windows to workspaces assign [class="Gimp"] $ws9 assign [class="Vimb"] $ws1 assign [class="URxvt" instance="irssi"] $ws8 -##Scratchpad -for_window [class="URxvt" instance="dropdown*"] exec scratcher - ##Movement bindings bindsym $mod+h focus left bindsym $mod+shift+h move left @@ -206,8 +204,8 @@ bindsym $mod+a exec screenkey bindsym $mod+shift+a exec killall screenkey bindsym $mod+s exec dpass bindsym $mod+shift+s exec dpass -bindsym $mod+d exec dmenurun -bindsym $mod+shift+d exec dmenurun +bindsym $mod+d exec dmenu_run +bindsym $mod+shift+d exec dmenu_run bindsym $mod+f fullscreen toggle bindsym $mod+shift+f fullscreen toggle bindsym $mod+g exec $terminal -name newsboat -e newsboat @@ -241,7 +239,7 @@ exec fehffile ~/.wall.png exec_always notify-send "i3 restarted. Press Super(windows key)+F1 to open the manual." exec_always brightnessctl s 100% exec_always crefresh -exec $TERMINAL -name dropdown -e fish +exec scratcher ##Setting colors for tabbed windows #class #border #background #text diff --git a/.config/i3blocks/config b/.config/i3blocks/config @@ -8,23 +8,23 @@ border_right=0 [title] interval=1 -border=#ffffff +border=#226644 [vol] interval=1 -border=#21a4a3 +border=#218888 [net] interval=50 -border=#4db0c6 +border=#4da0c6 [mem] interval=1 -border=#009dc1 +border=#007dc1 [disk] interval=100 -border=#0f9bf3 +border=#0f6bd3 [disk2] interval=1 diff --git a/.config/irssi/config b/.config/irssi/config @@ -28,9 +28,13 @@ channels = ( { name = "#neomutt"; chatnet = "Freenode"; autojoin = "Yes"; }, { name = "#GNU/matrix"; chatnet = "Freenode"; autojoin = "Yes"; }, { name = "#i3"; chatnet = "Freenode"; autojoin = "Yes"; }, - { name = "#archlinux-offtopic"; chatnet = "Freenode"; autojoin = "Yes"; }, + { + name = "#archlinux-offtopic"; + chatnet = "Freenode"; + autojoin = "Yes"; + }, { name = "#GNU/matrix"; chatnet = "Rizon"; autojoin = "Yes"; }, - { name = "#cat-v"; chatnet = "Freenode"; autojoin = "Yes"; }, + { name = "#cat-v"; chatnet = "Freenode"; autojoin = "Yes"; } ); aliases = { ATAG = "WINDOW SERVER"; @@ -269,6 +273,7 @@ settings = { user_name = "haydenh"; nick = "haydenh"; recode_transliterate = "no"; + timestamp_format = "%H:%M:%S"; }; "fe-text" = { actlist_sort = "refnum"; }; "fe-common/core" = { diff --git a/.config/vim/plugin/commentary.vim b/.config/vim/plugin/commentary.vim @@ -0,0 +1,117 @@ +" commentary.vim - Comment stuff out +" Maintainer: Tim Pope <http://tpo.pe/> +" Version: 1.3 +" GetLatestVimScripts: 3695 1 :AutoInstall: commentary.vim + +if exists("g:loaded_commentary") || v:version < 700 + finish +endif +let g:loaded_commentary = 1 + +function! s:surroundings() abort + return split(get(b:, 'commentary_format', substitute(substitute(substitute( + \ &commentstring, '^$', '%s', ''), '\S\zs%s',' %s', '') ,'%s\ze\S', '%s ', '')), '%s', 1) +endfunction + +function! s:strip_white_space(l,r,line) abort + let [l, r] = [a:l, a:r] + if l[-1:] ==# ' ' && stridx(a:line,l) == -1 && stridx(a:line,l[0:-2]) == 0 + let l = l[:-2] + endif + if r[0] ==# ' ' && a:line[-strlen(r):] != r && a:line[1-strlen(r):] == r[1:] + let r = r[1:] + endif + return [l, r] +endfunction + +function! s:go(...) abort + if !a:0 + let &operatorfunc = matchstr(expand('<sfile>'), '[^. ]*$') + return 'g@' + elseif a:0 > 1 + let [lnum1, lnum2] = [a:1, a:2] + else + let [lnum1, lnum2] = [line("'["), line("']")] + endif + + let [l, r] = s:surroundings() + let uncomment = 2 + for lnum in range(lnum1,lnum2) + let line = matchstr(getline(lnum),'\S.*\s\@<!') + let [l, r] = s:strip_white_space(l,r,line) + if len(line) && (stridx(line,l) || line[strlen(line)-strlen(r) : -1] != r) + let uncomment = 0 + endif + endfor + + if get(b:, 'commentary_startofline') + let indent = '^' + else + let indent = '^\s*' + endif + + for lnum in range(lnum1,lnum2) + let line = getline(lnum) + if strlen(r) > 2 && l.r !~# '\\' + let line = substitute(line, + \'\M'.r[0:-2].'\zs\d\*\ze'.r[-1:-1].'\|'.l[0].'\zs\d\*\ze'.l[1:-1], + \'\=substitute(submatch(0)+1-uncomment,"^0$\\|^-\\d*$","","")','g') + endif + if uncomment + let line = substitute(line,'\S.*\s\@<!','\=submatch(0)[strlen(l):-strlen(r)-1]','') + else + let line = substitute(line,'^\%('.matchstr(getline(lnum1),indent).'\|\s*\)\zs.*\S\@<=','\=l.submatch(0).r','') + endif + call setline(lnum,line) + endfor + let modelines = &modelines + try + set modelines=0 + silent doautocmd User CommentaryPost + finally + let &modelines = modelines + endtry + return '' +endfunction + +function! s:textobject(inner) abort + let [l, r] = s:surroundings() + let lnums = [line('.')+1, line('.')-2] + for [index, dir, bound, line] in [[0, -1, 1, ''], [1, 1, line('$'), '']] + while lnums[index] != bound && line ==# '' || !(stridx(line,l) || line[strlen(line)-strlen(r) : -1] != r) + let lnums[index] += dir + let line = matchstr(getline(lnums[index]+dir),'\S.*\s\@<!') + let [l, r] = s:strip_white_space(l,r,line) + endwhile + endfor + while (a:inner || lnums[1] != line('$')) && empty(getline(lnums[0])) + let lnums[0] += 1 + endwhile + while a:inner && empty(getline(lnums[1])) + let lnums[1] -= 1 + endwhile + if lnums[0] <= lnums[1] + execute 'normal! 'lnums[0].'GV'.lnums[1].'G' + endif +endfunction + +command! -range -bar Commentary call s:go(<line1>,<line2>) +xnoremap <expr> <Plug>Commentary <SID>go() +nnoremap <expr> <Plug>Commentary <SID>go() +nnoremap <expr> <Plug>CommentaryLine <SID>go() . '_' +onoremap <silent> <Plug>Commentary :<C-U>call <SID>textobject(get(v:, 'operator', '') ==# 'c')<CR> +nnoremap <silent> <Plug>ChangeCommentary c:<C-U>call <SID>textobject(1)<CR> +nmap <silent> <Plug>CommentaryUndo :echoerr "Change your <Plug>CommentaryUndo map to <Plug>Commentary<Plug>Commentary"<CR> + +if !hasmapto('<Plug>Commentary') || maparg('gc','n') ==# '' + xmap gc <Plug>Commentary + nmap gc <Plug>Commentary + omap gc <Plug>Commentary + nmap gcc <Plug>CommentaryLine + if maparg('c','n') ==# '' && !exists('v:operator') + nmap cgc <Plug>ChangeCommentary + endif + nmap gcu <Plug>Commentary<Plug>Commentary +endif + +" vim:set et sw=2: diff --git a/.config/vim/plugin/repeat.vim b/.config/vim/plugin/repeat.vim @@ -0,0 +1,165 @@ +" repeat.vim - Let the repeat command repeat plugin maps +" Maintainer: Tim Pope +" Version: 1.2 +" GetLatestVimScripts: 2136 1 :AutoInstall: repeat.vim + +" Installation: +" Place in either ~/.vim/plugin/repeat.vim (to load at start up) or +" ~/.vim/autoload/repeat.vim (to load automatically as needed). +" +" License: +" Copyright (c) Tim Pope. Distributed under the same terms as Vim itself. +" See :help license +" +" Developers: +" Basic usage is as follows: +" +" silent! call repeat#set("\<Plug>MappingToRepeatCommand",3) +" +" The first argument is the mapping that will be invoked when the |.| key is +" pressed. Typically, it will be the same as the mapping the user invoked. +" This sequence will be stuffed into the input queue literally. Thus you must +" encode special keys by prefixing them with a backslash inside double quotes. +" +" The second argument is the default count. This is the number that will be +" prefixed to the mapping if no explicit numeric argument was given. The +" value of the v:count variable is usually correct and it will be used if the +" second parameter is omitted. If your mapping doesn't accept a numeric +" argument and you never want to receive one, pass a value of -1. +" +" Make sure to call the repeat#set function _after_ making changes to the +" file. +" +" For mappings that use a register and want the same register used on +" repetition, use: +" +" silent! call repeat#setreg("\<Plug>MappingToRepeatCommand", v:register) +" +" This function can (and probably needs to be) called before making changes to +" the file (as those typically clear v:register). Therefore, the call sequence +" in your mapping will look like this: +" +" nnoremap <silent> <Plug>MyMap +" \ :<C-U>execute 'silent! call repeat#setreg("\<lt>Plug>MyMap", v:register)'<Bar> +" \ call <SID>MyFunction(v:register, ...)<Bar> +" \ silent! call repeat#set("\<lt>Plug>MyMap")<CR> + +if exists("g:loaded_repeat") || &cp || v:version < 700 + finish +endif +let g:loaded_repeat = 1 + +let g:repeat_tick = -1 +let g:repeat_reg = ['', ''] + +" Special function to avoid spurious repeats in a related, naturally repeating +" mapping when your repeatable mapping doesn't increase b:changedtick. +function! repeat#invalidate() + autocmd! repeat_custom_motion + let g:repeat_tick = -1 +endfunction + +function! repeat#set(sequence,...) + let g:repeat_sequence = a:sequence + let g:repeat_count = a:0 ? a:1 : v:count + let g:repeat_tick = b:changedtick + augroup repeat_custom_motion + autocmd! + autocmd CursorMoved <buffer> let g:repeat_tick = b:changedtick | autocmd! repeat_custom_motion + augroup END +endfunction + +function! repeat#setreg(sequence,register) + let g:repeat_reg = [a:sequence, a:register] +endfunction + + +function! s:default_register() + let values = split(&clipboard, ',') + if index(values, 'unnamedplus') != -1 + return '+' + elseif index(values, 'unnamed') != -1 + return '*' + else + return '"' + endif +endfunction + +function! repeat#run(count) + try + if g:repeat_tick == b:changedtick + let r = '' + if g:repeat_reg[0] ==# g:repeat_sequence && !empty(g:repeat_reg[1]) + " Take the original register, unless another (non-default, we + " unfortunately cannot detect no vs. a given default register) + " register has been supplied to the repeat command (as an + " explicit override). + let regname = v:register ==# s:default_register() ? g:repeat_reg[1] : v:register + if regname ==# '=' + " This causes a re-evaluation of the expression on repeat, which + " is what we want. + let r = '"=' . getreg('=', 1) . "\<CR>" + else + let r = '"' . regname + endif + endif + + let c = g:repeat_count + let s = g:repeat_sequence + let cnt = c == -1 ? "" : (a:count ? a:count : (c ? c : '')) + if ((v:version == 703 && has('patch100')) || (v:version == 704 && !has('patch601'))) + exe 'norm ' . r . cnt . s + elseif v:version <= 703 + call feedkeys(r . cnt, 'n') + call feedkeys(s, '') + else + call feedkeys(s, 'i') + call feedkeys(r . cnt, 'ni') + endif + else + if ((v:version == 703 && has('patch100')) || (v:version == 704 && !has('patch601'))) + exe 'norm! '.(a:count ? a:count : '') . '.' + else + call feedkeys((a:count ? a:count : '') . '.', 'ni') + endif + endif + catch /^Vim(normal):/ + return 'echoerr v:errmsg' + endtry + return '' +endfunction + +function! repeat#wrap(command,count) + let preserve = (g:repeat_tick == b:changedtick) + call feedkeys((a:count ? a:count : '').a:command, 'n') + exe (&foldopen =~# 'undo\|all' ? 'norm! zv' : '') + if preserve + let g:repeat_tick = b:changedtick + endif +endfunction + +nnoremap <silent> <Plug>(RepeatDot) :<C-U>exe repeat#run(v:count)<CR> +nnoremap <silent> <Plug>(RepeatUndo) :<C-U>call repeat#wrap('u',v:count)<CR> +nnoremap <silent> <Plug>(RepeatUndoLine) :<C-U>call repeat#wrap('U',v:count)<CR> +nnoremap <silent> <Plug>(RepeatRedo) :<C-U>call repeat#wrap("\<Lt>C-R>",v:count)<CR> + +if !hasmapto('<Plug>(RepeatDot)', 'n') + nmap . <Plug>(RepeatDot) +endif +if !hasmapto('<Plug>(RepeatUndo)', 'n') + nmap u <Plug>(RepeatUndo) +endif +if maparg('U','n') ==# '' && !hasmapto('<Plug>(RepeatUndoLine)', 'n') + nmap U <Plug>(RepeatUndoLine) +endif +if !hasmapto('<Plug>(RepeatRedo)', 'n') + nmap <C-R> <Plug>(RepeatRedo) +endif + +augroup repeatPlugin + autocmd! + autocmd BufLeave,BufWritePre,BufReadPre * let g:repeat_tick = (g:repeat_tick == b:changedtick || g:repeat_tick == 0) ? 0 : -1 + autocmd BufEnter,BufWritePost * if g:repeat_tick == 0|let g:repeat_tick = b:changedtick|endif +augroup END + +" vim:set ft=vim et sw=4 sts=4: diff --git a/.config/vim/plugin/surround.vim b/.config/vim/plugin/surround.vim @@ -0,0 +1,619 @@ +" surround.vim - Surroundings +" Author: Tim Pope <http://tpo.pe/> +" Version: 2.1 +" GetLatestVimScripts: 1697 1 :AutoInstall: surround.vim + +if exists("g:loaded_surround") || &cp || v:version < 700 + finish +endif +let g:loaded_surround = 1 + +" Input functions {{{1 + +function! s:getchar() + let c = getchar() + if c =~ '^\d\+$' + let c = nr2char(c) + endif + return c +endfunction + +function! s:inputtarget() + let c = s:getchar() + while c =~ '^\d\+$' + let c .= s:getchar() + endwhile + if c == " " + let c .= s:getchar() + endif + if c =~ "\<Esc>\|\<C-C>\|\0" + return "" + else + return c + endif +endfunction + +function! s:inputreplacement() + let c = s:getchar() + if c == " " + let c .= s:getchar() + endif + if c =~ "\<Esc>" || c =~ "\<C-C>" + return "" + else + return c + endif +endfunction + +function! s:beep() + exe "norm! \<Esc>" + return "" +endfunction + +function! s:redraw() + redraw + return "" +endfunction + +" }}}1 + +" Wrapping functions {{{1 + +function! s:extractbefore(str) + if a:str =~ '\r' + return matchstr(a:str,'.*\ze\r') + else + return matchstr(a:str,'.*\ze\n') + endif +endfunction + +function! s:extractafter(str) + if a:str =~ '\r' + return matchstr(a:str,'\r\zs.*') + else + return matchstr(a:str,'\n\zs.*') + endif +endfunction + +function! s:fixindent(str,spc) + let str = substitute(a:str,'\t',repeat(' ',&sw),'g') + let spc = substitute(a:spc,'\t',repeat(' ',&sw),'g') + let str = substitute(str,'\(\n\|\%^\).\@=','\1'.spc,'g') + if ! &et + let str = substitute(str,'\s\{'.&ts.'\}',"\t",'g') + endif + return str +endfunction + +function! s:process(string) + let i = 0 + for i in range(7) + let repl_{i} = '' + let m = matchstr(a:string,nr2char(i).'.\{-\}\ze'.nr2char(i)) + if m != '' + let m = substitute(strpart(m,1),'\r.*','','') + let repl_{i} = input(match(m,'\w\+$') >= 0 ? m.': ' : m) + endif + endfor + let s = "" + let i = 0 + while i < strlen(a:string) + let char = strpart(a:string,i,1) + if char2nr(char) < 8 + let next = stridx(a:string,char,i+1) + if next == -1 + let s .= char + else + let insertion = repl_{char2nr(char)} + let subs = strpart(a:string,i+1,next-i-1) + let subs = matchstr(subs,'\r.*') + while subs =~ '^\r.*\r' + let sub = matchstr(subs,"^\r\\zs[^\r]*\r[^\r]*") + let subs = strpart(subs,strlen(sub)+1) + let r = stridx(sub,"\r") + let insertion = substitute(insertion,strpart(sub,0,r),strpart(sub,r+1),'') + endwhile + let s .= insertion + let i = next + endif + else + let s .= char + endif + let i += 1 + endwhile + return s +endfunction + +function! s:wrap(string,char,type,removed,special) + let keeper = a:string + let newchar = a:char + let s:input = "" + let type = a:type + let linemode = type ==# 'V' ? 1 : 0 + let before = "" + let after = "" + if type ==# "V" + let initspaces = matchstr(keeper,'\%^\s*') + else + let initspaces = matchstr(getline('.'),'\%^\s*') + endif + let pairs = "b()B{}r[]a<>" + let extraspace = "" + if newchar =~ '^ ' + let newchar = strpart(newchar,1) + let extraspace = ' ' + endif + let idx = stridx(pairs,newchar) + if newchar == ' ' + let before = '' + let after = '' + elseif exists("b:surround_".char2nr(newchar)) + let all = s:process(b:surround_{char2nr(newchar)}) + let before = s:extractbefore(all) + let after = s:extractafter(all) + elseif exists("g:surround_".char2nr(newchar)) + let all = s:process(g:surround_{char2nr(newchar)}) + let before = s:extractbefore(all) + let after = s:extractafter(all) + elseif newchar ==# "p" + let before = "\n" + let after = "\n\n" + elseif newchar ==# 's' + let before = ' ' + let after = '' + elseif newchar ==# ':' + let before = ':' + let after = '' + elseif newchar =~# "[tT\<C-T><]" + let dounmapp = 0 + let dounmapb = 0 + if !maparg(">","c") + let dounmapb = 1 + " Hide from AsNeeded + exe "cn"."oremap > ><CR>" + endif + let default = "" + if newchar ==# "T" + if !exists("s:lastdel") + let s:lastdel = "" + endif + let default = matchstr(s:lastdel,'<\zs.\{-\}\ze>') + endif + let tag = input("<",default) + if dounmapb + silent! cunmap > + endif + let s:input = tag + if tag != "" + let keepAttributes = ( match(tag, ">$") == -1 ) + let tag = substitute(tag,'>*$','','') + let attributes = "" + if keepAttributes + let attributes = matchstr(a:removed, '<[^ \t\n]\+\zs\_.\{-\}\ze>') + endif + let s:input = tag . '>' + if tag =~ '/$' + let tag = substitute(tag, '/$', '', '') + let before = '<'.tag.attributes.' />' + let after = '' + else + let before = '<'.tag.attributes.'>' + let after = '</'.substitute(tag,' .*','','').'>' + endif + if newchar == "\<C-T>" + if type ==# "v" || type ==# "V" + let before .= "\n\t" + endif + if type ==# "v" + let after = "\n". after + endif + endif + endif + elseif newchar ==# 'l' || newchar == '\' + " LaTeX + let env = input('\begin{') + if env != "" + let s:input = env."\<CR>" + let env = '{' . env + let env .= s:closematch(env) + echo '\begin'.env + let before = '\begin'.env + let after = '\end'.matchstr(env,'[^}]*').'}' + endif + elseif newchar ==# 'f' || newchar ==# 'F' + let fnc = input('function: ') + if fnc != "" + let s:input = fnc."\<CR>" + let before = substitute(fnc,'($','','').'(' + let after = ')' + if newchar ==# 'F' + let before .= ' ' + let after = ' ' . after + endif + endif + elseif newchar ==# "\<C-F>" + let fnc = input('function: ') + let s:input = fnc."\<CR>" + let before = '('.fnc.' ' + let after = ')' + elseif idx >= 0 + let spc = (idx % 3) == 1 ? " " : "" + let idx = idx / 3 * 3 + let before = strpart(pairs,idx+1,1) . spc + let after = spc . strpart(pairs,idx+2,1) + elseif newchar == "\<C-[>" || newchar == "\<C-]>" + let before = "{\n\t" + let after = "\n}" + elseif newchar !~ '\a' + let before = newchar + let after = newchar + else + let before = '' + let after = '' + endif + let after = substitute(after ,'\n','\n'.initspaces,'g') + if type ==# 'V' || (a:special && type ==# "v") + let before = substitute(before,' \+$','','') + let after = substitute(after ,'^ \+','','') + if after !~ '^\n' + let after = initspaces.after + endif + if keeper !~ '\n$' && after !~ '^\n' + let keeper .= "\n" + elseif keeper =~ '\n$' && after =~ '^\n' + let after = strpart(after,1) + endif + if keeper !~ '^\n' && before !~ '\n\s*$' + let before .= "\n" + if a:special + let before .= "\t" + endif + elseif keeper =~ '^\n' && before =~ '\n\s*$' + let keeper = strcharpart(keeper,1) + endif + if type ==# 'V' && keeper =~ '\n\s*\n$' + let keeper = strcharpart(keeper,0,strchars(keeper) - 1) + endif + endif + if type ==# 'V' + let before = initspaces.before + endif + if before =~ '\n\s*\%$' + if type ==# 'v' + let keeper = initspaces.keeper + endif + let padding = matchstr(before,'\n\zs\s\+\%$') + let before = substitute(before,'\n\s\+\%$','\n','') + let keeper = s:fixindent(keeper,padding) + endif + if type ==# 'V' + let keeper = before.keeper.after + elseif type =~ "^\<C-V>" + " Really we should be iterating over the buffer + let repl = substitute(before,'[\\~]','\\&','g').'\1'.substitute(after,'[\\~]','\\&','g') + let repl = substitute(repl,'\n',' ','g') + let keeper = substitute(keeper."\n",'\(.\{-\}\)\(\n\)',repl.'\n','g') + let keeper = substitute(keeper,'\n\%$','','') + else + let keeper = before.extraspace.keeper.extraspace.after + endif + return keeper +endfunction + +function! s:wrapreg(reg,char,removed,special) + let orig = getreg(a:reg) + let type = substitute(getregtype(a:reg),'\d\+$','','') + let new = s:wrap(orig,a:char,type,a:removed,a:special) + call setreg(a:reg,new,type) +endfunction +" }}}1 + +function! s:insert(...) " {{{1 + " Optional argument causes the result to appear on 3 lines, not 1 + let linemode = a:0 ? a:1 : 0 + let char = s:inputreplacement() + while char == "\<CR>" || char == "\<C-S>" + " TODO: use total count for additional blank lines + let linemode += 1 + let char = s:inputreplacement() + endwhile + if char == "" + return "" + endif + let cb_save = &clipboard + set clipboard-=unnamed clipboard-=unnamedplus + let reg_save = @@ + call setreg('"',"\r",'v') + call s:wrapreg('"',char,"",linemode) + " If line mode is used and the surrounding consists solely of a suffix, + " remove the initial newline. This fits a use case of mine but is a + " little inconsistent. Is there anyone that would prefer the simpler + " behavior of just inserting the newline? + if linemode && match(getreg('"'),'^\n\s*\zs.*') == 0 + call setreg('"',matchstr(getreg('"'),'^\n\s*\zs.*'),getregtype('"')) + endif + " This can be used to append a placeholder to the end + if exists("g:surround_insert_tail") + call setreg('"',g:surround_insert_tail,"a".getregtype('"')) + endif + if &ve != 'all' && col('.') >= col('$') + if &ve == 'insert' + let extra_cols = virtcol('.') - virtcol('$') + if extra_cols > 0 + let [regval,regtype] = [getreg('"',1,1),getregtype('"')] + call setreg('"',join(map(range(extra_cols),'" "'),''),'v') + norm! ""p + call setreg('"',regval,regtype) + endif + endif + norm! ""p + else + norm! ""P + endif + if linemode + call s:reindent() + endif + norm! `] + call search('\r','bW') + let @@ = reg_save + let &clipboard = cb_save + return "\<Del>" +endfunction " }}}1 + +function! s:reindent() " {{{1 + if exists("b:surround_indent") ? b:surround_indent : (!exists("g:surround_indent") || g:surround_indent) + silent norm! '[='] + endif +endfunction " }}}1 + +function! s:dosurround(...) " {{{1 + let scount = v:count1 + let char = (a:0 ? a:1 : s:inputtarget()) + let spc = "" + if char =~ '^\d\+' + let scount = scount * matchstr(char,'^\d\+') + let char = substitute(char,'^\d\+','','') + endif + if char =~ '^ ' + let char = strpart(char,1) + let spc = 1 + endif + if char == 'a' + let char = '>' + endif + if char == 'r' + let char = ']' + endif + let newchar = "" + if a:0 > 1 + let newchar = a:2 + if newchar == "\<Esc>" || newchar == "\<C-C>" || newchar == "" + return s:beep() + endif + endif + let cb_save = &clipboard + set clipboard-=unnamed clipboard-=unnamedplus + let append = "" + let original = getreg('"') + let otype = getregtype('"') + call setreg('"',"") + let strcount = (scount == 1 ? "" : scount) + if char == '/' + exe 'norm! '.strcount.'[/d'.strcount.']/' + elseif char =~# '[[:punct:][:space:]]' && char !~# '[][(){}<>"''`]' + exe 'norm! T'.char + if getline('.')[col('.')-1] == char + exe 'norm! l' + endif + exe 'norm! dt'.char + else + exe 'norm! d'.strcount.'i'.char + endif + let keeper = getreg('"') + let okeeper = keeper " for reindent below + if keeper == "" + call setreg('"',original,otype) + let &clipboard = cb_save + return "" + endif + let oldline = getline('.') + let oldlnum = line('.') + if char ==# "p" + call setreg('"','','V') + elseif char ==# "s" || char ==# "w" || char ==# "W" + " Do nothing + call setreg('"','') + elseif char =~ "[\"'`]" + exe "norm! i \<Esc>d2i".char + call setreg('"',substitute(getreg('"'),' ','','')) + elseif char == '/' + norm! "_x + call setreg('"','/**/',"c") + let keeper = substitute(substitute(keeper,'^/\*\s\=','',''),'\s\=\*$','','') + elseif char =~# '[[:punct:][:space:]]' && char !~# '[][(){}<>]' + exe 'norm! F'.char + exe 'norm! df'.char + else + " One character backwards + call search('\m.', 'bW') + exe "norm! da".char + endif + let removed = getreg('"') + let rem2 = substitute(removed,'\n.*','','') + let oldhead = strpart(oldline,0,strlen(oldline)-strlen(rem2)) + let oldtail = strpart(oldline, strlen(oldline)-strlen(rem2)) + let regtype = getregtype('"') + if char =~# '[\[({<T]' || spc + let keeper = substitute(keeper,'^\s\+','','') + let keeper = substitute(keeper,'\s\+$','','') + endif + if col("']") == col("$") && col('.') + 1 == col('$') + if oldhead =~# '^\s*$' && a:0 < 2 + let keeper = substitute(keeper,'\%^\n'.oldhead.'\(\s*.\{-\}\)\n\s*\%$','\1','') + endif + let pcmd = "p" + else + let pcmd = "P" + endif + if line('.') + 1 < oldlnum && regtype ==# "V" + let pcmd = "p" + endif + call setreg('"',keeper,regtype) + if newchar != "" + let special = a:0 > 2 ? a:3 : 0 + call s:wrapreg('"',newchar,removed,special) + endif + silent exe 'norm! ""'.pcmd.'`[' + if removed =~ '\n' || okeeper =~ '\n' || getreg('"') =~ '\n' + call s:reindent() + endif + if getline('.') =~ '^\s\+$' && keeper =~ '^\s*\n' + silent norm! cc + endif + call setreg('"',original,otype) + let s:lastdel = removed + let &clipboard = cb_save + if newchar == "" + silent! call repeat#set("\<Plug>Dsurround".char,scount) + else + silent! call repeat#set("\<Plug>C".(a:0 > 2 && a:3 ? "S" : "s")."urround".char.newchar.s:input,scount) + endif +endfunction " }}}1 + +function! s:changesurround(...) " {{{1 + let a = s:inputtarget() + if a == "" + return s:beep() + endif + let b = s:inputreplacement() + if b == "" + return s:beep() + endif + call s:dosurround(a,b,a:0 && a:1) +endfunction " }}}1 + +function! s:opfunc(type, ...) abort " {{{1 + if a:type ==# 'setup' + let &opfunc = matchstr(expand('<sfile>'), '<SNR>\w\+$') + return 'g@' + endif + let char = s:inputreplacement() + if char == "" + return s:beep() + endif + let reg = '"' + let sel_save = &selection + let &selection = "inclusive" + let cb_save = &clipboard + set clipboard-=unnamed clipboard-=unnamedplus + let reg_save = getreg(reg) + let reg_type = getregtype(reg) + let type = a:type + if a:type == "char" + silent exe 'norm! v`[o`]"'.reg.'y' + let type = 'v' + elseif a:type == "line" + silent exe 'norm! `[V`]"'.reg.'y' + let type = 'V' + elseif a:type ==# "v" || a:type ==# "V" || a:type ==# "\<C-V>" + let &selection = sel_save + let ve = &virtualedit + if !(a:0 && a:1) + set virtualedit= + endif + silent exe 'norm! gv"'.reg.'y' + let &virtualedit = ve + elseif a:type =~ '^\d\+$' + let type = 'v' + silent exe 'norm! ^v'.a:type.'$h"'.reg.'y' + if mode() ==# 'v' + norm! v + return s:beep() + endif + else + let &selection = sel_save + let &clipboard = cb_save + return s:beep() + endif + let keeper = getreg(reg) + if type ==# "v" && a:type !=# "v" + let append = matchstr(keeper,'\_s\@<!\s*$') + let keeper = substitute(keeper,'\_s\@<!\s*$','','') + endif + call setreg(reg,keeper,type) + call s:wrapreg(reg,char,"",a:0 && a:1) + if type ==# "v" && a:type !=# "v" && append != "" + call setreg(reg,append,"ac") + endif + silent exe 'norm! gv'.(reg == '"' ? '' : '"' . reg).'p`[' + if type ==# 'V' || (getreg(reg) =~ '\n' && type ==# 'v') + call s:reindent() + endif + call setreg(reg,reg_save,reg_type) + let &selection = sel_save + let &clipboard = cb_save + if a:type =~ '^\d\+$' + silent! call repeat#set("\<Plug>Y".(a:0 && a:1 ? "S" : "s")."surround".char.s:input,a:type) + else + silent! call repeat#set("\<Plug>SurroundRepeat".char.s:input) + endif +endfunction + +function! s:opfunc2(...) abort + if !a:0 || a:1 ==# 'setup' + let &opfunc = matchstr(expand('<sfile>'), '<SNR>\w\+$') + return 'g@' + endif + call s:opfunc(a:1, 1) +endfunction " }}}1 + +function! s:closematch(str) " {{{1 + " Close an open (, {, [, or < on the command line. + let tail = matchstr(a:str,'.[^\[\](){}<>]*$') + if tail =~ '^\[.\+' + return "]" + elseif tail =~ '^(.\+' + return ")" + elseif tail =~ '^{.\+' + return "}" + elseif tail =~ '^<.+' + return ">" + else + return "" + endif +endfunction " }}}1 + +nnoremap <silent> <Plug>SurroundRepeat . +nnoremap <silent> <Plug>Dsurround :<C-U>call <SID>dosurround(<SID>inputtarget())<CR> +nnoremap <silent> <Plug>Csurround :<C-U>call <SID>changesurround()<CR> +nnoremap <silent> <Plug>CSurround :<C-U>call <SID>changesurround(1)<CR> +nnoremap <expr> <Plug>Yssurround '^'.v:count1.<SID>opfunc('setup').'g_' +nnoremap <expr> <Plug>YSsurround <SID>opfunc2('setup').'_' +nnoremap <expr> <Plug>Ysurround <SID>opfunc('setup') +nnoremap <expr> <Plug>YSurround <SID>opfunc2('setup') +vnoremap <silent> <Plug>VSurround :<C-U>call <SID>opfunc(visualmode(),visualmode() ==# 'V' ? 1 : 0)<CR> +vnoremap <silent> <Plug>VgSurround :<C-U>call <SID>opfunc(visualmode(),visualmode() ==# 'V' ? 0 : 1)<CR> +inoremap <silent> <Plug>Isurround <C-R>=<SID>insert()<CR> +inoremap <silent> <Plug>ISurround <C-R>=<SID>insert(1)<CR> + +if !exists("g:surround_no_mappings") || ! g:surround_no_mappings + nmap ds <Plug>Dsurround + nmap cs <Plug>Csurround + nmap cS <Plug>CSurround + nmap ys <Plug>Ysurround + nmap yS <Plug>YSurround + nmap yss <Plug>Yssurround + nmap ySs <Plug>YSsurround + nmap ySS <Plug>YSsurround + xmap S <Plug>VSurround + xmap gS <Plug>VgSurround + if !exists("g:surround_no_insert_mappings") || ! g:surround_no_insert_mappings + if !hasmapto("<Plug>Isurround","i") && "" == mapcheck("<C-S>","i") + imap <C-S> <Plug>Isurround + endif + imap <C-G>s <Plug>Isurround + imap <C-G>S <Plug>ISurround + endif +endif + +" vim:set ft=vim sw=2 sts=2 et: diff --git a/.config/vim/plugin/system_copy.vim b/.config/vim/plugin/system_copy.vim @@ -0,0 +1,148 @@ +if exists('g:loaded_system_copy') || v:version < 700 + finish +endif +let g:loaded_system_copy = 1 + +let s:blockwise = 'blockwise visual' +let s:visual = 'visual' +let s:motion = 'motion' +let s:linewise = 'linewise' +let s:mac = 'mac' +let s:windows = 'windows' +let s:linux = 'linux' + +function! s:system_copy(type, ...) abort + let mode = <SID>resolve_mode(a:type, a:0) + let unnamed = @@ + if mode == s:linewise + let lines = { 'start': line("'["), 'end': line("']") } + silent exe lines.start . "," . lines.end . "y" + elseif mode == s:visual || mode == s:blockwise + silent exe "normal! `<" . a:type . "`>y" + else + silent exe "normal! `[v`]y" + endif + let command = s:CopyCommandForCurrentOS() + silent call system(command, getreg('@')) + echohl String | echon 'Copied to clipboard using: ' . command | echohl None + let @@ = unnamed +endfunction + +function! s:system_paste(type, ...) abort + let mode = <SID>resolve_mode(a:type, a:0) + let command = <SID>PasteCommandForCurrentOS() + let unnamed = @@ + if mode == s:linewise + let lines = { 'start': line("'["), 'end': line("']") } + silent exe lines.start . "," . lines.end . "d" + silent exe "set paste | normal! O" . system(command) + silent exe "set nopaste" + elseif mode == s:visual || mode == s:blockwise + silent exe "normal! `<" . a:type . "`>c" . system(command) + else + silent exe "normal! `[v`]c" . system(command) + endif + echohl String | echon 'Pasted to clipboard using: ' . command | echohl None + let @@ = unnamed +endfunction + +function! s:system_paste_line() abort + let command = <SID>PasteCommandForCurrentOS() + put =system(command) + echohl String | echon 'Pasted to vim using: ' . command | echohl None +endfunction + +function! s:resolve_mode(type, arg) + let visual_mode = a:arg != 0 + if visual_mode + return (a:type == '') ? s:blockwise : s:visual + elseif a:type == 'line' + return s:linewise + else + return s:motion + endif +endfunction + +function! s:currentOS() + let os = substitute(system('uname'), '\n', '', '') + let known_os = 'unknown' + if has("gui_mac") || os ==? 'Darwin' + let known_os = s:mac + elseif has("gui_win32") || os =~? 'cygwin' || os =~? 'MINGW' + let known_os = s:windows + elseif os ==? 'Linux' + let known_os = s:linux + else + exe "normal \<Esc>" + throw "unknown OS: " . os + endif + return known_os +endfunction + +function! s:CopyCommandForCurrentOS() + if exists('g:system_copy#copy_command') + return g:system_copy#copy_command + endif + let os = <SID>currentOS() + if os == s:mac + return 'pbcopy' + elseif os == s:windows + return 'clip' + elseif os == s:linux + if !empty($WAYLAND_DISPLAY) + return 'wl-copy' + else + return 'xsel --clipboard --input' + endif + endif +endfunction + +function! s:PasteCommandForCurrentOS() + if exists('g:system_copy#paste_command') + return g:system_copy#paste_command + endif + let os = <SID>currentOS() + if os == s:mac + return 'pbpaste' + elseif os == s:windows + return 'paste' + elseif os == s:linux + if !empty($WAYLAND_DISPLAY) + return 'wl-paste -n' + else + return 'xsel --clipboard --output' + endif + endif +endfunction + +xnoremap <silent> <Plug>SystemCopy :<C-U>call <SID>system_copy(visualmode(),visualmode() ==# 'V' ? 1 : 0)<CR> +nnoremap <silent> <Plug>SystemCopy :<C-U>set opfunc=<SID>system_copy<CR>g@ +nnoremap <silent> <Plug>SystemCopyLine :<C-U>set opfunc=<SID>system_copy<Bar>exe 'norm! 'v:count1.'g@_'<CR> +xnoremap <silent> <Plug>SystemPaste :<C-U>call <SID>system_paste(visualmode(),visualmode() ==# 'V' ? 1 : 0)<CR> +nnoremap <silent> <Plug>SystemPaste :<C-U>set opfunc=<SID>system_paste<CR>g@ +nnoremap <silent> <Plug>SystemPasteLine :<C-U>call <SID>system_paste_line()<CR> + +if !hasmapto('<Plug>SystemCopy', 'n') || maparg('cp', 'n') ==# '' + nmap cp <Plug>SystemCopy +endif + +if !hasmapto('<Plug>SystemCopy', 'v') || maparg('cp', 'v') ==# '' + xmap cp <Plug>SystemCopy +endif + +if !hasmapto('<Plug>SystemCopyLine', 'n') || maparg('cP', 'n') ==# '' + nmap cP <Plug>SystemCopyLine +endif + +if !hasmapto('<Plug>SystemPaste', 'n') || maparg('cv', 'n') ==# '' + nmap cv <Plug>SystemPaste +endif + +if !hasmapto('<Plug>SystemPaste', 'v') || maparg('cv', 'v') ==# '' + xmap cv <Plug>SystemPaste +endif + +if !hasmapto('<Plug>SystemPasteLine', 'n') || maparg('cV', 'n') ==# '' + nmap cV <Plug>SystemPasteLine +endif +" vim:ts=2:sw=2:sts=2 diff --git a/.scripts/bin/display/hlock b/.scripts/bin/display/hlock @@ -4,7 +4,7 @@ # Created by Hayden Hamilton # # haydenvh.com -# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 ../../.licenses/gplv2.license +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license # image="/tmp/screen.png" locker="i3lock -i" diff --git a/.scripts/bin/display/rfeh b/.scripts/bin/display/rfeh @@ -1,4 +1,10 @@ #!/bin/bash +# +# rfeh +# Created by Hayden Hamilton +# +# haydenvh.com +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license if [ "$(echo $1 | awk '/help/ {print $0}')" != "" ] then diff --git a/.scripts/bin/dmenu/daskpass b/.scripts/bin/dmenu/daskpass @@ -5,7 +5,7 @@ # Created by Hayden Hamilton # # haydenvh.com -# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 ../../.licenses/gplv2.license +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license # dmenu="dmenu" . $HOME/.dmenurc diff --git a/.scripts/bin/dmenu/dbrowse b/.scripts/bin/dmenu/dbrowse @@ -1,10 +1,3 @@ #!/bin/bash -# -# dbrowse -# Created by Hayden Hamilton -# -# haydenvh.com -# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 .licenses/gplv2.license -# dfm $1 ~/general/documents diff --git a/.scripts/bin/dmenu/dfm b/.scripts/bin/dmenu/dfm @@ -4,7 +4,7 @@ # Created by Hayden Hamilton # # haydenvh.com -# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 ../../.licenses/gplv2.license +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license # if [ "$(echo $1 | awk '/help/ {print}')" != "" ] diff --git a/.scripts/bin/dmenu/dircgetpass b/.scripts/bin/dmenu/dircgetpass @@ -0,0 +1,15 @@ +#!/bin/bash +dmenu="dmenu" +. $HOME/.config/irssi/userrc +. $HOME/.dmenurc + +#Servers { + SERVERS="RIZON FREENODE" + RIZON="irc.rizon.net" + FREENODE="chat.freenode.net" +#} + +selection=$(echo "$SERVERS" | tr " " "\n" | $dmenu -i -p "Select IRC server") +user="${selection}_USER" +pass="${selection}_PASS" +echo "/connect ${!selection} 6667 ${!user}:${!pass}" | xclip diff --git a/.scripts/bin/dmenu/dmpvurl b/.scripts/bin/dmenu/dmpvurl @@ -4,8 +4,9 @@ # Created by Hayden Hamilton # # haydenvh.com -# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 ../../.licenses/gplv2.license +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license # + dmenu="dmenu" . $HOME/.dmenurc socket="$1" diff --git a/.scripts/bin/dmenu/dpass b/.scripts/bin/dmenu/dpass @@ -4,8 +4,9 @@ # Created by Hayden Hamilton # # haydenvh.com -# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 ../../.licenses/gplv2.license +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license # + if [ "$(echo $1 | awk '/help/ {print $0}')" != "" ] then echo "dpass [\"option that your terminal uses to execute the argument\"] @@ -40,6 +41,6 @@ elif [ "$pass" == "edit" ] then $TERMINAL "$1" vim $PASS else - echo $getpass | sed "s/$pass.//g" | tr " " "\n" | $dmenu $2 -l 20 -p "Password:" | xclip + echo $getpass | sed "s/$pass.//g" | tr " " "\n" | $dmenu $2 -P -l 20 -p "Password:" | xclip notify-send "Password copied to clipboard." fi diff --git a/.scripts/bin/dmenu/userinput b/.scripts/bin/dmenu/userinput @@ -1,11 +1,3 @@ -#!/bin/bash -# -# dmenu/userinput -# Created by Hayden Hamilton -# -# haydenvh.com -# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 ../../.licenses/gplv2.license -# dmenu="dmenu" . $HOME/.dmenurc diff --git a/.scripts/bin/misc/hmpv b/.scripts/bin/misc/hmpv @@ -1,4 +1,10 @@ #!/bin/bash +# +# hmpv +# Created by Hayden Hamilton +# +# haydenvh.com +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license action=$1 socket=$2 diff --git a/.scripts/bin/misc/rmpv b/.scripts/bin/misc/rmpv @@ -1,4 +1,10 @@ #!/bin/bash +# +# rmpv +# Created by Hayden Hamilton +# +# haydenvh.com +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license dir=$1 count="$2" diff --git a/.scripts/bin/misc/trimfiles b/.scripts/bin/misc/trimfiles @@ -1,4 +1,10 @@ #!/bin/bash +# +# trimfiles +# Created by Hayden Hamilton +# +# haydenvh.com +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license dirs=$(ls -d */ */*/ */*/*/ 2>/dev/null) for dir in $dirs diff --git a/.scripts/i3blocks/bat b/.scripts/i3blocks/bat @@ -4,7 +4,7 @@ # Created by Hayden Hamilton # # haydenvh.com -# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 ../../.licenses/gplv2.license +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license p=$(acpi | awk '/Battery/ {print $4}' | sed 's/,//g') if [ "$p" == "0%" ] diff --git a/.scripts/i3blocks/cal b/.scripts/i3blocks/cal @@ -1,4 +1,10 @@ #!/bin/bash +# +# i3blocks/cal +# Created by Hayden Hamilton +# +# haydenvh.com +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license get_cal() { calcurse -D $HOME/.config/calcurse $1 | awk "/$2/" | wc -l diff --git a/.scripts/i3blocks/cpu b/.scripts/i3blocks/cpu @@ -4,8 +4,7 @@ # Created by Hayden Hamilton # # haydenvh.com -# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 ../../.licenses/gplv2.license -# +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license cpu=$(ps -e -o %cpu | awk '{s+=$1} END {print s}') echo "< C $cpu%" diff --git a/.scripts/i3blocks/disk b/.scripts/i3blocks/disk @@ -4,10 +4,9 @@ # Created by Hayden Hamilton # # haydenvh.com -# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 ../../.licenses/gplv2.license -# +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license sda1=$(df -h | awk '/sda1/ {print $3 "/" $4}') echo "< SDA1 $sda1" echo -echo \#0F9BF3 +echo \#0F6BF3 diff --git a/.scripts/i3blocks/disk2 b/.scripts/i3blocks/disk2 @@ -1,11 +1,10 @@ #!/bin/bash # -# i3blocks/disk +# i3blocks/disk2 # Created by Hayden Hamilton # # haydenvh.com -# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPL v2 ../../.licenses/gplv2.license -# +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license sda2=$(df -h | awk '/sda2/ {print $3 "/" $4}') echo "< SDA2 $sda2" diff --git a/.scripts/i3blocks/host b/.scripts/i3blocks/host @@ -1,4 +1,10 @@ #!/bin/bash +# +# i3blocks/host +# Created by Hayden Hamilton +# +# haydenvh.com +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license hostget="\u@\h" echo "< ${hostget@P}" diff --git a/.scripts/i3blocks/mem b/.scripts/i3blocks/mem @@ -4,9 +4,8 @@ # Created by Hayden Hamilton # # haydenvh.com -# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 ../../.licenses/gplv2.license -# +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license echo "< M $(free -h | awk '/^Mem:/ {print $3 "/" $2}')" echo -echo \#009dc1 +echo \#007dc1 diff --git a/.scripts/i3blocks/mpv b/.scripts/i3blocks/mpv @@ -1,4 +1,10 @@ #!/bin/bash +# +# i3blocks/mpv +# Created by Hayden Hamilton +# +# haydenvh.com +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license file=$(echo '{command:["get_property", "media-title"]}' | socat - /tmp/mpv-socket | tr "." " " | sed 's/opus//g' | sed 's/mp3//g' | sed 's/mkv//g' | sed 's/flac//g' | sed 's/webm//g' | sed 's/part//g' | tr '"\{:,}[' ' ' | sed 's/data//g' | sed 's/request_id 0//g' | sed 's/error success//g' | sed 's/ //g' | tail -c +2 | sed 's/$//g' | tr "()'" " " | sed 's/ / /g' |sed 's/ / /g' | sed 's/ / /g' | sed 's/ / /g' | cut -zc-40) vidtitle=$(echo '{command:["get_property", "media-title"]}' | socat - /tmp/mpv-socket2 | tr '"{:,}\[' ' ' | sed 's/data//g' | sed 's/request_id 0//g' | sed 's/error success//g' | sed 's/ / /g' | sed 's/ / /g' | sed 's/ / /g' | sed 's/ / /g' | cut -zc-40) diff --git a/.scripts/i3blocks/net b/.scripts/i3blocks/net @@ -4,10 +4,9 @@ # Created by Hayden Hamilton # # haydenvh.com -# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 ../../.licenses/gplv2.license -# +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license ip=$(curl -s http://icanhazip.com/) echo "< $ip" echo -echo \#4DB0C6 +echo \#4Da0C6 diff --git a/.scripts/i3blocks/news b/.scripts/i3blocks/news @@ -1,4 +1,10 @@ #!/bin/bash +# +# i3blocks/news +# Created by Hayden Hamilton +# +# haydenvh.com +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license newsboat -x reload 2>/dev/null unread=$(newsboat -x print-unread | sed 's/unread articles//g') diff --git a/.scripts/i3blocks/time b/.scripts/i3blocks/time @@ -1,4 +1,11 @@ #!/bin/bash +# +# i3blocks/time +# Created by Hayden Hamilton +# +# haydenvh.com +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license + echo "< $(date +%d/%m)" echo echo \#ff7777 diff --git a/.scripts/i3blocks/time2 b/.scripts/i3blocks/time2 @@ -1,4 +1,11 @@ #!/bin/bash +# +# i3blocks/time2 +# Created by Hayden Hamilton +# +# haydenvh.com +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license + echo "< $(date | awk '{print $4}')" echo echo \#ff303b diff --git a/.scripts/i3blocks/title b/.scripts/i3blocks/title @@ -1,5 +1,13 @@ #!/bin/bash +# +# i3blocks/title +# Created by Hayden Hamilton +# +# haydenvh.com +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license id=$(xprop -root _NET_ACTIVE_WINDOW | awk '// {print $5}') out=$(xprop -id $id | awk '/WM_ICON_NAME\(STRING\)/ { $1=""; $2=""; print}' | sed 's/"//g' | sed "s/^[ \t]*//" | cut -zc-40) echo $out +echo +echo \#226644 diff --git a/.scripts/i3blocks/vol b/.scripts/i3blocks/vol @@ -1,8 +1,14 @@ #!/bin/bash +# +# i3blocks/vol +# Created by Hayden Hamilton +# +# haydenvh.com +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license toggled=$(amixer sget Master | awk '/Mono/ {print $6}' | sed 's/\[//g' | sed 's/\]//g') volume=$(amixer sget Master | awk '/Mono/ {print $4}' | sed 's/\[//g' | sed 's/\]//g') output=$(echo $(echo ${volume}|tr "\n" " ")$(echo ${toggled}|tr "\n" " "|sed 's/ //g')) echo "< VOL $output" echo -echo \#21a4a3 +echo \#218888 diff --git a/.scripts/i3blocks/weather b/.scripts/i3blocks/weather @@ -1,4 +1,10 @@ #!/bin/bash +# +# i3blocks/weather +# Created by Hayden Hamilton +# +# haydenvh.com +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license curl -Ss 'https://wttr.in?0TQ' | cut -c 16- > ~/.cache/weather echo "< $(sed 2q ~/.cache/weather | sed 's/\.\./ /g' | xargs echo)" diff --git a/.scripts/i3blocks/weather2 b/.scripts/i3blocks/weather2 @@ -1,4 +1,10 @@ #!/bin/bash +# +# i3blocks/weather2 +# Created by Hayden Hamilton +# +# haydenvh.com +# Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 haydenh.gitlab.io/p/gplv2.license echo "< RAIN $(sed 5q ~/.cache/weather | sed 's/‘//g' | sed 's/‚’//g' | tail -n 1 | sed 's/ //g')" echo