dotfiles

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

commit 12cd97708adc2cbf85ad49cb41e718c84637eb16
parent e600f7a002ba6133641e7e6569276c137d93e974
Author: Hayden Hamilton <hayden@haydenvh.com>
Date:   Tue,  8 Sep 2020 19:42:41 +0100

new lappy

Diffstat:
M.config/alias | 5++---
M.config/git/config | 2+-
M.config/irssi/config | 311++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
M.config/irssi/fctcplist | 1+
M.config/irssi/pipeline.theme | 131+++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
D.config/irssi/randompq.txt | 3---
M.config/irssi/scripts/adv_windowlist.pl | 6+++---
M.config/irssi/scripts/ascii.pl | 2+-
M.config/irssi/scripts/autorun/adv_windowlist.pl | 6+++---
M.config/irssi/scripts/autorun/ascii.pl | 2+-
A.config/irssi/scripts/autorun/escape.pl | 58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
M.config/irssi/scripts/autorun/hilightwin.pl | 1+
M.config/irssi/scripts/autorun/nickcolor.pl | 2+-
A.config/irssi/scripts/autorun/pwp.pl | 109+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.config/irssi/scripts/autorun/randompq.pl | 39---------------------------------------
M.config/irssi/scripts/autorun/tmux-nicklist-portable.pl | 8++++----
M.config/irssi/scripts/nickcolor.pl | 2+-
M.config/irssi/scripts/tmux-nicklist-portable.pl | 8++++----
M.config/irssi/triggers | 7++++---
M.config/neomutt/colours | 18++++++++++++------
M.config/neomutt/mailcap | 4+++-
M.config/neomutt/neomuttrc | 31+++++++++++++++++++++----------
M.config/neomutt/sidebar | 5+++--
M.config/nvim/init.vim | 2++
M.config/nvim/modules/filetype.vim | 15+++++++++------
M.config/nvim/syntax/gph.vim | 38+++++++++++++++++++++++++++++++-------
A.config/nvim/syntax/mail.vim | 115+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.config/nvim/syntax/procmail.vim | 53+++++++++++++++++++++++++++++++++++++++++++++++++++++
M.config/sxhkd/sxhkdrc | 6++++++
M.config/tmux/config | 1+
M.config/zsh/alias.zsh | 5++---
A.config/zsh/functions/art.zsh | 3+++
A.scripts/bin/dmenu/mailselect | 25+++++++++++++++++++++++++
M.scripts/bin/misc/currency | 2+-
M.scripts/bin/misc/gophcheck | 8++++----
A.scripts/bin/misc/hgpg | 11+++++++++++
M.scripts/bin/misc/hlpaste | 2+-
A.scripts/bin/misc/mailaddheader | 11+++++++++++
A.scripts/bin/misc/mkmaildir | 11+++++++++++
A.scripts/bin/misc/mvmailbackup | 3+++
M.scripts/bin/misc/quik | 2+-
M.scripts/bin/misc/slopvid | 2+-
A.scripts/bin/misc/textdisplay | 4++++
M.scripts/bin/misc/urlhand | 2+-
M.scripts/bin/misc/urlhand2 | 2+-
A.scripts/bin/misc/whatdoido | 9+++++++++
M.ssh/config | 2+-
47 files changed, 844 insertions(+), 251 deletions(-)

