about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAzat Bahawi <azat@bahawi.net>2024-01-08 16:37:46 +0300
committerAzat Bahawi <azat@bahawi.net>2024-01-08 16:37:46 +0300
commit45f4b3f347f1ca401471993e9a115eb7686e4a25 (patch)
treefa3e14f3b620d503ba12ee733d901ae5c24f0777
parent2024-01-07 (diff)
2024-01-08
-rw-r--r--.editorconfig22
-rw-r--r--modules/nixos/firefox/default.nix49
-rw-r--r--modules/nixos/firefox/userChrome.css414
-rw-r--r--modules/nixos/firefox/userContent.css541
-rw-r--r--modules/nixos/monitoring/rules/postgres.yaml6
5 files changed, 515 insertions, 517 deletions
diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index f3067de..0000000
--- a/.editorconfig
+++ /dev/null
@@ -1,22 +0,0 @@
-root = false
-
-[*]
-charset = utf-8
-end_of_line = lf
-indent_size = 4
-indent_style = space
-insert_final_newline = true
-max_line_length = 80
-trim_trailing_whitespace = true
-
-[*.nix]
-indent_size = 2
-indent_style = space
-
-[*.json]
-indent_size = 2
-indent_style = space
-
-[*.{yaml,yml}]
-indent_size = 2
-indent_style = space
diff --git a/modules/nixos/firefox/default.nix b/modules/nixos/firefox/default.nix
index 4c9437c..4c36d74 100644
--- a/modules/nixos/firefox/default.nix
+++ b/modules/nixos/firefox/default.nix
@@ -34,32 +34,32 @@ in {
             mkMerge [
               (with config.colourScheme; ''
                 :root {
-                    --black: ${black};
-                    --red: ${red};
-                    --green: ${green};
-                    --yellow: ${yellow};
-                    --blue: ${blue};
-                    --magenta: ${magenta};
-                    --cyan: ${cyan};
-                    --white: ${white};
-                    --bright-black: ${brightBlack};
-                    --bright-red: ${brightRed};
-                    --bright-green: ${brightGreen};
-                    --bright-yellow: ${brightYellow};
-                    --bright-blue: ${brightBlue};
-                    --bright-magenta: ${brightMagenta};
-                    --bright-cyan: ${brightCyan};
-                    --bright-white: ${brightWhite};
-                    --background: ${background};
-                    --foreground: ${foreground};
+                  --black: ${black};
+                  --red: ${red};
+                  --green: ${green};
+                  --yellow: ${yellow};
+                  --blue: ${blue};
+                  --magenta: ${magenta};
+                  --cyan: ${cyan};
+                  --white: ${white};
+                  --bright-black: ${brightBlack};
+                  --bright-red: ${brightRed};
+                  --bright-green: ${brightGreen};
+                  --bright-yellow: ${brightYellow};
+                  --bright-blue: ${brightBlue};
+                  --bright-magenta: ${brightMagenta};
+                  --bright-cyan: ${brightCyan};
+                  --bright-white: ${brightWhite};
+                  --background: ${background};
+                  --foreground: ${foreground};
               '')
               (with config.fontScheme; ''
-                    --sans-serif-font-family: "${sansSerifFont.family}", "${sansSerifFontFallback.family}", sans-serif;
-                    --sans-serif-font-size: ${toString sansSerifFont.size}px;
-                    --serif-font-family: "${serifFont.family}", "${serifFontFallback.family}", serif;
-                    --serif-font-size: ${toString serifFont.size}px;
-                    --monospace-font-family: "${monospaceFont.family}", "${monospaceFontFallback.family}", monospace;
-                    --monospace-font-size: ${toString monospaceFont.size}px;
+                  --sans-serif-font-family: "${sansSerifFont.family}", "${sansSerifFontFallback.family}", sans-serif;
+                  --sans-serif-font-size: ${toString sansSerifFont.size}px;
+                  --serif-font-family: "${serifFont.family}", "${serifFontFallback.family}", serif;
+                  --serif-font-size: ${toString serifFont.size}px;
+                  --monospace-font-family: "${monospaceFont.family}", "${monospaceFontFallback.family}", monospace;
+                  --monospace-font-size: ${toString monospaceFont.size}px;
                 }
               '')
               (builtins.readFile css)
@@ -572,6 +572,7 @@ in {
             "browser.toolbars.bookmarks.visibility" = "newtab";
             "browser.translations.enable" = false;
             "browser.urlbar.decodeURLsOnCopy" = true;
+            "browser.urlbar.suggest.engines" = false;
             "browser.warnOnQuitShortcut" = false;
             "devtools.everOpened" = true;
             "doh-rollout.home-region" = "US";
diff --git a/modules/nixos/firefox/userChrome.css b/modules/nixos/firefox/userChrome.css
index 14f486c..4fd1d3f 100644
--- a/modules/nixos/firefox/userChrome.css
+++ b/modules/nixos/firefox/userChrome.css
@@ -1,210 +1,210 @@
 @-moz-document url(chrome://browser/content/browser.xul), url(chrome://browser/content/browser.xhtml)
 {
-    /* :root { */
-    /*     /\* */
-    /*      * Helper colours. */
-    /*      *\/ */
-    /*     --background: var(--black) !important; */
-    /*     --foreground: var(--white) !important; */
-    /*     --background-alt: var(--bright-black) !important; */
-    /*     --foreground-alt: var(--bright-white) !important; */
-
-    /*     /\* */
-    /*      * Various root values that can be redefined. */
-    /*      *\/ */
-    /*     --arrowpanel-border-radius: 0 !important; */
-    /*     --autocomplete-popup-highlight-background: var(--background) !important; */
-    /*     --autocomplete-popup-highlight-color: var(--foreground) !important; */
-    /*     --backbutton-background: transparent !important; */
-    /*     --backbutton-border-color: transparent !important; */
-    /*     --tab-block-margin: 0 !important; */
-    /*     --tab-border-radius: 0 !important; */
-    /*     --tabs-border-color: transparent !important; */
-    /*     --tabs-top-border-width: 0 !important; */
-    /*     --toolbar-field-focus-border-color: var(--background) !important; */
-    /*     --toolbar-non-lwt-bgcolor: var(--background) !important; */
-    /*     --toolbar-non-lwt-bgimage: none !important; */
-    /*     --toolbar-non-lwt-textcolor: var(--foreground) !important; */
-    /*     --toolbarbutton-border-radius: 0 !important; */
-    /* } */
-
-    /*
-     ***
-     * Tabbar
-     ***
-     */
-
-    /*
-     * Apply colours and fonts.
-     */
-    /* .tabbrowser-tab { */
-    /*     color: var(--background-alt) !important; */
-    /*     font-family: var(--sans-serif-font-family) !important; */
-    /*     font-size: var(--sans-serif-font-size) !important; */
-    /* } */
-    /* .tabbrowser-tab[visuallyselected="true"] { */
-    /*     background: var(--background) !important; */
-    /*     color: var(--foreground) !important; */
-    /* } */
-
-    /*
-     * Not sure why is this shit even exists...
-     */
-    .titlebar-spacer {
-        display: none !important;
-    }
-
-    /*
-     * Disable borders and margins.
-     */
-    #tabbrowser-tabs {
-        border-inline-start: 0 !important;
-        /* padding-inline-start: 0 !important; */
-        margin-inline-start: 0 !important;
-    }
-    #tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs])
-        > #tabbrowser-arrowscrollbox
-        > .tabbrowser-tab[first-visible-unpinned-tab] {
-        margin-inline-start: none !important;
-    }
-    .tabbrowser-tab::after,
-    .tabbrowser-tab::before {
-        border: none !important;
-    }
-
-    /*
-     * Make tabs backgroundless.
-     */
-    /* .tab-background, */
-    /* .tab-line { */
-    /*     display: none !important; */
-    /* } */
-
-    /*
-     * Stretch tabs to the max by default.
-     */
-    .tabbrowser-tab[fadein]:not([pinned="true"]) {
-        max-width: 100% !important;
-    }
-
-    /*
-     * Fix favicon location.
-     */
-    /* .tab-icon-image { */
-    /*     margin-inline-end: 10px !important; */
-    /*     margin-top: 0px !important; */
-    /* } */
-
-    /*
-     * "C-t" exists.
-     */
-    /* #tabs-newtab-button, */
-    /* #TabsToolbar #new-tab-button { */
-    /*     display: none !important; */
-    /* } */
-
-    /*
-     * "C-w" exists.
-     */
-    .tab-close-button {
-        display: none !important;
-    }
-
-    /*
-     ***
-     * Navbar & urlbar.
-     ***
-     */
-
-    /*
-     * Remove useless buttons.
-     */
-    /* #forward-button, */
-    /* #back-button, */
-    /* #reload-button, */
-    /* #stop-button { */
-    /*     display: none !important; */
-    /* } */
-
-    /*
-     * Remove padding between urlbar and side elements.
-     */
-    #customizableui-special-spring1,
-    #customizableui-special-spring2 {
-        display: none !important;
-    }
-
-    /* #urlbar { */
-    /*     background: var(--background) !important; */
-    /*     color: var(--foreground) !important; */
-    /*     font-family: var(--sans-serif-font-family) !important; */
-    /*     font-size: var(--sans-serif-font-size) !important; */
-    /*     border-color: transparent !important; */
-    /* } */
-
-    /* #urlbar:not(:-moz-lwtheme):not([focused="true"]) > #urlbar-background, */
-    /* #searchbar:not(:-moz-lwtheme):not(:focus-within) { */
-    /*     border: none !important; */
-    /* } */
-
-    /* #urlbar *|*.textbox-input::-moz-placeholder { */
-    /*     color: transparent !important; */
-    /* } */
-
-    /* .urlbar-icon:hover:not([disabled]), */
-    /* .urlbar-icon-wrapper:hover:not([disabled]) { */
-    /*     background-color: var(--background-alt) !important; */
-    /* } */
-
-    /* #urlbar-background { */
-    /*     background: transparent !important; */
-    /* } */
-
-    /* .urlbarView-tags, */
-    /* .urlbarView-url, */
-    /* .urlbarView-title:not(:empty) ~ .urlbarView-action { */
-    /*     font-size: var(--sans-serif-font-size) !important; */
-    /* } */
-
-    .urlbarView-row[label="Firefox Suggest"] {
-        margin-block-start: 0 !important;
-    }
-    .urlbarView-row[label="Firefox Suggest"]::before {
-        display: none !important;
-    }
-
-    /*
-     ***
-     * Misc.
-     ***
-     */
-
-    /*
-     * Call indicator that some "designer" decided to make floating and
-     * impossible to hide.
-     */
-    #webrtcIndicator {
-        display: none !important;
-    }
-
-    /*
-     * Disable some context menu entries.
-     */
-    #context-navigation {
-        display: none !important;
-    }
-
-    /*
-     * Disable all animations.
-     */
-    /* * { */
-    /*     transition: none !important; */
-    /* } */
-
-    /*
-     * Remove dumb websites that Mozilla is forced to include.
-     */
-    .search-one-offs {
-        display: none !important;
-    }
+  /* :root { */
+  /*   /\* */
+  /*    * Helper colours. */
+  /*    *\/ */
+  /*   --background: var(--black) !important; */
+  /*   --foreground: var(--white) !important; */
+  /*   --background-alt: var(--bright-black) !important; */
+  /*   --foreground-alt: var(--bright-white) !important; */
+
+  /*   /\* */
+  /*    * Various root values that can be redefined. */
+  /*    *\/ */
+  /*   --arrowpanel-border-radius: 0 !important; */
+  /*   --autocomplete-popup-highlight-background: var(--background) !important; */
+  /*   --autocomplete-popup-highlight-color: var(--foreground) !important; */
+  /*   --backbutton-background: transparent !important; */
+  /*   --backbutton-border-color: transparent !important; */
+  /*   --tab-block-margin: 0 !important; */
+  /*   --tab-border-radius: 0 !important; */
+  /*   --tabs-border-color: transparent !important; */
+  /*   --tabs-top-border-width: 0 !important; */
+  /*   --toolbar-field-focus-border-color: var(--background) !important; */
+  /*   --toolbar-non-lwt-bgcolor: var(--background) !important; */
+  /*   --toolbar-non-lwt-bgimage: none !important; */
+  /*   --toolbar-non-lwt-textcolor: var(--foreground) !important; */
+  /*   --toolbarbutton-border-radius: 0 !important; */
+  /* } */
+
+  /*
+   ***
+   * Tabbar
+   ***
+   */
+
+  /*
+   * Apply colours and fonts.
+   */
+  /* .tabbrowser-tab { */
+  /*   color: var(--background-alt) !important; */
+  /*   font-family: var(--sans-serif-font-family) !important; */
+  /*   font-size: var(--sans-serif-font-size) !important; */
+  /* } */
+  /* .tabbrowser-tab[visuallyselected="true"] { */
+  /*   background: var(--background) !important; */
+  /*   color: var(--foreground) !important; */
+  /* } */
+
+  /*
+   * Not sure why is this shit even exists...
+   */
+  .titlebar-spacer {
+    display: none !important;
+  }
+
+  /*
+   * Disable borders and margins.
+   */
+  #tabbrowser-tabs {
+    border-inline-start: 0 !important;
+    /* padding-inline-start: 0 !important; */
+    margin-inline-start: 0 !important;
+  }
+  #tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs])
+    > #tabbrowser-arrowscrollbox
+    > .tabbrowser-tab[first-visible-unpinned-tab] {
+    margin-inline-start: none !important;
+  }
+  .tabbrowser-tab::after,
+  .tabbrowser-tab::before {
+    border: none !important;
+  }
+
+  /*
+   * Make tabs backgroundless.
+   */
+  /* .tab-background, */
+  /* .tab-line { */
+  /*   display: none !important; */
+  /* } */
+
+  /*
+   * Stretch tabs to the max by default.
+   */
+  .tabbrowser-tab[fadein]:not([pinned="true"]) {
+    max-width: 100% !important;
+  }
+
+  /*
+   * Fix favicon location.
+   */
+  /* .tab-icon-image { */
+  /*   margin-inline-end: 10px !important; */
+  /*   margin-top: 0px !important; */
+  /* } */
+
+  /*
+   * "C-t" exists.
+   */
+  /* #tabs-newtab-button, */
+  /* #TabsToolbar #new-tab-button { */
+  /*   display: none !important; */
+  /* } */
+
+  /*
+   * "C-w" exists.
+   */
+  .tab-close-button {
+    display: none !important;
+  }
+
+  /*
+   ***
+   * Navbar & urlbar.
+   ***
+   */
+
+  /*
+   * Remove useless buttons.
+   */
+  /* #forward-button, */
+  /* #back-button, */
+  /* #reload-button, */
+  /* #stop-button { */
+  /*     display: none !important; */
+  /* } */
+
+  /*
+   * Remove padding between urlbar and side elements.
+   */
+  #customizableui-special-spring1,
+  #customizableui-special-spring2 {
+    display: none !important;
+  }
+
+  /* #urlbar { */
+  /*   background: var(--background) !important; */
+  /*   color: var(--foreground) !important; */
+  /*   font-family: var(--sans-serif-font-family) !important; */
+  /*   font-size: var(--sans-serif-font-size) !important; */
+  /*   border-color: transparent !important; */
+  /* } */
+
+  /* #urlbar:not(:-moz-lwtheme):not([focused="true"]) > #urlbar-background, */
+  /* #searchbar:not(:-moz-lwtheme):not(:focus-within) { */
+  /*   border: none !important; */
+  /* } */
+
+  /* #urlbar *|*.textbox-input::-moz-placeholder { */
+  /*   color: transparent !important; */
+  /* } */
+
+  /* .urlbar-icon:hover:not([disabled]), */
+  /* .urlbar-icon-wrapper:hover:not([disabled]) { */
+  /*   background-color: var(--background-alt) !important; */
+  /* } */
+
+  /* #urlbar-background { */
+  /*   background: transparent !important; */
+  /* } */
+
+  /* .urlbarView-tags, */
+  /* .urlbarView-url, */
+  /* .urlbarView-title:not(:empty) ~ .urlbarView-action { */
+  /*   font-size: var(--sans-serif-font-size) !important; */
+  /* } */
+
+  .urlbarView-row[label="Firefox Suggest"] {
+    margin-block-start: 0 !important;
+  }
+  .urlbarView-row[label="Firefox Suggest"]::before {
+    display: none !important;
+  }
+
+  /*
+   ***
+   * Misc.
+   ***
+   */
+
+  /*
+   * Call indicator that some "designer" decided to make floating and
+   * impossible to hide.
+   */
+  #webrtcIndicator {
+    display: none !important;
+  }
+
+  /*
+   * Disable some context menu entries.
+   */
+  #context-navigation {
+    display: none !important;
+  }
+
+  /*
+   * Disable all animations.
+   */
+  /* * { */
+  /*     transition: none !important; */
+  /* } */
+
+  /*
+   * Remove dumb websites that Mozilla is forced to include.
+   */
+  .search-one-offs {
+    display: none !important;
+  }
 }
