From 0539ff53a4e2ed393bd9139f4e1a477a3284cd32 Mon Sep 17 00:00:00 2001 From: nx2 Date: Fri, 5 Apr 2024 17:01:07 +0200 Subject: [PATCH] chatterino --- home-modules/chatterino.nix | 744 +++++++++++++++++++++++++ home.nix | 1 + secrets/passwords-and-certificates.nix | Bin 1633 -> 1895 bytes 3 files changed, 745 insertions(+) create mode 100644 home-modules/chatterino.nix diff --git a/home-modules/chatterino.nix b/home-modules/chatterino.nix new file mode 100644 index 0000000..390c186 --- /dev/null +++ b/home-modules/chatterino.nix @@ -0,0 +1,744 @@ +{ config, pkgs, lib, secrets, ... }: +let + channels = [ + "agurin" + "Broeki" + "Broxah" + "Caedrel" + "chrissyofficial" + "EintrachtSpandau" + "GamesDoneQuick" + "gdolphn" + "GRONKH" + "HandIOfIBlood" + "HisWattson" + "imls" + "iskall85" + "Jankos" + "Karni" + "KuruHS" + "kutcherlol" + "LCK" + "LCS" + "LEC" + "lol_nemesis" + "loltyler1" + "LPL" + "maxim" + "NASA" + "NNOPrime" + "NoWay4u_Sir" + "OfficialMikeShinoda" + "ow_esports" + "PrimeGaming" + "PrimeLeague" + "Rekkles" + "Riot Games" + "Sola" + "ThePrimeagen" + "Tolkin" + "Trick2g" + "TSM_ImperialHal" + "Xisuma" + ]; + tabber = channel-name: { + highlightsEnabled = true; + splits2 = { + data = { + name = channel-name; + type = "twitch"; + }; + filters = [ ]; + flexh = 1; + flexv = 1; + moderationMode = false; + type = "split"; + }; + }; +in +{ + home.packages = with pkgs; [ + chatterino2 + ]; + + home.file.".local/share/chatterino/Settings/settings.json".text = builtins.toJSON { + "hotkeys" = { + "addedDefaults" = [ + "change channel" + "close popup window" + "create clip" + "delete" + "emote picker" + "focus down" + "focus left" + "focus right" + "focus up" + "go to end of input" + "go to end of input with selection" + "go to start of input" + "go to start of input with selection" + "new popup window" + "new popup window from tab" + "new split" + "new tab" + "next message" + "open debug popup" + "open quick switcher" + "open settings" + "popup accept" + "popup focus search box" + "popup reject" + "popup scroll down" + "popup scroll up" + "popup select last tab" + "popup select next tab" + "popup select previous tab" + "popup select tab #1" + "popup select tab #2" + "popup select tab #3" + "popup select tab #4" + "popup select tab #5" + "popup select tab #6" + "popup select tab #7" + "popup select tab #8" + "previous message" + "reconnect" + "reload emotes" + "remove tab" + "reopen split" + "scroll page down" + "scroll page up" + "scroll to bottom" + "scroll to top" + "select last tab" + "select next tab" + "select previous tab" + "select tab #1" + "select tab #2" + "select tab #3" + "select tab #4" + "select tab #5" + "select tab #6" + "select tab #7" + "select tab #8" + "send message" + "send message and keep text" + "show global search" + "show search" + "toggle live tabs only" + "toggle local r9k" + "toggle tab visibility" + "zoom in" + "zoom out" + "zoom reset" + ]; + "close popup window" = { + "action" = "delete"; + "keySequence" = "Esc"; + "category" = "popupWindow"; + "arguments" = [ ]; + }; + "popup accept" = { + "action" = "accept"; + "keySequence" = "Return"; + "category" = "popupWindow"; + "arguments" = [ ]; + }; + "popup focus search box" = { + "action" = "search"; + "keySequence" = "Ctrl+F"; + "category" = "popupWindow"; + "arguments" = [ ]; + }; + "popup reject" = { + "action" = "reject"; + "keySequence" = "Esc"; + "category" = "popupWindow"; + "arguments" = [ ]; + }; + "popup scroll down" = { + "action" = "scrollPage"; + "keySequence" = "PgDown"; + "category" = "popupWindow"; + "arguments" = [ + "down" + ]; + }; + "popup scroll up" = { + "action" = "scrollPage"; + "keySequence" = "PgUp"; + "category" = "popupWindow"; + "arguments" = [ + "up" + ]; + }; + "popup select last tab" = { + "action" = "openTab"; + "keySequence" = "Ctrl+9"; + "category" = "popupWindow"; + "arguments" = [ + "last" + ]; + }; + "popup select next tab" = { + "action" = "openTab"; + "keySequence" = "Ctrl+Tab"; + "category" = "popupWindow"; + "arguments" = [ + "next" + ]; + }; + "popup select previous tab" = { + "action" = "openTab"; + "keySequence" = "Ctrl+Shift+Tab"; + "category" = "popupWindow"; + "arguments" = [ + "previous" + ]; + }; + "popup select tab #1" = { + "action" = "openTab"; + "keySequence" = "Ctrl+1"; + "category" = "popupWindow"; + "arguments" = [ + "0" + ]; + }; + "popup select tab #2" = { + "action" = "openTab"; + "keySequence" = "Ctrl+2"; + "category" = "popupWindow"; + "arguments" = [ + "1" + ]; + }; + "popup select tab #3" = { + "action" = "openTab"; + "keySequence" = "Ctrl+3"; + "category" = "popupWindow"; + "arguments" = [ + "2" + ]; + }; + "popup select tab #4" = { + "action" = "openTab"; + "keySequence" = "Ctrl+4"; + "category" = "popupWindow"; + "arguments" = [ + "3" + ]; + }; + "popup select tab #5" = { + "action" = "openTab"; + "keySequence" = "Ctrl+5"; + "category" = "popupWindow"; + "arguments" = [ + "4" + ]; + }; + "popup select tab #6" = { + "action" = "openTab"; + "keySequence" = "Ctrl+6"; + "category" = "popupWindow"; + "arguments" = [ + "5" + ]; + }; + "popup select tab #7" = { + "action" = "openTab"; + "keySequence" = "Ctrl+7"; + "category" = "popupWindow"; + "arguments" = [ + "6" + ]; + }; + "popup select tab #8" = { + "action" = "openTab"; + "keySequence" = "Ctrl+8"; + "category" = "popupWindow"; + "arguments" = [ + "7" + ]; + }; + "change channel" = { + "action" = "changeChannel"; + "keySequence" = "Ctrl+R"; + "category" = "split"; + "arguments" = [ ]; + }; + "create clip" = { + "action" = "createClip"; + "keySequence" = "Alt+X"; + "category" = "split"; + "arguments" = [ ]; + }; + "delete" = { + "action" = "delete"; + "keySequence" = "Ctrl+W"; + "category" = "split"; + "arguments" = [ ]; + }; + "focus down" = { + "action" = "focus"; + "keySequence" = "Alt+Down"; + "category" = "split"; + "arguments" = [ + "down" + ]; + }; + "focus left" = { + "action" = "focus"; + "keySequence" = "Alt+Left"; + "category" = "split"; + "arguments" = [ + "left" + ]; + }; + "focus right" = { + "action" = "focus"; + "keySequence" = "Alt+Right"; + "category" = "split"; + "arguments" = [ + "right" + ]; + }; + "focus up" = { + "action" = "focus"; + "keySequence" = "Alt+Up"; + "category" = "split"; + "arguments" = [ + "up" + ]; + }; + "open debug popup" = { + "action" = "debug"; + "keySequence" = "F10"; + "category" = "split"; + "arguments" = [ ]; + }; + "reconnect" = { + "action" = "reconnect"; + "keySequence" = "Ctrl+F5"; + "category" = "split"; + "arguments" = [ ]; + }; + "reload emotes" = { + "action" = "reloadEmotes"; + "keySequence" = "F5"; + "category" = "split"; + "arguments" = [ ]; + }; + "scroll page down" = { + "action" = "scrollPage"; + "keySequence" = "PgDown"; + "category" = "split"; + "arguments" = [ + "down" + ]; + }; + "scroll page up" = { + "action" = "scrollPage"; + "keySequence" = "PgUp"; + "category" = "split"; + "arguments" = [ + "up" + ]; + }; + "scroll to bottom" = { + "action" = "scrollToBottom"; + "keySequence" = "Ctrl+End"; + "category" = "split"; + "arguments" = [ ]; + }; + "scroll to top" = { + "action" = "scrollToTop"; + "keySequence" = "Ctrl+Home"; + "category" = "split"; + "arguments" = [ ]; + }; + "show global search" = { + "action" = "showGlobalSearch"; + "keySequence" = "Ctrl+Shift+F"; + "category" = "split"; + "arguments" = [ ]; + }; + "show search" = { + "action" = "showSearch"; + "keySequence" = "Ctrl+F"; + "category" = "split"; + "arguments" = [ ]; + }; + "emote picker" = { + "action" = "openEmotesPopup"; + "keySequence" = "Ctrl+E"; + "category" = "splitInput"; + "arguments" = [ ]; + }; + "go to end of input" = { + "action" = "cursorToEnd"; + "keySequence" = "End"; + "category" = "splitInput"; + "arguments" = [ + "withoutSelection" + ]; + }; + "go to end of input with selection" = { + "action" = "cursorToEnd"; + "keySequence" = "Shift+End"; + "category" = "splitInput"; + "arguments" = [ + "withSelection" + ]; + }; + "go to start of input" = { + "action" = "cursorToStart"; + "keySequence" = "Home"; + "category" = "splitInput"; + "arguments" = [ + "withoutSelection" + ]; + }; + "go to start of input with selection" = { + "action" = "cursorToStart"; + "keySequence" = "Shift+Home"; + "category" = "splitInput"; + "arguments" = [ + "withSelection" + ]; + }; + "next message" = { + "action" = "nextMessage"; + "keySequence" = "Down"; + "category" = "splitInput"; + "arguments" = [ ]; + }; + "previous message" = { + "action" = "previousMessage"; + "keySequence" = "Up"; + "category" = "splitInput"; + "arguments" = [ ]; + }; + "send message" = { + "action" = "sendMessage"; + "keySequence" = "Return"; + "category" = "splitInput"; + "arguments" = [ ]; + }; + "send message and keep text" = { + "action" = "sendMessage"; + "keySequence" = "Ctrl+Return"; + "category" = "splitInput"; + "arguments" = [ + "keepInput" + ]; + }; + "new popup window" = { + "action" = "popup"; + "keySequence" = "Ctrl+N"; + "category" = "window"; + "arguments" = [ + "split" + ]; + }; + "new popup window from tab" = { + "action" = "popup"; + "keySequence" = "Ctrl+Shift+N"; + "category" = "window"; + "arguments" = [ + "window" + ]; + }; + "new split" = { + "action" = "newSplit"; + "keySequence" = "Ctrl+T"; + "category" = "window"; + "arguments" = [ ]; + }; + "new tab" = { + "action" = "newTab"; + "keySequence" = "Ctrl+Shift+T"; + "category" = "window"; + "arguments" = [ ]; + }; + "open quick switcher" = { + "action" = "openQuickSwitcher"; + "keySequence" = "Ctrl+K"; + "category" = "window"; + "arguments" = [ ]; + }; + "open settings" = { + "action" = "openSettings"; + "keySequence" = "Ctrl+P"; + "category" = "window"; + "arguments" = [ ]; + }; + "remove tab" = { + "action" = "removeTab"; + "keySequence" = "Ctrl+Shift+W"; + "category" = "window"; + "arguments" = [ ]; + }; + "reopen split" = { + "action" = "reopenSplit"; + "keySequence" = "Ctrl+G"; + "category" = "window"; + "arguments" = [ ]; + }; + "select last tab" = { + "action" = "openTab"; + "keySequence" = "Ctrl+9"; + "category" = "window"; + "arguments" = [ + "last" + ]; + }; + "select next tab" = { + "action" = "openTab"; + "keySequence" = "Ctrl+Tab"; + "category" = "window"; + "arguments" = [ + "next" + ]; + }; + "select previous tab" = { + "action" = "openTab"; + "keySequence" = "Ctrl+Shift+Tab"; + "category" = "window"; + "arguments" = [ + "previous" + ]; + }; + "select tab #1" = { + "action" = "openTab"; + "keySequence" = "Ctrl+1"; + "category" = "window"; + "arguments" = [ + "0" + ]; + }; + "select tab #2" = { + "action" = "openTab"; + "keySequence" = "Ctrl+2"; + "category" = "window"; + "arguments" = [ + "1" + ]; + }; + "select tab #3" = { + "action" = "openTab"; + "keySequence" = "Ctrl+3"; + "category" = "window"; + "arguments" = [ + "2" + ]; + }; + "select tab #4" = { + "action" = "openTab"; + "keySequence" = "Ctrl+4"; + "category" = "window"; + "arguments" = [ + "3" + ]; + }; + "select tab #5" = { + "action" = "openTab"; + "keySequence" = "Ctrl+5"; + "category" = "window"; + "arguments" = [ + "4" + ]; + }; + "select tab #6" = { + "action" = "openTab"; + "keySequence" = "Ctrl+6"; + "category" = "window"; + "arguments" = [ + "5" + ]; + }; + "select tab #7" = { + "action" = "openTab"; + "keySequence" = "Ctrl+7"; + "category" = "window"; + "arguments" = [ + "6" + ]; + }; + "select tab #8" = { + "action" = "openTab"; + "keySequence" = "Ctrl+8"; + "category" = "window"; + "arguments" = [ + "7" + ]; + }; + "toggle live tabs only" = { + "action" = "setTabVisibility"; + "keySequence" = "Ctrl+Shift+L"; + "category" = "window"; + "arguments" = [ + "toggleLiveOnly" + ]; + }; + "toggle local r9k" = { + "action" = "toggleLocalR9K"; + "keySequence" = "Ctrl+H"; + "category" = "window"; + "arguments" = [ ]; + }; + "toggle tab visibility" = { + "action" = "setTabVisibility"; + "keySequence" = "Ctrl+U"; + "category" = "window"; + "arguments" = [ + "toggle" + ]; + }; + "zoom in" = { + "action" = "zoom"; + "keySequence" = "Ctrl++"; + "category" = "window"; + "arguments" = [ + "in" + ]; + }; + "zoom out" = { + "action" = "zoom"; + "keySequence" = "Ctrl+-"; + "category" = "window"; + "arguments" = [ + "out" + ]; + }; + "zoom reset" = { + "action" = "zoom"; + "keySequence" = "Ctrl+0"; + "category" = "window"; + "arguments" = [ + "reset" + ]; + }; + }; + "misc" = { + "currentVersion" = "2.4.6"; + "lockNotebookLayout" = false; + }; + "ui" = { + "lastSelectChannelTab" = 0; + "lastSelectIrcConn" = -1; + }; + "appearance" = { + "theme" = { + "name" = "Black"; + }; + "tabVisibility" = 1; + "currentFontFamily" = "Atkinson Hyperlegible"; + "messages" = { + "alternateMessageBackground" = true; + "showTimestamps" = false; + "timestampFormat" = "h =mm"; + "separateMessages" = true; + "lastMessagePattern" = 10; + "lastMessageColor" = "#ff7f0002"; + "usernameDisplayMode" = 1; + }; + "currentFontSize" = 12; + "splitheader" = { + "showUptime" = true; + "showViewerCount" = true; + "showGame" = true; + "showTitle" = true; + }; + "boldScale" = 63.0; + }; + accounts = secrets.chatterino.accounts; + "behaviour" = { + "pauseOnHoverDuration" = 5.0; + "usernameRightClickBehavior" = 0; + "usernameRightClickBehaviorWithModifier" = 1; + "showJoins" = false; + }; + "highlighting" = { + "selfMessageHighlight" = { + "enabled" = true; + "color" = "#73008cff"; + }; + "badges" = [ + { + "name" = "broadcaster"; + "displayName" = "Broadcaster"; + "showInMentions" = false; + "alert" = false; + "sound" = false; + "soundUrl" = ""; + "color" = "#7f7f3f49"; + } + { + "name" = "admin"; + "displayName" = "Admin"; + "showInMentions" = false; + "alert" = false; + "sound" = false; + "soundUrl" = ""; + "color" = "#7f7f3f49"; + } + { + "name" = "staff"; + "displayName" = "Staff"; + "showInMentions" = false; + "alert" = false; + "sound" = false; + "soundUrl" = ""; + "color" = "#7f7f3f49"; + } + { + "name" = "moderator"; + "displayName" = "Moderator"; + "showInMentions" = false; + "alert" = false; + "sound" = false; + "soundUrl" = ""; + } + { + "name" = "vip"; + "displayName" = "VIP"; + "showInMentions" = false; + "alert" = false; + "sound" = false; + "soundUrl" = ""; + "color" = "#7f7f3578"; + } + ]; + }; + "emotes" = { + "removeSpacesBetweenEmotes" = false; + "showUnlistedSevenTVEmotes" = false; + }; + "similarity" = { + "similarityEnabled" = false; + "hideSimilar" = false; + "hideSimilarMaxDelay" = 30; + "hideSimilarMaxMessagesToCheck" = 5; + }; + }; + + + + home.file.".local/share/chatterino/Settings/window-layout.json".text = builtins.toJSON { + "windows" = [ + { + "emotePopup" = { + "x" = 0; + "y" = 0; + }; + "height" = 569; + "state" = "maximized"; + "tabs" = map tabber channels; + "type" = "main"; + "width" = 943; + "x" = 0; + "y" = 0; + } + ]; + }; +} diff --git a/home.nix b/home.nix index f642d6d..40ab0ce 100644 --- a/home.nix +++ b/home.nix @@ -3,6 +3,7 @@ imports = [ ./home-modules/vscode.nix ./home-modules/discord.nix + ./home-modules/chatterino.nix ./home-modules/meli/meli.nix # ./home-modules/mutt/neomutt.nix ./home-modules/gestures.nix diff --git a/secrets/passwords-and-certificates.nix b/secrets/passwords-and-certificates.nix index 6575e9f7343bbb5a8ecca7390b12d42c276e89a7..fc045103e8ffdc4e9e20a3e8630cbbff5e30274f 100644 GIT binary patch literal 1895 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