diff --git a/.config/alias b/.config/alias @@ -6,10 +6,9 @@ ll \ls --color=auto -Flh lla \ls --color=auto -FlAh r \rm rr \rm -rf -m \mv v nvim g \git -c \cp +c \clear f \find xi sudo xbps-install xiu sudo xbps-install -S; sudo xbps-install -yu xbps; sudo xbps-install -yu; sudo xbps-remove -Ooy; rm -rf ~/.cache ~/.mozilla ~/.local/share/webkitgtk ~/.viminfo ~/.wget-hsts ~/.lesshst ~/.sh_history ~/.python_history ~/.*history ~/.*hst* ~/.dbus ~/.w3m ~/.config/vimb/cookies.db; sudo vkpurge rm all @@ -29,7 +28,7 @@ rmst bash ~/.scripts/random/gnulinux.sh vimb \vimb --no-maximize mkconfall mkmailpass; mkalias make \make CC=tcc -nm neomutt ; rm /tmp/mail ; rm /tmp/blocks/mail ; rm /tmp/dwmblocks/mail ; rm /tmp/blocks/mail ; rm /tmp/dwmblocks/mail +nm export ESCDELAY=5 ; neomutt ; rm /tmp/mail ; rm /tmp/blocks/mail ; rm /tmp/dwmblocks/mail ; rm /tmp/blocks/mail ; rm /tmp/dwmblocks/mail maic sudo make install clean homesync rsync --port 22 --delete -azPe 'ssh -p 222' --exclude=general --exclude=.cache --exclude=.local/cache $HOME/ void@192.168.1.20:/home/void/homedir/ tmux \tmux -f $HOME/.config/tmux/config diff --git a/.config/git/config b/.config/git/config @@ -1,7 +1,7 @@ # This is Git's per-user configuration file. [user] name = Hayden Hamilton - email = haydenh@sdf.org + email = hayden@haydenvh.com [blame] date = human diff --git a/.config/irssi/config b/.config/irssi/config @@ -41,7 +41,13 @@ servers = ( use_tls = "yes"; port = "6697"; }, - { address = "genoce.org"; chatnet = "genoce"; port = "6667"; } + { address = "genoce.org"; chatnet = "genoce"; port = "6667"; }, + { + address = "irc.dataswamp.org"; + chatnet = "dataswamp"; + port = "6697"; + use_tls = "yes"; + } ); chatnets = { Rizon = { @@ -51,7 +57,7 @@ chatnets = { }; hlircnet = { type = "IRC"; - autosendcmd = "/oper haydenh !!!; wait 2500; /cycle #users; /cycle #service; /mode #hlircnet +q haydenh; /mode #hlircnet -o haydenh"; + autosendcmd = "/oper haydenh !!!; wait 2500; /cycle #users; /cycle #service;"; }; sdf = { type = "IRC"; autosendcmd = "/mode haydenh -x; wait 2000"; }; efnet = { type = "IRC"; }; @@ -61,7 +67,7 @@ chatnets = { }; darkscience = { type = "IRC"; - autosendcmd = "/exec - -msg NickServ dpass irc.darkscience.net identify; /mode haydenh -x; wait 5000;"; + autosendcmd = "/exec - -msg NickServ dpass irc.darkscience.net identify; /mode haydenh -x; wait 2000;"; }; nebulacentre = { type = "IRC"; }; cyberia = { type = "IRC"; }; @@ -78,6 +84,12 @@ chatnets = { type = "IRC"; autosendcmd = "/mode haydenh -x; wait 2000"; }; + dataswamp = { + type = "IRC"; + autosendcmd = "/mode hhvn -C"; + nick = "hhvn"; + }; + hlircnettor = { type = "IRC"; }; }; aliases = { ATAG = "WINDOW SERVER"; @@ -234,12 +246,11 @@ aliases = { 97 = "WINDOW GOTO 97"; 98 = "WINDOW GOTO 98"; 99 = "WINDOW GOTO 99"; - quit = "/randompq; /quit"; ADDALLCHANNELS = "script exec foreach my $$channel (Irssi::channels()) { Irssi::command(\"channel add -auto $$channel->{name} $$channel->{server}->{tag} $$channel->{key}\") }"; night = "/away -all sleeping"; day = "back"; gone = "away -all somewhere"; - wave = "SAY 0/;SAY /|;SAY / \\\\"; + wave = "/SAY \\ 0/;SAY /|;SAY / \\\\"; admin = "/mode * +a $0"; super = "/mode * +q $0"; desuper = "/mode * -q $0"; @@ -257,7 +268,6 @@ aliases = { zline = "quote ZLINE"; gzline = "quote GZLINE"; bet = "/say I bet $0 hlirccens (imaginary moneys) $1 $2 $3 $4 $5 $6 $7 $8 $9"; - disgust = "/exec - -out head -n 100 < /dev/urandom | tr -d '\\n' | fold -w 20 2>/dev/null | head -n 1"; theme = "/set theme"; retheme = "/set theme default; /set theme $0"; reply = "/msg $, $*"; @@ -274,7 +284,7 @@ aliases = { arep = "/ACMSG $, $*"; AAAA = "SAY \\\\0/;SAY |;SAY / \\\\"; matrix = "SAY I'd like to interject for a moment, what you're referring to as Matrix, is in fact GNU/matrix, or as I've recently taken to calling it, GNU+matrix. Matrix is not an ideology unto itself, but rather another free component of a fully functioning method of thought."; - quickcon = "/connect sdf; /connect darkscience; /connect rizon; /connect unix; /connect efnet; /connect genoce; /connect hlircnet"; + quickcon = "/connect sdf; /connect darkscience; /connect rizon; /connect unix; /connect efnet; /connect genoce; /connect hlircnet; /connect dataswamp; /connect unrealircd; /connect cyberia"; rules = "/quote rules"; mkpasswd = "/quote mkpasswd"; vhost = "/quote vhost"; @@ -285,14 +295,24 @@ aliases = { ircops = "/quote ircops"; module = "/quote module"; marvvin = "/^msg marvvin"; - part = "/randompq; /part"; - disconnect = "/randompq; /disconnect"; ALLLASTLOG = "script exec foreach (Irssi::windows()) {Irssi::command(lastlog -window \\$_->{refnum} $*)\\;}"; TAG = "script exec Irssi::server_find_tag(‘$0′)->command(‘$1-’);"; CONNECTIONUPTIME = "script exec \\$a=`date +%s` – Irssi::active_win->{‘active_server’}->{‘connect_time’}\\; Irssi::print( int(\\$a/3600/24).”d “.int(\\$a/3600%24).”h “. int(\\$a/60%60).”m “. int(\\$a%60).”s”)\\;"; smotd = "/quote smotd"; sadmin = "/quote admin"; - lastlog = "/exec - echo \"$$(tput -T st-256color setaf 13)LASTLOG $*$$(tput -T st-256color sgr0)\" >> ~/.cache/irc/lastlog; /lastlog -file ~/.cache/irc/lastlog $*"; + ping = "/quote ping"; + awl_sbar = "/script load autorun/adv_windowlist; /set awl_viewer off; /format awl_display_nokey %m$$N$n$$H$$C$$S; /format awl_display_key %m$$Q%n$$H$$C$$S; /format awl_display_nokey_active %m$$N%K$$C; /format awl_display_key_active %m$$Q%K$$C; /format awl_display_header %K[%m$$C%K]"; + awl_nosbar = "/script load autorun/adv_windowlist; /set awl_viewer on; /format awl_display_nokey %N $$H$$C$$S %N$$N; /format awl_display_key %N $$H$$C$$S%N %mM-$$Q; /format awl_display_nokey_active %N%K $$C %N$$N; /format awl_display_key_active %N%K $$C %mM-$$Q; /format awl_display_header %1 %Y$$C ($${N}); /format awl_display_nokey_visible %N%K $$C %N$$N; /format awl_display_key_visible %N%K $$C %mM-$$Q"; + sajoin = "/quote sajoin"; + chgident = "/quote chgident"; + shrug = "/SAY . _0_ .; SAY \\ ` | `; SAY \\ \\ \\ |; SAY \\ \\ / \\\\"; + plop = "/SAY | \\ \\ \\ \\ |; SAY |~~-.-|; SAY | 0 \\ .|; SAY |o \\ . |; SAY |_____|"; + ll = "/lastlog"; + llc = "/lastlog -clear"; + quickconn = "/connect nebulacentre; connect sdf; connect unrealircd; connect unix; connect Rizon; connect cyberia; connect genoce; connect darkscience; connect efnet; connect hlircnet"; + "expose-self" = "/mode $N -x"; + rm_awl_sbar = "/sbar modify -disable awl_0; sbar modify -disable awl_1; sbar modify -disable awl_2; sbar modify -disable awl_3"; + decloak = "mode $N -x"; }; statusbar = { items = { @@ -304,12 +324,14 @@ statusbar = { server = "{sb {sbservertag $tag}}"; prompt = "{prompt $[.15]itemname}"; prompt_empty = "{prompt $winname}"; - topic = "{sb1 $topic}"; + topic = "{sb_topic $topic}"; + topicend = "%0 "; vim_cmd_mode = "{sb3 $vim_cmd_mode}"; lag = "{sb Lag: $0-}"; act = "{sb Act: $0-}"; more = "{sb3 {sbmore}}"; end = "%N%K%_───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────"; + inact = "%N%G%_────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────"; none = " "; }; default = { @@ -317,8 +339,9 @@ statusbar = { type = "window"; placement = "bottom"; position = "1"; - visible = "inactive"; - items = { none = { priority = "1"; }; }; + visible = "never"; + items = { inact = { alignment = "left"; priority = "100"; }; }; + disabled = "yes"; }; window = { items = { @@ -329,6 +352,34 @@ statusbar = { lag = { priority = "40"; }; server = { priority = "50"; }; }; + type = "window"; + position = "0"; + visible = "active"; + }; + topic = { + type = "window"; + position = "0"; + visible = "always"; + items = { + topic = { priority = "1"; }; + topicend = { alignment = "right"; }; + }; + }; + awl_3 = { + items = { + barstart = { priority = "100"; }; + awl_3 = { }; + barend = { priority = "100"; alignment = "right"; }; + }; + disabled = "yes"; + }; + awl_2 = { + items = { + barstart = { priority = "100"; }; + awl_2 = { }; + barend = { priority = "100"; alignment = "right"; }; + }; + disabled = "yes"; }; prompt = { items = { @@ -338,6 +389,14 @@ statusbar = { }; position = "100"; }; + awl_0 = { + items = { + barstart = { priority = "100"; }; + awl_0 = { }; + barend = { priority = "100"; alignment = "right"; }; + }; + disabled = "yes"; + }; }; }; settings = { @@ -348,12 +407,14 @@ settings = { recode_transliterate = "no"; timestamp_format = "%H:%M:%S"; hostname = ""; - quit_message = "tweak til you live, tweak til you're free, tweak til you die"; + quit_message = "pain is temporary"; STATUS_OPER = "yes"; resolve_prefer_ipv6 = "no"; awaylog_file = "~/.cache/irc/away.log"; chanmode_expando_strip = "yes"; - server_reconnect_time = "1min"; + server_reconnect_time = "5secs"; + server_connect_timeout = "20secs"; + rawlog_lines = "10000"; }; "fe-text" = { actlist_sort = "refnum"; @@ -375,11 +436,12 @@ settings = { autocreate_query_level = "NONE"; emphasis = "yes"; emphasis_multiword = "yes"; - emphasis_replace = "yes"; + emphasis_replace = "no"; window_default_level = "MSGS PUBLICS NOTICES CTCPS ACTIONS JOINS PARTS QUITS KICKS MODES TOPICS NICKS"; autolog_path = "~/.cache/irc/$tag/$0.log"; autolog_level = "all"; autolog_colors = "yes"; + completion_keep_privates = "50"; }; "perl/core/scripts" = { ascii_figlet_path = "/usr/bin/figlet"; @@ -391,15 +453,15 @@ settings = { awl_block = "25"; awl_sort = "active/server/tag"; trackbar_string = "─"; - trackbar_style = "%K%_"; + trackbar_style = "%g%_"; trackbar_print_timestamp = "no"; uberprompt_load_hook = "/^vm_add"; uberprompt_unload_hook = "/^vm_del"; cmdind_warn_text = "%G%_MSG?"; cmdind_text = "%g%_CMD: "; - tmux_away_window = "[control-panel]"; + tmux_away_window = ""; tmux_away_message = "(set away by a script)"; - neat_colors = "RX4CX6CX5EX3CX2JX1CGcX1ZBX3HX2TX3MX25X4NMX3AX4GX42X6BX51"; + neat_colors = "RX4CX6CX5EX3CX2DX2JX1CGX1UcX1ZBX3HX2TX3MX25X4NX3AX4GX42X63X6BX6HX51"; hilightwin_show_network = "yes"; hilightwin_showprivmsg = "no"; neat_history = "10000000"; @@ -408,14 +470,22 @@ settings = { vim_mode_map_leader = ";"; dim_nicks_ignore_hilights = "no"; awl_maxcolumns = "1"; + awl_viewer = "yes"; + awl_path = "/tmp/_windowlist"; + awl_placement = "bottom"; + ascii_default_font = "small"; + ascii_default_kickreason = "irssi script :)"; + trackbar_ignore_windows = "[control-panel] [hilights]"; + hilightwin_ignore_targets = "#users #service"; }; "irc/core" = { alternate_nick = "hhvn"; ctcp_version_reply = "UNIVERSE v42"; ctcp_userinfo_reply = "gopher://haydenvh.com:73"; - part_message = "tweak til you live, tweak til you're free, tweak til you die"; + part_message = "pain is temporary"; split_line_start = ""; usermode = "+iw"; + join_auto_chans_on_invite = "yes"; }; proxy = { irssiproxy_password = "awDhuK15^"; @@ -428,7 +498,6 @@ logs = { }; keyboard = ( { key = "meta-u"; id = "change_window"; data = "17"; }, { key = "meta-i"; id = "change_window"; data = "18"; }, - { key = "^u"; id = "command"; data = "nicklist scroll +10"; }, { key = "^i"; id = "command"; data = "nicklist scroll -10"; }, { key = "meta-j"; id = "change_window"; data = "27"; }, { key = "meta-k"; id = "change_window"; data = "28"; }, @@ -436,7 +505,7 @@ keyboard = ( { key = "meta-s"; id = "change_window"; data = "22"; }, { key = "meta-b"; id = "change_window"; data = "34"; }, { key = "meta-n"; id = "change_window"; data = "35"; }, - { key = "^Z"; id = "nothing"; data = ""; }, + { key = "^Z"; id = "next_window_item"; data = ""; }, { key = "meta-o"; id = "change_window"; data = "19"; }, { key = "meta-p"; id = "change_window"; data = "20"; }, { key = "meta-a"; id = "change_window"; data = "21"; }, @@ -459,25 +528,61 @@ keyboard = ( { key = "meta-m"; id = "change_window"; data = "36"; }, { key = "meta-,"; id = "change_window"; data = "37"; }, { key = "meta-."; id = "change_window"; data = "38"; }, - { key = "meta-/"; id = "change_window"; data = "39"; } + { key = "meta-/"; id = "change_window"; data = "39"; }, + { key = "^I"; id = "key"; data = "tab"; }, + { key = "^Y"; id = "command"; data = "awl_sbar "; }, + { + key = "^U"; + id = "command"; + data = "script unload adv_windowlist"; + }, + { key = "^T"; id = "command"; data = "awl_nosbar "; }, + { key = "meta-;"; id = "change_window"; data = "40"; }, + { key = "meta-'"; id = "change_window"; data = "41"; }, + { key = "meta-\\"; id = "change_window"; data = "42"; }, + { key = "meta-["; id = "change_window"; data = "43"; }, + { key = "meta-]"; id = "change_window"; data = "44"; }, + { key = "meta-="; id = "change_window"; data = "45"; }, + { key = "meta--"; id = "change_window"; data = "46"; }, + { + key = "^X"; + id = "multi"; + data = "erase_line;insert_text /window server "; + }, + { key = "^D"; id = "multi"; data = "erase_line"; } ); hilights = ( { text = "haydenh"; nick = "yes"; word = "yes"; }, - { text = "hayden"; nick = "yes"; word = "yes"; } + { text = "hayden"; nick = "yes"; word = "yes"; }, + { text = "hhvn"; nick = "yes"; word = "yes"; } ); channels = ( - { name = "#hlircnet"; chatnet = "hlircnet"; autojoin = "yes"; }, + { + name = "#hlircnet"; + chatnet = "hlircnet"; + autojoin = "yes"; + autosendcmd = "WAIT 5000; MODE #hlircnet +q haydenh"; + }, { name = "#GNU/matrix"; chatnet = "hlircnet"; autojoin = "yes"; }, - { name = "#help"; chatnet = "hlircnet"; autojoin = "yes"; }, + { + name = "#help"; + chatnet = "hlircnet"; + autojoin = "yes"; + autosendcmd = "WAIT 5000; MODE #help +q haydenh"; + }, { name = "#gopher"; chatnet = "hlircnet"; autojoin = "yes"; }, - { name = "#vhosts"; chatnet = "hlircnet"; autojoin = "yes"; }, + { + name = "#vhosts"; + chatnet = "hlircnet"; + autojoin = "yes"; + autosendcmd = "WAIT 5000; MODE #vhosts +q haydenh"; + }, { name = "#opers"; chatnet = "hlircnet"; autojoin = "yes"; }, { name = "#users"; chatnet = "hlircnet"; autojoin = "yes"; }, { name = "#service"; chatnet = "hlircnet"; autojoin = "yes"; }, { name = "#cgo"; chatnet = "hlircnet"; autojoin = "yes"; }, { name = "#hlfm"; chatnet = "hlircnet"; autojoin = "yes"; }, { name = "#darkscience"; chatnet = "darkscience"; autojoin = "yes"; }, - { name = "#efnet"; chatnet = "efnet"; autojoin = "yes"; }, { name = "#asciiart"; chatnet = "efnet"; autojoin = "yes"; }, { name = "#unix"; chatnet = "unix"; autojoin = "yes"; }, { name = "#/g/technology"; chatnet = "Rizon"; autojoin = "yes"; }, @@ -496,11 +601,18 @@ channels = ( autojoin = "yes"; }, { name = "#unreal-devel"; chatnet = "unrealircd"; autojoin = "yes"; }, - { name = "#movies"; chatnet = "darkscience"; autojoin = "yes"; }, + { + name = "#movies"; + chatnet = "darkscience"; + autojoin = "yes"; + autosendcmd = "WAIT 5000; JOIN #movies"; + }, { name = "#test"; chatnet = "hlircnet"; autojoin = "yes"; }, - { name = "#bitreich-radio"; chatnet = "freenode"; autojoin = "yes"; }, { name = "#2f30"; chatnet = "cyberia"; autojoin = "yes"; }, - { name = "#cyberia"; chatnet = "cyberia"; autojoin = "yes"; } + { name = "#cyberia"; chatnet = "cyberia"; autojoin = "yes"; }, + { name = "#dataswamp"; chatnet = "dataswamp"; autojoin = "yes"; }, + { name = "#political"; chatnet = "efnet"; autojoin = "yes"; }, + { name = "#LRH"; chatnet = "efnet"; autojoin = "yes"; } ); completions = { hubus = { value = "hub.us.hlircnet."; }; @@ -512,34 +624,33 @@ completions = { aftn = { value = "Afternoon"; }; aft = { value = "Afternoon"; }; }; -ignores = ( { mask = "ARS"; level = "NOTICES"; } ); +ignores = ( + { mask = "ARS"; level = "NOTICES"; }, + { level = "NO_ACT ALL"; channels = ( "#service" ); }, + { level = "NO_ACT ALL"; channels = ( "#users" ); }, + { mask = "[control-panel]"; level = "NO_ACT ALL"; }, + { mask = "[hilights]"; level = "NO_ACT ALL"; }, + { level = "NO_ACT ALL"; servertag = "hlircnettor"; } +); windows = { 1 = { immortal = "yes"; name = "[control-panel]"; level = "CRAP PUBLICS JOINS PARTS QUITS KICKS MODES TOPICS NICKS CLIENTNOTICES CLIENTCRAP CLIENTERRORS"; - sticky = "yes"; }; 2 = { immortal = "yes"; name = "[notices]"; + servertag = "hlircnet"; level = "PUBLICS NOTICES SNOTES ACTIONS JOINS PARTS QUITS KICKS MODES TOPICS WALLOPS INVITES NICKS"; - sticky = "yes"; - parent = "1"; }; 3 = { immortal = "yes"; name = "[msgs]"; + servertag = "hlircnet"; level = "MSGS NOTICES CTCPS ACTIONS KICKS TOPICS NICKS DCC DCCMSGS"; - sticky = "yes"; - parent = "1"; - }; - 4 = { - name = "[hilights]"; - level = "HILIGHTS"; - sticky = "yes"; - parent = "1"; }; + 4 = { name = "[hilights]"; servertag = "hlircnet"; level = "HILIGHTS"; }; 5 = { level = "MSGS PUBLICS NOTICES CTCPS ACTIONS JOINS PARTS QUITS KICKS MODES TOPICS NICKS"; items = ( @@ -667,8 +778,8 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#efnet"; - tag = "efnet"; + name = "#unix"; + tag = "unix"; } ); }; @@ -678,8 +789,8 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#asciiart"; - tag = "efnet"; + name = "#general"; + tag = "nebulacentre"; } ); }; @@ -689,19 +800,19 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#general"; - tag = "nebulacentre"; + name = "#gopher"; + tag = "sdf"; } ); }; 19 = { level = "MSGS PUBLICS NOTICES CTCPS ACTIONS JOINS PARTS QUITS KICKS MODES TOPICS NICKS"; items = ( - { + { type = "CHANNEL"; chat_type = "IRC"; - name = "#darkscience"; - tag = "darkscience"; + name = "#sdf"; + tag = "sdf"; } ); }; @@ -711,8 +822,8 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#unix"; - tag = "unix"; + name = "#helpdesk"; + tag = "sdf"; } ); }; @@ -722,8 +833,8 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#gopher"; - tag = "sdf"; + name = "#/g/technology"; + tag = "Rizon"; } ); }; @@ -733,8 +844,8 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#sdf"; - tag = "sdf"; + name = "#uk"; + tag = "Rizon"; } ); }; @@ -744,8 +855,8 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#helpdesk"; - tag = "sdf"; + name = "#/tech/"; + tag = "Rizon"; } ); }; @@ -755,7 +866,7 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#/g/technology"; + name = "#8chan"; tag = "Rizon"; } ); @@ -763,11 +874,11 @@ windows = { 25 = { level = "MSGS PUBLICS NOTICES CTCPS ACTIONS JOINS PARTS QUITS KICKS MODES TOPICS NICKS"; items = ( - { + { type = "CHANNEL"; chat_type = "IRC"; - name = "#uk"; - tag = "Rizon"; + name = "#books"; + tag = "genoce"; } ); }; @@ -777,8 +888,8 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#/tech/"; - tag = "Rizon"; + name = "#general"; + tag = "genoce"; } ); }; @@ -788,8 +899,8 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#8chan"; - tag = "Rizon"; + name = "#2f30"; + tag = "cyberia"; } ); }; @@ -799,8 +910,8 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#unreal-support"; - tag = "unrealircd"; + name = "#cyberia"; + tag = "cyberia"; } ); }; @@ -810,7 +921,7 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#unreal-devel"; + name = "#unreal-support"; tag = "unrealircd"; } ); @@ -821,8 +932,8 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#books"; - tag = "genoce"; + name = "#unreal-devel"; + tag = "unrealircd"; } ); }; @@ -832,8 +943,8 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#general"; - tag = "genoce"; + name = "#darkscience"; + tag = "darkscience"; } ); }; @@ -847,8 +958,6 @@ windows = { tag = "darkscience"; } ); - sticky = "yes"; - parent = "1"; }; 33 = { level = "MSGS PUBLICS NOTICES CTCPS ACTIONS JOINS PARTS QUITS KICKS MODES TOPICS NICKS"; @@ -856,12 +965,10 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#2f30"; - tag = "cyberia"; + name = "#dataswamp"; + tag = "dataswamp"; } ); - sticky = "yes"; - parent = "1"; }; 34 = { level = "MSGS PUBLICS NOTICES CTCPS ACTIONS JOINS PARTS QUITS KICKS MODES TOPICS NICKS"; @@ -869,19 +976,45 @@ windows = { { type = "CHANNEL"; chat_type = "IRC"; - name = "#cyberia"; - tag = "cyberia"; + name = "#asciiart"; + tag = "efnet"; + } + ); + }; + 35 = { + level = "MSGS PUBLICS NOTICES CTCPS ACTIONS JOINS PARTS QUITS KICKS MODES TOPICS NICKS"; + items = ( + { + type = "CHANNEL"; + chat_type = "IRC"; + name = "#political"; + tag = "efnet"; + } + ); + }; + 36 = { + level = "MSGS PUBLICS NOTICES CTCPS ACTIONS JOINS PARTS QUITS KICKS MODES TOPICS NICKS"; + items = ( + { + type = "CHANNEL"; + chat_type = "IRC"; + name = "#LRH"; + tag = "efnet"; } ); - sticky = "yes"; - parent = "1"; }; }; mainwindows = { - 1 = { - first_line = "1"; - lines = "52"; + 10 = { + first_line = "10"; + lines = "43"; + first_column = "0"; + columns = "161"; + }; + 4 = { + first_line = "0"; + lines = "10"; first_column = "0"; - columns = "175"; + columns = "161"; }; }; diff --git a/.config/irssi/fctcplist b/.config/irssi/fctcplist @@ -6,3 +6,4 @@ away I dunno - might be away, might not be... you know, these aren't programmabl clientinfo PING VERSION TIME CLIENTINFO USERINFO WHOAMI ADVERT AWAY ping ~1958345676742784768726452647 whoami Why would I know? +fuckoff no you diff --git a/.config/irssi/pipeline.theme b/.config/irssi/pipeline.theme @@ -6,7 +6,7 @@ # Created by: Hayden Hamilton <hayden@haydenvh.com> # License: wtfpl -replaces = { "/[]=" = "%K$*%n"; "*@+." = "%B$*%n"; }; +replaces = { "/[]=" = "%K$*%n"; "*@+." = "%W$*%n"; }; #replaces = { "!@+" = "%r$*%n"; }; info_eol = "false"; @@ -46,7 +46,7 @@ abstracts = { ansctcp = "$0$1%K %_A%_%N%_ "; # msgs - ownmsgnick = "{msgnick $0 $1-}%W"; + ownmsgnick = "{msgnick $0 $1-}"; pubmsgnick = "{msgnick $0 $1}"; pubmsgmenick = "{himsg $0 $1}"; ownprivmsgnick = "{msgnick $*}"; @@ -64,7 +64,7 @@ abstracts = { ownaction_target = "$0%K--->$1{action_nsp $0}"; # notices - ownnotice = "{nticenick $0%K--->$1}%W$2}"; + ownnotice = "{nticenick $0%K--->$1}$2}"; notice = " {nticenick {nick $*}}%N"; servernotice = "%w!$*%n "; @@ -78,34 +78,35 @@ abstracts = { # netsplits netsplit = "%GSplit: %N$0 %R<-> $1 %N%_Quits:%_ {nick $2} ($3 more)"; - netjoin = "%BSplit over: %N%_joins:%_ {nick $0} ($1 more)"; + netjoin = "%WSplit over: %N%_joins:%_ {nick $0} ($1 more)"; # /names list - names_nick = "[%_$0%_%w$1-%n] "; + names_nick = "%_$0%_$1 "; names_users = "%b$*%n:"; - names_channel = "%B$*%n"; + names_channel = "%W$*%n"; # I don't use dcc, someone else can figure this stuff out dccownmsg = "{ownprivmsg $*}"; dccownnick = "{ownnick $*}"; dccownaction = "{action_core $*}"; dccownaction_target = "{action_core $0}%K:%b$1%n "; - dccmsg = "[%B$1-%K(%b$0%K)%n] "; - dccquerynick = "%B$*%n"; + dccmsg = "[%W$1-%K(%b$0%K)%n] "; + dccquerynick = "%W$*%n"; dccaction = "%W (*dcc*) $*%n %|"; # statusbar - sb_background = "%0"; - isbstart = "%0"; + sb_background = "%N"; + isbstart = "%N"; opered = " (ircop: $*)"; sb = "%N%K%_──[%_%G$*%K]"; sb2 = "%m[%G$*%m]%n"; sb3 = "%N%K%_[%_%G$*%K]"; + sb_awl = "$*"; sbmode = " %b+%G$*"; sbaway = " (away: $*)"; sbservertag = "$0"; sbmore = "%_+more+%_"; - sblag = "{sb L: %B$*}"; + sblag = "{sb L: %W$*}"; sbmail = "{sb M: $*}"; sbact_det = " D: $*"; sb_usercount = "{sb %W$0%n $1-}"; @@ -120,32 +121,47 @@ abstracts = { sb_act_sep = "%c$*"; sb_act_text = "%c$*"; sb_act_msg = "%W$*"; + sb_topic = "%0$* "; + + # other + whois_begin = ".-WHOIS----.--------------------------------->"; + whois = "| $[8]0 : $1-"; + whowas_begin = "|-WHOWAS---:-------------------------->"; + who___end = "'----------'-------------------------->"; }; # %r%n%_$0%_$1%K |%n %| formats = { "fe-common/core" = { + # excuse the ugly as hell formats here, blame nm2.pl pubmsg = "$nickalign{pubmsgnick %G$2 {pubnick $0}$nicktrunc}$1"; - join = "%_%B+{pubnick %_$0%_} $1"; - part = "%_%G-%_{pubnick %_$0%_} $1 {reason $3}"; + join = "%_%W+{pubnick %_$0%_}!$1"; + part = "%_%G-%_{pubnick %_$0%_}!$1 {reason $3}"; kick = "%_%G!%_$0 %n%wby {pubnick $2}, {reason $3}, from $1"; - quit = "%_%G<%_{pubnick %_$0%_} $1 {reason $2}"; - nick_changed = "{pubnick $0}%w %_-->%_ $1"; - endofnames = "{channel $0}: {hilight $1} nicks ({comment @/{hilight $2} +/{hilight $3} -/{hilight $4}})"; + quit = "%_%G<%_{pubnick %_$0%_}!$1 {reason $2}"; own_msg = "$nickalign{ownmsgnick %G$2 {ownnick $0}$nicktrunc}$1"; own_msg_channel = "$nickalign{ownmsgnick %G$3 {ownnick $0}$nicktrunc{msgchannel $1}}$2"; pubmsg_me = "$nickalign{pubmsgmenick %G$2 {pubnick $0}$nicktrunc}$1"; pubmsg_me_channel = "$nickalign{pubmsgmenick %G$3 {pubnick $0}$nicktrunc{msgchannel $1}}$2"; pubmsg_hilight = "$nickalign{pubmsgmenick %G$3 {pubnick $1}$nicktrunc}$2"; pubmsg_channel = "$nickalign{pubmsgnick %G$4 {pubnick $0}$nicktrunc{msgchannel $1}}$2"; - chanmode_change = " {$channel $1} {nick $2} %nsets mode %B{$mode $1}"; - channel_mode = " {$channel $0} {nick $2} %nsets mode %B{$mode $1}"; + + chanmode_change = " {$channel $1} {nick $2} %nsets mode %W{$mode $1}"; + channel_mode = " {$channel $0} {nick $2} %nsets mode %W{$mode $1}"; + nick_changed = "{pubnick $0}%w %_-->%_ $1"; + + # names + endofnames = "{channel $0}: {hilight $1} nicks ({comment @/{hilight $2} +/{hilight $3} -/{hilight $4}})"; + + # random timestamp = "%G%%H:%%M%b "; line_start = "{line_start}"; line_start_irssi = "{hilight}"; servertag = "[$0] "; daychange = " %_----%_ %%d %%b %%Y %_----%_"; talking_with = "You are now talking with {nick $0}"; + + # windows refnum_too_low = "Window number must be greater than 1"; error_server_sticky = "Window's server is sticky and it cannot be changed without -unsticky option"; set_server_sticky = "Window's server set sticky"; @@ -155,11 +171,13 @@ formats = { window_set_immortal = "Window is now immortal"; window_unset_immortal = "Window isn't immortal anymore"; window_immortal_error = "Window is immortal, if you really want to close it, say /WINDOW IMMORTAL OFF"; - windowlist_header = "%#Ref Name Active item Server Level%:-----------------------------------------------------------------------"; - windowlist_line = "%#$[4]0 | %|$[20]1 | $[15]2 | $[15]3 | $4"; - windowlist_footer = ""; windows_layout_saved = "Layout of windows is now remembered"; windows_layout_reset = "Layout of windows reset to defaults"; + + windowlist_header = ",-Ref---Name-------------------Active item-------Server------------Level-------------------------------->"; + windowlist_line = "| $[3]0 | %|$[20]1 | $[15]2 | $[15]3 | $4"; + windowlist_footer = "'------------------------------------------------------------------------------------------------>"; + window_info_header = ""; window_info_footer = ""; window_info_refnum = "%#Window : {hilight #$0}"; @@ -178,6 +196,8 @@ formats = { window_info_items_header = "%#Items : {hilight Name Server tag}"; window_info_item = "%# $[7]0: $[!30]1 $2"; window_info_items_footer = ""; + + # servers looking_up = "Looking up {server $0}"; connecting = "Connecting to {server $0} [$1] port {hilight $2}"; reconnecting = "Reconnecting to {server $0} [$1] port {hilight $2} - use /RMRECONNS to abort"; @@ -190,14 +210,16 @@ formats = { server_changed = "Changed to {hilight $2} server {server $1}"; unknown_server_tag = "Unknown server tag {server $0}"; no_connected_servers = "Not connected to any servers"; - server_list = "{server $[15]0} $[25]1 $[6]2 $[15]3"; - server_lookup_list = "{server $[15]0} $[25]1 $[6]2 $[15]3 (connecting...)"; - server_reconnect_list = "{server $[20]0} $[25]1 $[6]2 $[15]3 ($5 left before reconnecting)"; server_reconnect_removed = "Removed reconnection to server {server $0} port {hilight $1}"; server_reconnect_not_found = "Reconnection tag {server $0} not found"; setupserver_added = "Server {server $0} saved"; setupserver_removed = "Server {server $0} removed"; setupserver_not_found = "Server {server $0} not found"; + + server_list = "$[15]0 {server $[25]1} %b$[6]2 $[15]3"; + server_lookup_list = "$[15]0 {server $[25]1} %b$[6]2 $[15]3 (connecting...)"; + server_reconnect_list = "$[20]0 {server $[25]1} %b$[6]2 $[15]3 ($5 left before reconnecting)"; + your_nick = "Your nickname is {nick $0}"; quit_once = "{channel $3} {channick $0} {chanhost $1} has quit {reason $2}"; invite = "{nick $0} invites you to {channel $1}"; @@ -214,7 +236,7 @@ formats = { names_nick_halfop = "{names_nick_halfop $0 $1}"; names_nick_voice = "{names_nick_voice $0 $1}"; names_nick = "{names_nick $0 $1}"; - chanlist_header = "%#You are on the following channels:"; + chanlist_header = ""; chanlist_line = "%#{channel $[-10]0} %|+$1 ($2): $3"; chansetup_not_found = "Channel {channel $0} not found"; chansetup_added = "Channel {channel $0} saved"; @@ -238,12 +260,17 @@ formats = { hilight_footer = ""; hilight_not_found = "Highlight not found: $0"; hilight_removed = "Highlight removed: $0"; + + # alias' alias_added = "Alias $0 added"; alias_removed = "Alias $0 removed"; alias_not_found = "No such alias: $0"; - aliaslist_header = "%#Alias Action%:-----------------------------"; - aliaslist_line = "%#$[10]0 | $1"; - aliaslist_footer = ""; + + aliaslist_header = ",-Alias------,-Action------------------------------>"; + aliaslist_line = "| $[10]0 | $1"; + aliaslist_footer = "'------------'------------------------------>"; + + # logging log_opened = "Log file {hilight $0} opened"; log_closed = "Log file {hilight $0} closed"; log_create_failed = "Couldn't create log file {hilight $0}: $1"; @@ -251,9 +278,10 @@ formats = { log_not_open = "Log file {hilight $0} not open"; log_started = "Started logging to file {hilight $0}"; log_stopped = "Stopped logging to file {hilight $0}"; - log_list_header = "%#Path | Chan & net | Levels%:--------------------------------------------------------------------------------------------------------"; - log_list = "%#$[50]1 | $[32]2 | $3$4$5"; - log_list_footer = ""; + log_list_header = ",-Path-----------------------------------------------,----Chan & net-----------------------,----Levels-------------->"; + log_list = "| $[50]1 | $[32]2 | $3$4$5"; + log_list_footer = "'------------------------------------------------------------------------------------------------------------>"; + windowlog_file = "Window LOGFILE set to $0"; windowlog_file_logging = "Can't change window's logfile while log is on"; no_away_msgs = "No new messages in awaylog"; @@ -354,14 +382,14 @@ formats = { "fe-common/text" = { window_info_sticky = "%# Sticky : $0"; }; "fe-common/irc" = { chanmode_change = " {nick $2} %nsets mode %b{$mode $1} %non {$channelhilight $0}"; - whois = "%:{whois nick %|{hilight $0}}%:{whois host %|$2}%:{whois ident $|$1}%:{whois comment %|$3}"; + whois = "{whois_begin}%:{whois nick %|{hilight $0}}%:{whois host %|$2}%:{whois ident $|$1}%:{whois comment %|$3}"; server_chanmode_change = "%RServermode: {mode $1} by {server $2}"; whois_server = "{whois server %|$1 ({comment $2})}"; own_action = "$nickalign{action_core {ownnick $0$nicktrunc}}$1"; action_public = "$nickalign{action_core {pubnick $0$nicktrunc}}$1"; away = "%_%G----->"; - unaway = "%_%B<-----"; - end_of_whois = "%|"; + unaway = "%_%W<-----"; + end_of_whois = "{who___end}"; whois_idle_signon = "{whois idle %|$1 days $2 hours $3 mins $4 secs}%:{whois signon %|$5}"; whois_oper = "{whois oper %|$1}"; whois_realhost = "{whois realhost %|$1-}"; @@ -428,13 +456,13 @@ formats = { nick_in_use = "Nick {nick $0} is already in use"; nick_unavailable = "Nick {nick $0} is temporarily unavailable"; your_nick_owned = "Your nick is owned by {nick $3} {comment $1@$2}"; - whowas = "%: %_WHOWAS%_%:{whois nick %|{hilight $0}}%:{whois host %|$2}%:{whois ident $|$1}%:{whois comment %|$3}"; + whowas = "{whowas_begin}%:{whois nick %|{hilight $0}}%:{whois host %|$2}%:{whois ident $|$1}%:{whois comment %|$3}"; whois_idle = "{whois idle %|$1 days $2 hours $3 mins $4 secs}"; whois_modes = "{whois modes $1}"; whois_usermode = "{whois usermode $1}"; whois_channels = "{whois channels %|$1}"; whois_away = "{whois away %|$1}"; - end_of_whowas = "%|"; + end_of_whowas = "{who___end}"; who = "%#{channelhilight $[-10]0} %|{nick $[!9]1} $[!3]2 $[!2]3 $4@$5 {comment {hilight $6}}"; end_of_who = "End of /WHO list"; own_notice = "{ownnotice {ownnick $N} {pubnick $0}}$1"; @@ -547,9 +575,9 @@ formats = { script_loaded = "Loaded script {hilight $0}"; script_unloaded = "Unloaded script {hilight $0}"; no_scripts_loaded = "No scripts are loaded"; - script_list_header = "%#Loaded scripts:"; - script_list_line = "%#$[!15]0 $1"; - script_list_footer = ""; + script_list_header = ",-----------------Name-,-Location----------------------------------------->"; + script_list_line = "| $[-20]0 | $1"; + script_list_footer = "'----------------------'------------------------------------------->"; script_error = "{error Error in script {hilight $0}:}"; }; "Irssi::Script::ascii" = { @@ -581,12 +609,14 @@ formats = { trigger_loaded = "Triggers loaded from $0"; }; "fe-text" = { + # lastlog lastlog_too_long = "/LASTLOG would print $0 lines. If you really want to print all these lines use -force option."; - lastlog_count = "{hilight Lastlog}: $0 lines"; - lastlog_start = "{hilight Lastlog}:"; - lastlog_end = "{hilight End of Lastlog}"; + lastlog_count = ""; + lastlog_start = " %b---------LASTLOG--------------------------------->"; + lastlog_end = " %b--END OF LASTLOG-------------------------->"; lastlog_separator = "--"; lastlog_date = "%%F "; + refnum_not_found = "Window number $0 not found"; window_too_small = "Not enough room to resize this window"; cant_hide_last = "You can't hide the last window"; @@ -600,9 +630,12 @@ formats = { window_scroll = "Window scroll mode is now $0"; window_scroll_unknown = "Unknown scroll mode $0, must be ON, OFF or DEFAULT"; window_hidelevel = "Window hidden level is now $0"; - statusbar_list_header = "%#Name Type Placement Position Visible"; - statusbar_list_footer = ""; - statusbar_list = "%#$[30]0 $[6]1 $[9]2 $[8]3 $4"; + + # statusbar + statusbar_list_header = ",-Name---------------------------,-Type---,-Placement-,-Position-,-Visible-------------->"; + statusbar_list = "| $[30]0 | $[6]1 | $[9]2 | $[8]3 | $4"; + statusbar_list_footer = "'--------------------------------'--------'-----------'----------'--------------->"; + statusbar_info_name = "%#Statusbar: {hilight $0}"; statusbar_info_type = "%#Type : $0"; statusbar_info_placement = "%#Placement: $0"; @@ -617,8 +650,8 @@ formats = { statusbar_unknown_type = "Statusbar type must be 'window' or 'root'"; statusbar_unknown_placement = "Statusbar placement must be 'top' or 'bottom'"; statusbar_unknown_visibility = "Statusbar visibility must be 'always', 'active' or 'inactive'"; - paste_warning = "Pasting $0 lines to $1. Press Ctrl-K if you wish to do this or Ctrl-C to cancel."; - paste_prompt = "Hit Ctrl-K to paste, Ctrl-C to abort?"; + paste_prompt = "%GPasting: %g{hilight ^Cancel ^Kontinue}"; + paste_warning = ""; irssi_banner = " "; welcome_firsttime = " "; welcome_init_settings = "The following settings were initialized"; @@ -656,9 +689,9 @@ formats = { "Irssi::Script::nm2" = { neat_style = " , p , , , , , t , , ,"; neat_action_style = " , p , , t , "; - neat_pad_char = "%g "; + neat_pad_char = " "; neat_truncate_char = "%m+"; neat_notruncate_char = ""; - neat_custom_modes = "&%B&%n | @%g@%n | +%y+%n"; + neat_custom_modes = "&%W&%n | @%g@%n | +%y+%n"; }; }; diff --git a/.config/irssi/randompq.txt b/.config/irssi/randompq.txt @@ -1,3 +0,0 @@ - -pain is temporary -tweak til you live, tweak til you're free, tweak til you die diff --git a/.config/irssi/scripts/adv_windowlist.pl b/.config/irssi/scripts/adv_windowlist.pl @@ -438,7 +438,7 @@ sub syncLines { $title = eval qq{"$title"}; $title .= ' '; } - my $pat = defined $text ? "{sb $title\$*}" : '{sb }'; + my $pat = defined $text ? "{sb_awl $title\$*}" : '{sb_awl }'; $text //= ''; $item->default_handler($get_size_only, $pat, $text, 0); }; @@ -470,7 +470,7 @@ sub awl { my ($line, $item, $get_size_only) = @_; my $text = $actString[$line]; - my $pat = defined $text ? '{sb $*}' : '{sb }'; + my $pat = defined $text ? '{sb_awl $*}' : '{sb_awl }'; $text //= ''; $item->default_handler($get_size_only, $pat, $text, 0); } @@ -1486,7 +1486,7 @@ return sub { ( lc1459(as_uni($k)) => $v ) } split ' ', $S{detach})); - my @sb_base = split /\177/, sb_format_expand("{sbstart}{sb \177}{sbend}"), 2; + my @sb_base = split /\177/, sb_format_expand("{sbstart}{sb_awl \177}{sbend}"), 2; $sb_base_width_pre = sb_length($sb_base[0]); $sb_base_width_post = max 0, sb_length($sb_base[1])-1; $sb_base_width = $sb_base_width_pre + $sb_base_width_post; diff --git a/.config/irssi/scripts/ascii.pl b/.config/irssi/scripts/ascii.pl @@ -71,7 +71,7 @@ sub find_figlet_path { # int randcolor() sub randcolor { - return $ascii_colors[int(rand(12)+2)]; + return $ascii_colors[int(rand(12)+18)]; } # str colorline($colormode, $text) diff --git a/.config/irssi/scripts/autorun/adv_windowlist.pl b/.config/irssi/scripts/autorun/adv_windowlist.pl @@ -438,7 +438,7 @@ sub syncLines { $title = eval qq{"$title"}; $title .= ' '; } - my $pat = defined $text ? "{sb $title\$*}" : '{sb }'; + my $pat = defined $text ? "{sb_awl $title\$*}" : '{sb_awl }'; $text //= ''; $item->default_handler($get_size_only, $pat, $text, 0); }; @@ -470,7 +470,7 @@ sub awl { my ($line, $item, $get_size_only) = @_; my $text = $actString[$line]; - my $pat = defined $text ? '{sb $*}' : '{sb }'; + my $pat = defined $text ? '{sb_awl $*}' : '{sb_awl }'; $text //= ''; $item->default_handler($get_size_only, $pat, $text, 0); } @@ -1486,7 +1486,7 @@ return sub { ( lc1459(as_uni($k)) => $v ) } split ' ', $S{detach})); - my @sb_base = split /\177/, sb_format_expand("{sbstart}{sb \177}{sbend}"), 2; + my @sb_base = split /\177/, sb_format_expand("{sbstart}{sb_awl \177}{sbend}"), 2; $sb_base_width_pre = sb_length($sb_base[0]); $sb_base_width_post = max 0, sb_length($sb_base[1])-1; $sb_base_width = $sb_base_width_pre + $sb_base_width_post; diff --git a/.config/irssi/scripts/autorun/ascii.pl b/.config/irssi/scripts/autorun/ascii.pl @@ -71,7 +71,7 @@ sub find_figlet_path { # int randcolor() sub randcolor { - return $ascii_colors[int(rand(12)+2)]; + return $ascii_colors[int(rand(12)+18)]; } # str colorline($colormode, $text) diff --git a/.config/irssi/scripts/autorun/escape.pl b/.config/irssi/scripts/autorun/escape.pl @@ -0,0 +1,58 @@ +# Usage: +# Do /escape (or /esc) just like you would use /lastlog +# this then prints the lines, which you can use in /eval. +# see /help lastlog for options +# +# For example: +# <someone> Hey! join #fooX (where X is some char you can't copy-paste) +# then you do /esc #foo +# and you'll get something like 19:50 \x048/<\x04g \x04gsomeone\x04g\x048/>\x04g \x04ehey! join #foo\x12 +# ignore the stuff in the first part of the message, that's irssi's internal color format for the line printed. +# doing /eval join #foo\x12 will make you join the right channel +# /esc -clear makes your scrollback clean again + +use Irssi; +use strict; +use vars qw($VERSION %IRSSI); +$VERSION = '1.0'; +%IRSSI = ( + authors => 'Wouter Coekaerts', + contact => 'wouter@coekaerts.be, coekie@#irssi', + name => 'escape', + description => 'displays lines in your scrollback in escaped form, so you can copy and paste them including colors and special characters', + license => 'GPL v2', + url => 'http://wouter.coekaerts.be/irssi/', +); + +sub escape { + my ($text) = @_; + $text =~ s/(.)/escape_char($1)/eg; + return $text; +} + +sub escape_char { + my ($char) = @_; + my $ord = ord($char); + if ($char eq '\\' || $char eq '$' || $char eq ';') { + return "\\$char"; + } elsif ($ord < 32 || $ord > 126) { + return '\\x' . sprintf("%02x", ord($char)); + } else { + return $char; + } +} + +Irssi::command_bind("escape", sub { + my ($data, $server, $item) = @_; + my $context = $item ? $item : Irssi::active_win; + + Irssi::signal_add_first('print text', 'sig_print_text'); + $context->command("lastlog $data"); + Irssi::signal_remove('print text', 'sig_print_text'); +}); + +sub sig_print_text { + my ($dest, $text, $stripped_text) = @_; + $_[1] = escape($text); + Irssi::signal_continue(@_); +} diff --git a/.config/irssi/scripts/autorun/hilightwin.pl b/.config/irssi/scripts/autorun/hilightwin.pl @@ -61,6 +61,7 @@ sub sig_printtext { (!is_ignored($dest)) ) { my $window = Irssi::window_find_name('[hilights]'); + $text =~ s/^[[:space:]]*/ /; # fix nm2.pl output if ($dest->{level} & MSGLEVEL_PUBLIC) { $text = $dest->{target} . '14]' . $text; diff --git a/.config/irssi/scripts/autorun/nickcolor.pl b/.config/irssi/scripts/autorun/nickcolor.pl @@ -661,7 +661,7 @@ sub exit_save { sub get_nick_color2 { my ($tag, $chan, $nick, $format) = @_; - my $col = colourise_nt($tag.'/'.$chan, $nick, 1); + my $col = colourise_nt('/'.$nick, $nick); $col ? $format ? format_expand('%X'.$col) : $col : '' } diff --git a/.config/irssi/scripts/autorun/pwp.pl b/.config/irssi/scripts/autorun/pwp.pl @@ -0,0 +1,109 @@ +# Keeps a prompt per window. + +# Copyright 2007 Wouter Coekaerts <coekie@irssi.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +use strict; +use Irssi 20070804; +use Irssi::TextUI; + +use vars qw($VERSION %IRSSI); +$VERSION = '1.0'; +%IRSSI = ( + authors => 'Wouter Coekaerts', + contact => 'coekie@irssi.org', + name => 'per_window_prompt', + description => 'Keeps a prompt per window', + license => 'GPLv2 or later', + url => 'http://wouter.coekaerts.be/irssi/', + changed => '04/08/07' +); + +my %prompts; + +my $in_command = 0; +my $win_before_command; +my $win_before_command_deleted; +my $unloading = 0; + +# key to use to identify window +sub winkey { + my ($win) = @_; + return defined($win) ? $win->{'_irssi'} : 0; +} + +sub get_prompt { + return { + text => Irssi::parse_special('$L'), + pos => Irssi::gui_input_get_pos() + }; +} + +sub set_prompt { + my ($prompt) = @_; + if (defined($prompt)) { + Irssi::gui_input_set($prompt->{text}); + Irssi::gui_input_set_pos($prompt->{pos}); + } else { + Irssi::gui_input_set(''); + } +} + +Irssi::signal_add_last 'window changed' => sub { + my ($win, $oldwin)= @_; + if (!$in_command) { + if ($oldwin) { + $prompts{winkey($oldwin)} = get_prompt(); + } + set_prompt($prompts{winkey($win)}); + } +}; + +sub UNLOAD { + $unloading = 1; +} + +# needed when switching windows by command +Irssi::signal_add_first 'gui key pressed' => sub { + my ($key) = @_; + + if ($key == 10 && ! $in_command) { + $win_before_command = winkey(Irssi::active_win); + $win_before_command_deleted = 0; + $in_command = 1; + Irssi::signal_continue(@_); + if ($unloading) { + return; # avoid crash when unloading by command + } + $in_command = 0; + my $win_after_command = winkey(Irssi::active_win); + + if ($win_before_command != $win_after_command) { + if (! $win_before_command_deleted) { + $prompts{$win_before_command} = get_prompt(); + } + set_prompt($prompts{$win_after_command}) + } + } +}; + +Irssi::signal_add_first 'window destroyed' => sub { + my ($win) = @_; + delete $prompts{winkey($win)}; + if ($win_before_command == winkey($win)) { + $win_before_command_deleted = 1; + } +}; diff --git a/.config/irssi/scripts/autorun/randompq.pl b/.config/irssi/scripts/autorun/randompq.pl @@ -1,39 +0,0 @@ -use Irssi; - -# it's recommended you use these alias': -# /alias part /randompq; /part -# /alias quit /randompq; /quit -# /alias disconnect /randompq; /disconnect - -my $file = glob "~/.irssi/randompq.txt"; -use vars qw($VERSION %IRSSI); - -$VERSION = "0.0"; -%IRSSI = ( - authors => "haydenh/hhvn", - contact => "haydenh @ irc.haydenvh.com", - name => "Random part/quit", - description => "Implements the command /randompq that takes a random line from a file and sets it as the part & quit message", - license => "WTFPL", -); - -# heavily inspired by quitrand.pl -sub cmd_randompq { - open(f,"<",$file); - my @contenido = <f>; - close(f); - - my $numlines = 0; - foreach my $nada (@contenido) { - $numlines++; - } - - my $line = int(rand($numlines))+1; - my $msg = $contenido[$line]; - - chop($msg); - Irssi::command('/^set part_message '.$msg); - Irssi::command('/^set quit_message '.$msg); -} - -Irssi::command_bind('randompq', 'cmd_randompq'); diff --git a/.config/irssi/scripts/autorun/tmux-nicklist-portable.pl b/.config/irssi/scripts/autorun/tmux-nicklist-portable.pl @@ -183,13 +183,13 @@ sub reset_nicklist { $colour = "\e[37m" if $nick->{'gone'}; print($fifo "NICK"); if ($nick->{'op'}) { - print($fifo "\e[32m\@$colour".$_real->($nick)."\e[39m"); + print($fifo "\e[92m\@$colour".$_real->($nick)."\e[39m"); } elsif ($nick->{'halfop'}) { - print($fifo "\e[34m%$colour".$_real->($nick)."\e[39m"); + print($fifo "\e[92m%$colour".$_real->($nick)."\e[39m"); } elsif ($nick->{'voice'}) { - print($fifo "\e[33m+$colour".$_real->($nick)."\e[39m"); + print($fifo "\e[92m+$colour".$_real->($nick)."\e[39m"); } elsif ($nick->{'other'}>32) { - print($fifo "\e[31m".(chr $nick->{'other'})."$colour".$_real->($nick)."\e[39m"); + print($fifo "\e[92m".(chr $nick->{'other'})."$colour".$_real->($nick)."\e[39m"); } else { print($fifo " $colour".$_real->($nick)."\e[39m"); } diff --git a/.config/irssi/scripts/nickcolor.pl b/.config/irssi/scripts/nickcolor.pl @@ -661,7 +661,7 @@ sub exit_save { sub get_nick_color2 { my ($tag, $chan, $nick, $format) = @_; - my $col = colourise_nt($tag.'/'.$chan, $nick, 1); + my $col = colourise_nt('/'.$nick, $nick); $col ? $format ? format_expand('%X'.$col) : $col : '' } diff --git a/.config/irssi/scripts/tmux-nicklist-portable.pl b/.config/irssi/scripts/tmux-nicklist-portable.pl @@ -183,13 +183,13 @@ sub reset_nicklist { $colour = "\e[37m" if $nick->{'gone'}; print($fifo "NICK"); if ($nick->{'op'}) { - print($fifo "\e[32m\@$colour".$_real->($nick)."\e[39m"); + print($fifo "\e[92m\@$colour".$_real->($nick)."\e[39m"); } elsif ($nick->{'halfop'}) { - print($fifo "\e[34m%$colour".$_real->($nick)."\e[39m"); + print($fifo "\e[92m%$colour".$_real->($nick)."\e[39m"); } elsif ($nick->{'voice'}) { - print($fifo "\e[33m+$colour".$_real->($nick)."\e[39m"); + print($fifo "\e[92m+$colour".$_real->($nick)."\e[39m"); } elsif ($nick->{'other'}>32) { - print($fifo "\e[31m".(chr $nick->{'other'})."$colour".$_real->($nick)."\e[39m"); + print($fifo "\e[92m".(chr $nick->{'other'})."$colour".$_real->($nick)."\e[39m"); } else { print($fifo " $colour".$_real->($nick)."\e[39m"); } diff --git a/.config/irssi/triggers b/.config/irssi/triggers @@ -1,8 +1,9 @@ #Triggers file version 1.2.4 -all -regexp '\t' -replace ' ' -all -regexp '([[:alnum:]]) ([[:punct:]])[[:space:]]*$' -replace '$1$2' --rawin -regexp 'Client connecting:' -replace '12CONNECT:' +-rawin -regexp 'Client connecting:' -replace '0CONNECT:' -rawin -regexp 'Client exiting:' -replace '9QUIT:' -rawin -regexp 'OperOverride --' -replace '14OPEROVERRIDE:' --publics -regexp 'Oh my.' -replace '{nebula Oh my.}' --all -regexp 'Alright, I (\w*)' -replace '{nebula Alright, I $1}' +-all -pattern '¯\_(ツ)_/¯' -replace '*shrug*' +-all -pattern '(╯°□°)╯︵ ┻━┻' -replace '*flips table*' +-publics -privmsgs -masks 'wfnintr!*@example.com. *!*@irc.haydenvh.com mys!*@mys.' -regexp '^halfop #hlircnet' -command '^msg -hlircnet chanhold halfop #hlircnet $N' -name 'AUTOHOP-#hlircnet' diff --git a/.config/neomutt/colours b/.config/neomutt/colours @@ -1,4 +1,7 @@ # vim: filetype=neomuttrc + +set index_format="%4C %Z %{%b %d} %-15.15L (%?l?%4l&%4c?) %-3.3M %s" + # Default index colors: color index yellow default '.*' color index_author magenta default '.*' @@ -6,13 +9,20 @@ color index_number magenta default color index_subject cyan default '.*' # For new mail: -color index blue default "~N" color index_author color12 default "~N" color index_subject color12 default "~N" -color index blue default "~O" color index_author color12 default "~O" color index_subject color12 default "~O" +# For threads +color index_subject default default "~v" +color index_flags color12 default "~(~N)" # matches threads which contain unread entries +color index_flags color12 default "~(~O)" # ditto + +# PGP'd +color index_subject color8 default "~k" +color index_subject color8 default "~V" + # Header colors: color header blue default ".*" color header brightmagenta default "^(From)" @@ -54,10 +64,6 @@ color body brightblue default "^# \.*" # Headings as bold blue color body brightcyan default "^## \.*" # Subheadings as bold cyan color body brightgreen default "^### \.*" # Subsubheadings as bold green color body yellow default "^(\t| )*(-|\\*) \.*" # List items as yellow -color body brightcyan default "[;:][-o][)/(|]" # emoticons -color body brightcyan default "[;:][)(|]" # emoticons -color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon? -color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon? color body red default "(BAD signature)" color body cyan default "(Good signature)" color body brightblack default "^gpg: Good signature .*" diff --git a/.config/neomutt/mailcap b/.config/neomutt/mailcap @@ -1,6 +1,8 @@ -text/html ; lynx -stdin -dump < '%s' | less +#text/html ; lynx -stdin -dump < '%s' | less +text/html ; vimb - < '%s' text/* ; nvim '%s' application/pdf ; zathura '%s' +application/* ; whatdoido '%s' image/* ; sxiv '%s' diff --git a/.config/neomutt/neomuttrc b/.config/neomutt/neomuttrc @@ -1,6 +1,6 @@ -#source users/hayden@haydenvh.com -#source users/irc@hlirc.net -source users/backtrack@airmail.cc +source users/hayden@haydenvh.com #user +#source users/backtrack@airmail.cc #user +#source users/irc@hlirc.net #user set ssl_starttls = yes set ssl_force_tls = yes @@ -8,28 +8,39 @@ set mailcap_path = "~/.config/neomutt/mailcap" set smtp_authenticators = "plain" set folder = "~/general/mail/" -set spoolfile = "~/general/mail/inbox" -set record = "~/general/mail/sent" -set postponed = "~/general/mail/drafts" -set trash = "~/general/mail/rubbish" -mailboxes =inbox =inbox-haydenvh-com =sent =drafts =rubbish =spam ="===============" =exmouth =exmouthsent =exmouthrubbish +set spoolfile = "+inbox-haydenvh-com" +set record = "+sent" +set postponed = "+drafts" +set trash = "+rubbish" +mailboxes =inbox-haydenvh-com =inbox-master =inbox-hlircnet =inbox-lists =inbox-airmail ="========================" =forwards =sent =drafts =rubbish =backup =spam ="------------------------" =exmouth =exmouthsent =exmouthrubbish set mbox_type = Maildir +set abort_key = "<Esc>" +set abort_nosubject = no +set abort_unmodified = no +set alias_file = "~/.config/neomutt/alias" source colours source sidebar +source alias bind index D purge-message bind index,pager M compose-to-sender +#bind index R source +bind index \Ct collapse-thread +bind index \Ca collapse-all set new_mail_command="echo N:%n U:%u > /tmp/mail &" - set sort=threads +set collapse_all + set signature=`rand-sig` # source ~/.config/neomutt/gpg.rc # mark all mail as read macro index A \ - "<tag-pattern>~N<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" \ + "<clear-flag>O<untag-pattern>.<enter>" \ "mark all new as read" + +my_hdr X-Mailer: neomutt & procmail diff --git a/.config/neomutt/sidebar b/.config/neomutt/sidebar @@ -1,14 +1,13 @@ # vim: filetype=neomuttrc set sidebar_visible -set sidebar_width=15 +set sidebar_width=25 set sidebar_format = "%B%?F? [%F]?%* %?N?%N/?%S" set mail_check_stats set sort_browser="unsorted" set sidebar_short_path=yes bind index,pager \CK sidebar-prev -bind index,pager \CO sidebar-open bind index,pager \CL sidebar-open bind index,pager \CJ sidebar-next @@ -17,3 +16,5 @@ color sidebar_highlight color7 default color sidebar_new color12 default color sidebar_unread color12 default mono sidebar_indicator reverse + +bind index,pager B sidebar-toggle-visible diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim @@ -92,6 +92,7 @@ noremap <leader>' ea'<esc>bi'<esc> noremap <leader>u' ds' noremap <leader>sp o<esc>pi noremap <leader>Ee :edit +noremap <leader>EE :edit noremap <leader>yv :reg<CR> noremap <leader>8 :set colorcolumn=80<CR>:set tw=80<CR>:set fo+=t<CR> noremap <leader>Gi :!git @@ -127,6 +128,7 @@ inoremap <leader><leader>{ {}<Esc><Left>i inoremap <leader><leader>< <><Esc><Left>i inoremap <c-;> <esc>: +noremap <localleader>V ggO# vim: :<left><left> "General stuff noremap dw diw diff --git a/.config/nvim/modules/filetype.vim b/.config/nvim/modules/filetype.vim @@ -1,7 +1,7 @@ function Shconfig() nnoremap <buffer> <localleader>s i#!/bin/sh<CR>#<CR># <++><CR># Created by Hayden Hamilton<CR>#<CR># haydenvh.com<CR># Copyright (c) <++> Hayden Hamilton<CR><CR>cache=${XDG_CACHE_HOME:=$HOME/.cache}<CR>config=${XDG_CONFIG_HOME:=$HOME/.config}<esc> nnoremap <buffer> <localleader>S i# <++><CR># Created by Hayden Hamilto<CR>#<CR># haydenvh.com<CR># Copyright (c) <++> Hayden Hamilton<CR>#<CR># THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR<CR># IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<CR># FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE<CR># AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER<CR># LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,<CR># OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE<CR># SOFTWARE.<CR>#<CR># This work is free. You can redistribute it and/or modify it under the<CR># terms of the Do What The Fuck You Want To Public License, Version 2, <CR># as published by Sam Hocevar. See http://www.wtfpl.net/ for more details.<CR><CR># <++><CR><CR>cache=${XDG_CACHE_HOME:=$HOME/.cache}<CR>config=${XDG_CONFIG_HOME:=$HOME/.config}<esc> - nnoremap <buffer> <localleader>x :!chmod +x %<CR> + nnoremap <buffer> <localleader>x :w<CR>:!chmod +x %<CR> nnoremap <buffer> <localleader>f i(){<CR><CR>}<esc>kk0i nnoremap <buffer> <localleader>$ i$()<esc>i nnoremap <buffer> <localleader>($ i$(())<esc>hi @@ -17,10 +17,8 @@ function Gphconfig() nnoremap <buffer> <localleader>c :call GphCitation()<CR> nnoremap <buffer> <localleader>t :%s/\t/ /g<CR> nnoremap <buffer> <localleader>l :call GphZettel("")<left><left> - inoremap <buffer> <localleader>l <esc>:call GphZettel("")<left><left> - setlocal colorcolumn=80 - setlocal tw=80 - setlocal fo+=t + inoremap <buffer> <localleader><localleader>l <esc>:call GphZettel("")<left><left> + call EnableLineWrap() endfunction function GphZettel(srch) @@ -50,10 +48,14 @@ function GphCitation() endfunction function Txtconfig() + call EnableLineWrap() + setlocal syntax=markdown +endfunction + +function EnableLineWrap() setlocal colorcolumn=80 setlocal tw=80 setlocal fo+=t - setlocal syntax=markdown endfunction augroup filetypes @@ -65,4 +67,5 @@ augroup filetypes autocmd FileType sh :call Shconfig() autocmd FileType gph :call Gphconfig() autocmd FileType text :call Txtconfig() + autocmd FileType mail :call EnableLineWrap() augroup END diff --git a/.config/nvim/syntax/gph.vim b/.config/nvim/syntax/gph.vim @@ -4,21 +4,45 @@ endif runtime! syntax/markdown.vim -syn match gphBrackl '^\[' contained -syn match gphBrackr '\]$' contained -syn match gphPipe '|' contained -syn keyword gphSelf server port contained - -syn region gphSelector start=/^\[/ end=/\]$/ oneline contains=gphBrackl,gphBrackr,gphPipe,gphSelf +syn region gphSelector start=/|/ end=/\]$/ oneline contains=gphPipe,gphServer,gphURL,gphURI,gphFileDir,gphFileGph,gphFileCGI,gphFileDCGI,gphFileHTML +syn region gphType start=/^\[/ end=/|/ oneline contains=gphBrackl,gphType1,gphType2,gphSelector -syn match gphTab ' ' +syn match gphType1 "[0123456789gmsITi\+:;<PcMd\*\.]" contained +syn match gphType2 "[hH]" contained +syn match gphServer "[^|]*|[^|]*]" contained contains=gphBrackr,gphSelf,gphPipe,gphServer2 +syn match gphServer2 "[^|\]]*" contained contains=gphBrackr,gphPipe +syn match gphFileGph "[^|]*\.gph|" contained contains=gphPipe +syn match gphFileDir "[^|]*\/|" contained contains=gphPipe +syn match gphFileCGI "[^|]*\.cgi|" contained contains=gphPipe +syn match gphFileDCGI "[^|]*\.dcgi|" contained contains=gphPipe +syn match gphFileHTML "[^|]*\.html|" contained contains=gphPipe +syn match gphURL "URL:[^|]*|" contained contains=gphPipe +syn match gphURI "URI:[^|]*|" contained contains=gphPipe +syn match gphBrackl '^\[' contained +syn match gphBrackr '\]$' contained +syn match gphPipe '|' contained +syn match gphEscape '^t' +syn match gphTab ' ' +syn keyword gphSelf server port contained hi gphPunc guifg=#a1a1d9 +hi gphEscape guifg=#00d7d7 hi link gphBrackl gphPunc hi link gphBrackr gphPunc hi link gphPipe gphPunc hi gphSelf guifg=#005f5f hi link gphTab errormsg +hi gphType1 guifg=#575b72 +hi gphType2 guifg=#ebaa22 +hi gphServer2 guifg=#a84b8d + +hi gphFileGph guifg=#777b8e +hi link gphFileDir gphFileGph +hi gphFileCGI guifg=#00af87 +hi link gphFileDCGI gphFileCGI +hi gphFileHTML guifg=#4747e1 gui=bold +hi gphURL guifg=#4747e1 gui=underline +hi link gphURI gphURL let b:current_syntax='gph' diff --git a/.config/nvim/syntax/mail.vim b/.config/nvim/syntax/mail.vim @@ -0,0 +1,115 @@ +" Vim syntax file +" Language: Mail file +" Previous Maintainer: Felix von Leitner <leitner@math.fu-berlin.de> +" Maintainer: GI <a@b.c>, where a='gi1242+vim', b='gmail', c='com' +" Last Change: Wed 14 Aug 2013 08:24:52 AM PDT + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Include markdown syntax +runtime! syntax/markdown.vim + +" The mail header is recognized starting with a "keyword:" line and ending +" with an empty line or other line that can't be in the header. All lines of +" the header are highlighted. Headers of quoted messages (quoted with >) are +" also highlighted. + +" Syntax clusters +syn cluster mailHeaderFields contains=mailHeaderKey,mailSubject,mailHeaderEmail,@mailLinks +syn cluster mailLinks contains=mailURL,mailEmail +syn cluster mailQuoteExps contains=mailQuoteExp1,mailQuoteExp2,mailQuoteExp3,mailQuoteExp4,mailQuoteExp5,mailQuoteExp6 + +syn case match +" For "From " matching case is required. The "From " is not matched in quoted +" emails +" According to RFC 2822 any printable ASCII character can appear in a field +" name, except ':'. +syn region mailHeader contains=@mailHeaderFields,@NoSpell start="^From .*\d\d\d\d$" skip="^\s" end="\v^[!-9;-~]*([^!-~]|$)"me=s-1 fold +syn match mailHeaderKey contained contains=mailEmail,@NoSpell "^From\s.*\d\d\d\d$" + +" Nothing else depends on case. +syn case ignore + +" Headers in properly quoted (with "> " or ">") emails are matched +syn region mailHeader keepend contains=@mailHeaderFields,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)*\)\v(newsgroups|x-([a-z\-])*|path|xref|message-id|from|((in-)?reply-)?to|b?cc|subject|return-path|received|date|replied):" skip="^\z1\s" end="\v^\z1[!-9;-~]*([^!-~]|$)"me=s-1 end="\v^\z1@!"me=s-1 end="\v^\z1(\> ?)+"me=s-1 fold + +" Usenet headers +syn match mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(Newsgroups|Followup-To|Message-ID|Supersedes|Control):.*$" + + +syn region mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@mailQuoteExps,@NoSpell start="\v(^(\> ?)*)@<=(to|b?cc):" skip=",$" end="$" +syn match mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(from|reply-to):.*$" fold +syn match mailHeaderKey contained contains=@NoSpell "\v(^(\> ?)*)@<=date:" +syn match mailSubject contained "\v^subject:.*$" fold +syn match mailSubject contained contains=@NoSpell "\v(^(\> ?)+)@<=subject:.*$" + +" Anything in the header between < and > is an email address +syn match mailHeaderEmail contained contains=@NoSpell "<.\{-}>" + +" Mail Signatures. (Begin with "-- ", end with change in quote level) +syn region mailSignature keepend contains=@mailLinks,@mailQuoteExps start="^--\s$" end="^$" end="^\(> \?\)\+"me=s-1 fold +syn region mailSignature keepend contains=@mailLinks,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)--\s$" end="^\z1$" end="^\z1\@!"me=s-1 end="^\z1\(> \?\)\+"me=s-1 fold + +" Treat verbatim Text special. +syn region mailVerbatim contains=@NoSpell keepend start="^#v+$" end="^#v-$" fold +syn region mailVerbatim contains=@mailQuoteExps,@NoSpell keepend start="^\z(\(> \?\)\+\)#v+$" end="\z1#v-$" fold + +" URLs start with a known protocol or www,web,w3. +syn match mailURL contains=@NoSpell `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' <>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' <>"]+)[a-z0-9/]` +syn match mailEmail contains=@NoSpell "\v[_=a-z\./+0-9-]+\@[a-z0-9._-]+\a{2}" + +" Make sure quote markers in regions (header / signature) have correct color +syn match mailQuoteExp1 contained "\v^(\> ?)" +syn match mailQuoteExp2 contained "\v^(\> ?){2}" +syn match mailQuoteExp3 contained "\v^(\> ?){3}" +syn match mailQuoteExp4 contained "\v^(\> ?){4}" +syn match mailQuoteExp5 contained "\v^(\> ?){5}" +syn match mailQuoteExp6 contained "\v^(\> ?){6}" + +" Even and odd quoted lines. Order is important here! +syn region mailQuoted6 keepend contains=mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{5}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold +syn region mailQuoted5 keepend contains=mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{4}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold +syn region mailQuoted4 keepend contains=mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{3}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold +syn region mailQuoted3 keepend contains=mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{2}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold +syn region mailQuoted2 keepend contains=mailQuoted3,mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{1}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold +syn region mailQuoted1 keepend contains=mailQuoted2,mailQuoted3,mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z([a-z]\+>\|[]|}>]\)" end="^\z1\@!" fold + +" Need to sync on the header. Assume we can do that within 100 lines +if exists("mail_minlines") + exec "syn sync minlines=" . mail_minlines +else + syn sync minlines=100 +endif + +" Define the default highlighting. +hi def link mailVerbatim Special +hi def link mailHeader Statement +hi def link mailHeaderKey Type +hi def link mailSignature PreProc +hi def link mailHeaderEmail mailEmail +hi def link mailEmail Special +hi def link mailURL String +hi def link mailSubject Title +hi def link mailQuoted1 Comment +hi def link mailQuoted3 mailQuoted1 +hi def link mailQuoted5 mailQuoted1 +hi def link mailQuoted2 Identifier +hi def link mailQuoted4 mailQuoted2 +hi def link mailQuoted6 mailQuoted2 +hi def link mailQuoteExp1 mailQuoted1 +hi def link mailQuoteExp2 mailQuoted2 +hi def link mailQuoteExp3 mailQuoted3 +hi def link mailQuoteExp4 mailQuoted4 +hi def link mailQuoteExp5 mailQuoted5 +hi def link mailQuoteExp6 mailQuoted6 + +let b:current_syntax = "mail" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/.config/nvim/syntax/procmail.vim b/.config/nvim/syntax/procmail.vim @@ -0,0 +1,53 @@ +" Vim syntax file +" Language: Procmail definition file +" Maintainer: Melchior FRANZ <mfranz@aon.at> +" Last Change: 2003 Aug 14 +" Author: Sonia Heimann +" Modified By: haydenh <hayden@haydenvh.com> + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn match procmailComment "#.*$" contains=procmailTodo +syn keyword procmailTodo contained Todo TBD + +syn region procmailString start=+"+ skip=+\\"+ end=+"+ +syn region procmailString start=+'+ skip=+\\'+ end=+'+ + +syn region procmailVarDeclRegion start="^\s*[a-zA-Z0-9_]\+\s*="hs=e-1 skip=+\\$+ end=+$+ contains=procmailVar,procmailVarDecl,procmailString +syn match procmailVarDecl contained "^\s*[a-zA-Z0-9_]\+" +syn match procmailVar "$[a-zA-Z0-9_]\+" +syn match procmailPipeStart "|" + +syn match procmailCondition contained "^\s*\*.*" + +syn match procmailActionFolder contained "^\s*[-_a-zA-Z0-9/]\+" +syn match procmailActionVariable contained "^\s*$[a-zA-Z_]\+" +syn region procmailActionForward start=+^\s*!+ skip=+\\$+ end=+$+ +syn region procmailActionPipe start=+^\s*|+ skip=+\\$+ end=+$+ contains=procmailPipeStart +syn region procmailActionNested start=+^\s*{+ end=+^\s*}+ contains=procmailRecipe,procmailComment,procmailVarDeclRegion + +syn region procmailRecipe start=+^\s*:.*$+ end=+^\s*\($\|}\)+me=e-1 contains=procmailComment,procmailCondition,procmailActionFolder,procmailActionVariable,procmailActionForward,procmailActionPipe,procmailActionNested,procmailVarDeclRegion + +hi def link procmailComment Comment +hi def link procmailTodo Todo + +hi def link procmailRecipe Statement +hi def link procmailCondition String + +hi def link procmailActionFolder procmailAction +hi def link procmailActionVariable procmailAction +hi def link procmailActionForward procmailAction +hi def link procmailPipeStart procmailAction +hi def link procmailAction Function +hi def link procmailVar Identifier +hi def link procmailVarDecl Identifier + +hi def link procmailString String + + +let b:current_syntax = "procmail" + +" vim: ts=8 diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc @@ -4,6 +4,12 @@ super + {shift, ctrl, alt, shift + ctrl, shift + alt} + v super + Return st +super + a + addrbook + +super + shift + a + mailselect + super + b tabbed -c vimb -e diff --git a/.config/tmux/config b/.config/tmux/config @@ -11,6 +11,7 @@ unbind '"' unbind % bind r source-file ~/.tmux.conf +bind R source-file ~/.config/tmux/config bind-key h select-pane -L bind-key j select-pane -D diff --git a/.config/zsh/alias.zsh b/.config/zsh/alias.zsh @@ -19,10 +19,9 @@ alias ll=" \ls --color=auto -Flh" alias lla=" \ls --color=auto -FlAh" alias r=" \rm" alias rr=" \rm -rf" -alias m=" \mv" alias v=" nvim" alias g=" \git" -alias c=" \cp" +alias c=" \clear" alias f=" \find" alias xi=" sudo xbps-install" alias xiu=" sudo xbps-install -S; sudo xbps-install -yu xbps; sudo xbps-install -yu; sudo xbps-remove -Ooy; rm -rf ~/.cache ~/.mozilla ~/.local/share/webkitgtk ~/.viminfo ~/.wget-hsts ~/.lesshst ~/.sh_history ~/.python_history ~/.*history ~/.*hst* ~/.dbus ~/.w3m ~/.config/vimb/cookies.db; sudo vkpurge rm all" @@ -42,7 +41,7 @@ alias rmst=" bash ~/.scripts/random/gnulinux.sh" alias vimb=" \vimb --no-maximize" alias mkconfall=" mkmailpass; mkalias" alias make=" \make CC=tcc" -alias nm=" neomutt ; rm /tmp/mail ; rm /tmp/blocks/mail ; rm /tmp/dwmblocks/mail ; rm /tmp/blocks/mail ; rm /tmp/dwmblocks/mail" +alias nm=" export ESCDELAY=5 ; neomutt ; rm /tmp/mail ; rm /tmp/blocks/mail ; rm /tmp/dwmblocks/mail ; rm /tmp/blocks/mail ; rm /tmp/dwmblocks/mail" alias maic=" sudo make install clean" alias homesync=" rsync --port 22 --delete -azPe 'ssh -p 222' --exclude=general --exclude=.cache --exclude=.local/cache $HOME/ void@192.168.1.20:/home/void/homedir/" alias tmux=" \tmux -f $HOME/.config/tmux/config" diff --git a/.config/zsh/functions/art.zsh b/.config/zsh/functions/art.zsh @@ -0,0 +1,3 @@ +art(){ + cp $1 $HOME/general/art.tmp +} diff --git a/.scripts/bin/dmenu/mailselect b/.scripts/bin/dmenu/mailselect @@ -0,0 +1,25 @@ +#!/bin/sh + +user=$(grep '#user' < ${XDG_CONFIG_HOME:-$HOME/.config}/neomutt/neomuttrc | awk '{print $2}' | dmenu -i -p "select profile: ") + +[ "$user" = "" ] && printf "no profile selected" && exit 1 + +new=$( + echo "source $user #user" + awk -v "profile=$user" ' + $3 == "#user" && $1 == "source" && $2 != profile { + print "#" $0 + } + + $3 == "#user" && $1 == "#source" && $2 != profile + $3 == "#user" && $1 == "#source" && $2 == profile { + ; + } + $3 != "#user" + + + ' +) < ${XDG_CONFIG_HOME:-$HOME/.config}/neomutt/neomuttrc + +echo "$new" > ${XDG_CONFIG_HOME:-$HOME/.config}/neomutt/neomuttrc +echo "updated" diff --git a/.scripts/bin/misc/currency b/.scripts/bin/misc/currency @@ -2,7 +2,7 @@ [ -z $1 ] && echo "usage: currency <amount> <input currency> in <output currency>" -table=$(curl https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml) +table=$(curl -qs https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml) inputrate=$(echo "$table" | grep -oi "<Cube currency=\"$2\"[^>]*" | head -n 1 | awk -F\" '{print $4}') outputrate=$(echo "$table" | grep -oi "<Cube currency=\"$4\"[^>]*" | head -n 1 | awk -F\" '{print $4}') diff --git a/.scripts/bin/misc/gophcheck b/.scripts/bin/misc/gophcheck @@ -56,7 +56,7 @@ echo(){ } } -tmp=$(mktemp) +tmp=$HOME/net/gophcheck.tmp for f in $(ls $current) do f2="$old/$f" @@ -72,6 +72,6 @@ do } || echo "[$(tput setaf 88)NODIFF$(tput sgr0)] $(echo "$f" | tr '%' '/')" } || cp $f3 $f2 done -[ "$ydiff" = "y" ] && clear && $readcmd $tmp -rm $tmp -exit 0 + +trap "rm $tmp; exit 0" 2 +[ "$ydiff" = "y" ] && clear && cgo haydenvh.com/1/gophcheck.tmp diff --git a/.scripts/bin/misc/hgpg b/.scripts/bin/misc/hgpg @@ -0,0 +1,11 @@ +#!/bin/sh + +a="$1" +shift + +case "$a" in + export-key) gpg --export --armour $1 ;; + export-keyring) gpg --export --armour ;; + list) gpg --list-keys && gpg --list-secret-keys ;; + encrypt) gpg --encrypt --sign --armour --passphrase "$(dpass gpg2key)" -r "$1" ;; +esac diff --git a/.scripts/bin/misc/hlpaste b/.scripts/bin/misc/hlpaste @@ -2,5 +2,5 @@ cp /dev/stdin /tmp/hlpaste id=$(mktemp -u /var/gopher/paste/XXXXXXXXX) -scp -P 15551 /tmp/hlpaste hlirc.net:$id.$1 +scp /tmp/hlpaste hlirc.net:$id.$1 printf "gopher://hlirc.net/9/paste/$(basename $id).$1" | xclip diff --git a/.scripts/bin/misc/mailaddheader b/.scripts/bin/misc/mailaddheader @@ -0,0 +1,11 @@ +#!/bin/sh + +awk -v "header=$1" ' + NF == 0 { + if(added!="y") { + print header + print + } + } + + NF != 0' diff --git a/.scripts/bin/misc/mkmaildir b/.scripts/bin/misc/mkmaildir @@ -0,0 +1,11 @@ +#!/bin/sh +# +# mkmaildir - create a mail directory that neomutt recognizes +# usage: mkmaildir /path/to/maildir1 [/path/to/maildir2] ... + +for d in $* +do + mkdir -p $d/cur + mkdir -p $d/tmp + mkdir -p $d/new +done diff --git a/.scripts/bin/misc/mvmailbackup b/.scripts/bin/misc/mvmailbackup @@ -0,0 +1,3 @@ +#!/bin/sh + +mv "$1"/*/* "$2"/new diff --git a/.scripts/bin/misc/quik b/.scripts/bin/misc/quik @@ -3,7 +3,7 @@ # quik - mispelt script for deploying vps' quikly # Copyright (c) 2020 wfnintr (gopher://wfnintr.net) -# Copyright (c) 2020 haydenh (gopher://haydenvh.com) +# Copyright (c) 2020 haydenh <hayden@haydenvh.com> (gopher://haydenvh.com) # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, diff --git a/.scripts/bin/misc/slopvid b/.scripts/bin/misc/slopvid @@ -5,4 +5,4 @@ dim=$(slop | sed 's/+/,/g2') [ "$dim" = "" ] && exit 1 echo "${dim%%+*}" echo "${dim##*+}" -ffmpeg -framerate 60 -hide_banner -stats -video_size "${dim%%+*}" -f x11grab -i :0+${dim##*+} -y $1 +ffmpeg -framerate 60 -hide_banner -stats -video_size "${dim%%+*}" -f x11grab -i :$DISPLAY+${dim##*+} -y $1 diff --git a/.scripts/bin/misc/textdisplay b/.scripts/bin/misc/textdisplay @@ -0,0 +1,4 @@ +#!/bin/sh + +clear +cat $1 diff --git a/.scripts/bin/misc/urlhand b/.scripts/bin/misc/urlhand @@ -3,7 +3,7 @@ link=$(grep -Eo '[A-Za-z][A-Za-z]*://\S*' < /dev/stdin 2>/dev/null | awk '{print $1}' | dmenu -i -p 'Select url') [ "$link" = "" ] && exit 1 -tor=$(printf "yes\nno" | dmenu -i -p "Tor?") +tor=$(printf "no\nyes" | dmenu -i -p "Tor?") hand=$(printf "mpvms video mpvms diff --git a/.scripts/bin/misc/urlhand2 b/.scripts/bin/misc/urlhand2 @@ -1,6 +1,6 @@ #!/bin/sh -tor=$(printf "yes\nno" | dmenu -i -p "Tor?") +tor=$(printf "no\nyes" | dmenu -i -p "Tor?") hand=$(printf "mpvms video mpvms diff --git a/.scripts/bin/misc/whatdoido b/.scripts/bin/misc/whatdoido @@ -0,0 +1,9 @@ +#!/bin/sh + +file "$1" +d=$(mktemp -d) +cp "$1" $d +cd $d +printf "What do I do with this? " +zsh +rm -rf $d diff --git a/.ssh/config b/.ssh/config @@ -16,7 +16,7 @@ Host irc Host irc1 Hostname irc.haydenvh.com User hayden - Port 15551 + Port 22 Host irc2 Hostname irc.area51.haydenvh.com