refactor(home:mime-apps): move mime configuration to relevant application modules

This commit is contained in:
ooks-io 2024-06-23 23:19:12 +12:00
parent 65fb953361
commit 55f907cf08
7 changed files with 225 additions and 189 deletions

View file

@ -1,36 +1,8 @@
{ lib, config, pkgs, ... }: { 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 ]; home.packages = [ pkgs.xdg-utils ];
xdg.mimeApps = { xdg.mimeApps = {
enable = true; enable = true;
associations.added = associations;
defaultApplications = associations;
}; };
} }

View file

@ -1,33 +1,58 @@
{ pkgs, lib, inputs, config, ... }: { pkgs, lib, inputs, config, ... }:
let let
inherit (lib) mkIf mkMerge;
addons = inputs.firefox-addons.packages.${pkgs.system}; addons = inputs.firefox-addons.packages.${pkgs.system};
cfg = config.ooknet.browser.firefox; cfg = config.ooknet.browser.firefox;
browser = config.ooknet.desktop.browser; 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 in
{ {
imports = [ ./tridactyl.nix ]; imports = [ ./tridactyl.nix ];
config = mkIf (cfg.enable || browser == "firefox") { config = mkMerge [
home.sessionVariables.BROWSER = mkIf (browser == "firefox") "firefox"; (mkIf (cfg.enable || browser == "firefox") {
ooknet.binds.browser = mkIf (browser == "firefox") "firefox"; programs.firefox = {
enable = true;
programs.firefox = { nativeMessagingHosts = [ pkgs.tridactyl-native ];
enable = true; profiles.ooks = {
nativeMessagingHosts = [pkgs.tridactyl-native]; extensions = with addons; [
profiles.ooks = { ublock-origin
extensions = with addons; [ darkreader
ublock-origin tridactyl
darkreader # onepassword-password-manager # cannot get this to work unfree issue.
tridactyl ];
# onepassword-password-manager # cannot get this to work unfree issue. settings = import ./settings/ooksJs.nix;
]; userChrome = import ./theme/penguinFox.nix;
settings = import ./settings/ooksJs.nix; userContent = import ./theme/penguinFoxContent.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;
};
})
];
} }

View file

@ -2,152 +2,165 @@
let let
inherit (config.colorscheme) palette; inherit (config.colorscheme) palette;
inherit (lib) mkIf; inherit (lib) mkIf mkMerge;
cfg = config.ooknet.communication.discord; cfg = config.ooknet.communication.discord;
discord = config.ooknet.desktop.discord; discord = config.ooknet.desktop.discord;
fonts = config.ooknet.fonts; fonts = config.ooknet.fonts;
vesktopMime = {
"x-scheme-handler/discord" = ["vesktop.desktop"];
};
in in
{ {
config = mkIf (cfg.enable || discord == "vesktop") { config = mkMerge [
home.packages = [ pkgs.vesktop ]; (mkIf (cfg.enable || discord == "vesktop") {
ooknet.binds.discord = "vesktop"; home.packages = [ pkgs.vesktop ];
xdg.configFile."vesktop/themes/nix.css".text = /* css */ '' xdg.configFile."vesktop/themes/nix.css".text = /* css */ ''
/** /**
* @name nix-colors-minimal * @name nix-colors-minimal
* @author aoku * @author aoku
* @description minimal theme designed with nix colors * @description minimal theme designed with nix colors
*/ */
:root { :root {
--nix-bg1: #${palette.base00}; --nix-bg1: #${palette.base00};
--nix-bg2: #${palette.base01}; --nix-bg2: #${palette.base01};
--nix-bg3: #${palette.base02}; --nix-bg3: #${palette.base02};
--nix-fg1: #${palette.base05}; --nix-fg1: #${palette.base05};
--nix-fg2: #${palette.base07}; --nix-fg2: #${palette.base07};
--nix-fg3: #${palette.base03}; --nix-fg3: #${palette.base03};
--nix-link: #${palette.base0D}; --nix-link: #${palette.base0D};
--nix-accent: #${palette.base08}; --nix-accent: #${palette.base08};
--nix-hi: #${palette.base0B}; --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 */ /* server collapse */
--sb-collapsed-width: 12px; .guilds__2b93a /* servers */{
--sb-transition-duration: 0s; overflow: hidden !important;
} width: var(--sb-collapsed-width, 75px);
transition: width var(--sb-transition-duration);
.theme-dark { }
--background-primary: var(--nix-bg1); .guilds__2b93a:hover /* expand server bar on hover */{
--background-secondary: var(--nix-bg1); width: 70px;
--background-secondary-alt: var(--nix-bg1); overflow: visible !important;
--background-accent: var(--nix-accent); animation: server-bar-overflow 0s linear 0ms forwards
--background-tertiary: var(--nix-bg1); }
--background-floating: var(--nix-bg1); .guilds__2b93a ~ .base__3e6af /* friends list, chat */{
--background-mentioned: var(--nix-bg1); position: absolute;
--background-mentioned-hover: var(--nix-bg1); left: var(--sb-collapsed-left, var(--sb-collapsed-width));
--background-mobile: var(--nix-bg1); top: var(--sb-collapsed-top, 0px);
--background-mobile-secondary: var(--nix-bg2); bottom: var(--sb-collapsed-bottom, 0px);
--background-modifier-selected: var(--nix-bg1); right: var(--sb-collapsed-right, 0px);
--channeltextarea-background:var(--nix-bg1); transition-property: var(--sb-transition-property, left);
--background-modifier-hover:var(--nix-bg1); transition-duration: var(--sb-transition-duration);
--activity-card-background: var(--nix-bg2); }
.guilds__2b93a:hover ~ .base__3e6af /* friends list, chat */{
--header-primary: var(--nix-fg2); position: absolute;
--header-secondary: var(--nix-fg1); left: var(--sb-left, 70px);
top: var(--sb-top, 0px);
--text-normal: var(--nix-fg1); bottom: var(--sb-bottom, 0px);
--text-muted: var(--nix-fg1); right: var(--sb-right, 0px);
--text-link: var(--nix-link); }
--text-warning: var(--nix-accent); @keyframes server-bar-overflow{
--font-primary: var(--font-mono); from{
--font-headline: var(--font-mono); overflow: hidden;
--font-display: var(--font-mono); }
to{
--interactive-normal: var(--nix-fg1); /*base05*/ overflow: visible;
--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; (mkIf (discord == "vesktop") {
--scrollbar-thin-track: transparent; ooknet.binds.discord = "vesktop";
--scrollbar-auto-thumb: var(--nix-fg1); xdg.mimeApps = {
--scrollbar-auto-track:var(--nix-bg1); associations.added = vesktopMime;
--scrollbar-auto-scrollbar-color-thumb: var(--nix-accent); defaultApplications = vesktopMime;
} };
})
.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;
}
}
'';
};
} }

View file

@ -3,6 +3,9 @@
let let
inherit (lib) mkIf; inherit (lib) mkIf;
cfg = config.ooknet.media.image.imv; cfg = config.ooknet.media.image.imv;
imvMime = {
"image/*" = ["imv.desktop"];
};
in in
{ {
@ -12,5 +15,9 @@ in
enable = true; enable = true;
}; };
}; };
xdg.mimeApps = {
associations.added = imvMime;
defaultApplications = imvMime;
};
}; };
} }

View file

@ -3,6 +3,10 @@
let let
inherit (lib) mkIf; inherit (lib) mkIf;
cfg = config.ooknet.media.video.mpv; cfg = config.ooknet.media.video.mpv;
mpvMime = {
"audio/*" = ["mpv.desktop"];
"video/*" = ["mpv.desktop"];
};
in in
{ {
@ -10,5 +14,9 @@ in
programs.mpv = { programs.mpv = {
enable = true; enable = true;
}; };
xdg.mimeApps = {
associations.added = mpvMime;
defaultApplications = mpvMime;
};
}; };
} }

