diff --git a/.config/xfce4/terminal/terminalrc b/.config/xfce4/terminal/terminalrc index 19e2cdf..a7b34ab 100644 --- a/.config/xfce4/terminal/terminalrc +++ b/.config/xfce4/terminal/terminalrc @@ -29,7 +29,7 @@ MiscShowUnsafePasteDialog=FALSE BackgroundMode=TERMINAL_BACKGROUND_TRANSPARENT BackgroundDarkness=0.280000 ColorBackground=#000000000000 -FontName=Source Code Pro 9 +FontName=JetBrains Mono 9 ScrollingBar=TERMINAL_SCROLLBAR_NONE CellWidthScale=1.050000 DropdownPosition=75 @@ -38,4 +38,5 @@ DropdownHeight=53 DropdownAlwaysShowTabs=FALSE DropdownAnimationTime=158 DropdownStatusIcon=FALSE +FontUseSystem=TRUE diff --git a/.irssi/away.log b/.irssi/away.log new file mode 100644 index 0000000..d475bf4 --- /dev/null +++ b/.irssi/away.log @@ -0,0 +1,247 @@ +--- Log opened Fri Jul 26 16:58:32 2019 +--- Log closed Sat Jul 27 09:21:10 2019 +--- Log opened Sat Jul 27 20:12:38 2019 +--- Log closed Sun Jul 28 13:35:20 2019 +--- Log opened Fri Aug 02 08:42:31 2019 +08:42 8/<gg ehi +08:42 8/<gg ebu' +08:42 8/<gg eqa +--- Log closed Fri Aug 02 08:43:06 2019 +--- Log opened Mon Oct 14 10:17:34 2019 +--- Log closed Tue Oct 15 08:21:23 2019 +--- Log opened Thu Oct 17 22:17:25 2019 +--- Day changed Fri Oct 18 2019 +05:58 #team: 8/<g >/jan6g8/>g elickthecheese: emojis are VERY system dependant, ST might not know how to swap to an emoji font (if you have one, even), but most should know it, also I think I remember 'em working on my system +--- Log closed Fri Oct 18 08:45:12 2019 +--- Log opened Fri Oct 18 09:09:48 2019 +--- Log closed Sun Oct 20 13:12:26 2019 +--- Log opened Mon Oct 21 08:32:39 2019 +--- Log closed Mon Oct 21 10:04:52 2019 +--- Log opened Thu Oct 31 21:26:45 2019 +--- Log closed Fri Nov 01 13:33:42 2019 +--- Log opened Mon Dec 02 23:33:09 2019 +--- Log closed Tue Dec 03 07:31:58 2019 +--- Log opened Tue Dec 03 15:02:17 2019 +--- Log closed Tue Dec 03 15:02:24 2019 +--- Log opened Wed Dec 04 14:37:43 2019 +16:14 #tildetel: 8/<g~>/catg8/>g elickthecheese - did you get it working in the end? +18:32 #meta: 8/<g >/jamiewg8/>g elickthecheese: what website are you referring to? +--- Log closed Wed Dec 04 20:33:19 2019 +--- Log opened Sun Dec 08 23:36:46 2019 +23:36 #bots: 8/<g >/deependg8/>g elickthecheese: wish I could.. but the vm wont let me add cpu cores while its running +--- Day changed Mon Dec 09 2019 +06:48 #team: 8/<g@>/cmccabeg8/>g elickthecheese: are you talking about this? https://www.archlinux.org/news/ +--- Log closed Mon Dec 09 09:36:15 2019 +--- Log opened Mon Dec 09 20:18:53 2019 +--- Log closed Tue Dec 10 11:41:33 2019 +--- Log opened Fri Dec 27 17:55:20 2019 +--- Log closed Sat Dec 28 12:31:25 2019 +--- Log opened Mon Jan 06 18:29:41 2020 +--- Log closed Mon Jan 06 19:24:08 2020 +--- Log opened Mon Jan 06 19:48:32 2020 +20:06 8/<gclickthecheeseg8/>g eHELP +20:06 8/<gclickthecheeseg8/>g eREGISTER +20:07 8/<gclickthecheeseg8/>g eREGISTER #lickthecheese lickthecheeses nice channel +20:07 8/<gclickthecheeseg8/>g eREGISTER #archlinux a nice distribution of linux +20:08 8/<gclickthecheeseg8/>g eREGISTER #arch a nice distribution of linux +20:08 8/<gclickthecheeseg8/>g eTOPIC +--- Log closed Mon Jan 06 20:09:44 2020 +--- Log opened Tue Jan 07 07:39:48 2020 +--- Log closed Tue Jan 07 12:16:12 2020 +--- Log opened Tue Jan 07 18:25:33 2020 +--- Log closed Tue Jan 07 20:48:37 2020 +--- Log opened Thu Jan 16 11:32:02 2020 +11:32 #team: 8/<g >/ubergeekg8/>g elickthecheese: it's as secure as the linkulator binaries are +11:33 #team: 8/<g@>/cmccabeg8/>g elickthecheese: someday that would be really cool, but we haven't tested it throughly enough yet that i would currently trust it for that. +--- Log closed Thu Jan 16 11:43:23 2020 +--- Log opened Tue Jan 21 18:56:39 2020 +--- Log closed Tue Jan 21 18:56:44 2020 +--- Log opened Tue Jan 21 18:56:59 2020 +--- Log closed Tue Jan 21 19:51:01 2020 +--- Log opened Tue Jan 21 22:18:14 2020 +23:24 #lickthecheese: 8/<g >/brendog8/>g elickthecheese: is ltc_discord on a server or is hosted from home? +--- Log closed Wed Jan 22 07:22:16 2020 +--- Log opened Wed Jan 22 07:40:12 2020 +--- Log closed Wed Jan 22 09:10:41 2020 +--- Log opened Mon Feb 03 21:44:21 2020 +--- Log closed Tue Feb 04 07:19:14 2020 +--- Log opened Tue Feb 11 08:34:16 2020 +--- Log closed Tue Feb 11 11:28:19 2020 +--- Log opened Tue Mar 03 11:05:33 2020 +--- Log closed Tue Mar 03 11:42:13 2020 +--- Log opened Wed Mar 04 21:30:45 2020 +22:44 #wilde: 8/<g >/deependg8/>g elickthecheese: the tilde.team page for you is now listed on search.tilde.club +--- Day changed Thu Mar 05 2020 +01:42 8/<gg etest +--- Log closed Thu Mar 05 06:15:02 2020 +--- Log opened Thu Mar 05 21:34:27 2020 +22:01 #bots: 8/<g >/loging8/>g elickthecheese, why the space after the first character? +--- Log closed Fri Mar 06 07:19:05 2020 +--- Log opened Fri Mar 06 07:24:12 2020 +--- Log closed Fri Mar 06 10:42:12 2020 +--- Log opened Fri Mar 06 10:44:40 2020 +10:50 #meta: 8/<g >/cmccabeg8/>g elickthecheese: LUG canceled this sunday due to coronavirus hysteria +10:57 #meta: 8/<g >/cmccabeg8/>g elickthecheese: you're right. i think it's more about mass media raking in advertising dollars from panicked people who are glued to their tv/website +13:03 #casino: 8/<g >/lick|webg8/>g elickthecheese flips tails and winds +13:03 #casino: 8/<g >/lick|webg8/>g elickthecheese flips tails and wins joe +19:42 #tildetel: 8/<g >/brendog8/>g elickthecheese - there's a bit of conversation in the conference bridge (1105) at the moment +19:53 #tildetel: 8/<g >/beng8/>g elickthecheese: what +--- Day changed Sat Mar 07 2020 +00:06 #bots: 8/<g >/loging8/>g elickthecheese: how mcuh is the bug worth? +07:57 #cminecraft: 8/<g >/jan6g8/>g eLickTheCheese ded bc they LickTheCheese died +--- Log closed Sat Mar 07 10:37:49 2020 +--- Log opened Sat Mar 07 11:39:34 2020 +11:39 #meta: 8/<g >/antong8/>g elickthecheese: lol +11:41 #meta: 8/<g >/ensag8/>g elickthecheese: ive got a book recommendation but its a little on the long side +--- Log closed Sat Mar 07 14:26:32 2020 +--- Log opened Sat Mar 07 20:19:38 2020 +--- Log closed Sat Mar 07 21:17:43 2020 +--- Log opened Sat Mar 07 21:17:47 2020 +22:10 #bots: 8/<g >/loging8/>g elickthecheese: by worth, i mean, how many tildecoins to the person who showed the bug +--- Log closed Sun Mar 08 13:25:50 2020 +--- Log opened Sun Mar 08 17:39:59 2020 +--- Log closed Sun Mar 08 17:52:49 2020 +--- Log opened Sun Mar 08 21:11:49 2020 +--- Day changed Mon Mar 09 2020 +05:10 8/<gg eYou wanted me to tell you: go to school +07:03 #bots: 8/<g >/loging8/>g elickthecheese, do you use znc or weechat-android + weechat-relay? +--- Log closed Mon Mar 09 07:32:17 2020 +--- Log opened Mon Mar 09 07:40:51 2020 +08:03 #bots: 8/<g >/khuxkmg8/>g elickthecheese: ^ +09:36 #bots: 8/<g~>/beng8/>g elickthecheese: login you should consider using weechat-android +09:44 8/<gg ea +09:44 8/<gg elol +--- Log closed Mon Mar 09 10:51:03 2020 +--- Log opened Mon Mar 09 12:39:24 2020 +14:25 8/<gg eYou wanted me to tell you: peel more orange peels into faces because my mom threw away my orange peel face collection +16:24 8/<gg eYou wanted me to tell you: hail eris +16:24 8/<gg eYou wanted me to tell you: hail eris +22:16 #bots: 8/<g~>/beng8/>g elickthecheese: so much +--- Log closed Mon Mar 09 22:28:41 2020 +--- Log opened Tue Mar 10 07:27:03 2020 +08:00 #tildetel: 8/<g >/ryang8/>g elickthecheese: cause I had issues yesterday with connectivity, pertaining to STUN, that was resulting in a 408 +--- Log closed Tue Mar 10 11:17:23 2020 +--- Log opened Tue Mar 10 18:53:06 2020 +21:52 #meta: 8/<g >/feng8/>g elickthecheese: i haven't used github in a long time so makes sense that i didn't know haha +--- Log closed Tue Mar 10 23:13:19 2020 +--- Log opened Tue Mar 10 23:37:15 2020 +23:47 #team: 8/<g >/aewensg8/>g elickthecheese: I found it after you disconnected. It was on GitHub: https://github.com/tildecoin/rtcoin +--- Day changed Wed Mar 11 2020 +06:08 #lickthecheese: 8/<g >/loging8/>g elickthecheese, are you in trouble? +--- Log closed Wed Mar 11 07:28:32 2020 +--- Log opened Wed Mar 11 07:40:21 2020 +07:48 #team: 8/<g >/loging8/>g elickthecheese: when you type "tilde list" on tilde.team, you'll see +10:17 #lickthecheese: 8/<g >/loging8/>g elickthecheese coin already exists +--- Log closed Wed Mar 11 11:17:29 2020 +--- Log opened Wed Mar 11 21:09:22 2020 +21:10 #team: 8/<g >/loging8/>g elickthecheese: lol, that probably spoilt the tape +--- Log closed Thu Mar 12 11:25:26 2020 +--- Log opened Thu Mar 12 11:55:17 2020 +--- Log closed Thu Mar 12 13:48:39 2020 +--- Log opened Thu Mar 12 14:26:12 2020 +14:26 #meta: 8/<g@>/cmccabeg8/>g elickthecheese is now known as lickthekeyboard +--- Log closed Thu Mar 12 19:52:42 2020 +--- Log opened Thu Mar 12 23:11:14 2020 +--- Log closed Thu Mar 12 23:11:33 2020 +--- Log opened Thu Mar 12 23:11:38 2020 +--- Log closed Fri Mar 13 07:18:48 2020 +--- Log opened Fri Mar 13 07:22:47 2020 +07:43 #bots: 8/<g >/khuxkmg8/>g elickthecheese: see ~khuxkm/.tracery/animal2 +--- Log closed Fri Mar 13 09:42:22 2020 +--- Log opened Fri Mar 13 19:21:17 2020 +--- Log closed Fri Mar 13 20:11:34 2020 +--- Log opened Fri Mar 13 20:14:42 2020 +22:33 #team: 8/<g~>/beng8/>g elickthecheese: that's probably fine +23:29 #lickthecheese: 8/<g >/poweruserg8/>g elickthecheese: did you send me something from keybase? +--- Log closed Sat Mar 14 07:59:53 2020 +--- Log opened Sat Mar 14 11:24:55 2020 +17:13 #cminecraft: 8/<g >/circlesg8/>g elickthecheese's balance of nigga is 1.0. +--- Log closed Sat Mar 14 17:29:50 2020 +--- Log opened Sat Mar 14 17:36:58 2020 +17:53 #bots: 8/<g >/QuestBotg8/>g elickthecheese: you have completed your quest! You have reached level 1! +--- Log closed Sun Mar 15 09:46:57 2020 +--- Log opened Sun Mar 15 18:00:08 2020 +18:43 #team: 8/<g >/blitzkraftg8/>g elickthecheese: nice. what are you doing with the mc? +--- Log closed Sun Mar 15 20:16:21 2020 +--- Log opened Sun Mar 15 20:36:07 2020 +21:32 #bots: 8/<g >/badgerg8/>g elickthecheese: Hi! I'm the badger! I give out badges randomly. Commands you can use include 'listbadges' and 'transmute'. Source: https://ttm.sh/Eyx +21:36 #team: 8/<g~>/beng8/>g elickthecheese: installed +--- Log closed Sun Mar 15 21:38:21 2020 +--- Log opened Mon Mar 16 12:06:57 2020 +18:08 #cminecraft: 8/<g >/jan6g8/>g elickthecheese @LTC ^ +--- Log closed Mon Mar 16 20:34:02 2020 +--- Log opened Mon Mar 16 22:24:40 2020 +--- Log closed Tue Mar 17 09:17:40 2020 +--- Log opened Tue Mar 17 17:17:08 2020 +--- Log closed Tue Mar 17 20:29:21 2020 +--- Log opened Tue Mar 17 21:43:30 2020 +22:33 #wilde: 8/<g >/loging8/>g elickthecheese: is there another kind that's easily tradeable? +--- Log closed Wed Mar 18 06:14:11 2020 +--- Log opened Wed Mar 18 12:36:12 2020 +--- Log closed Wed Mar 18 17:44:46 2020 +--- Log opened Wed Mar 18 18:28:00 2020 +--- Log closed Wed Mar 18 18:52:06 2020 +--- Log opened Wed Mar 18 21:11:52 2020 +--- Log closed Thu Mar 19 06:39:10 2020 +--- Log opened Thu Mar 19 16:35:29 2020 +--- Log closed Thu Mar 19 17:05:26 2020 +--- Log opened Thu Mar 19 18:27:51 2020 +--- Log closed Thu Mar 19 18:57:12 2020 +--- Log opened Thu Mar 19 22:33:09 2020 +--- Log closed Fri Mar 20 10:33:37 2020 +--- Log opened Fri Mar 20 12:10:02 2020 +--- Log closed Fri Mar 20 13:43:53 2020 +--- Log opened Fri Mar 20 13:44:27 2020 +--- Log closed Fri Mar 20 15:39:16 2020 +--- Log opened Sat Mar 21 11:48:34 2020 +--- Log closed Sat Mar 21 15:03:33 2020 +--- Log opened Sat Mar 21 18:42:49 2020 +--- Log closed Sat Mar 21 20:12:18 2020 +--- Log opened Sat Mar 21 21:14:19 2020 +--- Log closed Sun Mar 22 06:28:32 2020 +--- Log opened Sun Mar 22 10:47:02 2020 +--- Log closed Sun Mar 22 14:41:27 2020 +--- Log opened Sun Mar 22 14:58:47 2020 +--- Log closed Sun Mar 22 16:40:59 2020 +--- Log opened Mon Mar 23 15:08:27 2020 +--- Log closed Mon Mar 23 17:31:51 2020 +--- Log opened Mon Mar 23 18:14:49 2020 +19:07 #team: 8/<g >/jan6g8/>g elickthecheese: there is at least one vim-irc, but it was bork 4 me +--- Log closed Mon Mar 23 19:57:06 2020 +--- Log opened Mon Mar 23 20:36:18 2020 +20:43 8/<gclickthecheeseg8/>g ehelp +20:44 8/<gclickthecheeseg8/>g ehi +--- Log closed Tue Mar 24 07:55:21 2020 +--- Log opened Tue Mar 24 12:05:28 2020 +--- Log closed Tue Mar 24 15:57:56 2020 +--- Log opened Tue Mar 24 16:44:10 2020 +17:16 ##jan6: 8/<g@>/JimBuntug8/>g elickthecheese: to be fair, you probably wont lose all of your stuff with ANY of them +17:17 ##jan6: 8/<g@>/JimBuntug8/>g elickthecheese: unless it's an sd or other completely embedded or single chip solution +17:22 ##jan6: 8/<g@>/JimBuntug8/>g elickthecheese: once they broke the SD that was in a rasPi, basically in half. I'm guessing they didn't know how to eject it... another time it was in the case, broken. No amount og luggage getting thrown around is breaking the SD inside a case and not breaking the case +18:17 #meta: 8/<g >/vantablackg8/>g elickthecheese: you have to train bitbot with treats +--- Log closed Tue Mar 24 20:37:04 2020 +--- Log opened Tue Mar 24 21:13:53 2020 +21:44 #tildetel: 8/<g >/brendog8/>g elickthecheese: 12:44pm, mar 25th 2020 +--- Day changed Wed Mar 25 2020 +04:58 #team: 8/<g >/jan6g8/>g elickthecheese: answering next day, but just check the link, lul +--- Log closed Wed Mar 25 08:18:17 2020 +--- Log opened Wed Mar 25 23:13:05 2020 +--- Log closed Thu Mar 26 08:52:32 2020 +--- Log opened Thu Mar 26 16:28:39 2020 +--- Log closed Thu Mar 26 18:27:57 2020 +--- Log opened Fri Mar 27 13:04:16 2020 +--- Log closed Fri Mar 27 14:26:03 2020 +--- Log opened Fri Mar 27 18:38:32 2020 +--- Log closed Fri Mar 27 21:15:07 2020 +--- Log opened Fri Mar 27 21:41:19 2020 +21:55 #tilderadio: 8/<g >/brendog8/>g elickthecheese - still live buddy> +22:26 #tilderadio: 8/<g >/brendog8/>g elickthecheese - ~chat lol +22:39 #tilderadio: 8/<g >/brendog8/>g elickthecheese - yea u did lol +--- Day changed Sat Mar 28 2020 +04:57 #starlanes: 8/<g~>/loging8/>g elickthecheese: would you like to play starlanes? +--- Log closed Sat Mar 28 06:25:29 2020 +--- Log opened Sat Mar 28 21:39:42 2020 +22:42 #tildetel: 8/<g >/catg8/>g elickthecheese - it's a grandstream HT802 +--- Log closed Sun Mar 29 14:39:38 2020 +--- Log opened Tue Mar 31 21:46:09 2020 +--- Log closed Wed Apr 01 13:15:58 2020 diff --git a/.irssi/config b/.irssi/config index 78a9ca9..b40a36d 100644 --- a/.irssi/config +++ b/.irssi/config @@ -62,6 +62,14 @@ servers = ( address = "irc.undernet.org"; chatnet = "Undernet"; port = "6667"; + }, + { + address = "tilde.chat"; + chatnet = "tc"; + port = "6697"; + use_tls = "yes"; + tls_verify = "no"; + autoconnect = "no"; } ); @@ -134,18 +142,39 @@ chatnets = { max_msgs = "1"; max_whois = "1"; }; + tc = { type = "IRC"; }; }; channels = ( - { name = "#lobby"; chatnet = "EsperNet"; autojoin = "No"; }, - { name = "#freenode"; chatnet = "Freenode"; autojoin = "No"; }, - { name = "#irssi"; chatnet = "Freenode"; autojoin = "No"; }, - { name = "#gamesurge"; chatnet = "GameSurge"; autojoin = "No"; }, - { name = "#irssi"; chatnet = "IRCNet"; autojoin = "No"; }, - { name = "#ircsource"; chatnet = "IRCSource"; autojoin = "No"; }, - { name = "#netfuze"; chatnet = "NetFuze"; autojoin = "No"; }, - { name = "#oftc"; chatnet = "OFTC"; autojoin = "No"; }, - { name = "silc"; chatnet = "SILC"; autojoin = "No"; } + { name = "#meta"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#team"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#bots"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#share"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#radiofreqs"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#hamradio"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#rscmakerspace"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#tildetel"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#wilde"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#chaos"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#tilderadio"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#minecraft"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#archlinux"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#lickthecheese"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#cminecraft"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#casino"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#chaoss"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#tildenet"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#brendo"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#starlanes"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#tildecoin"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#tildepi"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#envs"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#one"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#windowsloser"; chatnet = "tc"; autojoin = "yes"; }, + { name = "##jan6"; chatnet = "freenode"; autojoin = "yes"; }, + { name = "##share"; chatnet = "freenode"; autojoin = "yes"; }, + { name = "##jesopo"; chatnet = "freenode"; autojoin = "yes"; }, + { name = "##lickthecheese"; chatnet = "freenode"; autojoin = "yes"; } ); aliases = { @@ -302,105 +331,10 @@ aliases = { 97 = "WINDOW GOTO 97"; 98 = "WINDOW GOTO 98"; 99 = "WINDOW GOTO 99"; - rainbow = "exec -o toilet --irc --gay -f term -- $*"; + rainbow = "exec -o toilet --irc --gay -f term -- $"; + gayforce = "exec -o gayforce"; }; -statusbar = { - - items = { - - barstart = "{sbstart}"; - barend = "{sbend}"; - - topicbarstart = "{topicsbstart}"; - topicbarend = "{topicsbend}"; - - time = "{sb $Z}"; - user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}"; - - window = "{sb $winref:$tag/$itemname{sbmode $M}}"; - window_empty = "{sb $winref{sbservertag $tag}}"; - - prompt = "{prompt $[.15]itemname}"; - prompt_empty = "{prompt $winname}"; - - topic = " $topic"; - topic_empty = " Irssi v$J - http://www.irssi.org"; - - lag = "{sb Lag: $0-}"; - act = "{sb Act: $0-}"; - more = "-- more --"; - }; - - default = { - - window = { - - disabled = "no"; - type = "window"; - placement = "bottom"; - position = "1"; - visible = "active"; - - items = { - barstart = { priority = "100"; }; - time = { }; - user = { }; - window = { }; - window_empty = { }; - lag = { priority = "-1"; }; - act = { priority = "10"; }; - more = { priority = "-1"; alignment = "right"; }; - barend = { priority = "100"; alignment = "right"; }; - }; - }; - - window_inact = { - - type = "window"; - placement = "bottom"; - position = "1"; - visible = "inactive"; - - items = { - barstart = { priority = "100"; }; - window = { }; - window_empty = { }; - more = { priority = "-1"; alignment = "right"; }; - barend = { priority = "100"; alignment = "right"; }; - }; - }; - - prompt = { - - type = "root"; - placement = "bottom"; - position = "100"; - visible = "always"; - - items = { - prompt = { priority = "-1"; }; - prompt_empty = { priority = "-1"; }; - input = { priority = "10"; }; - }; - }; - - topic = { - - type = "root"; - placement = "top"; - position = "1"; - visible = "always"; - - items = { - topicbarstart = { priority = "100"; }; - topic = { }; - topic_empty = { }; - topicbarend = { priority = "100"; alignment = "right"; }; - }; - }; - }; -}; settings = { core = { real_name = "LickTheCheese"; @@ -408,4 +342,26 @@ settings = { nick = "lickthecheese"; }; "fe-text" = { actlist_sort = "refnum"; }; + "fe-common/core" = { autolog = "yes"; theme = "furry"; }; + "perl/core/scripts" = { + nickcolor_colors = "16 17 18 19 20 21 22 23 24 25 26 27 1C 1D 1E 1F 1G 1H 2C 2D 2E 2F 2G 2H 3C 3D 3E 3F 3G 3H 4C 4D 4E 4F 4G 4H 5C 5D 5E 5F 5G 5H 6C 6D 6E 6F 6G 6H 64 65 66 67 68 69 70 71 72 73 74 75"; + }; +}; +logs = { }; +windows = { 1 = { immortal = "yes"; name = "(status)"; level = "ALL"; }; }; +mainwindows = { 1 = { first_line = "1"; lines = "39"; }; }; +ignores = ( ); +statusbar = { + default = { + window = { placement = "top"; position = "0"; disabled = "yes"; }; + prompt = { + placement = "bottom"; + items = { + prompt = { priority = "-1"; }; + prompt_empty = { priority = "-1"; }; + input = { priority = "10"; }; + act = { }; + }; + }; + }; }; diff --git a/.irssi/config.autosave b/.irssi/config.autosave new file mode 100644 index 0000000..5b5eec5 --- /dev/null +++ b/.irssi/config.autosave @@ -0,0 +1,509 @@ +servers = ( + { address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; }, + { + address = "ssl.efnet.org"; + chatnet = "EFNet"; + port = "9999"; + use_tls = "yes"; + }, + { + address = "irc.esper.net"; + chatnet = "EsperNet"; + port = "6697"; + use_tls = "yes"; + tls_verify = "yes"; + }, + { + address = "chat.freenode.net"; + chatnet = "Freenode"; + port = "6697"; + use_tls = "yes"; + tls_verify = "yes"; + }, + { + address = "irc.gamesurge.net"; + chatnet = "GameSurge"; + port = "6667"; + }, + { + address = "eu.irc6.net"; + chatnet = "IRCnet"; + port = "6667"; + use_tls = "yes"; + }, + { address = "open.ircnet.net"; chatnet = "IRCnet"; port = "6667"; }, + { + address = "irc.ircsource.net"; + chatnet = "IRCSource"; + port = "6667"; + }, + { address = "irc.netfuze.net"; chatnet = "NetFuze"; port = "6667"; }, + { + address = "irc.oftc.net"; + chatnet = "OFTC"; + port = "6697"; + use_tls = "yes"; + tls_verify = "yes"; + }, + { + address = "irc.quakenet.org"; + chatnet = "QuakeNet"; + port = "6667"; + }, + { + address = "irc.rizon.net"; + chatnet = "Rizon"; + port = "6697"; + use_tls = "yes"; + tls_verify = "yes"; + }, + { address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; }, + { + address = "irc.undernet.org"; + chatnet = "Undernet"; + port = "6667"; + }, + { + address = "localhost"; + chatnet = "tc"; + port = "6667"; + use_tls = "no"; + tls_verify = "no"; + autoconnect = "yes"; + } +); + +chatnets = { + DALnet = { + type = "IRC"; + max_kicks = "4"; + max_msgs = "20"; + max_whois = "30"; + }; + EFNet = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "4"; + max_whois = "1"; + }; + EsperNet = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "4"; + max_whois = "1"; + }; + Freenode = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "4"; + max_whois = "1"; + }; + GameSurge = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "1"; + max_whois = "1"; + }; + IRCnet = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "1"; + max_whois = "1"; + }; + IRCSource = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "4"; + max_whois = "1"; + }; + NetFuze = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "1"; + max_whois = "1"; + }; + OFTC = { type = "IRC"; max_kicks = "1"; max_msgs = "1"; max_whois = "1"; }; + QuakeNet = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "1"; + max_whois = "1"; + }; + Rizon = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "1"; + max_whois = "1"; + }; + SILC = { type = "SILC"; }; + Undernet = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "1"; + max_whois = "1"; + }; + tc = { + type = "IRC"; + autosendcmd = "/msg NickServ IDENTIFY varunIrcPassword"; + }; +}; + +channels = ( + { name = "#lobby"; chatnet = "EsperNet"; autojoin = "No"; }, + { name = "#freenode"; chatnet = "Freenode"; autojoin = "No"; }, + { name = "#irssi"; chatnet = "Freenode"; autojoin = "No"; }, + { name = "#gamesurge"; chatnet = "GameSurge"; autojoin = "No"; }, + { name = "#irssi"; chatnet = "IRCNet"; autojoin = "No"; }, + { name = "#ircsource"; chatnet = "IRCSource"; autojoin = "No"; }, + { name = "#netfuze"; chatnet = "NetFuze"; autojoin = "No"; }, + { name = "#oftc"; chatnet = "OFTC"; autojoin = "No"; }, + { name = "silc"; chatnet = "SILC"; autojoin = "No"; }, + { name = "#meta"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#team"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#bots"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#share"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#radiofreqs"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#hamradio"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#rscmakerspace"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#tildetel"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#wilde"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#chaos"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#tilderadio"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#minecraft"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#arch"; chatnet = "tc"; autojoin = "yes"; }, + { name = "#lickthecheese"; chatnet = "tc"; autojoin = "yes"; } +); + +aliases = { + ATAG = "WINDOW SERVER"; + ADDALLCHANS = "SCRIPT EXEC foreach my \\$channel (Irssi::channels()) { Irssi::command(\"CHANNEL ADD -auto \\$channel->{name} \\$channel->{server}->{tag} \\$channel->{key}\")\\;}"; + B = "BAN"; + BACK = "AWAY"; + BANS = "BAN"; + BYE = "QUIT"; + C = "CLEAR"; + CALC = "EXEC - if command -v bc >/dev/null 2>&1\\; then printf '%s=' '$*'\\; echo '$*' | bc -l\\; else echo bc was not found\\; fi"; + CHAT = "DCC CHAT"; + CUBES = "SCRIPT EXEC Irssi::active_win->print(\"%_bases\", MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print( do { join '', map { \"%x0\\${_}0\\$_\" } '0'..'9','A'..'F' }, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print(\"%_cubes\", MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print( do { my \\$y = \\$_*6 \\; join '', map { my \\$x = \\$_ \\; map { \"%x\\$x\\$_\\$x\\$_\" } @{['0'..'9','A'..'Z']}[\\$y .. \\$y+5] } 1..6 }, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) for 0..5 \\; Irssi::active_win->print(\"%_grays\", MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print( do { join '', map { \"%x7\\${_}7\\$_\" } 'A'..'X' }, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print(\"%_mIRC extended colours\", MSGLEVEL_CLIENTCRAP) \\; my \\$x \\; \\$x .= sprintf \"\00399,%02d%02d\",\\$_,\\$_ for 0..15 \\; Irssi::active_win->print(\\$x, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) \\; for my \\$z (0..6) { my \\$x \\; \\$x .= sprintf \"\00399,%02d%02d\",\\$_,\\$_ for 16+(\\$z*12)..16+(\\$z*12)+11 \\; Irssi::active_win->print(\\$x, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) }"; + DATE = "TIME"; + DEHIGHLIGHT = "DEHILIGHT"; + DESCRIBE = "ACTION"; + DHL = "DEHILIGHT"; + EXEMPTLIST = "MODE $C +e"; + EXIT = "QUIT"; + GOTO = "SCROLLBACK GOTO"; + HIGHLIGHT = "HILIGHT"; + HL = "HILIGHT"; + HOST = "USERHOST"; + INVITELIST = "MODE $C +I"; + J = "JOIN"; + K = "KICK"; + KB = "KICKBAN"; + KN = "KNOCKOUT"; + LAST = "LASTLOG"; + LEAVE = "PART"; + M = "MSG"; + MUB = "UNBAN *"; + N = "NAMES"; + NMSG = "^MSG"; + P = "PART"; + Q = "QUERY"; + RESET = "SET -default"; + RUN = "SCRIPT LOAD"; + SAY = "MSG *"; + SB = "SCROLLBACK"; + SBAR = "STATUSBAR"; + SIGNOFF = "QUIT"; + SV = "MSG * Irssi $J ($V) - http://www.irssi.org"; + T = "TOPIC"; + UB = "UNBAN"; + UMODE = "MODE $N"; + UNSET = "SET -clear"; + W = "WHO"; + WC = "WINDOW CLOSE"; + WG = "WINDOW GOTO"; + WJOIN = "JOIN -window"; + WI = "WHOIS"; + WII = "WHOIS $0 $0"; + WL = "WINDOW LIST"; + WN = "WINDOW NEW HIDDEN"; + WQUERY = "QUERY -window"; + WW = "WHOWAS"; + 1 = "WINDOW GOTO 1"; + 2 = "WINDOW GOTO 2"; + 3 = "WINDOW GOTO 3"; + 4 = "WINDOW GOTO 4"; + 5 = "WINDOW GOTO 5"; + 6 = "WINDOW GOTO 6"; + 7 = "WINDOW GOTO 7"; + 8 = "WINDOW GOTO 8"; + 9 = "WINDOW GOTO 9"; + 10 = "WINDOW GOTO 10"; + 11 = "WINDOW GOTO 11"; + 12 = "WINDOW GOTO 12"; + 13 = "WINDOW GOTO 13"; + 14 = "WINDOW GOTO 14"; + 15 = "WINDOW GOTO 15"; + 16 = "WINDOW GOTO 16"; + 17 = "WINDOW GOTO 17"; + 18 = "WINDOW GOTO 18"; + 19 = "WINDOW GOTO 19"; + 20 = "WINDOW GOTO 20"; + 21 = "WINDOW GOTO 21"; + 22 = "WINDOW GOTO 22"; + 23 = "WINDOW GOTO 23"; + 24 = "WINDOW GOTO 24"; + 25 = "WINDOW GOTO 25"; + 26 = "WINDOW GOTO 26"; + 27 = "WINDOW GOTO 27"; + 28 = "WINDOW GOTO 28"; + 29 = "WINDOW GOTO 29"; + 30 = "WINDOW GOTO 30"; + 31 = "WINDOW GOTO 31"; + 32 = "WINDOW GOTO 32"; + 33 = "WINDOW GOTO 33"; + 34 = "WINDOW GOTO 34"; + 35 = "WINDOW GOTO 35"; + 36 = "WINDOW GOTO 36"; + 37 = "WINDOW GOTO 37"; + 38 = "WINDOW GOTO 38"; + 39 = "WINDOW GOTO 39"; + 40 = "WINDOW GOTO 40"; + 41 = "WINDOW GOTO 41"; + 42 = "WINDOW GOTO 42"; + 43 = "WINDOW GOTO 43"; + 44 = "WINDOW GOTO 44"; + 45 = "WINDOW GOTO 45"; + 46 = "WINDOW GOTO 46"; + 47 = "WINDOW GOTO 47"; + 48 = "WINDOW GOTO 48"; + 49 = "WINDOW GOTO 49"; + 50 = "WINDOW GOTO 50"; + 51 = "WINDOW GOTO 51"; + 52 = "WINDOW GOTO 52"; + 53 = "WINDOW GOTO 53"; + 54 = "WINDOW GOTO 54"; + 55 = "WINDOW GOTO 55"; + 56 = "WINDOW GOTO 56"; + 57 = "WINDOW GOTO 57"; + 58 = "WINDOW GOTO 58"; + 59 = "WINDOW GOTO 59"; + 60 = "WINDOW GOTO 60"; + 61 = "WINDOW GOTO 61"; + 62 = "WINDOW GOTO 62"; + 63 = "WINDOW GOTO 63"; + 64 = "WINDOW GOTO 64"; + 65 = "WINDOW GOTO 65"; + 66 = "WINDOW GOTO 66"; + 67 = "WINDOW GOTO 67"; + 68 = "WINDOW GOTO 68"; + 69 = "WINDOW GOTO 69"; + 70 = "WINDOW GOTO 70"; + 71 = "WINDOW GOTO 71"; + 72 = "WINDOW GOTO 72"; + 73 = "WINDOW GOTO 73"; + 74 = "WINDOW GOTO 74"; + 75 = "WINDOW GOTO 75"; + 76 = "WINDOW GOTO 76"; + 77 = "WINDOW GOTO 77"; + 78 = "WINDOW GOTO 78"; + 79 = "WINDOW GOTO 79"; + 80 = "WINDOW GOTO 80"; + 81 = "WINDOW GOTO 81"; + 82 = "WINDOW GOTO 82"; + 83 = "WINDOW GOTO 83"; + 84 = "WINDOW GOTO 84"; + 85 = "WINDOW GOTO 85"; + 86 = "WINDOW GOTO 86"; + 87 = "WINDOW GOTO 87"; + 88 = "WINDOW GOTO 88"; + 89 = "WINDOW GOTO 89"; + 90 = "WINDOW GOTO 90"; + 91 = "WINDOW GOTO 91"; + 92 = "WINDOW GOTO 92"; + 93 = "WINDOW GOTO 93"; + 94 = "WINDOW GOTO 94"; + 95 = "WINDOW GOTO 95"; + 96 = "WINDOW GOTO 96"; + 97 = "WINDOW GOTO 97"; + 98 = "WINDOW GOTO 98"; + 99 = "WINDOW GOTO 99"; + rainbow = "exec -o toilet --irc --gay -f term -- $"; +}; + +statusbar = { + + items = { + + barstart = "{sbstart}"; + barend = "{sbend}"; + + topicbarstart = "{topicsbstart}"; + topicbarend = "{topicsbend}"; + + time = "{sb $Z}"; + user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}"; + + window = "{sb $winref:$tag/$itemname{sbmode $M}}"; + window_empty = "{sb $winref{sbservertag $tag}}"; + + prompt = "{prompt $[.15]itemname}"; + prompt_empty = "{prompt $winname}"; + + topic = " $topic"; + topic_empty = " Irssi v$J - http://www.irssi.org"; + + lag = "{sb Lag: $0-}"; + act = "{sb Act: $0-}"; + more = "-- more --"; + }; + + default = { + + window = { + + disabled = "no"; + type = "window"; + placement = "bottom"; + position = "1"; + visible = "active"; + + items = { + barstart = { priority = "100"; }; + time = { }; + user = { }; + window = { }; + window_empty = { }; + lag = { priority = "-1"; }; + act = { priority = "10"; }; + more = { priority = "-1"; alignment = "right"; }; + barend = { priority = "100"; alignment = "right"; }; + }; + }; + + window_inact = { + + type = "window"; + placement = "bottom"; + position = "1"; + visible = "inactive"; + + items = { + barstart = { priority = "100"; }; + window = { }; + window_empty = { }; + more = { priority = "-1"; alignment = "right"; }; + barend = { priority = "100"; alignment = "right"; }; + }; + }; + + prompt = { + + type = "root"; + placement = "bottom"; + position = "100"; + visible = "always"; + + items = { + prompt = { priority = "-1"; }; + prompt_empty = { priority = "-1"; }; + input = { priority = "10"; }; + }; + }; + + topic = { + + type = "root"; + placement = "top"; + position = "1"; + visible = "always"; + + items = { + topicbarstart = { priority = "100"; }; + topic = { }; + topic_empty = { }; + topicbarend = { priority = "100"; alignment = "right"; }; + }; + }; + }; +}; +settings = { + core = { + real_name = "LickTheCheese"; + user_name = "lickthecheese"; + nick = "lickthecheese"; + }; + "fe-text" = { actlist_sort = "refnum"; }; + "fe-common/core" = { + autolog = "yes"; + autolog_level = "ALL -CRAP -CLIENTCRAP -CTCPS"; + }; +}; +logs = { + "~/irc.log.(status)" = { + level = "ALL"; + items = ( { type = "window"; name = "1"; } ); + }; + "~/irc.log.Window2" = { + level = "ALL"; + items = ( { type = "window"; name = "2"; } ); + }; + "~/irc.log.Window3" = { + level = "ALL"; + items = ( { type = "window"; name = "3"; } ); + }; + "~/irc.log.Window4" = { + level = "ALL"; + items = ( { type = "window"; name = "4"; } ); + }; + "~/irc.log.Window5" = { + level = "ALL"; + items = ( { type = "window"; name = "5"; } ); + }; + "~/irc.log.Window6" = { + level = "ALL"; + items = ( { type = "window"; name = "6"; } ); + }; + "~/irc.log.Window7" = { + level = "ALL"; + items = ( { type = "window"; name = "7"; } ); + }; + "~/irc.log.Window8" = { + level = "ALL"; + items = ( { type = "window"; name = "8"; } ); + }; + "~/irc.log.Window9" = { + level = "ALL"; + items = ( { type = "window"; name = "9"; } ); + }; + "~/irc.log.Window10" = { + level = "ALL"; + items = ( { type = "window"; name = "10"; } ); + }; + "~/irc.log.Window11" = { + level = "ALL"; + items = ( { type = "window"; name = "11"; } ); + }; + "~/irc.log.Window12" = { + level = "ALL"; + items = ( { type = "window"; name = "12"; } ); + }; + "~/irc.log.Window13" = { + level = "ALL"; + items = ( { type = "window"; name = "13"; } ); + }; + "~/irc.log.Window14" = { + level = "ALL"; + items = ( { type = "window"; name = "14"; } ); + }; + "~/irc.log.Window15" = { + level = "ALL"; + items = ( { type = "window"; name = "15"; } ); + }; + "~/irc.log.Window16" = { + level = "ALL"; + items = ( { type = "window"; name = "16"; } ); + }; +}; +windows = { 1 = { immortal = "yes"; name = "(status)"; level = "ALL"; }; }; +mainwindows = { 1 = { first_line = "1"; lines = "39"; }; }; diff --git a/.irssi/default.theme b/.irssi/default.theme new file mode 100644 index 0000000..e49c6b6 --- /dev/null +++ b/.irssi/default.theme @@ -0,0 +1,301 @@ +# When testing changes, the easiest way to reload the theme is with /RELOAD. +# This reloads the configuration file too, so if you did any changes remember +# to /SAVE it first. Remember also that /SAVE overwrites the theme file with +# old data so keep backups :) + +# TEMPLATES: + +# The real text formats that irssi uses are the ones you can find with +# /FORMAT command. Back in the old days all the colors and texts were mixed +# up in those formats, and it was really hard to change the colors since you +# might have had to change them in tens of different places. So, then came +# this templating system. + +# Now the /FORMATs don't have any colors in them, and they also have very +# little other styling. Most of the stuff you need to change is in this +# theme file. If you can't change something here, you can always go back +# to change the /FORMATs directly, they're also saved in these .theme files. + +# So .. the templates. They're those {blahblah} parts you see all over the +# /FORMATs and here. Their usage is simply {name parameter1 parameter2}. +# When irssi sees this kind of text, it goes to find "name" from abstracts +# block below and sets "parameter1" into $0 and "parameter2" into $1 (you +# can have more parameters of course). Templates can have subtemplates. +# Here's a small example: +# /FORMAT format hello {colorify {underline world}} +# abstracts = { colorify = "%G$0-%n"; underline = "%U$0-%U"; } +# When irssi expands the templates in "format", the final string would be: +# hello %G%Uworld%U%n +# ie. underlined bright green "world" text. +# and why "$0-", why not "$0"? $0 would only mean the first parameter, +# $0- means all the parameters. With {underline hello world} you'd really +# want to underline both of the words, not just the hello (and world would +# actually be removed entirely). + +# COLORS: + +# You can find definitions for the color format codes in docs/formats.txt. + +# There's one difference here though. %n format. Normally it means the +# default color of the terminal (white mostly), but here it means the +# "reset color back to the one it was in higher template". For example +# if there was /FORMAT test %g{foo}bar, and foo = "%Y$0%n", irssi would +# print yellow "foo" (as set with %Y) but "bar" would be green, which was +# set at the beginning before the {foo} template. If there wasn't the %g +# at start, the normal behaviour of %n would occur. If you _really_ want +# to use the terminal's default color, use %N. + +############################################################################# + +# default foreground color (%N) - -1 is the "default terminal color" +default_color = "-1"; + +# print timestamp/servertag at the end of line, not at beginning +info_eol = "false"; + +# these characters are automatically replaced with specified color +# (dark grey by default) +replaces = { "[]=" = "%K$*%n"; }; + +abstracts = { + ## + ## generic + ## + + # text to insert at the beginning of each non-message line + line_start = "%B-%n!%B-%n "; + + # timestamp styling, nothing by default + timestamp = "$*"; + + # any kind of text that needs hilighting, default is to bold + hilight = "%_$*%_"; + + # any kind of error message, default is bright red + error = "%R$*%n"; + + # channel name is printed + channel = "%_$*%_"; + + # nick is printed + nick = "%_$*%_"; + + # nick host is printed + nickhost = "[$*]"; + + # server name is printed + server = "%_$*%_"; + + # some kind of comment is printed + comment = "[$*]"; + + # reason for something is printed (part, quit, kick, ..) + reason = "{comment $*}"; + + # mode change is printed ([+o nick]) + mode = "{comment $*}"; + + ## + ## channel specific messages + ## + + # highlighted nick/host is printed (joins) + channick_hilight = "%C$*%n"; + chanhost_hilight = "{nickhost %c$*%n}"; + + # nick/host is printed (parts, quits, etc.) + channick = "%c$*%n"; + chanhost = "{nickhost $*}"; + + # highlighted channel name is printed + channelhilight = "%c$*%n"; + + # ban/ban exception/invite list mask is printed + ban = "%c$*%n"; + + ## + ## messages + ## + + # the basic styling of how to print message, $0 = nick mode, $1 = nick + msgnick = "%K<%n$0$1-%K>%n %|"; + + # message from you is printed. "ownnick" specifies the styling of the + # nick ($0 part in msgnick) and "ownmsgnick" specifies the styling of the + # whole line. + + # Example1: You want the message text to be green: + # ownmsgnick = "{msgnick $0 $1-}%g"; + # Example2.1: You want < and > chars to be yellow: + # ownmsgnick = "%Y{msgnick $0 $1-%Y}%n"; + # (you'll also have to remove <> from replaces list above) + # Example2.2: But you still want to keep <> grey for other messages: + # pubmsgnick = "%K{msgnick $0 $1-%K}%n"; + # pubmsgmenick = "%K{msgnick $0 $1-%K}%n"; + # pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n"; + # ownprivmsgnick = "%K{msgnick $*%K}%n"; + # privmsgnick = "%K{msgnick %R$*%K}%n"; + + # $0 = nick mode, $1 = nick + ownmsgnick = "{msgnick $0 $1-}"; + ownnick = "%_$*%n"; + + # public message in channel, $0 = nick mode, $1 = nick + pubmsgnick = "{msgnick $0 $1-}"; + pubnick = "%N$*%n"; + + # public message in channel meant for me, $0 = nick mode, $1 = nick + pubmsgmenick = "{msgnick $0 $1-}"; + menick = "%Y$*%n"; + + # public highlighted message in channel + # $0 = highlight color, $1 = nick mode, $2 = nick + pubmsghinick = "{msgnick $1 $0$2-%n}"; + + # channel name is printed with message + msgchannel = "%K:%c$*%n"; + + # private message, $0 = nick, $1 = host + privmsg = "[%R$0%K(%r$1-%K)%n] "; + + # private message from you, $0 = "msg", $1 = target nick + ownprivmsg = "[%r$0%K(%R$1-%K)%n] "; + + # own private message in query + ownprivmsgnick = "{msgnick $*}"; + ownprivnick = "%_$*%n"; + + # private message in query + privmsgnick = "{msgnick %R$*%n}"; + + ## + ## Actions (/ME stuff) + ## + + # used internally by this theme + action_core = "%_ * $*%n"; + + # generic one that's used by most actions + action = "{action_core $*} "; + + # own action, both private/public + ownaction = "{action $*}"; + + # own action with target, both private/public + ownaction_target = "{action_core $0}%K:%c$1%n "; + + # private action sent by others + pvtaction = "%_ (*) $*%n "; + pvtaction_query = "{action $*}"; + + # public action sent by others + pubaction = "{action $*}"; + + + ## + ## other IRC events + ## + + # whois + whois = "%# $[8]0 : $1-"; + + # notices + ownnotice = "[%r$0%K(%R$1-%K)]%n "; + notice = "%K-%M$*%K-%n "; + pubnotice_channel = "%K:%m$*"; + pvtnotice_host = "%K(%m$*%K)"; + servernotice = "%g!$*%n "; + + # CTCPs + ownctcp = "[%r$0%K(%R$1-%K)] "; + ctcp = "%g$*%n"; + + # wallops + wallop = "%_$*%n: "; + wallop_nick = "%n$*"; + wallop_action = "%_ * $*%n "; + + # netsplits + netsplit = "%R$*%n"; + netjoin = "%C$*%n"; + + # /names list + names_prefix = ""; + names_nick = "[%_$0%_$1-] "; + names_nick_op = "{names_nick $*}"; + names_nick_halfop = "{names_nick $*}"; + names_nick_voice = "{names_nick $*}"; + names_users = "[%g$*%n]"; + names_channel = "%G$*%n"; + + # DCC + dcc = "%g$*%n"; + dccfile = "%_$*%_"; + + # DCC chat, own msg/action + dccownmsg = "[%r$0%K($1-%K)%n] "; + dccownnick = "%R$*%n"; + dccownquerynick = "%_$*%n"; + dccownaction = "{action $*}"; + dccownaction_target = "{action_core $0}%K:%c$1%n "; + + # DCC chat, others + dccmsg = "[%G$1-%K(%g$0%K)%n] "; + dccquerynick = "%G$*%n"; + dccaction = "%_ (*dcc*) $*%n %|"; + + ## + ## statusbar + ## + + # default background for all statusbars. You can also give + # the default foreground color for statusbar items. + sb_background = "%4%w"; + + # default backround for "default" statusbar group + #sb_default_bg = "%4"; + # background for prompt / input line + sb_prompt_bg = "%n"; + # background for info statusbar + sb_info_bg = "%8"; + # background for topicbar (same default) + #sb_topic_bg = "%4"; + + # text at the beginning of statusbars. sb-item already puts + # space there,so we don't use anything by default. + sbstart = ""; + # text at the end of statusbars. Use space so that it's never + # used for anything. + sbend = " "; + + topicsbstart = "{sbstart $*}"; + topicsbend = "{sbend $*}"; + + prompt = "[$*] "; + + sb = " %c[%n$*%c]%n"; + sbmode = "(%c+%n$*)"; + sbaway = " (%GzZzZ%n)"; + sbservertag = ":$0 (change with ^X)"; + sbnickmode = "$0"; + + # activity in statusbar + + # ',' separator + sb_act_sep = "%c$*"; + # normal text + sb_act_text = "%c$*"; + # public message + sb_act_msg = "%W$*"; + # hilight + sb_act_hilight = "%M$*"; + # hilight with specified color, $0 = color, $1 = text + sb_act_hilight_color = "$0$1-%n"; +}; +formats = { + "fe-common/core" = { + timestamp = "{timestamp %%H:%%M:%%S} "; + own_msg = "{ownmsgnick $2 {ownnick $[0]0}}$1"; + pubmsg = "{pubmsgnick $2 {pubnick \00304$[0]0}}$1"; + }; +}; diff --git a/.irssi/furry.theme b/.irssi/furry.theme new file mode 100644 index 0000000..1eb2b11 --- /dev/null +++ b/.irssi/furry.theme @@ -0,0 +1,267 @@ +######################################################################### +# # +# Furry - An Irssi theme by Cene # +# Contact: Cene @ IRCnet, Qnet, Netgamers, Gamesurge # +# Idle #ppyo @ Gamesurge kthx >;) # +# I hope you enjoy this theme as much as I did creating it # +# # +######################################################################### + +# +# To use this theme, put it in your Irssi directory and use /set theme furry +# + +############################################################################# + +# default foreground color (%N) - -1 is the "default terminal color" +default_color = "-1"; + +# print timestamp/servertag at the end of line, not at beginning +info_eol = "false"; + +# these characters are automatically replaced with specified color +# (dark grey by default) +replaces = { "[]=" = "%K$*%n"; }; + +abstracts = { + ## + ## generic + ## + + # text to insert at the beginning of each non-message line + line_start = "%B-%W!%B-%n "; + + # timestamp styling, nothing by default + timestamp = "$*"; + + # any kind of text that needs hilighting, default is to bold + hilight = "%_$*%_"; + + # any kind of error message, default is bright red + error = "%R$*%n"; + + # channel name is printed + channel = "%_$*%_"; + + # nick is printed + nick = "%_$*%_"; + + # nick host is printed + nickhost = "[$*]"; + + # server name is printed + server = "%_$*%_"; + + # some kind of comment is printed + comment = "[$*]"; + + # reason for something is printed (part, quit, kick, ..) + reason = "{comment $*}"; + + # mode change is printed ([+o nick]) + mode = "{comment $*}"; + + ## + ## channel specific messages + ## + + # highlighted nick/host is printed (joins) + channick_hilight = "%C$*%n"; + chanhost_hilight = "{nickhost %c$*%n}"; + + # nick/host is printed (parts, quits, etc.) + channick = "%c$*%n"; + chanhost = "{nickhost $*}"; + + # highlighted channel name is printed + channelhilight = "%c$*%n"; + + # ban/ban exception/invite list mask is printed + ban = "%c$*%n"; + + ## + ## messages + ## + + # the basic styling of how to print message, $0 = nick mode, $1 = nick + msgnick = "%K<%w$0%n$1-%K>%n %|"; + + # message from you is printed. "msgownnick" specifies the styling of the + # nick ($0 part in msgnick) and "ownmsgnick" specifies the styling of the + # whole line. + + # Example1: You want the message text to be green: + # ownmsgnick = "{msgnick $0 $1-}%g"; + # Example2.1: You want < and > chars to be yellow: + # ownmsgnick = "%Y{msgnick $0 $1-%Y}%n"; + # (you'll also have to remove <> from replaces list above) + # Example2.2: But you still want to keep <> grey for other messages: + # pubmsgnick = "%K{msgnick $0 $1-%K}%n"; + # pubmsgmenick = "%K{msgnick $0 $1-%K}%n"; + # pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n"; + # ownprivmsgnick = "%K{msgnick $*%K}%n"; + # privmsgnick = "%K{msgnick %R$*%K}%n"; + + # $0 = nick mode, $1 = nick + ownmsgnick = "{msgnick $0 $1-}"; + ownnick = "%W$*%n"; + + # public message in channel, $0 = nick mode, $1 = nick + pubmsgnick = "{msgnick $0 $1-}"; + pubnick = "%N$*%n"; + + # public message in channel meant for me, $0 = nick mode, $1 = nick + pubmsgmenick = "{msgnick $0 $1-}"; + menick = "%Y$*%n"; + + # public highlighted message in channel + # $0 = highlight color, $1 = nick mode, $2 = nick + pubmsghinick = "{msgnick $1 $0$2-%n}"; + + # channel name is printed with message + msgchannel = "%K:%c$*%n"; + + # private message, $0 = nick, $1 = host + privmsg = "[%R$0%K(%r$1-%K)%n] "; + + # private message from you, $0 = "msg", $1 = target nick + ownprivmsg = "[%R$0%K(%R$1-%K)%n] "; + + # own private message in query + ownprivmsgnick = "{msgnick $*}"; + ownprivnick = "%W$*%n"; + + # private message in query + privmsgnick = "{msgnick %r$*%n}"; + + ## + ## Actions (/ME stuff) + ## + + # used internally by this theme + action_core = "%W * $*%n"; + + # generic one that's used by most actions + action = "{action_core $*} "; + + # own action, both private/public + ownaction = "{action $*}"; + + # own action with target, both private/public + ownaction_target = "{action_core $0}%K:%c$1%n "; + + # private action sent by others + pvtaction = "%W (*) $*%n "; + pvtaction_query = "{action $*}"; + + # public action sent by others + pubaction = "{action $*}"; + + + ## + ## other IRC events + ## + + # whois + whois = "%# $[8]0 : $1-"; + + # notices + ownnotice = "[%r$0%K(%R$1-%K)]%n "; + notice = "%K-%M$*%K-%n "; + pubnotice_channel = "%K:%m$*"; + pvtnotice_host = "%K(%m$*%K)"; + servernotice = "%g!$*%n "; + + # CTCPs + ownctcp = "[%r$0%K(%R$1-%K)] "; + ctcp = "%g$*%n"; + + # wallops + wallop = "%W$*%n: "; + wallop_nick = "%n$*"; + wallop_action = "%W * $*%n "; + + # netsplits + netsplit = "%R$*%n"; + netjoin = "%C$*%n"; + + # /names list + names_prefix = ""; + names_nick = "[%_$0%_$1-] "; + names_nick_op = "{names_nick $*}"; + names_nick_halfop = "{names_nick $*}"; + names_nick_voice = "{names_nick $*}"; + names_users = "[%g$*%n]"; + names_channel = "%G$*%n"; + + # DCC + dcc = "%g$*%n"; + dccfile = "%_$*%_"; + + # DCC chat, own msg/action + dccownmsg = "[%r$0%K($1-%K)%n] "; + dccownnick = "%R$*%n"; + dccownquerynick = "%W$*%n"; + dccownaction = "{action $*}"; + dccownaction_target = "{action_core $0}%K:%c$1%n "; + + # DCC chat, others + dccmsg = "[%G$1-%K(%g$0%K)%n] "; + dccquerynick = "%G$*%n"; + dccaction = "%W (*dcc*) $*%n %|"; + + ## + ## statusbar + ## + + # default background for all statusbars. You can also give + # the default foreground color for statusbar items. + sb_background = "%n%w"; + + # default backround for "default" statusbar group + #sb_default_bg = "%4"; + # background for prompt / input line + sb_prompt_bg = "%n"; + # background for info statusbar + sb_info_bg = "%8"; + # background for topicbar (same default) + #sb_topic_bg = "%4"; + + # text at the beginning of statusbars. sb-item already puts + # space there,so we don't use anything by default. + sbstart = ""; + # text at the end of statusbars. Use space so that it's never + # used for anything. + sbend = " "; + + topicsbstart = "{sbstart $*}"; + topicsbend = "{sbend $*}"; + + prompt = "[$*] "; + + sb = " %c[%n$*%c]%n"; + sbmode = "(%c+%n$*)"; + sbaway = " (%GzZzZ%n)"; + sbservertag = ":$0 (change with ^X)"; + sbnickmode = "$0"; + + # activity in statusbar + + # ',' separator + sb_act_sep = "%c$*"; + # normal text + sb_act_text = "%c$*"; + # public message + sb_act_msg = "%W$*"; + # hilight + sb_act_hilight = "%C$*"; + # hilight with specified color, $0 = color, $1 = text + sb_act_hilight_color = "$0$1-%n"; +}; +formats = { + "fe-common/core" = { + timestamp = "{timestamp %%H:%%M:%%S} "; + own_msg = "{ownmsgnick $2 {ownnick $[0]0}}$1"; + pubmsg = "{pubmsgnick $2 {pubnick \00309$[0]0}}$1"; + }; +}; diff --git a/.irssi/scripts/autorun/nickcolor.pl b/.irssi/scripts/autorun/nickcolor.pl new file mode 100644 index 0000000..95b7b63 --- /dev/null +++ b/.irssi/scripts/autorun/nickcolor.pl @@ -0,0 +1,253 @@ +use strict; +use Irssi 20020101.0250 (); +use vars qw($VERSION %IRSSI); +$VERSION = "2.1"; +%IRSSI = ( + authors => "Timo Sirainen, Ian Peters, David Leadbeater, Bruno Cattáneo", + contact => "tss\@iki.fi", + name => "Nick Color", + description => "assign a different color for each nick", + license => "Public Domain", + url => "http://irssi.org/", + changed => "Mon 08 Jan 21:28:53 BST 2018", +); + +# Settings: +# nickcolor_colors: List of color codes to use. +# e.g. /set nickcolor_colors 2 3 4 5 6 7 9 10 11 12 13 +# (avoid 8, as used for hilights in the default theme). +# +# nickcolor_enable_prefix: Enables prefix for same nick. +# +# nickcolor_enable_truncate: Enables nick truncation. +# +# nickcolor_prefix_text: Prefix text for succesive messages. +# e.g. /set nickcolor_prefix_text - +# +# nickcolor_truncate_value: Truncate nick value. +# e.g. /set nickcolor_truncate_value -7 +# This will truncate nicknames at 7 characters and make them right aligned + +my %saved_colors; +my %session_colors = {}; +my %saved_nicks; # To store each channel's last nickname + +sub load_colors { + open my $color_fh, "<", "$ENV{HOME}/.irssi/saved_colors"; + while (<$color_fh>) { + chomp; + my($nick, $color) = split ":"; + $saved_colors{$nick} = $color; + } +} + +sub save_colors { + open COLORS, ">", "$ENV{HOME}/.irssi/saved_colors"; + + foreach my $nick (keys %saved_colors) { + print COLORS "$nick:$saved_colors{$nick}\n"; + } + + close COLORS; +} + +# If someone we've colored (either through the saved colors, or the hash +# function) changes their nick, we'd like to keep the same color associated +# with them (but only in the session_colors, ie a temporary mapping). + +sub sig_nick { + my ($server, $newnick, $nick, $address) = @_; + my $color; + + $newnick = substr ($newnick, 1) if ($newnick =~ /^:/); + + if ($color = $saved_colors{$nick}) { + $session_colors{$newnick} = $color; + } elsif ($color = $session_colors{$nick}) { + $session_colors{$newnick} = $color; + } +} + +# This gave reasonable distribution values when run across +# /usr/share/dict/words + +sub simple_hash { + my ($string) = @_; + chomp $string; + my @chars = split //, $string; + my $counter; + + foreach my $char (@chars) { + $counter += ord $char; + } + + my @colors = split / /, Irssi::settings_get_str('nickcolor_colors'); + $counter = $colors[$counter % @colors]; + + return $counter; +} + +# process public (others) messages +sub sig_public { + my ($server, $msg, $nick, $address, $target) = @_; + + my $enable_prefix = Irssi::settings_get_bool('nickcolor_enable_prefix'); + my $enable_truncate = Irssi::settings_get_bool('nickcolor_enable_truncate'); + my $prefix_text = Irssi::settings_get_str('nickcolor_prefix_text'); + my $truncate_value = Irssi::settings_get_int('nickcolor_truncate_value'); + + # Reference for server/channel + my $tagtarget = "$server->{tag}/$target"; + + # Set default nick truncate value to 0 if option is disabled + $truncate_value = 0 if (!$enable_truncate); + + # Has the user assigned this nick a color? + my $color = $saved_colors{$nick}; + + # Have -we- already assigned this nick a color? + if (!$color) { + $color = $session_colors{$nick}; + } + + # Let's assign this nick a color + if (!$color) { + $color = simple_hash $nick; + $session_colors{$nick} = $color; + } + + $color = sprintf "\003%02d", $color; + + # Optional: We check if it's the same nickname for current target + if ($saved_nicks{$tagtarget} eq $nick && $enable_prefix) + { + # Grouped message + Irssi::command('/^format pubmsg ' . $prefix_text . '$1'); + } + else + { + # Normal message + Irssi::command('/^format pubmsg {pubmsgnick $2 {pubnick ' . $color . '$[' . $truncate_value . ']0}}$1'); + + # Save nickname for next message + $saved_nicks{$tagtarget} = $nick; + } + +} + +# process public (me) messages +sub sig_me { + my ($server, $msg, $target) = @_; + my $nick = $server->{nick}; + + my $enable_prefix = Irssi::settings_get_bool('nickcolor_enable_prefix'); + my $enable_truncate = Irssi::settings_get_bool('nickcolor_enable_truncate'); + my $prefix_text = Irssi::settings_get_str('nickcolor_prefix_text'); + my $truncate_value = Irssi::settings_get_int('nickcolor_truncate_value'); + + # Reference for server/channel + my $tagtarget = "$server->{tag}/$target"; + + # Set default nick truncate value to 0 if option is disabled + $truncate_value = 0 if (!$enable_truncate); + + # Optional: We check if it's the same nickname for current target + if ($saved_nicks{$tagtarget} eq $nick && $enable_prefix) + { + # Grouped message + Irssi::command('/^format own_msg ' . $prefix_text . '$1'); + } + else + { + # Normal message + Irssi::command('/^format own_msg {ownmsgnick $2 {ownnick $[' . $truncate_value . ']0}}$1'); + + # Save nickname for next message + $saved_nicks{$tagtarget} = $nick; + } + +} + +# process public (others) actions +sub sig_action_public { + my ($server, $msg, $nick, $address, $target) = @_; + + my $enable_prefix = Irssi::settings_get_bool('nickcolor_enable_prefix'); + + # Reference for server/channel + my $tagtarget = "$server->{tag}/$target"; + + # Empty current target nick if prefix option is enabled + $saved_nicks{$tagtarget} = '' if ($enable_prefix); + +} + +# process public (me) actions +sub sig_action_me { + my ($server, $msg, $target) = @_; + my $nick = $server->{nick}; + + my $enable_prefix = Irssi::settings_get_bool('nickcolor_enable_prefix'); + + # Reference for server/channel + my $tagtarget = "$server->{tag}/$target"; + + # Empty current target nick if prefix option is enabled + $saved_nicks{$tagtarget} = '' if ($enable_prefix); + +} + +sub cmd_color { + my ($data, $server, $witem) = @_; + my ($op, $nick, $color) = split " ", $data; + + $op = lc $op; + + if (!$op) { + Irssi::print ("No operation given (save/set/clear/list/preview)"); + } elsif ($op eq "save") { + save_colors; + } elsif ($op eq "set") { + if (!$nick) { + Irssi::print ("Nick not given"); + } elsif (!$color) { + Irssi::print ("Color not given"); + } elsif ($color < 2 || $color > 14) { + Irssi::print ("Color must be between 2 and 14 inclusive"); + } else { + $saved_colors{$nick} = $color; + } + } elsif ($op eq "clear") { + if (!$nick) { + Irssi::print ("Nick not given"); + } else { + delete ($saved_colors{$nick}); + } + } elsif ($op eq "list") { + Irssi::print ("\nSaved Colors:"); + foreach my $nick (keys %saved_colors) { + Irssi::print (chr (3) . sprintf("%02d", $saved_colors{$nick}) . "$nick" . + chr (3) . "1 ($saved_colors{$nick})"); + } + } elsif ($op eq "preview") { + Irssi::print ("\nAvailable colors:"); + foreach my $i (2..14) { + Irssi::print (chr (3) . "$i" . "Color #$i"); + } + } +} + +load_colors; + +Irssi::settings_add_str('misc', 'nickcolor_colors', '2 3 4 5 6 7 9 10 11 12 13'); +Irssi::settings_add_bool('misc', 'nickcolor_enable_prefix', 0); +Irssi::settings_add_bool('misc', 'nickcolor_enable_truncate', 0); +Irssi::settings_add_str('misc', 'nickcolor_prefix_text' => '- '); +Irssi::settings_add_int('misc', 'nickcolor_truncate_value' => 0); +Irssi::command_bind('color', 'cmd_color'); + +Irssi::signal_add('message public', 'sig_public'); +Irssi::signal_add('message own_public', 'sig_me'); +Irssi::signal_add('message irc action', 'sig_action_public'); +Irssi::signal_add('message irc own_action', 'sig_action_me'); +Irssi::signal_add('event nick', 'sig_nick'); diff --git a/.irssi/scripts/autorun/theme.pl b/.irssi/scripts/autorun/theme.pl new file mode 100644 index 0000000..b7bc22e --- /dev/null +++ b/.irssi/scripts/autorun/theme.pl @@ -0,0 +1,450 @@ +use strict; +use vars qw($VERSION %IRSSI); +use File::Basename; +use File::Fetch; +use File::Glob ':bsd_glob'; +use Getopt::Long qw/GetOptionsFromString/; +use Storable qw/store_fd fd_retrieve/; +use YAML::XS; + +use Irssi; + +$VERSION = '0.03'; +%IRSSI = ( + authors => 'bw1', + contact => 'bw1@aol.at', + name => 'theme', + description => 'activate, show or get theme', + license => 'Public Domain', + url => 'https://scripts.irssi.org/', + changed => '2019-07-02', + modules => 'File::Basename File::Fetch File::Glob Getopt::Long Storable YAML::XS', + commands=> 'theme', +); + +my $help = << "END"; +%9Name%9 + $IRSSI{name} +%9Version%9 + $VERSION +%9Synopsis%9 + /theme {-g|-get} + /theme [theme] [options] +%9Options%9 + -next|-n next theme in dir + -previous|-p previous theme in dir + -show|-s show a test text + -reload|-r reload the dir + -get|-g get a theme form a website + -list|-l list theme in dir + -update|-u download themes.yaml + -info|-i print info + -fg_color|-f set or reset the foreground color + -bg_color|-b set or reset the background color + -help|-h +%9Description%9 + $IRSSI{description} +%9Settings%9 + /set theme_source https://irssi-import.github.io/themes/ + /set theme_local ~/.irssi/ + /set theme_autocolor off +%9Color%9 + the script can set + VT100 text foreground color + VT100 text background color + tested with xterm, konsole, lxterm +%9See also%9 + https://irssi-import.github.io/themes/ + https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Operating-System-Commands + https://en.wikipedia.org/wiki/X11_color_names +END + +my (%themes, @dtl); +my (@tl, $count); +my ($show, $update, $get, $list, $phelp, $info, $yupdate, $fg_color, $bg_color); +my ($noxterm); +my %options = ( + 'n' => sub{ $count++; $update=1}, + 'next' => sub{ $count++; $update=1}, + 'p' => sub{ $count--; $update=1}, + 'previous' => sub{ $count--; $update=1}, + 's' => \$show, + 'show' => \$show, + 'r' => \&init, + 'reload' => \&init, + 'g=s' => \$get, + 'get=s' => \$get, + 'l' => \$list, + 'list' => \$list, + 'h' => \$phelp, + 'help' => \$phelp, + 'u' => \$yupdate, + 'update' => \$yupdate, + 'i:s' => \$info, + 'info:s' => \$info, + 'f:s' => \$fg_color, + 'fg_color:s' => \$fg_color, + 'b:s' => \$bg_color, + 'bg_color:s' => \$bg_color, +); + +my $lorem = << 'END'; +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod +tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At +vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd +gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum +dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor +invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero +eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no +sea takimata sanctus est Lorem ipsum dolor sit amet. +END + +my ($theme_source, $theme_local, $theme_autocolor); +my %bg_process= (); + +sub background { + my ($cmd) =@_; + my ($fh_r, $fh_w); + pipe $fh_r, $fh_w; + my $pid = fork(); + if ($pid ==0 ) { + my @res; + @res= &{$cmd->{cmd}}(@{$cmd->{args}}); + store_fd \@res, $fh_w; + close $fh_w; + POSIX::_exit(1); + } else { + $cmd->{fh_r}=$fh_r; + Irssi::pidwait_add($pid); + $bg_process{$pid}=$cmd; + } +} + +sub sig_pidwait { + my ($pid, $status) = @_; + if (exists $bg_process{$pid}) { + my @res= @{ fd_retrieve($bg_process{$pid}->{fh_r})}; + $bg_process{$pid}->{res}=[@res]; + if (exists $bg_process{$pid}->{last}) { + foreach my $p (@{$bg_process{$pid}->{last}}) { + &$p($bg_process{$pid}); + } + } else { + Irssi::print(join(" ",@res), MSGLEVEL_CLIENTCRAP); + } + delete $bg_process{$pid}; + } +} + +sub cmd_show { + my ($args, $server, $witem)=@_; + my $t = Irssi::settings_get_str('theme'); + if (defined $witem) { + $witem->print( + "----- $t -- $count -----", + MSGLEVEL_CLIENTCRAP); + $witem->command('names'); + core_printformat_module_w($witem, + MSGLEVEL_CLIENTCRAP, 'fe-common/core', 'pubmsg', 'testnick', $lorem, '@'); + core_printformat_module_w($witem, + MSGLEVEL_CLIENTCRAP, 'fe-common/core', 'pubmsg_me', 'testnick', + 'me: '.substr($lorem, 0, 30),'@'); + core_printformat_module_w($witem, + MSGLEVEL_CLIENTCRAP, 'fe-common/core', 'own_msg', 'me', + substr($lorem, 0, 30),'@'); + } else { + Irssi::print( + "----- $t -- $count -----", + MSGLEVEL_CLIENTCRAP); + core_printformat_module( + MSGLEVEL_CLIENTCRAP, 'fe-common/core', 'pubmsg', 'testnick', $lorem, '@'); + core_printformat_module( + MSGLEVEL_CLIENTCRAP, 'fe-common/core', 'pubmsg_me', 'testnick', + 'me: '.substr($lorem, 0, 30),'@'); + core_printformat_module( + MSGLEVEL_CLIENTCRAP, 'fe-common/core', 'own_msg', 'me', + substr($lorem, 0, 30),'@'); + } +} + +sub core_printformat_module { + my ($level, $module, $format, @args) = @_; + { + local *CORE::GLOBAL::caller = sub { $module }; + Irssi::printformat($level, $format, @args); + } +} + +sub core_printformat_module_w { + my ($witem, $level, $module, $format, @args) = @_; + { + local *CORE::GLOBAL::caller = sub { $module }; + $witem->printformat($level, $format, @args); + } +} + +sub set_fg_color { + my ($fg) = @_; + if ($ENV{'TERM'} =~ m/^xterm/) { + if ( defined $fg ) { + print STDERR "\033]10;$fg\a"; + } else { + print STDERR "\033]110\a"; + } + } else { + $noxterm.=" and " if ($noxterm); + $noxterm.="fg_color:$fg"; + } +} + +sub set_bg_color { + my ($bg) = @_; + if ($ENV{'TERM'} =~ m/^xterm/) { + if ( defined $bg) { + print STDERR "\033]11;$bg\a"; + } else { + print STDERR "\033]111\a"; + } + } else { + $noxterm.=" and " if ($noxterm); + $noxterm.="bg_color:$bg"; + } +} + + +sub get_theme { + my ($args)=@_; + local $File::Fetch::WARN=0; + $get.= '.theme' if $get !~ m/\.theme/; + my $ff= File::Fetch->new(uri => $theme_source.$get); + my $where = $ff->fetch( to => $theme_local ) or + return "Error: $theme_source$get not found"; + return "$get downloaded."; +} + +sub get_yaml { + local $File::Fetch::WARN=0; + my $get='themes.yaml'; + if (-e $theme_local.$get) { + unlink $theme_local.$get; + } + my $ff= File::Fetch->new(uri => $theme_source.$get); + my $where = $ff->fetch( to => $theme_local ) or + return "Error: $theme_source$get not found"; + return "$get downloaded."; +} + +sub cmd_set { + my ($args, $server, $witem)=@_; + my $t = $tl[$count]; + if (defined $t) { + Irssi::settings_set_str('theme',$t); + Irssi::signal_emit('setup changed'); + if ($theme_autocolor) { + set_fg_color($themes{$t}->{fgColor}); + set_bg_color($themes{$t}->{bgColor}); + } + } +} + +sub cmd { + my ($args, $server, $witem)=@_; + my ($ret, $arg) = GetOptionsFromString($args, %options); + if ( defined $$arg[0]) { + my $c=0; + foreach my $t (@tl) { + if ($t eq $$arg[0]) { + $count=$c; + last; + } + $c++; + } + cmd_set(); + } + if (defined $update) { + if ($count <0) { + $count = $#tl+$count+1; + } + if ($count >$#tl) { + $count = $count-$#tl-1; + } + cmd_set(); + $update= undef; + } + if (defined $show) { + cmd_show($args, $server, $witem); + $show = undef; + } + if (defined $get) { + my $cmd; + $cmd->{cmd}=\&get_theme; + $cmd->{args}=[$args]; + $cmd->{last}=[ + \&init, + \&print_result, + ]; + background( $cmd ); + $get = undef; + } + if (defined $yupdate) { + my $cmd; + $cmd->{cmd}=\&get_yaml; + $cmd->{last}=[ + \&init, + \&print_result, + ]; + background( $cmd ); + $yupdate = undef; + } + if (defined $list) { + my $c=0; + foreach (@tl) { + if ($c == $count) { + Irssi::print(">>$_<<", MSGLEVEL_CLIENTCRAP); + } else { + Irssi::print(" $_", MSGLEVEL_CLIENTCRAP); + } + $c++; + } + $list = undef; + } + if (defined $info) { + cmd_info($args, $server, $witem); + $info = undef; + } + if (defined $phelp || $args eq '' ) { + cmd_help($IRSSI{name}, $server, $witem); + $phelp = undef; + } + if (defined $fg_color) { + if (length($fg_color)>0) { + set_fg_color($fg_color); + } else { + set_fg_color(); + } + $fg_color= undef; + } + if (defined $bg_color) { + if (length($bg_color)>0) { + set_bg_color($bg_color); + } else { + set_bg_color(); + } + $bg_color= undef; + } + if (defined $noxterm) { + Irssi::print( + "Do not know how to set colour for your terminal ($ENV{TERM})." + , MSGLEVEL_CLIENTCRAP); + Irssi::print( + "Manually configure it for $noxterm" + , MSGLEVEL_CLIENTCRAP); + $noxterm= undef; + } +} + +sub cmd_info { + my ($args, $server, $witem)=@_; + Irssi::print("Info: $info", MSGLEVEL_CLIENTCRAP); + if (exists $themes{$info}) { + Irssi::print(Dump($themes{$info}), MSGLEVEL_CLIENTCRAP); + } elsif (exists $themes{$tl[$count]}) { + Irssi::print(Dump($themes{$tl[$count]}), MSGLEVEL_CLIENTCRAP); + } +} + +sub cmd_help { + my ($args, $server, $witem)=@_; + $args=~ s/\s+//g; + if ($IRSSI{name} eq $args) { + Irssi::print($help, MSGLEVEL_CLIENTCRAP); + Irssi::signal_stop(); + } +} + +sub sig_setup_changed { + $theme_source= Irssi::settings_get_str($IRSSI{name}.'_source'); + $theme_source.= '/' if $theme_source !~ m#/$#; + my $l= Irssi::settings_get_str($IRSSI{name}.'_local'); + $theme_local= bsd_glob $l; + $theme_local.= '/' if $theme_local !~ m#/$#; + $theme_autocolor= Irssi::settings_get_bool($IRSSI{name}.'_autocolor'); +} + +sub print_result { + my ($cmd) = @_; + if (defined $cmd->{res}->[0]) { + Irssi::print($cmd->{res}->[0] , MSGLEVEL_CLIENTCRAP); + } +} + +sub do_complete { + my ($strings, $window, $word, $linestart, $want_space) = @_; + return unless $linestart =~ m#^/$IRSSI{name}#; + return if $word =~ m#^-#; + if ( $linestart !~ m/(-g|-get|-i|-info)/ ) { + @$strings = grep { m/^$word/} @tl; + } else { + @$strings = grep { m/^$word/} @dtl; + } + Irssi::signal_stop; +} + +sub init { + my $theme = Irssi::settings_get_str('theme'); + my $p1= Irssi::get_irssi_dir(); + my @t = bsd_glob $p1.'/*.theme'; + @tl=(); + my $c=0; + foreach my $fn (@t) { + $fn = basename($fn, '.theme'); + push @tl, $fn; + $count=$c if $theme eq $fn; + $c++; + } + $lorem =~ s/\n/ /g; + if (-e $p1.'/themes.yaml') { + @dtl=undef; + my @l; + open my $fi, '<',$p1.'/themes.yaml'; + my $syml= do {local $/; <$fi>}; + close $fi; + eval { + @l = @{Load($syml)}; + }; + if (length($@) >0) { + print $@; + } else { + foreach my $e (@l) { + $themes{$e->{name}}=$e; + push @dtl, $e->{name}; + } + } + } +} + +Irssi::signal_add_first('complete word', \&do_complete); +Irssi::signal_add('setup changed', \&sig_setup_changed); +Irssi::signal_add('pidwait', \&sig_pidwait); + +Irssi::settings_add_str($IRSSI{name} ,$IRSSI{name}.'_source', 'https://irssi-import.github.io/themes/'); +Irssi::settings_add_str($IRSSI{name} ,$IRSSI{name}.'_local', Irssi::get_irssi_dir()); +Irssi::settings_add_bool($IRSSI{name} ,$IRSSI{name}.'_autocolor', 0); + +Irssi::command_bind($IRSSI{name}, \&cmd); +my @opt=map {s/[=:].*$//, $_} keys %options; +Irssi::command_set_options($IRSSI{name}, join(" ", @opt)); +Irssi::command_bind('help', \&cmd_help); + +init(); +sig_setup_changed(); + +if (!(-e $theme_local.'themes.yaml')) { + my $cmd; + $cmd->{cmd}=\&get_yaml; + $cmd->{last}=[ + \&init, + \&print_result, + ]; + background( $cmd ); +} diff --git a/.irssi/scripts/chaos.pl b/.irssi/scripts/chaos.pl new file mode 100644 index 0000000..8470fab --- /dev/null +++ b/.irssi/scripts/chaos.pl @@ -0,0 +1,42 @@ +use strict; +use Irssi; +use vars qw($VERSION %IRSSI); + +$VERSION = "1.0"; +%IRSSI = ( + authors => 'LickTheCheese', + name => 'stop banning me khux', + description => 'what did i ever do to you', + license => 'GNU GPL v2 or later', +); + +sub bit +{ + my($server) =@_; + + + $server->command("MSG #chaos ,kick *"); + $server->command("KICK #chaos BitBot"); + +} + +sub ub +{ + my($server) = @_; + + $server->command("JOIN #chaos"); + Irssi::timeout_add_once(10, "bit", $server ); +} + + +sub uchaos +{ + my($data, $server, $witem, $time, $text) = @_; + + $server->command("MSG ChanServ UNBAN #chaos"); + Irssi::timeout_add_once(300, "ub", $server ); + +} + +Irssi::command_bind uchaos => \&uchaos; + diff --git a/.irssi/scripts/flip.pl b/.irssi/scripts/flip.pl new file mode 100644 index 0000000..872534e --- /dev/null +++ b/.irssi/scripts/flip.pl @@ -0,0 +1,21 @@ +use strict; +use Irssi; +use vars qw($VERSION %IRSSI); + +$VERSION = "1.0"; +%IRSSI = ( + authors => 'LickTheCheese', + name => 'flip bot', + description => 'a bot that you get coins from lol', + license => 'GNU GPL v2 or later', +); + +sub event_privmsg { +my ($server, $data, $nick, $mask, $target) =@_; +my ($target, $text) = $data =~ /^(\S*)\s:(.*)/; + if ( index($text, "cheese flips tails and wins") != -1 ) { + $server->command ( "msg $target ,sendcoins leekthecheese 100" ); + $server->command ( "msg $target ,flip tails all" ); + } +} +Irssi::signal_add('event privmsg', 'event_privmsg'); diff --git a/.irssi/scripts/nickcolor.pl b/.irssi/scripts/nickcolor.pl new file mode 100644 index 0000000..95b7b63 --- /dev/null +++ b/.irssi/scripts/nickcolor.pl @@ -0,0 +1,253 @@ +use strict; +use Irssi 20020101.0250 (); +use vars qw($VERSION %IRSSI); +$VERSION = "2.1"; +%IRSSI = ( + authors => "Timo Sirainen, Ian Peters, David Leadbeater, Bruno Cattáneo", + contact => "tss\@iki.fi", + name => "Nick Color", + description => "assign a different color for each nick", + license => "Public Domain", + url => "http://irssi.org/", + changed => "Mon 08 Jan 21:28:53 BST 2018", +); + +# Settings: +# nickcolor_colors: List of color codes to use. +# e.g. /set nickcolor_colors 2 3 4 5 6 7 9 10 11 12 13 +# (avoid 8, as used for hilights in the default theme). +# +# nickcolor_enable_prefix: Enables prefix for same nick. +# +# nickcolor_enable_truncate: Enables nick truncation. +# +# nickcolor_prefix_text: Prefix text for succesive messages. +# e.g. /set nickcolor_prefix_text - +# +# nickcolor_truncate_value: Truncate nick value. +# e.g. /set nickcolor_truncate_value -7 +# This will truncate nicknames at 7 characters and make them right aligned + +my %saved_colors; +my %session_colors = {}; +my %saved_nicks; # To store each channel's last nickname + +sub load_colors { + open my $color_fh, "<", "$ENV{HOME}/.irssi/saved_colors"; + while (<$color_fh>) { + chomp; + my($nick, $color) = split ":"; + $saved_colors{$nick} = $color; + } +} + +sub save_colors { + open COLORS, ">", "$ENV{HOME}/.irssi/saved_colors"; + + foreach my $nick (keys %saved_colors) { + print COLORS "$nick:$saved_colors{$nick}\n"; + } + + close COLORS; +} + +# If someone we've colored (either through the saved colors, or the hash +# function) changes their nick, we'd like to keep the same color associated +# with them (but only in the session_colors, ie a temporary mapping). + +sub sig_nick { + my ($server, $newnick, $nick, $address) = @_; + my $color; + + $newnick = substr ($newnick, 1) if ($newnick =~ /^:/); + + if ($color = $saved_colors{$nick}) { + $session_colors{$newnick} = $color; + } elsif ($color = $session_colors{$nick}) { + $session_colors{$newnick} = $color; + } +} + +# This gave reasonable distribution values when run across +# /usr/share/dict/words + +sub simple_hash { + my ($string) = @_; + chomp $string; + my @chars = split //, $string; + my $counter; + + foreach my $char (@chars) { + $counter += ord $char; + } + + my @colors = split / /, Irssi::settings_get_str('nickcolor_colors'); + $counter = $colors[$counter % @colors]; + + return $counter; +} + +# process public (others) messages +sub sig_public { + my ($server, $msg, $nick, $address, $target) = @_; + + my $enable_prefix = Irssi::settings_get_bool('nickcolor_enable_prefix'); + my $enable_truncate = Irssi::settings_get_bool('nickcolor_enable_truncate'); + my $prefix_text = Irssi::settings_get_str('nickcolor_prefix_text'); + my $truncate_value = Irssi::settings_get_int('nickcolor_truncate_value'); + + # Reference for server/channel + my $tagtarget = "$server->{tag}/$target"; + + # Set default nick truncate value to 0 if option is disabled + $truncate_value = 0 if (!$enable_truncate); + + # Has the user assigned this nick a color? + my $color = $saved_colors{$nick}; + + # Have -we- already assigned this nick a color? + if (!$color) { + $color = $session_colors{$nick}; + } + + # Let's assign this nick a color + if (!$color) { + $color = simple_hash $nick; + $session_colors{$nick} = $color; + } + + $color = sprintf "\003%02d", $color; + + # Optional: We check if it's the same nickname for current target + if ($saved_nicks{$tagtarget} eq $nick && $enable_prefix) + { + # Grouped message + Irssi::command('/^format pubmsg ' . $prefix_text . '$1'); + } + else + { + # Normal message + Irssi::command('/^format pubmsg {pubmsgnick $2 {pubnick ' . $color . '$[' . $truncate_value . ']0}}$1'); + + # Save nickname for next message + $saved_nicks{$tagtarget} = $nick; + } + +} + +# process public (me) messages +sub sig_me { + my ($server, $msg, $target) = @_; + my $nick = $server->{nick}; + + my $enable_prefix = Irssi::settings_get_bool('nickcolor_enable_prefix'); + my $enable_truncate = Irssi::settings_get_bool('nickcolor_enable_truncate'); + my $prefix_text = Irssi::settings_get_str('nickcolor_prefix_text'); + my $truncate_value = Irssi::settings_get_int('nickcolor_truncate_value'); + + # Reference for server/channel + my $tagtarget = "$server->{tag}/$target"; + + # Set default nick truncate value to 0 if option is disabled + $truncate_value = 0 if (!$enable_truncate); + + # Optional: We check if it's the same nickname for current target + if ($saved_nicks{$tagtarget} eq $nick && $enable_prefix) + { + # Grouped message + Irssi::command('/^format own_msg ' . $prefix_text . '$1'); + } + else + { + # Normal message + Irssi::command('/^format own_msg {ownmsgnick $2 {ownnick $[' . $truncate_value . ']0}}$1'); + + # Save nickname for next message + $saved_nicks{$tagtarget} = $nick; + } + +} + +# process public (others) actions +sub sig_action_public { + my ($server, $msg, $nick, $address, $target) = @_; + + my $enable_prefix = Irssi::settings_get_bool('nickcolor_enable_prefix'); + + # Reference for server/channel + my $tagtarget = "$server->{tag}/$target"; + + # Empty current target nick if prefix option is enabled + $saved_nicks{$tagtarget} = '' if ($enable_prefix); + +} + +# process public (me) actions +sub sig_action_me { + my ($server, $msg, $target) = @_; + my $nick = $server->{nick}; + + my $enable_prefix = Irssi::settings_get_bool('nickcolor_enable_prefix'); + + # Reference for server/channel + my $tagtarget = "$server->{tag}/$target"; + + # Empty current target nick if prefix option is enabled + $saved_nicks{$tagtarget} = '' if ($enable_prefix); + +} + +sub cmd_color { + my ($data, $server, $witem) = @_; + my ($op, $nick, $color) = split " ", $data; + + $op = lc $op; + + if (!$op) { + Irssi::print ("No operation given (save/set/clear/list/preview)"); + } elsif ($op eq "save") { + save_colors; + } elsif ($op eq "set") { + if (!$nick) { + Irssi::print ("Nick not given"); + } elsif (!$color) { + Irssi::print ("Color not given"); + } elsif ($color < 2 || $color > 14) { + Irssi::print ("Color must be between 2 and 14 inclusive"); + } else { + $saved_colors{$nick} = $color; + } + } elsif ($op eq "clear") { + if (!$nick) { + Irssi::print ("Nick not given"); + } else { + delete ($saved_colors{$nick}); + } + } elsif ($op eq "list") { + Irssi::print ("\nSaved Colors:"); + foreach my $nick (keys %saved_colors) { + Irssi::print (chr (3) . sprintf("%02d", $saved_colors{$nick}) . "$nick" . + chr (3) . "1 ($saved_colors{$nick})"); + } + } elsif ($op eq "preview") { + Irssi::print ("\nAvailable colors:"); + foreach my $i (2..14) { + Irssi::print (chr (3) . "$i" . "Color #$i"); + } + } +} + +load_colors; + +Irssi::settings_add_str('misc', 'nickcolor_colors', '2 3 4 5 6 7 9 10 11 12 13'); +Irssi::settings_add_bool('misc', 'nickcolor_enable_prefix', 0); +Irssi::settings_add_bool('misc', 'nickcolor_enable_truncate', 0); +Irssi::settings_add_str('misc', 'nickcolor_prefix_text' => '- '); +Irssi::settings_add_int('misc', 'nickcolor_truncate_value' => 0); +Irssi::command_bind('color', 'cmd_color'); + +Irssi::signal_add('message public', 'sig_public'); +Irssi::signal_add('message own_public', 'sig_me'); +Irssi::signal_add('message irc action', 'sig_action_public'); +Irssi::signal_add('message irc own_action', 'sig_action_me'); +Irssi::signal_add('event nick', 'sig_nick'); diff --git a/.irssi/scripts/theme.pl b/.irssi/scripts/theme.pl new file mode 100644 index 0000000..b7bc22e --- /dev/null +++ b/.irssi/scripts/theme.pl @@ -0,0 +1,450 @@ +use strict; +use vars qw($VERSION %IRSSI); +use File::Basename; +use File::Fetch; +use File::Glob ':bsd_glob'; +use Getopt::Long qw/GetOptionsFromString/; +use Storable qw/store_fd fd_retrieve/; +use YAML::XS; + +use Irssi; + +$VERSION = '0.03'; +%IRSSI = ( + authors => 'bw1', + contact => 'bw1@aol.at', + name => 'theme', + description => 'activate, show or get theme', + license => 'Public Domain', + url => 'https://scripts.irssi.org/', + changed => '2019-07-02', + modules => 'File::Basename File::Fetch File::Glob Getopt::Long Storable YAML::XS', + commands=> 'theme', +); + +my $help = << "END"; +%9Name%9 + $IRSSI{name} +%9Version%9 + $VERSION +%9Synopsis%9 + /theme {-g|-get} + /theme [theme] [options] +%9Options%9 + -next|-n next theme in dir + -previous|-p previous theme in dir + -show|-s show a test text + -reload|-r reload the dir + -get|-g get a theme form a website + -list|-l list theme in dir + -update|-u download themes.yaml + -info|-i print info + -fg_color|-f set or reset the foreground color + -bg_color|-b set or reset the background color + -help|-h +%9Description%9 + $IRSSI{description} +%9Settings%9 + /set theme_source https://irssi-import.github.io/themes/ + /set theme_local ~/.irssi/ + /set theme_autocolor off +%9Color%9 + the script can set + VT100 text foreground color + VT100 text background color + tested with xterm, konsole, lxterm +%9See also%9 + https://irssi-import.github.io/themes/ + https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Operating-System-Commands + https://en.wikipedia.org/wiki/X11_color_names +END + +my (%themes, @dtl); +my (@tl, $count); +my ($show, $update, $get, $list, $phelp, $info, $yupdate, $fg_color, $bg_color); +my ($noxterm); +my %options = ( + 'n' => sub{ $count++; $update=1}, + 'next' => sub{ $count++; $update=1}, + 'p' => sub{ $count--; $update=1}, + 'previous' => sub{ $count--; $update=1}, + 's' => \$show, + 'show' => \$show, + 'r' => \&init, + 'reload' => \&init, + 'g=s' => \$get, + 'get=s' => \$get, + 'l' => \$list, + 'list' => \$list, + 'h' => \$phelp, + 'help' => \$phelp, + 'u' => \$yupdate, + 'update' => \$yupdate, + 'i:s' => \$info, + 'info:s' => \$info, + 'f:s' => \$fg_color, + 'fg_color:s' => \$fg_color, + 'b:s' => \$bg_color, + 'bg_color:s' => \$bg_color, +); + +my $lorem = << 'END'; +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod +tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At +vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd +gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum +dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor +invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero +eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no +sea takimata sanctus est Lorem ipsum dolor sit amet. +END + +my ($theme_source, $theme_local, $theme_autocolor); +my %bg_process= (); + +sub background { + my ($cmd) =@_; + my ($fh_r, $fh_w); + pipe $fh_r, $fh_w; + my $pid = fork(); + if ($pid ==0 ) { + my @res; + @res= &{$cmd->{cmd}}(@{$cmd->{args}}); + store_fd \@res, $fh_w; + close $fh_w; + POSIX::_exit(1); + } else { + $cmd->{fh_r}=$fh_r; + Irssi::pidwait_add($pid); + $bg_process{$pid}=$cmd; + } +} + +sub sig_pidwait { + my ($pid, $status) = @_; + if (exists $bg_process{$pid}) { + my @res= @{ fd_retrieve($bg_process{$pid}->{fh_r})}; + $bg_process{$pid}->{res}=[@res]; + if (exists $bg_process{$pid}->{last}) { + foreach my $p (@{$bg_process{$pid}->{last}}) { + &$p($bg_process{$pid}); + } + } else { + Irssi::print(join(" ",@res), MSGLEVEL_CLIENTCRAP); + } + delete $bg_process{$pid}; + } +} + +sub cmd_show { + my ($args, $server, $witem)=@_; + my $t = Irssi::settings_get_str('theme'); + if (defined $witem) { + $witem->print( + "----- $t -- $count -----", + MSGLEVEL_CLIENTCRAP); + $witem->command('names'); + core_printformat_module_w($witem, + MSGLEVEL_CLIENTCRAP, 'fe-common/core', 'pubmsg', 'testnick', $lorem, '@'); + core_printformat_module_w($witem, + MSGLEVEL_CLIENTCRAP, 'fe-common/core', 'pubmsg_me', 'testnick', + 'me: '.substr($lorem, 0, 30),'@'); + core_printformat_module_w($witem, + MSGLEVEL_CLIENTCRAP, 'fe-common/core', 'own_msg', 'me', + substr($lorem, 0, 30),'@'); + } else { + Irssi::print( + "----- $t -- $count -----", + MSGLEVEL_CLIENTCRAP); + core_printformat_module( + MSGLEVEL_CLIENTCRAP, 'fe-common/core', 'pubmsg', 'testnick', $lorem, '@'); + core_printformat_module( + MSGLEVEL_CLIENTCRAP, 'fe-common/core', 'pubmsg_me', 'testnick', + 'me: '.substr($lorem, 0, 30),'@'); + core_printformat_module( + MSGLEVEL_CLIENTCRAP, 'fe-common/core', 'own_msg', 'me', + substr($lorem, 0, 30),'@'); + } +} + +sub core_printformat_module { + my ($level, $module, $format, @args) = @_; + { + local *CORE::GLOBAL::caller = sub { $module }; + Irssi::printformat($level, $format, @args); + } +} + +sub core_printformat_module_w { + my ($witem, $level, $module, $format, @args) = @_; + { + local *CORE::GLOBAL::caller = sub { $module }; + $witem->printformat($level, $format, @args); + } +} + +sub set_fg_color { + my ($fg) = @_; + if ($ENV{'TERM'} =~ m/^xterm/) { + if ( defined $fg ) { + print STDERR "\033]10;$fg\a"; + } else { + print STDERR "\033]110\a"; + } + } else { + $noxterm.=" and " if ($noxterm); + $noxterm.="fg_color:$fg"; + } +} + +sub set_bg_color { + my ($bg) = @_; + if ($ENV{'TERM'} =~ m/^xterm/) { + if ( defined $bg) { + print STDERR "\033]11;$bg\a"; + } else { + print STDERR "\033]111\a"; + } + } else { + $noxterm.=" and " if ($noxterm); + $noxterm.="bg_color:$bg"; + } +} + + +sub get_theme { + my ($args)=@_; + local $File::Fetch::WARN=0; + $get.= '.theme' if $get !~ m/\.theme/; + my $ff= File::Fetch->new(uri => $theme_source.$get); + my $where = $ff->fetch( to => $theme_local ) or + return "Error: $theme_source$get not found"; + return "$get downloaded."; +} + +sub get_yaml { + local $File::Fetch::WARN=0; + my $get='themes.yaml'; + if (-e $theme_local.$get) { + unlink $theme_local.$get; + } + my $ff= File::Fetch->new(uri => $theme_source.$get); + my $where = $ff->fetch( to => $theme_local ) or + return "Error: $theme_source$get not found"; + return "$get downloaded."; +} + +sub cmd_set { + my ($args, $server, $witem)=@_; + my $t = $tl[$count]; + if (defined $t) { + Irssi::settings_set_str('theme',$t); + Irssi::signal_emit('setup changed'); + if ($theme_autocolor) { + set_fg_color($themes{$t}->{fgColor}); + set_bg_color($themes{$t}->{bgColor}); + } + } +} + +sub cmd { + my ($args, $server, $witem)=@_; + my ($ret, $arg) = GetOptionsFromString($args, %options); + if ( defined $$arg[0]) { + my $c=0; + foreach my $t (@tl) { + if ($t eq $$arg[0]) { + $count=$c; + last; + } + $c++; + } + cmd_set(); + } + if (defined $update) { + if ($count <0) { + $count = $#tl+$count+1; + } + if ($count >$#tl) { + $count = $count-$#tl-1; + } + cmd_set(); + $update= undef; + } + if (defined $show) { + cmd_show($args, $server, $witem); + $show = undef; + } + if (defined $get) { + my $cmd; + $cmd->{cmd}=\&get_theme; + $cmd->{args}=[$args]; + $cmd->{last}=[ + \&init, + \&print_result, + ]; + background( $cmd ); + $get = undef; + } + if (defined $yupdate) { + my $cmd; + $cmd->{cmd}=\&get_yaml; + $cmd->{last}=[ + \&init, + \&print_result, + ]; + background( $cmd ); + $yupdate = undef; + } + if (defined $list) { + my $c=0; + foreach (@tl) { + if ($c == $count) { + Irssi::print(">>$_<<", MSGLEVEL_CLIENTCRAP); + } else { + Irssi::print(" $_", MSGLEVEL_CLIENTCRAP); + } + $c++; + } + $list = undef; + } + if (defined $info) { + cmd_info($args, $server, $witem); + $info = undef; + } + if (defined $phelp || $args eq '' ) { + cmd_help($IRSSI{name}, $server, $witem); + $phelp = undef; + } + if (defined $fg_color) { + if (length($fg_color)>0) { + set_fg_color($fg_color); + } else { + set_fg_color(); + } + $fg_color= undef; + } + if (defined $bg_color) { + if (length($bg_color)>0) { + set_bg_color($bg_color); + } else { + set_bg_color(); + } + $bg_color= undef; + } + if (defined $noxterm) { + Irssi::print( + "Do not know how to set colour for your terminal ($ENV{TERM})." + , MSGLEVEL_CLIENTCRAP); + Irssi::print( + "Manually configure it for $noxterm" + , MSGLEVEL_CLIENTCRAP); + $noxterm= undef; + } +} + +sub cmd_info { + my ($args, $server, $witem)=@_; + Irssi::print("Info: $info", MSGLEVEL_CLIENTCRAP); + if (exists $themes{$info}) { + Irssi::print(Dump($themes{$info}), MSGLEVEL_CLIENTCRAP); + } elsif (exists $themes{$tl[$count]}) { + Irssi::print(Dump($themes{$tl[$count]}), MSGLEVEL_CLIENTCRAP); + } +} + +sub cmd_help { + my ($args, $server, $witem)=@_; + $args=~ s/\s+//g; + if ($IRSSI{name} eq $args) { + Irssi::print($help, MSGLEVEL_CLIENTCRAP); + Irssi::signal_stop(); + } +} + +sub sig_setup_changed { + $theme_source= Irssi::settings_get_str($IRSSI{name}.'_source'); + $theme_source.= '/' if $theme_source !~ m#/$#; + my $l= Irssi::settings_get_str($IRSSI{name}.'_local'); + $theme_local= bsd_glob $l; + $theme_local.= '/' if $theme_local !~ m#/$#; + $theme_autocolor= Irssi::settings_get_bool($IRSSI{name}.'_autocolor'); +} + +sub print_result { + my ($cmd) = @_; + if (defined $cmd->{res}->[0]) { + Irssi::print($cmd->{res}->[0] , MSGLEVEL_CLIENTCRAP); + } +} + +sub do_complete { + my ($strings, $window, $word, $linestart, $want_space) = @_; + return unless $linestart =~ m#^/$IRSSI{name}#; + return if $word =~ m#^-#; + if ( $linestart !~ m/(-g|-get|-i|-info)/ ) { + @$strings = grep { m/^$word/} @tl; + } else { + @$strings = grep { m/^$word/} @dtl; + } + Irssi::signal_stop; +} + +sub init { + my $theme = Irssi::settings_get_str('theme'); + my $p1= Irssi::get_irssi_dir(); + my @t = bsd_glob $p1.'/*.theme'; + @tl=(); + my $c=0; + foreach my $fn (@t) { + $fn = basename($fn, '.theme'); + push @tl, $fn; + $count=$c if $theme eq $fn; + $c++; + } + $lorem =~ s/\n/ /g; + if (-e $p1.'/themes.yaml') { + @dtl=undef; + my @l; + open my $fi, '<',$p1.'/themes.yaml'; + my $syml= do {local $/; <$fi>}; + close $fi; + eval { + @l = @{Load($syml)}; + }; + if (length($@) >0) { + print $@; + } else { + foreach my $e (@l) { + $themes{$e->{name}}=$e; + push @dtl, $e->{name}; + } + } + } +} + +Irssi::signal_add_first('complete word', \&do_complete); +Irssi::signal_add('setup changed', \&sig_setup_changed); +Irssi::signal_add('pidwait', \&sig_pidwait); + +Irssi::settings_add_str($IRSSI{name} ,$IRSSI{name}.'_source', 'https://irssi-import.github.io/themes/'); +Irssi::settings_add_str($IRSSI{name} ,$IRSSI{name}.'_local', Irssi::get_irssi_dir()); +Irssi::settings_add_bool($IRSSI{name} ,$IRSSI{name}.'_autocolor', 0); + +Irssi::command_bind($IRSSI{name}, \&cmd); +my @opt=map {s/[=:].*$//, $_} keys %options; +Irssi::command_set_options($IRSSI{name}, join(" ", @opt)); +Irssi::command_bind('help', \&cmd_help); + +init(); +sig_setup_changed(); + +if (!(-e $theme_local.'themes.yaml')) { + my $cmd; + $cmd->{cmd}=\&get_yaml; + $cmd->{last}=[ + \&init, + \&print_result, + ]; + background( $cmd ); +} diff --git a/.irssi/themes.yaml b/.irssi/themes.yaml new file mode 100644 index 0000000..841599e --- /dev/null +++ b/.irssi/themes.yaml @@ -0,0 +1,200 @@ +--- +# add your theme at the end +- { name: h3rbz, by: h3rbz, bgColor: black, fgColor: white} +- { name: spring, by: Myrtti, bgColor: "#cdf9b4", fgColor: black } +- { name: dark_winter, by: Myrtti, bgColor: "#f4c6e8", fgColor: black } +- { name: elite, by: mrblackker, bgColor: black, fgColor: gray50 } +- { name: revolutionary, by: rolle , bgColor: black, fgColor: gray50} +- { name: revolutionaryv2, by: rolle, bgColor: black, fgColor: gray } +- { name: revolutionaryv3, by: rolle, bgColor: black, fgColor: gray } +- { name: liszt, by: fliszt, bgColor: black, fgColor: gray } +- { name: screwer-redux, by: keeb, bgColor: '#555015', fgColor: gray50 } +- { name: greenbox, by: Ir0n1E, bgColor: black, fgColor: gray } +- { name: doom, by: saketzu, bgColor: black, fgColor: gray } +- { name: soppa, by: rolle, bgColor: black, fgColor: gray30 } +- { name: envy, by: rolle, bgColor: black, fgColor: gray } +- { name: aka, by: curson, bgColor: black, fgColor: gray } +- { name: lighty, by: pulk, bgColor: black, fgColor: white } +- { name: mxl, by: mxl, download_format: tar.gz } +- { name: pandemonium, by: tri, bgColor: black, fgColor: gray } +- { name: redhead, by: _dave, bgColor: gray10, fgColor: gray } +- { name: purplechat, by: _dave, bgColor: black, fgColor: gray } +- { name: syntax, by: _dave, bgColor: gray10, fgColor: gray } +- { name: yellowsyntax, by: _dave, bgColor: black, fgColor: gray } +- { name: evowhite, by: Ville Myllymäki, bgColor: gray80, fgColor: black } +- { name: initrd, by: initrd, bgColor: black, fgColor: gray } +- { name: artificial-soul, by: ismaell, bgColor: black, fgColor: gray } +- { name: furry, by: Cenne, bgColor: '#3c3c3c', fgColor: gray90 } +- { name: more_readable, by: WildFlame, bgColor: black, fgColor: gray70 } +- { name: japsu, by: Japsu, bgColor: black, fgColor: gray70 } +- { name: scaleddown, by: _dave, bgColor: black, fgColor: gray70 } +- { name: xchat2, by: _dave, bgColor: gray10, fgColor: gray80 } +- { name: greenedge, by: _dave, bgColor: gray10, fgColor: gray80 } +- { name: tugg, by: tugg, bgColor: '#372112', fgColor: white } +- { name: mursu, by: Anfar, download_format: zip } +- { name: trakhel, by: anonymous, bgColor: white, fgColor: gray70 } +- { name: pyhy, by: pyhy, bgColor: black, fgColor: gray60 } +- { name: swehack, by: nocturnal, bgColor: black, fgColor: gray60 } +- { name: lenten, by: jasee, bgColor: black, fgColor: gray60 } +- { name: simplicity, by: opqdonut, bgColor: white, fgColor: black } +- { name: hrncek, by: hrncek, bgColor: black, fgColor: gray60 } +- { name: insane, by: roy, bgColor: black, fgColor: gray60 } +- { name: kurja-round, by: Yaakov, bgColor: '#0e151c', fgColor: gray80 } +- { name: nitz, by: Nitz, bgColor: black, fgColor: gray80 } +- { name: oscar, by: px, bgColor: black, fgColor: gray60 } +- { name: lt, by: by LinuxTux, bgColor: '#0c1b35', fgColor: white } +- { name: diskreet, by: bracket, bgColor: white, fgColor: gray60 } +- { name: spookydoom, by: yawgm8th, bgColor: black, fgColor: gray60 } +- { name: tzu, by: Tzunamii, bgColor: black, fgColor: gray70 } +- { name: rain, by: dana, bgColor: '#40424e', fgColor: white } +- { name: greyed-out, by: bluet, bgColor: black, fgColor: white } +- { name: dma147, by: dma147, download_format: tar.bz2 } +- { name: murf, by: Harmen, bgColor: black, fgColor: gray70 } +- { name: bw-wb-ryb, by: Nico, bgColor: black, fgColor: white } + # fg is set to black. the image has bg black +- { name: n, by: nikt, bgColor: gray, fgColor: gray40 } +- { name: elpi, by: anonymous, bgColor: black, fgColor: gray80 } +- { name: mithru, by: avu, bgColor: gray10, fgColor: gray90 } +- { name: mork, by: Sho, bgColor: black, fgColor: gray70 } +- { name: tonisepro, by: Tonise, bgColor: black, fgColor: green } +- { name: mosdef, by: deadcow, bgColor: black, fgColor: white } +- { name: rolle, by: rolle, bgColor: black, fgColor: gray40 } +- { name: parenthetical, by: dwu, bgColor: black, fgColor: gray70 } +- { name: dbm, by: dbmathis, bgColor: black, fgColor: gray70 } +- { name: c0ders, by: PCrazee, bgColor: white, fgColor: black } +- { name: design, by: awad, bgColor: black, fgColor: gray50 } +- { name: madcow, by: dubkat, bgColor: black, fgColor: gray50 } +- { name: lyynx, by: LyyNx, bgColor: '#263541', fgColor: white } +- { name: kompakt, by: rm, bgColor: black, fgColor: white } +- { name: evilkat, by: dubkat, bgColor: black, fgColor: gray70 } +- { name: screwer, by: ak5, bgColor: '#585516', fgColor: gray50 } +- { name: xchat, by: _dave, bgColor: gray10, fgColor: gray70 } +- { name: cyanic, by: bracket, bgColor: black, fgColor: gray70 } +- { name: stx, by: stx, bgColor: '#633408', fgColor: gray50 } +- { name: trax, by: opqdonut, bgColor: black, fgColor: gray80 } +- { name: fluxmod, by: ikaro, bgColor: '#254a17', fgColor: gray70 } +- { name: industrial, by: blaze, bgColor: black, fgColor: gray80 } +- { name: agon, by: agon, bgColor: '#293c42', fgColor: gray70 } +- { name: ksiadz, by: ksiadz, bgColor: '#16202b', fgColor: '#18b2b2' } +- { name: hv, by: cubik, bgColor: black, fgColor: gray70 } +- { name: defacto, by: statico, bgColor: black, fgColor: gray80 } +- { name: tinylajs, by: tewmten, bgColor: black, fgColor: white } +- { name: roses, by: Myrtti, bgColor: black, fgColor: gray70 } +- { name: vt510+xterm, by: TauPan, bgColor: gray80, fgColor: gray30 } +- { name: spot, by: dana, bgColor: '#001120' , fgColor: white } +- { name: sfc1337, by: souleman, bgColor: black, fgColor: green } +- { name: mazii, by: mazii, bgColor: '#37250b', fgColor: gray90 } +- { name: telix, by: bufh, bgColor: '#0f1519', fgColor: gray90 } +- { name: sfcblue, by: souleman, bgColor: '#000039', fgColor: gray90 } +- { name: skeita, by: petrucci, bgColor: black, fgColor: gray80 } +- { name: lime, by: erc, bgColor: gray20, fgColor: gray80 } +- { name: skan, by: skanZoft, bgColor: black, fgColor: gray70 } +- { name: neutralorange, by: Marquz, bgColor: black, fgColor: gray80 } + # fg is set to black. the image has bg black +- { name: bestican, by: alexar, bgColor: gray, fgColor: gray20 } +- { name: ion_mod, by: McGovern, bgColor: '#080408', fgColor: gray60 } +- { name: lemac-pl, by: Lemac, bgColor: black, fgColor: gray50 } +- { name: crap, by: McGovern, bgColor: black, fgColor: gray60 } +- { name: orb, by: eks, download_format: tbz2 } +- { name: bluu, by: HiFi, bgColor: black, fgColor: gray80 } +- { name: evolution, by: McPolo, bgColor: black, fgColor: gray70 } +- { name: lemac, by: lemac, bgColor: black, fgColor: gray70 } +- { name: tanke, by: Tanke, bgColor: gray10, fgColor: gray80 } +- { name: sputnik, by: Tanke, bgColor: black, fgColor: white } +- { name: kaer-2, by: kaer, bgColor: black, fgColor: gray80 } +- { name: hellfire, by: Anzuhan, bgColor: black, fgColor: gray80 } +- { name: angelic, by: ArcAngel, download_link: angelic4.4.tar.gz } +- { name: sux, by: Aleksandr, bgColor: '#0f2946', fgColor: gray90 } +- { name: cross, by: cross, format: gif, bgColor: black, fgColor: gray70 } +- { name: pikkuh, by: pikku-h, bgColor: black, fgColor: gray60 } +- { name: epic, by: andrey, format: gif, bgColor: white, fgColor: black } +- { name: lesscolors, by: dt, bgColor: black, fgColor: gray80 } +- { name: generane, by: generane, bgColor: '#282725', fgColor: gray70 } +- { name: qlth, by: defrag, bgColor: '#000031', fgColor: gray90 } +- { name: elho, by: elho, download_link: irssi-elho.theme-1.3.tar.gz } +- { name: kaer, by: kaer, bgColor: black, fgColor: gray60 } +- { name: taliz, by: taliz, download_format: tgz } +- { name: cananal, by: "^Faust^", bgColor: black, fgColor: cyan } +- { name: mine, by: BoBB, bgColor: gray70, fgColor: gray20 } +- { name: ea1, by: EckigesAuge, bgColor: gray30, fgColor: gray80 } +- { name: rettoscopia, by: "^Faust^", bgColor: black, fgColor: gray70 } +- { name: splitfire, by: ccr, bgColor: black, fgColor: gray80 } +- { name: oxynox, by: ataxic, bgColor: black, fgColor: gray70 } +- { name: kurja, by: renni, bgColor: '#1b1b00' , fgColor: gray90 } +- { name: xmas, by: Charn, bgColor: '#540000', fgColor: gray70 } +- { name: lilah, by: ladydana, bgColor: '#400040', fgColor: gray80 } + # fg is set to black. the image has bg black +- { name: void, by: fahren, bgColor: gray50, fgColor: gray20 } +- { name: greenSCPleo, by: "}{pt0", bgColor: black, fgColor: green } +- { name: ectobar, by: lude, bgColor: '#17192d', fgColor: gray70 } +- { name: liten, by: liten, bgColor: black, fgColor: gray80 } +- { name: en, by: en, format: gif, bgColor: black, fgColor: gray70 } +- { name: lemmu, by: Hydra, format: gif, bgColor: black, fgColor: gray70 } +- { name: litE, by: smoku, format: gif, bgColor: black, fgColor: gray70 } +- { name: foxmask, by: foxmask, bgColor: white, fgColor: black } +- { name: madeye, by: Svarre, format: gif, bgColor: black, fgColor: gray80 } +- { name: laaama-2, by: laaama, bgColor: '#230101', fgColor: gray80 } +- { name: darksystem, by: source, bgColor: black, fgColor: gray60 } + # fg is set to black. the image has bg black +- { name: magick, by: md, bgColor: gray80, fgColor: gray50 } +- { name: huara, by: geel, bgColor: black, fgColor: gray70 } +- { name: bork, by: fraki, bgColor: '#001c44', fgColor: gray80 } +- { name: salsa, by: xfesty, bgColor: black, fgColor: gray70 } +- { name: mrooveq, by: mrooveq, format: gif, bgColor: black, fgColor: gray70 } +- { name: chaves, by: "Florindo'Admim", bgColor: '#212c31', fgColor: gray90 } +- { name: asyura, by: rxcv, bgColor: black, fgColor: white } +- { name: quubba, by: quubba, bgColor: black, fgColor: gray60 } +- { name: simpleii, by: six, bgColor: black, fgColor: white } +- { name: hagge, by: hagge, bgColor: black, fgColor: gray90 } +- { name: clean, by: sabi, bgColor: white, fgColor: black } +- { name: pgreen, by: gs, bgColor: black, fgColor: gray90 } +- { name: mirkk32, by: hygge, bgColor: '#f6f6f6', fgColor: black } +- { name: garden, by: godog, bgColor: black, fgColor: gray70 } +- { name: stevee, by: stevee, bgColor: black, fgColor: gray70 } +- { name: IamCyan, by: marmot, bgColor: gray20, fgColor: gray80 } +- { name: ash, by: Little Dragon, bgColor: black, fgColor: gray70 } +- { name: misso, by: misso, bgColor: black, fgColor: gray60 } +- { name: easyeye, by: Kuma, bgColor: black, fgColor: gray70 } +- { name: swift, by: swift, bgColor: black, fgColor: gray70 } +- { name: osbxwannabe, by: SpamapS, bgColor: black, fgColor: gray70 } +- { name: eon, by: eon, bgColor: '#03146c', fgColor: gray70 } +- { name: foo, by: shagr, bgColor: '#282f3f', fgColor: gray70 } +- { name: dot, by: Han, download_format: tgz } +- { name: elf, by: ElectricElf, download_format: tgz } +- { name: quux, by: zhafte, bgColor: '#394563', fgColor: gray70 } + # fg is set to black. the image has bg black +- { name: pasce, by: soulis, bgColor: gray70, fgColor: gray20 } +- { name: jokx, by: "jok'x", bgColor: black, fgColor: green } +- { name: ocean, by: tjamtjam, format: gif, bgColor: black, fgColor: gray70 } + # fg is set to black. the image has bg black +- { name: greenish, by: geel, bgColor: grey70, fgColor: gray20 } +- { name: ski, by: skijk, bgColor: gray10, fgColor: gray80 } +- { name: ion, by: Ion, bgColor: black, fgColor: blue } +- { name: hnsk, by: hnsk, format: gif, bgColor: black, fgColor: gray70 } +- { name: shrike, by: Shrike, bgColor: black, fgColor: gray70 } +- { name: relaxed, by: Shruuf, bgColor: black, fgColor: gray60 } +- { name: gothic, by: benny, bgColor: black, fgColor: gray70 } +- { name: ekh, by: ekh, bgColor: black, fgColor: gray90 } + # fg is set to black. the image has bg black +- { name: simple, by: geel, bgColor: dark orange, fgColor: gray50 } +- { name: daywalker, by: The_1, format: gif, bgColor: black, fgColor: gray50 } +- { name: whitespace, by: Lanze, bgColor: black, fgColor: gray60 } + # fg is set to black. the image has bg black +- { name: chill, by: soulis, bgColor: gray50, fgColor: gray20 } +- { name: zng, by: ZaNaGa, bgColor: black, fgColor: gray80 } +- { name: maria7, by: Zoey, format: gif, download_format: tgz } +- { name: shruuf, by: Shruuf, bgColor: black, fgColor: gray50 } +- { name: white, by: "???", screenshot: white.jpg, comment: 'theme with white background', bgColor: gray95, fgColor: black } +- { name: naula, by: naula, bgColor: black, fgColor: dark orange } +- { name: thirdeye, by: salo, bgColor: black, fgColor: gray80 } +- { name: laaama, by: laaama, bgColor: black, fgColor: gray60 } +- { name: zhafte, by: zhafte, format: gif, bgColor: black, fgColor: gray60 } +- { name: BitchX, by: "???", comment: 'BitchX look', bgColor: black, fgColor: gray60 } +- { name: jsuvanto, by: JSuvanto, format: gif, bgColor: black, fgColor: gray60 } +- { name: mutru, by: Mutru, bgColor: black, fgColor: gray70 } +- { name: mika, by: "[Mika]", format: gif, bgColor: black, fgColor: gray70 } +- { name: koivula, by: Koivula, format: gif, bgColor: black, fgColor: gray80 } +- { name: green, by: greeny, format: gif, bgColor: black, fgColor: gray80 } +- { name: crystal, by: kesara, bgColor: black, fgColor: gray60 } +- { name: pipeline, by: haro, comment: "README", bgColor: black, fgColor: gray60 } +# Add your theme before this comment! diff --git a/.vimrc b/.vimrc index fa4cf59..a04fd73 100644 --- a/.vimrc +++ b/.vimrc @@ -7,12 +7,14 @@ command Tmomc :r ~/Documents/templates/chapter.mom command Tmomg :r ~/Documents/templates/general.mom command Tmomr :r ~/Documents/templates/recipe.mom command Tmome :r ~/Documents/templates/english.mom +command Tmd :r ~/Documents/templates/md.html " run groff+refer on file :command Groff !p="%"; refer -PS -e -p ~/Documents/bib ${p::-4}.mom | groff -mom -Tpdf > ${p::-4}.pdf :command Grofft !p="%"; refer -PS -e -p ~/Documents/bib ${p::-4}.mom | groff -mom -T ascii > ${p::-4}.txt :command Man !p="%"; groff -man -T ascii ${p::-4}.man > ${p::-4}.txt +:command Md !p="%"; cmark --unsafe ${p::-3}.md | h2p - ${p::-3}.pdf " nice line numbers set number