From a8e475011ff16c94fb5778db73d78006ba1b32d1 Mon Sep 17 00:00:00 2001 From: elyth Date: Sun, 1 Sep 2024 23:28:44 +0200 Subject: [PATCH] :wrench: (home): rework options --- home/gwen/grovetender.nix | 18 +- modules/home/core/home.nix | 7 - modules/home/opt/browser/firefox/default.nix | 758 ++++++------ modules/home/opt/misc/default.nix | 1 - modules/home/opt/misc/obsidian.nix | 1099 +++++++++--------- modules/home/opt/misc/rbw.nix | 31 +- modules/home/opt/misc/vencord.nix | 79 -- modules/home/opt/misc/yamlfmt.nix | 32 +- modules/home/opt/music/mpd/default.nix | 15 +- modules/home/opt/music/mpd/misc.nix | 9 +- modules/home/opt/music/ncmp/default.nix | 13 +- modules/home/opt/music/spicetify/default.nix | 13 +- modules/home/opt/options.nix | 5 - modules/nixos/opt/pkgs.nix | 1 + 14 files changed, 1059 insertions(+), 1022 deletions(-) delete mode 100644 modules/home/opt/misc/vencord.nix diff --git a/home/gwen/grovetender.nix b/home/gwen/grovetender.nix index 86b7beee..17c2e4fc 100644 --- a/home/gwen/grovetender.nix +++ b/home/gwen/grovetender.nix @@ -8,14 +8,26 @@ ../../modules/home ]; + opt = { + browser = { + firefox.enable = true; + }; + misc = { + obsidian.enable = true; + yamlfmt.enable = true; + rbw.enable = true; + }; + music = { + spicetify.enable = true; + }; + }; + modules = { anyrun.enable = true; hyprland.enable = true; k9s.enable = true; lazygit.enable = true; rofi.enable = true; - rbw.enable = true; - spicetify.enable = true; sss.enable = false; zellij.enable = true; zsh.enable = true; @@ -37,8 +49,8 @@ scrcpy stremio yazi - showmethekey lunar-client + wdisplays ]; }; } diff --git a/modules/home/core/home.nix b/modules/home/core/home.nix index fe69ae8c..08e0f4d9 100644 --- a/modules/home/core/home.nix +++ b/modules/home/core/home.nix @@ -1,7 +1,6 @@ { config, inputs, - lib, pkgs, ... }: @@ -16,9 +15,6 @@ if [ ! -d "${config.home.homeDirectory}/.config/zsh" ]; then ${pkgs.git}/bin/git clone --depth 1 --branch zsh https://github.com/elythh/dotfiles ${config.home.homeDirectory}/.config/zsh fi - if [ ! -d "${config.home.homeDirectory}/.config/ags" ]; then - ${pkgs.git}/bin/git clone --depth 1 --branch ags https://github.com/elythh/dotfiles ${config.home.homeDirectory}/.config/ags - fi ''; }; @@ -26,9 +22,6 @@ inputs.zjstatus.packages.${system}.default (pkgs.callPackage ../../../home/shared/icons/whitesur.nix { }) (pkgs.callPackage ../../../home/shared/icons/reversal.nix { }) - (lib.mkIf config.modules.rbw.enable rbw) - (lib.mkIf config.modules.rbw.enable rofi-rbw) - #easyeffects awscli bemoji betterdiscordctl diff --git a/modules/home/opt/browser/firefox/default.nix b/modules/home/opt/browser/firefox/default.nix index c8528d2b..df86a900 100644 --- a/modules/home/opt/browser/firefox/default.nix +++ b/modules/home/opt/browser/firefox/default.nix @@ -1,6 +1,20 @@ -{ lib, pkgs, ... }: +{ + lib, + pkgs, + config, + ... +}: let - inherit (lib) concatStringsSep escapeShellArg mapAttrsToList; + inherit (lib) + mkIf + mkEnableOption + concatStringsSep + escapeShellArg + mapAttrsToList + ; + + cfg = config.opt.browser.firefox; + env = { MOZ_WEBRENDER = 1; # For a better scrolling implementation and touch support. @@ -23,386 +37,392 @@ let }; in { - programs.firefox = { - enable = true; - package = pkgs.firefox.overrideAttrs (old: { - buildCommand = - old.buildCommand - + '' - substituteInPlace $out/bin/firefox \ - --replace "exec -a" ${escapeShellArg envStr}" exec -a" - ''; - }); - - profiles.default = { - id = 0; - isDefault = true; - - extraConfig = builtins.concatStringsSep "\n" [ - (builtins.readFile "${betterfox}/Securefox.js") - (builtins.readFile "${betterfox}/Fastfox.js") - (builtins.readFile "${betterfox}/Peskyfox.js") - ]; - - userChrome = builtins.readFile "${arc}/chrome/userChrome.css"; - - settings = { - # General - "intl.accept_languages" = "en-US,en"; - "browser.startup.page" = 3; # Resume previous session on startup - "browser.aboutConfig.showWarning" = false; # I sometimes know what I'm doing - "browser.ctrlTab.sortByRecentlyUsed" = false; # (default) Who wants that? - "browser.download.useDownloadDir" = false; # Ask where to save stuff - "browser.translations.neverTranslateLanguages" = "de"; # No need :) - "privacy.clearOnShutdown.history" = false; # We want to save history on exit - # Allow executing JS in the dev console - "devtools.chrome.enabled" = true; - # Disable browser crash reporting - "browser.tabs.crashReporting.sendReport" = false; - # Allow userCrome.css - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - # https://github.com/yiiyahui/Neptune-Firefox - "svg.context-properties.content.enabled" = false; - "browser.newtabpage.activity-stream.newtabWallpapers.enabled" = false; - "browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled" = false; - "widget.non-native-theme.scrollbar.style" = 0; - # Why the fuck can my search window make bell sounds - "accessibility.typeaheadfind.enablesound" = false; - # Why the fuck can my search window make bell sounds - "general.autoScroll" = true; - - # Hardware acceleration - # See https://github.com/elFarto/nvidia-vaapi-driver?tab=readme-ov-file#firefox - "gfx.webrender.all" = true; - "media.ffmpeg.vaapi.enabled" = true; - "media.rdd-ffmpeg.enabled" = true; - "widget.dmabuf.force-enabled" = true; - "media.av1.enabled" = false; # XXX: change once I've upgraded my GPU - # XXX: what is this? - "media.ffvpx.enabled" = false; - "media.rdd-vpx.enabled" = false; - - # Privacy - "privacy.donottrackheader.enabled" = true; - "privacy.trackingprotection.enabled" = true; - "privacy.trackingprotection.socialtracking.enabled" = true; - "privacy.userContext.enabled" = true; - "privacy.userContext.ui.enabled" = true; - - "browser.send_pings" = false; # (default) Don't respect - - # This allows firefox devs changing options for a small amount of users to test out stuff. - # Not with me please ... - "app.normandy.enabled" = false; - "app.shield.optoutstudies.enabled" = false; - - "beacon.enabled" = false; # No bluetooth location BS in my webbrowser please - "device.sensors.enabled" = false; # This isn't a phone - "geo.enabled" = false; # Disable geolocation alltogether - - # ESNI is deprecated ECH is recommended - "network.dns.echconfig.enabled" = true; - - # Disable telemetry for privacy reasons - "toolkit.telemetry.archive.enabled" = false; - "toolkit.telemetry.enabled" = false; # enforced by nixos - "toolkit.telemetry.server" = ""; - "toolkit.telemetry.unified" = false; - "extensions.webcompat-reporter.enabled" = false; # don't report compability problems to mozilla - "datareporting.policy.dataSubmissionEnabled" = false; - "datareporting.healthreport.uploadEnabled" = false; - "browser.ping-centre.telemetry" = false; - "browser.urlbar.eventTelemetry.enabled" = false; # (default) - - # Disable some useless stuff - "extensions.pocket.enabled" = false; # disable pocket, save links, send tabs - "extensions.abuseReport.enabled" = false; # don't show 'report abuse' in extensions - "extensions.formautofill.creditCards.enabled" = false; # don't auto-fill credit card information - "identity.fxaccounts.enabled" = false; # disable firefox login - "identity.fxaccounts.toolbar.enabled" = false; - "identity.fxaccounts.pairing.enabled" = false; - "identity.fxaccounts.commands.enabled" = false; - "browser.contentblocking.report.lockwise.enabled" = false; # don't use firefox password manger - "browser.uitour.enabled" = false; # no tutorial please - "browser.newtabpage.activity-stream.showSponsored" = false; - "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; - - # disable EME encrypted media extension (Providers can get DRM - # through this if they include a decryption black-box program) - "browser.eme.ui.enabled" = false; - "media.eme.enabled" = false; - - # don't predict network requests - "network.predictor.enabled" = false; - "browser.urlbar.speculativeConnect.enabled" = false; - - # disable annoying web features - "dom.push.enabled" = false; # no notifications, really... - "dom.push.connection.enabled" = false; - "dom.battery.enabled" = false; # you don't need to see my battery... + options.opt.browser.firefox = { + enable = mkEnableOption "Wether to enable Firefox"; + }; - }; - extensions = with pkgs.nur.repos.rycee.firefox-addons; [ - ublock-origin - - sponsorblock - return-youtube-dislikes - - enhanced-github - refined-github - github-file-icons - reddit-enhancement-suite - - sidebery - ]; - - search = { - force = true; - default = "Google"; - order = [ - "Google" - "DuckDuckGo" - "Youtube" - "NixOS Options" - "Nix Packages" - "GitHub" - "HackerNews" - "Home Manager" + config = mkIf cfg.enable { + programs.firefox = { + enable = true; + package = pkgs.firefox.overrideAttrs (old: { + buildCommand = + old.buildCommand + + '' + substituteInPlace $out/bin/firefox \ + --replace "exec -a" ${escapeShellArg envStr}" exec -a" + ''; + }); + + profiles.default = { + id = 0; + isDefault = true; + + extraConfig = builtins.concatStringsSep "\n" [ + (builtins.readFile "${betterfox}/Securefox.js") + (builtins.readFile "${betterfox}/Fastfox.js") + (builtins.readFile "${betterfox}/Peskyfox.js") ]; - engines = { - "Bing".metaData.hidden = true; - "Amazon.com".metaData.hidden = true; - - "YouTube" = { - iconUpdateURL = "https://youtube.com/favicon.ico"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "@yt" ]; - urls = [ - { - template = "https://www.youtube.com/results"; - params = [ - { - name = "search_query"; - value = "{searchTerms}"; - } - ]; - } - ]; - }; + userChrome = builtins.readFile "${arc}/chrome/userChrome.css"; + + settings = { + # General + "intl.accept_languages" = "en-US,en"; + "browser.startup.page" = 3; # Resume previous session on startup + "browser.aboutConfig.showWarning" = false; # I sometimes know what I'm doing + "browser.ctrlTab.sortByRecentlyUsed" = false; # (default) Who wants that? + "browser.download.useDownloadDir" = false; # Ask where to save stuff + "browser.translations.neverTranslateLanguages" = "de"; # No need :) + "privacy.clearOnShutdown.history" = false; # We want to save history on exit + # Allow executing JS in the dev console + "devtools.chrome.enabled" = true; + # Disable browser crash reporting + "browser.tabs.crashReporting.sendReport" = false; + # Allow userCrome.css + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; + # https://github.com/yiiyahui/Neptune-Firefox + "svg.context-properties.content.enabled" = false; + "browser.newtabpage.activity-stream.newtabWallpapers.enabled" = false; + "browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled" = false; + "widget.non-native-theme.scrollbar.style" = 0; + # Why the fuck can my search window make bell sounds + "accessibility.typeaheadfind.enablesound" = false; + # Why the fuck can my search window make bell sounds + "general.autoScroll" = true; + + # Hardware acceleration + # See https://github.com/elFarto/nvidia-vaapi-driver?tab=readme-ov-file#firefox + "gfx.webrender.all" = true; + "media.ffmpeg.vaapi.enabled" = true; + "media.rdd-ffmpeg.enabled" = true; + "widget.dmabuf.force-enabled" = true; + "media.av1.enabled" = false; # XXX: change once I've upgraded my GPU + # XXX: what is this? + "media.ffvpx.enabled" = false; + "media.rdd-vpx.enabled" = false; + + # Privacy + "privacy.donottrackheader.enabled" = true; + "privacy.trackingprotection.enabled" = true; + "privacy.trackingprotection.socialtracking.enabled" = true; + "privacy.userContext.enabled" = true; + "privacy.userContext.ui.enabled" = true; + + "browser.send_pings" = false; # (default) Don't respect + + # This allows firefox devs changing options for a small amount of users to test out stuff. + # Not with me please ... + "app.normandy.enabled" = false; + "app.shield.optoutstudies.enabled" = false; + + "beacon.enabled" = false; # No bluetooth location BS in my webbrowser please + "device.sensors.enabled" = false; # This isn't a phone + "geo.enabled" = false; # Disable geolocation alltogether + + # ESNI is deprecated ECH is recommended + "network.dns.echconfig.enabled" = true; + + # Disable telemetry for privacy reasons + "toolkit.telemetry.archive.enabled" = false; + "toolkit.telemetry.enabled" = false; # enforced by nixos + "toolkit.telemetry.server" = ""; + "toolkit.telemetry.unified" = false; + "extensions.webcompat-reporter.enabled" = false; # don't report compability problems to mozilla + "datareporting.policy.dataSubmissionEnabled" = false; + "datareporting.healthreport.uploadEnabled" = false; + "browser.ping-centre.telemetry" = false; + "browser.urlbar.eventTelemetry.enabled" = false; # (default) + + # Disable some useless stuff + "extensions.pocket.enabled" = false; # disable pocket, save links, send tabs + "extensions.abuseReport.enabled" = false; # don't show 'report abuse' in extensions + "extensions.formautofill.creditCards.enabled" = false; # don't auto-fill credit card information + "identity.fxaccounts.enabled" = false; # disable firefox login + "identity.fxaccounts.toolbar.enabled" = false; + "identity.fxaccounts.pairing.enabled" = false; + "identity.fxaccounts.commands.enabled" = false; + "browser.contentblocking.report.lockwise.enabled" = false; # don't use firefox password manger + "browser.uitour.enabled" = false; # no tutorial please + "browser.newtabpage.activity-stream.showSponsored" = false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; + + # disable EME encrypted media extension (Providers can get DRM + # through this if they include a decryption black-box program) + "browser.eme.ui.enabled" = false; + "media.eme.enabled" = false; + + # don't predict network requests + "network.predictor.enabled" = false; + "browser.urlbar.speculativeConnect.enabled" = false; + + # disable annoying web features + "dom.push.enabled" = false; # no notifications, really... + "dom.push.connection.enabled" = false; + "dom.battery.enabled" = false; # you don't need to see my battery... - "Nix Packages" = { - icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = [ "@np" ]; - urls = [ - { - template = "https://search.nixos.org/packages"; - params = [ - { - name = "type"; - value = "packages"; - } - { - name = "query"; - value = "{searchTerms}"; - } - ]; - } - ]; - }; + }; + extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + ublock-origin - "NixOS Options" = { - icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = [ "@no" ]; - urls = [ - { - template = "https://search.nixos.org/options"; - params = [ - { - name = "channel"; - value = "unstable"; - } - { - name = "query"; - value = "{searchTerms}"; - } - ]; - } - ]; - }; + sponsorblock + return-youtube-dislikes - "GitHub" = { - iconUpdateURL = "https://github.com/favicon.ico"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "@gh" ]; - - urls = [ - { - template = "https://github.com/search"; - params = [ - { - name = "q"; - value = "{searchTerms}"; - } - ]; - } - ]; - }; + enhanced-github + refined-github + github-file-icons + reddit-enhancement-suite - "Home Manager" = { - icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = [ "@hm" ]; - - url = [ - { - template = "https://mipmip.github.io/home-manager-option-search/"; - params = [ - { - name = "query"; - value = "{searchTerms}"; - } - ]; - } - ]; - }; + sidebery + ]; - "HackerNews" = { - iconUpdateURL = "https://hn.algolia.com/favicon.ico"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "@hn" ]; - - url = [ - { - template = "https://hn.algolia.com/"; - params = [ - { - name = "query"; - value = "{searchTerms}"; - } - ]; - } - ]; + search = { + force = true; + default = "Google"; + order = [ + "Google" + "DuckDuckGo" + "Youtube" + "NixOS Options" + "Nix Packages" + "GitHub" + "HackerNews" + "Home Manager" + ]; + + engines = { + "Bing".metaData.hidden = true; + "Amazon.com".metaData.hidden = true; + + "YouTube" = { + iconUpdateURL = "https://youtube.com/favicon.ico"; + updateInterval = 24 * 60 * 60 * 1000; + definedAliases = [ "@yt" ]; + urls = [ + { + template = "https://www.youtube.com/results"; + params = [ + { + name = "search_query"; + value = "{searchTerms}"; + } + ]; + } + ]; + }; + + "Nix Packages" = { + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@np" ]; + urls = [ + { + template = "https://search.nixos.org/packages"; + params = [ + { + name = "type"; + value = "packages"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + }; + + "NixOS Options" = { + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@no" ]; + urls = [ + { + template = "https://search.nixos.org/options"; + params = [ + { + name = "channel"; + value = "unstable"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + }; + + "GitHub" = { + iconUpdateURL = "https://github.com/favicon.ico"; + updateInterval = 24 * 60 * 60 * 1000; + definedAliases = [ "@gh" ]; + + urls = [ + { + template = "https://github.com/search"; + params = [ + { + name = "q"; + value = "{searchTerms}"; + } + ]; + } + ]; + }; + + "Home Manager" = { + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@hm" ]; + + url = [ + { + template = "https://mipmip.github.io/home-manager-option-search/"; + params = [ + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + }; + + "HackerNews" = { + iconUpdateURL = "https://hn.algolia.com/favicon.ico"; + updateInterval = 24 * 60 * 60 * 1000; + definedAliases = [ "@hn" ]; + + url = [ + { + template = "https://hn.algolia.com/"; + params = [ + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + }; }; }; }; - }; - profiles.work = { - id = 1; - isDefault = false; - - extraConfig = builtins.concatStringsSep "\n" [ - (builtins.readFile "${betterfox}/Securefox.js") - (builtins.readFile "${betterfox}/Fastfox.js") - (builtins.readFile "${betterfox}/Peskyfox.js") - ]; - - settings = { - # General - "intl.accept_languages" = "en-US,en"; - "browser.startup.page" = 3; # Resume previous session on startup - "browser.aboutConfig.showWarning" = false; # I sometimes know what I'm doing - "browser.ctrlTab.sortByRecentlyUsed" = false; # (default) Who wants that? - "browser.download.useDownloadDir" = false; # Ask where to save stuff - "browser.translations.neverTranslateLanguages" = "de"; # No need :) - "privacy.clearOnShutdown.history" = false; # We want to save history on exit - # Allow executing JS in the dev console - "devtools.chrome.enabled" = true; - # Disable browser crash reporting - "browser.tabs.crashReporting.sendReport" = false; - # Allow userCrome.css - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - # https://github.com/yiiyahui/Neptune-Firefox - "svg.context-properties.content.enabled" = false; - "browser.newtabpage.activity-stream.newtabWallpapers.enabled" = false; - "browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled" = false; - "widget.non-native-theme.scrollbar.style" = 0; - # Why the fuck can my search window make bell sounds - "accessibility.typeaheadfind.enablesound" = false; - # Why the fuck can my search window make bell sounds - "general.autoScroll" = true; - - # Hardware acceleration - # See https://github.com/elFarto/nvidia-vaapi-driver?tab=readme-ov-file#firefox - "gfx.webrender.all" = true; - "media.ffmpeg.vaapi.enabled" = true; - "media.rdd-ffmpeg.enabled" = true; - "widget.dmabuf.force-enabled" = true; - "media.av1.enabled" = false; # XXX: change once I've upgraded my GPU - # XXX: what is this? - "media.ffvpx.enabled" = false; - "media.rdd-vpx.enabled" = false; - - # Privacy - "privacy.donottrackheader.enabled" = true; - "privacy.trackingprotection.enabled" = true; - "privacy.trackingprotection.socialtracking.enabled" = true; - "privacy.userContext.enabled" = true; - "privacy.userContext.ui.enabled" = true; - - "browser.send_pings" = false; # (default) Don't respect - - # This allows firefox devs changing options for a small amount of users to test out stuff. - # Not with me please ... - "app.normandy.enabled" = false; - "app.shield.optoutstudies.enabled" = false; - - "beacon.enabled" = false; # No bluetooth location BS in my webbrowser please - "device.sensors.enabled" = false; # This isn't a phone - "geo.enabled" = false; # Disable geolocation alltogether - - # ESNI is deprecated ECH is recommended - "network.dns.echconfig.enabled" = true; - - # Disable telemetry for privacy reasons - "toolkit.telemetry.archive.enabled" = false; - "toolkit.telemetry.enabled" = false; # enforced by nixos - "toolkit.telemetry.server" = ""; - "toolkit.telemetry.unified" = false; - "extensions.webcompat-reporter.enabled" = false; # don't report compability problems to mozilla - "datareporting.policy.dataSubmissionEnabled" = false; - "datareporting.healthreport.uploadEnabled" = false; - "browser.ping-centre.telemetry" = false; - "browser.urlbar.eventTelemetry.enabled" = false; # (default) - - # Disable some useless stuff - "extensions.pocket.enabled" = false; # disable pocket, save links, send tabs - "extensions.abuseReport.enabled" = false; # don't show 'report abuse' in extensions - "extensions.formautofill.creditCards.enabled" = false; # don't auto-fill credit card information - "identity.fxaccounts.enabled" = false; # disable firefox login - "identity.fxaccounts.toolbar.enabled" = false; - "identity.fxaccounts.pairing.enabled" = false; - "identity.fxaccounts.commands.enabled" = false; - "browser.contentblocking.report.lockwise.enabled" = false; # don't use firefox password manger - "browser.uitour.enabled" = false; # no tutorial please - "browser.newtabpage.activity-stream.showSponsored" = false; - "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; - - # disable EME encrypted media extension (Providers can get DRM - # through this if they include a decryption black-box program) - "browser.eme.ui.enabled" = false; - "media.eme.enabled" = false; - - # don't predict network requests - "network.predictor.enabled" = false; - "browser.urlbar.speculativeConnect.enabled" = false; - - # disable annoying web features - "dom.push.enabled" = false; # no notifications, really... - "dom.push.connection.enabled" = false; - "dom.battery.enabled" = false; # you don't need to see my battery... - - "network.proxy.socks" = "127.0.0.1"; - "network.proxy.socks_port" = 3128; - "network.proxy.type" = 1; + profiles.work = { + id = 1; + isDefault = false; + + extraConfig = builtins.concatStringsSep "\n" [ + (builtins.readFile "${betterfox}/Securefox.js") + (builtins.readFile "${betterfox}/Fastfox.js") + (builtins.readFile "${betterfox}/Peskyfox.js") + ]; + settings = { + # General + "intl.accept_languages" = "en-US,en"; + "browser.startup.page" = 3; # Resume previous session on startup + "browser.aboutConfig.showWarning" = false; # I sometimes know what I'm doing + "browser.ctrlTab.sortByRecentlyUsed" = false; # (default) Who wants that? + "browser.download.useDownloadDir" = false; # Ask where to save stuff + "browser.translations.neverTranslateLanguages" = "de"; # No need :) + "privacy.clearOnShutdown.history" = false; # We want to save history on exit + # Allow executing JS in the dev console + "devtools.chrome.enabled" = true; + # Disable browser crash reporting + "browser.tabs.crashReporting.sendReport" = false; + # Allow userCrome.css + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; + # https://github.com/yiiyahui/Neptune-Firefox + "svg.context-properties.content.enabled" = false; + "browser.newtabpage.activity-stream.newtabWallpapers.enabled" = false; + "browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled" = false; + "widget.non-native-theme.scrollbar.style" = 0; + # Why the fuck can my search window make bell sounds + "accessibility.typeaheadfind.enablesound" = false; + # Why the fuck can my search window make bell sounds + "general.autoScroll" = true; + + # Hardware acceleration + # See https://github.com/elFarto/nvidia-vaapi-driver?tab=readme-ov-file#firefox + "gfx.webrender.all" = true; + "media.ffmpeg.vaapi.enabled" = true; + "media.rdd-ffmpeg.enabled" = true; + "widget.dmabuf.force-enabled" = true; + "media.av1.enabled" = false; # XXX: change once I've upgraded my GPU + # XXX: what is this? + "media.ffvpx.enabled" = false; + "media.rdd-vpx.enabled" = false; + + # Privacy + "privacy.donottrackheader.enabled" = true; + "privacy.trackingprotection.enabled" = true; + "privacy.trackingprotection.socialtracking.enabled" = true; + "privacy.userContext.enabled" = true; + "privacy.userContext.ui.enabled" = true; + + "browser.send_pings" = false; # (default) Don't respect + + # This allows firefox devs changing options for a small amount of users to test out stuff. + # Not with me please ... + "app.normandy.enabled" = false; + "app.shield.optoutstudies.enabled" = false; + + "beacon.enabled" = false; # No bluetooth location BS in my webbrowser please + "device.sensors.enabled" = false; # This isn't a phone + "geo.enabled" = false; # Disable geolocation alltogether + + # ESNI is deprecated ECH is recommended + "network.dns.echconfig.enabled" = true; + + # Disable telemetry for privacy reasons + "toolkit.telemetry.archive.enabled" = false; + "toolkit.telemetry.enabled" = false; # enforced by nixos + "toolkit.telemetry.server" = ""; + "toolkit.telemetry.unified" = false; + "extensions.webcompat-reporter.enabled" = false; # don't report compability problems to mozilla + "datareporting.policy.dataSubmissionEnabled" = false; + "datareporting.healthreport.uploadEnabled" = false; + "browser.ping-centre.telemetry" = false; + "browser.urlbar.eventTelemetry.enabled" = false; # (default) + + # Disable some useless stuff + "extensions.pocket.enabled" = false; # disable pocket, save links, send tabs + "extensions.abuseReport.enabled" = false; # don't show 'report abuse' in extensions + "extensions.formautofill.creditCards.enabled" = false; # don't auto-fill credit card information + "identity.fxaccounts.enabled" = false; # disable firefox login + "identity.fxaccounts.toolbar.enabled" = false; + "identity.fxaccounts.pairing.enabled" = false; + "identity.fxaccounts.commands.enabled" = false; + "browser.contentblocking.report.lockwise.enabled" = false; # don't use firefox password manger + "browser.uitour.enabled" = false; # no tutorial please + "browser.newtabpage.activity-stream.showSponsored" = false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; + + # disable EME encrypted media extension (Providers can get DRM + # through this if they include a decryption black-box program) + "browser.eme.ui.enabled" = false; + "media.eme.enabled" = false; + + # don't predict network requests + "network.predictor.enabled" = false; + "browser.urlbar.speculativeConnect.enabled" = false; + + # disable annoying web features + "dom.push.enabled" = false; # no notifications, really... + "dom.push.connection.enabled" = false; + "dom.battery.enabled" = false; # you don't need to see my battery... + + "network.proxy.socks" = "127.0.0.1"; + "network.proxy.socks_port" = 3128; + "network.proxy.type" = 1; + + }; + extensions = with pkgs.nur.repos.rycee.firefox-addons; [ ublock-origin ]; }; - extensions = with pkgs.nur.repos.rycee.firefox-addons; [ ublock-origin ]; }; - }; - xdg.mimeApps.defaultApplications = { - "text/html" = [ "firefox.desktop" ]; - "text/xml" = [ "firefox.desktop" ]; - "x-scheme-handler/http" = [ "firefox.desktop" ]; - "x-scheme-handler/https" = [ "firefox.desktop" ]; + xdg.mimeApps.defaultApplications = { + "text/html" = [ "firefox.desktop" ]; + "text/xml" = [ "firefox.desktop" ]; + "x-scheme-handler/http" = [ "firefox.desktop" ]; + "x-scheme-handler/https" = [ "firefox.desktop" ]; + }; }; } diff --git a/modules/home/opt/misc/default.nix b/modules/home/opt/misc/default.nix index 6b030be4..30bb80cc 100644 --- a/modules/home/opt/misc/default.nix +++ b/modules/home/opt/misc/default.nix @@ -1,7 +1,6 @@ { imports = [ ./rbw.nix - ./vencord.nix ./yamlfmt.nix ./obsidian.nix ]; diff --git a/modules/home/opt/misc/obsidian.nix b/modules/home/opt/misc/obsidian.nix index 33077f69..eec81add 100644 --- a/modules/home/opt/misc/obsidian.nix +++ b/modules/home/opt/misc/obsidian.nix @@ -1,548 +1,567 @@ -{ config, ... }: +{ + lib, + config, + ... +}: +let + inherit (lib) + mkIf + mkEnableOption + ; + + cfg = config.opt.misc.obsidian; +in with config.lib.stylix.colors; { - home.file."workspace/vault/.obsidian/themes/elyth.css".text = '' - :root - { - --dark0: #${base01}; - --dark1: #${base01}; - --dark2: #${base01}; - --dark3: #${base01}; - --darker: #${base00}; - - --light0: #${base05}; - --light1: #${base05}; - --light2: #${base05}; - --light3: #${base05}; - - --red: #${base08}; - --orange: #${base09}; - --yellow: #${base0A}; - --green: #${base0B}; - --purple: #${base0E}; - --blue: #${base0D}; - --lavender: #${base0E}; - --teal: #${base0C}; - } - - .theme-dark - { - --background-primary: var(--dark0); - --background-primary-alt: var(--dark2); - --background-secondary: var(--darker); - --background-secondary-alt: var(--dark1); - --text-normal: var(--light2); - --text-faint: var(--light0); - --text-muted: var(--light1); - --text-title-h1: var(--red); - --text-title-h2: var(--blue); - --text-title-h3: var(--yellow); - --text-title-h4: var(--green); - --text-title-h5: var(--lavender); - --text-title-h6: var(--teal); - --text-link: var(--blue); - --text-a: var(--blue); - --text-a-hover: var(--dark3); - --text-mark: var(--lavender); - --pre-code: var(--dark3); - --text-highlight-bg: var(--lavender); - --text-highlight-bg-active: var(--green); - --interactive-accent: var(--lavender); - --interactive-before: var(--dark2); - --background-modifier-border: var(--dark0); - --text-accent: var(--teal); - --interactive-accent-rgb: var(--teal); - --inline-code: var(--yellow); - --code-block: var(--lavender); - --vim-cursor: var(--orange); - --text-selection: var(--dark3); - --text-tag: var(--teal); - --task-checkbox: var(--teal); - } - .theme-light - { - --background-primary: var(--light3); - --background-primary-alt: var(--light2); - --background-secondary: var(--light2); - --background-secondary-alt: var(--light1); - --text-normal: var(--dark1); - --text-faint: var(--dark3); - --text-muted: var(--dark2); - --text-title-h1: var(--red); - --text-title-h2: var(--orange); - --text-title-h3: var(--yellow); - --text-title-h4: var(--green); - --text-title-h5: var(--purple); - --text-title-h6: var(--orange); - --text-link: var(--blue); - --text-a: var(--blue); - --text-a-hover: var(--dark0); - --text-mark: var(--dark3); - --pre-code: var(--dark3); - --text-highlight-bg: var(--purple); - --text-highlight-bg-active: var(--yellow); - --interactive-accent: var(--dark3); - --interactive-before: var(--light0); - --background-modifier-border: var(--light1); - --text-accent: var(--dark1); - --interactive-accent-rgb: var(--orange); - --inline-code: var(--blue); - --code-block: var(--blue); - --vim-cursor: var(--purple); - --text-selection: var(--light0); - --text-tag: var(--teal); - --task-checkbox: var(--teal); - } - - :root { - --default-font: -apple-system, BlinkMacSystemFont, Segoe UI, - Helvetica, Arial, sans-serif, Apple Color Emoji, - Segoe UI Emoji; - - --editor-font: 'JetBrainsMono Nerd Font', 'Source Code Pro', - ui-monospace, SFMono-Regular, SF Mono, Menlo, - Consolas, Liberation Mono, monospace; - } - - .markdown-source-view { - font-family: var(--editor-font); - } - - .markdown-preview-view { - font-family: var(--default-font); - } - - .theme-dark code[class*="language-"], - .theme-dark pre[class*="language-"], - .theme-light code[class*="language-"], - .theme-light pre[class*="language-"] - { - text-shadow: none !important; - background-color: var(--pre-code) !important; - } - - .graph-view.color-circle, - .graph-view.color-fill-highlight, - .graph-view.color-line-highlight - { - color: var(--interactive-accent-rgb) !important; - } - .graph-view.color-text - { - color: var(--text-a-hover) !important; - } - /* - .graph-view.color-fill - { - color: var(--background-secondary); - } - .graph-view.color-line - { - color: var(--background-modifier-border); - } - */ - - html, - body - { - font-size: 16px !important; - } - - strong - { - font-weight: 600 !important; - } - - a, - .cm-hmd-internal-link - { - color: var(--text-a) !important; - text-decoration: none !important; - } - - a:hover, - .cm-hmd-internal-link:hover, - .cm-url - { - color: var(--text-a-hover) !important; - text-decoration: underline !important; - } - - a.tag, a.tag:hover { - color: var(--text-tag) !important; - background-color: var(--background-secondary-alt); - padding: 2px 4px; - border-radius: 4px; - } - - mark - { - background-color: var(--text-mark); - } - - .titlebar { - background-color: var(--background-secondary-alt); - } - - .titlebar-inner { - color: var(--text-normal); - } - - .view-actions a - { - color: var(--text-normal) !important; - } - - .view-actions a:hover - { - color: var(--text-a) !important; - } - - .HyperMD-codeblock-bg - { - background-color: var(--pre-code) !important; - } - - .HyperMD-codeblock - { - line-height: 1.4em !important; - color: var(--code-block) !important; - } - - .HyperMD-codeblock-begin - { - border-top-left-radius: 4px !important; - border-top-right-radius: 4px !important; - } - - .HyperMD-codeblock-end - { - border-bottom-left-radius: 4px !important; - border-bottom-right-radius: 4px !important; - } - - th - { - font-weight: 600 !important; - } - - thead - { - border-bottom: 2px solid var(--background-modifier-border) !important; - } - - .HyperMD-table-row - { - line-height: normal !important; - padding-left: 4px !important; - padding-right: 4px !important; - /* background-color: var(--pre-code) !important; */ - } - - .HyperMD-table-row-0 - { - /* padding-top: 4px !important; */ - } - - .CodeMirror-foldgutter-folded, - .is-collapsed .nav-folder-collapse-indicator - { - color: var(--text-a) !important; - } - - .nav-file-tag - { - color: var(--text-a) !important; - } - - .is-active .nav-file-title - { - color: var(--text-a) !important; - background-color: var(--background-primary-alt) !important; - } - - .nav-file-title - { - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; - border-top-left-radius: 0 !important; - border-top-right-radius: 0 !important; - } - - .HyperMD-list-line - { - padding-top: 0 !important; - } - - .cm-hashtag - { + options.opt.misc.obsidian = { + enable = mkEnableOption "Wether to create obsidian custom theme"; + }; + + config = mkIf cfg.enable { + home.file."workspace/vault/.obsidian/themes/elyth.css".text = '' + :root + { + --dark0: #${base01}; + --dark1: #${base01}; + --dark2: #${base01}; + --dark3: #${base01}; + --darker: #${base00}; + + --light0: #${base05}; + --light1: #${base05}; + --light2: #${base05}; + --light3: #${base05}; + + --red: #${base08}; + --orange: #${base09}; + --yellow: #${base0A}; + --green: #${base0B}; + --purple: #${base0E}; + --blue: #${base0D}; + --lavender: #${base0E}; + --teal: #${base0C}; + } + + .theme-dark + { + --background-primary: var(--dark0); + --background-primary-alt: var(--dark2); + --background-secondary: var(--darker); + --background-secondary-alt: var(--dark1); + --text-normal: var(--light2); + --text-faint: var(--light0); + --text-muted: var(--light1); + --text-title-h1: var(--red); + --text-title-h2: var(--blue); + --text-title-h3: var(--yellow); + --text-title-h4: var(--green); + --text-title-h5: var(--lavender); + --text-title-h6: var(--teal); + --text-link: var(--blue); + --text-a: var(--blue); + --text-a-hover: var(--dark3); + --text-mark: var(--lavender); + --pre-code: var(--dark3); + --text-highlight-bg: var(--lavender); + --text-highlight-bg-active: var(--green); + --interactive-accent: var(--lavender); + --interactive-before: var(--dark2); + --background-modifier-border: var(--dark0); + --text-accent: var(--teal); + --interactive-accent-rgb: var(--teal); + --inline-code: var(--yellow); + --code-block: var(--lavender); + --vim-cursor: var(--orange); + --text-selection: var(--dark3); + --text-tag: var(--teal); + --task-checkbox: var(--teal); + } + .theme-light + { + --background-primary: var(--light3); + --background-primary-alt: var(--light2); + --background-secondary: var(--light2); + --background-secondary-alt: var(--light1); + --text-normal: var(--dark1); + --text-faint: var(--dark3); + --text-muted: var(--dark2); + --text-title-h1: var(--red); + --text-title-h2: var(--orange); + --text-title-h3: var(--yellow); + --text-title-h4: var(--green); + --text-title-h5: var(--purple); + --text-title-h6: var(--orange); + --text-link: var(--blue); + --text-a: var(--blue); + --text-a-hover: var(--dark0); + --text-mark: var(--dark3); + --pre-code: var(--dark3); + --text-highlight-bg: var(--purple); + --text-highlight-bg-active: var(--yellow); + --interactive-accent: var(--dark3); + --interactive-before: var(--light0); + --background-modifier-border: var(--light1); + --text-accent: var(--dark1); + --interactive-accent-rgb: var(--orange); + --inline-code: var(--blue); + --code-block: var(--blue); + --vim-cursor: var(--purple); + --text-selection: var(--light0); + --text-tag: var(--teal); + --task-checkbox: var(--teal); + } + + :root { + --default-font: -apple-system, BlinkMacSystemFont, Segoe UI, + Helvetica, Arial, sans-serif, Apple Color Emoji, + Segoe UI Emoji; + + --editor-font: 'JetBrainsMono Nerd Font', 'Source Code Pro', + ui-monospace, SFMono-Regular, SF Mono, Menlo, + Consolas, Liberation Mono, monospace; + } + + .markdown-source-view { + font-family: var(--editor-font); + } + + .markdown-preview-view { + font-family: var(--default-font); + } + + .theme-dark code[class*="language-"], + .theme-dark pre[class*="language-"], + .theme-light code[class*="language-"], + .theme-light pre[class*="language-"] + { + text-shadow: none !important; + background-color: var(--pre-code) !important; + } + + .graph-view.color-circle, + .graph-view.color-fill-highlight, + .graph-view.color-line-highlight + { + color: var(--interactive-accent-rgb) !important; + } + .graph-view.color-text + { + color: var(--text-a-hover) !important; + } + /* + .graph-view.color-fill + { + color: var(--background-secondary); + } + .graph-view.color-line + { + color: var(--background-modifier-border); + } + */ + + html, + body + { + font-size: 16px !important; + } + + strong + { + font-weight: 600 !important; + } + + a, + .cm-hmd-internal-link + { + color: var(--text-a) !important; + text-decoration: none !important; + } + + a:hover, + .cm-hmd-internal-link:hover, + .cm-url + { + color: var(--text-a-hover) !important; + text-decoration: underline !important; + } + + a.tag, a.tag:hover { color: var(--text-tag) !important; - } - - .search-result-file-matched-text - { - color: var(--light3) !important; - } - - .markdown-preview-section pre code, - .markdown-preview-section code - { - font-size: 0.9em !important; - background-color: var(--pre-code) !important; - } - - .markdown-preview-section pre code - { - padding: 4px !important; - line-height: 1.4em !important; - display: block !important; - color: var(--code-block) !important; - } - - .markdown-preview-section code - { - color: var(--inline-code) !important; - } - - .markdown-preview-view hr - { - border: none; - border-top: 1px solid var(--text-faint); - } - - .markdown-source-view hr - { - border: none; - border-top: 1px solid var(--text-faint); - } - - .cm-s-obsidian, - .cm-inline-code - { - -webkit-font-smoothing: auto !important; - } - - .cm-inline-code - { - color: var(--inline-code) !important; - background-color: var(--pre-code) !important; - padding: 1px !important; - } - - .workspace-leaf-header-title - { - font-weight: 600 !important; - } - - .side-dock-title - { - padding-top: 15px !important; - font-size: 20px !important; - } - - .side-dock-ribbon-tab:hover, - .side-dock-ribbon-action:hover, - .side-dock-ribbon-action.is-active:hover, - .nav-action-button:hover, - .side-dock-collapse-btn:hover - { - color: var(--text-a); - } - - .side-dock - { - border-right: 0 !important; - } - - .cm-s-obsidian, - .markdown-preview-view - { - /* padding-left: 10px !important; */ - padding-right: 10px !important; - } - - /* vertical resize-handle */ - .workspace-split.mod-vertical > * > .workspace-leaf-resize-handle, - .workspace-split.mod-left-split > .workspace-leaf-resize-handle, - .workspace-split.mod-right-split > .workspace-leaf-resize-handle - { - width: 1px !important; background-color: var(--background-secondary-alt); - } + padding: 2px 4px; + border-radius: 4px; + } - /* horizontal resize-handle */ - .workspace-split.mod-horizontal > * > .workspace-leaf-resize-handle - { - height: 1px !important; - background-color: var(--background-secondary-alt); - } - - /* Remove vertical split padding */ - .workspace-split.mod-root .workspace-split.mod-vertical .workspace-leaf-content, - .workspace-split.mod-vertical > .workspace-split, - .workspace-split.mod-vertical > .workspace-leaf, - .workspace-tabs - { - padding-right: 0px; - } - - .markdown-embed-title - { - font-weight: 600 !important; - } - - .markdown-embed - { - padding-left: 10px !important; - padding-right: 10px !important; - margin-left: 10px !important; - margin-right: 10px !important; - } - - .cm-header-1.cm-link, - h1 a - { - color: var(--text-title-h1) !important; - } - - .cm-header-2.cm-link, - h2 a - { - color: var(--text-title-h2) !important; - } - - .cm-header-3.cm-link, - h3 a - { - color: var(--text-title-h3) !important; - } - .cm-header-4.cm-link, - h4 a - { - color: var(--text-title-h4) !important; - } - .cm-header-5.cm-link, - h5 a - { - color: var(--text-title-h5) !important; - } - .cm-header-6.cm-link, - h6 a - { - color: var(--text-title-h6) !important; - } - - .cm-header { - font-weight: 500 !important; - } - - .HyperMD-header-1, - .markdown-preview-section h1 - { - font-weight: 500 !important; - font-size: 2.2em !important; - color: var(--text-title-h1) !important; - } - - .HyperMD-header-2, - .markdown-preview-section h2 - { - font-weight: 500 !important; - font-size: 2.0em !important; - color: var(--text-title-h2) !important; - } - - .HyperMD-header-3, - .markdown-preview-section h3 - { - font-weight: 500 !important; - font-size: 1.8em !important; - color: var(--text-title-h3) !important; - } - - .HyperMD-header-4, - .markdown-preview-section h4 - { - font-weight: 500 !important; - font-size: 1.6em !important; - color: var(--text-title-h4) !important; - } - - .HyperMD-header-5, - .markdown-preview-section h5 - { - font-weight: 500 !important; - font-size: 1.4em !important; - color: var(--text-title-h5) !important; - } - - .HyperMD-header-6, - .markdown-preview-section h6 - { - font-weight: 500 !important; - font-size: 1.2em !important; - color: var(--text-title-h6) !important; - } - - .suggestion-item.is-selected - { - background-color: var(--background-secondary); - } - - .empty-state-action:hover - { - color: var(--interactive-accent); - } - - .checkbox-container - { - background-color: var(--interactive-before); - } - - .checkbox-container:after - { + mark + { + background-color: var(--text-mark); + } + + .titlebar { background-color: var(--background-secondary-alt); - } - - .mod-cta - { - color: var(--background-secondary-alt) !important; - font-weight: 600 !important; - } - - .mod-cta:hover - { - background-color: var(--interactive-before) !important; - font-weight: 600 !important; - } - - .CodeMirror-cursor - { - background-color: var(--vim-cursor) !important; - opacity: 60% !important; - } - - input.task-list-item-checkbox { - border: 1px solid var(--task-checkbox); - appearance: none; - --webkit-appearance: none; - } - - input.task-list-item-checkbox:checked { - background-color: var(--task-checkbox); - box-shadow: inset 0 0 0 2px var(--background-primary); - } - - .mermaid .note - { - fill: var(--blue) !important; - } - - .setting-item-control input[type="text"] { + } + + .titlebar-inner { color: var(--text-normal); - } - .setting-item-control input[type="text"]::placeholder { - color: var(--dark3); - } - ''; + } + + .view-actions a + { + color: var(--text-normal) !important; + } + + .view-actions a:hover + { + color: var(--text-a) !important; + } + + .HyperMD-codeblock-bg + { + background-color: var(--pre-code) !important; + } + + .HyperMD-codeblock + { + line-height: 1.4em !important; + color: var(--code-block) !important; + } + + .HyperMD-codeblock-begin + { + border-top-left-radius: 4px !important; + border-top-right-radius: 4px !important; + } + + .HyperMD-codeblock-end + { + border-bottom-left-radius: 4px !important; + border-bottom-right-radius: 4px !important; + } + + th + { + font-weight: 600 !important; + } + + thead + { + border-bottom: 2px solid var(--background-modifier-border) !important; + } + + .HyperMD-table-row + { + line-height: normal !important; + padding-left: 4px !important; + padding-right: 4px !important; + /* background-color: var(--pre-code) !important; */ + } + + .HyperMD-table-row-0 + { + /* padding-top: 4px !important; */ + } + + .CodeMirror-foldgutter-folded, + .is-collapsed .nav-folder-collapse-indicator + { + color: var(--text-a) !important; + } + + .nav-file-tag + { + color: var(--text-a) !important; + } + + .is-active .nav-file-title + { + color: var(--text-a) !important; + background-color: var(--background-primary-alt) !important; + } + + .nav-file-title + { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; + border-top-left-radius: 0 !important; + border-top-right-radius: 0 !important; + } + + .HyperMD-list-line + { + padding-top: 0 !important; + } + + .cm-hashtag + { + color: var(--text-tag) !important; + } + + .search-result-file-matched-text + { + color: var(--light3) !important; + } + + .markdown-preview-section pre code, + .markdown-preview-section code + { + font-size: 0.9em !important; + background-color: var(--pre-code) !important; + } + + .markdown-preview-section pre code + { + padding: 4px !important; + line-height: 1.4em !important; + display: block !important; + color: var(--code-block) !important; + } + + .markdown-preview-section code + { + color: var(--inline-code) !important; + } + + .markdown-preview-view hr + { + border: none; + border-top: 1px solid var(--text-faint); + } + + .markdown-source-view hr + { + border: none; + border-top: 1px solid var(--text-faint); + } + + .cm-s-obsidian, + .cm-inline-code + { + -webkit-font-smoothing: auto !important; + } + + .cm-inline-code + { + color: var(--inline-code) !important; + background-color: var(--pre-code) !important; + padding: 1px !important; + } + + .workspace-leaf-header-title + { + font-weight: 600 !important; + } + + .side-dock-title + { + padding-top: 15px !important; + font-size: 20px !important; + } + + .side-dock-ribbon-tab:hover, + .side-dock-ribbon-action:hover, + .side-dock-ribbon-action.is-active:hover, + .nav-action-button:hover, + .side-dock-collapse-btn:hover + { + color: var(--text-a); + } + + .side-dock + { + border-right: 0 !important; + } + + .cm-s-obsidian, + .markdown-preview-view + { + /* padding-left: 10px !important; */ + padding-right: 10px !important; + } + + /* vertical resize-handle */ + .workspace-split.mod-vertical > * > .workspace-leaf-resize-handle, + .workspace-split.mod-left-split > .workspace-leaf-resize-handle, + .workspace-split.mod-right-split > .workspace-leaf-resize-handle + { + width: 1px !important; + background-color: var(--background-secondary-alt); + } + + /* horizontal resize-handle */ + .workspace-split.mod-horizontal > * > .workspace-leaf-resize-handle + { + height: 1px !important; + background-color: var(--background-secondary-alt); + } + + /* Remove vertical split padding */ + .workspace-split.mod-root .workspace-split.mod-vertical .workspace-leaf-content, + .workspace-split.mod-vertical > .workspace-split, + .workspace-split.mod-vertical > .workspace-leaf, + .workspace-tabs + { + padding-right: 0px; + } + + .markdown-embed-title + { + font-weight: 600 !important; + } + + .markdown-embed + { + padding-left: 10px !important; + padding-right: 10px !important; + margin-left: 10px !important; + margin-right: 10px !important; + } + + .cm-header-1.cm-link, + h1 a + { + color: var(--text-title-h1) !important; + } + + .cm-header-2.cm-link, + h2 a + { + color: var(--text-title-h2) !important; + } + + .cm-header-3.cm-link, + h3 a + { + color: var(--text-title-h3) !important; + } + .cm-header-4.cm-link, + h4 a + { + color: var(--text-title-h4) !important; + } + .cm-header-5.cm-link, + h5 a + { + color: var(--text-title-h5) !important; + } + .cm-header-6.cm-link, + h6 a + { + color: var(--text-title-h6) !important; + } + + .cm-header { + font-weight: 500 !important; + } + + .HyperMD-header-1, + .markdown-preview-section h1 + { + font-weight: 500 !important; + font-size: 2.2em !important; + color: var(--text-title-h1) !important; + } + + .HyperMD-header-2, + .markdown-preview-section h2 + { + font-weight: 500 !important; + font-size: 2.0em !important; + color: var(--text-title-h2) !important; + } + + .HyperMD-header-3, + .markdown-preview-section h3 + { + font-weight: 500 !important; + font-size: 1.8em !important; + color: var(--text-title-h3) !important; + } + + .HyperMD-header-4, + .markdown-preview-section h4 + { + font-weight: 500 !important; + font-size: 1.6em !important; + color: var(--text-title-h4) !important; + } + + .HyperMD-header-5, + .markdown-preview-section h5 + { + font-weight: 500 !important; + font-size: 1.4em !important; + color: var(--text-title-h5) !important; + } + + .HyperMD-header-6, + .markdown-preview-section h6 + { + font-weight: 500 !important; + font-size: 1.2em !important; + color: var(--text-title-h6) !important; + } + + .suggestion-item.is-selected + { + background-color: var(--background-secondary); + } + + .empty-state-action:hover + { + color: var(--interactive-accent); + } + + .checkbox-container + { + background-color: var(--interactive-before); + } + + .checkbox-container:after + { + background-color: var(--background-secondary-alt); + } + + .mod-cta + { + color: var(--background-secondary-alt) !important; + font-weight: 600 !important; + } + + .mod-cta:hover + { + background-color: var(--interactive-before) !important; + font-weight: 600 !important; + } + + .CodeMirror-cursor + { + background-color: var(--vim-cursor) !important; + opacity: 60% !important; + } + + input.task-list-item-checkbox { + border: 1px solid var(--task-checkbox); + appearance: none; + --webkit-appearance: none; + } + + input.task-list-item-checkbox:checked { + background-color: var(--task-checkbox); + box-shadow: inset 0 0 0 2px var(--background-primary); + } + + .mermaid .note + { + fill: var(--blue) !important; + } + + .setting-item-control input[type="text"] { + color: var(--text-normal); + } + .setting-item-control input[type="text"]::placeholder { + color: var(--dark3); + } + ''; + + }; } diff --git a/modules/home/opt/misc/rbw.nix b/modules/home/opt/misc/rbw.nix index 43f742b9..ad61ddc6 100644 --- a/modules/home/opt/misc/rbw.nix +++ b/modules/home/opt/misc/rbw.nix @@ -1,6 +1,29 @@ -{ config, lib, ... }: -lib.mkIf config.modules.rbw.enable { - sops.secrets.rbw = { - path = "${config.home.homeDirectory}/.config/rbw/config.json"; +{ + config, + pkgs, + lib, + ... +}: +let + inherit (lib) + mkIf + mkEnableOption + ; + + cfg = config.opt.misc.obsidian; +in +{ + options.opt.misc.rbw = { + enable = mkEnableOption "Wether to enable Rbw and Rbw-rofi"; + }; + + config = mkIf cfg.enable { + home.packages = with pkgs; [ + rbw + rofi-rbw + ]; + sops.secrets.rbw = { + path = "${config.home.homeDirectory}/.config/rbw/config.json"; + }; }; } diff --git a/modules/home/opt/misc/vencord.nix b/modules/home/opt/misc/vencord.nix deleted file mode 100644 index 5405420f..00000000 --- a/modules/home/opt/misc/vencord.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ config, ... }: -with config.lib.stylix.colors; -{ - home.file.".config/Vencord/themes/chadcat7.css".text = '' - /** - * @name Elyth - * @description A darkened discord theme generated via home manager. - * @author refact0r - * @version 1.6.1 - * @source https://github.com/refact0r/midnight-discord - * @authorId 508863359777505290 - */ - - /* IMPORTANT: make sure to enable dark mode in discord settings for the theme to apply properly!! */ - - @import url('https://refact0r.github.io/midnight-discord/midnight.css'); - - /* change colors and variables here */ - :root { - /* amount of spacing and padding */ - --spacing: 12px; - /* radius of round corners */ - --roundness: 16px; - - /* font, change to 'gg sans' for default discord font*/ - --font: 'figtree'; - - /* color of green online dot, change to #23a55a for default green */ - --online-indicator: var(--accent-2); - - /* top left icon */ - --moon-icon: block; /* change to 'none' to hide moon icon */ - --discord-icon: none; /* change to 'block' to show default discord icon */ - - /* color of links */ - --accent-1: #${base05}; - /* color of unread dividers and some indicators */ - --accent-2: #${base05}; - /* color of accented buttons */ - --accent-3: #${base0D}; - /* color of accented buttons when hovered */ - --accent-4: #${base0D}; - /* color of accented buttons when clicked */ - --accent-5: #${base0D}; - - /* color of mentions and messages that mention you */ - --mention: hsla(190, 80%, 52%, 0.1); - /* color of mentions and messages that mention you when hovered */ - --mention-hover: hsla(190, 80%, 52%, 0.05); - - /* color of bright text on colored buttons */ - --text-1: #${base05}; - /* color of headings and important text */ - --text-2: #${base05}; - /* color of normal text */ - --text-3: #${base05}; - /* color of icon buttons and channels */ - --text-4: #${base05}; - /* color of muted channels/chats and timestamps */ - --text-5: #${base05}; - - /* color of dark buttons when clicked */ - --bg-1: #${base00}; - /* color of dark buttons */ - --bg-2: #${base00}; - /* color of spacing around panels and secondary elements */ - --bg-3: #${base00}; - /* main background color */ - --bg-4: #${base00}; - - /* color of channels and icon buttons when hovered */ - --hover: hsla(230, 20%, 40%, 0.1); - /* color of channels and icon buttons when clicked or selected */ - --active: hsla(220, 20%, 40%, 0.2); - /* color of messages when hovered */ - --message-hover: hsla(220, 0%, 0%, 0.1); - } - ''; -} diff --git a/modules/home/opt/misc/yamlfmt.nix b/modules/home/opt/misc/yamlfmt.nix index 34bbf055..0d245ee3 100644 --- a/modules/home/opt/misc/yamlfmt.nix +++ b/modules/home/opt/misc/yamlfmt.nix @@ -1,11 +1,25 @@ +{ config, lib, ... }: +let + inherit (lib) + mkIf + mkEnableOption + ; + + cfg = config.opt.misc.yamlfmt; +in { - home.file.".config/yamlfmt/.yamlfmt".text = '' - formatter: - type: basic - disallow_anchors: false - include_document_start: false - retain_line_breaks: true - drop_merge_tag: true - indentless_arrays: true - ''; + options.opt.misc.yamlfmt = { + enable = mkEnableOption "Wether to enable Yamlfmt"; + }; + config = mkIf cfg.enable { + home.file.".config/yamlfmt/.yamlfmt".text = '' + formatter: + type: basic + disallow_anchors: false + include_document_start: false + retain_line_breaks: true + drop_merge_tag: true + indentless_arrays: true + ''; + }; } diff --git a/modules/home/opt/music/mpd/default.nix b/modules/home/opt/music/mpd/default.nix index d084856d..a569f5ff 100644 --- a/modules/home/opt/music/mpd/default.nix +++ b/modules/home/opt/music/mpd/default.nix @@ -1,6 +1,18 @@ { config, lib, ... }: +let + inherit (lib) + mkIf + mkEnableOption + ; + + cfg = config.opt.music.mpd; +in { - config = lib.mkIf config.modules.mpd.enable { + imports = [ ./misc.nix ]; + options.opt.music.mpd = { + enable = mkEnableOption "Wether to enable MPD"; + }; + config = mkIf cfg.enable { services.mpd = { enable = true; musicDirectory = "${config.home.homeDirectory}/Music"; @@ -33,5 +45,4 @@ network.startWhenNeeded = true; }; }; - imports = [ ./misc.nix ]; } diff --git a/modules/home/opt/music/mpd/misc.nix b/modules/home/opt/music/mpd/misc.nix index 3b97baa4..c4498906 100644 --- a/modules/home/opt/music/mpd/misc.nix +++ b/modules/home/opt/music/mpd/misc.nix @@ -4,9 +4,16 @@ pkgs, ... }: +let + inherit (lib) + mkIf + ; + + cfg = config.opt.music.mpd; +in { # Allows mpd to work with playerctl. - config = lib.mkIf config.modules.mpd.enable { + config = mkIf cfg.enable { home.packages = [ pkgs.playerctl ]; services.mpdris2.enable = true; services.playerctld.enable = true; diff --git a/modules/home/opt/music/ncmp/default.nix b/modules/home/opt/music/ncmp/default.nix index 8e5696b8..5a7e2704 100644 --- a/modules/home/opt/music/ncmp/default.nix +++ b/modules/home/opt/music/ncmp/default.nix @@ -4,8 +4,19 @@ pkgs, ... }: +let + inherit (lib) + mkIf + mkEnableOption + ; + + cfg = config.opt.music.ncmp; +in { - config = lib.mkIf config.modules.ncmpcpp.enable { + options.opt.music.ncmp = { + enable = mkEnableOption "Wether to enable Yamlfmt"; + }; + config = mkIf cfg.enable { programs.ncmpcpp = { enable = true; package = pkgs.ncmpcpp.override { diff --git a/modules/home/opt/music/spicetify/default.nix b/modules/home/opt/music/spicetify/default.nix index 31a69eaf..cf73afe0 100644 --- a/modules/home/opt/music/spicetify/default.nix +++ b/modules/home/opt/music/spicetify/default.nix @@ -8,10 +8,21 @@ let inherit (inputs) spicetify; spicePkgs = spicetify.legacyPackages.${pkgs.system}; + + inherit (lib) + mkIf + mkEnableOption + ; + + cfg = config.opt.music.spicetify; in { imports = [ spicetify.homeManagerModules.default ]; - config = lib.mkIf config.modules.spicetify.enable { + options.opt.music.spicetify = { + enable = mkEnableOption "Wether to enable Spicetify"; + }; + + config = mkIf cfg.enable { programs.spicetify = { enable = true; theme = spicePkgs.themes.comfy; diff --git a/modules/home/opt/options.nix b/modules/home/opt/options.nix index 8f5d6e32..75d40335 100644 --- a/modules/home/opt/options.nix +++ b/modules/home/opt/options.nix @@ -4,7 +4,6 @@ modules = { anyrun.enable = lib.mkEnableOption "Enable anyrun"; cliphist.enable = lib.mkEnableOption "Enable cliphist"; - firefox.enable = lib.mkEnableOption "Enable firefox"; gitui.enable = lib.mkEnableOption "Enable gitui"; gpg-agent.enable = lib.mkEnableOption "Enable gpg-agent"; hyprland.enable = lib.mkEnableOption "Enable hyprland"; @@ -13,11 +12,7 @@ kanshi.enable = lib.mkEnableOption "Enable kanshi"; lazygit.enable = lib.mkEnableOption "Enable lazygit"; lf.enable = lib.mkEnableOption "Enable lf"; - mpd.enable = lib.mkEnableOption "Enable mpd"; - ncmpcpp.enable = lib.mkEnableOption "Enable ncmp"; - rbw.enable = lib.mkEnableOption "Enable rbw"; rofi.enable = lib.mkEnableOption "Enable rofi"; - spicetify.enable = lib.mkEnableOption "Enable spicetify"; sss.enable = lib.mkEnableOption "Enable sss"; swaybg.enable = lib.mkEnableOption "Enable swaybg"; swayidle.enable = lib.mkEnableOption "Enable swayidle"; diff --git a/modules/nixos/opt/pkgs.nix b/modules/nixos/opt/pkgs.nix index 1b9c77d1..697d5474 100644 --- a/modules/nixos/opt/pkgs.nix +++ b/modules/nixos/opt/pkgs.nix @@ -43,6 +43,7 @@ xdg-utils yaml-language-server yq + wshowkeys ]; nixpkgs.config = { allowUnfree = true;