commit f1096eb90d3ea2c482074b207e64ef828f5a8cc0 Author: Gregor Feierabend <23300469@sun.ac.za> Date: Sat Mar 6 18:33:52 2021 +0200 added initial configuration diff --git a/.bashrc b/.bashrc new file mode 100644 index 0000000..34dbd8c --- /dev/null +++ b/.bashrc @@ -0,0 +1,18 @@ +# /etc/skel/.bashrc +# +# This file is sourced by all *interactive* bash shells on startup, +# including some apparently interactive shells such as scp and rcp +# that can't tolerate any output. So make sure this doesn't display +# anything or bad things will happen ! + + +# Test for an interactive shell. There is no need to set anything +# past this point for scp and rcp, and it's important to refrain from +# outputting anything in those cases. +if [[ $- != *i* ]] ; then + # Shell is non-interactive. Be done now! + return +fi + + +# Put your fun stuff here. diff --git a/.chktexrc b/.chktexrc new file mode 100755 index 0000000..ae3e445 --- /dev/null +++ b/.chktexrc @@ -0,0 +1,4 @@ +WipeArg +{ + \m:{} \m:[]{} \textrm:{} \mintinline:{}{} +} diff --git a/.compton.conf b/.compton.conf new file mode 100644 index 0000000..1bdf172 --- /dev/null +++ b/.compton.conf @@ -0,0 +1,8 @@ +shadow-opacity = 0.7; +shadow = true; +shadow-radius = 0; +shadow-offset-x = -2; +shadow-offset-y = -2; +shadow-ignore-shaped = true; + +shadow-exclude = [ "name = 'Notification'", "class_g = 'Conky'", "class_g ?= 'Notify-osd'", "class_g = 'Cairo-clock'", "class_g = 'Pqiv'", "class_g = 'slop'", "class_g = 'Firefox'", "name = 'xfce4-notifyd'"]; diff --git a/.config/mpv/general.conf b/.config/mpv/general.conf new file mode 100644 index 0000000..2f73798 --- /dev/null +++ b/.config/mpv/general.conf @@ -0,0 +1,2 @@ +fullscreen=no +audio-device=alsa/btheadset diff --git a/.config/mpv/input.conf b/.config/mpv/input.conf new file mode 100644 index 0000000..0bdd6cc --- /dev/null +++ b/.config/mpv/input.conf @@ -0,0 +1,40 @@ +k run "/bin/sh" "-c" "echo ${working-directory}/${filename} >> /tmp/selection" +Alt+- add video-zoom -0.25 +Alt+= add video-zoom 0.25 + +#https://github.com/nimatrueway/mpv-bookmark-lua-script +Ctrl+1 script_message bookmark-set 1 # `Ctrl+1` will "save current filePath and seekPos to bookmark #1 slot" +Alt+1 script_message bookmark-load 1 # `Alt+2` will "restore current filePath and seekPos from bookmark #1 slot" +Alt+Ctrl+1 script_message bookmark-peek 1 # `Alt+Ctrl+2` will give you a "peek of the filename, its immediate parent directory and seek-pos saved in the bookmark #1 slot" +Ctrl+2 script_message bookmark-set 2 +Alt+2 script_message bookmark-load 2 +Alt+Ctrl+2 script_message bookmark-peek 2 +Ctrl+3 script_message bookmark-set 3 +Alt+3 script_message bookmark-load 3 +Alt+Ctrl+3 script_message bookmark-peek 3 +Ctrl+4 script_message bookmark-set 4 +Alt+4 script_message bookmark-load 4 +Alt+Ctrl+4 script_message bookmark-peek 4 +Ctrl+5 script_message bookmark-set 5 +Alt+5 script_message bookmark-load 5 +Alt+Ctrl+5 script_message bookmark-peek 5 +Ctrl+6 script_message bookmark-set 6 +Alt+6 script_message bookmark-load 6 +Alt+Ctrl+6 script_message bookmark-peek 6 +Ctrl+7 script_message bookmark-set 7 +Alt+7 script_message bookmark-load 7 +Alt+Ctrl+7 script_message bookmark-peek 7 +Ctrl+8 script_message bookmark-set 8 +Alt+8 script_message bookmark-load 8 +Alt+Ctrl+8 script_message bookmark-peek 8 +Ctrl+9 script_message bookmark-set 9 +Alt+9 script_message bookmark-load 9 +Alt+Ctrl+9 script_message bookmark-peek 9 +Ctrl+0 script_message bookmark-set 0 +Alt+0 script_message bookmark-load 0 +Alt+Ctrl+0 script_message bookmark-peek 0 +s script_message bookmark-update # `s` will update last saved/restored bookmark +d script_message bookmark-peek-current # `d` will peek last saved/restored bookmark (lastest saved/restored bookmark is only considered if current file is in the same directory as the bookmark file) +u script_message bookmark-set-undo # `u` will undo/revert last save or update action + +h vf toggle hflip diff --git a/.config/mpv/script-opts/osc.conf b/.config/mpv/script-opts/osc.conf new file mode 100644 index 0000000..1700338 --- /dev/null +++ b/.config/mpv/script-opts/osc.conf @@ -0,0 +1 @@ +layout=box diff --git a/.config/vifm/colors/mine.vifm b/.config/vifm/colors/mine.vifm new file mode 100644 index 0000000..6efe517 --- /dev/null +++ b/.config/vifm/colors/mine.vifm @@ -0,0 +1,24 @@ +highlight clear +highlight Win cterm=none ctermfg=white ctermbg=default +highlight Directory cterm=bold ctermfg=white ctermbg=default +highlight Link cterm=bold ctermfg=yellow ctermbg=default +highlight BrokenLink cterm=bold ctermfg=blue ctermbg=default +highlight Socket cterm=bold ctermfg=magenta ctermbg=default +highlight Device cterm=bold ctermfg=blue ctermbg=default +highlight Fifo cterm=bold ctermfg=cyan ctermbg=default + +highlight Executable cterm=none ctermfg=white ctermbg=default + +highlight Selected cterm=bold ctermfg=magenta ctermbg=default +highlight CurrLine cterm=bold,reverse ctermfg=blue ctermbg=white +highlight TopLine cterm=none ctermfg=black ctermbg=white +highlight TopLineSel cterm=bold ctermfg=black ctermbg=default +highlight StatusLine cterm=bold ctermfg=black ctermbg=white +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=default +highlight CmdLine cterm=none ctermfg=white ctermbg=default +highlight ErrorMsg cterm=none ctermfg=blue ctermbg=default +highlight Border cterm=none ctermfg=black ctermbg=white +highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white +highlight SuggestBox cterm=bold ctermfg=default ctermbg=default +highlight CmpMismatch cterm=bold ctermfg=white ctermbg=blue +highlight AuxWin cterm=bold,underline,reverse,standout ctermfg=default ctermbg=default diff --git a/.config/vifm/vifmrc b/.config/vifm/vifmrc new file mode 100755 index 0000000..82bf554 --- /dev/null +++ b/.config/vifm/vifmrc @@ -0,0 +1,479 @@ +" vim: filetype=vifm : +" Sample configuration file for vifm (last updated: 21 January, 2018) +" You can edit this file by hand. +" The " character at the beginning of a line comments out the line. +" Blank lines are ignored. +" The basic format for each item is shown with an example. + +" ------------------------------------------------------------------------------ + +" This is the actual command used to start vi. The default is vim. +" If you would like to use another vi clone such as Elvis or Vile +" you will need to change this setting. + +set vicmd=vim +" set vicmd=elvis\ -G\ termcap +" set vicmd=vile + +" This makes vifm perform file operations on its own instead of relying on +" standard utilities like `cp`. While using `cp` and alike is a more universal +" solution, it's also much slower and doesn't support progress measuring. + +" set syscalls + +" Trash Directory +" The default is to move files that are deleted with dd or :d to +" the trash directory. If you change this you will not be able to move +" files by deleting them and then using p to put the file in the new location. +" I recommend not changing this until you are familiar with vifm. +" This probably shouldn't be an option. + +set trash + +" This is how many directories to store in the directory history. + +set history=100 + +" Automatically resolve symbolic links on l or Enter. + +set nofollowlinks + +" With this option turned on you can run partially entered commands with +" unambiguous beginning using :! (e.g. :!Te instead of :!Terminal or :!Te). + +" set fastrun + +" Natural sort of (version) numbers within text. + +set sortnumbers + +" Maximum number of changes that can be undone. + +set undolevels=100 + +" If you installed the vim.txt help file set vimhelp. +" If would rather use a plain text help file set novimhelp. + +set novimhelp + +" If you would like to run an executable file when you +" press return on the file name set this. + +set norunexec + +" Selected color scheme + +colorscheme mine + +" Format for displaying time in file list. For example: +" TIME_STAMP_FORMAT=%m/%d-%H:%M +" See man date or man strftime for details. + +set timefmt=%m/%d\ %H:%M + +" Show list of matches on tab completion in command-line mode + +set wildmenu + +" Display completions in a form of popup with descriptions of the matches + +set wildstyle=popup + +" Display suggestions in normal, visual and view modes for keys, marks and +" registers (at most 5 files). In other view, when available. + +set suggestoptions=normal,visual,view,otherpane,keys,marks,registers + +" Ignore case in search patterns unless it contains at least one uppercase +" letter + +set ignorecase +set smartcase + +" Don't highlight search results automatically + +set nohlsearch + +" Use increment searching (search while typing) +set incsearch + +" Try to leave some space from cursor to upper/lower border in lists + +set scrolloff=4 + +" Don't do too many requests to slow file systems + +if !has('win') + set slowfs=curlftpfs +endif + +" Set custom status line look + +set statusline=" Hint: %z%= %A %10u:%-7g %15s %20d " + +" ------------------------------------------------------------------------------ + +" :mark mark /full/directory/path [filename] + +mark b ~/bin/ +mark h ~/ + +" ------------------------------------------------------------------------------ + +" :com[mand][!] command_name action +" The following macros can be used in a command +" %a is replaced with the user arguments. +" %c the current file under the cursor. +" %C the current file under the cursor in the other directory. +" %f the current selected file, or files. +" %F the current selected file, or files in the other directory. +" %b same as %f %F. +" %d the current directory name. +" %D the other window directory name. +" %m run the command in a menu window + +command! df df -h %m 2> /dev/null +command! diff vim -d %f %F +command! zip zip -r %f.zip %f +command! run !! ./%f +command! make !!make %a +command! mkcd :mkdir %a | cd %a +command! vgrep vim "+grep %a" +command! reload :write | restart + +" ------------------------------------------------------------------------------ + +" The file type is for the default programs to be used with +" a file extension. +" :filetype pattern1,pattern2 defaultprogram,program2 +" :fileviewer pattern1,pattern2 consoleviewer +" The other programs for the file type can be accessed with the :file command +" The command macros %f, %F, %d, %F may be used in the commands. +" The %a macro is ignored. To use a % you must put %%. + +" For automated FUSE mounts, you must register an extension with :file[x]type +" in one of following formats: +" +" :filetype extensions FUSE_MOUNT|some_mount_command using %SOURCE_FILE and %DESTINATION_DIR variables +" %SOURCE_FILE and %DESTINATION_DIR are filled in by vifm at runtime. +" A sample line might look like this: +" :filetype *.zip,*.jar,*.war,*.ear FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR +" +" :filetype extensions FUSE_MOUNT2|some_mount_command using %PARAM and %DESTINATION_DIR variables +" %PARAM and %DESTINATION_DIR are filled in by vifm at runtime. +" A sample line might look like this: +" :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR +" %PARAM value is filled from the first line of file (whole line). +" Example first line for SshMount filetype: root@127.0.0.1:/ +" +" You can also add %CLEAR if you want to clear screen before running FUSE +" program. + +" Pdf +filextype *.pdf zathura %c %i &, apvlv %c, xpdf %c +fileviewer *.pdf pdftotext -nopgbrk %c - + +" Xournal +filextype *.xoj + \ {View in xournal} + \ xournal %f &, + +" PostScript +filextype *.ps,*.eps,*.ps.gz + \ {View in zathura} + \ zathura %f, + \ {View in gv} + \ gv %c %i &, + +" Djvu +filextype *.djvu + \ {View in zathura} + \ zathura %f, + \ {View in apvlv} + \ apvlv %f, + +" Audio +filetype *.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus + \ mocp %f, +\ mpv --audio-device=pulse --osd-font-size=20 --osd-level=3 %f, + \ {Play using ffplay} + \ ffplay -nodisp %c, + \ {Play using MPlayer} + \ mplayer %f, +fileviewer *.mp3 mp3info +fileviewer *.flac soxi + +" Video +filextype *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob, + \*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx, + \*.as[fx] + \ mpv --audio-device=pulse --osd-font-size=20 --osd-level=3 --really-quiet %f &, + \ mplayer %f &, + \ {View using ffplay} + \ ffplay -fs %f, + \ {View using Dragon} + \ dragon %f:p, + \ {View using mplayer} + \ mplayer %f, +fileviewer *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob, + \*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx, + \*.as[fx] + \ ffprobe -pretty %c 2>&1 + +" Web +filextype *.html,*.htm + \ {Open with dwb} + \ dwb %f %i &, + \ {Open with firefox} + \ firefox %f &, + \ {Open with uzbl} + \ uzbl-browser %f %i &, +filetype *.html,*.htm links, lynx + +" Object +filetype *.o nm %f | less + +" Man page +filetype *.[1-8] man ./%c +fileviewer *.[1-8] man ./%c | col -b + +" Markdown file +filetype *.md + \ typora %f &> /dev/null &, + +" Lyx file +filetype *.lyx + \ lyx %f &> /dev/null &, + +" Images +filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm + \ imv %f &, + \ {View in sxiv} + \ sxiv %f, + \ {View in gpicview} + \ gpicview %c, + \ {View in shotwell} + \ shotwell, +fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm + \ convert -identify %f -verbose /dev/null + +" OpenRaster +filextype *.ora + \ {Edit in MyPaint} + \ mypaint %f, + +" Mindmap +filextype *.vym + \ {Open with VYM} + \ vym %f &, + +" MD5 +filetype *.md5 + \ {Check MD5 hash sum} + \ md5sum -c %f %S, + +" SHA1 +filetype *.sha1 + \ {Check SHA1 hash sum} + \ sha1sum -c %f %S, + +" SHA256 +filetype *.sha256 + \ {Check SHA256 hash sum} + \ sha256sum -c %f %S, + +" SHA512 +filetype *.sha512 + \ {Check SHA512 hash sum} + \ sha512sum -c %f %S, + +" GPG signature +filetype *.asc + \ {Check signature} + \ !!gpg --verify %c, + +" Torrent +filetype *.torrent ktorrent %f & +fileviewer *.torrent dumptorrent -v %c + +" FuseZipMount +filetype *.zip,*.jar,*.war,*.ear,*.oxt,*.apkg + \ {Mount with fuse-zip} + \ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR, + \ {View contents} + \ zip -sf %c | less, + \ {Extract here} + \ tar -xf %c, +fileviewer *.zip,*.jar,*.war,*.ear,*.oxt zip -sf %c + +" ArchiveMount +filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz + \ {Mount with archivemount} + \ FUSE_MOUNT|archivemount %SOURCE_FILE %DESTINATION_DIR, +fileviewer *.tgz,*.tar.gz tar -tzf %c +fileviewer *.tar.bz2,*.tbz2 tar -tjf %c +fileviewer *.tar.txz,*.txz xz --list %c +fileviewer *.tar tar -tf %c + +" Rar2FsMount and rar archives +filetype *.rar + \ {Mount with rar2fs} + \ FUSE_MOUNT|rar2fs %SOURCE_FILE %DESTINATION_DIR, +fileviewer *.rar unrar v %c + +" IsoMount +filetype *.iso + \ {Mount with fuseiso} + \ FUSE_MOUNT|fuseiso %SOURCE_FILE %DESTINATION_DIR, + +" SshMount +filetype *.ssh + \ {Mount with sshfs} + \ FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR %FOREGROUND, + +" FtpMount +filetype *.ftp + \ {Mount with curlftpfs} + \ FUSE_MOUNT2|curlftpfs -o ftp_port=-,,disable_eprt %PARAM %DESTINATION_DIR %FOREGROUND, + +" Fuse7z and 7z archives +filetype *.7z + \ {Mount with fuse-7z} + \ FUSE_MOUNT|fuse-7z %SOURCE_FILE %DESTINATION_DIR, +fileviewer *.7z 7z l %c + +" Office files +filextype *.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx libreoffice %f & +fileviewer *.doc catdoc %c +fileviewer *.docx, docx2txt.pl %f - + +" TuDu files +filetype *.tudu tudu -f %c + +" Qt projects +filextype *.pro qtcreator %f & + +" Directories +filextype */ + \ {View in thunar} + \ Thunar %f &, + +" Syntax highlighting in preview +" +" Explicitly set highlight type for some extensions +" +" 256-color terminal +" fileviewer *.[ch],*.[ch]pp highlight -O xterm256 -s dante --syntax c %c +" fileviewer Makefile,Makefile.* highlight -O xterm256 -s dante --syntax make %c +" +" 16-color terminal +" fileviewer *.c,*.h highlight -O ansi -s dante %c +" +" Or leave it for automatic detection +" +" fileviewer *[^/] pygmentize -O style=monokai -f console256 -g + +" Displaying pictures in terminal +" +" fileviewer *.jpg,*.png shellpic %c + +" Open all other files with default system programs (you can also remove all +" :file[x]type commands above to ensure they don't interfere with system-wide +" settings). By default all unknown files are opened with 'vi[x]cmd' +" uncommenting one of lines below will result in ignoring 'vi[x]cmd' option +" for unknown file types. +" For *nix: +" filetype * xdg-open +" For OS X: +" filetype * open +" For Windows: +" filetype * start, explorer + +" ------------------------------------------------------------------------------ + +" What should be saved automatically between vifm runs +" Like in previous versions of vifm +" set vifminfo=options,filetypes,commands,bookmarks,dhistory,state,cs +" Like in vi +set vifminfo=dhistory,savedirs,chistory,state,tui,shistory, + \phistory,fhistory,dirstack,registers,bookmarks,bmarks + +" ------------------------------------------------------------------------------ + +" Examples of configuring both panels + +" Customize view columns a bit (enable ellipsis for truncated file names) +" +" set viewcolumns=-{name}..,6{}. + +" Filter-out build and temporary files +" +" filter! /^.*\.(lo|o|d|class|py[co])$|.*~$/ + +" ------------------------------------------------------------------------------ + +" Sample mappings + +" Start shell in current directory +nnoremap s :shell + +" Display sorting dialog +nnoremap S :sort + +" Toggle visibility of preview window +nnoremap w :view +vnoremap w :viewgv + +" Open file in existing instance of gvim +nnoremap o :!gvim --remote-tab-silent %f +" Open file in new instance of gvim +nnoremap O :!gvim %f + +" Open file in the background using its default program +nnoremap gb :file &l + +" Yank current directory path into the clipboard +nnoremap yd :!echo %d | xclip %i + +" Yank current file path into the clipboard +nnoremap yf :!echo %c:p | xclip %i + +" Mappings for faster renaming +nnoremap I cw +nnoremap cc cw +nnoremap A cw + +" Open console in current directory +nnoremap ,t :!xterm & + +" Open editor to edit vifmrc and apply settings after returning to vifm +nnoremap ,c :write | edit $MYVIFMRC | restart +" Open gvim to edit vifmrc +nnoremap ,C :!gvim --remote-tab-silent $MYVIFMRC & + +" Toggle wrap setting on ,w key +nnoremap ,w :set wrap! + +" Example of standard two-panel file managers mappings +nnoremap :!less %f +nnoremap :edit +nnoremap :copy +nnoremap :move +nnoremap :mkdir +nnoremap :delete + +" ------------------------------------------------------------------------------ + +" Various customization examples + +" Use ag (the silver searcher) instead of grep +" +" set grepprg=ag\ --line-numbers\ %i\ %a\ %s + +" Add additional place to look for executables +" +" let $PATH=$HOME.'/bin/fuse:'.$PATH + +" Block particular shortcut +" +" nnoremap diff --git a/.config/zathura/zathurarc b/.config/zathura/zathurarc new file mode 100644 index 0000000..f2f7d40 --- /dev/null +++ b/.config/zathura/zathurarc @@ -0,0 +1,2 @@ +set first-page-column 1:1 +set scroll-hstep 0 diff --git a/.gitconfig b/.gitconfig new file mode 100644 index 0000000..ae71a4d --- /dev/null +++ b/.gitconfig @@ -0,0 +1,8 @@ +[user] + name = Gregor Feierabend + email = 23300469@sun.ac.za +[filesystem "IcedTea|1.8.0_222|/dev/root"] + timestampResolution = 1001 microseconds + minRacyThreshold = 0 nanoseconds +[core] + excludesfile = /home/x/.gitignore_global diff --git a/.gitignore_global b/.gitignore_global new file mode 100644 index 0000000..e846588 --- /dev/null +++ b/.gitignore_global @@ -0,0 +1,172 @@ +###Taken from https://github.com/github/gitignore/tree/master/Global +##Linux +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +##Tags +# Ignore tags created by etags, ctags, gtags (GNU global) and cscope +TAGS +.TAGS +!TAGS/ +tags +.tags +!tags/ +gtags.files +GTAGS +GRTAGS +GPATH +GSYMS +cscope.files +cscope.out +cscope.in.out +cscope.po.out + +##Vim +# Swap +[._]*.s[a-v][a-z] +!*.svg # comment out if you don't need vector files +[._]*.sw[a-p] +[._]s[a-rt-v][a-z] +[._]ss[a-gi-z] +[._]sw[a-p] + +# Session +Session.vim +Sessionx.vim + +# Temporary +.netrwhist +*~ +# Auto-generated tag files +tags +# Persistent undo +[._]*.un~ + +##Archives +# It's better to unpack these files and commit the raw source because +# git has its own built in compression methods. +*.7z +*.jar +*.rar +*.zip +*.gz +*.gzip +*.tgz +*.bzip +*.bzip2 +*.bz2 +*.xz +*.lzma +*.cab +*.xar + +# Packing-only formats +*.iso +*.tar + +# Package management formats +*.dmg +*.xpi +*.gem +*.egg +*.deb +*.rpm +*.msi +*.msm +*.msp +*.txz + +##Backup +*.bak +*.gho +*.ori +*.orig +*.tmp + +##Diff +*.patch +*.diff + +##GPG +secring.* + +###Images +## JPEG +#*.jpg +#*.jpeg +#*.jpe +#*.jif +#*.jfif +#*.jfi +# +## JPEG 2000 +#*.jp2 +#*.j2k +#*.jpf +#*.jpx +#*.jpm +#*.mj2 +# +## JPEG XR +#*.jxr +#*.hdp +#*.wdp +# +## Graphics Interchange Format +#*.gif +# +## RAW +#*.raw +# +## Web P +#*.webp +# +## Portable Network Graphics +#*.png +# +## Animated Portable Network Graphics +#*.apng +# +## Multiple-image Network Graphics +#*.mng +# +## Tagged Image File Format +#*.tiff +#*.tif +# +## Scalable Vector Graphics +#*.svg +#*.svgz +# +## Portable Document Format +#*.pdf +# +## X BitMap +#*.xbm +# +## BMP +#*.bmp +#*.dib +# +## ICO +#*.ico +# +## 3D Images +#*.3dm +#*.max + +##Patch +*.orig +*.rej + diff --git a/.gnuplot b/.gnuplot new file mode 100644 index 0000000..8433049 --- /dev/null +++ b/.gnuplot @@ -0,0 +1,2 @@ +set term x11 +set monochrome diff --git a/.muttrc b/.muttrc new file mode 100644 index 0000000..de9755f --- /dev/null +++ b/.muttrc @@ -0,0 +1,88 @@ +#source ~/MAIL/.muttrc +# character set on messages that we send +set send_charset="utf-8" +# if there is no character set given on incoming messages, it is probably windows +set assumed_charset="iso-8859-1" + +# make sure Vim knows mutt is a mail client and that we compose an UTF-8 encoded message +set editor="vim -c 'set syntax=mail ft=mail enc=utf-8'" + +# just scroll one line instead of full page +set menu_scroll=yes + +# we want to see some MIME types inline, see below this code listing for explanation +auto_view application/msword +auto_view application/pdf +auto_view application/vnd.openxml* +auto_view text/html + +set implicit_autoview=yes +set menu_scroll=yes + +# make default search pattern to search in To, Cc and Subject +set simple_search="~f %s | ~C %s | ~s %s" + +# threading preferences, sort by threads +set sort=threads +set strict_threads=yes + +# show spam score (from SpamAssassin only) when reading a message +spam "X-Spam-Score: ([0-9\\.]+).*" "SA: %1" +set pager_format = " %C - %[%H:%M] %.20v, %s%* %?H? [%H] ?" + +# do not show all headers, just a few +ignore * +unignore From To Cc Bcc Date Subject +# and in this order +unhdr_order * +hdr_order From: To: Cc: Bcc: Date: Subject: + +# brighten up stuff with colours, for more colouring examples see: +# http://aperiodic.net/phil/configs/mutt/colors +color normal white default +color hdrdefault brightyellow default +color quoted brightyellow default +color quoted1 yellow default +color quoted2 white default +color signature cyan default +color indicator white blue +color error brightred default +color status brightwhite default +color tree brightmagenta default +color tilde blue default +color attachment brightyellow default +color markers brightred default +color message white default +color search brightwhite magenta +color bold brightyellow default +# if you don't like the black progress bar at the bottom of the screen, +# comment out the following line +#color progress white black + +macro index,pager \cb " python3 ~/.local/bin/urlscan" "call urlscan to extract URLs out of a message" +set timeout=30 + +set index_format="%Z %{%Y %b %e %H:%M} %?X?(%X)& ? %-22.22F %.100s %> %5c " + +bind pager "j" next-line +bind pager "k" previous-line +bind pager "G" bottom +bind pager "gg" top +bind index "G" last-entry +bind index "gg" first-entry +bind index "S" sidebar-toggle-visible +bind pager "S" sidebar-toggle-visible +bind index "J" sidebar-next +bind pager "J" sidebar-next +bind index "K" sidebar-prev +bind pager "K" sidebar-prev +bind index "L" sidebar-open +bind pager "L" sidebar-open + +set crypt_use_gpgme=yes + +set tmpdir="~/MAIL/mutttmp/" +set message_cachedir="~/MAIL/muttmcache/" +set header_cache="~/MAIL/mutthcache/" +source ~/MAIL/muttrc.mailboxes +source ~/MAIL/muttrc.aliases diff --git a/.ratpoisonrc b/.ratpoisonrc new file mode 100644 index 0000000..0dfab1b --- /dev/null +++ b/.ratpoisonrc @@ -0,0 +1,19 @@ +set startupmessage 0 +set rudeness 13 + +unbind c +unbind C-c +bind c exec urxvt +bind C-c exec urxvt + +exec fbsetroot -solid black +exec xrdb ~/.Xresources +exec /usr/lib64/xfce4/notifyd/xfce4-notifyd +exec redshift -l -18:33 +exec unclutter -idle 5 -jitter 20 +#exec /usr/bin/xbattbar -a -c -t 2 -I "#333333" -O white -i white -o "#333333" + +#exec /usr/bin/xinput set-button-map 11 1 2 3 5 4 7 6 +#exec /usr/bin/xinput set-prop 11 298 0 + +tmpwm i3 diff --git a/.tmux.conf b/.tmux.conf new file mode 100755 index 0000000..cb8c037 --- /dev/null +++ b/.tmux.conf @@ -0,0 +1,190 @@ +# $Id: t-williams.conf,v 1.1 2009/11/02 18:59:28 nicm Exp $ +# +# ~/.tmux.conf - tmux terminal multiplexer config +# Thayer Williams (http://cinderwick.ca) +# "Feel free to do whatever you like with it." + +# I typically start tmux from ~/.xinitrc with the following: +# +# urxvt -e bash -c "tmux attach -d -t mysession" & +# +# and recall it any time thereafter with xbindkeys (Mod4+s): +# +# "urxvt -e bash -c 'tmux attach -d -t mysession'" +# m:0x50 + c:39 +set -g mouse on +#ERROR? setw -g mode-mouse on +bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'" +#bind -T root WheelUpPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; copy-mode -e; send-keys -M" +#bind -T root WheelDownPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; send-keys -M" +set -ga terminal-overrides ',xterm*:smcup@:rmcup@' +set -ga terminal-overrides ',urxvt*:smcup@:rmcup@' + +# set prefix key to ctrl+a until I have time to adapt +#EDIT unbind C-b +#EDIT set -g prefix C-a + +# send the prefix to client inside window (ala nested sessions) +#EDIT bind-key a send-prefix + +# toggle last window like screen +bind-key C-a last-window + +# confirm before killing a window or the server +bind-key k confirm kill-window +bind-key K confirm kill-server + +# toggle statusbar +bind-key b set-option status + +# ctrl+left/right cycles thru windows +bind-key -n C-right next +bind-key -n C-left prev + +# open a man page in new window +bind / command-prompt "split-window 'exec man %%'" + +# quick view of processes +bind '~' split-window "exec htop" + +# scrollback buffer n lines +set -g history-limit 20000 + +# listen for activity on all windows +set -g bell-action any + +# on-screen time for display-panes in ms +set -g display-panes-time 2000 + +# start window indexing at one instead of zero +set -g base-index 1 + +# enable wm window titles +set -g set-titles on + +# wm window title string (uses statusbar variables) +set -g set-titles-string "tmux.#I.#W" + +# ThG: set vi mode +set-window-option -g mode-keys vi + +# ThG: force a reload of the .tmux.conf file with Ctrl-a r +unbind r +bind r source-file ~/.tmux.conf + +# sample session initialization +# Start new session with .tmux-conf settings with: tmux attach +# Kill session entirely from a tmux session with: C-a: kill-session + +#new -n bash +#neww -n tab1 'cd ~/; bash' +#neww -n tab2 'cd ~/; bash' +#neww -n tab3 'cd ~/; bash' +#neww -n tab4 'cd ~/; bash' +#neww -n tab5 'cd ~/; bash' +# +#select-window -t 2 + +# Status bar 1 tab-based-------------------------------------------------------------- + +# set -g display-time 3000 +# +# # default statusbar colors +# set -g status-fg black # ThG original was: white +# set -g status-bg white +# set -g status-attr default +# +# # default window title colors +# set-window-option -g window-status-fg black +# set-window-option -g window-status-bg white +# set-window-option -g window-status-attr dim +# +# # active window title colors +# set-window-option -g window-status-current-fg white +# set-window-option -g window-status-current-bg black +# set-window-option -g window-status-current-attr dim +# +# # command/message line colors +# set -g message-fg white +# set -g message-bg black +# set -g message-attr bright +# +# # center align the window list +# set -g status-justify left # centre +# +# # show some useful stats but only when tmux is started +# # outside of Xorg, otherwise dwm statusbar shows these already +# # set -g status-right "" # ThG: conflicts with time display +# set -g status-left "" +# if '[ -z "$DISPLAY" ]' 'set -g status-left "[#[fg=green] #H #[default]]"' +# if '[ -z "$DISPLAY" ]' 'set -g status-right "[ #[fg=magenta]#(cat /proc/loadavg | cut -d \" \" -f 1,2,3)#[default] ][ #[fg=cyan,bright]%a %Y-%m-%d %H:%M #[default]]"' +# if '[ -z "$DISPLAY" ]' 'set -g status-right-length 50' + + +# Status bar 2 non-tab-based cyan color-------------------------------------------------------------- + +set -g display-time 3000 + +# default statusbar colors +set -g status-fg cyan # ThG original was: white +set -g status-bg default +#ERROR? set -g status-attr default + +# default window title colors +#ERROR? set-window-option -g window-status-fg cyan +#ERROR? set-window-option -g window-status-bg default +#ERROR? set-window-option -g window-status-attr dim + +# active window title colors +#ERROR? set-window-option -g window-status-current-fg white +#ERROR? set-window-option -g window-status-current-bg default +#ERROR? set-window-option -g window-status-current-attr bright + +# command/message line colors +#ERROR? et -g message-fg white +#ERROR? et -g message-bg black +#ERROR? et -g message-attr bright + +# center align the window list +set -g status-justify centre # left + +# show some useful stats but only when tmux is started +# outside of Xorg, otherwise dwm statusbar shows these already +# set -g status-right "" # ThG: conflicts with time display +set -g status-left "" +if '[ -z "$DISPLAY" ]' 'set -g status-left "[#[fg=green] #H #[default]]"' +if '[ -z "$DISPLAY" ]' 'set -g status-right "[ #[fg=magenta]#(cat /proc/loadavg | cut -d \" \" -f 1,2,3)#[default] ][ #[fg=cyan,bright]%a %Y-%m-%d %H:%M #[default]]"' +if '[ -z "$DISPLAY" ]' 'set -g status-right-length 50' + +# Maximizing and restoring panes. +unbind + +bind + new-window -d -n tmp \; swap-pane -s tmp.0 \; select-window -t tmp +unbind - +bind - last-window \; swap-pane -s tmp.0 \; kill-window -t tmp + + +## FOUND ON: https://gist.github.com/quentin/ad4eea0d151e132f180e543a14bd3df0 +# selection with mouse copies to clipboard in addition to the default action +unbind-key -n -T copy-mode-vi MouseDragEnd1Pane +bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -in -sel primary" + +# middle click to paste from the clipboard +unbind-key MouseDown2Pane +bind-key -T root MouseDown2Pane run "tmux set-buffer \"$(xclip -o -sel primary)\"; tmux paste-buffer" + +run-shell ~/tmux-plugins/tmux-resurrect/resurrect.tmux +set -g @resurrect-dir '~/.tmux/resurrect' +set -g @resurrect-capture-pane-contents 'off' +set -g @resurrect-processes 'vifm mutt newsboat' +set -g @resurrect-strategy-vim 'session' + +# pane movement +bind-key j command-prompt -p "join pane from:" "join-pane -s '%%'" +bind-key s command-prompt -p "send pane to:" "join-pane -t '%%'" + +#bind-key m switchc -t 'mail' +#bind-key M switchc -t 'cmus' +#bind-key v switchc -t 'vifm' +#bind-key V switchc -t '0' + +bind -n C-k clear-history diff --git a/.vimrc b/.vimrc new file mode 100644 index 0000000..b30824b --- /dev/null +++ b/.vimrc @@ -0,0 +1,289 @@ +set nocompatible + +execute pathogen#infect() + +syntax enable +filetype plugin on +filetype indent on + +colorscheme noctu + +set colorcolumn=80 +set mouse=a +set term=screen +set undofile +set shiftwidth=4 +set tabstop=4 +set softtabstop=4 +set backspace=indent,eol,start +set cindent +set history=1000 +set showcmd +set incsearch +set nowrap +set nospell +set ruler +set wrap +set breakindent +set showbreak=-----> +set linebreak +set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣ +set textwidth=80 +set tags=./tags,./TAGS,tags,TAGS + +map gn :bn +map gp :bp +"map "zyiw :tjump z +nmap cp :let @" = "in".expand("%") +nnoremap +map :!cscope -Rb:cs reset + +"limit foldtext to 80 characters +fu! FoldText() + return strcharpart(foldtext(), 1, 80) +endf +set foldtext=FoldText() + +"check files for changes frequently +set autoread +"set ut=1000 +"au CursorHold * checktime + +"highlight own types: +au BufRead,BufNewFile *.[ch] let fname = expand(':p:h') . '/types.vim' +au BufRead,BufNewFile *.[ch] if filereadable(fname) +au BufRead,BufNewFile *.[ch] exe 'so ' . fname +au BufRead,BufNewFile *.[ch] endif + +"https://unix.stackexchange.com/questions/60189/how-to-search-the-current-word-in-all-opened-tabs-in-vim +" enables to search in all open buffers with :Search +command! -nargs=1 Find call setqflist([]) | silent + \ execute "bufdo grepadd! '' %" | redraw! +nnoremap :cprevzvzz +nnoremap :cnextzvzz + +"https://stackoverflow.com/questions/9403098/is-it-possible-to-jump-to-the-next-closed-fold-in-vim +nnoremap zj :call NextClosedFold('j') +nnoremap zk :call NextClosedFold('k') + +function! NextClosedFold(dir) + let cmd = 'norm!z' . a:dir + let view = winsaveview() + let [l0, l, open] = [0, view.lnum, 1] + while l != l0 && open + exe cmd + let [l0, l] = [l, line('.')] + let open = foldclosed(l) < 0 + endwhile + if open + call winrestview(view) + endif +endfunction + +"nnoremap zj :call RepeatCmd('call NextClosedFold("j")') +"nnoremap zk :call RepeatCmd('call NextClosedFold("k")') + +"function! RepeatCmd(cmd) range abort +" let n = v:count < 1 ? 1 : v:count +" while n > 0 +" exe a:cmd +" let n -= 1 +" endwhile +"endfunction + +"https://stackoverflow.com/questions/13634826/show-function-name-in-status-line +fun! ShowFuncName() + let lnum = line(".") + let col = col(".") + echohl ModeMsg + echo getline(search("^[^ \t#/]\\{2}.*[^:]\s*$", 'bW')) + echohl None + call search("\\%" . lnum . "l" . "\\%" . col . "c") +endfun +map :call ShowFuncName() + +"https://stackoverflow.com/questions/1054701/get-ctags-in-vim-to-go-to-definition-not-declaration +" setup +if has("cscope") + set csto=0 + set cst + set nocsverb + " add any database in current directory + if filereadable("cscope.out") + cs add cscope.out + " else add database pointed to by environment + elseif $CSCOPE_DB != "" + cs add $CSCOPE_DB + endif + set csverb +endif +" jump to a function declaration +nmap :cs find s =expand("")1 +" show a list of where function is called +nmap :cs find c =expand("") + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +"""""""""""""""""""""""""""""""" PLUGIN SPECIFIC """"""""""""""""""""""""""""""" + +runtime ftplugin/man.vim + +""""""""""""""""""""""""""""""""""" SYNTASTIC """""""""""""""""""""""""""""""""" + +let g:syntastic_mode_map = {"mode": "active"} +let g:syntastic_always_populate_loc_list = 1 +let g:syntastic_auto_loc_list = 0 +let g:syntastic_check_on_open = 0 +let g:syntastic_check_on_wq = 0 +let g:syntastic_auto_jump = 3 +let g:syntastic_aggregate_errors = 1 +let g:syntastic_enable_highlighting = 0 + +let g:syntastic_java_checkers = ['checkstyle', 'javac'] +let g:syntastic_java_checkstyle_classpath = + \ '~/.checkstyle/checkstyle-8.16-all.jar' +let g:syntastic_java_checkstyle_conf_file = '~/.checkstyle/checkstyle.xml' + +let g:syntastic_tex_chktex_args = "-l ~/.chktexrc" + +let g:syntastic_tex_lacheck_quiet_messages = {"regex": ['.*unmatched.*', + \ 'bad character in label.*']} + +map :lprev +map :lnext + +"""""""""""""""""""""""""""""""""""""" VIMUX """"""""""""""""""""""""""""""""""" + +function! REPLsettings(cmd) + call VimuxOpenRunner() + call VimuxSendText(a:cmd."\n") + nmap "vyy:call VimuxSendText(@v)j^ +endfunction + +"autocmd FileType python call REPLsettings("python") +"autocmd FileType R call REPLsettings("R") + +nmap :call VimuxOpenRunner() +nmap :call REPLsettings("") + +"""""""""""""""""""""""""""""""""""" DIFFCHAR """""""""""""""""""""""""""""""""" + +let g:DiggUnit="Char" + +"""""""""""""""""""""""""""""""""" LATEX SUITE """"""""""""""""""""""""""""""""" + +set grepprg=grep\ -nH\ $* + +set modelineexpr + +let g:tex_flavor='latex' +let g:Tex_GotoError=0 + +let g:Tex_Com_mjax = "\\(<++>\\)<++>" +let g:Tex_Com_eq = "$$<++>$$<++>" +let g:Tex_Com_cal = "\\mathcal{<++>}<++>" +let g:Tex_Com_bb = "\\mathbb{<++>}<++>" +let g:Tex_Com_bf = "\\mathbf{<++>}<++>" +let g:Tex_Com_bm = "\begin{bmatrix}<++>\end{bmatrix}<++>" +let g:Tex_Com_vm = "\begin{vmatrix}<++>\end{vmatrix}<++>" +let g:Tex_Com_std = "\\title{}\n\\author{}\n\\date{}\n\\documentclass[a4paper," + \ . "notitlepage]{report}\n\\usepackage[pdftex]{graphicx}\n" + \ . "\\usepackage{amssymb}\n\\usepackage{amsmath}\n" + \ . "\\begin{document}\n\\maketitle\n\<++>\n\\end{document}" + +autocmd BufNewFile,BufRead *.tex set syntax=plaintex +autocmd BufNewFile,BufRead *.tex syntax match Comment "%.*" +autocmd BufNewFile,BufRead *.tex set textwidth=80 + +imap :let b:Imap_FreezeImap = 1 +imap :let b:Imap_FreezeImap = 0 +imap :w:!pdflatex % +nmap :w:!pdflatex --shell-escape % +nmap :!zathura $(basename % .tex).pdf & +imap :w:!biber -E utf8 $(basename % .tex) +nmap :w:!biber -E utf8 $(basename % .tex) +imap + +imap Tex_InsertItemOnThisLine +imap Tex_LeftRight +imap Tex_MathCal +imap Tex_MathBF + +""""""""""""""""""""""""""""""" RAINBOW BRACKETS """"""""""""""""""""""""""""""" + +let g:rainbow_active = 1 + +"let g:rainbow_load_separately = [ +" \ [ '*' , [['(', ')'], ['\[', '\]'], ['{', '}']] ], +" \ [ '*.tex' , [['(', ')'], ['\[', '\]']] ], +" \ [ '*.cpp' , [['(', ')'], ['\[', '\]'], ['{', '}']] ], +" \ [ '*.{html,htm}' , [['(', ')'], ['\[', '\]'], ['{', '}'], ['<\a[^>]*>', +" \']*>']] ], ] +" +"let g:rainbow_ctermfgs = ['lightblue', 'lightgreen', 'magenta', 'yellow'] + +let g:rainbow_conf = { +\ 'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick'], +\ 'ctermfgs': ['lightblue', 'lightgreen', 'magenta', 'yellow'], +\ 'guis': [''], +\ 'cterms': [''], +\ 'operators': '_,_', +\ 'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', +\ 'start=/{/ end=/}/ fold'], +\ 'separately': { +\ '*': {}, +\ 'markdown': { +\ 'parentheses_options': 'containedin=markdownCode contained', +\ }, +\ 'lisp': { +\ 'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick', +\ 'darkorchid3'], +\ }, +\ 'haskell': { +\ 'parentheses': ['start=/(/ end=/)/ fold', +\ 'start=/\[/ end=/\]/ fold', 'start=/\v\{\ze[^-]/ end=/}/ fold'], +\ }, +\ 'vim': { +\ 'parentheses_options': 'containedin=vimFuncBody', +\ }, +\ 'perl': { +\ 'syn_name_prefix': 'perlBlockFoldRainbow', +\ }, +\ 'stylus': { +\ 'parentheses': ['start=/{/ end=/}/ fold contains=@colorableGroup'], +\ }, +\ 'css': 0, +\ } +\} + +""""""""""""""""""""""""""""""""""" TINY MODE """""""""""""""""""""""""""""""""" + +nmap + +ws +nmap - -ws +nmap > >ws +nmap < <ws +nn