refactor(home:mime-apps): move mime configuration to relevant application modules
This commit is contained in:
parent
65fb953361
commit
55f907cf08
7 changed files with 225 additions and 189 deletions
|
|
@ -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;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
})
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue