From 47f7d2b5f4a10a65950b0e3d5b07694bb2ce5dfa Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sun, 11 Aug 2019 20:29:55 +0300 Subject: [PATCH] Initial --- aria2/.aria2/aria2-minimal.conf | 5 + aria2/.aria2/aria2.conf | 11 + git/.git-ignore | 5 + git/.gitconfig | 32 ++ gnupg/.gnupg/gpg-agent.conf | 2 + gnupg/.gnupg/gpg.conf | 20 + lynx/.lynx.cfg | 9 + lynx/.lynxrc | 344 +++++++++++++++++ lynx/.mailcap | 5 + mplayer/.mplayer/config | 12 + mplayer/.mplayer/mencoder.conf | 3 + mutt/.mutt/color | 34 ++ mutt/.mutt/muttrc | 92 +++++ mutt/.muttrc | 5 + nethack/.nethackrc | 2 + nethack/.wizkit_ | 44 +++ pdb/.pdbrc | 5 + pip/.pip/pip.conf | 18 + psql/.psqlrc | 8 + readline/.inputrc | 5 + tmux/.tmux.conf | 35 ++ urlview/.urlview | 1 + vim/.vim/ftplugin/go/autos.vim | 2 + vim/.vim/ftplugin/go/fmt.vim | 69 ++++ vim/.vim/ftplugin/go/motion.vim | 18 + vim/.vim/ftplugin/python/autos.vim | 14 + vim/.vim/ftplugin/python/importcompl.vim | 75 ++++ vim/.vim/ftplugin/python/pep8.vim | 21 + vim/.vim/ftplugin/python/pylint.vim | 98 +++++ vim/.vim/ftplugin/python/testname.vim | 24 ++ vim/.vim/ftplugin/python/unused_remover.vim | 4 + vim/.vim/plugin/chnglstnav.vim | 7 + vim/.vim/plugin/ctags.vim | 28 ++ vim/.vim/plugin/defsplit.vim | 103 +++++ vim/.vim/plugin/file_line.vim | 16 + vim/.vim/plugin/ggrep.vim | 8 + vim/.vim/plugin/grep.vim | 10 + vim/.vim/plugin/killsig.vim | 9 + vim/.vim/plugin/pastemode.vim | 13 + vim/.vim/plugin/vimrclocal.vim | 3 + vim/.vim/plugin/whereami.vim | 7 + vim/.vim/plugin/zshfe.vim | 21 + vim/.vim/plugin/zshfe.zsh | 8 + vim/.vimrc | 181 +++++++++ x/.Xresources | 20 + x/.xinitrc | 14 + xombrero/.xombrero.conf | 406 ++++++++++++++++++++ zsh/.zprofile | 71 ++++ zsh/.zshrc | 210 ++++++++++ 49 files changed, 2157 insertions(+) create mode 100644 aria2/.aria2/aria2-minimal.conf create mode 100644 aria2/.aria2/aria2.conf create mode 100644 git/.git-ignore create mode 100644 git/.gitconfig create mode 100644 gnupg/.gnupg/gpg-agent.conf create mode 100644 gnupg/.gnupg/gpg.conf create mode 100644 lynx/.lynx.cfg create mode 100644 lynx/.lynxrc create mode 100644 lynx/.mailcap create mode 100644 mplayer/.mplayer/config create mode 100644 mplayer/.mplayer/mencoder.conf create mode 100644 mutt/.mutt/color create mode 100644 mutt/.mutt/muttrc create mode 100644 mutt/.muttrc create mode 100644 nethack/.nethackrc create mode 100644 nethack/.wizkit_ create mode 100644 pdb/.pdbrc create mode 100644 pip/.pip/pip.conf create mode 100644 psql/.psqlrc create mode 100644 readline/.inputrc create mode 100644 tmux/.tmux.conf create mode 100644 urlview/.urlview create mode 100644 vim/.vim/ftplugin/go/autos.vim create mode 100644 vim/.vim/ftplugin/go/fmt.vim create mode 100644 vim/.vim/ftplugin/go/motion.vim create mode 100644 vim/.vim/ftplugin/python/autos.vim create mode 100644 vim/.vim/ftplugin/python/importcompl.vim create mode 100644 vim/.vim/ftplugin/python/pep8.vim create mode 100644 vim/.vim/ftplugin/python/pylint.vim create mode 100644 vim/.vim/ftplugin/python/testname.vim create mode 100644 vim/.vim/ftplugin/python/unused_remover.vim create mode 100644 vim/.vim/plugin/chnglstnav.vim create mode 100644 vim/.vim/plugin/ctags.vim create mode 100644 vim/.vim/plugin/defsplit.vim create mode 100644 vim/.vim/plugin/file_line.vim create mode 100644 vim/.vim/plugin/ggrep.vim create mode 100644 vim/.vim/plugin/grep.vim create mode 100644 vim/.vim/plugin/killsig.vim create mode 100644 vim/.vim/plugin/pastemode.vim create mode 100644 vim/.vim/plugin/vimrclocal.vim create mode 100644 vim/.vim/plugin/whereami.vim create mode 100644 vim/.vim/plugin/zshfe.vim create mode 100755 vim/.vim/plugin/zshfe.zsh create mode 100644 vim/.vimrc create mode 100644 x/.Xresources create mode 100755 x/.xinitrc create mode 100644 xombrero/.xombrero.conf create mode 100644 zsh/.zprofile create mode 100644 zsh/.zshrc diff --git a/aria2/.aria2/aria2-minimal.conf b/aria2/.aria2/aria2-minimal.conf new file mode 100644 index 0000000..88bf22c --- /dev/null +++ b/aria2/.aria2/aria2-minimal.conf @@ -0,0 +1,5 @@ +max-concurrent-downloads=1 +ca-certificate=/etc/ssl/cert.pem +disk-cache=0 +file-allocation=trunc +force-save=true diff --git a/aria2/.aria2/aria2.conf b/aria2/.aria2/aria2.conf new file mode 100644 index 0000000..5e0d4a9 --- /dev/null +++ b/aria2/.aria2/aria2.conf @@ -0,0 +1,11 @@ +max-concurrent-downloads=200 +ca-certificate=/etc/ssl/cert.pem +bt-max-open-files=1000 +bt-max-peers=1000 +bt-save-metadata=true +enable-dht=true +enable-dht6=true +seed-ratio=0.0 +disk-cache=0 +file-allocation=trunc +force-save=true diff --git a/git/.git-ignore b/git/.git-ignore new file mode 100644 index 0000000..51a154d --- /dev/null +++ b/git/.git-ignore @@ -0,0 +1,5 @@ +*.pyc +*.swp +.hypothesis +start.sh +tags diff --git a/git/.gitconfig b/git/.gitconfig new file mode 100644 index 0000000..4f5a87a --- /dev/null +++ b/git/.gitconfig @@ -0,0 +1,32 @@ +[alias] + wt = worktree + unchanged = update-index --assume-unchanged +[user] + name = Sergey Matveev + email = stargrave@stargrave.org + signingkey = "E49857EF" +[color] + diff = auto + status = auto + branch = auto + interactive = auto +[core] + excludesfile = /home/stargrave/.git-ignore + quotepath = false + filemode = true + logallrefupdates = true + whitespace = blank-at-eol, space-before-tab, tab-in-indent, blank-at-eof +[log] + date = iso8601 +[push] + default = current +[rebase] + autosquash = true +[rerere] + enabled = true +[notes] + displayRef = * +[diff] + algorithm = patience +[grep] + lineNumber = true diff --git a/gnupg/.gnupg/gpg-agent.conf b/gnupg/.gnupg/gpg-agent.conf new file mode 100644 index 0000000..6750342 --- /dev/null +++ b/gnupg/.gnupg/gpg-agent.conf @@ -0,0 +1,2 @@ +pinentry-program /usr/local/bin/pinentry-curses +default-cache-ttl 14400 diff --git a/gnupg/.gnupg/gpg.conf b/gnupg/.gnupg/gpg.conf new file mode 100644 index 0000000..26a91f4 --- /dev/null +++ b/gnupg/.gnupg/gpg.conf @@ -0,0 +1,20 @@ +charset utf-8 +no-auto-key-retrieve +keyserver hkps://hkps.pool.sks-keyservers.net +no-secmem-warning +no-greeting +no-emit-version +default-key AE1A8109E49857EF +keyid-format 0xlong +photo-viewer sxiv %i + +trust-model tofu+pgp +#auto-key-locate pka dane wkd hkp://keys.gnupg.net local + +personal-cipher-preferences TWOFISH AES256 CAMELLIA256 AES192 CAMELLIA192 AES CAMELLIA128 CAST5 BLOWFISH IDEA 3DES +personal-digest-preferences SHA512 SHA384 SHA256 SHA224 RIPEMD160 SHA1 +personal-compress-preferences ZLIB ZIP BZIP2 Uncompressed +default-preference-list TWOFISH AES256 CAMELLIA256 AES192 CAMELLIA192 AES CAMELLIA128 CAST5 BLOWFISH IDEA 3DES SHA512 SHA384 SHA256 SHA224 RIPEMD160 SHA1 ZLIB ZIP BZIP2 Uncompressed +cert-digest-algo SHA512 + +group myself=AE1A8109E49857EF diff --git a/lynx/.lynx.cfg b/lynx/.lynx.cfg new file mode 100644 index 0000000..4a6f80c --- /dev/null +++ b/lynx/.lynx.cfg @@ -0,0 +1,9 @@ +INCLUDE:/usr/local/etc/lynx.cfg +PARTIAL:TRUE +SHOW_KB_RATE:KB,ETA +INFOSECS:1 +MESSAGESECS:1 +ALERTSECS:1 +NO_REFERER_HEADER:TRUE +NO_FROM_HEADER:TRUE +MAKE_LINKS_FOR_ALL_IMAGES:TRUE diff --git a/lynx/.lynxrc b/lynx/.lynxrc new file mode 100644 index 0000000..4f8fbea --- /dev/null +++ b/lynx/.lynxrc @@ -0,0 +1,344 @@ +# Lynx User Defaults File +# +# This file contains options saved from the Lynx Options Screen (normally +# with the 'o' key). To save options with that screen, you must select the +# checkbox: +# Save options to disk +# +# You must then save the settings using the link on the line above the +# checkbox: +# Accept Changes +# +# You may also use the command-line option "-forms_options", which displays +# the simpler Options Menu instead. Save options with that using the '>' key. +# +# There is normally no need to edit this file manually, since the defaults +# here can be controlled from the Options Screen, and the next time options +# are saved from the Options Screen this file will be completely rewritten. +# You have been warned... +# +# If you are looking for the general configuration file - it is normally +# called "lynx.cfg". It has different content and a different format. +# It is not this file. + +# accept_all_cookies allows the user to tell Lynx to automatically +# accept all cookies if desired. The default is "FALSE" which will +# prompt for each cookie. Set accept_all_cookies to "TRUE" to accept +# all cookies. +accept_all_cookies=off + +# anonftp_password allows the user to tell Lynx to use the personal +# email address as the password for anonymous ftp. If no value is given, +# Lynx will use the personal email address. Set anonftp_password +# to a different value if you choose. +anonftp_password= + +# bookmark_file specifies the name and location of the default bookmark +# file into which the user can paste links for easy access at a later +# date. +bookmark_file=.lynx_bookmarks.html + +# If case_sensitive_searching is "on" then when the user invokes a search +# using the 's' or '/' keys, the search performed will be case sensitive +# instead of case INsensitive. The default is usually "off". +case_sensitive_searching=off + +# The character_set definition controls the representation of 8 bit +# characters for your terminal. If 8 bit characters do not show up +# correctly on your screen you may try changing to a different 8 bit +# set or using the 7 bit character approximations. +# Current valid characters sets are: +# Western (ISO-8859-1) +# 7 bit approximations (US-ASCII) +# Western (ISO-8859-15) +# Western (cp850) +# Western (windows-1252) +# IBM PC US codepage (cp437) +# DEC Multinational +# Macintosh (8 bit) +# NeXT character set +# HP Roman8 +# Chinese +# Japanese (EUC-JP) +# Japanese (Shift_JIS) +# Korean +# Taipei (Big5) +# Vietnamese (VISCII) +# Transparent +# Eastern European (ISO-8859-2) +# Eastern European (cp852) +# Eastern European (windows-1250) +# Latin 3 (ISO-8859-3) +# Latin 4 (ISO-8859-4) +# Baltic Rim (ISO-8859-13) +# Baltic Rim (cp775) +# Baltic Rim (windows-1257) +# Cyrillic (ISO-8859-5) +# Cyrillic (cp866) +# Cyrillic (windows-1251) +# Cyrillic (KOI8-R) +# Arabic (ISO-8859-6) +# Arabic (cp864) +# Arabic (windows-1256) +# Celtic (ISO-8859-14) +# Greek (ISO-8859-7) +# Greek (cp737) +# Greek2 (cp869) +# Greek (windows-1253) +# Hebrew (ISO-8859-8) +# Hebrew (cp862) +# Hebrew (windows-1255) +# Turkish (ISO-8859-9) +# Turkish (cp857) +# North European (ISO-8859-10) +# UNICODE (UTF-8) +# RFC 1345 w/o Intro +# RFC 1345 Mnemonic +# Ukrainian Cyrillic (cp866u) +# Ukrainian Cyrillic (KOI8-U) +# Cyrillic-Asian (PT154) +character_set=UNICODE (UTF-8) + +# cookie_accept_domains and cookie_reject_domains are comma-delimited +# lists of domains from which Lynx should automatically accept or reject +# all cookies. If a domain is specified in both options, rejection will +# take precedence. The accept_all_cookies parameter will override any +# settings made here. +cookie_accept_domains= + +# cookie_file specifies the file from which to read persistent cookies. +# The default is ~/.lynx_cookies. +cookie_file= + +# cookie_loose_invalid_domains, cookie_strict_invalid_domains, and +# cookie_query_invalid_domains are comma-delimited lists of which domains +# should be subjected to varying degrees of validity checking. If a +# domain is set to strict checking, strict conformance to RFC2109 will +# be applied. A domain with loose checking will be allowed to set cookies +# with an invalid path or domain attribute. All domains will default to +# querying the user for an invalid path or domain. +cookie_loose_invalid_domains= + +cookie_query_invalid_domains= + +cookie_reject_domains= + +cookie_strict_invalid_domains= + +# dir_list_order specifies the directory list order under DIRED_SUPPORT +# (if implemented). The default is "ORDER_BY_NAME" +dir_list_order=ORDER_BY_NAME + +# dir_list_styles specifies the directory list style under DIRED_SUPPORT +# (if implemented). The default is "MIXED_STYLE", which sorts both +# files and directories together. "FILES_FIRST" lists files first and +# "DIRECTORIES_FIRST" lists directories first. +dir_list_style=MIXED_STYLE + +# If emacs_keys is to "on" then the normal EMACS movement keys: +# ^N = down ^P = up +# ^B = left ^F = right +# will be enabled. +emacs_keys=off + +# file_editor specifies the editor to be invoked when editing local files +# or sending mail. If no editor is specified, then file editing is disabled +# unless it is activated from the command line, and the built-in line editor +# will be used for sending mail. +file_editor=vim + +# The file_sorting_method specifies which value to sort on when viewing +# file lists such as FTP directories. The options are: +# BY_FILENAME -- sorts on the name of the file +# BY_TYPE -- sorts on the type of the file +# BY_SIZE -- sorts on the size of the file +# BY_DATE -- sorts on the date of the file +file_sorting_method=BY_FILENAME + +# If keypad_mode is set to "NUMBERS_AS_ARROWS", then the numbers on +# your keypad when the numlock is on will act as arrow keys: +# 8 = Up Arrow +# 4 = Left Arrow 6 = Right Arrow +# 2 = Down Arrow +# and the corresponding keyboard numbers will act as arrow keys, +# regardless of whether numlock is on. +# If keypad_mode is set to "LINKS_ARE_NUMBERED", then numbers will +# appear next to each link and numbers are used to select links. +# If keypad_mode is set to "LINKS_AND_FORM_FIELDS_ARE_NUMBERED", then +# numbers will appear next to each link and visible form input field. +# Numbers are used to select links, or to move the "current link" to a +# form input field or button. In addition, options in popup menus are +# indexed so that the user may type an option number to select an option in +# a popup menu, even if the option isn't visible on the screen. Reference +# lists and output from the list command also enumerate form inputs. +# NOTE: Some fixed format documents may look disfigured when +# "LINKS_ARE_NUMBERED" or "LINKS_AND_FORM_FIELDS_ARE_NUMBERED" are +# enabled. +keypad_mode=LINKS_AND_FIELDS_ARE_NUMBERED + +# lineedit_mode specifies the key binding used for inputting strings in +# prompts and forms. If lineedit_mode is set to "Default Binding" then +# the following control characters are used for moving and deleting: +# +# Prev Next Enter = Accept input +# Move char: <- -> ^G = Cancel input +# Move word: ^P ^N ^U = Erase line +# Delete char: ^H ^R ^A = Beginning of line +# Delete word: ^B ^F ^E = End of line +# +# Current lineedit modes are: +# Default Binding +# Alternate Bindings +# Bash-like Bindings +lineedit_mode=Default Binding + +# The following allow you to define sub-bookmark files and descriptions. +# The format is multi_bookmark=, +# Up to 26 bookmark files (for the English capital letters) are allowed. +# We start with "multi_bookmarkB" since 'A' is the default (see above). +multi_bookmarkB= +multi_bookmarkC= +multi_bookmarkD= +multi_bookmarkE= +multi_bookmarkF= +multi_bookmarkG= +multi_bookmarkH= +multi_bookmarkI= +multi_bookmarkJ= +multi_bookmarkK= +multi_bookmarkL= +multi_bookmarkM= +multi_bookmarkN= +multi_bookmarkO= +multi_bookmarkP= +multi_bookmarkQ= +multi_bookmarkR= +multi_bookmarkS= +multi_bookmarkT= +multi_bookmarkU= +multi_bookmarkV= +multi_bookmarkW= +multi_bookmarkX= +multi_bookmarkY= +multi_bookmarkZ= + +# personal_mail_address specifies your personal mail address. The +# address will be sent during HTTP file transfers for authorization and +# logging purposes, and for mailed comments. +# If you do not want this information given out, set the NO_FROM_HEADER +# to TRUE in lynx.cfg, or use the -nofrom command line switch. You also +# could leave this field blank, but then you won't have it included in +# your mailed comments. +personal_mail_address= + +# personal_mail_name specifies your personal name, for mail. The +# name is sent for mailed comments. Lynx will prompt for this, +# showing the configured value as a default when sending mail. +# This is not necessarily the same as a name provided as part of the +# personal_mail_address. +# Lynx does not save your changes to that default value as a side-effect +# of sending email. To update the default value, you must use the options +# menu, or modify this file directly. +personal_mail_name= + +# preferred_charset specifies the character set in MIME notation (e.g., +# ISO-8859-2, ISO-8859-5) which Lynx will indicate you prefer in requests +# to http servers using an Accept-Charset header. The value should NOT +# include ISO-8859-1 or US-ASCII, since those values are always assumed +# by default. May be a comma-separated list. +# If a file in that character set is available, the server will send it. +# If no Accept-Charset header is present, the default is that any +# character set is acceptable. If an Accept-Charset header is present, +# and if the server cannot send a response which is acceptable +# according to the Accept-Charset header, then the server SHOULD send +# an error response, though the sending of an unacceptable response +# is also allowed. +preferred_charset= + +# preferred_language specifies the language in MIME notation (e.g., en, +# fr, may be a comma-separated list in decreasing preference) +# which Lynx will indicate you prefer in requests to http servers. +# If a file in that language is available, the server will send it. +# Otherwise, the server will send the file in its default language. +preferred_language=en + +# select_popups specifies whether the OPTIONs in a SELECT block which +# lacks a MULTIPLE attribute are presented as a vertical list of radio +# buttons or via a popup menu. Note that if the MULTIPLE attribute is +# present in the SELECT start tag, Lynx always will create a vertical list +# of checkboxes for the OPTIONs. A value of "on" will set popup menus +# as the default while a value of "off" will set use of radio boxes. +# The default can be overridden via the -popup command line toggle. +select_popups=on + +# show_color specifies how to set the color mode at startup. A value of +# "never" will force color mode off (treat the terminal as monochrome) +# at startup even if the terminal appears to be color capable. A value of +# "always" will force color mode on even if the terminal appears to be +# monochrome, if this is supported by the library used to build lynx. +# A value of "default" will yield the behavior of assuming +# a monochrome terminal unless color capability is inferred at startup +# based on the terminal type, or the -color command line switch is used, or +# the COLORTERM environment variable is set. The default behavior always is +# used in anonymous accounts or if the "option_save" restriction is set. +# The effect of the saved value can be overridden via +# the -color and -nocolor command line switches. +# The mode set at startup can be changed via the "show color" option in +# the 'o'ptions menu. If the option settings are saved, the "on" and +# "off" "show color" settings will be treated as "default". +show_color=default + +# show_cursor specifies whether to 'hide' the cursor to the right (and +# bottom, if possible) of the screen, or to place it to the left of the +# current link in documents, or current option in select popup windows. +# Positioning the cursor to the left of the current link or option is +# helpful for speech or braille interfaces, and when the terminal is +# one which does not distinguish the current link based on highlighting +# or color. A value of "on" will set positioning to the left as the +# default while a value of "off" will set 'hiding' of the cursor. +# The default can be overridden via the -show_cursor command line toggle. +show_cursor=on + +# show_dotfiles specifies that the directory listing should include +# "hidden" (dot) files/directories. If set "on", this will be +# honored only if enabled via userdefs.h and/or lynx.cfg, and not +# restricted via a command line switch. If display of hidden files +# is disabled, creation of such files via Lynx also is disabled. +show_dotfiles=off + +# If sub_bookmarks is not turned "off", and multiple bookmarks have +# been defined (see below), then all bookmark operations will first +# prompt the user to select an active sub-bookmark file. If the default +# Lynx bookmark_file is defined (see above), it will be used as the +# default selection. When this option is set to "advanced", and the +# user mode is advanced, the 'v'iew bookmark command will invoke a +# statusline prompt instead of the menu seen in novice and intermediate +# user modes. When this option is set to "standard", the menu will be +# presented regardless of user mode. +sub_bookmarks=OFF + +# user_mode specifies the users level of knowledge with Lynx. The +# default is "NOVICE" which displays two extra lines of help at the +# bottom of the screen to aid the user in learning the basic Lynx +# commands. Set user_mode to "INTERMEDIATE" to turn off the extra info. +# Use "ADVANCED" to see the URL of the currently selected link at the +# bottom of the screen. +user_mode=ADVANCED + +# If verbose_images is "on", lynx will print the name of the image +# source file in place of [INLINE], [LINK] or [IMAGE] +# See also VERBOSE_IMAGES in lynx.cfg +verbose_images=on + +# If vi_keys is set to "on", then the normal VI movement keys: +# j = down k = up +# h = left l = right +# will be enabled. These keys are only lower case. +# Capital 'H', 'J' and 'K will still activate help, jump shortcuts, +# and the keymap display, respectively. +vi_keys=on + +# The visited_links setting controls how Lynx organizes the information +# in the Visited Links Page. +visited_links=LAST_REVERSED + diff --git a/lynx/.mailcap b/lynx/.mailcap new file mode 100644 index 0000000..8c7d7ca --- /dev/null +++ b/lynx/.mailcap @@ -0,0 +1,5 @@ +text/html; /usr/local/bin/lynx -noreferer -partial -assume_charset=%{charset} -dump %s; copiousoutput; nametemplate=%s.html +application/pdf; /usr/local/bin/zathura '%s'; test=test -n "$DISPLAY" +image/jpeg; /usr/local/bin/sxiv '%s'; test=test -n "$DISPLAY" +image/png; /usr/local/bin/sxiv '%s'; test=test -n "$DISPLAY" +image/gif; /usr/local/bin/sxiv '%s'; test=test -n "$DISPLAY" diff --git a/mplayer/.mplayer/config b/mplayer/.mplayer/config new file mode 100644 index 0000000..feb853a --- /dev/null +++ b/mplayer/.mplayer/config @@ -0,0 +1,12 @@ +vo=xv +zoom=1 +framedrop=1 +hardframedrop=1 +cache=16384 +lavdopts=threads=2 +autosync=30 +#pp=6 +utf8=1 + +[vo.vdpau] +vc=ffh264vdpau,ffhevcvdpau,ffodivxvdpau,ffmpeg12vdpau diff --git a/mplayer/.mplayer/mencoder.conf b/mplayer/.mplayer/mencoder.conf new file mode 100644 index 0000000..37d46db --- /dev/null +++ b/mplayer/.mplayer/mencoder.conf @@ -0,0 +1,3 @@ +oac=lavc=yes +ovc=lavc=yes +lavcopts=vhq=yes:trell=yes:v4mv=yes diff --git a/mutt/.mutt/color b/mutt/.mutt/color new file mode 100644 index 0000000..835e5ca --- /dev/null +++ b/mutt/.mutt/color @@ -0,0 +1,34 @@ +color hdrdefault blue default +color quoted blue default +color signature red default +color attachment red default +color prompt brightmagenta default +color message brightred default +color error brightred default +color indicator brightyellow red +color status brightgreen blue +color tree default default +color normal default default +color markers red default +color search white black +color tilde brightmagenta default +color index blue default ~F +#color index red default "~N|~O" + +color header brightmagenta default "subject:" +color header brightred default "to:" +color header brightred default "cc:" +color header brightred default "list-id:" + +color header brightyellow default "date:" +color header brightyellow default "received:" + +color header brightgreen default "from:" +color header brightgreen default "reply-to:" +color header brightgreen default "mail-reply-to:" +color header brightgreen default "mail-followup-to:" +color header brightgreen default "organization:" +color header brightgreen default "user-agent:" + +color body brightgreen default "(http|https|ftp|news|telnet|finger)://[^ \"\t\r\n]*" +color body brightgreen default "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+" diff --git a/mutt/.mutt/muttrc b/mutt/.mutt/muttrc new file mode 100644 index 0000000..4256f0e --- /dev/null +++ b/mutt/.mutt/muttrc @@ -0,0 +1,92 @@ +set folder = "~/mail" +set mbox_type = maildir +# set mbox_type = mbox +set spoolfile = =mbox +set record = =sent-`date "+%y-%m"` +set postponed = =postponed +set certificate_file = ~/.mutt/certificates +set net_inc = 1 +set edit_headers = yes +set charset = "utf-8" +set pager_stop = yes +set sort = "threads" +set sort_aux = "last-date-received" +set pager_index_lines = 6 +set timeout = 60 +set rfc2047_parameters +set reply_to = yes +set fcc_clear = yes +set signature = ~/.signature +set hostname = "stargrave.org" +set realname = "Sergey Matveev" +set query_command="mu cfind --format=mutt-ab '%s'" +set forward_format = "Fwd: %s" +set indent_string = ">" +set attribution = "*** %n [%(%Y-%m-%d %H:%M)]:" +set index_format = "%4C %Z[%1H] %{%m-%d} [%N] %-15.15L (%?l?%4l&%4c?)%?M?[#%02M]?%?Y?[%Y]? %s" +set pipe_decode = yes +set crypt_protected_headers_write = yes + +macro index "mu find --clearlinks --format=links --linksdir=~/mail/search " "mu find" +macro index "~/mail/search" "mu find results" + +macro index ":set mbox_type = mbox\n" "mbox mailbox type" + +macro pager \cu |urlview\n +macro index \cn "" "Go to new mail" +alternative_order text/plain text/enriched text/html +auto_view text/html +unignore \ + Mail-Followup-To \ + List-Id \ + Reply-To \ + Mail-Reply-To \ + Organization \ + OpenPGP \ + Return-Path \ + X-Mailer \ + User-Agent \ + Message-Id + +macro index ":source ~/.mutt/accounts/stargrave.org\n" "Profile: stargrave.org" +macro index ":source ~/.mutt/accounts/stcnet.ru\n" "Profile: stcnet.ru" +macro index ":source ~/.mutt/accounts/riseup.net\n" "Profile: riseup.net" + +alternates stargrave@stargrave.org junk@stargrave.org +mailboxes =mbox \ + =rss \ + =monitoring \ + =arbeit \ + =crypto \ + =debian \ + =fsf \ + =gnunet \ + =gnupg \ + =golang \ + =spam \ + =stcnet \ + =suckless \ + =fbsd \ + =tortalk \ + =vim \ + =zfs \ + =zsh \ + =sent-19-07 \ + =sent-19-08 \ + =back-19-07 \ + =back-19-08 +source ~/.mutt/accounts/stargrave.org + +# set mime_forward = yes +# set mime_forward_rest = yes + +fcc-hook .* $record + +folder-hook . "set sort = threads; push " + +folder-hook =rss "set sort = date" +folder-hook =monitoring "set sort = date" +folder-hook =sent-19-07 "set sort = date-sent" +folder-hook =sent-19-08 "set sort = date-sent" + +set print_command="cat > /tmp/mail-printed" diff --git a/mutt/.muttrc b/mutt/.muttrc new file mode 100644 index 0000000..cee08fb --- /dev/null +++ b/mutt/.muttrc @@ -0,0 +1,5 @@ +set hostname = "stargrave.org" +source ~/.mutt/muttrc +source ~/.mutt/color +source ~/.mutt/lists +source /usr/local/share/doc/mutt/samples/gpg.rc diff --git a/nethack/.nethackrc b/nethack/.nethackrc new file mode 100644 index 0000000..78b26af --- /dev/null +++ b/nethack/.nethackrc @@ -0,0 +1,2 @@ +OPTIONS=windowtype:tty,color,boulder:0,pickup_types:$,!autopickup,showexp,fixinv,sortpack,hilite_pet,safe_pet,verbose,confirm +WIZKIT=/root/.wizkit diff --git a/nethack/.wizkit_ b/nethack/.wizkit_ new file mode 100644 index 0000000..e32a2e6 --- /dev/null +++ b/nethack/.wizkit_ @@ -0,0 +1,44 @@ +30 blessed potions of gain level +50 blessed potions of full healing +50 blessed potions of gain energy +50 blessed potions of gain ability + +blessed tin of blue dragon meat # shock resistance +blessed tin of black dragon meat # disintegration resistance +blessed tin of green dragon meat # poison resistance +blessed tin of red dragon meat # fire resistance +blessed tin of white dragon meat # cold resistance +blessed tin of orange dragon meat # sleep resistance +blessed tin of yellow dragon meat # acid resistance +blessed tin of floating eye meat +#blessed potion of invisibility +#blessed tin of stalker meat +blessed tin of quantum mechanic meat # speed +blessed +7 greased fireproof elven leather helm +blessed +7 greased rustproof helm of brilliance +blessed +7 greased rustproof helm of telepathy +blessed +7 greased fireproof speed boots +blessed +7 shield of reflection +blessed +7 fireproof elven cloak +blessed +7 fireproof oilskin cloak +blessed +7 fireproof elven mithril-coat +blessed +7 fireproof leather gloves +blessed +7 rustproof gauntlets of power +blessed +7 fireproof elven shield +blessed +7 fireproof tshirt +blessed +7 gray dragon scale mail +blessed +7 silver dragon scale mail +blessed fireproof ring of free action +blessed ring of slow digestion +blessed fireproof amulet of reflection +blessed luckstone +blessed towel +blessed pair of lenses +blessed +7 silver dagger + +levitation +touchstone +blessed bag of holding +blessed oilskin sack +robe +blessed unicorn horn diff --git a/pdb/.pdbrc b/pdb/.pdbrc new file mode 100644 index 0000000..0328df4 --- /dev/null +++ b/pdb/.pdbrc @@ -0,0 +1,5 @@ +import os + +alias hare os.system('kill %d' % os.getpid()) +alias hare9 os.system('kill -9 %d' % os.getpid()) +alias pp1 import pyderasn ;; print(pyderasn.pprint(%1, oid_maps=(locals().get('OID_STR_TO_NAME', {}),))) diff --git a/pip/.pip/pip.conf b/pip/.pip/pip.conf new file mode 100644 index 0000000..340acee --- /dev/null +++ b/pip/.pip/pip.conf @@ -0,0 +1,18 @@ +[global] +disable-pip-version-check = yes +default-timeout = 120 +timeout = 120 +trusted-host = irc.stmdev.ru pyshop.ci.srv.szd +# index-servers = mein + +[install] +no-binary = :all: +cache-dir = /tmp/pip-cache + +index-url = http://pip:pip@pyshop.ci.srv.szd/simple/ +# index-url = http://stargrave:stargrave@localhost:8080/simple/ + +# [mein] +# username: stargrave +# password: stargrave +# repository: http://localhost:8080/simple/ diff --git a/psql/.psqlrc b/psql/.psqlrc new file mode 100644 index 0000000..fc98007 --- /dev/null +++ b/psql/.psqlrc @@ -0,0 +1,8 @@ +CREATE OR REPLACE FUNCTION ppj(jsonb) RETURNS TEXT AS $$ + SELECT jsonb_pretty($1); +$$ LANGUAGE SQL; +CREATE OR REPLACE FUNCTION ppj(jsonb[]) RETURNS SETOF TEXT AS $$ + SELECT jsonb_pretty(unnest) FROM (SELECT unnest($1)) AS dummy; +$$ LANGUAGE SQL; + +\timing on diff --git a/readline/.inputrc b/readline/.inputrc new file mode 100644 index 0000000..5c05974 --- /dev/null +++ b/readline/.inputrc @@ -0,0 +1,5 @@ +"\e[A": history-search-backward +"\e[B": history-search-forward +"": backward-word +"": forward-word +set editing-mode vi diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf new file mode 100644 index 0000000..c59768c --- /dev/null +++ b/tmux/.tmux.conf @@ -0,0 +1,35 @@ +set-option -g mode-keys vi +set-option -g base-index 1 +set-option -g default-terminal "screen-256color" +set-option -g escape-time 50 +set-option -g repeat-time 0 +set-option -g history-limit 20000 + +set-option -g prefix C-a +unbind-key C-b +bind-key C-a send-prefix + +bind-key -n C-PgUp previous-window +bind-key -n C-PgDn next-window +bind-key -n S-PgUp copy-mode -u +bind '"' split-window -c "#{pane_current_path}" +bind % split-window -h -c "#{pane_current_path}" +bind c new-window -c "#{pane_current_path}" + +set-option -g status-style "bg=black,fg=white" +set-option -g status-left "#S>" +set-option -g status-right "#T" +set-option -g status-justify centre + +set-window-option -g automatic-rename on +set-window-option -g window-status-format "#I:#W:#T#F" +set-window-option -g window-status-bg green +set-window-option -g window-status-fg black +set-window-option -g window-status-current-format "#I:#W#F" +set-window-option -g window-status-current-bg red +set-window-option -g window-status-last-bg cyan + +bind-key u capture-pane -J \; save-buffer /tmp/tmux-buffer \; split-window 'urlview /tmp/tmux-buffer' \; delete-buffer +bind-key y capture-pane -J \; save-buffer /tmp/tmux-buffer \; split-window 'vim /tmp/tmux-buffer' \; delete-buffer +bind-key b set-option status +unbind-key L diff --git a/urlview/.urlview b/urlview/.urlview new file mode 100644 index 0000000..bde25e7 --- /dev/null +++ b/urlview/.urlview @@ -0,0 +1 @@ +COMMAND ~/xombrero/bin/xombrero -n %s diff --git a/vim/.vim/ftplugin/go/autos.vim b/vim/.vim/ftplugin/go/autos.vim new file mode 100644 index 0000000..7bc2dba --- /dev/null +++ b/vim/.vim/ftplugin/go/autos.vim @@ -0,0 +1,2 @@ +let @e = "^iif err = A; err != nil {" +let @r = "oif err != nil { }O " diff --git a/vim/.vim/ftplugin/go/fmt.vim b/vim/.vim/ftplugin/go/fmt.vim new file mode 100644 index 0000000..359545b --- /dev/null +++ b/vim/.vim/ftplugin/go/fmt.vim @@ -0,0 +1,69 @@ +" Copyright 2011 The Go Authors. All rights reserved. +" Use of this source code is governed by a BSD-style +" license that can be found in the LICENSE file. +" +" fmt.vim: Vim command to format Go files with gofmt. +" +" This filetype plugin add a new commands for go buffers: +" +" :Fmt +" +" Filter the current Go buffer through gofmt. +" It tries to preserve cursor position and avoids +" replacing the buffer with stderr output. +" +" Options: +" +" g:go_fmt_commands [default=1] +" +" Flag to indicate whether to enable the commands listed above. +" +" g:gofmt_command [default="gofmt"] +" +" Flag naming the gofmt executable to use. +" +if exists("b:did_ftplugin_go_fmt") + finish +endif + +if !exists("g:go_fmt_commands") + let g:go_fmt_commands = 1 +endif + +if !exists("g:gofmt_command") + let g:gofmt_command = "gofmt" +endif + +if g:go_fmt_commands + command! -buffer Fmt call s:GoFormat() +endif + +function! s:GoFormat() + let view = winsaveview() + silent execute "%!" . g:gofmt_command + if v:shell_error + let errors = [] + for line in getline(1, line('$')) + let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\)\s*\(.*\)') + if !empty(tokens) + call add(errors, {"filename": @%, + \"lnum": tokens[2], + \"col": tokens[3], + \"text": tokens[4]}) + endif + endfor + if empty(errors) + % | " Couldn't detect gofmt error format, output errors + endif + undo + if !empty(errors) + call setqflist(errors, 'r') + endif + echohl Error | echomsg "Gofmt returned error" | echohl None + endif + call winrestview(view) +endfunction + +let b:did_ftplugin_go_fmt = 1 + +" vim:ts=4:sw=4:et diff --git a/vim/.vim/ftplugin/go/motion.vim b/vim/.vim/ftplugin/go/motion.vim new file mode 100644 index 0000000..041347c --- /dev/null +++ b/vim/.vim/ftplugin/go/motion.vim @@ -0,0 +1,18 @@ +nnoremap ]] :call Go_jump('/^\(func\\|type\)') +nnoremap [[ :call Go_jump('?^\(func\\|type\)') +nnoremap ]m :call Go_jump('/^\s*\(func\\|type\)') +nnoremap [m :call Go_jump('?^\s*\(func\\|type\)') + +if exists('*Go_jump') | finish | endif + +fun! Go_jump(motion) range + let cnt = v:count1 + let save = @/ " save last search pattern + mark ' + while cnt > 0 + silent! exe a:motion + let cnt = cnt - 1 + endwhile + call histdel('/', -1) + let @/ = save " restore last search pattern +endfun diff --git a/vim/.vim/ftplugin/python/autos.vim b/vim/.vim/ftplugin/python/autos.vim new file mode 100644 index 0000000..d837bde --- /dev/null +++ b/vim/.vim/ftplugin/python/autos.vim @@ -0,0 +1,14 @@ +iabbrev #u # coding: utf-8 +iabbrev tt # type: +iabbrev tti # type: ignore +iabbrev trace import pdb ; pdb.set_trace()pass +iabbrev itrace import ipdb ; ipdb.set_trace()pass +iabbrev embed import code ; code.interact(local=locals()) +iabbrev iembed from IPython import embed ; embed() +iabbrev kargs *args, **kwargs +iabbrev pyldis # pylint: disable= +iabbrev deff def () -> None:F(i +iabbrev """ """o"2i"kA +nmap ss :set lazyredrawvip:sort u:'<,'>sort i:set nolazyredraw +let @b = ">gvctry:<>k>>kP" +let @n = "ddV/except.*: +" License: GNU General Public License version 3 of the License or later +" +" This plugin is intended for quick import-line insertion. +" For example you have got "from foo.bar import Baz" import somewhere in +" your Git-versioned code. In another file you can write "Baz" and then +" press in insert mode. Completion menu will show you suggestions +" of all import lines from your code containing Baz import. +" +" If you have Pylint or Pyflakes output in quickfix window, containing +" unfedined variables errors, then you can you :call AllImportCompl() +" function. It will go through the quickfix list and find all possible +" imports, sort them and insert under current cursor position. +" +" It uses external "git grep" call and assumes that "canonical" Python +" import format is used (single import per line). +" You can use http://git.stargrave.org/cgit.cgi/pyimportcan.git/tree/pyimportcan.pl +" utility to convert existing imports to that format. + +let s:git_grep_cmd = "git grep -H --line-number --ignore-case --no-color " + +if exists('g:loaded_importcompl') | finish | endif +let g:loaded_importcompl = 1 + +function! SortByLen(s1, s2) + if len(a:s1) == len(a:s2) | return a:s1 > a:s2 | endif + return 1 ? len(a:s1) > len(a:s2) : -1 +endfunction + +function! ImportCompl() + normal diw + let output = system(s:git_grep_cmd . '"^from .* import .*' . @" . '" -- "*.py" "**/*.py"') + let suggestions = [] + for line in split(output, "\n") + if stridx(line, "unused-import") != -1 | continue | endif + let m = matchlist(line, '^.*:\d\+:\(.*\)$') + if len(m) == 0 | continue | endif + call insert(suggestions, m[1]) + endfor + call sort(suggestions, "SortByLen") + call uniq(suggestions) + call reverse(suggestions) + call complete(col('.'), suggestions) + return '' +endfunction + +inoremap =ImportCompl() + +function! AllImportCompl() + let output = system(s:git_grep_cmd . '"^from .* import" -- "*.py" "**/*.py"') + let imports = {} + for line in split(output, "\n") + if stridx(line, "unused-import") != -1 | continue | endif + for regexp in [ + \'^.*:\d\+:\(from .* import \(\w\+\).*\)$', + \'^.*:\d\+:\(from .* import \w\+ as \(\w\+\).*\)$', + \] + let m = matchlist(line, regexp) + if len(m) == 0 | break | endif + let imports[m[2]] = m[1] + endfor + endfor + let lines = getloclist(winnr()) + if len(lines) == 0 | let lines = getqflist() | endif + let result = [] + for line in lines + let m = matchlist(line.text, '\(E0602\|F821\).*' . "'" . '\(\w\+\)' . "'$") + if len(m) == 0 || !has_key(imports, m[2]) | continue | endif + call insert(result, imports[m[2]]) + endfor + call sort(result, "i") + call uniq(result) + call append(".", result) +endfunction diff --git a/vim/.vim/ftplugin/python/pep8.vim b/vim/.vim/ftplugin/python/pep8.vim new file mode 100644 index 0000000..5570eb6 --- /dev/null +++ b/vim/.vim/ftplugin/python/pep8.vim @@ -0,0 +1,21 @@ +" PEP8 caller +" Maintainer: Sergey Matveev +" License: GNU General Public License version 3 of the License or later +" +" Call pycodestyle utility and fill quickfix window with its results. + +sign define P8 text=P8 texthl=Error +function! s:pep8() + set makeprg=pycodestyle\ --select=E,W\ % + silent make + sign unplace * + let l:id = 1 + for item in getqflist() + execute(':sign place '.l:id.' name=P8 line='.l:item.lnum.' buffer='.l:item.bufnr) + let l:id = l:id + 2 + endfor + redraw! + copen +endfunction + +map :call pep8() diff --git a/vim/.vim/ftplugin/python/pylint.vim b/vim/.vim/ftplugin/python/pylint.vim new file mode 100644 index 0000000..4a61ee3 --- /dev/null +++ b/vim/.vim/ftplugin/python/pylint.vim @@ -0,0 +1,98 @@ +" Asynchronous pylint utility call +" Maintainer: Sergey Matveev +" License: GNU General Public License version 3 of the License or later +" +" This plugin allows you to asynchronously call pylint. +" +" * Add %{LintStatus()} to your statusline to see if pylint is running +" * Press to start pylint on current file +" * Press to open quickfix window with messages from pylint +" * All lines with corresponding pylint existing warning will be highlighted +" * If no warning and errors occurred, "pylint is clean" message will be shown +" * If existing quickfix window is found, then it won't be overwritten. +" Start pylint manually () to force its filling +" * After Python file is saved, pylint is automatically started + +if exists('g:loaded_pylint') | finish | endif +let g:loaded_pylint = 1 + +function! LintStatus() + if exists("b:lint_job") && job_status(b:lint_job) == "run" | return "LN" | endif + return "" +endfunction + +function! s:qffill(ch) + let msgs = [] + while ch_status(a:ch) == 'buffered' + let msgs = add(msgs, ch_read(a:ch)) + endwhile + cgetexpr msgs +endfunction + +sign define LN text=LN texthl=Error + +function! PylintFinish(ch) + let l:errorformat_bak = &errorformat + set errorformat=%f:%l:\ [%t]%m,%f:%l:%m + call s:qffill(a:ch) + let &errorformat=l:errorformat_bak + sign unplace * + let l:id = 2 + for item in getqflist() + if item.lnum == 0 | continue | endif + execute(':sign place '.l:id.' name=LN line='.l:item.lnum.' buffer='.l:item.bufnr) + let l:id = l:id + 2 + endfor + redraw! + if l:id == 2 + echohl MoreMsg | echomsg "pylint is clean" | echohl None + cclose + endif +endfunction + +function! PylintStart() + if exists("g:pylint_disable") || (exists("b:lint_job") && job_status(b:lint_job) == "run") + return + endif + let ignores = [ + \"locally-disabled", + \"no-init", + \"no-self-use", + \"too-few-public-methods", + \"missing-docstring", + \"too-many-instance-attributes", + \"invalid-name", + \"too-many-arguments", + \"too-many-locals", + \"too-many-public-methods", + \"no-value-for-parameter", + \] + if !exists("g:pylint_linter") | let g:pylint_linter = "flake8" | endif + if g:pylint_linter == "flake8" + let cmdline = [ + \"flake8", + \"--ignore=E501", + \"--format=%(path)s:%(row)d: [%(code)s] %(text)s", + \"--max-line-length=90", + \expand("%p") + \] + elseif g:pylint_linter == "pylint" + let cmdline = [ + \"pylint", + \"--jobs=4", + \"--reports=n", + \"--msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg}", + \"--disable=" . join(ignores, ","), + \"--persistent=n", + \expand("%p") + \] + else + echohl WarningMsg | echomsg "Unknown linter specified" | echohl None + return + endif + let b:lint_job = job_start(cmdline, {"in_mode": "nl", "err_io": "null", "close_cb": "PylintFinish"}) +endfunction() + +map :unlet! g:pylint_disable:call PylintStart() +map [17;2~ :redraw!:copen +autocmd BufWritePost *.py call PylintStart() diff --git a/vim/.vim/ftplugin/python/testname.vim b/vim/.vim/ftplugin/python/testname.vim new file mode 100644 index 0000000..e388f1b --- /dev/null +++ b/vim/.vim/ftplugin/python/testname.vim @@ -0,0 +1,24 @@ +" Nose-compatible test name preparer +" Maintainer: Sergey Matveev +" License: GNU General Public License version 3 of the License or later +" +" When standing inside TestCase's test method, type t and full +" Python (your.project.tests:TestCaseName.test_method_name) path will be +" copied to clipboard ("*) register. + +function! TestName() + normal mm + normal ?.*\s*def .*[Tt]est + normal ^f(Byw + let postfix = @" + normal [[f(Byw + let postfix = @" . "." . postfix + normal `m + let base = join([""] + split(getcwd(), "/")[:-1], "/") + let prefix = substitute(expand("%:p:r")[len(base)+1:], "/", ".", "g") + let name = prefix . ":" . postfix + let @* = name + echomsg name +endfunction + +nmap t :call TestName() diff --git a/vim/.vim/ftplugin/python/unused_remover.vim b/vim/.vim/ftplugin/python/unused_remover.vim new file mode 100644 index 0000000..5e6b1ba --- /dev/null +++ b/vim/.vim/ftplugin/python/unused_remover.vim @@ -0,0 +1,4 @@ +function! UnusedImportsRemover() + call setqflist(filter(getqflist(), "stridx(v:val.text, \"unused-import\") != -1 || stridx(v:val.text, \"imported but unused\") != -1")) + cdo d +endfunction diff --git a/vim/.vim/plugin/chnglstnav.vim b/vim/.vim/plugin/chnglstnav.vim new file mode 100644 index 0000000..648fafb --- /dev/null +++ b/vim/.vim/plugin/chnglstnav.vim @@ -0,0 +1,7 @@ +function! s:Chng(...) + if a:0 == 0 | return | endif + execute "normal " . a:1 . (a:1 > 0 ? "g;" : "g,") +endfunction + +command! -nargs=? Chng call s:Chng() +nmap :changes:Chng diff --git a/vim/.vim/plugin/ctags.vim b/vim/.vim/plugin/ctags.vim new file mode 100644 index 0000000..4d98eb8 --- /dev/null +++ b/vim/.vim/plugin/ctags.vim @@ -0,0 +1,28 @@ +" Exuberant Ctags creator +" Maintainer: Sergey Matveev +" License: GNU General Public License version 3 of the License or later +" +" Create "tags" file in your project's root first. +" Then :Ctags LANG to fill it. + +function! s:ctags(lang, verbose) + let dst = tagfiles()[0] + let src = "/" . join(split(dst, "/")[:-2], "/") + if dst[0] != "/" + let dst = getcwd() . "/tags" + let src = getcwd() + endif + let cmdline = [ + \'uctags', + \'--languages=' . a:lang, + \'--python-kinds=-i', + \'--recurse', + \] + if a:verbose == v:true | let cmdline += ['--verbose'] | endif + let cmdline += ['-f', dst, src] + execute "!" . join(cmdline, " ") + if a:verbose != v:true | redraw! | endif +endfunction + +command! -nargs=1 Ctags silent call s:ctags(, v:false) +command! -nargs=1 Ctagsv silent call s:ctags(, v:true) diff --git a/vim/.vim/plugin/defsplit.vim b/vim/.vim/plugin/defsplit.vim new file mode 100644 index 0000000..f995c8a --- /dev/null +++ b/vim/.vim/plugin/defsplit.vim @@ -0,0 +1,103 @@ +" Python function call splitter +" Maintainer: Sergey Matveev +" License: GNU General Public License version 3 of the License or later +" +" This plugin splits Python function call on several lines. +" +" def foobar(self, foo: str, bar: Some[thing, too]) -> None: +" to +" def foobar( +" self, +" foo: str, +" bar: Some[thing, too], +" ) -> None: +" +" foo(bar, baz)[0] +" to +" foo( +" bar, +" baz, +" )[0] +" +" You can un-split it using :Undefsplit command on the line where +" splitting starts. +" +" :Defsplit has optional argument specifying how many opening round +" parenthesis must be skipped. +" :Defsplit 1 on foo(baz(baz(...))) produces +" foo(baz( +" baz(...), +" )) +" +" Also there is :Brsplit command behaving similarly, but it splits other +" types of brackets: "{}", "[]". + +if exists("g:loaded_defsplit") | finish | endif +let g:loaded_defsplit = 1 +if !exists("g:defsplit_shift") | let g:defsplit_shift = " " | endif + +function! s:bracket_find(brs_allowable, line, offset) + let possible = [] + for bracket in a:brs_allowable + let found = stridx(a:line, bracket, a:offset) + if found != -1 | let possible += [found] | endif + endfor + return min(possible) +endfunction + +function! s:defsplit(brs_allowable, single_line_comma, ...) + if a:0 == 0 | let skip = 0 | else | let skip = str2nr(a:1) | endif + let shift = g:defsplit_shift + let line = getline(".") + for i in range(len(line)) + if line[i] != g:defsplit_shift[0] + let prfx = strpart(line, 0, i) + if line[i : i+3] ==# "def " || + \line[i : i+5] ==# "class " || + \line[i : i+9] ==# "async def " + let shift .= shift + endif + break + endif + endfor + let brs = {"(": ")", "[": "]", "{": "}"} + let brfirst = s:bracket_find(a:brs_allowable, line, 0) + let brlast = strridx(line, brs[line[brfirst]]) + while skip > 0 + let brfirst = s:bracket_find(a:brs_allowable, line, brfirst + 1) + let brlast = strridx(line, brs[line[brfirst]], brlast - 1) + let skip -= 1 + endwhile + let [curly, round, squar, outbuf] = [0, 0, 0, ""] + let ready = [strpart(line, 0, brfirst + 1)] + let trailing_comma = 1 + for c in split(line[brfirst + 1 : brlast-1], '\zs') + if c ==# "*" | let trailing_comma = 0 | endif + if outbuf ==# "" && c ==# " " | continue | endif + let outbuf .= c + if c ==# "," && !curly && !round && !squar + let ready = add(ready, prfx . shift . outbuf) + let outbuf = "" + elseif c ==# "[" | let squar += 1 + elseif c ==# "]" | let squar -= 1 + elseif c ==# "(" | let round += 1 + elseif c ==# ")" | let round -= 1 + elseif c ==# "{" | let curly += 1 + elseif c ==# "}" | let curly -= 1 + endif + endfor + if trailing_comma && !(a:single_line_comma == v:true && len(ready) == 1) + let outbuf = outbuf . "," + endif + let ready = add(ready, prfx . shift . outbuf) + let ready = add(ready, prfx . strpart(line, brlast)) + call append(line("."), ready) + normal "_dd +endfunction + +command! -nargs=? Defsplit call s:defsplit(["("], v:false, ) +command! -nargs=? Brsplit call s:defsplit(["(", "[", "{"], v:false, ) +command! -nargs=? Defsplits call s:defsplit(["("], v:true, ) +command! -nargs=? Brsplits call s:defsplit(["(", "[", "{"], v:true, ) + +command! Undefsplit normal ^v%$J:keepp s/^\(.*\)\([([{]\) \(.*[^,]\),\?\([)\]}]\)\(.*\)$/\1\2\3\4\5:keepp s/, \?\([)\]}]\+\)$/\1/e: diff --git a/vim/.vim/plugin/file_line.vim b/vim/.vim/plugin/file_line.vim new file mode 100644 index 0000000..e5a6a92 --- /dev/null +++ b/vim/.vim/plugin/file_line.vim @@ -0,0 +1,16 @@ +" Simplified version of http://www.vim.org/scripts/script.php?script_id=2184 +" that does not replace current window + +function! s:gotoline() + let names = matchlist(bufname("%"), '\(.\{-1,}\):\%(\(\d\+\)\%(:\(\d*\):\?\)\?\)\?$') + if empty(names) | return | endif + let file_name = names[1] + let line_num = names[2] == "" ? "0" : names[2] + let col_num = names[3] == "" ? "0" : names[3] + if !filereadable(file_name) | return | endif + exec "keepalt edit +" . line_num . " " . file_name + exec "normal! " . col_num . "|" +endfunction + +autocmd! BufNewFile *:* nested call s:gotoline() +autocmd! BufRead *:* nested call s:gotoline() diff --git a/vim/.vim/plugin/ggrep.vim b/vim/.vim/plugin/ggrep.vim new file mode 100644 index 0000000..657e7ea --- /dev/null +++ b/vim/.vim/plugin/ggrep.vim @@ -0,0 +1,8 @@ +function! s:Vmg(pattern) + silent execute 'Ggrep "' . a:pattern . '"' + copen + redraw! + let g:pylint_disable=1 +endfunction + +command! -nargs=* -complete=file Vmg call s:Vmg() diff --git a/vim/.vim/plugin/grep.vim b/vim/.vim/plugin/grep.vim new file mode 100644 index 0000000..7154d2d --- /dev/null +++ b/vim/.vim/plugin/grep.vim @@ -0,0 +1,10 @@ +function! s:Vim(pattern) + let ignorecase_bak=&ignorecase + set noignorecase + execute "vimgrep /" . a:pattern . "/ **/*" + copen + let &ignorecase=ignorecase_bak + let g:pylint_disable=1 +endfunction + +command! -nargs=* -complete=file Vim call s:Vim() diff --git a/vim/.vim/plugin/killsig.vim b/vim/.vim/plugin/killsig.vim new file mode 100644 index 0000000..d857425 --- /dev/null +++ b/vim/.vim/plugin/killsig.vim @@ -0,0 +1,9 @@ +function! s:KillSignature() + call cursor(1, 1) + call search('^[>|] \?-- \?$') + if getpos(".")[1] != 1 + normal d} + endif +endfunction + +autocmd BufRead /tmp/mutt-* call s:KillSignature() diff --git a/vim/.vim/plugin/pastemode.vim b/vim/.vim/plugin/pastemode.vim new file mode 100644 index 0000000..d2dbd7e --- /dev/null +++ b/vim/.vim/plugin/pastemode.vim @@ -0,0 +1,13 @@ +if &term =~ "screen.*" + let &t_ti = &t_ti . "\e[?2004h" + let &t_te = "\e[?2004l" . &t_te + function XTermPasteBegin(ret) + set pastetoggle=[201~ + set paste + return a:ret + endfunction + map [200~ XTermPasteBegin("i") + imap [200~ XTermPasteBegin("") + cmap [200~ + cmap [201~ +endif diff --git a/vim/.vim/plugin/vimrclocal.vim b/vim/.vim/plugin/vimrclocal.vim new file mode 100644 index 0000000..18185e0 --- /dev/null +++ b/vim/.vim/plugin/vimrclocal.vim @@ -0,0 +1,3 @@ +if filereadable('.vimrc.local') + source .vimrc.local +endif diff --git a/vim/.vim/plugin/whereami.vim b/vim/.vim/plugin/whereami.vim new file mode 100644 index 0000000..7136793 --- /dev/null +++ b/vim/.vim/plugin/whereami.vim @@ -0,0 +1,7 @@ +function! WhereAmI() + let where = expand('%:p') . ":" . line('.') + let @* = where + echomsg where +endfunction + +nmap w :call WhereAmI() diff --git a/vim/.vim/plugin/zshfe.vim b/vim/.vim/plugin/zshfe.vim new file mode 100644 index 0000000..fd5e5b1 --- /dev/null +++ b/vim/.vim/plugin/zshfe.vim @@ -0,0 +1,21 @@ +" zsh file completion caller +" Maintainer: Sergey Matveev +" License: GNU General Public License version 3 of the License or later + +if exists("g:loaded_zshfe") | finish | endif +let g:loaded_zshfe = 1 +if !exists("g:zshfe_path") | let g:zshfe_path=expand("~/.vim/plugin/zshfe.zsh") | endif + +function! s:zshfe(query, opencmd) + silent let result = systemlist(g:zshfe_path . " " . a:query) + if len(result) == 0 | return | endif + exec a:opencmd . " " . result[0][:-2] +endfunction + +command! -nargs=1 Fe call s:zshfe(, "edit") +command! -nargs=1 Fsp call s:zshfe(, "split") +command! -nargs=1 Fvs call s:zshfe(, "vsplit") + +nmap e :Fe +nmap :Fsp +nmap v :Fvs diff --git a/vim/.vim/plugin/zshfe.zsh b/vim/.vim/plugin/zshfe.zsh new file mode 100755 index 0000000..0dfcd68 --- /dev/null +++ b/vim/.vim/plugin/zshfe.zsh @@ -0,0 +1,8 @@ +#!/usr/bin/env zsh + +set -e +zmodload zsh/zpty +zpty zshfe zsh +zpty -w zshfe "print ZSHFE $*"$'\t EFHSZ\nexit\n' +zpty -r zshfe zshfe "*exit" +echo "$zshfe" | sed -n "s/^ZSHFE \(.*\) EFHSZ/\1/p" diff --git a/vim/.vimrc b/vim/.vimrc new file mode 100644 index 0000000..4ad145e --- /dev/null +++ b/vim/.vimrc @@ -0,0 +1,181 @@ +" vim: foldmethod=marker:foldlevel=0 + +set t_Co=16 +syntax on +filetype on +filetype plugin on +set nocompatible +set encoding=utf-8 +"set t_kD= +set mouse="" " if Vim is compiled with mouse support +set nomodeline + +set viminfo='100,<50,s10,f1,%,n~/secure/vim/info +set viewdir=~/secure/vim/view +set history=128 +set directory=~/secure/vim/tmp +set undodir=~/secure/vim/undo +set undofile + +set autoindent +set tabstop=4 +set shiftwidth=4 +set smarttab +set expandtab +set nojoinspaces +set scrolloff=2 +set backspace=indent,eol +set shortmess=aoOtI +set highlight-=v:Visual +set highlight+=vr +set cpoptions+=$ +set showcmd +set showmatch +set listchars=trail:·,tab:→→,nbsp:% ",eol:¶ +set list + +set cursorline +set cursorcolumn +set colorcolumn=80 +highlight ExtraWhitespace ctermbg=green ctermfg=blue +match ExtraWhitespace /^\s*$/ + +set relativenumber +set numberwidth=3 + +set ignorecase +set smartcase +set hlsearch +set incsearch +set gdefault +set wildmode=longest:list +set tags=tags;,./; +set wildignore=**/_build/*,**/tags,**/.git,**/.hypothesis + +map :nohlsearch:MarkClear + +" Folding {{{ +set foldmethod=indent +set foldnestmax=9 +set foldenable +set foldcolumn=1 +set foldlevel=0 + +autocmd BufWinEnter * normal zR +highlight FoldColumn ctermfg=cyan ctermbg=black +highlight CursorColumn ctermfg=cyan ctermbg=red +" }}} + +" Statusline {{{ +highlight User1 ctermbg=blue ctermfg=black +highlight User2 ctermbg=green ctermfg=black +highlight User3 ctermbg=yellow ctermfg=black +highlight User4 ctermbg=red ctermfg=black +set laststatus=2 +set statusline=%n\|%F%m%r%h%w%q\ %= +set statusline+=%1*%Y[%{strlen(&fenc)?&fenc:&enc},%{&ff}] +set statusline+=%2*[%l/%L] +set statusline+=%3*[%c%V:0x%B] +set statusline+=%4*%{LintStatus()} +set statusline+=%*\ %P + +function! LintStatus() " it is overrided in ftplugin/python/pylint.vim + return "" +endfunction +" }}} + +" View saving {{{ +autocmd BufWinLeave *.* mkview +autocmd BufWinEnter *.* silent loadview +" }}} + +" Windows related {{{ +noremap j +noremap k +noremap l +noremap h +nmap - \|_ +nmap = = +nmap :close +autocmd VimResized * wincmd = +" }}} + +" Tmux window naming {{{ +set titleold = "" +set title +" }}} + +" Fugitive {{{ +let g:fugitive_git_executable = "LANG=en.UTF-8 git" +nmap "cyiw:execute "Gvsplit " . @czR +nmap :diffupdate:syntax off:syntax on +" }}} + +" *-lists indentation and formatting {{{ +set comments-=mb:* +set formatlistpat=^\\s*\\*\ \\s* +set formatoptions+=n +" }}} + +autocmd BufEnter * let &titlestring = expand("%:t") +autocmd BufRead /tmp/mutt-* setlocal textwidth=72 +autocmd BufRead,BufNewFile *.pyi setlocal filetype=python +autocmd BufRead,BufNewFile *.go setlocal noexpandtab +autocmd BufRead,BufNewFile *.go let g:defsplit_shift=" " +autocmd BufNewFile,BufRead *.tex abbreviate framedo \begin{frame}\frametitle{TODO}\end{frame}k>>wwlcw +autocmd BufNewFile,BufRead *.tex abbreviate itemdo \begin{itemize}\item \end{itemize}k>>$a +autocmd BufNewFile,BufRead *.tex abbreviate cnter \begin{center}\end{center}k$o +autocmd Filetype texinfo abbreviate \t @tab +autocmd Filetype gitcommit setlocal textwidth=72 +autocmd BufRead /tmp/psql.edit* setlocal filetype=sql +autocmd Filetype yaml setlocal shiftwidth=2 + +set keywordprg= + +let g:netrw_banner = 0 +let g:netrw_bufsettings = "noma nomod nowrap ro nobl" + +" Often typos +map q: : +command! W w + +nmap f +vmap Igv +nmap _ f_l + +nmap ] "*yiw +nmap p "_diwP +nmap o :let @*=expand("%:p") + +nmap ]q :cnext +nmap [q :cprev + +nnoremap d "_d +vnoremap d "_d + +cmap +cmap + +map Q gq +cmap ][ '[,'] +nmap :buffers:buffer +nmap :registers +nmap ' yiwciw""" +nmap h1 yypVr=o +nmap 72 :set textwidth=72 +nmap sc 024i-a >8 24a- +nmap :vertical winc ] +nnoremap + +nmap :help! +imap :help! + +nmap sp :setlocal spell spelllang=ru,en_gb +highlight SpellBad cterm=inverse ctermfg=red ctermbg=black + +iabbrev итд и т.д. +iabbrev итп и т.п. + +command! E Explore +command! Ch cd %:p:h +command! -bar -nargs=? -bang Tmp :silent vnew|setlocal buftype=nofile bufhidden=hide noswapfile buflisted filetype= modifiable diff --git a/x/.Xresources b/x/.Xresources new file mode 100644 index 0000000..1c29c57 --- /dev/null +++ b/x/.Xresources @@ -0,0 +1,20 @@ +XTerm.termName: screen-256color +XTerm.vt100.internalBorder: 0 +XTerm.vt100.faceName: Inconsolata LGC:pixelsize=16:antialias=false:autohint=true +XTerm.vt100.foreground: gray90 +XTerm.vt100.background: black +XTerm.vt100.cursorColor: white +XTerm.vt100.colorITMode: true +XTerm.vt100.colorIT: yellow +XTerm.vt100.saveLines: 0 +XTerm.vt100.scrollBar: false +XTerm.vt100.utf8: 1 +XTerm.vt100.eightBitInput: true +XTerm.vt100.bellIsUrgent: true +XTerm.vt100.charClass: 33-126:48 +XTerm.vt100.Translations: #override \ + ShiftPage_Up: string("[5;2~") \n \ + Menu: string("") \n \ + Super_R: string("") \n \ + Shift AltInsert: insert-selection(CLIPBOARD, CUT_BUFFER1) +XTerm.vt100.trimSelection: true diff --git a/x/.xinitrc b/x/.xinitrc new file mode 100755 index 0000000..cd44c9f --- /dev/null +++ b/x/.xinitrc @@ -0,0 +1,14 @@ +#!/bin/zsh + +xsetroot -solid \#222222 & +xset b off +# xrdb ~/.Xresources +while :; do + life=$(apm -l) + xsetroot -name "$life% $(date "+%Y-%m-%dT%H:%M:%S")" + sleep 20 +done & +rm -f ~/.ssh/agent ; ssh-agent -a ~/.ssh/agent +find ~/secure/vim -type f -atime +1 -delete +~/bin/cleanup.sh +exec $HOME/src/dwm-6.1/dwm diff --git a/xombrero/.xombrero.conf b/xombrero/.xombrero.conf new file mode 100644 index 0000000..cb64110 --- /dev/null +++ b/xombrero/.xombrero.conf @@ -0,0 +1,406 @@ +## +## GENERAL SETTINGS +## + +# +# The strategy for the config file is as follows: +# +# Boolean values are the opposite of the default and need to simply be +# uncommented to alter the default. +# +# Text values *are* set to the default and in order to change them one must +# uncomment the option *and* change the value. +# + +# NOTE: browser_mode and gui_mode MUST be the first entries in this +# file! + +# Normal browser operation (default). +# browser_mode = normal + +# Prevent tracking operation. +browser_mode = whitelist + +# Classic GUI (default). +# gui_mode = classic + +# Minimalistic GUI. +gui_mode = minimal + +home = file:///home/stargrave/.lynx_bookmarks.html +download_dir = ~/data +download_mode = start +# download_notifications = 1 +# window_maximize = 1 +# window_width = 1024 +# window_height = 768 +# enable_spell_checking = 1 +# spell_check_languages = en_US +# default_zoom_level = 1.0 +encoding = UTF-8 +ssl_ca_file = /usr/local/share/certs/ca-root-nss.crt +# ssl_strict_certs = 1 +enable_strict_transport = 1 +# ctrl_click_focus = 1 +# append_next = 0 +# save_global_history = 1 +color_visited_uris = 0 +guess_search = 1 +# enable_autoscroll = 1 +# session_autosave = 1 +# history_autosave = 1 +# autofocus_onload = 1 +# single_instance = 1 +enable_socket = 1 +# enable_js_autorun = 0 +auto_load_images = 0 +enable_localstorage = 1 +# userstyle = /usr/local/share/xombrero/style.css +# userstyle_global = 1 +enable_favicon_entry = 0 +enable_favicon_tabs = 0 +# preload_strict_transport = 1 +# referer = always +referer = same-domain +warn_cert_changes = 1 +enable_cache = 0 +# js_auto_open_windows = 0 + +# See http://www.xroxy.com/proxylist.php for a good list of open +# proxies. +# +# polipo +# http_proxy = http://127.0.0.1:8123 +# +# tsocks +# http_proxy = http://127.0.0.1:1080 +# +http_proxy = socks5://localhost:4444/ +# If you only occasionally use a proxy +http_proxy_starts_enabled = 0 + +# Search engines; uncomment one of these lines for you favorite search +# engine. +# +# Google +# search_string = https://www.google.com/search?q=%s +# +# Yahoo +# search_string = http://search.yahoo.com/search?p=%s +# +# Start Page +# search_string = https://startpage.com/do/search?language=english_us&cat=web&query=%s +# +# DuckDuckGo +search_string = https://www.duckduckgo.com/?q=%s + +# External editor. +# NOTE: The editor specified here must not fork into the background. +# +# Examples of editors: +external_editor = st -e vim -f +# external_editor = gvim -f +# external_editor = xterm -geometry 177x58+0+0 -font -*-fixed-medium-r-*-*-15-*-*-*-*-*-iso8859-* -e vim -f +# external_editor = emacsclient -c + +# "default_script" points to a script executed by the run_script +# command. The only argument passed to this script is the current URI. +# +# default_script = ~/.xombrero/playflash.sh + +# "user_agent" can be set to just about anything, for a comprehensive +# list see: http://www.useragentstring.com/pages/All/ . If more than one +# "user_agent" is given, then xombrero will use them in a round-robin +# fashion for each request. +# +#user_agent = Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729) +#user_agent = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) +#user_agent = Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.27 Safari/532.0 +#user_agent = Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7C144 Safari/528.16 +#user_agent = Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1 +# + +## +## ALIASES +## + +# Aliases are given in the following format: +# +# alias = , +# +# Where the link part might contain "%s", the "%s" will be substituted +# with the user's input when the alias is expanded. + +# alias = s, https://www.google.com/search?q=%s +# alias = w, https://secure.wikimedia.org/wikipedia/en/w/index.php?title=Special%3ASearch&search=%s +# alias = ports, http://openports.se/search.php?so=%s + +alias = we, https://en.wikipedia.org/wiki/%s +alias = wr, https://ru.wikipedia.org/wiki/%s +alias = google, https://www.google.com/search?q=%s + +## +## COOKIE, JAVASCRIPT AND PLUGIN WHITE LISTS +## + +# Add the domains you trust. + +# cookie_wl = .conformal.com +# cookie_wl = .peereboom.us + +# js_wl = .conformal.com +# js_wl = .peereboom.us + +# pl_wl = .conformal.com +# pl_wl = .peereboom.us + + +## +## FORCE HTTPS FOR SITES +## + +# Add the domains of sites that should be only accesed over HTTPS. + +# force_https = .conformal.com + + +## +## MIME TYPES +## + +# PDF, note that xpdf can't load a URI directly; use "@" in front of +# mime_type to indicate to download the file first. + +# mime_type = application/pdf,kpdf +# mime_type = @application/pdf,xpdf + +# Specific MIME type for video. +# mime_type = video/x-ms-wmv,mplayer +# mime_type = video/quicktime,mplayer + +# Default MIME type for video. +# mime_type = video/*,mplayer + +# Default MIME type for audio. +# mime_type = audio/*,vlc + +# Word documents. +# mime_type = application/msword,soffice + +# Ignoring flash can be done by using the donothing pseudo-binary. +# mime_type = application/x-shockwave-flash,donothing + + +## +## ADVANCED SETTINGS +## + +# resource_dir = /usr/local/share/xombrero/ +# refresh_interval = 10 +# url_regex = ^[[:blank:]]*[^[:blank:]]*([[:alnum:]-]+\.)+[[:alnum:]-][^[:blank:]]*[[:blank:]]*$ +# gnutls_priority_string = NORMAL:%COMPAT + +# NOTE: webkit 1.4.x overwrites these values! +# max_host_connections = 5 +# max_connections = 25 + + +## +## ADVANCED GUI SETTINGS +## + +# The following low-level GUI settings are set by the high-level setting +# "gui_mode". + +# The settings for "gui_mode = classic" are as follows: + +# fancy_bar = 1 +# show_tabs = 1 +# tab_style = normal +# userstyle_global = 0 +# show_url = 1 +# show_statusbar = 0 +# show_scrollbars = 1 + +# The settings for "gui_mode = minimal" are as follows: + +# fancy_bar = 0 +# show_tabs = 1 +# tab_style = compact +# show_url = 0 +# show_statusbar = 1 +# show_scrollbars = 0 + +# The following are settings shared between "classic" and "minimal" +# "gui_mode": + +# statusbar_elems = BP +statusbar_elems = BP|T +# icon_size = 2 +# cmd_font = monospace normal 9 +# oops_font = monospace normal 9 +# statusbar_font = monospace normal 9 +# tabbar_font = monospace normal 9 + + +## +## ADVANCED COOKIE AND JAVASCRIPT SETTINGS +## + +# The following low-level settings are set by the high-level setting +# "browser_mode", and shouldn't be tweaked manually unless you know what +# you are doing. + +# The settings for "browser_mode = normal" are as follows: + +# allow_volatile_cookies = 0 +# cookie_policy = allow +# cookies_enabled = 1 +# enable_cookie_whitelist = 0 +# read_only_cookies = 0 +# save_rejected_cookies = 0 +# session_timeout = 3600 +# enable_scripts = 1 +# enable_js_whitelist = 0 +# enable_localstorage = 1 +# enable_plugins = 1 +# enable_plugin_whitelist = 0 +# allow_insecure_content = 1 +# allow_insecure_scripts = 1 +# do_not_track = 0 + +# The settings for "browser_mode = whitelist" are as follows: + +# allow_volatile_cookies = 0 +cookie_policy = no3rdparty +# cookies_enabled = 1 +# enable_cookie_whitelist = 1 +# read_only_cookies = 0 +# save_rejected_cookies = 0 +# session_timeout = 3600 +# enable_scripts = 0 +# enable_js_whitelist = 1 +# enable_localstorage = 0 +# enable_plugins = 0 +# enable_plugin_whitelist = 1 +# allow_insecure_content = 0 +# allow_insecure_scripts = 0 +do_not_track = 1 + + +## +## KEY BINDINGS +## + +# To delete all default keybindings use "keybinding = clearall". +# +# keybinding = clearall +# +# Key names can be found at: +# +# http://git.gnome.org/browse/gtk+/tree/gdk/gdkkeysyms-compat.h +# +# Just chop off the "GDK_" part and you have the keyname. Or look at: +# +# http://git.gnome.org/browse/gtk+/tree/gdk/gdkkeysyms.h +# +# and chop off "GDK_KEY_". +# +# Be aware that the names are case sensitive! +# +# The default keybindings are the following: +# +# keybinding = command,colon +# keybinding = search,slash +# keybinding = searchb,question +# keybinding = command_mode,!Escape +# keybinding = insert_mode,i +# keybinding = cookiejar,!M1-j +# keybinding = downloadmgr,!M1-d +# keybinding = history,!M1-h +# keybinding = print,!C-p +# keybinding = quitall,!C-q +# keybinding = restart,!M1-q +# keybinding = run_script,!M1-r +# keybinding = js toggle,!C-j +# keybinding = cookie toggle,!M1-c +# keybinding = togglesrc,!C-s +# keybinding = yankuri,y +# keybinding = pasteuricur,p +# keybinding = pasteurinew,P +# keybinding = toplevel toggle,!F4 +# keybinding = help,!F1 +# keybinding = proxy toggle,!F2 +# keybinding = searchnext,n +# keybinding = searchprevious,N +# keybinding = focusaddress,!F6 +# keybinding = focussearch,!F7 +# keybinding = hinting,f +# keybinding = hinting,period +# keybinding = hinting_newtab,S-F +# keybinding = hinting_newtab,comma +# keybinding = userstyle,s +# keybinding = userstyle_global,S +# keybinding = goback,BackSpace +# keybinding = goback,!M1-Left +# keybinding = goforward,!S-BackSpace +# keybinding = goforward,!M1-Right +keybinding = reload,r +# keybinding = reload,!F5 +# keybinding = reload,!C-r +# keybinding = reload,!C-l +# keybinding = favorites,!M1-f +# keybinding = scrolldown,j +# keybinding = scrolldown,Down +# keybinding = scrollup,k +# keybinding = scrollup,Up +# keybinding = scrollbottom,G +# keybinding = scrollbottom,End +# keybinding = scrolltop,Home +# keybinding = scrollpagedown,space +# keybinding = scrollpagedown,!C-f +# keybinding = scrollpagedown,Page_Down +# keybinding = scrollhalfdown,!C-d +# keybinding = scrollpageup,Page_Up +# keybinding = scrollpageup,!C-b +# keybinding = scrollhalfup,!C-u +# keybinding = scrollright,l +# keybinding = scrollright,Right +# keybinding = scrollfarright,dollar +# keybinding = scrollleft,h +# keybinding = scrollleft,Left +# keybinding = scrollfarleft,0 +# keybinding = statustoggle,!C-n +keybinding = stop,!C-c +# keybinding = stop,!S-F5 +# keybinding = tabnew,!C-t +#keybinding = tabclose,!d +keybinding = tabclose,!C-w +# keybinding = tabundoclose,U +# keybinding = tabnext 1,!C-1 +# keybinding = tabnext 2,!C-2 +# keybinding = tabnext 3,!C-3 +# keybinding = tabnext 4,!C-4 +# keybinding = tabnext 5,!C-5 +# keybinding = tabnext 6,!C-6 +# keybinding = tabnext 7,!C-7 +# keybinding = tabnext 8,!C-8 +# keybinding = tabnext 9,!C-9 +# keybinding = tabfirst,!C-less +# keybinding = tablast,!C-greater +keybinding = tabprevious,!C-Page_Up +keybinding = tabnext,!C-Page_Down +keybinding = tabnext,!C-Tab +# keybinding = focusout,!C-minus +# keybinding = focusin,!C-equal +# keybinding = focusin,!C-plus +# keybinding = focusreset,!C-0 +# keybinding = editelement,!C-i +# keybinding = passthrough,!C-z +keybinding = :open ,o +keybinding = :open ,O +keybinding = :tabnew ,t +keybinding = :tabnew ,T + +# parse the contents of another configuration file +# include_config = ~/.xombrero_alternate.conf diff --git a/zsh/.zprofile b/zsh/.zprofile new file mode 100644 index 0000000..7098021 --- /dev/null +++ b/zsh/.zprofile @@ -0,0 +1,71 @@ +# vim: foldmethod=marker:foldlevel=0 + +# History {{{ +HISTFILE=~/secure/.history +HISTSIZE=10240 +SAVEHIST=10240 +# }}} + +# Terminal {{{ +export COLORFGBG="default;default;0" +export COLORTERM="xterm-256color" +[ "$TERM" = "screen-256color" ] || TERM=xterm-256color +export TERM +# }}} + +# Basic envs {{{ +export SHELL=/bin/zsh +export EDITOR=vim +export PATH=$PATH:$HOME/bin:/sbin:/usr/sbin +export TZ='Europe/Moscow' +export IFCONFIG_FORMAT=inet:cidr,inet6:cidr +export SSH_AUTH_SOCK=$HOME/.ssh/agent +# }}} + +# Less options {{{ +export PAGER=less +export LESSHISTFILE=- +export LESS=RXi +# }}} + +# ls options {{{ +export CLICOLOR=1 +export LSCOLORS="BxGxcxdxCxegDxabagacad" +# }}} + +# Lynx options {{{ +export WWW_HOME=file:///home/stargrave/.lynx_bookmarks.html +export SSL_CERT_FILE=/usr/local/openssl/cert.pem +export LYNX_CFG=~/.lynx.cfg +# }}} + +# sdcv options {{{ +export STARDICT_DATA_DIR=$HOME +export SDCV_HISTSIZE=0 +# }}} + +# IRC options {{{ +export IRCNAME="Sergey Matveev" +export IRCNICK="stargrave" +# }}} + +# Python options {{{ +export PIP_RESPECT_VIRTUALENV=true +export PIP_VIRTUALENV_BASE=~/.virtualenvs +export PYTHONDONTWRITEBYTECODE=1 +# }}} + +export MAILDIR=$HOME/mail + +# XDG related junk {{{ +mkdir -p /tmp/stargrave-xdg +export XDG_CACHE_HOME=/tmp/stargrave-xdg +export XDG_CONFIG_DIR=/tmp/stargrave-xdg +export XDG_DATA_HOME=/tmp/stargrave-xdg +export XDG_RUNTIME_DIR=/tmp/stargrave-xdg +# }}} + +export GOCACHE=/tmp/go-cache +umask 077 + +env | grep -q XAUTH || calendar diff --git a/zsh/.zshrc b/zsh/.zshrc new file mode 100644 index 0000000..ebfb44f --- /dev/null +++ b/zsh/.zshrc @@ -0,0 +1,210 @@ +# vim: foldmethod=marker:foldlevel=0 + +# Basic options {{{ +setopt APPEND_HISTORY SHARE_HISTORY INC_APPEND_HISTORY HIST_IGNORE_ALL_DUPS +setopt HIST_IGNORE_SPACE +setopt INTERACTIVE_COMMENTS +setopt GLOB_STAR_SHORT GLOB_DOTS EXTENDED_GLOB +setopt NO_NOMATCH +setopt AUTO_PUSHD PUSHD_IGNORE_DUPS +# }}} + +# Vi mode {{{ +bindkey -v +export KEYTIMEOUT=1 +# }}} + +# Home/end {{{ +bindkey "^[[1~" beginning-of-line +bindkey "^[[4~" end-of-line +# }}} + +# Command-line editing {{{ +autoload -U edit-command-line +zle -N edit-command-line +bindkey -M vicmd v edit-command-line +# }}} + +# History search {{{ +autoload -U history-search-end +zle -N history-beginning-search-backward-end history-search-end +zle -N history-beginning-search-forward-end history-search-end +bindkey "^[[A" history-beginning-search-backward-end +bindkey "^[[B" history-beginning-search-forward-end +bindkey "^R" history-incremental-search-backward +# }}} + +# Prompt {{{ +function zle-line-init zle-keymap-select { + mode_vi="${${KEYMAP/vicmd/+}/(main|viins)/-}" + [ $timer ] && timer_show=$(( $SECONDS - $timer )) + prompt="%2~|" + prompt+="%U${timer_show}%u|" + prompt+="%B%?%b" + prompt+="${mode_vi}" + prompt+="%F{magenta}%#%f " + PS1="$prompt" + zle reset-prompt +} +zle -N zle-line-init +zle -N zle-keymap-select + +preexec() { + timer=$SECONDS +} + +precmd() { + print -n "\a" +} +# }}} + +# Tmux pane name {{{ +CTP() +{ + printf "\033]2;\033\\" +} +CTP +# }}} + +# Aliases {{{ +alias l="ls -AF " +alias ll="ls -AFl " +alias ssh="TERM=xterm ssh" +alias vi="vim" +alias more="less" +alias m="less " +alias -g M="| less" +alias mc="mc ; CTP" +bindkey -s "OS" " popd\n" # F4 + +f() { + # find . -name "*$1*" -print + print -C 1 **$1* +} + +ssht() { + ssh -C -t "$1" tmux attach -t0 +} +alias sshnm='ssh -o "ControlMaster no"' +# }}} + +# Lynx {{{ +lwe() { + lynx -cookies "https://en.wikipedia.org/wiki/$1" +} + +lwr() { + lynx -cookies "https://ru.wikipedia.org/wiki/$1" +} +# }}} + +# Git {{{ +alias Ga="git add" +alias Gb="git branch" +alias Gc="git checkout" +alias Gd="git diff" +alias Gs="git show" +alias Gm="git diff --name-only --diff-filter=M" +alias Gam="git commit --amend" + +git_common="--oneline --abbrev-commit" +alias Gl="git log $git_common --graph --decorate=short" +alias Gr="git --no-pager log $git_common -n 20 | perl -ne 'print \"@~\$n \$_\"; \$n++'" +alias Grr="git --no-pager log $git_common --graph -n 1024 | vi -c 'e ++enc=utf8' -" +alias Grpck="git gc --prune=now ; git repack -a -d --depth=4095 --window=10240" + +bindkey -s "OQ" " git status\n" # F2 +bindkey -s "OR" " git status --short\n" # F3 +# }}} + +# grep {{{ +GREP=/usr/local/bin/grep +g() { + $GREP --color=always --with-filename --line-number --recursive $@ | less --RAW-CONTROL-CHARS +} +alias -g G="| $GREP --color" +alias grep="$GREP" +alias gg="git grep " +# }}} + +# GPG agent {{{ +GPG_TTY=$(tty) +export GPG_TTY +# }}} + +# Virtualenv {{{ +venv() { + . /usr/local/bin/virtualenvwrapper.sh +} +# }}} + +# Mail {{{ +mailpath=( + ~/mail/mbox"?Neue Nachrichten in =mbox" + ~/mail/arbeit"?Neue Nachrichten in =arbeit" +) +alias arr="mutt -f =arbeit -e 'source ~/.mutt/accounts/stcnet.ru'" +alias rss="mutt -f =rss" +bindkey -s "OP" " inc\n" # F1 +# }}} + +# Calculator {{{ +autoload -U zcalc +alias zc="zcalc" +# }}} + +# Paths {{{ +export CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" + +export MANPATH=/usr/share/man +export MANPATH=$MANPATH:/usr/local/man +export MANPATH=$MANPATH:/usr/local/share/man +export MANPATH=$MANPATH:/usr/share/openssl/man +export MANPATH=$MANPATH:/usr/local/lib/perl5/site_perl/man +export MANPATH=$MANPATH:/usr/local/lib/perl5/5.26/perl/man + +export PATH=$PATH:$HOME/git/bin +export MANPATH=$MANPATH:$HOME/git/share/man + +export PATH=$PATH:$HOME/postgresql/bin +export MANPATH=$MANPATH:$HOME/postgresql/share/man + +export PATH=$HOME/texlive/2017/bin/amd64-freebsd:$PATH +export INFOPATH=$INFOPATH:/usr/local/share/info:$HOME/texlive/2017/texmf-dist/doc/info +export MANPATH=$MANPATH:$HOME/texlive/2017/texmf-dist/doc/man + +[ -e ~/postgresql/lib/libpq.so.5 ] && export LD_PRELOAD=$HOME/postgresql/lib/libpq.so.5 +# }}} + +# Completion {{{ +zstyle ":completion:*:functions" ignored-patterns "_*" +zstyle ":completion:*" matcher-list "" 'm:{a-z\-}={A-Z\_}' 'r:|?=** m:{a-z\-}={A-Z\_}' + +_mycomp () { + [ $CURRENT -eq 1 ] && _command_names || _files +} +zstyle ":completion:*" completer _mycomp _parameters + +autoload -U compinit ; compinit -d /tmp/.zcompdump + +zstyle ":completion:*:default" list-colors "" +autoload -U complist +# }}} + +# Highlighting {{{ +ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets) +. ~/work/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +typeset -A ZSH_HIGHLIGHT_STYLES +ZSH_HIGHLIGHT_STYLES[globbing]="fg=magenta" +ZSH_HIGHLIGHT_STYLES[history-expansion]="fg=magenta" +ZSH_HIGHLIGHT_STYLES[commandseparator]="fg=red" +ZSH_HIGHLIGHT_STYLES[redirection]="fg=red" +ZSH_HIGHLIGHT_STYLES[assign]="fg=cyan" +# }}} + +# Autosuggestion {{{ +. ~/work/zsh-autosuggestions/zsh-autosuggestions.zsh +ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=6" +# }}} + +~/bin/cleanup.sh -- 2.44.0