diff --git a/modules/nixos/firefox/userContent.css b/modules/nixos/firefox/userContent.css
index c9a33b7..8df7325 100644
--- a/modules/nixos/firefox/userContent.css
+++ b/modules/nixos/firefox/userContent.css
@@ -1,63 +1,63 @@
 @-moz-document media-document(all) {
-    body {
-        background-image: none !important;
-        background-color: var(--background) !important;
-    }
+  body {
+    background-image: none !important;
+    background-color: var(--background) !important;
+  }
 }
 
 @-moz-document regexp("about:(blank|home|newtab|privatebrowsing|welcome)") {
-    html,
-    body {
-        background: var(--background) !important;
-    }
-
-    body {
-        display: none !important;
-    }
+  html,
+  body {
+    background: var(--background) !important;
+  }
+
+  body {
+    display: none !important;
+  }
 }
 
 @-moz-document regexp("https?://.*")
 {
-    iframe[src^="https://accounts.google.com/gsi/iframe"]
-    {
-        display: none !important;
-    }
+  iframe[src^="https://accounts.google.com/gsi/iframe"]
+  {
+    display: none !important;
+  }
 }
 
 @-moz-document regexp("https?://(www)?yandex\.(com|ru)/search/.*")
 {
-    #search-result-aside,
-    .RelatedAbove {
-        display: none !important;
-    }
+  #search-result-aside,
+  .RelatedAbove {
+    display: none !important;
+  }
 }
 
 @-moz-document regexp("https?://music\.yandex\.ru.*")
 {
-    .bar-below.bar-below_plus,
-    .footer,
-    .notify,
-    .teaser {
-        display: none !important;
-    }
+  .bar-below.bar-below_plus,
+  .footer,
+  .notify,
+  .teaser {
+    display: none !important;
+  }
 }
 
 @-moz-document regexp("https?://(.*.)?gitlab(\..*)?\.(com|org).*")
 {
-    body {
-        font-family: var(--sans-serif-font-family) !important;
-        font-size: var(--sans-serif-font-size) !important;
-    }
-
-    code {
-        font-family: var(--monospace-font-family) !important;
-        font-size: var(--monospace-font-size) !important;
-    }
+  body {
+    font-family: var(--sans-serif-font-family) !important;
+    font-size: var(--sans-serif-font-size) !important;
+  }
+
+  code {
+    font-family: var(--monospace-font-family) !important;
+    font-size: var(--monospace-font-size) !important;
+  }
 }
 
 @-moz-document regexp("https?://(.*\.)?github.com.*")
 {
-    .color-fg-muted.f6.mt-4, /* GitHub profile guide. */
+  .color-fg-muted.f6.mt-4, /* GitHub profile guide. */
     .flex-order-1.flex-md-order-none, /* Follow button. */
     .js-user-status-item,
     .protip,
@@ -79,295 +79,314 @@
     button[data-testid="copilot-popover-button"],
     details[id^="funding-links-modal"],
     footer {
-        display: none !important;
-    }
-
-    .application-main {
-        padding-bottom: 20px !important;
-    }
-
-    .blob-num,
-    .blob-code-inner {
-        font-family: var(--monospace-font-family) !important;
-        font-size: var(--monospace-font-size) !important;
-    }
+    display: none !important;
+  }
+
+  .application-main {
+    padding-bottom: 20px !important;
+  }
+
+  .blob-num,
+  .blob-code-inner {
+    font-family: var(--monospace-font-family) !important;
+    font-size: var(--monospace-font-size) !important;
+  }
 }
 
 @-moz-document regexp("https?://github.com/?")
 {
-    .application-main {
-        display: none !important;
-    }
+  .application-main {
+    display: none !important;
+  }
 }
 
 @-moz-document regexp("https?://.*(stack(exchange|overflow)|askubuntu|superuser|serverfault)\.com/questions/.*")
 {
-    html,
-    body {
-        --ff-mono: var(--monospace-font-family) !important;
-        --ff-sans: var(--sans-serif-font-family) !important;
-        --ff-serif: var(--serif-font-family) !important;
-    }
-
-    #announcement-banner,
-    #footer,
-    #left-sidebar,
-    #noscript-warning,
-    #notify-container,
-    #post-form,
-    #sidebar,
-    .ai-start,
-    .bottom-notice,
-    .d-flex.g4,
-    .d-flex.s-btn-group,
-    .js-add-link.comments-link,
-    .js-consent-banner,
-    .js-dismissable-hero,
-    .js-post-issue,
-    .js-saves-btn,
-    .js-show-link.comments-link,
-    .js-vote-down-btn,
-    .js-vote-up-btn,
-    .post-taglist,
-    .s-notice,
-    .s-topbar,
-    .site-header,
-    a.ws-nowrap {
-        display: none !important;
-    }
-
-    #mainbar {
-        width: 100% !important;
-    }
-
-    #content {
-        margin-top: -50px !important;
-        border-width: 0 0 0 0 !important;
-    }
+  html,
+  body {
+    --ff-mono: var(--monospace-font-family) !important;
+    --ff-sans: var(--sans-serif-font-family) !important;
+    --ff-serif: var(--serif-font-family) !important;
+  }
+
+  #announcement-banner,
+  #footer,
+  #left-sidebar,
+  #noscript-warning,
+  #notify-container,
+  #post-form,
+  #sidebar,
+  .ai-start,
+  .bottom-notice,
+  .d-flex.g4,
+  .d-flex.s-btn-group,
+  .js-add-link.comments-link,
+  .js-consent-banner,
+  .js-dismissable-hero,
+  .js-post-issue,
+  .js-saves-btn,
+  .js-show-link.comments-link,
+  .js-vote-down-btn,
+  .js-vote-up-btn,
+  .post-taglist,
+  .s-notice,
+  .s-topbar,
+  .site-header,
+  a.ws-nowrap {
+    display: none !important;
+  }
+
+  #mainbar {
+    width: 100% !important;
+  }
+
+  #content {
+    margin-top: -50px !important;
+    border-width: 0 0 0 0 !important;
+  }
 }
 
 @-moz-document regexp("https?://kubernetes\.io/docs/.*")
 {
-    .announcement,
-    .announcement-main,
-    .d-none {
-        display: none !important;
-    }
+  .announcement,
+  .announcement-main,
+  .d-none {
+    display: none !important;
+  }
 }
 
 @-moz-document regexp("https?://min\.io/docs/.*")
 {
-    #cookie {
-        display: none !important;
-    }
+  #cookie {
+    display: none !important;
+  }
 }
 
 @-moz-document regexp("https?://werf\.io/documentation/.*")
 {
-    .guides-banner {
-        display: none !important;
-    }
+  .guides-banner {
+    display: none !important;
+  }
 }
 
 @-moz-document regexp("https?://grafana\.com/docs/.*")
 {
-    .ads__content,
-    .scroll,
-    .sticky-footer {
-        display: none !important;
-    }
+  .ads__content,
+  .scroll,
+  .sticky-footer {
+    display: none !important;
+  }
 }
 
