diff --git a/home/modules/base/mime-apps.nix b/home/modules/base/mime-apps.nix index 415c247..36f58b6 100644 --- a/home/modules/base/mime-apps.nix +++ b/home/modules/base/mime-apps.nix @@ -1,36 +1,8 @@ { lib, config, pkgs, ... }: -let - browser = ["${config.home.sessionVariables.BROWSER}.desktop"]; - zathura = ["org.pwmt.zethura.desktop.desktop"]; - - associations = { - "text/html" = browser; - "x-scheme-handler/http" = browser; - "x-scheme-handler/https" = browser; - "x-scheme-handler/ftp" = browser; - "x-scheme-handler/about" = browser; - "x-scheme-handler/unknown" = browser; - "application/x-extension-htm" = browser; - "application/x-extension-html" = browser; - "application/x-extension-shtml" = browser; - "application/xhtml+xml" = browser; - "application/x-extension-xhtml" = browser; - "application/x-extension-xht" = browser; - - "audio/*" = ["mpv.desktop"]; - "video/*" = ["mpv.dekstop"]; - "image/*" = ["imv.desktop"]; - "application/json" = browser; - "application/pdf" = zathura; - "x-scheme-handler/discord" = ["vesktop.desktop"]; - }; -in { home.packages = [ pkgs.xdg-utils ]; xdg.mimeApps = { enable = true; - associations.added = associations; - defaultApplications = associations; }; } diff --git a/home/modules/desktop/browser/firefox/default.nix b/home/modules/desktop/browser/firefox/default.nix index 808240d..cdafbe4 100644 --- a/home/modules/desktop/browser/firefox/default.nix +++ b/home/modules/desktop/browser/firefox/default.nix @@ -1,33 +1,58 @@ { pkgs, lib, inputs, config, ... }: let + inherit (lib) mkIf mkMerge; + addons = inputs.firefox-addons.packages.${pkgs.system}; cfg = config.ooknet.browser.firefox; browser = config.ooknet.desktop.browser; - inherit (lib) mkIf; + firefoxMime = { + "text/html" = ["firefox.desktop"]; + "x-scheme-handler/http" = ["firefox.desktop"]; + "x-scheme-handler/https" = ["firefox.desktop"]; + "x-scheme-handler/ftp" = ["firefox.desktop"]; + "x-scheme-handler/about" = ["firefox.desktop"]; + "x-scheme-handler/unknown" = ["firefox.desktop"]; + "application/x-extension-htm" = ["firefox.desktop"]; + "application/x-extension-html" = ["firefox.desktop"]; + "application/x-extension-shtml" = ["firefox.desktop"]; + "application/xhtml+xml" = ["firefox.desktop"]; + "application/x-extension-xhtml" = ["firefox.desktop"]; + "application/x-extension-xht" = ["firefox.desktop"]; + "application/json" = ["firefox.desktop"]; + }; in { imports = [ ./tridactyl.nix ]; - config = mkIf (cfg.enable || browser == "firefox") { - home.sessionVariables.BROWSER = mkIf (browser == "firefox") "firefox"; - ooknet.binds.browser = mkIf (browser == "firefox") "firefox"; - - programs.firefox = { - enable = true; - nativeMessagingHosts = [pkgs.tridactyl-native]; - profiles.ooks = { - extensions = with addons; [ - ublock-origin - darkreader - tridactyl - # onepassword-password-manager # cannot get this to work unfree issue. - ]; - settings = import ./settings/ooksJs.nix; - userChrome = import ./theme/penguinFox.nix; - userContent = import ./theme/penguinFoxContent.nix; + config = mkMerge [ + (mkIf (cfg.enable || browser == "firefox") { + programs.firefox = { + enable = true; + nativeMessagingHosts = [ pkgs.tridactyl-native ]; + profiles.ooks = { + extensions = with addons; [ + ublock-origin + darkreader + tridactyl + # onepassword-password-manager # cannot get this to work unfree issue. + ]; + settings = import ./settings/ooksJs.nix; + userChrome = import ./theme/penguinFox.nix; + userContent = import ./theme/penguinFoxContent.nix; + }; }; - }; - }; + }) + + (mkIf (browser == "firefox") { + home.sessionVariables.BROWSER = "firefox"; + ooknet.binds.browser = "firefox"; + xdg.mimeApps = { + associations.added = firefoxMime; + defaultApplications = firefoxMime; + }; + }) + + ]; } diff --git a/home/modules/desktop/communication/discord/vesktop.nix b/home/modules/desktop/communication/discord/vesktop.nix index d0d2ddc..a05ebbc 100644 --- a/home/modules/desktop/communication/discord/vesktop.nix +++ b/home/modules/desktop/communication/discord/vesktop.nix @@ -2,152 +2,165 @@ let inherit (config.colorscheme) palette; - inherit (lib) mkIf; + inherit (lib) mkIf mkMerge; + cfg = config.ooknet.communication.discord; discord = config.ooknet.desktop.discord; fonts = config.ooknet.fonts; + vesktopMime = { + "x-scheme-handler/discord" = ["vesktop.desktop"]; + }; in { - config = mkIf (cfg.enable || discord == "vesktop") { - home.packages = [ pkgs.vesktop ]; - ooknet.binds.discord = "vesktop"; - xdg.configFile."vesktop/themes/nix.css".text = /* css */ '' - /** - * @name nix-colors-minimal - * @author aoku - * @description minimal theme designed with nix colors - */ + config = mkMerge [ + (mkIf (cfg.enable || discord == "vesktop") { + home.packages = [ pkgs.vesktop ]; + xdg.configFile."vesktop/themes/nix.css".text = /* css */ '' + /** + * @name nix-colors-minimal + * @author aoku + * @description minimal theme designed with nix colors + */ - :root { - --nix-bg1: #${palette.base00}; - --nix-bg2: #${palette.base01}; - --nix-bg3: #${palette.base02}; + :root { + --nix-bg1: #${palette.base00}; + --nix-bg2: #${palette.base01}; + --nix-bg3: #${palette.base02}; - --nix-fg1: #${palette.base05}; - --nix-fg2: #${palette.base07}; - --nix-fg3: #${palette.base03}; - --nix-link: #${palette.base0D}; + --nix-fg1: #${palette.base05}; + --nix-fg2: #${palette.base07}; + --nix-fg3: #${palette.base03}; + --nix-link: #${palette.base0D}; - --nix-accent: #${palette.base08}; - --nix-hi: #${palette.base0B}; + --nix-accent: #${palette.base08}; + --nix-hi: #${palette.base0B}; + + --font-mono: ${fonts.monospace.family}, monospace; + --font-regular: ${fonts.regular.family}, sans serif; + + /* server collapse */ + --sb-collapsed-width: 12px; + --sb-transition-duration: 0s; + } + + .theme-dark { + --background-primary: var(--nix-bg1); + --background-secondary: var(--nix-bg1); + --background-secondary-alt: var(--nix-bg1); + --background-accent: var(--nix-accent); + --background-tertiary: var(--nix-bg1); + --background-floating: var(--nix-bg1); + --background-mentioned: var(--nix-bg1); + --background-mentioned-hover: var(--nix-bg1); + --background-mobile: var(--nix-bg1); + --background-mobile-secondary: var(--nix-bg2); + --background-modifier-selected: var(--nix-bg1); + --channeltextarea-background:var(--nix-bg1); + --background-modifier-hover:var(--nix-bg1); + --activity-card-background: var(--nix-bg2); + + --header-primary: var(--nix-fg2); + --header-secondary: var(--nix-fg1); + + --text-normal: var(--nix-fg1); + --text-muted: var(--nix-fg1); + --text-link: var(--nix-link); + --text-warning: var(--nix-accent); + --font-primary: var(--font-mono); + --font-headline: var(--font-mono); + --font-display: var(--font-mono); + + --interactive-normal: var(--nix-fg1); /*base05*/ + --interactive-hover: var(--nix-hi); /*base0B*/ + --interactive-active: var(--nix-fg2); + --interactive-muted: var(--nix-fg3); /*base03*/ + --channels-default: var(--nix-fg1); + + --scrollbar-thin-thumb: transparent; + --scrollbar-thin-track: transparent; + --scrollbar-auto-thumb: var(--nix-fg1); + --scrollbar-auto-track:var(--nix-bg1); + --scrollbar-auto-scrollbar-color-thumb: var(--nix-accent); + } + + .messagesWrapper_ea2b0b { + font-family: var(--font-regular); + } + + .titleWrapper__482dc { + font-family: var(--font-mono); + } + + .link__95dc0 /* text channel*/{ + border-radius: 0px; + margin-left: -10px; + font-family: var(--font-mono); + } + + .container_ca50b9 .avatar_f8541f { /*avatar*/ + display: none; + } + + .form__13a2c /* text input box resize */ { + height: 50px; + font-family: var(--font-regular); + } + + .containerDefault__3187b .wrapper__7bcde:before /* text channel */{ + content: ""; + display:inline-block; + background: var(--nix-hi); + height: 100%; + position: absolute; + left: 0; + } - --font-mono: ${fonts.monospace.family}, monospace; - --font-regular: ${fonts.regular.family}, sans serif; /* server collapse */ - --sb-collapsed-width: 12px; - --sb-transition-duration: 0s; - } - - .theme-dark { - --background-primary: var(--nix-bg1); - --background-secondary: var(--nix-bg1); - --background-secondary-alt: var(--nix-bg1); - --background-accent: var(--nix-accent); - --background-tertiary: var(--nix-bg1); - --background-floating: var(--nix-bg1); - --background-mentioned: var(--nix-bg1); - --background-mentioned-hover: var(--nix-bg1); - --background-mobile: var(--nix-bg1); - --background-mobile-secondary: var(--nix-bg2); - --background-modifier-selected: var(--nix-bg1); - --channeltextarea-background:var(--nix-bg1); - --background-modifier-hover:var(--nix-bg1); - --activity-card-background: var(--nix-bg2); - - --header-primary: var(--nix-fg2); - --header-secondary: var(--nix-fg1); - - --text-normal: var(--nix-fg1); - --text-muted: var(--nix-fg1); - --text-link: var(--nix-link); - --text-warning: var(--nix-accent); - --font-primary: var(--font-mono); - --font-headline: var(--font-mono); - --font-display: var(--font-mono); - - --interactive-normal: var(--nix-fg1); /*base05*/ - --interactive-hover: var(--nix-hi); /*base0B*/ - --interactive-active: var(--nix-fg2); - --interactive-muted: var(--nix-fg3); /*base03*/ - --channels-default: var(--nix-fg1); - - --scrollbar-thin-thumb: transparent; - --scrollbar-thin-track: transparent; - --scrollbar-auto-thumb: var(--nix-fg1); - --scrollbar-auto-track:var(--nix-bg1); - --scrollbar-auto-scrollbar-color-thumb: var(--nix-accent); - } - - .messagesWrapper_ea2b0b { - font-family: var(--font-regular); - } - - .titleWrapper__482dc { - font-family: var(--font-mono); - } - - .link__95dc0 /* text channel*/{ - border-radius: 0px; - margin-left: -10px; - font-family: var(--font-mono); - } - - .container_ca50b9 .avatar_f8541f { /*avatar*/ - display: none; - } - - .form__13a2c /* text input box resize */ { - height: 50px; - font-family: var(--font-regular); - } - - .containerDefault__3187b .wrapper__7bcde:before /* text channel */{ - content: ""; - display:inline-block; - background: var(--nix-hi); - height: 100%; - position: absolute; - left: 0; - } - - - /* server collapse */ - .guilds__2b93a /* servers */{ - overflow: hidden !important; - width: var(--sb-collapsed-width, 75px); - transition: width var(--sb-transition-duration); - } - .guilds__2b93a:hover /* expand server bar on hover */{ - width: 70px; - overflow: visible !important; - animation: server-bar-overflow 0s linear 0ms forwards - } - .guilds__2b93a ~ .base__3e6af /* friends list, chat */{ - position: absolute; - left: var(--sb-collapsed-left, var(--sb-collapsed-width)); - top: var(--sb-collapsed-top, 0px); - bottom: var(--sb-collapsed-bottom, 0px); - right: var(--sb-collapsed-right, 0px); - transition-property: var(--sb-transition-property, left); - transition-duration: var(--sb-transition-duration); - } - .guilds__2b93a:hover ~ .base__3e6af /* friends list, chat */{ - position: absolute; - left: var(--sb-left, 70px); - top: var(--sb-top, 0px); - bottom: var(--sb-bottom, 0px); - right: var(--sb-right, 0px); - } - @keyframes server-bar-overflow{ - from{ - overflow: hidden; - } - to{ - overflow: visible; - } - } - ''; - }; + .guilds__2b93a /* servers */{ + overflow: hidden !important; + width: var(--sb-collapsed-width, 75px); + transition: width var(--sb-transition-duration); + } + .guilds__2b93a:hover /* expand server bar on hover */{ + width: 70px; + overflow: visible !important; + animation: server-bar-overflow 0s linear 0ms forwards + } + .guilds__2b93a ~ .base__3e6af /* friends list, chat */{ + position: absolute; + left: var(--sb-collapsed-left, var(--sb-collapsed-width)); + top: var(--sb-collapsed-top, 0px); + bottom: var(--sb-collapsed-bottom, 0px); + right: var(--sb-collapsed-right, 0px); + transition-property: var(--sb-transition-property, left); + transition-duration: var(--sb-transition-duration); + } + .guilds__2b93a:hover ~ .base__3e6af /* friends list, chat */{ + position: absolute; + left: var(--sb-left, 70px); + top: var(--sb-top, 0px); + bottom: var(--sb-bottom, 0px); + right: var(--sb-right, 0px); + } + @keyframes server-bar-overflow{ + from{ + overflow: hidden; + } + to{ + overflow: visible; + } + } + ''; + }) + + (mkIf (discord == "vesktop") { + ooknet.binds.discord = "vesktop"; + xdg.mimeApps = { + associations.added = vesktopMime; + defaultApplications = vesktopMime; + }; + }) + ]; } diff --git a/home/modules/desktop/media/image/imv.nix b/home/modules/desktop/media/image/imv.nix index e101dc9..7f9bf7d 100644 --- a/home/modules/desktop/media/image/imv.nix +++ b/home/modules/desktop/media/image/imv.nix @@ -3,6 +3,9 @@ let inherit (lib) mkIf; cfg = config.ooknet.media.image.imv; + imvMime = { + "image/*" = ["imv.desktop"]; + }; in { @@ -12,5 +15,9 @@ in enable = true; }; }; + xdg.mimeApps = { + associations.added = imvMime; + defaultApplications = imvMime; + }; }; } diff --git a/home/modules/desktop/media/video/mpv.nix b/home/modules/desktop/media/video/mpv.nix index 0de1074..49c0809 100644 --- a/home/modules/desktop/media/video/mpv.nix +++ b/home/modules/desktop/media/video/mpv.nix @@ -3,6 +3,10 @@ let inherit (lib) mkIf; cfg = config.ooknet.media.video.mpv; + mpvMime = { + "audio/*" = ["mpv.desktop"]; + "video/*" = ["mpv.desktop"]; + }; in { @@ -10,5 +14,9 @@ in programs.mpv = { enable = true; }; + xdg.mimeApps = { + associations.added = mpvMime; + defaultApplications = mpvMime; + }; }; } diff --git a/home/modules/desktop/productivity/notes/obsidian.nix b/home/modules/desktop/productivity/notes/obsidian.nix index 983df39..2270979 100644 --- a/home/modules/desktop/productivity/notes/obsidian.nix +++ b/home/modules/desktop/productivity/notes/obsidian.nix @@ -1,14 +1,19 @@ { lib, config, pkgs, ... }: let - inherit (lib) mkIf; + inherit (lib) mkIf mkMerge; cfg = config.ooknet.productivity.notes.obsidian; notes = config.ooknet.desktop.notes; in { - config = mkIf (cfg.enable || notes == "obsidian") { - home.packages = [ pkgs.obsidian ]; - ooknet.binds.notes = mkIf (notes == "obsidian") "obsidian"; - }; + config = mkMerge [ + (mkIf (cfg.enable || notes == "obsidian") { + home.packages = [ pkgs.obsidian ]; + }) + + (mkIf (notes == "obsidian") { + ooknet.binds.notes = "obsidian"; + }) + ]; } diff --git a/home/modules/desktop/productivity/pdf/zathura.nix b/home/modules/desktop/productivity/pdf/zathura.nix index a4410e4..b96defe 100644 --- a/home/modules/desktop/productivity/pdf/zathura.nix +++ b/home/modules/desktop/productivity/pdf/zathura.nix @@ -3,6 +3,8 @@ let inherit (config.colorscheme) palette; inherit (lib) mkIf; + + zathura = { "application/pdf" = ["org.pwmt.zathura.desktop"]; }; cfg = config.ooknet.productivity.pdf.zathura; pdf = config.ooknet.desktop.pdf; fonts = config.ooknet.fonts; @@ -38,5 +40,9 @@ in recolor-darkcolor = "#${palette.base06}"; }; }; + xdg.mimeApps = mkIf (pdf == "zathura") { + associations.added = zathura; + defaultApplications = zathura; + }; }; }