From 1b8a41029ebb68751ea995e4dbd30e366d54a5e7 Mon Sep 17 00:00:00 2001 From: ds6 Date: Fri, 24 Nov 2017 12:21:53 -0600 Subject: [PATCH] initial commit --- .Xmodmap | 1 + .Xresources | 75 ++++++ .dialogrc | 40 +++ .login_conf | 8 + .pythonrc | 3 + .vim/autoload/todo/txt.vim | 123 +++++++++ .vim/doc/tags | 10 + .vim/doc/todo.txt | 68 +++++ .vim/ftdetect/todo.vim | 12 + .vim/ftplugin/todo.vim | 90 +++++++ .../python/dateregex/dateregex/__init__.py | 11 + .../python/dateregex/dateregex/after.py | 95 +++++++ .../python/dateregex/dateregex/before.py | 79 ++++++ .vim/syntax/python/todo.py | 31 +++ .vim/syntax/todo.vim | 67 +++++ .vimrc | 32 +++ .xinitrc | 66 +++++ .zlogout | 2 + .zshenv | 10 + .zshrc | 84 ++++++ i3-config | 249 ++++++++++++++++++ i3status-config | 47 ++++ install.sh | 5 + 23 files changed, 1208 insertions(+) create mode 100644 .Xmodmap create mode 100644 .Xresources create mode 100644 .dialogrc create mode 100644 .login_conf create mode 100644 .pythonrc create mode 100644 .vim/autoload/todo/txt.vim create mode 100644 .vim/doc/tags create mode 100644 .vim/doc/todo.txt create mode 100644 .vim/ftdetect/todo.vim create mode 100644 .vim/ftplugin/todo.vim create mode 100644 .vim/syntax/python/dateregex/dateregex/__init__.py create mode 100644 .vim/syntax/python/dateregex/dateregex/after.py create mode 100644 .vim/syntax/python/dateregex/dateregex/before.py create mode 100644 .vim/syntax/python/todo.py create mode 100644 .vim/syntax/todo.vim create mode 100644 .vimrc create mode 100755 .xinitrc create mode 100644 .zlogout create mode 100644 .zshenv create mode 100644 .zshrc create mode 100644 i3-config create mode 100644 i3status-config create mode 100755 install.sh diff --git a/.Xmodmap b/.Xmodmap new file mode 100644 index 0000000..cf490f9 --- /dev/null +++ b/.Xmodmap @@ -0,0 +1 @@ +add mod3 = Scroll_Lock diff --git a/.Xresources b/.Xresources new file mode 100644 index 0000000..0ff4d1b --- /dev/null +++ b/.Xresources @@ -0,0 +1,75 @@ +! generic settings +*font: xft:Dina:size=8 + +! Solarized colors, http://ethanschoonover.com/solarized +!#define S_base03 #002b36 +#define S_base03 #000a0d +#define S_base02 #073642 +#define S_base01 #586e75 +#define S_base00 #657b83 +#define S_base0 #839496 +#define S_base1 #93a1a1 +#define S_base2 #eee8d5 +#define S_base3 #fdf6e3 +*background: S_base03 +*foreground: S_base0 +*fadeColor: S_base03 +*cursorColor: S_base1 +*pointerColorBackground: S_base01 +*pointerColorForeground: S_base1 + +#define S_yellow #b58900 +#define S_orange #cb4b16 +#define S_red #dc322f +#define S_magenta #d33682 +#define S_violet #6c71c4 +#define S_blue #268bd2 +#define S_cyan #2aa198 +!#define S_green #859900 +#define S_green #85c000 +! black dark/light +*color0: S_base02 +*color8: S_base03 +! red dark/light +*color1: S_red +*color9: S_orange +! green dark/light +*color2: S_green +*color10: S_base01 +! yellow dark/light +*color3: S_yellow +*color11: S_base00 +! blue dark/light +*color4: S_blue +*color12: S_base0 +! magenta dark/light +*color5: S_magenta +*color13: S_violet +! cyan dark/light +*color6: S_cyan +*color14: S_base1 +! white dark/light +*color7: S_base2 +*color15: S_base3 + + +! urxvt +urxvt.termName: rxvt-256color +urxvt.perl-ext: +urxvt.perl-ext-common: + +urxvt.cursorBlink: on +urxvt.cursorUnderline: on +urxvt.scrollstyle: plain +urxvt.scrollBar_right: true +urxvt.urgentOnBell: true + +urxvt*depth: 32 +urxvt.background: rgba:0000/0e00/1200/ee00 +urxvt.dynamicColors: true +urxvt.intensityStyles: false + +xvkbd.Alt_R.width: 1 +xvkbd.Meta_R.width: 1 +xvkbd.Multi_key.width: 1 +xvkbd.Shift_R.width: 75 diff --git a/.dialogrc b/.dialogrc new file mode 100644 index 0000000..db84b97 --- /dev/null +++ b/.dialogrc @@ -0,0 +1,40 @@ +use_colors = ON +use_shadow = ON +screen_color = (BLUE,BLACK,ON) +dialog_color = (WHITE,BLACK,OFF) +shadow_color = (BLACK,BLACK,OFF) +title_color = screen_color +border_color = (WHITE,BLACK,ON) +button_inactive_color = border_color +button_key_inactive_color = (BLUE,BLACK,ON) +button_label_inactive_color = button_inactive_color +button_active_color = (WHITE,BLUE,ON) +button_key_active_color = button_key_inactive_color +button_label_active_color = (WHITE,BLUE,ON) +inputbox_color = dialog_color +inputbox_border_color = dialog_color +searchbox_color = dialog_color +searchbox_title_color = title_color +searchbox_border_color = border_color +position_indicator_color = title_color +menubox_color = dialog_color +menubox_border_color = border_color +item_color = dialog_color +item_selected_color = button_active_color +tag_color = title_color +tag_selected_color = button_label_active_color +tag_key_color = button_key_inactive_color +tag_key_selected_color = (BLACK,BLUE,ON) +check_color = dialog_color +check_selected_color = button_active_color +uarrow_color = (GREEN,BLACK,ON) +darrow_color = uarrow_color +itemhelp_color = (WHITE,BLACK,OFF) +form_active_text_color = button_active_color +form_text_color = border_color +form_item_readonly_color = (BLACK,WHITE,ON) +gauge_color = title_color +border2_color = dialog_color +inputbox_border2_color = dialog_color +searchbox_border2_color = dialog_color +menubox_border2_color = dialog_color diff --git a/.login_conf b/.login_conf new file mode 100644 index 0000000..c0c5949 --- /dev/null +++ b/.login_conf @@ -0,0 +1,8 @@ +# $FreeBSD: releng/11.0/share/skel/dot.login_conf 77995 2001-06-10 17:08:53Z ache $ +# +# see login.conf(5) +# +me:\ + :charset=UTF-8:\ + :lang=en_US.UTF-8:\ + :setenv=LC_ALL=en_US.UTF-8: diff --git a/.pythonrc b/.pythonrc new file mode 100644 index 0000000..35ef266 --- /dev/null +++ b/.pythonrc @@ -0,0 +1,3 @@ +def clear(): + import os + os.system('clear') diff --git a/.vim/autoload/todo/txt.vim b/.vim/autoload/todo/txt.vim new file mode 100644 index 0000000..c5158f0 --- /dev/null +++ b/.vim/autoload/todo/txt.vim @@ -0,0 +1,123 @@ +" File: todo.txt.vim +" Description: Todo.txt filetype detection +" Author: Leandro Freitas +" License: Vim license +" Website: http://github.com/freitass/todo.txt-vim +" Version: 0.4 + +" Export Context Dictionary for unit testing {{{1 +function! s:get_SID() + return matchstr(expand(''), '\d\+_') +endfunction +let s:SID = s:get_SID() +delfunction s:get_SID + +function! todo#txt#__context__() + return { 'sid': s:SID, 'scope': s: } +endfunction + +" Functions {{{1 +function! s:remove_priority() + :s/^(\w)\s\+//ge +endfunction + +function! s:get_current_date() + return strftime('%Y-%m-%d') +endfunction + +function! todo#txt#prepend_date() + execute 'normal! I' . s:get_current_date() . ' ' +endfunction + +function! todo#txt#replace_date() + let current_line = getline('.') + if (current_line =~ '^\(([a-zA-Z]) \)\?\d\{2,4\}-\d\{2\}-\d\{2\} ') && + \ exists('g:todo_existing_date') && g:todo_existing_date == 'n' + return + endif + execute 's/^\(([a-zA-Z]) \)\?\(\d\{2,4\}-\d\{2\}-\d\{2\} \)\?/\1' . s:get_current_date() . ' /' +endfunction + +function! todo#txt#mark_as_done() + call s:remove_priority() + call todo#txt#prepend_date() + execute 'normal! Ix ' +endfunction + +function! todo#txt#mark_all_as_done() + :g!/^x /:call todo#txt#mark_as_done() +endfunction + +function! s:append_to_file(file, lines) + let l:lines = [] + + " Place existing tasks in done.txt at the beggining of the list. + if filereadable(a:file) + call extend(l:lines, readfile(a:file)) + endif + + " Append new completed tasks to the list. + call extend(l:lines, a:lines) + + " Write to file. + call writefile(l:lines, a:file) +endfunction + +function! todo#txt#remove_completed() + " Check if we can write to done.txt before proceeding. + + let l:target_dir = expand('%:p:h') + let l:todo_file = expand('%:p') + let l:done_file = substitute(substitute(l:todo_file, 'todo.txt$', 'done.txt', ''), 'Todo.txt$', 'Done.txt', '') + if !filewritable(l:done_file) && !filewritable(l:target_dir) + echoerr "Can't write to file 'done.txt'" + return + endif + + let l:completed = [] + :g/^x /call add(l:completed, getline(line(".")))|d + call s:append_to_file(l:done_file, l:completed) +endfunction + +function! todo#txt#sort_by_context() range + execute a:firstline . "," . a:lastline . "sort /\\(^\\| \\)\\zs@[^[:blank:]]\\+/ r" +endfunction + +function! todo#txt#sort_by_project() range + execute a:firstline . "," . a:lastline . "sort /\\(^\\| \\)\\zs+[^[:blank:]]\\+/ r" +endfunction + +function! todo#txt#sort_by_date() range + let l:date_regex = "\\d\\{2,4\\}-\\d\\{2\\}-\\d\\{2\\}" + execute a:firstline . "," . a:lastline . "sort /" . l:date_regex . "/ r" + execute a:firstline . "," . a:lastline . "g!/" . l:date_regex . "/m" . a:lastline +endfunction + +function! todo#txt#sort_by_due_date() range + let l:date_regex = "due:\\d\\{2,4\\}-\\d\\{2\\}-\\d\\{2\\}" + execute a:firstline . "," . a:lastline . "sort /" . l:date_regex . "/ r" + execute a:firstline . "," . a:lastline . "g!/" . l:date_regex . "/m" . a:lastline +endfunction + +" Increment and Decrement The Priority +:set nf=octal,hex,alpha + +function! todo#txt#prioritize_increase() + normal! 0f)h +endfunction + +function! todo#txt#prioritize_decrease() + normal! 0f)h +endfunction + +function! todo#txt#prioritize_add(priority) + " Need to figure out how to only do this if the first visible letter in a line is not ( + :call todo#txt#prioritize_add_action(a:priority) +endfunction + +function! todo#txt#prioritize_add_action(priority) + execute 's/^\(([a-zA-Z]) \)\?/(' . a:priority . ') /' +endfunction + +" Modeline {{{1 +" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1 diff --git a/.vim/doc/tags b/.vim/doc/tags new file mode 100644 index 0000000..113d935 --- /dev/null +++ b/.vim/doc/tags @@ -0,0 +1,10 @@ +'g:todo_existing_date' todo.txt /*'g:todo_existing_date'* +'g:todo_load_python' todo.txt /*'g:todo_load_python'* +todo-commands todo.txt /*todo-commands* +todo-commands-date todo.txt /*todo-commands-date* +todo-commands-done todo.txt /*todo-commands-done* +todo-commands-priority todo.txt /*todo-commands-priority* +todo-commands-sorting todo.txt /*todo-commands-sorting* +todo-contents todo.txt /*todo-contents* +todo-options todo.txt /*todo-options* +todo.txt todo.txt /*todo.txt* diff --git a/.vim/doc/todo.txt b/.vim/doc/todo.txt new file mode 100644 index 0000000..8d7ca3d --- /dev/null +++ b/.vim/doc/todo.txt @@ -0,0 +1,68 @@ +*todo.txt* Vim plugin for Todo.txt files + _____ _ _ _ ~ + |_ _|__ __| | ___ | |___ _| |_ ~ + | |/ _ \ / _` |/ _ \| __\ \/ / __|~ + | | (_) | (_| | (_) | |_ > <| |_ ~ + |_|\___/ \__,_|\___(_)__/_/\_\\__|~ + + Reference Manual~ + +============================================================================== +CONTENTS *todo-contents* + + 1. Commands ..................................... |todo-commands| + 1.1. Sorting tasks ............................ |todo-commands-sorting| + 1.2. Edit priority ............................ |todo-commands-priority| + 1.3. Date ..................................... |todo-commands-date| + 1.4. Mark as done ............................. |todo-commands-done| + 2. Options ...................................... |todo-options| + +============================================================================== +1. Commands *todo-commands* + +1.1 Sorting tasks: *todo-commands-sorting* + `s` Sort the file + `s+` Sort the file on +Projects + `s@` Sort the file on @Contexts + `sd` Sort the file on dates + `sdd` Sort the file on due dates (i.e. due:2015-10-25) + +1.2 Edit priority: *todo-commands-priority* + `j` Decrease the priority of the current line + `k` Increase the priority of the current line + `a` Add the priority (A) to the current line + `b` Add the priority (B) to the current line + `c` Add the priority (C) to the current line + +1.3 Date: *todo-commands-date* + `d` Set current task's creation date to the current date + `date` (Insert mode) Insert the current date + +1.4 Mark as done: *todo-commands-done* + `x` Mark current task as done + `X` Mark all tasks as done + `D` Move completed tasks to done.txt + +See :h for more information about the commands' prefix. + +============================================================================== +2. Options *todo-options* + + *'g:todo_existing_date'* +Specify the behavior of date insertion functions when the task already has a +date of creation: > + let g:todo_existing_date = 'n' +< + r - replace existing date (default) + n - do nothing + + *'g:todo_load_python'* +Specify if the plugin should load the python module. Useful if you use Neovim +for example or if perhaps you just don't have/want python for vim: > + let g:todo_load_python = 1 +< + 1 - Load (default) + 0 - Don't load + +=============================================================================== +vim:ft=help:et:ts=2:sw=2:sts=2:norl diff --git a/.vim/ftdetect/todo.vim b/.vim/ftdetect/todo.vim new file mode 100644 index 0000000..6268180 --- /dev/null +++ b/.vim/ftdetect/todo.vim @@ -0,0 +1,12 @@ +" File: todo.txt.vim +" Description: Todo.txt filetype detection +" Author: Leandro Freitas +" License: Vim license +" Website: http://github.com/freitass/todo.txt-vim +" Version: 0.1 + +autocmd BufNewFile,BufRead [Tt]odo.txt set filetype=todo +autocmd BufNewFile,BufRead *.[Tt]odo.txt set filetype=todo +autocmd BufNewFile,BufRead [Dd]one.txt set filetype=todo +autocmd BufNewFile,BufRead *.[Dd]one.txt set filetype=todo + diff --git a/.vim/ftplugin/todo.vim b/.vim/ftplugin/todo.vim new file mode 100644 index 0000000..548617b --- /dev/null +++ b/.vim/ftplugin/todo.vim @@ -0,0 +1,90 @@ +" File: todo.txt.vim +" Description: Todo.txt filetype detection +" Author: Leandro Freitas +" License: Vim license +" Website: http://github.com/freitass/todo.txt-vim +" Version: 0.4 + +" Save context {{{1 +let s:save_cpo = &cpo +set cpo&vim + +" General options {{{1 +" Some options lose their values when window changes. They will be set every +" time this script is invocated, which is whenever a file of this type is +" created or edited. +setlocal textwidth=0 +setlocal wrapmargin=0 + +" Mappings {{{1 +" Sort tasks {{{2 +nnoremap