feat: add isGraphical target option
This commit is contained in:
parent
4ac4130f5e
commit
d9cbfc07dc
18 changed files with 546 additions and 498 deletions
|
@ -31,16 +31,19 @@
|
||||||
system = "aarch64-darwin";
|
system = "aarch64-darwin";
|
||||||
username = "winston";
|
username = "winston";
|
||||||
extraModules = [inputs.nekowinston-nur.darwinModules.default];
|
extraModules = [inputs.nekowinston-nur.darwinModules.default];
|
||||||
|
isGraphical = true;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
host = "futomaki";
|
host = "futomaki";
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
username = "winston";
|
username = "winston";
|
||||||
|
isGraphical = true;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
host = "bento";
|
host = "bento";
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
username = "w";
|
username = "w";
|
||||||
|
isGraphical = true;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
imports = [inputs.pre-commit-hooks.flakeModule];
|
imports = [inputs.pre-commit-hooks.flakeModule];
|
||||||
|
|
|
@ -1,165 +1,170 @@
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (pkgs.stdenv.hostPlatform) isLinux;
|
inherit (pkgs.stdenv) isLinux;
|
||||||
in {
|
in {
|
||||||
programs.chromium = {
|
config = lib.mkIf config.isGraphical {
|
||||||
enable = true;
|
programs.chromium = {
|
||||||
package = pkgs.ungoogled-chromium;
|
enable = isLinux;
|
||||||
};
|
package = pkgs.ungoogled-chromium;
|
||||||
|
};
|
||||||
|
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = isLinux;
|
enable = isLinux;
|
||||||
profiles.default = {
|
profiles.default = {
|
||||||
search.default = "DuckDuckGo";
|
search.default = "DuckDuckGo";
|
||||||
search.force = true;
|
search.force = true;
|
||||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
bitwarden
|
bitwarden
|
||||||
clearurls
|
clearurls
|
||||||
darkreader
|
darkreader
|
||||||
decentraleyes
|
decentraleyes
|
||||||
i-dont-care-about-cookies
|
i-dont-care-about-cookies
|
||||||
languagetool
|
languagetool
|
||||||
mailvelope
|
mailvelope
|
||||||
multi-account-containers
|
multi-account-containers
|
||||||
onepassword-password-manager
|
onepassword-password-manager
|
||||||
refined-github
|
refined-github
|
||||||
temporary-containers
|
temporary-containers
|
||||||
ublock-origin
|
ublock-origin
|
||||||
vimium
|
vimium
|
||||||
];
|
];
|
||||||
settings = {
|
settings = {
|
||||||
"app.normandy.api_url" = "";
|
"app.normandy.api_url" = "";
|
||||||
"app.normandy.enabled" = false;
|
"app.normandy.enabled" = false;
|
||||||
"app.shield.optoutstudies.enabled" = false;
|
"app.shield.optoutstudies.enabled" = false;
|
||||||
"app.update.auto" = false;
|
"app.update.auto" = false;
|
||||||
"beacon.enabled" = false;
|
"beacon.enabled" = false;
|
||||||
"breakpad.reportURL" = "";
|
"breakpad.reportURL" = "";
|
||||||
"browser.aboutConfig.showWarning" = false;
|
"browser.aboutConfig.showWarning" = false;
|
||||||
"browser.cache.offline.enable" = false;
|
"browser.cache.offline.enable" = false;
|
||||||
"browser.crashReports.unsubmittedCheck.autoSubmit" = false;
|
"browser.crashReports.unsubmittedCheck.autoSubmit" = false;
|
||||||
"browser.crashReports.unsubmittedCheck.autoSubmit2" = false;
|
"browser.crashReports.unsubmittedCheck.autoSubmit2" = false;
|
||||||
"browser.crashReports.unsubmittedCheck.enabled" = false;
|
"browser.crashReports.unsubmittedCheck.enabled" = false;
|
||||||
"browser.disableResetPrompt" = true;
|
"browser.disableResetPrompt" = true;
|
||||||
"browser.formfill.enable" = false;
|
"browser.formfill.enable" = false;
|
||||||
"browser.newtab.preload" = false;
|
"browser.newtab.preload" = false;
|
||||||
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
||||||
"browser.newtabpage.enabled" = false;
|
"browser.newtabpage.enabled" = false;
|
||||||
"browser.newtabpage.enhanced" = false;
|
"browser.newtabpage.enhanced" = false;
|
||||||
"browser.newtabpage.introShown" = true;
|
"browser.newtabpage.introShown" = true;
|
||||||
"browser.quitShortcut.disabled" = true;
|
"browser.quitShortcut.disabled" = true;
|
||||||
"browser.safebrowsing.appRepURL" = "";
|
"browser.safebrowsing.appRepURL" = "";
|
||||||
"browser.safebrowsing.blockedURIs.enabled" = false;
|
"browser.safebrowsing.blockedURIs.enabled" = false;
|
||||||
"browser.safebrowsing.downloads.enabled" = false;
|
"browser.safebrowsing.downloads.enabled" = false;
|
||||||
"browser.safebrowsing.downloads.remote.enabled" = false;
|
"browser.safebrowsing.downloads.remote.enabled" = false;
|
||||||
"browser.safebrowsing.downloads.remote.url" = "";
|
"browser.safebrowsing.downloads.remote.url" = "";
|
||||||
"browser.safebrowsing.enabled" = false;
|
"browser.safebrowsing.enabled" = false;
|
||||||
"browser.safebrowsing.malware.enabled" = false;
|
"browser.safebrowsing.malware.enabled" = false;
|
||||||
"browser.safebrowsing.phishing.enabled" = false;
|
"browser.safebrowsing.phishing.enabled" = false;
|
||||||
"browser.selfsupport.url" = "";
|
"browser.selfsupport.url" = "";
|
||||||
"browser.send_pings" = false;
|
"browser.send_pings" = false;
|
||||||
"browser.sessionstore.privacy_level" = 0;
|
"browser.sessionstore.privacy_level" = 0;
|
||||||
"browser.shell.checkDefaultBrowser" = false;
|
"browser.shell.checkDefaultBrowser" = false;
|
||||||
"browser.startup.homepage_override.mstone" = "ignore";
|
"browser.startup.homepage_override.mstone" = "ignore";
|
||||||
"browser.tabs.crashReporting.sendReport" = false;
|
"browser.tabs.crashReporting.sendReport" = false;
|
||||||
"browser.tabs.firefox-view" = false;
|
"browser.tabs.firefox-view" = false;
|
||||||
"browser.urlbar.groupLabels.enabled" = false;
|
"browser.urlbar.groupLabels.enabled" = false;
|
||||||
"browser.urlbar.quicksuggest.enabled" = false;
|
"browser.urlbar.quicksuggest.enabled" = false;
|
||||||
"browser.urlbar.speculativeConnect.enabled" = false;
|
"browser.urlbar.speculativeConnect.enabled" = false;
|
||||||
"browser.urlbar.trimURLs" = false;
|
"browser.urlbar.trimURLs" = false;
|
||||||
"browser.warnOnQuitShortcut" = false;
|
"browser.warnOnQuitShortcut" = false;
|
||||||
"datareporting.healthreport.service.enabled" = false;
|
"datareporting.healthreport.service.enabled" = false;
|
||||||
"datareporting.healthreport.uploadEnabled" = false;
|
"datareporting.healthreport.uploadEnabled" = false;
|
||||||
"datareporting.policy.dataSubmissionEnabled" = false;
|
"datareporting.policy.dataSubmissionEnabled" = false;
|
||||||
"device.sensors.ambientLight.enabled" = false;
|
"device.sensors.ambientLight.enabled" = false;
|
||||||
"device.sensors.enabled" = false;
|
"device.sensors.enabled" = false;
|
||||||
"device.sensors.motion.enabled" = false;
|
"device.sensors.motion.enabled" = false;
|
||||||
"device.sensors.orientation.enabled" = false;
|
"device.sensors.orientation.enabled" = false;
|
||||||
"device.sensors.proximity.enabled" = false;
|
"device.sensors.proximity.enabled" = false;
|
||||||
"dom.battery.enabled" = false;
|
"dom.battery.enabled" = false;
|
||||||
"dom.security.https_only_mode" = true;
|
"dom.security.https_only_mode" = true;
|
||||||
"dom.security.https_only_mode_ever_enabled" = true;
|
"dom.security.https_only_mode_ever_enabled" = true;
|
||||||
"dom.webaudio.enabled" = false;
|
"dom.webaudio.enabled" = false;
|
||||||
"experiments.activeExperiment" = false;
|
"experiments.activeExperiment" = false;
|
||||||
"experiments.enabled" = false;
|
"experiments.enabled" = false;
|
||||||
"experiments.manifest.uri" = "";
|
"experiments.manifest.uri" = "";
|
||||||
"experiments.supported" = false;
|
"experiments.supported" = false;
|
||||||
"extensions.CanvasBlocker@kkapsner.de.whiteList" = "";
|
"extensions.CanvasBlocker@kkapsner.de.whiteList" = "";
|
||||||
"extensions.ClearURLs@kevinr.whiteList" = "";
|
"extensions.ClearURLs@kevinr.whiteList" = "";
|
||||||
"extensions.Decentraleyes@ThomasRientjes.whiteList" = "";
|
"extensions.Decentraleyes@ThomasRientjes.whiteList" = "";
|
||||||
"extensions.FirefoxMulti-AccountContainers@mozilla.whiteList" = "";
|
"extensions.FirefoxMulti-AccountContainers@mozilla.whiteList" = "";
|
||||||
"extensions.TemporaryContainers@stoically.whiteList" = "";
|
"extensions.TemporaryContainers@stoically.whiteList" = "";
|
||||||
"extensions.autoDisableScopes" = 14;
|
"extensions.autoDisableScopes" = 14;
|
||||||
"extensions.getAddons.cache.enabled" = false;
|
"extensions.getAddons.cache.enabled" = false;
|
||||||
"extensions.getAddons.showPane" = false;
|
"extensions.getAddons.showPane" = false;
|
||||||
"extensions.pocket.enabled" = false;
|
"extensions.pocket.enabled" = false;
|
||||||
"extensions.shield-recipe-client.api_url" = "";
|
"extensions.shield-recipe-client.api_url" = "";
|
||||||
"extensions.shield-recipe-client.enabled" = false;
|
"extensions.shield-recipe-client.enabled" = false;
|
||||||
"extensions.webservice.discoverURL" = "";
|
"extensions.webservice.discoverURL" = "";
|
||||||
"media.autoplay.default" = 1;
|
"media.autoplay.default" = 1;
|
||||||
"media.autoplay.enabled" = false;
|
"media.autoplay.enabled" = false;
|
||||||
"media.navigator.enabled" = false;
|
"media.navigator.enabled" = false;
|
||||||
"media.peerconnection.enabled" = false;
|
"media.peerconnection.enabled" = false;
|
||||||
"media.video_stats.enabled" = false;
|
"media.video_stats.enabled" = false;
|
||||||
"network.IDN_show_punycode" = true;
|
"network.IDN_show_punycode" = true;
|
||||||
"network.allow-experiments" = false;
|
"network.allow-experiments" = false;
|
||||||
"network.captive-portal-service.enabled" = false;
|
"network.captive-portal-service.enabled" = false;
|
||||||
"network.cookie.cookieBehavior" = 1;
|
"network.cookie.cookieBehavior" = 1;
|
||||||
"network.dns.disablePrefetch" = true;
|
"network.dns.disablePrefetch" = true;
|
||||||
"network.dns.disablePrefetchFromHTTPS" = true;
|
"network.dns.disablePrefetchFromHTTPS" = true;
|
||||||
"network.http.referer.spoofSource" = true;
|
"network.http.referer.spoofSource" = true;
|
||||||
"network.http.speculative-parallel-limit" = 0;
|
"network.http.speculative-parallel-limit" = 0;
|
||||||
"network.predictor.enable-prefetch" = false;
|
"network.predictor.enable-prefetch" = false;
|
||||||
"network.predictor.enabled" = false;
|
"network.predictor.enabled" = false;
|
||||||
"network.prefetch-next" = false;
|
"network.prefetch-next" = false;
|
||||||
"pdfjs.enableScripting" = false;
|
"pdfjs.enableScripting" = false;
|
||||||
"privacy.donottrackheader.enabled" = true;
|
"privacy.donottrackheader.enabled" = true;
|
||||||
"privacy.donottrackheader.value" = 1;
|
"privacy.donottrackheader.value" = 1;
|
||||||
"privacy.query_stripping" = true;
|
"privacy.query_stripping" = true;
|
||||||
"privacy.trackingprotection.cryptomining.enabled" = true;
|
"privacy.trackingprotection.cryptomining.enabled" = true;
|
||||||
"privacy.trackingprotection.enabled" = true;
|
"privacy.trackingprotection.enabled" = true;
|
||||||
"privacy.trackingprotection.fingerprinting.enabled" = true;
|
"privacy.trackingprotection.fingerprinting.enabled" = true;
|
||||||
"privacy.trackingprotection.pbmode.enabled" = true;
|
"privacy.trackingprotection.pbmode.enabled" = true;
|
||||||
"privacy.usercontext.about_newtab_segregation.enabled" = true;
|
"privacy.usercontext.about_newtab_segregation.enabled" = true;
|
||||||
"security.ssl.disable_session_identifiers" = true;
|
"security.ssl.disable_session_identifiers" = true;
|
||||||
"services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSite" = false;
|
"services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSite" = false;
|
||||||
"signon.autofillForms" = false;
|
"signon.autofillForms" = false;
|
||||||
"toolkit.telemetry.archive.enabled" = false;
|
"toolkit.telemetry.archive.enabled" = false;
|
||||||
"toolkit.telemetry.bhrPing.enabled" = false;
|
"toolkit.telemetry.bhrPing.enabled" = false;
|
||||||
"toolkit.telemetry.cachedClientID" = "";
|
"toolkit.telemetry.cachedClientID" = "";
|
||||||
"toolkit.telemetry.enabled" = false;
|
"toolkit.telemetry.enabled" = false;
|
||||||
"toolkit.telemetry.firstShutdownPing.enabled" = false;
|
"toolkit.telemetry.firstShutdownPing.enabled" = false;
|
||||||
"toolkit.telemetry.hybridContent.enabled" = false;
|
"toolkit.telemetry.hybridContent.enabled" = false;
|
||||||
"toolkit.telemetry.newProfilePing.enabled" = false;
|
"toolkit.telemetry.newProfilePing.enabled" = false;
|
||||||
"toolkit.telemetry.prompted" = 2;
|
"toolkit.telemetry.prompted" = 2;
|
||||||
"toolkit.telemetry.rejected" = true;
|
"toolkit.telemetry.rejected" = true;
|
||||||
"toolkit.telemetry.reportingpolicy.firstRun" = false;
|
"toolkit.telemetry.reportingpolicy.firstRun" = false;
|
||||||
"toolkit.telemetry.server" = "";
|
"toolkit.telemetry.server" = "";
|
||||||
"toolkit.telemetry.shutdownPingSender.enabled" = false;
|
"toolkit.telemetry.shutdownPingSender.enabled" = false;
|
||||||
"toolkit.telemetry.unified" = false;
|
"toolkit.telemetry.unified" = false;
|
||||||
"toolkit.telemetry.unifiedIsOptIn" = false;
|
"toolkit.telemetry.unifiedIsOptIn" = false;
|
||||||
"toolkit.telemetry.updatePing.enabled" = false;
|
"toolkit.telemetry.updatePing.enabled" = false;
|
||||||
"webgl.disabled" = true;
|
"webgl.disabled" = true;
|
||||||
"webgl.renderer-string-override" = " ";
|
"webgl.renderer-string-override" = " ";
|
||||||
"webgl.vendor-string-override" = " ";
|
"webgl.vendor-string-override" = " ";
|
||||||
|
|
||||||
# set these to false if you're copying this config...
|
# set these to false if you're copying this config...
|
||||||
# it's to *enable* DRM, not disable it
|
# it's to *enable* DRM, not disable it
|
||||||
"media.eme.enabled" = true;
|
"media.eme.enabled" = true;
|
||||||
"media.gmp-widevinecdm.enabled" = true;
|
"media.gmp-widevinecdm.enabled" = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
home.packages = lib.mkIf isLinux [
|
home.packages = lib.mkIf isLinux [
|
||||||
pkgs.nekowinston-nur.sizzy
|
pkgs.nekowinston-nur.sizzy
|
||||||
];
|
];
|
||||||
xdg.mimeApps.defaultApplications = {
|
|
||||||
"text/html" = "chromium.desktop";
|
xdg.mimeApps.defaultApplications = {
|
||||||
"x-scheme-handler/http" = "chromium.desktop";
|
"text/html" = "chromium.desktop";
|
||||||
"x-scheme-handler/https" = "chromium.desktop";
|
"x-scheme-handler/http" = "chromium.desktop";
|
||||||
"x-scheme-handler/about" = "chromium.desktop";
|
"x-scheme-handler/https" = "chromium.desktop";
|
||||||
"x-scheme-handler/unknown" = "chromium.desktop";
|
"x-scheme-handler/about" = "chromium.desktop";
|
||||||
|
"x-scheme-handler/unknown" = "chromium.desktop";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,58 +1,61 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
# TODO: de-duplicate across modules
|
# TODO: de-duplicate across modules
|
||||||
lat = 48.210033;
|
lat = 48.210033;
|
||||||
lng = 16.363449;
|
lng = 16.363449;
|
||||||
inherit (pkgs.stdenv) isLinux;
|
inherit (pkgs.stdenv) isDarwin isLinux;
|
||||||
in {
|
in {
|
||||||
home.packages = [
|
config = lib.mkIf config.isGraphical {
|
||||||
(pkgs.writeShellApplication {
|
home.packages = [
|
||||||
name = "dark-mode-ternary";
|
(pkgs.writeShellApplication {
|
||||||
runtimeInputs = [pkgs.gnugrep];
|
name = "dark-mode-ternary";
|
||||||
text = let
|
runtimeInputs = [pkgs.gnugrep];
|
||||||
queryCommand =
|
text = let
|
||||||
if pkgs.stdenv.isLinux
|
queryCommand =
|
||||||
then "dbus-send --session --print-reply=literal --reply-timeout=5 --dest=org.freedesktop.portal.Desktop /org/freedesktop/portal/desktop org.freedesktop.portal.Settings.Read string:'org.freedesktop.appearance' string:'color-scheme' | grep -q 'uint32 1'"
|
if isLinux
|
||||||
else if pkgs.stdenv.isDarwin
|
then "dbus-send --session --print-reply=literal --reply-timeout=5 --dest=org.freedesktop.portal.Desktop /org/freedesktop/portal/desktop org.freedesktop.portal.Settings.Read string:'org.freedesktop.appearance' string:'color-scheme' | grep -q 'uint32 1'"
|
||||||
then "defaults read -g AppleInterfaceStyle &>/dev/null"
|
else if isDarwin
|
||||||
else throw "Unsupported platform";
|
then "defaults read -g AppleInterfaceStyle &>/dev/null"
|
||||||
in ''
|
else throw "Unsupported platform";
|
||||||
[[ -z "''${1-}" ]] && [[ -z "''${2-}" ]] && echo "Usage: $0 <dark> <light>" && exit 1
|
in ''
|
||||||
|
[[ -z "''${1-}" ]] && [[ -z "''${2-}" ]] && echo "Usage: $0 <dark> <light>" && exit 1
|
||||||
|
|
||||||
if ${queryCommand}; then
|
if ${queryCommand}; then
|
||||||
echo "$1"
|
echo "$1"
|
||||||
else
|
else
|
||||||
echo "$2"
|
echo "$2"
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
services.darkman = let
|
services.darkman = let
|
||||||
starship = "${config.programs.starship.package}/bin/starship";
|
starship = "${config.programs.starship.package}/bin/starship";
|
||||||
zsh = "${config.programs.zsh.package}/bin/zsh";
|
zsh = "${config.programs.zsh.package}/bin/zsh";
|
||||||
in {
|
in {
|
||||||
enable = isLinux;
|
enable = isLinux;
|
||||||
settings = {
|
settings = {
|
||||||
inherit lat lng;
|
inherit lat lng;
|
||||||
useGeoclue = false;
|
useGeoclue = false;
|
||||||
};
|
};
|
||||||
darkModeScripts = {
|
darkModeScripts = {
|
||||||
toggle-shell = ''
|
toggle-shell = ''
|
||||||
${starship} config palette catppuccin_mocha
|
${starship} config palette catppuccin_mocha
|
||||||
${zsh} -ic "fast-theme XDG:catppuccin-mocha"
|
${zsh} -ic "fast-theme XDG:catppuccin-mocha"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
lightModeScripts = {
|
lightModeScripts = {
|
||||||
toggle-shell = ''
|
toggle-shell = ''
|
||||||
${starship} config palette catppuccin_latte
|
${starship} config palette catppuccin_latte
|
||||||
${zsh} -ic "fast-theme XDG:catppuccin-latte"
|
${zsh} -ic "fast-theme XDG:catppuccin-latte"
|
||||||
'';
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.zsh.shellAliases.cat = "bat --theme=$(dark-mode-ternary 'Catppuccin-mocha' 'Catppuccin-latte')";
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.zsh.shellAliases.cat = "bat --theme=$(dark-mode-ternary 'Catppuccin-mocha' 'Catppuccin-latte')";
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
{
|
{
|
||||||
|
lib,
|
||||||
|
osConfig,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./browsers.nix
|
./browsers.nix
|
||||||
./colorscheme-sync.nix
|
./colorscheme-sync.nix
|
||||||
|
@ -18,4 +22,10 @@
|
||||||
./wezterm.nix
|
./wezterm.nix
|
||||||
./zsh.nix
|
./zsh.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
options.isGraphical = lib.mkOption {
|
||||||
|
default = osConfig.isGraphical;
|
||||||
|
description = "Whether the system is a graphical target";
|
||||||
|
type = lib.types.bool;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,71 +6,73 @@
|
||||||
}: let
|
}: let
|
||||||
inherit (pkgs.stdenv) isDarwin isLinux;
|
inherit (pkgs.stdenv) isDarwin isLinux;
|
||||||
in {
|
in {
|
||||||
home.packages = with pkgs; [
|
config = lib.mkIf config.isGraphical {
|
||||||
(discord.override {
|
home.packages = with pkgs; [
|
||||||
withOpenASAR = true;
|
(discord.override {
|
||||||
})
|
withOpenASAR = true;
|
||||||
];
|
})
|
||||||
home.activation.discordSettings = let
|
];
|
||||||
css = ''
|
home.activation.discordSettings = let
|
||||||
@import url("https://catppuccin.github.io/discord/dist/catppuccin-frappe-pink.theme.css") (prefers-color-scheme: dark);
|
css = ''
|
||||||
@import url("https://catppuccin.github.io/discord/dist/catppuccin-latte-pink.theme.css") (prefers-color-scheme: light);
|
@import url("https://catppuccin.github.io/discord/dist/catppuccin-frappe-pink.theme.css") (prefers-color-scheme: dark);
|
||||||
@import url(//dablulite.github.io/css-snippets/ConsistentChatbar/import.css);
|
@import url("https://catppuccin.github.io/discord/dist/catppuccin-latte-pink.theme.css") (prefers-color-scheme: light);
|
||||||
|
@import url(//dablulite.github.io/css-snippets/ConsistentChatbar/import.css);
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--font-primary: "IBM Plex Sans", sans-serif;
|
--font-primary: "IBM Plex Sans", sans-serif;
|
||||||
--font-headline: "IBM Plex Sans", sans-serif;
|
--font-headline: "IBM Plex Sans", sans-serif;
|
||||||
--font-display: "IBM Plex Sans", sans-serif;
|
--font-display: "IBM Plex Sans", sans-serif;
|
||||||
--font-code: "Cascadia Code", "Symbols Nerd Font", mono;
|
--font-code: "Cascadia Code", "Symbols Nerd Font", mono;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 1024px) {
|
@media (max-width: 1024px) {
|
||||||
nav[aria-label="Servers sidebar"] {
|
nav[aria-label="Servers sidebar"] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.platform-osx div[class^="base_"] > div[class^="content_"] > div[class^="sidebar_"],
|
||||||
|
.platform-osx div[class^="base_"] > div[class^="content_"] > main[class^="container_"],
|
||||||
|
.platform-osx div[class^="base_"] > div[class^="content_"] > div[class^="chat_"] {
|
||||||
|
padding-top: 32px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
div[class^="base_"] > div[class^="content_"] > div[class^="sidebar_"] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
main[class^="chatContent_"] form div[class^="buttons_"],
|
||||||
|
main[class^="chatContent_"] form div[class^="attachWrapper_"] {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.platform-osx div[class^="base_"] > div[class^="content_"] > div[class^="sidebar_"],
|
'';
|
||||||
.platform-osx div[class^="base_"] > div[class^="content_"] > main[class^="container_"],
|
json = pkgs.writeTextFile {
|
||||||
.platform-osx div[class^="base_"] > div[class^="content_"] > div[class^="chat_"] {
|
name = "discord-settings.json";
|
||||||
padding-top: 32px !important;
|
text =
|
||||||
}
|
lib.generators.toJSON {}
|
||||||
}
|
{
|
||||||
|
DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING = true;
|
||||||
@media (max-width: 768px) {
|
MIN_WIDTH = 0;
|
||||||
div[class^="base_"] > div[class^="content_"] > div[class^="sidebar_"] {
|
MIN_HEIGHT = 0;
|
||||||
display: none;
|
openasar = {
|
||||||
}
|
inherit css;
|
||||||
}
|
setup = true;
|
||||||
|
};
|
||||||
main[class^="chatContent_"] form div[class^="buttons_"],
|
trayBalloonShown = false;
|
||||||
main[class^="chatContent_"] form div[class^="attachWrapper_"] {
|
SKIP_HOST_UPDATE = true;
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
json = pkgs.writeTextFile {
|
|
||||||
name = "discord-settings.json";
|
|
||||||
text =
|
|
||||||
lib.generators.toJSON {}
|
|
||||||
{
|
|
||||||
DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING = true;
|
|
||||||
MIN_WIDTH = 0;
|
|
||||||
MIN_HEIGHT = 0;
|
|
||||||
openasar = {
|
|
||||||
inherit css;
|
|
||||||
setup = true;
|
|
||||||
};
|
};
|
||||||
trayBalloonShown = false;
|
};
|
||||||
SKIP_HOST_UPDATE = true;
|
path =
|
||||||
};
|
if isLinux
|
||||||
};
|
then config.xdg.configHome + "/discord/settings.json"
|
||||||
path =
|
else if isDarwin
|
||||||
if isLinux
|
then config.home.homeDirectory + "/Library/Application Support/discord/settings.json"
|
||||||
then config.xdg.configHome + "/discord/settings.json"
|
else throw "unsupported platform";
|
||||||
else if isDarwin
|
in
|
||||||
then config.home.homeDirectory + "/Library/Application Support/discord/settings.json"
|
lib.hm.dag.entryAfter ["writeBoundary"] ''
|
||||||
else throw "unsupported platform";
|
mkdir -p "$(dirname "${path}")"
|
||||||
in
|
cp -f "${json}" "${path}"
|
||||||
lib.hm.dag.entryAfter ["writeBoundary"] ''
|
'';
|
||||||
mkdir -p "$(dirname "${path}")"
|
};
|
||||||
cp -f "${json}" "${path}"
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,24 +4,26 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
home.activation = {
|
config = lib.mkIf config.isGraphical {
|
||||||
installCustomFonts = let
|
home.activation = {
|
||||||
fontDirectory =
|
installCustomFonts = let
|
||||||
if pkgs.stdenv.isDarwin
|
fontDirectory =
|
||||||
then "${config.home.homeDirectory}/Library/Fonts"
|
if pkgs.stdenv.isDarwin
|
||||||
else "${config.xdg.dataHome}/fonts";
|
then "${config.home.homeDirectory}/Library/Fonts"
|
||||||
fontPath = ../secrets/fonts;
|
else "${config.xdg.dataHome}/fonts";
|
||||||
in
|
fontPath = ../secrets/fonts;
|
||||||
lib.hm.dag.entryAfter ["writeBoundary"] ''
|
in
|
||||||
mkdir -p "${fontDirectory}"
|
lib.hm.dag.entryAfter ["writeBoundary"] ''
|
||||||
install -Dm644 ${fontPath}/* "${fontDirectory}"
|
mkdir -p "${fontDirectory}"
|
||||||
'';
|
install -Dm644 ${fontPath}/* "${fontDirectory}"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
(nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];})
|
||||||
|
cascadia-code
|
||||||
|
victor-mono
|
||||||
|
ibm-plex
|
||||||
|
xkcd-font
|
||||||
|
];
|
||||||
};
|
};
|
||||||
home.packages = with pkgs; [
|
|
||||||
(nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];})
|
|
||||||
cascadia-code
|
|
||||||
victor-mono
|
|
||||||
ibm-plex
|
|
||||||
xkcd-font
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
{pkgs, ...}: let
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
inherit (pkgs.stdenv.hostPlatform) isLinux isDarwin;
|
inherit (pkgs.stdenv.hostPlatform) isLinux isDarwin;
|
||||||
key = "0x0B89BC45007EE9CC";
|
key = "0x0B89BC45007EE9CC";
|
||||||
mailvelopeConfig = builtins.toJSON {
|
mailvelopeConfig = builtins.toJSON {
|
||||||
|
@ -97,6 +101,9 @@ in {
|
||||||
enable = isLinux;
|
enable = isLinux;
|
||||||
enableExtraSocket = true;
|
enableExtraSocket = true;
|
||||||
enableSshSupport = true;
|
enableSshSupport = true;
|
||||||
pinentryFlavor = "gnome3";
|
pinentryFlavor =
|
||||||
|
if config.isGraphical
|
||||||
|
then "gnome3"
|
||||||
|
else "curses";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,49 +4,48 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (pkgs.stdenv) isLinux;
|
themeDir = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}";
|
||||||
in {
|
in {
|
||||||
home.pointerCursor = lib.mkIf isLinux {
|
config = lib.mkIf (config.isGraphical && pkgs.stdenv.isLinux) {
|
||||||
name = "macOS-Monterey";
|
home.pointerCursor = {
|
||||||
package = pkgs.nur.repos.nekowinston.apple-cursor;
|
name = "macOS-Monterey";
|
||||||
size = 24;
|
package = pkgs.nur.repos.nekowinston.apple-cursor;
|
||||||
};
|
size = 24;
|
||||||
gtk = lib.mkIf isLinux {
|
|
||||||
enable = true;
|
|
||||||
iconTheme = {
|
|
||||||
name = "Papirus-Dark";
|
|
||||||
package = pkgs.catppuccin-papirus-folders.override {
|
|
||||||
flavor = "mocha";
|
|
||||||
accent = "pink";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
theme = {
|
|
||||||
name = "Catppuccin-Mocha-Compact-Pink-Dark";
|
|
||||||
package = pkgs.catppuccin-gtk.override {
|
|
||||||
accents = ["pink"];
|
|
||||||
variant = "mocha";
|
|
||||||
size = "compact";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
|
|
||||||
gtk2.extraConfig = ''
|
|
||||||
gtk-xft-antialias=1
|
|
||||||
gtk-xft-hinting=1
|
|
||||||
gtk-xft-hintstyle="hintslight"
|
|
||||||
gtk-xft-rgba="rgb"
|
|
||||||
'';
|
|
||||||
gtk3.extraConfig = {
|
|
||||||
gtk-xft-antialias = 1;
|
|
||||||
gtk-xft-hinting = 1;
|
|
||||||
gtk-xft-hintstyle = "hintslight";
|
|
||||||
gtk-xft-rgba = "rgb";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg = let
|
gtk = {
|
||||||
themeDir = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}";
|
enable = true;
|
||||||
in
|
iconTheme = {
|
||||||
lib.mkIf config.gtk.enable {
|
name = "Papirus-Dark";
|
||||||
|
package = pkgs.catppuccin-papirus-folders.override {
|
||||||
|
flavor = "mocha";
|
||||||
|
accent = "pink";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
theme = {
|
||||||
|
name = "Catppuccin-Mocha-Compact-Pink-Dark";
|
||||||
|
package = pkgs.catppuccin-gtk.override {
|
||||||
|
accents = ["pink"];
|
||||||
|
variant = "mocha";
|
||||||
|
size = "compact";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
|
||||||
|
gtk2.extraConfig = ''
|
||||||
|
gtk-xft-antialias=1
|
||||||
|
gtk-xft-hinting=1
|
||||||
|
gtk-xft-hintstyle="hintslight"
|
||||||
|
gtk-xft-rgba="rgb"
|
||||||
|
'';
|
||||||
|
gtk3.extraConfig = {
|
||||||
|
gtk-xft-antialias = 1;
|
||||||
|
gtk-xft-hinting = 1;
|
||||||
|
gtk-xft-hintstyle = "hintslight";
|
||||||
|
gtk-xft-rgba = "rgb";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg = {
|
||||||
configFile."gtk-4.0/assets" = {
|
configFile."gtk-4.0/assets" = {
|
||||||
source = "${themeDir}/gtk-4.0/assets";
|
source = "${themeDir}/gtk-4.0/assets";
|
||||||
recursive = true;
|
recursive = true;
|
||||||
|
@ -54,4 +53,5 @@ in {
|
||||||
configFile."gtk-4.0/gtk.css".source = "${themeDir}/gtk-4.0/gtk.css";
|
configFile."gtk-4.0/gtk.css".source = "${themeDir}/gtk-4.0/gtk.css";
|
||||||
configFile."gtk-4.0/gtk-dark.css".source = "${themeDir}/gtk-4.0/gtk-dark.css";
|
configFile."gtk-4.0/gtk-dark.css".source = "${themeDir}/gtk-4.0/gtk-dark.css";
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,27 +1,28 @@
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (pkgs.stdenv.hostPlatform) isDarwin isLinux;
|
inherit (pkgs.stdenv.hostPlatform) isDarwin isLinux;
|
||||||
in {
|
in {
|
||||||
programs.imv = {
|
config = lib.mkIf config.isGraphical {
|
||||||
enable = isLinux;
|
programs.imv.enable = isLinux;
|
||||||
};
|
programs.mpv.enable = isLinux;
|
||||||
programs.mpv.enable = isLinux;
|
programs.zathura.enable = isLinux;
|
||||||
programs.zathura.enable = isLinux;
|
|
||||||
|
|
||||||
home.packages = lib.mkIf isLinux [(pkgs.callPackage ../../pkgs/apple-music.nix {})];
|
home.packages = lib.mkIf isLinux [(pkgs.callPackage ../../pkgs/apple-music.nix {})];
|
||||||
|
|
||||||
services.discord-applemusic-rich-presence.enable = isDarwin;
|
services.discord-applemusic-rich-presence.enable = isDarwin;
|
||||||
|
|
||||||
xdg.mimeApps.defaultApplications = {
|
xdg.mimeApps.defaultApplications = {
|
||||||
"application/pdf" = "zathura.desktop";
|
"application/pdf" = "zathura.desktop";
|
||||||
"image/gif" = "imv.desktop";
|
"image/gif" = "imv.desktop";
|
||||||
"image/jpeg" = "imv.desktop";
|
"image/jpeg" = "imv.desktop";
|
||||||
"image/png" = "imv.desktop";
|
"image/png" = "imv.desktop";
|
||||||
"image/webp" = "imv.desktop";
|
"image/webp" = "imv.desktop";
|
||||||
"video/mp4" = "mpv.desktop";
|
"video/mp4" = "mpv.desktop";
|
||||||
"video/webm" = "mpv.desktop";
|
"video/webm" = "mpv.desktop";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
|
@ -13,115 +14,117 @@
|
||||||
mauve = "#cba6f7";
|
mauve = "#cba6f7";
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
programs.i3status-rust = lib.mkIf isLinux {
|
config = lib.mkIf config.isGraphical {
|
||||||
enable = true;
|
programs.i3status-rust = lib.mkIf isLinux {
|
||||||
bars.top = {
|
enable = true;
|
||||||
blocks = [
|
bars.top = {
|
||||||
{
|
blocks = [
|
||||||
block = "vpn";
|
{
|
||||||
driver = "mullvad";
|
block = "vpn";
|
||||||
format_connected = "";
|
driver = "mullvad";
|
||||||
format_disconnected = "";
|
format_connected = "";
|
||||||
state_connected = "good";
|
format_disconnected = "";
|
||||||
state_disconnected = "critical";
|
state_connected = "good";
|
||||||
}
|
state_disconnected = "critical";
|
||||||
{
|
}
|
||||||
block = "tea_timer";
|
{
|
||||||
done_cmd = "notify-send 'Timer Finished'";
|
block = "tea_timer";
|
||||||
}
|
done_cmd = "notify-send 'Timer Finished'";
|
||||||
{
|
}
|
||||||
block = "time";
|
{
|
||||||
interval = 60;
|
block = "time";
|
||||||
format = " $timestamp.datetime(f:'%d/%m %R') ";
|
interval = 60;
|
||||||
}
|
format = " $timestamp.datetime(f:'%d/%m %R') ";
|
||||||
{
|
}
|
||||||
block = "notify";
|
{
|
||||||
format = " $icon {($notification_count.eng(w:1)) |}";
|
block = "notify";
|
||||||
driver = "swaync";
|
format = " $icon {($notification_count.eng(w:1)) |}";
|
||||||
click = [
|
driver = "swaync";
|
||||||
{
|
click = [
|
||||||
button = "left";
|
{
|
||||||
action = "show";
|
button = "left";
|
||||||
}
|
action = "show";
|
||||||
{
|
}
|
||||||
button = "right";
|
{
|
||||||
action = "toggle_paused";
|
button = "right";
|
||||||
}
|
action = "toggle_paused";
|
||||||
];
|
}
|
||||||
}
|
];
|
||||||
];
|
}
|
||||||
settings = {
|
];
|
||||||
icons.icons = "material-nf";
|
settings = {
|
||||||
theme.overrides = {
|
icons.icons = "material-nf";
|
||||||
idle_fg = ctp.text;
|
theme.overrides = {
|
||||||
idle_bg = "#00000000";
|
idle_fg = ctp.text;
|
||||||
info_fg = "#89b4fa";
|
idle_bg = "#00000000";
|
||||||
info_bg = "#00000000";
|
info_fg = "#89b4fa";
|
||||||
good_fg = "#a6e3a1";
|
info_bg = "#00000000";
|
||||||
good_bg = "#00000000";
|
good_fg = "#a6e3a1";
|
||||||
warning_fg = "#fab387";
|
good_bg = "#00000000";
|
||||||
warning_bg = "#00000000";
|
warning_fg = "#fab387";
|
||||||
critical_fg = "#f38ba8";
|
warning_bg = "#00000000";
|
||||||
critical_bg = "#00000000";
|
critical_fg = "#f38ba8";
|
||||||
separator = " ";
|
critical_bg = "#00000000";
|
||||||
separator_bg = "auto";
|
separator = " ";
|
||||||
separator_fg = "auto";
|
separator_bg = "auto";
|
||||||
|
separator_fg = "auto";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
programs.rofi = lib.mkIf isLinux {
|
programs.rofi = lib.mkIf isLinux {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.rofi-wayland;
|
package = pkgs.rofi-wayland;
|
||||||
font = "IBM Plex Sans 14";
|
font = "IBM Plex Sans 14";
|
||||||
extraConfig.icon-theme = "Papirus-Dark";
|
extraConfig.icon-theme = "Papirus-Dark";
|
||||||
terminal = "wezterm";
|
terminal = "wezterm";
|
||||||
theme = ./rofi/theme.rasi;
|
theme = ./rofi/theme.rasi;
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.swaylock = lib.mkIf isLinux {
|
programs.swaylock = lib.mkIf isLinux {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.swaylock-effects;
|
package = pkgs.swaylock-effects;
|
||||||
settings = {
|
settings = {
|
||||||
ignore-empty-password = false;
|
ignore-empty-password = false;
|
||||||
font = "IBM Plex Sans";
|
font = "IBM Plex Sans";
|
||||||
fade-in = "0.2";
|
fade-in = "0.2";
|
||||||
screenshots = true;
|
screenshots = true;
|
||||||
|
|
||||||
clock = true;
|
clock = true;
|
||||||
timestr = "%H:%M";
|
timestr = "%H:%M";
|
||||||
datestr = "%A, %d %B";
|
datestr = "%A, %d %B";
|
||||||
|
|
||||||
indicator = true;
|
indicator = true;
|
||||||
indicator-radius = "100";
|
indicator-radius = "100";
|
||||||
indicator-thickness = "10";
|
indicator-thickness = "10";
|
||||||
|
|
||||||
effect-blur = "30x2";
|
effect-blur = "30x2";
|
||||||
effect-vignette = "0.5:0.5";
|
effect-vignette = "0.5:0.5";
|
||||||
|
|
||||||
text-color = "cdd6f4";
|
text-color = "cdd6f4";
|
||||||
text-clear-color = "11111b";
|
text-clear-color = "11111b";
|
||||||
text-ver-color = "11111b";
|
text-ver-color = "11111b";
|
||||||
text-wrong-color = "11111b";
|
text-wrong-color = "11111b";
|
||||||
|
|
||||||
ring-color = "1e1e2e";
|
ring-color = "1e1e2e";
|
||||||
key-hl-color = "f5c2e7";
|
key-hl-color = "f5c2e7";
|
||||||
line-color = "f5c2e7";
|
line-color = "f5c2e7";
|
||||||
inside-color = "00000088";
|
inside-color = "00000088";
|
||||||
separator-color = "00000000";
|
separator-color = "00000000";
|
||||||
|
|
||||||
inside-clear-color = "f2cdcd88";
|
inside-clear-color = "f2cdcd88";
|
||||||
line-clear-color = "f2cdcd";
|
line-clear-color = "f2cdcd";
|
||||||
ring-clear-color = "f2cdcd";
|
ring-clear-color = "f2cdcd";
|
||||||
|
|
||||||
inside-ver-color = "89dceb88";
|
inside-ver-color = "89dceb88";
|
||||||
line-ver-color = "89dceb";
|
line-ver-color = "89dceb";
|
||||||
ring-ver-color = "89dceb";
|
ring-ver-color = "89dceb";
|
||||||
|
|
||||||
inside-wrong-color = "f38ba888";
|
inside-wrong-color = "f38ba888";
|
||||||
line-wrong-color = "f38ba8";
|
line-wrong-color = "f38ba8";
|
||||||
ring-wrong-color = "f38ba8";
|
ring-wrong-color = "f38ba8";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (pkgs.stdenv.hostPlatform) isLinux;
|
|
||||||
fonts = {
|
fonts = {
|
||||||
names = ["IBM Plex Sans" "Symbols Nerd Font"];
|
names = ["IBM Plex Sans" "Symbols Nerd Font"];
|
||||||
size = 12.0;
|
size = 12.0;
|
||||||
|
@ -21,38 +20,38 @@
|
||||||
lat = 48.210033;
|
lat = 48.210033;
|
||||||
lng = 16.363449;
|
lng = 16.363449;
|
||||||
in {
|
in {
|
||||||
fonts.fontconfig.enable = true;
|
config = lib.mkIf (config.isGraphical && pkgs.stdenv.isLinux) {
|
||||||
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
home = lib.mkIf isLinux {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
blueberry
|
blueberry
|
||||||
kooha
|
kooha
|
||||||
libnotify
|
libnotify
|
||||||
pavucontrol
|
pavucontrol
|
||||||
sway-contrib.grimshot
|
sway-contrib.grimshot
|
||||||
swaynotificationcenter
|
swaynotificationcenter
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
];
|
];
|
||||||
};
|
|
||||||
|
|
||||||
services = lib.mkIf isLinux {
|
|
||||||
clipman.enable = true;
|
|
||||||
gnome-keyring = {
|
|
||||||
enable = true;
|
|
||||||
components = ["secrets"];
|
|
||||||
};
|
};
|
||||||
wlsunset = {
|
|
||||||
enable = true;
|
|
||||||
latitude = toString lat;
|
|
||||||
longitude = toString lng;
|
|
||||||
};
|
|
||||||
udiskie.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
wayland.windowManager.sway = let
|
services = {
|
||||||
modifier = "Mod4";
|
clipman.enable = true;
|
||||||
in
|
gnome-keyring = {
|
||||||
lib.mkIf isLinux {
|
enable = true;
|
||||||
|
components = ["secrets"];
|
||||||
|
};
|
||||||
|
wlsunset = {
|
||||||
|
enable = true;
|
||||||
|
latitude = toString lat;
|
||||||
|
longitude = toString lng;
|
||||||
|
};
|
||||||
|
udiskie.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
wayland.windowManager.sway = let
|
||||||
|
modifier = "Mod4";
|
||||||
|
in {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = null;
|
package = null;
|
||||||
config = rec {
|
config = rec {
|
||||||
|
@ -350,4 +349,5 @@ in {
|
||||||
xdgAutostart = true;
|
xdgAutostart = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
keybindingsJSON = config.lib.file.mkOutOfStoreSymlink "${flakePath}/home/apps/vscode/keybindings.json";
|
keybindingsJSON = config.lib.file.mkOutOfStoreSymlink "${flakePath}/home/apps/vscode/keybindings.json";
|
||||||
in {
|
in {
|
||||||
programs.vscode = {
|
programs.vscode = {
|
||||||
enable = true;
|
enable = config.isGraphical;
|
||||||
extensions = with pkgs.vscode-marketplace; [
|
extensions = with pkgs.vscode-marketplace; [
|
||||||
pkgs.vscode-extensions.valentjn.vscode-ltex
|
pkgs.vscode-extensions.valentjn.vscode-ltex
|
||||||
adrianwilczynski.alpine-js-intellisense
|
adrianwilczynski.alpine-js-intellisense
|
||||||
|
|
|
@ -1,37 +1,47 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
flakePath,
|
flakePath,
|
||||||
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
mkSymlink = path: config.lib.file.mkOutOfStoreSymlink "${flakePath}/home/apps/wezterm/${path}";
|
mkSymlink = path: config.lib.file.mkOutOfStoreSymlink "${flakePath}/home/apps/wezterm/${path}";
|
||||||
in {
|
in {
|
||||||
programs.wezterm.enable = true;
|
# use the GUI version & config when we have a gui, else just get terminfo
|
||||||
|
config = lib.mkMerge [
|
||||||
|
(lib.mkIf (!config.isGraphical) {
|
||||||
|
home.packages = [pkgs.wezterm.terminfo];
|
||||||
|
})
|
||||||
|
|
||||||
xdg.configFile = {
|
(lib.mkIf config.isGraphical {
|
||||||
"wezterm/wezterm.lua".source = mkSymlink "wezterm.lua";
|
programs.wezterm.enable = true;
|
||||||
"wezterm/config" = {
|
|
||||||
source = mkSymlink "config";
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
"wezterm/bar".source = pkgs.fetchFromGitHub {
|
|
||||||
owner = "nekowinston";
|
|
||||||
repo = "wezterm-bar";
|
|
||||||
sha256 = "sha256-3acxqJ9HMA5hASWq/sVL9QQjfEw5Xrh2fT9nFuGjzHM=";
|
|
||||||
rev = "e96b81460b3ad11a7461934dcb7889ce5079f97f";
|
|
||||||
};
|
|
||||||
"wezterm/catppuccin".source = pkgs.fetchFromGitHub {
|
|
||||||
owner = "catppuccin";
|
|
||||||
repo = "wezterm";
|
|
||||||
sha256 = "sha256-McSWoZaJeK+oqdK/0vjiRxZGuLBpEB10Zg4+7p5dIGY=";
|
|
||||||
rev = "b1a81bae74d66eaae16457f2d8f151b5bd4fe5da";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.zsh.initExtra = ''
|
xdg.configFile = {
|
||||||
if [[ "$TERM_PROGRAM" == "WezTerm" ]]; then
|
"wezterm/wezterm.lua".source = mkSymlink "wezterm.lua";
|
||||||
TERM=wezterm
|
"wezterm/config" = {
|
||||||
source ${config.programs.wezterm.package}/etc/profile.d/wezterm.sh
|
source = mkSymlink "config";
|
||||||
fi
|
recursive = true;
|
||||||
'';
|
};
|
||||||
|
"wezterm/bar".source = pkgs.fetchFromGitHub {
|
||||||
|
owner = "nekowinston";
|
||||||
|
repo = "wezterm-bar";
|
||||||
|
sha256 = "sha256-3acxqJ9HMA5hASWq/sVL9QQjfEw5Xrh2fT9nFuGjzHM=";
|
||||||
|
rev = "e96b81460b3ad11a7461934dcb7889ce5079f97f";
|
||||||
|
};
|
||||||
|
"wezterm/catppuccin".source = pkgs.fetchFromGitHub {
|
||||||
|
owner = "catppuccin";
|
||||||
|
repo = "wezterm";
|
||||||
|
sha256 = "sha256-McSWoZaJeK+oqdK/0vjiRxZGuLBpEB10Zg4+7p5dIGY=";
|
||||||
|
rev = "b1a81bae74d66eaae16457f2d8f151b5bd4fe5da";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.zsh.initExtra = ''
|
||||||
|
if [[ "$TERM_PROGRAM" == "WezTerm" ]]; then
|
||||||
|
TERM=wezterm
|
||||||
|
source ${config.programs.wezterm.package}/etc/profile.d/wezterm.sh
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ in {
|
||||||
wakatime
|
wakatime
|
||||||
watchexec
|
watchexec
|
||||||
]
|
]
|
||||||
++ lib.optionals isLinux [
|
++ lib.optionals (config.isGraphical && isLinux) [
|
||||||
_1password-gui
|
_1password-gui
|
||||||
nekowinston-nur.uhk-agent
|
nekowinston-nur.uhk-agent
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
then "/Users/${username}"
|
then "/Users/${username}"
|
||||||
else throw "Unsupported system";
|
else throw "Unsupported system";
|
||||||
home.username = username;
|
home.username = username;
|
||||||
|
isGraphical = false;
|
||||||
targets.genericLinux.enable = isLinux;
|
targets.genericLinux.enable = isLinux;
|
||||||
xdg.mime.enable = isLinux;
|
xdg.mime.enable = isLinux;
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,9 +11,9 @@
|
||||||
then "/home"
|
then "/home"
|
||||||
else throw "Unsupported OS";
|
else throw "Unsupported OS";
|
||||||
in {
|
in {
|
||||||
users.users."${config.dotfiles.username}" =
|
users.users."${config.lib.dotfiles.username}" =
|
||||||
{
|
{
|
||||||
home = "${homeRoot}/${config.dotfiles.username}";
|
home = "${homeRoot}/${config.lib.dotfiles.username}";
|
||||||
openssh.authorizedKeys.keys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILm0O46zW/XfVOSwz0okRWYeOAg+wCVkCtCAoVTpZsOh"];
|
openssh.authorizedKeys.keys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILm0O46zW/XfVOSwz0okRWYeOAg+wCVkCtCAoVTpZsOh"];
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
virtualisation.podman.enable = true;
|
virtualisation.podman.enable = true;
|
||||||
virtualisation.libvirtd.enable = true;
|
virtualisation.libvirtd.enable = true;
|
||||||
|
|
||||||
users.users."${config.dotfiles.username}".extraGroups = ["libvirtd" "transmission"];
|
users.users."${config.lib.dotfiles.username}".extraGroups = ["libvirtd" "transmission"];
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
cabextract
|
cabextract
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
host,
|
host,
|
||||||
system,
|
system,
|
||||||
username,
|
username,
|
||||||
|
isGraphical ? false,
|
||||||
extraModules ? [],
|
extraModules ? [],
|
||||||
}: let
|
}: let
|
||||||
ldTernary = l: d:
|
ldTernary = l: d:
|
||||||
|
@ -46,12 +47,12 @@
|
||||||
modules = with inputs;
|
modules = with inputs;
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
options.dotfiles.username = with pkgs.lib;
|
config.lib.dotfiles = {inherit username;};
|
||||||
mkOption {
|
options.isGraphical = pkgs.lib.mkOption {
|
||||||
description = "Main user of this configuration.";
|
type = pkgs.lib.types.bool;
|
||||||
type = types.str;
|
default = isGraphical;
|
||||||
default = username;
|
description = "Whether the system is a isGraphical target";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
./common/shared
|
./common/shared
|
||||||
./common/${hostPlatform}
|
./common/${hostPlatform}
|
||||||
|
|
Loading…
Reference in a new issue