View file

@ -1,14 +1,19 @@
{ lib, config, pkgs, ... }: { lib, config, pkgs, ... }:
let let
inherit (lib) mkIf; inherit (lib) mkIf mkMerge;
cfg = config.ooknet.productivity.notes.obsidian; cfg = config.ooknet.productivity.notes.obsidian;
notes = config.ooknet.desktop.notes; notes = config.ooknet.desktop.notes;
in in
{ {
config = mkIf (cfg.enable || notes == "obsidian") { config = mkMerge [
home.packages = [ pkgs.obsidian ]; (mkIf (cfg.enable || notes == "obsidian") {
ooknet.binds.notes = mkIf (notes == "obsidian") "obsidian"; home.packages = [ pkgs.obsidian ];
}; })
(mkIf (notes == "obsidian") {
ooknet.binds.notes = "obsidian";
})
];
} }

View file

@ -3,6 +3,8 @@
let let
inherit (config.colorscheme) palette; inherit (config.colorscheme) palette;
inherit (lib) mkIf; inherit (lib) mkIf;
zathura = { "application/pdf" = ["org.pwmt.zathura.desktop"]; };
cfg = config.ooknet.productivity.pdf.zathura; cfg = config.ooknet.productivity.pdf.zathura;
pdf = config.ooknet.desktop.pdf; pdf = config.ooknet.desktop.pdf;
fonts = config.ooknet.fonts; fonts = config.ooknet.fonts;
@ -38,5 +40,9 @@ in
recolor-darkcolor = "#${palette.base06}"; recolor-darkcolor = "#${palette.base06}";
}; };
}; };
xdg.mimeApps = mkIf (pdf == "zathura") {
associations.added = zathura;
defaultApplications = zathura;
};
}; };
} }