dotfiles

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

commit 81dc8dc542b47a913f061296614474f198a5d705
parent 3b9fd1de5e8d0ed0d4dc27855133b90fea1b3402
Author: Hayden Hamilton <hayden@haydenvh.com>
Date:   Fri, 27 Dec 2019 21:00:28 +0000

A proper license was lacking

Diffstat:
M.Xresources | 2+-
M.config/fish/config.fish | 4++--
M.config/i3/config | 15++++-----------
M.config/i3blocks/config | 4++++
M.config/irssi/config | 1+
D.config/vim/autoload/commentary.vim | 117-------------------------------------------------------------------------------
D.config/vim/autoload/repeat.vim | 165-------------------------------------------------------------------------------
D.config/vim/autoload/surround.vim | 619-------------------------------------------------------------------------------
D.config/vim/autoload/system_copy.vim | 148-------------------------------------------------------------------------------
M.scripts/bin/dmenu/daskpass | 1+
M.scripts/bin/dmenu/dfm | 42+++++++++++++++++++++++++++++-------------
D.scripts/bin/dmenu/dmenurun | 4----
M.scripts/bin/dmenu/dmount | 1+
M.scripts/bin/dmenu/dmpv | 2+-
M.scripts/bin/dmenu/dmpvurl | 3+--
M.scripts/bin/dmenu/dumount | 1+
M.scripts/bin/dmenu/userinput | 2+-
D.scripts/bin/misc/ircgetpass | 3---
M.scripts/i3blocks/mpv | 4++--
A.scripts/i3blocks/title | 5+++++
M.vimrc | 3++-
ALICENSE | 11+++++++++++
22 files changed, 67 insertions(+), 1090 deletions(-)