-@-moz-document regexp("https?://habr\.com/(ru|en)/(articles|company/.*/news|companies|blog|post)/.*")
+@-moz-document regexp("https?://habr\.com/(ru|en)/(articles|company/.*/news|news|companies|blog|post)/.*")
 {
-    .Vue-Toastification__container,
-    .tm-article-labels,
-    .tm-article-presenter__banner,
-    .tm-article-presenter__footer,
-    .tm-article-presenter__meta,
-    .tm-article-snippet__labels,
-    .tm-base-layout__header,
-    .tm-block.tm-block_spacing-bottom,
-    .tm-comment-footer,
-    .tm-comment__header,
-    .tm-editoral-subscription,
-    .tm-footer,
-    .tm-footer-menu,
-    .tm-header,
-    .tm-notice,
-    .tm-page__header,
-    .tm-page__sidebar,
-    .tm-placeholder-inset,
-    .tm-placeholder-promo,
-    .tm-user-info,
-    vue-portal-target {
-        display: none !important;
-    }
-
-    * {
-        transition: none !important;
-    }
-
-    html,
-    body {
-        font-family: var(--sans-serif-font-family) !important;
-        font-size: var(--sans-serif-font-size) !important;
-    }
-
-    #app {
-        height: auto !important;
-    }
-
-    .tm-article-presenter__footer,
-    .tm-page__main_has-sidebar {
-        margin-left: auto !important;
-        margin-right: auto !important;
-        max-width: 100% !important;
-    }
-
-    .tm-page {
-        padding: 0 !important;
-    }
-
-    .tm-comment__buttons {
-        margin: 0 !important;
-    }
-
-    html,
-    body {
-        font-family: var(--sans-serif-font-family) !important;
-        font-size: var(--sans-serif-font-size) !important;
-    }
-
-    code {
-        font-family: var(--monospace-font-family) !important;
-        font-size: var(--monospace-font-size) !important;
-    }
+  .Vue-Toastification__container,
+  .tm-article-labels,
+  .tm-article-presenter__banner,
+  .tm-article-presenter__footer,
+  .tm-article-presenter__meta,
+  .tm-article-snippet__labels,
+  .tm-base-layout__header,
+  .tm-block.tm-block_spacing-bottom,
+  .tm-comment-footer,
+  .tm-comment__header,
+  .tm-editoral-subscription,
+  .tm-footer,
+  .tm-footer-menu,
+  .tm-header,
+  .tm-notice,
+  .tm-page__header,
+  .tm-page__sidebar,
+  .tm-placeholder-inset,
+  .tm-placeholder-promo,
+  .tm-user-info,
+  vue-portal-target {
+    display: none !important;
+  }
+
+  * {
+    transition: none !important;
+  }
+
+  html,
+  body {
+    font-family: var(--sans-serif-font-family) !important;
+    font-size: var(--sans-serif-font-size) !important;
+  }
+
+  #app {
+    height: auto !important;
+  }
+
+  .tm-article-presenter__footer,
+  .tm-page__main_has-sidebar {
+    margin-left: auto !important;
+    margin-right: auto !important;
+    max-width: 100% !important;
+  }
+
+  .tm-page {
+    padding: 0 !important;
+  }
+
+  .tm-comment__buttons {
+    margin: 0 !important;
+  }
+
+  html,
+  body {
+    font-family: var(--sans-serif-font-family) !important;
+    font-size: var(--sans-serif-font-size) !important;
+  }
+
+  code {
+    font-family: var(--monospace-font-family) !important;
+    font-size: var(--monospace-font-size) !important;
+  }
 }
 
 @-moz-document regexp("https?://jisho\.org.*")
 {
-    header,
-    footer {
-        display: none !important;
-    }
+  header,
+  footer {
+    display: none !important;
+  }
+}
+
+@-moz-document regexp("https?://.*\.fandom\.com/wiki/.*")
+{
+  #WikiaBar,
+  #highlight__main-container,
+  .global-footer,
+  .global-navigation,
+  .global-registration-buttons {
+    display: none !important;
+  }
+
+  .fandom-sticky-header {
+    left: 0px !important;
+  }
+
+  body {
+    background-image: none !important;
+  }
 }
 
 @-moz-document regexp("https?:\/\/gog\.com.*") {
-    .galaxy-section-wrapper,
-    footer {
-        display: none !important;
-    }
+  .galaxy-section-wrapper,
+  footer {
+    display: none !important;
+  }
 }
 
 @-moz-document regexp("https?://steamdb\.info.*")
 {
-    #steamdb-extension-protip {
-        display: none !important;
-    }
+  #steamdb-extension-protip {
+    display: none !important;
+  }
 }
 
 @-moz-document regexp("https?://(.*\.)?hh\.ru.*")
 {
-    .HH-Supernova-Footer,
-    .index-dashboard-applicant__banners,
-    .notification-manager,
-    .resume-sidebar-background,
-    .supernova-overlay {
-        display: none !important;
-    }
+  .HH-Supernova-Footer,
+  .index-dashboard-applicant__banners,
+  .notification-manager,
+  .resume-sidebar-background,
+  .supernova-overlay {
+    display: none !important;
+  }
 }
 
 @-moz-document regexp("https?://www\.songsterr\.com.*")
 {
-    #favorite,
-    #fullscreen,
-    #logo,
-    #menu-favorites,
-    #menu-help,
-    #menu-plus,
-    #menu-signin,
-    #menu-submit,
-    #promo,
-    #revisions,
-    #showroom,
-    #showroom_sidebar,
-    #text-showroom,
-    footer {
-        display: none !important;
-    }
+  #favorite,
+  #fullscreen,
+  #logo,
+  #menu-favorites,
+  #menu-help,
+  #menu-plus,
+  #menu-signin,
+  #menu-submit,
+  #promo,
+  #revisions,
+  #showroom,
+  #showroom_sidebar,
+  #text-showroom,
+  footer {
+    display: none !important;
+  }
 }
 
 @-moz-document regexp("https?://developer\.mozilla\.org.*")
 {
-    #nav-footer,
-    .main-document-header-container.top-navigation,
-    .mdn-cta-container,
-    .top-banner.fallback {
-        display: none !important;
-    }
-
-    .sidebar {
-        --offset: default !important;
-    }
-
-    html,
-    body {
-        font-family: var(--sans-serif-font-family) !important;
-        font-size: var(--sans-serif-font-size) !important;
-    }
+  #nav-footer,
+  .main-document-header-container.top-navigation,
+  .mdn-cta-container,
+  .top-banner.fallback {
+    display: none !important;
+  }
+
+  .sidebar {
+    --offset: default !important;
+  }
+
+  html,
+  body {
+    font-family: var(--sans-serif-font-family) !important;
+    font-size: var(--sans-serif-font-size) !important;
+  }
 }
 
 @-moz-document regexp("https?://(.*\.)?wikipedia\.org/wiki/.*")
 {
-    #footer,
-    #mp-topbanner,
-    #siteNotice,
-    #siteSub,
-    #wmde-banner-app,
-    .mw-footer-container,
-    .mw-header,
-    .vector-page-toolbar {
-        display: none !important;
-    }
-
-    html,
-    body {
-        font-family: var(--sans-serif-font-family) !important;
-        font-size: var(--sans-serif-font-size) !important;
-    }
-
-    .k-player,
-    body.mediawiki,
-    #dialogEngineContainer #dialogEngineDialog {
-        background: inherit !important;
-    }
+  #footer,
+  #mp-topbanner,
+  #siteNotice,
+  #siteSub,
+  #wmde-banner-app,
+  .mw-footer-container,
+  .mw-header,
+  .vector-page-toolbar {
+    display: none !important;
+  }
+
+  html,
+  body {
+    font-family: var(--sans-serif-font-family) !important;
+    font-size: var(--sans-serif-font-size) !important;
+  }
+
+  .k-player,
+  body.mediawiki,
+  #dialogEngineContainer #dialogEngineDialog {
+    background: inherit !important;
+  }
 }
 
 @-moz-document regexp("https?://open-vsx\.org.*")
 {
-    MuiCollapse-container,
-    cc-window.cc-banner,
-    footer {
-        display: none !important;
-    }
+  MuiCollapse-container,
+  cc-window.cc-banner,
+  footer {
+    display: none !important;
+  }
 }
 
 @-moz-document regexp("https?://duckduckgo\.com.*")
 {
-    .badge-link, /* Annoying DuckDuckGo extension ads. */
-    .footer {
-        display: none !important;
-    }
+  .badge-link, /* Annoying DuckDuckGo extension ads. */
+  .footer {
+    display: none !important;
+  }
 }
 
 @-moz-document regexp("https?://ecosia\.org.*")
 {
-    .cookie-wrapper,
-    .main-header__install-cta,
-    .meta-results,
-    .notifications,
-    .personal-counter {
-        display: none !important;
-    }
+  .cookie-wrapper,
+  .main-header__install-cta,
+  .meta-results,
+  .notifications,
+  .personal-counter {
+    display: none !important;
+  }
 }
diff --git a/modules/nixos/monitoring/rules/postgres.yaml b/modules/nixos/monitoring/rules/postgres.yaml
index 6aee560..6a98c92 100644
--- a/modules/nixos/monitoring/rules/postgres.yaml
+++ b/modules/nixos/monitoring/rules/postgres.yaml
@@ -131,12 +131,12 @@ groups:
         expr: >-
           sum by (namespace,datname)
             (
-              (rate(pg_stat_database_xact_rollback{datname!~"template.*|postgres",datid!="0"}[3m]))
+              (rate(pg_stat_database_xact_rollback{datname!~"template.*|postgres|dendrite",datid!="0"}[3m]))
               /
               (
-                (rate(pg_stat_database_xact_rollback{datname!~"template.*|postgres",datid!="0"}[3m]))
+                (rate(pg_stat_database_xact_rollback{datname!~"template.*|postgres|dendrite",datid!="0"}[3m]))
                 +
-                (rate(pg_stat_database_xact_commit{datname!~"template.*|postgres",datid!="0"}[3m]))
+                (rate(pg_stat_database_xact_commit{datname!~"template.*|postgres|dendrite",datid!="0"}[3m]))
               )
             )
           > 0.10

Consider giving Nix/NixOS a try! <3