From f20096022de6453ad6e054357ade2fbba97a2423 Mon Sep 17 00:00:00 2001 From: Johannes Löthberg Date: Fri, 21 Mar 2014 20:15:34 +0100 Subject: Maybe some other time… MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- X11/XCompose | 2 + X11/Xresources | 4 +- git/config | 8 +- gtk-2.0/gtkrc-2.0 | 2 +- gtk-3.0/settings.ini | 2 +- i3/bar.py | 2 +- i3/config | 2 +- mutt/mailcap | 4 +- mutt/muttrc | 65 ++--- vim/ftplugin/mail.vim | 20 +- vim/vimrc | 5 +- weechat/alias.conf | 2 + weechat/irc.conf | 6 +- weechat/perl/autoload/yaurls.pl | 1 - weechat/plugins.conf | 125 ++------- weechat/python/anotify.py | 470 ---------------------------------- weechat/python/autoload/anotify.py | 1 - weechat/python/autoload/listbuffer.py | 1 - weechat/relay.conf | 1 + weechat/script.conf | 2 +- weechat/script/plugins.xml.gz | Bin 0 -> 90543 bytes zsh/.zprofile | 22 +- 22 files changed, 109 insertions(+), 638 deletions(-) delete mode 120000 weechat/perl/autoload/yaurls.pl delete mode 100644 weechat/python/anotify.py delete mode 120000 weechat/python/autoload/anotify.py delete mode 120000 weechat/python/autoload/listbuffer.py create mode 100644 weechat/script/plugins.xml.gz diff --git a/X11/XCompose b/X11/XCompose index bf3be30..4b6b9a6 100644 --- a/X11/XCompose +++ b/X11/XCompose @@ -67,3 +67,5 @@ : "☣" U2623 # BIOHAZARD SIGN : "☢" U2622 # RADIOACTIVE SIGN + : "卐" U262D + : "ಠ_ಠ" diff --git a/X11/Xresources b/X11/Xresources index 5ef5d6a..f0fb2bd 100644 --- a/X11/Xresources +++ b/X11/Xresources @@ -13,8 +13,8 @@ URxvt.fading: 0 !urxvt fonts: -URxvt*font: xft:Ubuntu Mono:pixelsize=15 -URxvt*boldFont: xft:Ubuntu Mono:bold:pixelsize=15 +URxvt*font: xft:Source Code Pro:pixelsize=10 +URxvt*boldFont: xft:Source Code Pro:bold:pixelsize=10 URxvt*geometry: 90x25 diff --git a/git/config b/git/config index 3e9045a..b1f6e66 100644 --- a/git/config +++ b/git/config @@ -2,12 +2,12 @@ name = Johannes Löthberg email = johannes@kyriasis.com signingkey = 3A9D0BB5 -[credential] - helper = /usr/share/git/credential/gnome-keyring/git-credential-gnome-keyring [color] ui = true [push] default = simple +[branch] + autosetuprebase = always [alias] co = checkout br = branch @@ -15,8 +15,6 @@ st = status unstage = reset HEAD -- last = log -1 HEAD -[branch] - autosetuprebase = always [github] user = kyrias [core] @@ -25,3 +23,5 @@ tool = vimdiff [sendemail] smtpserver = /usr/bin/msmtp +[credential] + helper = /usr/share/git/credential/gnome-keyring/git-credential-gnome-keyring diff --git a/gtk-2.0/gtkrc-2.0 b/gtk-2.0/gtkrc-2.0 index 091744f..d96fad5 100644 --- a/gtk-2.0/gtkrc-2.0 +++ b/gtk-2.0/gtkrc-2.0 @@ -1,7 +1,7 @@ # DO NOT EDIT! This file will be overwritten by LXAppearance. # Any customization should be done in ~/.gtkrc-2.0.mine instead. -gtk-theme-name="Albatross" +gtk-theme-name="Numix" gtk-icon-theme-name="elementary-xfce-darkest" gtk-font-name="Ubuntu 9" gtk-cursor-theme-size=0 diff --git a/gtk-3.0/settings.ini b/gtk-3.0/settings.ini index e1447d6..5aba229 100644 --- a/gtk-3.0/settings.ini +++ b/gtk-3.0/settings.ini @@ -1,5 +1,5 @@ [Settings] -gtk-theme-name=Albatross +gtk-theme-name=Numix gtk-icon-theme-name=elementary-xfce-darkest gtk-font-name=Ubuntu 9 gtk-cursor-theme-size=0 diff --git a/i3/bar.py b/i3/bar.py index 0490f89..98ef954 100644 --- a/i3/bar.py +++ b/i3/bar.py @@ -10,7 +10,7 @@ status.register("clock", format="%y-%m-%d %H:%M:%S",) status.register("battery", - format="{status} {percentage:.2f}% {remaining:%E%hh:%Mm}", + format="⚡:{percentage:.2f}% {remaining:%E%hh:%Mm} {status}", alert=True, alert_percentage=20, status={ diff --git a/i3/config b/i3/config index ba39cd1..0cc9d50 100644 --- a/i3/config +++ b/i3/config @@ -7,7 +7,7 @@ floating_modifier $mod bindsym $mod+Return exec termite bindsym $mod+Shift+q kill bindsym $mod+d exec --no-startup-id j4-dmenu-desktop -bindsym $mod+Shift+d exec --no-startup-id dmenu_run +bindsym $mod+Shift+d exec --no-startup-id "dmenu_run -i -fn 'DejaVu Sans Mono 9'" # change focus bindsym $mod+h focus left diff --git a/mutt/mailcap b/mutt/mailcap index e0ed500..38f6dc0 100644 --- a/mutt/mailcap +++ b/mutt/mailcap @@ -1,2 +1,2 @@ -text/html; ~/.config/mutt/tiny.pl %s %{charset} ; copiousoutput ; nametemplate=%s.html -text/plain; ~/.config/mutt/tiny.pl %s %{charset} 't' ; copiousoutput ; nametemplate=%s.html +text/html; ~/.config/mutt/tiny.pl %s %{charset} ; copiousoutput ; nametemplate=%s.html +text/plain; ~/.config/mutt/tiny.pl %s %{charset} 't' ; copiousoutput ; nametemplate=%s.html diff --git a/mutt/muttrc b/mutt/muttrc index 8044f21..e2eb524 100644 --- a/mutt/muttrc +++ b/mutt/muttrc @@ -2,11 +2,10 @@ set realname = "Johannes Löthberg" set from = "johannes@kyriasis.com" set envelope_from # which from? -set sig_dashes # dashes before sig set edit_headers # show headers when composing set fast_reply # skip to compose when replying set fcc_attach # save attachments with the body -unset mime_forward # forward attachments as part of body +set mime_forward # do not forward attachments as part of body set forward_format = "Fwd: %s" # format of subject when forwarding set forward_decode # decode when forwarding set attribution = "On %d, %n wrote:" # format of quoting header @@ -23,18 +22,18 @@ set mark_old = no set sleep_time = 0 # no delay when opening a maildir! set mbox_type = Maildir -set folder = "~/.mail/kyriasis" -set trash = "~/.mail/kyriasis/Trash" +set folder = "~/.mail" +set trash = "~/.mail/Trash" set header_cache = ~/.config/mutt/cache/headers # where to store headers set message_cachedir = ~/.config/mutt/cache/ # where to store bodies set certificate_file = ~/.config/mutt/certificates # where to store certs set mailcap_path = ~/.config/mutt/mailcap # entries for filetypes set tmpdir = ~/.config/mutt/temp # where to keep temp files set signature = ~/.config/mutt/sig # my signature file -set spoolfile = "+INBOX" -set mbox = "+Archives" +set spoolfile = "+Inbox" +set mbox = "+archives" set postponed = "+Drafts" -mailboxes +INBOX +Sent +Drafts +Trash +Archives +arch-dev-public +arch-bugs +Spam +Ham +mailboxes +Inbox +Sent +Drafts +Trash +archives +arch-dev-public +aur-general +arch-bugs +Spam +Ham ## Abook set query_command= "abook --datafile ~/.config/abook/addressbook --mutt-query '%s'" @@ -42,35 +41,27 @@ macro index,pager A "abook --datafile ~/.config/abook/addressbook bind editor complete-query # Sync email -macro index O "offlineimap" "run offlineimap to sync all mail" -macro index o "offlineimap -qf INBOX" "run offlineimap to sync inbox" +#macro index O "offlineimap" "run offlineimap to sync all mail" +#macro index o "offlineimap -qf INBOX" "run offlineimap to sync inbox" -set sendmail = "/usr/bin/msmtp -a kyriasis" +set sendmail = "/usr/bin/msmtp -a theos" set sendmail_wait = 0 set record = +Sent set copy = yes -# Basic Options -------------------------------------- -#set wait_key = no # shut up, mutt -#set timeout = 3 # idle time before scanning -#set mail_check = 0 # minimum time between scans -#unset move # gmail does that -#set delete # don't ask, just do -#unset confirmappend # don't ask, just do! -#set quit # don't ask, just do!! -#unset mark_old # read/new is good enough for me -set beep_new # bell on new mails -unset pipe_decode # strip headers and eval mimes when piping +unset confirmappend # don't ask, just do! +set quit # don't ask, just do!! +unset mark_old # read/new is good enough for me +unset pipe_decode # strip headers and eval mimes when piping set thorough_search # strip headers and eval mimes before searching - # Status Bar ----------------------------------------- set status_chars = " *%A" set status_format = "───[ Folder: %f ]───[%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]───%>─%?p?( %p postponed )?───" # Header Options ------------------------------------- -#ignore * # ignore all headers -#unignore from: to: cc: date: subject: # show only these +ignore * # ignore all headers +unignore from: to: cc: date: subject: delivered-to: In-Reply-To: Message-ID: # show only these unignore X-Spambayes-Classification: X-Spambayes-Trained: #unhdr_order * # some distros order things by default #hdr_order from: to: cc: date: subject: # and in this order @@ -100,14 +91,11 @@ alternative_order text/plain text/enriched text/html macro index C "?" "copy a message to a mailbox" macro index M "?" "move a message to a mailbox" -# Index Key Bindings bind index gg first-entry bind index G last-entry - bind index R group-reply bind index S sync-mailbox bind index collapse-thread -bind index B bounce-message # Pager Key Bindings --------------------------------- bind pager k previous-line @@ -116,8 +104,8 @@ bind pager gg top bind pager G bottom bind pager R group-reply -# Move message to Archives -macro index,pager a "s=Archives" +# Move message to archives +macro index,pager a "=archives" # View attachments properly. bind attach view-mailcap @@ -127,13 +115,28 @@ bind compose P postpone-message bind index P recall-message source ~/.config/mutt/gpg.rc -set pgp_timeout = 3600 # how long to cache the pass-phrase set crypt_autosign = yes -set crypt_replyencrypt = yes +set crypt_replyencrypt=no +set crypt_verify_sig = yes set pgp_sign_as = 3A9D0BB5 set pgp_use_gpg_agent = yes set crypt_use_pka = yes +set crypt_use_gpgme = yes source ~/.config/mutt/themes/comidia subscribe arch-dev-public@archlinux.org +subscribe aur-general@archlinux.org + +# sidebar +#set sidebar_width = 20 +#set sidebar_visible = no +#color sidebar_new yellow default +# sidebar bindings +#bind index sidebar-prev # got to previous folder in sidebar +#bind index sidebar-next # got to next folder in sidebar +#bind index sidebar-open # open selected folder from sidebar +# sidebar toggle +#macro index ~ 'toggle sidebar_visible' +# +set nm_default_uri = "notmuch:///home/kyrias/.mail" diff --git a/vim/ftplugin/mail.vim b/vim/ftplugin/mail.vim index 7b38173..49a1b8e 100644 --- a/vim/ftplugin/mail.vim +++ b/vim/ftplugin/mail.vim @@ -1,2 +1,18 @@ -set tw=78 -set fo+=aw +set formatoptions=w + +" * to re-format the current paragraph correctly +" * to format a line which is too long, and go to the next line +" * to merge the previous line with the current one, with a correct +" formatting (sometimes useful associated with ) +" +" These keys might be used both in command mode and edit mode. +" +" might be smarter to use with the Mail_Del_Empty_Quoted() function +" defined below + +nmap gqap +nmap gqqj +nmap kgqj +map! gqapi +map! gqqji +map! kgqji diff --git a/vim/vimrc b/vim/vimrc index 51f0672..5e2dac8 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -31,12 +31,13 @@ colorscheme Darkcustomside " Smart Tabs (http://www.emacswiki.org/emacs/SmartTabs) NeoBundle 'gustavo-hms/vim-smart-tabs' +NeoBundle 'rust' + syntax on filetype plugin indent on set autoindent " always set autoindenting on set copyindent " copy the previous indentation on autoindenting set number " always show line numbers -set showmatch " set show matching parenthesis set smartcase " ignore case if search pattern is all lowercase, " case-sensitive otherwise set hlsearch " highlight search terms @@ -99,3 +100,5 @@ autocmd BufWinEnter * match ExtraWhitespace /\s\+$/ autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@" perl.highmon.output = "bar" perl.highmon.short_names = "on" perl.isgd.auto = "on" -perl.isgd.auto_min_length = "40" +perl.isgd.auto_min_length = "90" perl.isgd.color = "white" perl.listsort.max_size = "100" perl.mplex.away_msg = "Detached head" @@ -67,10 +73,6 @@ perl.multiline.paste_lock = "1" perl.multiline.send_empty = "on" perl.multiline.tab = "──▶▏" perl.multiline.weechat_paste_fix = "on" -perl.notify_send.command = "notify-send $type: $name" -perl.notify_send.ignore_nicks = "" -perl.notify_send.wait_highlight = "60" -perl.notify_send.wait_pm = "180" perl.stalker.additional_join_info = "off" perl.stalker.db_name = "%h/nicks.db" perl.stalker.debug = "off" @@ -78,7 +80,7 @@ perl.stalker.flood_max_nicks = "20" perl.stalker.flood_timer = "10" perl.stalker.guest_host_regex = "^webchat" perl.stalker.guest_nick_regex = "^(guest|weebot|Floodbot|ChanServ).*" -perl.stalker.ignore_guest_hosts = "off" +perl.stalker.ignore_guest_hosts = "on" perl.stalker.ignore_guest_nicks = "on" perl.stalker.ignore_nickchange = "off" perl.stalker.ignore_whois = "off" @@ -105,20 +107,6 @@ python.announce_url_title.suffix = "" python.announce_url_title.title_max_length = "80" python.announce_url_title.url_ignore = "" python.announce_url_title.user_agent = "WeeChat/%(version)s (http://www.weechat.org)" -python.anotify.icon = "/usr/share/pixmaps/weechat.xpm" -python.anotify.show_channel_topic = "on" -python.anotify.show_dcc = "on" -python.anotify.show_highlighted_message = "on" -python.anotify.show_invite_message = "on" -python.anotify.show_notice_message = "off" -python.anotify.show_private_action_message = "on" -python.anotify.show_private_message = "on" -python.anotify.show_public_action_message = "off" -python.anotify.show_public_message = "off" -python.anotify.show_server = "on" -python.anotify.show_upgrade_ended = "on" -python.anotify.sticky = "off" -python.anotify.sticky_away = "on" python.chanop.autodeop = "on" python.chanop.autodeop_delay = "60" python.chanop.default_banmask = "host" @@ -128,8 +116,7 @@ python.chanop.enable_multi_kick = "off" python.chanop.enable_remove = "off" python.chanop.kick_reason = "" python.chanop.op_command = "/msg chanserv op $channel $nick" -python.chanop.watchlist.foonetic = "#0" -python.chanop.watchlist.freenode = "#kyriasis,##archlinux-botabuse,#archlinux,#archlinux-offtopic" +python.chanop.watchlist.freenode = "##archlinux-botabuse,#archlinux-offtopic,#kyriasis,#archlinux" python.check_license = "on" python.colorize_nicks.blacklist_channels = "" python.colorize_nicks.blacklist_nicks = "so,root" @@ -153,60 +140,24 @@ python.listbuffer.modes_min_width = "8" python.listbuffer.sort_inverted = "on" python.listbuffer.sort_order = "users" python.listbuffer.users_min_width = "8" -python.lnotify.show_highlight = "on" -python.lnotify.show_icon = "weechat" -python.lnotify.show_priv_msg = "on" +python.notify.icon = "/usr/share/pixmaps/weechat.xpm" +python.notify.ignore_nicks_startwith = "*" +python.notify.nick_separator = ": " +python.notify.notify_when_away = "off" +python.notify.show_hilights = "on" +python.notify.show_priv_msg = "on" +python.notify.smart_notification = "off" +python.notify.urgency = "normal" python.tinyurl.debug = "off" python.tinyurl.printall = "on" python.tinyurl.service = "tinyurl" python.tinyurl.urllength = "30" python.title.short_name = "on" python.title.title_priority = "2" -python.urlserver.buffer_short_name = "off" -python.urlserver.color = "darkgray" -python.urlserver.color_in_msg = "" -python.urlserver.debug = "off" -python.urlserver.display_urls = "on" -python.urlserver.display_urls_in_msg = "off" -python.urlserver.http_allowed_ips = "" -python.urlserver.http_auth = "" -python.urlserver.http_autostart = "on" -python.urlserver.http_bg_color = "#f4f4f4" -python.urlserver.http_css_url = "" -python.urlserver.http_embed_image = "off" -python.urlserver.http_embed_youtube = "off" -python.urlserver.http_embed_youtube_size = "480*350" -python.urlserver.http_fg_color = "#000" -python.urlserver.http_hostname = "" -python.urlserver.http_hostname_display = "" -python.urlserver.http_port = "" -python.urlserver.http_port_display = "" -python.urlserver.http_prefix_suffix = " " -python.urlserver.http_scheme_display = "http" -python.urlserver.http_time_format = "%d/%m/%y %H:%M:%S" -python.urlserver.http_title = "WeeChat URLs" -python.urlserver.http_url_prefix = "" -python.urlserver.msg_ignore_buffers = "core.weechat,python.grep" -python.urlserver.msg_ignore_dup_urls = "off" -python.urlserver.msg_ignore_regex = "" -python.urlserver.msg_ignore_tags = "irc_quit,irc_part,notify_none" -python.urlserver.msg_require_tags = "nick_" -python.urlserver.separators = "[|]" -python.urlserver.url_min_length = "0" -python.urlserver.urls_amount = "100" python.whois_on_query.command = "/whois $nick $nick" python.whois_on_query.self_query = "off" ruby.check_license = "on" tcl.check_license = "on" -tcl.xosdnotify.align = "left bottom" -tcl.xosdnotify.blink = "on" -tcl.xosdnotify.blink_count = "4" -tcl.xosdnotify.blink_interval = "700" -tcl.xosdnotify.color = "#ffff00" -tcl.xosdnotify.encoding = "utf-8" -tcl.xosdnotify.font = "-*-fixed-*-*-*-*-*-200-*-*-*-*-*-*" -tcl.xosdnotify.lines = "1" -tcl.xosdnotify.offset = "16 16" [desc] perl.buddylist.buddy.on.server = "show buddy who is connected to a server, but not visiting the same channel(s) (default: on)" @@ -235,6 +186,12 @@ perl.buddylist.text.color = "color for optional online/away/offline-text in budd perl.buddylist.text.offline = "optional offline text in buddylist (sort method has to be 'status')" perl.buddylist.text.online = "optional online text in buddylist (sort method has to be 'status')" perl.buddylist.use.redirection = "using redirection to get status of buddies (needs weechat >=0.3.4) (default: on)" +perl.colorize_lines.blacklist_buffers = "comma-separated list of channels to be ignored (e.g. freenode.#weechat,*.#python)" +perl.colorize_lines.buffers = "buffer type affected by the script (all/channel/query, default: all)" +perl.colorize_lines.highlight = "apply highlight color to the highlighted lines (off/on/nicks). the latter will limit highlighting to nicknames in option 'nicks'" +perl.colorize_lines.lines = "apply nickname color to the lines (off/on/nicks). the latter will limit highlighting to nicknames in option 'nicks'" +perl.colorize_lines.nicks = "comma-separater list of nicks (e.g. freenode.cat,*.dog) OR file name starting with '/' (e.g. /file.txt). in the latter case, nicknames will get loaded from that file inside weechat folder (e.g. from ~/.weechat/file.txt). nicknames in file are newline-separated (e.g. freenode.dog\n*.cat)" +perl.colorize_lines.own_lines = "apply nickname color to own lines (off/on/only). the latter turns off all other kinds of coloring altogether" perl.isgd.auto = "Shorten all incoming URLs automatically (default: "off")" perl.isgd.auto_min_length = "Only shorten incoming URLs automatically which have this minimum length (default: "1")" perl.isgd.color = "Color used for printing shortened URLs (default: "white")" @@ -251,10 +208,6 @@ perl.multiline.paste_lock = "time-out to detect pastes (disable the weechat buil perl.multiline.send_empty = "set to on to automatically disregard enter key on empty line" perl.multiline.tab = "character(s) which should be displayed instead of Tab key character" perl.multiline.weechat_paste_fix = "disable ctrl-J binding when paste is detected to stop silly weechat sending out pastes without allowing to edit them" -perl.notify_send.command = "system command to be executed ($type, $name, and $message will be interpreted as values) (default: "notify-send $type: $name")" -perl.notify_send.ignore_nicks = "comma-separated list of nicks to ignore (default: "")" -perl.notify_send.wait_highlight = "necessary time delay between highlights (seconds) for command to be executed (default: "60")" -perl.notify_send.wait_pm = "necessary time delay between private messages (seconds) for command to be executed (default: "180")" perl.stalker.additional_join_info = "add a line below the JOIN message that will display alternative nicks (tags: "irc_join", "irc_smart_filter" will be add to additional_join_info). You can use a localvar to drop additional join info for specific buffer(s) "stalker_drop_additional_join_info" (default: off)" perl.stalker.db_name = "file containing the SQLite database where information is recorded. This database is created on loading of stalker if it does not exist. ("%h" will be replaced by WeeChat home, "~/.weechat" by default) (default: %h/nicks.db)" perl.stalker.debug = "Prints debug output to core buffer so you know exactly what is going on. This is far too verbose to be enabled when not actively debugging something. (default: off)" @@ -283,37 +236,5 @@ python.listbuffer.modes_min_width = "The minimum width used for modes in the cha python.listbuffer.sort_inverted = "Invert the sort order for the channel list." python.listbuffer.sort_order = "Last used sort order for the channel list." python.listbuffer.users_min_width = "The minimum width used for the usercount in the channel list. If the usercount has less digits than this amount, the column will be padded with spaces." -python.urlserver.buffer_short_name = "use buffer short name on dedicated buffer (default: "off")" -python.urlserver.color = "color for urls displayed after message (default: "darkgray")" -python.urlserver.color_in_msg = "color for urls displayed inside irc message: it is a number (irc color) between 00 and 15 (see doc for a list of irc colors) (default: "")" -python.urlserver.debug = "print some debug messages (default: "off")" -python.urlserver.display_urls = "display URLs below messages (default: "on")" -python.urlserver.display_urls_in_msg = "add shorten url next to the original url (only in IRC messages) (useful for urlserver behind relay/irc) (default: "off")" -python.urlserver.http_allowed_ips = "regex for IPs allowed to use server (example: "^(123.45.67.89|192.160.*)$") (default: "")" -python.urlserver.http_auth = "login and password (format: "login:password") required to access to page with list of URLs (default: "")" -python.urlserver.http_autostart = "start the built-in HTTP server automatically) (default: "on")" -python.urlserver.http_bg_color = "background color for HTML page (default: "#f4f4f4")" -python.urlserver.http_css_url = "URL of external Cascading Style Sheet to add (BE CAREFUL: the HTTP referer will be sent to site hosting CSS file!) (empty value = use default embedded CSS) (default: "")" -python.urlserver.http_embed_image = "embed images in HTML page (BE CAREFUL: the HTTP referer will be sent to site hosting image!) (default: "off")" -python.urlserver.http_embed_youtube = "embed youtube videos in HTML page (BE CAREFUL: the HTTP referer will be sent to youtube!) (default: "off")" -python.urlserver.http_embed_youtube_size = "size for embedded youtube video, format is "xxx*yyy" (default: "480*350")" -python.urlserver.http_fg_color = "foreground color for HTML page (default: "#000")" -python.urlserver.http_hostname = "force hostname/IP in bind of socket (empty value = auto-detect current hostname) (default: "")" -python.urlserver.http_hostname_display = "display this hostname in shortened URLs (default: "")" -python.urlserver.http_port = "force port for listening (empty value = find a random free port) (default: "")" -python.urlserver.http_port_display = "display this port in shortened URLs. Useful if you forward a different external port to the internal port (default: "")" -python.urlserver.http_prefix_suffix = "suffix displayed between prefix and message in HTML page (default: " ")" -python.urlserver.http_scheme_display = "display this scheme in shortened URLs (default: "http")" -python.urlserver.http_time_format = "time format in the HTML page (default: "%d/%m/%y %H:%M:%S")" -python.urlserver.http_title = "title of the HTML page (default: "WeeChat URLs")" -python.urlserver.http_url_prefix = "prefix to add in URLs to prevent external people to scan your URLs (for example: prefix "xx" will give URL: http://host.com:1234/xx/8) (default: "")" -python.urlserver.msg_ignore_buffers = "comma-separated list (without spaces) of buffers to ignore (full name like "irc.freenode.#weechat") (default: "core.weechat,python.grep")" -python.urlserver.msg_ignore_dup_urls = "ignore duplicated URLs (do not add an URL in list if it is already) (default: "off")" -python.urlserver.msg_ignore_regex = "ignore messages matching this regex (default: "")" -python.urlserver.msg_ignore_tags = "comma-separated list (without spaces) of tags (or beginning of tags) to ignore (for example, use "notify_none" to ignore self messages or "nick_weebot" to ignore messages from nick "weebot") (default: "irc_quit,irc_part,notify_none")" -python.urlserver.msg_require_tags = "comma-separated list (without spaces) of tags (or beginning of tags) required to shorten URLs (for example "nick_" to shorten URLs only in messages from other users) (default: "nick_")" -python.urlserver.separators = "separators for short url list (string with exactly 3 chars) (default: "[|]")" -python.urlserver.url_min_length = "minimum length for an URL to be shortened (0 = shorten all URLs, -1 = detect length based on shorten URL) (default: "0")" -python.urlserver.urls_amount = "number of URLs to keep in memory (and in file when script is not loaded) (default: "100")" python.whois_on_query.command = "the command sent to do the whois ($nick is repladed by nick) (default: "/whois $nick $nick")" python.whois_on_query.self_query = "if on, send whois for self queries (default: "off")" diff --git a/weechat/python/anotify.py b/weechat/python/anotify.py deleted file mode 100644 index 19e2445..0000000 --- a/weechat/python/anotify.py +++ /dev/null @@ -1,470 +0,0 @@ -# -*- coding: utf-8 -*- -# -# anotify.py -# Copyright (c) 2012 magnific0 -# -# based on: -# growl.py -# Copyright (c) 2011 Sorin Ionescu -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - - -SCRIPT_NAME = 'anotify' -SCRIPT_AUTHOR = 'magnific0' -SCRIPT_VERSION = '1.0.0' -SCRIPT_LICENSE = 'MIT' -SCRIPT_DESC = 'Sends libnotify notifications upon events.' - - -# Changelog -# 2012-09-20: v1.0.0 Forked from original and adapted for libnotify. - -# ----------------------------------------------------------------------------- -# Settings -# ----------------------------------------------------------------------------- -SETTINGS = { - 'show_public_message': 'off', - 'show_private_message': 'on', - 'show_public_action_message': 'off', - 'show_private_action_message': 'on', - 'show_notice_message': 'off', - 'show_invite_message': 'on', - 'show_highlighted_message': 'on', - 'show_server': 'on', - 'show_channel_topic': 'on', - 'show_dcc': 'on', - 'show_upgrade_ended': 'on', - 'sticky': 'off', - 'sticky_away': 'on', - 'icon': '/usr/share/pixmaps/weechat.xpm', -} - - -# ----------------------------------------------------------------------------- -# Imports -# ----------------------------------------------------------------------------- -try: - import re - import os - import weechat - import pynotify - IMPORT_OK = True -except ImportError as error: - IMPORT_OK = False - if str(error).find('weechat') != -1: - print('This script must be run under WeeChat.') - print('Get WeeChat at http://www.weechat.org.') - else: - weechat.prnt('', 'anotify: {0}'.format(error)) - -# ----------------------------------------------------------------------------- -# Globals -# ----------------------------------------------------------------------------- -TAGGED_MESSAGES = { - 'public message or action': set(['irc_privmsg', 'notify_message']), - 'private message or action': set(['irc_privmsg', 'notify_private']), - 'notice message': set(['irc_notice', 'notify_private']), - 'invite message': set(['irc_invite', 'notify_highlight']), - 'channel topic': set(['irc_topic', ]), - #'away status': set(['away_info', ]), -} - - -UNTAGGED_MESSAGES = { - 'away status': - re.compile(r'^You ((\w+).){2,3}marked as being away', re.UNICODE), - 'dcc chat request': - re.compile(r'^xfer: incoming chat request from (\w+)', re.UNICODE), - 'dcc chat closed': - re.compile(r'^xfer: chat closed with (\w+)', re.UNICODE), - 'dcc get request': - re.compile( - r'^xfer: incoming file from (\w+) [^:]+: ((?:,\w|[^,])+),', - re.UNICODE), - 'dcc get completed': - re.compile(r'^xfer: file ([^\s]+) received from \w+: OK', re.UNICODE), - 'dcc get failed': - re.compile( - r'^xfer: file ([^\s]+) received from \w+: FAILED', - re.UNICODE), - 'dcc send completed': - re.compile(r'^xfer: file ([^\s]+) sent to \w+: OK', re.UNICODE), - 'dcc send failed': - re.compile(r'^xfer: file ([^\s]+) sent to \w+: FAILED', re.UNICODE), -} - - -DISPATCH_TABLE = { - 'away status': 'set_away_status', - 'public message or action': 'notify_public_message_or_action', - 'private message or action': 'notify_private_message_or_action', - 'notice message': 'notify_notice_message', - 'invite message': 'notify_invite_message', - 'channel topic': 'notify_channel_topic', - 'dcc chat request': 'notify_dcc_chat_request', - 'dcc chat closed': 'notify_dcc_chat_closed', - 'dcc get request': 'notify_dcc_get_request', - 'dcc get completed': 'notify_dcc_get_completed', - 'dcc get failed': 'notify_dcc_get_failed', - 'dcc send completed': 'notify_dcc_send_completed', - 'dcc send failed': 'notify_dcc_send_failed', -} - - -STATE = { - 'icon': None, - 'is_away': False -} - - -# ----------------------------------------------------------------------------- -# Notifiers -# ----------------------------------------------------------------------------- -def cb_irc_server_connected(data, signal, signal_data): - '''Notify when connected to IRC server.''' - if weechat.config_get_plugin('show_server') == 'on': - a_notify( - 'Server', - 'Server Connected', - 'Connected to network {0}.'.format(signal_data)) - return weechat.WEECHAT_RC_OK - - -def cb_irc_server_disconnected(data, signal, signal_data): - '''Notify when disconnected to IRC server.''' - if weechat.config_get_plugin('show_server') == 'on': - a_notify( - 'Server', - 'Server Disconnected', - 'Disconnected from network {0}.'.format(signal_data)) - return weechat.WEECHAT_RC_OK - - -def cb_notify_upgrade_ended(data, signal, signal_data): - '''Notify on end of WeeChat upgrade.''' - if weechat.config_get_plugin('show_upgrade_ended') == 'on': - a_notify( - 'WeeChat', - 'WeeChat Upgraded', - 'WeeChat has been upgraded.') - return weechat.WEECHAT_RC_OK - - -def notify_highlighted_message(prefix, message): - '''Notify on highlighted message.''' - if weechat.config_get_plugin("show_highlighted_message") == "on": - a_notify( - 'Highlight', - 'Highlighted Message', - "{0}: {1}".format(prefix, message), - priority=pynotify.URGENCY_CRITICAL) - - -def notify_public_message_or_action(prefix, message, highlighted): - '''Notify on public message or action.''' - if prefix == ' *': - regex = re.compile(r'^(\w+) (.+)$', re.UNICODE) - match = regex.match(message) - if match: - prefix = match.group(1) - message = match.group(2) - notify_public_action_message(prefix, message, highlighted) - else: - if highlighted: - notify_highlighted_message(prefix, message) - elif weechat.config_get_plugin("show_public_message") == "on": - a_notify( - 'Public', - 'Public Message', - '{0}: {1}'.format(prefix, message)) - - -def notify_private_message_or_action(prefix, message, highlighted): - '''Notify on private message or action.''' - regex = re.compile(r'^CTCP_MESSAGE.+?ACTION (.+)$', re.UNICODE) - match = regex.match(message) - if match: - notify_private_action_message(prefix, match.group(1), highlighted) - else: - if prefix == ' *': - regex = re.compile(r'^(\w+) (.+)$', re.UNICODE) - match = regex.match(message) - if match: - prefix = match.group(1) - message = match.group(2) - notify_private_action_message(prefix, message, highlighted) - else: - if highlighted: - notify_highlighted_message(prefix, message) - elif weechat.config_get_plugin("show_private_message") == "on": - a_notify( - 'Private', - 'Private Message', - '{0}: {1}'.format(prefix, message)) - - -def notify_public_action_message(prefix, message, highlighted): - '''Notify on public action message.''' - if highlighted: - notify_highlighted_message(prefix, message) - elif weechat.config_get_plugin("show_public_action_message") == "on": - a_notify( - 'Action', - 'Public Action Message', - '{0}: {1}'.format(prefix, message), - priority=pynotify.URGENCY_NORMAL) - - -def notify_private_action_message(prefix, message, highlighted): - '''Notify on private action message.''' - if highlighted: - notify_highlighted_message(prefix, message) - elif weechat.config_get_plugin("show_private_action_message") == "on": - a_notify( - 'Action', - 'Private Action Message', - '{0}: {1}'.format(prefix, message), - priority=pynotify.URGENCY_NORMAL) - - -def notify_notice_message(prefix, message, highlighted): - '''Notify on notice message.''' - regex = re.compile(r'^([^\s]*) [^:]*: (.+)$', re.UNICODE) - match = regex.match(message) - if match: - prefix = match.group(1) - message = match.group(2) - if highlighted: - notify_highlighted_message(prefix, message) - elif weechat.config_get_plugin("show_notice_message") == "on": - a_notify( - 'Notice', - 'Notice Message', - '{0}: {1}'.format(prefix, message)) - - -def notify_invite_message(prefix, message, highlighted): - '''Notify on channel invitation message.''' - if weechat.config_get_plugin("show_invite_message") == "on": - regex = re.compile( - r'^You have been invited to ([^\s]+) by ([^\s]+)$', re.UNICODE) - match = regex.match(message) - if match: - channel = match.group(1) - nick = match.group(2) - a_notify( - 'Invite', - 'Channel Invitation', - '{0} has invited you to join {1}.'.format(nick, channel)) - - -def notify_channel_topic(prefix, message, highlighted): - '''Notify on channel topic change.''' - if weechat.config_get_plugin("show_channel_topic") == "on": - regex = re.compile( - r'^\w+ has (?:changed|unset) topic for ([^\s]+)' + - '(?:(?: from "(?:(?:"\w|[^"])+)")? to "((?:"\w|[^"])+)")?', - re.UNICODE) - match = regex.match(message) - if match: - channel = match.group(1) - topic = match.group(2) or '' - a_notify( - 'Channel', - 'Channel Topic', - "{0}: {1}".format(channel, topic)) - - -def notify_dcc_chat_request(match): - '''Notify on DCC chat request.''' - if weechat.config_get_plugin("show_dcc") == "on": - nick = match.group(1) - a_notify( - 'DCC', - 'Direct Chat Request', - '{0} wants to chat directly.'.format(nick)) - - -def notify_dcc_chat_closed(match): - '''Notify on DCC chat termination.''' - if weechat.config_get_plugin("show_dcc") == "on": - nick = match.group(1) - a_notify( - 'DCC', - 'Direct Chat Ended', - 'Direct chat with {0} has ended.'.format(nick)) - - -def notify_dcc_get_request(match): - 'Notify on DCC get request.' - if weechat.config_get_plugin("show_dcc") == "on": - nick = match.group(1) - file_name = match.group(2) - a_notify( - 'DCC', - 'File Transfer Request', - '{0} wants to send you {1}.'.format(nick, file_name)) - - -def notify_dcc_get_completed(match): - 'Notify on DCC get completion.' - if weechat.config_get_plugin("show_dcc") == "on": - file_name = match.group(1) - a_notify('DCC', 'Download Complete', file_name) - - -def notify_dcc_get_failed(match): - 'Notify on DCC get failure.' - if weechat.config_get_plugin("show_dcc") == "on": - file_name = match.group(1) - a_notify('DCC', 'Download Failed', file_name) - - -def notify_dcc_send_completed(match): - 'Notify on DCC send completion.' - if weechat.config_get_plugin("show_dcc") == "on": - file_name = match.group(1) - a_notify('DCC', 'Upload Complete', file_name) - - -def notify_dcc_send_failed(match): - 'Notify on DCC send failure.' - if weechat.config_get_plugin("show_dcc") == "on": - file_name = match.group(1) - a_notify('DCC', 'Upload Failed', file_name) - - -# ----------------------------------------------------------------------------- -# Utility -# ----------------------------------------------------------------------------- -def set_away_status(match): - status = match.group(1) - if status == 'been ': - STATE['is_away'] = True - if status == 'longer ': - STATE['is_away'] = False - - -def cb_process_message( - data, - wbuffer, - date, - tags, - displayed, - highlight, - prefix, - message -): - '''Delegates incoming messages to appropriate handlers.''' - tags = set(tags.split(',')) - functions = globals() - is_public_message = tags.issuperset( - TAGGED_MESSAGES['public message or action']) - buffer_name = weechat.buffer_get_string(wbuffer, 'name') - dcc_buffer_regex = re.compile(r'^irc_dcc\.', re.UNICODE) - dcc_buffer_match = dcc_buffer_regex.match(buffer_name) - highlighted = False - if highlight == "1": - highlighted = True - # Private DCC message identifies itself as public. - if is_public_message and dcc_buffer_match: - notify_private_message_or_action(prefix, message, highlighted) - return weechat.WEECHAT_RC_OK - # Pass identified, untagged message to its designated function. - for key, value in UNTAGGED_MESSAGES.items(): - match = value.match(message) - if match: - functions[DISPATCH_TABLE[key]](match) - return weechat.WEECHAT_RC_OK - # Pass identified, tagged message to its designated function. - for key, value in TAGGED_MESSAGES.items(): - if tags.issuperset(value): - functions[DISPATCH_TABLE[key]](prefix, message, highlighted) - return weechat.WEECHAT_RC_OK - return weechat.WEECHAT_RC_OK - - -def a_notify(notification, title, description, priority=pynotify.URGENCY_LOW): - '''Returns whether notifications should be sticky.''' - is_away = STATE['is_away'] - icon = STATE['icon'] - time_out = 5000 - if weechat.config_get_plugin('sticky') == 'on': - time_out = 0 - if weechat.config_get_plugin('sticky_away') == 'on' and is_away: - time_out = 0 - try: - pynotify.init("wee-notifier") - wn = pynotify.Notification(title, description, icon) - wn.set_urgency(priority) - wn.set_timeout(time_out) - wn.show() - except Exception as error: - weechat.prnt('', 'anotify: {0}'.format(error)) - - -# ----------------------------------------------------------------------------- -# Main -# ----------------------------------------------------------------------------- -def main(): - '''Sets up WeeChat notifications.''' - # Initialize options. - for option, value in SETTINGS.items(): - if not weechat.config_is_set_plugin(option): - weechat.config_set_plugin(option, value) - # Initialize. - name = "WeeChat" - icon = "/usr/share/pixmaps/weechat.xpm" - notifications = [ - 'Public', - 'Private', - 'Action', - 'Notice', - 'Invite', - 'Highlight', - 'Server', - 'Channel', - 'DCC', - 'WeeChat' - ] - STATE['icon'] = icon - # Register hooks. - weechat.hook_signal( - 'irc_server_connected', - 'cb_irc_server_connected', - '') - weechat.hook_signal( - 'irc_server_disconnected', - 'cb_irc_server_disconnected', - '') - weechat.hook_signal('upgrade_ended', 'cb_upgrade_ended', '') - weechat.hook_print('', '', '', 1, 'cb_process_message', '') - - -if __name__ == '__main__' and IMPORT_OK and weechat.register( - SCRIPT_NAME, - SCRIPT_AUTHOR, - SCRIPT_VERSION, - SCRIPT_LICENSE, - SCRIPT_DESC, - '', - '' -): - main() diff --git a/weechat/python/autoload/anotify.py b/weechat/python/autoload/anotify.py deleted file mode 120000 index 1517fef..0000000 --- a/weechat/python/autoload/anotify.py +++ /dev/null @@ -1 +0,0 @@ -../anotify.py \ No newline at end of file diff --git a/weechat/python/autoload/listbuffer.py b/weechat/python/autoload/listbuffer.py deleted file mode 120000 index e7089b2..0000000 --- a/weechat/python/autoload/listbuffer.py +++ /dev/null @@ -1 +0,0 @@ -../listbuffer.py \ No newline at end of file diff --git a/weechat/relay.conf b/weechat/relay.conf index fdc3e30..643f8db 100644 --- a/weechat/relay.conf +++ b/weechat/relay.conf @@ -20,6 +20,7 @@ text_selected = white [network] allowed_ips = "" bind_address = "" +clients_purge_delay = 0 compression_level = 6 ipv6 = on max_clients = 5 diff --git a/weechat/script.conf b/weechat/script.conf index f88e3cb..d674637 100644 --- a/weechat/script.conf +++ b/weechat/script.conf @@ -8,7 +8,7 @@ diff_color = on diff_command = "auto" display_source = on quiet_actions = on -sort = "p,n" +sort = "u,n" translate_description = on use_keys = on diff --git a/weechat/script/plugins.xml.gz b/weechat/script/plugins.xml.gz new file mode 100644 index 0000000..c2cb9b4 Binary files /dev/null and b/weechat/script/plugins.xml.gz differ diff --git a/zsh/.zprofile b/zsh/.zprofile index 6d2e1df..ac634a2 100644 --- a/zsh/.zprofile +++ b/zsh/.zprofile @@ -1,13 +1,13 @@ -export PATH="$HOME"/.local/bin:"$PATH" +export PATH="$HOME/.local/bin":"$PATH" -export XDG_CACHE_HOME="$HOME"/.cache -export XDG_CONFIG_HOME="$HOME"/.config -export XDG_DATA_HOME="$HOME"/.local/share +export XDG_CACHE_HOME="$HOME/.cache" +export XDG_CONFIG_HOME="$HOME/.config" +export XDG_DATA_HOME="$HOME/.local/share" -export MPV_HOME="$XDG_CONFIG_HOME"/mpv -export GNUPGHOME="$XDG_CONFIG_HOME"/gnupg -export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc-2.0 -export XCOMPOSEFILE="$XDG_CONFIG_HOME"/X11/XCompose +export MPV_HOME="$XDG_CONFIG_HOME/mpv" +export GNUPGHOME="$XDG_CONFIG_HOME/gnupg" +export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc-2.0" +export XCOMPOSEFILE="$XDG_CONFIG_HOME/X11/XCompose" export ABSROOT="$HOME/build/abs" @@ -35,8 +35,4 @@ export SUDO_PROMPT=$'\e[31mSUDO\e[m password for \e[34m%p\e[m: ' [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* - -[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx "$HOME"/.config/X11/xinitrc -#envoy -t gpg-agent -#source <(envoy -p) - +[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx "$HOME/.config/X11/xinitrc" -- cgit v1.2.3-70-g09d2