diff --git a/.Xresources b/.Xresources @@ -8,7 +8,7 @@ ! special *.foreground: #1e5eb3 -*.background: #090711 +*.background: #0c0a14 *.cursorColor: #1e5eb3 ! black diff --git a/.config/fish/config.fish b/.config/fish/config.fish @@ -30,11 +30,11 @@ function ytdla; youtube-dl --add-metadata -xic $argv; end function ls; command ls --color $argv; end function map; telnet mapscii.me; end function tetris; ssh netris.rocketnine.space; end -function calcurse; calcurse -D ~/.config/calcurse/; 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 ~/.Xresources; xrdb ~/.Xdefaults; end +function urxvtrestart; xrdb ~/.Xdefaults; xrdb ~/.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 @@ -61,10 +61,6 @@ bar{ inactive_workspace $background $yellow2 #000000 urgent_workspace $background #ffffff #990000 } - - #Learn to use the keyboard newbs. - bindsym button1 nop - id bar-1 } bar{ @@ -84,9 +80,6 @@ bar{ inactive_workspace $background $yellow2 #000000 urgent_workspace $background #ffffff #990000 } - - #Learn to use the keyboard newbs. - bindsym button1 nop } ##Setting workspace names @@ -199,8 +192,8 @@ bindsym $mod+r exec $terminal -name fileman -e dfm fm bindsym $mod+shift+r restart bindsym $mod+t layout tabbed bindsym $mod+shift+t layout toggle split -bindsym $mod+y exec $terminal -name irssi -e irssi --home ~/.config/irssi/; exec ircgetpass -bindsym $mod+shift+y exec $terminal -name irssi -e irsii --home ~/.config/irssi/; exec ircgetpass +bindsym $mod+y exec $terminal -name irssi -e irssi --home ~/.config/irssi/ +bindsym $mod+shift+y exec dircgetpass bindsym $mod+u exec wallvar ~/.wallpapers/ 60; exec dunstify "Auto-changing wallpapers on." bindsym $mod+shift+u exec killall wallvar; exec dunstify "Auto-changing wallpapers off." bindsym $mod+i exec $terminal -name fff -e ffflaunch @@ -226,7 +219,7 @@ bindsym $mod+x split h bindsym $mod+shift+x split h bindsym $mod+c exec locker /tmp/mpv-socket2 /tmp/mpv-socket bindsym $mod+shift+c exec slock -bindsym $mod+v exec killall mpv +bindsym $mod+v workspace "TEMPORARY"; exec $terminal -e htop; exec $terminal -e alsamixer bindsym $mod+shift+v exec killall mpv bindsym $mod+b exec vimb --no-maximize bindsym $mod+shift+b exec dmpvurl /tmp/mpv-socket /tmp/mpv-socket2 @@ -274,7 +267,7 @@ bindsym F9 exec dmpv music /tmp/mpv-socket /tmp/mpv-socket2 --no-video bindsym shift+F9 exec rmpv music 50 bindsym F10 exec hmpv back /tmp/mpv-socket bindsym shift+F10 exec hmpv prev /tmp/mpv-socket -bindsym F11 exec hmpv toggle /tmp/mpv-socket +bindsym F11 exec hmpv toggle /tmp/mpv-socket; exec hmpv toggle /tmp/mpv-socket2 bindsym shift+F11 exec hmpv quit /tmp/mpv-socket bindsym F12 exec hmpv forward /tmp/mpv-socket bindsym shift+F12 exec hmpv next /tmp/mpv-socket diff --git a/.config/i3blocks/config b/.config/i3blocks/config @@ -6,6 +6,10 @@ border_top=0 border_left=0 border_right=0 +[title] +interval=1 +border=#ffffff + [vol] interval=1 border=#21a4a3 diff --git a/.config/irssi/config b/.config/irssi/config @@ -30,6 +30,7 @@ channels = ( { name = "#i3"; 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"; }, ); aliases = { ATAG = "WINDOW SERVER"; diff --git a/.config/vim/autoload/commentary.vim b/.config/vim/autoload/commentary.vim @@ -1,117 +0,0 @@ -" 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/autoload/repeat.vim b/.config/vim/autoload/repeat.vim @@ -1,165 +0,0 @@ -" 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/autoload/surround.vim b/.config/vim/autoload/surround.vim @@ -1,619 +0,0 @@ -" 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/autoload/system_copy.vim b/.config/vim/autoload/system_copy.vim @@ -1,148 +0,0 @@ -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/dmenu/daskpass b/.scripts/bin/dmenu/daskpass @@ -7,5 +7,6 @@ # haydenvh.com # Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 ../../.licenses/gplv2.license # +dmenu="dmenu" . $HOME/.dmenurc $dmenu -P -p "$1" <&- && echo diff --git a/.scripts/bin/dmenu/dfm b/.scripts/bin/dmenu/dfm @@ -17,6 +17,8 @@ DFM_DOT=[0/1 to show dotfiles] <-- Default: 1 DFM_USE_HH_PATCH=[0/1 to use the patched dmenu from haydenvh.com] <-- Default: 0 DFM_DISABLE_ENQUEUE=[0/1 to never enqueue input] <-- Default: 0 DFM_SCREENSHOT_CMD=\"[insert program name]\" <-- Default: \"maim -s\" +DFM_CLIPBOARD_TYPE=\"[PRIMARY/CLIPBOARD/CUSTOM]\" <-- Default: \"PRIMARY\" +DFM_CLIPBOARD_CUSTOM=\"[insert program for clipboard]\" <-- Default: \"xclip\" $(tput bold)CONFIGURING COMMANDS FOR FILE TYPES:$(tput sgr0) Syntax DFM_FILETYPE_[insert filetype in all caps]=\"[insert program name]\" @@ -33,18 +35,32 @@ then fi getconf(){ -dmenu="dmenu" -DFM_SCREENSHOT_CMD="maim -s" -DFM_CONF_DIR="$HOME/.config/dfm" -. $HOME/.dmenurc -. $HOME/.config/dfm/config -if [ "$DFM_USE_HH_PATCH" == "1" ] -then - dmenu="$dmenu -c -w 1000" -fi - -confdir="$DFM_CONF_DIR" -conffile="$confdir/config" + dmenu="dmenu" + DFM_SCREENSHOT_CMD="maim -s" + DFM_CONF_DIR="$HOME/.config/dfm" + DFM_CLIPBOARD_CUSTOM="xclip" + DFM_CLIPBOARD_TYPE="PRIMARY" + . $HOME/.dmenurc + . $HOME/.config/dfm/config + if [ "$DFM_USE_HH_PATCH" == "1" ] + then + dmenu="$dmenu -c -w 1000" + fi + if [ "$DFM_CLIPBOARD_TYPE" == "PRIMARY" ] + then + clipboard="xclip" + elif [ "$DFM_CLIPBOARD_TYPE" == "CLIPBOARD" ] + then + clipboard="xclip -selection clipboard" + elif [ "$DFM_CLIPBOARD_TYPE" == "CUSTOM" ] + then + clipboard="$DFM_CLIPBOARD_CUSTOM" + else + clipboard="xclip" + fi + echo $clipboard + confdir="$DFM_CONF_DIR" + conffile="$confdir/config" } makeconfdir(){ @@ -110,7 +126,7 @@ send0x0(){ send=$(curl -F "file=@$output" https://0x0.st) send2=$(echo "$send" | awk '/http/') [ "$send2" == "" ] && echo "Failed" | $dmenu -i -p "Hit enter to continue" - [ "$send2" != "" ] && echo $send | $dmenu -i -p "Hit enter to continue" | xclip + [ "$send2" != "" ] && echo $send | $dmenu -i -p "Hit enter to continue" | $clipboard } sendscrn0x0(){ diff --git a/.scripts/bin/dmenu/dmenurun b/.scripts/bin/dmenu/dmenurun @@ -1,4 +0,0 @@ -#!/bin/bash -. $HOME/.dmenurc -dir=$(echo $PATH | tr ":" " " | sed 's/:.//g') -find $dir -maxdepth 1 -executable -not -type d -printf "%f\n" | sort | $dmenu "$@" | ${SHELL:-"/bin/bash"} & diff --git a/.scripts/bin/dmenu/dmount b/.scripts/bin/dmenu/dmount @@ -1,4 +1,5 @@ #!/bin/bash +dmenu="dmenu" . $HOME/.dmenurc getmount() { \ diff --git a/.scripts/bin/dmenu/dmpv b/.scripts/bin/dmenu/dmpv @@ -1,5 +1,5 @@ #!/bin/bash - +dmenu="dmenu" . $HOME/.dmenurc hmpv pause $3 diff --git a/.scripts/bin/dmenu/dmpvurl b/.scripts/bin/dmenu/dmpvurl @@ -1,5 +1,4 @@ #!/bin/bash -#!/bin/bash # # dmenu/dmpvurl # Created by Hayden Hamilton @@ -7,7 +6,7 @@ # haydenvh.com # Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 ../../.licenses/gplv2.license # - +dmenu="dmenu" . $HOME/.dmenurc socket="$1" socket2="$2" diff --git a/.scripts/bin/dmenu/dumount b/.scripts/bin/dmenu/dumount @@ -1,4 +1,5 @@ #!/bin/bash +dmenu="dmenu" . $HOME/.dmenurc unmountusb() { diff --git a/.scripts/bin/dmenu/userinput b/.scripts/bin/dmenu/userinput @@ -6,7 +6,7 @@ # haydenvh.com # Copyright (c) 2019 Hayden Hamilton. LICENSE:GPLv2 ../../.licenses/gplv2.license # - +dmenu="dmenu" . $HOME/.dmenurc [ "$(printf "No\\nYes" | $dmenu -i -p "$1")" = "Yes" ] && $2 diff --git a/.scripts/bin/misc/ircgetpass b/.scripts/bin/misc/ircgetpass @@ -1,3 +0,0 @@ -#/bin/bash -. $HOME/.config/irssi/userrc -echo "/connect chat.freenode.net 6667 $IRCUSER:$IRCPASS" | xclip diff --git a/.scripts/i3blocks/mpv b/.scripts/i3blocks/mpv @@ -1,7 +1,7 @@ #!/bin/bash -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') -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') +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) state=$(echo '{ "command": ["get_property", "pause"] }' | socat - /tmp/mpv-socket | tr '{":0,}' ' ' | awk '// {print $2}') state2=$(echo '{ "command": ["get_property", "pause"] }' | socat - /tmp/mpv-socket2 | tr '{":0,}' ' ' | awk '// {print $2}') convertsecs() { diff --git a/.scripts/i3blocks/title b/.scripts/i3blocks/title @@ -0,0 +1,5 @@ +#!/bin/bash + +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 diff --git a/.vimrc b/.vimrc @@ -27,4 +27,5 @@ set hlsearch "Set useful bindings nmap <Leader>s !bash % nmap <Leader>p !perl % -nmap <Leader>u !g++ -o compilefile % +nmap <Leader>c !gcc % -o compilefile +nmap <Leader>u !g++ % -o compilefile diff --git a/LICENSE b/LICENSE @@ -0,0 +1,11 @@ +Copyright (C) 2019 Hayden Hamilton <hayden@haydenvh.com> + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details.