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;