refactor: change hosts to devices and separate hm modules from nix modules

This commit is contained in:
matt1432 2023-10-28 18:20:09 -04:00
parent 80eec12883
commit 0e4c446438
127 changed files with 36 additions and 51 deletions

105
home/alacritty.nix Normal file
View file

@ -0,0 +1,105 @@
{ config, ... }: {
programs.alacritty = {
enable = true;
settings = {
env = {
POKE = "true";
# fix wrong colors in tmux
TERM = "xterm-256color";
};
key_bindings = [
{
key = "Return";
mods = "Control|Shift";
action = "SpawnNewInstance";
}
];
window = {
padding = {
x = 0;
y = 10;
};
opacity = 0.8;
};
font = {
normal = {
family = "JetBrainsMono Nerd Font";
style = "Regular";
};
bold = {
family = "JetBrainsMono Nerd Font";
style = "Bold";
};
italic = {
family = "JetBrainsMono Nerd Font";
style = "Italic";
};
size = config.services.device-vars.fontSize;
};
# https://github.com/dracula/alacritty/blob/05faff15c0158712be87d200081633d9f4850a7d/dracula.yml
colors = {
primary = {
background = "#282a36";
foreground = "#f8f8f2";
bright_foreground = "#ffffff";
};
cursor = {
text = "CellBackground";
cursor = "CellForeground";
};
vi_mode_cursor = {
text = "CellBackground";
cursor = "CellForeground";
};
search = {
matches = {
foreground = "#44475a";
background = "#50fa7b";
};
focused_match = {
foreground = "#44475a";
background = "#ffb86c";
};
footer_bar = {
background = "#282a36";
foreground = "#f8f8f2";
};
};
hints = {
start = {
foreground = "#282a36";
background = "#f1fa8c";
};
end = {
foreground = "#f1fa8c";
background = "#282a36";
};
};
line_indicator = {
foreground = "None";
background = "None";
};
selection = {
text = "CellForeground";
background = "#44475a";
};
normal = {
black = "#21222c";
red = "#ff5555";
green = "#50fa7b";
yellow = "#f1fa8c";
blue = "#bd93f9";
magenta = "#ff79c6";
cyan = "#8be9fd";
white = "#f8f8f2";
};
};
};
};
}

20
home/dconf.nix Normal file
View file

@ -0,0 +1,20 @@
{ ... }: {
dconf.settings = {
"org/virt-manager/virt-manager/connections" = {
autoconnect = ["qemu:///system"];
uris = ["qemu:///system"];
};
"apps/seahorse/listing" = {
keyrings-selected = [ "gnupg://" ];
};
"org/gtk/settings/file-chooser" = {
show-hidden = true;
};
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
}

View file

@ -0,0 +1,17 @@
[
{
"slug": "600-sound-volume"
},
{
"slug": "google-container"
},
{
"slug": "checkmarks-web-ext"
},
{
"slug": "ttv-lol-pro"
},
{
"slug": "opera-gx-witchcraft-purple"
}
]

View file

@ -0,0 +1,47 @@
{ fetchurl, lib, stdenv }@args:
let
buildFirefoxXpiAddon = lib.makeOverridable ({ stdenv ? args.stdenv
, fetchurl ? args.fetchurl, pname, version, addonId, url, sha256, meta, ...
}:
stdenv.mkDerivation {
name = "${pname}-${version}";
inherit meta;
src = fetchurl { inherit url sha256; };
preferLocalBuild = true;
allowSubstitutes = true;
buildCommand = ''
dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
mkdir -p "$dst"
install -v -m644 "$src" "$dst/${addonId}.xpi"
'';
});
packages = import ./generated-firefox-addons.nix {
inherit buildFirefoxXpiAddon fetchurl lib stdenv;
};
in packages // {
inherit buildFirefoxXpiAddon;
seventv = let
version = "v3.0.10.1000";
in buildFirefoxXpiAddon {
pname = "seventv";
inherit version;
addonId = "moz-addon@7tv.app";
url = "https://extension.7tv.gg/${version}/ext.xpi";
sha256 = "sha256-dZyjFayvnLebSZHjMTTQFjcsxxpmc1aL5q17mLF3kG8=";
meta = with lib; {
homepage = "https://7tv.app/";
description = "The Web Extension for 7TV, bringing new features, emotes, vanity and performance to Twitch, Kick & YouTube";
license = licenses.asl20;
platforms = platforms.all;
};
};
}

View file

@ -0,0 +1,105 @@
{ buildFirefoxXpiAddon, fetchurl, lib, stdenv }:
{
"600-sound-volume" = buildFirefoxXpiAddon {
pname = "600-sound-volume";
version = "1.5.3";
addonId = "{c4b582ec-4343-438c-bda2-2f691c16c262}";
url = "https://addons.mozilla.org/firefox/downloads/file/4133303/600_sound_volume-1.5.3.xpi";
sha256 = "7045a812608338f95181459ae3e518bb51c8dc9a724a4083afb687d14075c304";
meta = with lib;
{
homepage = "http://resourcefulman.net/";
description = "Up to 600% volume boost";
license = licenses.mpl20;
mozPermissions = [ "<all_urls>" "tabs" "activeTab" "storage" ];
platforms = platforms.all;
};
};
"checkmarks-web-ext" = buildFirefoxXpiAddon {
pname = "checkmarks-web-ext";
version = "1.6.1";
addonId = "{bd97f89b-17ba-4539-9fec-06852d07f917}";
url = "https://addons.mozilla.org/firefox/downloads/file/3594420/checkmarks_web_ext-1.6.1.xpi";
sha256 = "c3ccf4b302ee96c9b883c4a1f7d26395ab4e276b976cab2d65c9cd898964e4f0";
meta = with lib;
{
homepage = "https://github.com/tanwald/checkmarks";
description = "Checks, sorts, formats bookmarks and loads favicons.";
license = licenses.gpl3;
mozPermissions = [
"<all_urls>"
"bookmarks"
"browsingData"
"storage"
"tabs"
"webNavigation"
"webRequest"
"webRequestBlocking"
];
platforms = platforms.all;
};
};
"google-container" = buildFirefoxXpiAddon {
pname = "google-container";
version = "1.5.4";
addonId = "@contain-google";
url = "https://addons.mozilla.org/firefox/downloads/file/3736912/google_container-1.5.4.xpi";
sha256 = "47a7c0e85468332a0d949928d8b74376192cde4abaa14280002b3aca4ec814d0";
meta = with lib;
{
homepage = "https://github.com/containers-everywhere/contain-google";
description = "THIS IS NOT AN OFFICIAL ADDON FROM MOZILLA!\nIt is a fork of the Facebook Container addon.\n\nPrevent Google from tracking you around the web. The Google Container extension helps you take control and isolate your web activity from Google.";
license = licenses.mpl20;
mozPermissions = [
"<all_urls>"
"contextualIdentities"
"cookies"
"management"
"tabs"
"webRequestBlocking"
"webRequest"
"storage"
];
platforms = platforms.all;
};
};
"opera-gx-witchcraft-purple" = buildFirefoxXpiAddon {
pname = "opera-gx-witchcraft-purple";
version = "2.0";
addonId = "{bf197856-a3c2-4280-84c5-9b556379b706}";
url = "https://addons.mozilla.org/firefox/downloads/file/3522842/opera_gx_witchcraft_purple-2.0.xpi";
sha256 = "aa3c6377b8571c42a3988de042694be70ec6a250a9aea7ae1cc262acdc9374eb";
meta = with lib;
{
description = "inspired by Opera GX";
license = licenses.cc-by-sa-30;
mozPermissions = [];
platforms = platforms.all;
};
};
"ttv-lol-pro" = buildFirefoxXpiAddon {
pname = "ttv-lol-pro";
version = "2.2.1";
addonId = "{76ef94a4-e3d0-4c6f-961a-d38a429a332b}";
url = "https://addons.mozilla.org/firefox/downloads/file/4179399/ttv_lol_pro-2.2.1.xpi";
sha256 = "83d012878021fb5fe25bee1101a7a760974ae9e2949b80fd99b73d3da48b1f99";
meta = with lib;
{
homepage = "https://github.com/younesaassila/ttv-lol-pro";
description = "TTV LOL PRO removes most livestream ads from Twitch.";
license = licenses.gpl3;
mozPermissions = [
"proxy"
"storage"
"webRequest"
"webRequestBlocking"
"https://*.ttvnw.net/*"
"https://*.twitch.tv/*"
"https://perfprod.com/ttvlolpro/telemetry"
"https://www.twitch.tv/*"
"https://m.twitch.tv/*"
];
platforms = platforms.all;
};
};
}

View file

@ -0,0 +1 @@
{"timestamp":1697914605981,"settings":[{"key":"chat.alternating_background","type":"boolean","value":true,"timestamp":1697329498914},{"key":"chat.deleted_messages","type":"number","value":2,"timestamp":1697329507626},{"key":"chat.mod_messages","type":"boolean","value":true,"timestamp":1697329482669},{"key":"chat.timestamp_with_seconds","type":"boolean","value":false,"timestamp":1697329513608},{"key":"general.autoclaim.channel_points","type":"boolean","value":true,"timestamp":1697329532664},{"key":"highlights.basic.mention_title_flash","type":"boolean","value":true,"timestamp":1697329354766},{"key":"highlights.basic.self","type":"boolean","value":true,"timestamp":1697329558832},{"key":"highlights.custom","type":"object","value":[],"timestamp":1697329354321,"constructorName":"Map"},{"key":"layout.hide_bits_buttons","type":"boolean","value":true,"timestamp":1697329436637},{"key":"layout.hide_channel_leaderboard","type":"boolean","value":true,"timestamp":1697329390214},{"key":"layout.hide_community_highlights","type":"boolean","value":false,"timestamp":1697329413217},{"key":"layout.hide_hype_chat_button","type":"boolean","value":true,"timestamp":1697329442683},{"key":"layout.hide_pinned_hype_chats","type":"boolean","value":true,"timestamp":1697329417875},{"key":"layout.hide_prime_offers","type":"boolean","value":true,"timestamp":1697329446012},{"key":"layout.hide_react_buttons","type":"boolean","value":true,"timestamp":1697329433561},{"key":"layout.hide_recommended_channels","type":"boolean","value":true,"timestamp":1697329428437},{"key":"layout.hide_viewers_also_watch","type":"boolean","value":true,"timestamp":1697329425642},{"key":"player.action_onclick","type":"number","value":2,"timestamp":1697329383233},{"key":"player.skip_content_restriction","type":"boolean","value":true,"timestamp":1697329372106},{"key":"player.video_stats","type":"boolean","value":true,"timestamp":1697329375300}]}

46
home/firefox/custom.css Normal file
View file

@ -0,0 +1,46 @@
.browser-toolbar > * #alltabs-button,
#appMenu-fxa-status2,
#appMenu-fxa-separator {
display: none !important;
}
/* https://github.com/Godiesc/firefox-gx/blob/main/Tricks/README.md */
/* Extensions button into the "left-sidebar" - Immovable */
:root:not([chromehidden~="toolbar"],[sizemode="fullscreen"]) #PersonalToolbar {
--padding-top-left-sidebar: 110px !important; /* 182px to one-line config */
}
:root:not([chromehidden~="toolbar"], [sizemode="fullscreen"]) #unified-extensions-button {
--toolbarbutton-hover-background: transparent !important;
--toolbarbutton-active-background: transparent !important;
position: fixed;
display: flex;
top: 50px !important;
left: inherit !important;
z-index: 2 !important;
fill: var(--general-color) !important;
width: calc(var(--uc-vertical-toolbar-width) - 4px) !important;
}
:root:not([chromehidden~="toolbar"], [sizemode="fullscreen"]) #unified-extensions-button:hover,
:root:not([chromehidden~="toolbar"], [sizemode="fullscreen"]) #unified-extensions-button[open] {
transform: scale(1.12) !important;
transition: ease-in-out !important;
}
:root:not([chromehidden~="toolbar"], [sizemode="fullscreen"]) #unified-extensions-button:active {
transform: scale(1.0) !important;
transition-duration: 0ms !important;
}
#appMenu-addon-installed-notification,
#notification-popup {
margin-top: -1px !important;
margin-inline: -505px !important;
}
#customizationui-widget-panel {
margin-top: -1px !important;
margin-inline: -200px !important;
}

179
home/firefox/default.nix Normal file
View file

@ -0,0 +1,179 @@
{ config, pkgs, ... }: let
firefox-addons = pkgs.recurseIntoAttrs (pkgs.callPackage ./addons { });
sound-volume = firefox-addons."600-sound-volume";
firefox-gx = pkgs.callPackage ./firefox-gx { };
in
{
home.file = {
".mozilla/firefox/matt/chrome/components".source = "${firefox-gx}/chrome/components";
".mozilla/firefox/matt/chrome/icons".source = "${firefox-gx}/chrome/icons";
".mozilla/firefox/matt/chrome/images".source = "${firefox-gx}/chrome/images";
".mozilla/firefox/matt/chrome/userContent.css".source = "${firefox-gx}/chrome/userContent.css";
};
programs.firefox = {
enable = true;
profiles.matt = {
isDefault = true;
id = 0;
userChrome = ''
${builtins.readFile "${firefox-gx}/chrome/userChrome.css"}
${builtins.readFile ./custom.css}
'';
extraConfig = builtins.readFile "${firefox-gx}/user.js";
settings = {
# Theme
"firefoxgx.tab-shapes" = true;
"firefoxgx.left-sidebar" = true;
"userChrome.tab.bottom_rounded_corner" = true;
"userChrome.tab.bottom_rounded_corner.wave" = false;
"userChrome.tab.bottom_rounded_corner.australis" = true;
# Open previous windows and tabs
"browser.startup.page" = 3;
# Prefs
"layout.css.devPixelsPerPx" = 1.12;
"browser.tabs.firefox-view" = false;
"browser.tabs.firefox-view-next" = false;
"browser.search.widget.inNavBar" = true;
"browser.toolbars.bookmarks.visibility" = "always";
"browser.toolbars.bookmarks.showInPrivateBrowsing" = true;
# remove telemetry
"datareporting.policy.dataSubmissionEnabled" = false;
"datareporting.healthreport.uploadEnabled" = false;
"datareporting.healthreport.infoURL" = "";
"dom.security.https_only_mode" = true;
# remove first run and warning stuff
"datareporting.policy.firstRunURL" = "";
"browser.aboutwelcome.enabled" = false;
"browser.aboutConfig.showWarning" = false;
# Disable firefox autofill
"signon.rememberSignons" = false;
"extensions.formautofill.addresses.enabled" = false;
"extensions.formautofill.creditCards.enabled" = false;
# remove new tab stuff
"extensions.pocket.enabled" = false;
"services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
"browser.newtabpage.activity-stream.feeds.system.topstories" = false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"browser.newtabpage.activity-stream.feeds.topsites" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false;
};
search = {
default = "DuckDuckGo";
force = true;
engines = {
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake-white.svg";
definedAliases = [ "@np" ];
};
"NixOS Wiki" = {
urls = [{ template =
"https://nixos.wiki/index.php?search={searchTerms}";
}];
iconUpdateURL = "https://nixos.wiki/favicon.png";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [ "@nw" ];
};
"MyNixos" = {
urls = [{ template =
"https://mynixos.com/search?q={searchTerms}";
}];
iconUpdateURL = "https://mynixos.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [ "@mn" ];
};
"Firefox Add-ons" = {
urls = [{ template =
"https://addons.mozilla.org/en-US/firefox/search/?q={searchTerms}";
}];
iconUpdateURL = "https://addons.mozilla.org/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [ "@fa" ];
};
"ProtonDB" = {
urls = [{ template =
"https://www.protondb.com/search?q={searchTerms}";
}];
iconUpdateURL = "https://www.protondb.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [ "@pdb" ];
};
"YouTube" = {
urls = [{ template =
"https://www.youtube.com/results?search_query={searchTerms}";
}];
iconUpdateURL = "https://www.youtube.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [ "@yt" "@youtube" ];
};
"Bing".metaData.hidden = true;
"Google".metaData.hidden = true;
"eBay".metaData.hidden = true;
};
order = [
"DuckDuckGo"
"MyNixos"
"NixOS Wiki"
"Nix Packages"
"Wikipedia (en)"
"YouTube"
"Firefox Add-ons"
"ProtonDB"
"Amazon.ca"
];
};
extensions = with config.nur.repos;
(with bandithedoge.firefoxAddons; [
sponsorblock
stylus
#tridactyl
ublock-origin
]) ++
(with rycee.firefox-addons; [
bitwarden
darkreader
floccus
istilldontcareaboutcookies
image-search-options
return-youtube-dislikes
undoclosetabbutton
]) ++
(with firefox-addons; [
sound-volume
google-container
checkmarks-web-ext
ttv-lol-pro
seventv
opera-gx-witchcraft-purple
]);
};
};
}

View file

@ -0,0 +1,40 @@
{ lib, stdenvNoCC, fetchFromGitHub, writeText }:
let
pname = "firefox-gx";
version = "8.5";
custom-menu = writeText "menu" "${builtins.readFile ./ogx_menu.css}";
custom-sidebar = writeText "sidebar" "${builtins.readFile ./ogx_left-sidebar.css}";
in
stdenvNoCC.mkDerivation {
inherit pname version;
src = fetchFromGitHub {
owner = "Godiesc";
repo = pname;
rev = "v.${version}";
sha256 = "sha256-llffq16PZz5GxkLIJDeWN1d04SCCJFqwCLzOrxgwhYI=";
};
installPhase = ''
# Personal changes
sed -i 's/var(--fuchsia))/var(--purple))/' ./chrome/components/ogx_root-personal.css
# Fix new tab background for nix
substituteInPlace ./chrome/components/ogx_root-personal.css \
--replace '../images/newtab/wallpaper-dark.png' "$out/chrome/images/newtab/private-dark.png"
# TODO: make patch instead
cp -a ${custom-menu} ./chrome/components/ogx_menu.css
cp -a ${custom-sidebar} ./chrome/components/ogx_left-sidebar.css
mkdir -p $out
cp -r ./* $out
'';
meta = with lib; {
description = "Firefox Theme CSS to Opera GX Lovers ";
homepage = "https://github.com/Godiesc/firefox-gx";
license = licenses.mspl;
};
}

View file

@ -0,0 +1,515 @@
/* Source file made available under Mozilla Public License v. 2.0 See the main repository for updates as well as full license text.
https://github.com/Godiesc/firefox-gx */
@supports -moz-bool-pref("firefoxgx.left-sidebar") {
/* ------------------- Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/vertical_bookmarks_toolbar.css ------------------- */
/* Makes bookmarks toolbar appear vertically at the left side of the window */
@-moz-document url(chrome://browser/content/browser.xhtml){
:root:not([inDOMFullscreen]){
--uc-vertical-toolbar-width: 60px;
}
#navigator-toolbox{ position: relative }
#PersonalToolbar{
position: absolute;
display: flex;
flex-direction: column;
top: 100%;
left: 0;
width: var(--uc-vertical-toolbar-width,0);
min-width: unset !important;
/* These create a empty area to the bottom of the toolbar, which is to mask a fact that we don't know exactly how high the toolbar should be */
height: 100vh;
max-height: 100vh !important;
padding-bottom: 120px !important;
padding-inline: 0px !important; /* Mi edit */
}
#PersonalToolbar .toolbarbutton-1{
max-width: calc(var(--uc-vertical-toolbar-width) - 1px) !important; /* Mi edit - Tamaño horizontal ionos default */
/*--toolbarbutton-inner-padding: 8px !important; /* Mi edit */
margin: 0px !important;
}
#PersonalToolbar toolbaritem{ /* My new code Tamaño horizontal ionos extensiones y marcadores */
max-width: calc(var(--uc-vertical-toolbar-width) - 1px) !important;
margin: 0px !important;
}
#OtherBookmarks{ /* My new code - boton OtherBookmarks */
margin-inline: 0px !important;
}
#PersonalToolbar #PlacesChevron{
display: none;
}
#PersonalToolbar > #personal-bookmarks{
overflow-y: auto;
scrollbar-width: none;
height: 100vh;
}
#PlacesToolbar,
#PlacesToolbarDropIndicatorHolder{
flex-direction: column;
}
#PersonalToolbar #PlacesToolbarItems{
display: flex !important;
flex-direction: column;
overflow-y: auto;
scrollbar-width: none;
}
#PersonalToolbar > toolbaritem{
justify-content: center;
}
#PersonalToolbar #PlacesToolbarItems > toolbarseparator{
height: 7px;
max-width: var(--my-vertical-toolbar-width) !important; /* My code */
margin-inline: 14px !important; /* My code */
background-color: var(--general-color) !important; /* My edit */
background-clip: padding-box;
border-block: 3px solid transparent !important;
}
#PersonalToolbar #PlacesToolbarItems > .bookmark-item{
padding-block: 4px !important;
margin-inline: 0 !important;
}
#browser,
#browser-bottombox,
#main-window > body::after, /* This selector is for compatibility with tabs_below_content.css */
#customization-container{
margin-left: var(--uc-vertical-toolbar-width,0);
}
:root:is([chromehidden~="toolbar"],[sizemode="fullscreen"]) > body > #browser,
:root:is([chromehidden~="toolbar"],[sizemode="fullscreen"]) > body > #browser-bottombox,
#main-window:is([chromehidden~="toolbar"],[sizemode="fullscreen"]) > body::after,
:root:is([chromehidden~="toolbar"],[sizemode="fullscreen"]) > body > #customization-container{
margin-left: 0;
}
/* You should probably disable this if you have Firefox < 113 */
#PersonalToolbar #PlacesToolbarItems{
display: -webkit-box !important;
-webkit-box-orient: vertical !important;
}
}
/* ------------------------------------------------------- My Code to Adapt to GX Style ------------------------------------------------------- */
:root {
--uc-vertical-toolbar-width: var(--my-vertical-toolbar-width) !important; /* Nuevo tamaño sidebar */
--padding-left-tab: calc(var(--uc-vertical-toolbar-width) - 1px) !important; /* Nuevo tamaño botón "Menú" */
}
/* Margen izquierda pestañas cuando se muestra la menu-bar */
#toolbar-menubar, #toolbar-menubar[autohide="false"]+#TabsToolbar {
padding-left: var(--padding-left-tab) !important;
}
/* Mover nav-bar a la derecha */
:root:not([chromehidden~="toolbar"], [sizemode="fullscreen"]) #nav-bar-customization-target > :is(toolbarbutton, toolbaritem):first-child{
margin-left: var(--uc-vertical-toolbar-width,0) !important;
}
/* Posición y estilo de la barra lateral izquierda de marcadores */
:root:not([chromehidden~="toolbar"]) #PersonalToolbar {
--toolbar-bgcolor: transparent !important;
--toolbarbutton-hover-background: transparent !important;
--toolbarbutton-active-background: transparent !important;
--toolbarbutton-hover-personal: transparent !important;
--toolbarbutton-icon-fill: var(--general-color) !important;
--toolbarbutton-border-radius: 0px !important;
--padding-top-left-sidebar: 96px !important;
--padding-bottom-left-sidebar: 101px !important;
--height-left-sidebar: calc(100vh - 1px + var(--toolbar-height-personal) + var(--tab-height-personal)*2 + var(--windowed-top-padding, 0px)) !important;
height: var(--height-left-sidebar) !important;
max-height: var(--height-left-sidebar) !important;
background-color: var(--lwt-frame) !important;
background-image: inherit !important;
background-size: cover !important;
/* margen top-bottom de los iconos */
padding-top: var(--padding-top-left-sidebar) !important;
padding-bottom: var(--padding-bottom-left-sidebar) !important;
/* Linea Gradiente */
margin-top: calc( -1px - var(--toolbar-height-personal) - var(--tab-height-personal) * 2 - var(--windowed-top-padding, 0px)) !important;
border-right: 1px solid transparent !important;
border-image: linear-gradient(to bottom, transparent calc(var(--tab-height-personal)*2 + var(--windowed-top-padding, 0px) + 1px),
var(--general-color) calc(var(--tab-height-personal)*2 + var(--windowed-top-padding, 0px) + 1px),
var(--button-active-bgcolor) 42%, var(--lwt-frame) 94%) 1 !important;
}
/* Linea gradiente -touch mode- */
:root[uidensity="touch"]:not([chromehidden~="toolbar"]) #PersonalToolbar {
border-image: linear-gradient(to bottom, transparent calc(var(--tab-height-personal)*2 + var(--windowed-top-padding, 0px) - 1px),
var(--general-color) calc(var(--tab-height-personal)*2 + var(--windowed-top-padding, 0px) - 1px), var(--button-active-bgcolor) 42%, var(--lwt-frame) 94%) 1 !important;
}
/* Quitar label de items de la barra laterar */
#personal-bookmarks .bookmark-item>.toolbarbutton-text, #import-button label {
display: none !important;
}
/* Quita tambien el espacio despues del ícono - sirve para centrar */
#PlacesToolbarItems > .bookmark-item > .toolbarbutton-icon[label]:not([label=""]), /* Marcadores */
#OtherBookmarks.bookmark-item[container] > .toolbarbutton-icon, /* OtrosMarcadores */
#bookmarks-toolbar-placeholder > .toolbarbutton-icon{ /* MArcadores en customization mode*/
margin-inline: 0px !important;
}
/* Firefox view icon */
toolbar:is(#PersonalToolbar) #firefox-view-button[aria-pressed="true"] .toolbarbutton-icon {
border-radius: 3px !important;
}
#firefox-view-button image {
list-style-image: url("../images/firefoxview-close.svg") !important;
}
#firefox-view-button[aria-pressed="false"]:active .toolbarbutton-icon{
list-style-image: url("../images/firefoxview-close.svg") !important;
transition-duration: 250ms !important;
}
#firefox-view-button[aria-pressed="true"]:not(:active) .toolbarbutton-icon{
list-style-image: url("../images/firefoxview-open.svg") !important;
transition-duration: 350ms !important;
}
/* Zoom on :hover items */
/* animación */
@keyframes scale5{
0%{ transform:scale(0.8) }
/*98%{ transform:scale(1.1) }*/
100%{ transform:scale(1) }}
/* Normal */
#PersonalToolbar .toolbarbutton-1:not(:hover,[open="true"], :active) .toolbarbutton-icon, /* Botones default y extensiones */
#PersonalToolbar #PlacesToolbarItems>.bookmark-item:not(:hover,[open="true"], :active)>.toolbarbutton-icon, /* Botones de marcadores */
#PersonalToolbar #OtherBookmarks:not(:hover,[open="true"], :active) .toolbarbutton-icon{ /* Boton - OtrosMarcadores */ /* Boton - OtrosMarcadores */
transform: scale(1.0) !important;
transition: ease-in-out !important;
transition-duration: 200ms !important;
}
/* :hover */
#PersonalToolbar .toolbarbutton-1:hover:not([open="true"],:active) .toolbarbutton-icon,
#PersonalToolbar #PlacesToolbarItems>.bookmark-item:is(:hover):not([open="true"],:active)>.toolbarbutton-icon,
#PersonalToolbar #OtherBookmarks:is(:hover):not([open="true"],:active) .toolbarbutton-icon{
transform: scale(1.12) !important;
transition: ease-in-out !important;
transition-duration: 50ms !important;
}
/* Active */
#PersonalToolbar .toolbarbutton-1:is(:active):not([open="true"]) .toolbarbutton-icon,
#PersonalToolbar #PlacesToolbarItems>.bookmark-item:is(:active):not([open="true"])>.toolbarbutton-icon,
#PersonalToolbar #OtherBookmarks:is(:active):not([open="true"]) .toolbarbutton-icon{
animation: scale5 ease-in-out 250ms !important;
}
/* [open] */
#PersonalToolbar .toolbarbutton-1:is([open]) .toolbarbutton-icon ,
#PersonalToolbar #PlacesToolbarItems>.bookmark-item:is([open])>.toolbarbutton-icon,
#PersonalToolbar #OtherBookmarks:is([open]) image{
animation: scale5 ease-in-out 250ms !important;
}
/* [open] marcadores - más tiempo
#PersonalToolbar #PlacesToolbarItems>.bookmark-item:is([open])>.toolbarbutton-icon,
#PersonalToolbar #OtherBookmarks:is([open]) .toolbarbutton-icon{
transform: scale(1.0) !important;
transition: ease-in-out !important;
transition-duration: 250ms !important;
} */
/* Tamaño vertical de Items de la barra lateral */
#PersonalToolbar .toolbarbutton-1,
#PersonalToolbar #PlacesToolbarItems>.bookmark-item{ /* Botones de marcadores */
margin-block: 10px !important;
/*background-color: blue !important;/**/
}
/* Efecto clic botones default y extensiones
@keyframes scale-up-center1{
0%{ background-color: color-mix(in srgb, transparent 88%, var(--lwt-tab-text));
border-radius: 50%;
width: 22px;
height: 22px;}
60%{ background-color: color-mix(in srgb, transparent 96%, var(--lwt-tab-text));
border-radius: 10%;
width: calc(var(--my-vertical-toolbar-width) + 0px);
height: 32px;}
100%{ background-color: transparent;
border-radius: 0%;
width: calc(var(--my-vertical-toolbar-width) + 20px);}}
#PersonalToolbar .toolbarbutton-1:is([open],:active)::after{
content: ""; display: -moz-box; position: absolute !important;
align-self: center !important;
background-color: transparent;
border-radius: 0px;
animation: scale-up-center1 550ms !important;
}*/
/* Separador usando "espacio flexible" */
#PersonalToolbar toolbarpaletteitem[place="toolbar"][id^="wrapper-customizableui-special-spring"], #PersonalToolbar toolbarspring {
background: var(--general-color) !important;
width: calc(var(--my-vertical-toolbar-width) - 29px) !important;
min-width: 0px !important;
min-height: 1px !important;
max-height: 1px !important;
margin-inline: 14px !important;
margin-block: 6px !important;
}
/* ######################################## items en modo "customize toolbar ######################################## */
/* Separador espacio flexible in customize mode */
#PersonalToolbar toolbarpaletteitem[place="toolbar"][id^="wrapper-customizableui-special-spring"] {
min-width: calc(var(--my-vertical-toolbar-width) - 20px) !important;
min-height: 4px !important;
max-height: 4px !important;
margin-inline-start: 10px !important;
}
/* Quita el contador y bug de espacio flexible, in customize mode */
#PersonalToolbar toolbarpaletteitem[place="toolbar"] > toolbarspring,
#PersonalToolbar toolbarpaletteitem[place="toolbar"] toolbaritem toolbarbutton .toolbarbutton-badge{
display: none !important;
}
/* Alinear items in customize mode */
#PersonalToolbar toolbarpaletteitem[place="toolbar"] {
justify-content: center !important;
}
/* ################################################### Extensiones ################################################## */
/* Ocultar contador cuando este es "0" */
toolbaritem toolbarbutton[badge="0"]:not(:hover) .toolbarbutton-badge { opacity: 0 !important; }
/* Contador de la extension */
#PersonalToolbar .toolbarbutton-badge {
background-color: var(--button-hover-bgcolor) !important;
color: white !important;
margin-inline-end: -9px !important;
margin-block-end: -4px !important;
min-width: auto !important;
max-width: auto !important;
align-self: end !important;
}
/* Tamaño más grande para las extensiones ssociales puestas en la barra lateral */
#PersonalToolbar #_d3d2a327-1ae0-4fd6-b732-0844d0b7fd4c_-BAP image,
#PersonalToolbar #xrst_vardakis_gmail_com-BAP image,
#PersonalToolbar #_34a257f3-adfe-460d-b6ca-7dd18d18506b_-BAP image,
#PersonalToolbar #_14390478-b41b-4e29-8307-8a3c714f7783_-BAP image,
#PersonalToolbar #ublock0_raymondhill_net-BAP image,
#PersonalToolbar #panorama-tab-groups_example_com-BAP image,
#PersonalToolbar #_a16c3799-d903-44e3-b044-a032197f5ef8_-BAP image,
#PersonalToolbar #_3119ae66-3c2f-47e2-b1b1-1c76cb9c4ec1_-BAP image {
height: 18px !important;
width: 18px !important;
}
/* Twitch Extension */
#PersonalToolbar #_d3d2a327-1ae0-4fd6-b732-0844d0b7fd4c_-BAP { list-style-image: url("../images/logo_twitch.svg") !important; }
/* Messenger Extension */
#PersonalToolbar #xrst_vardakis_gmail_com-BAP { list-style-image:url("../images/logo_messenger.svg") !important; }
/* Whatsapp Extension */
#PersonalToolbar #_34a257f3-adfe-460d-b6ca-7dd18d18506b_-BAP{ list-style-image: url("../images/logo_whatsapp.svg") !important; }
/* Telegram Extension */
#PersonalToolbar #_14390478-b41b-4e29-8307-8a3c714f7783_-BAP{ list-style-image: url("../images/logo_telegram.svg") !important; }
/* ublock Extension */
#PersonalToolbar #ublock0_raymondhill_net-BAP{ list-style-image: url("../images/logo_ublock.svg") !important; }
/* Tab-group Extension */
#PersonalToolbar #panorama-tab-groups_example_com-BAP{ list-style-image: url("../images/logo_grouptabs.svg") !important; }
/* Discord Extension */
#PersonalToolbar #_a16c3799-d903-44e3-b044-a032197f5ef8_-BAP{ list-style-image: url("../images/logo_discord.svg") !important; }
/* Twitter Extension */
#PersonalToolbar #_3119ae66-3c2f-47e2-b1b1-1c76cb9c4ec1_-BAP{ list-style-image: url("../images/logo_twitter.svg") !important; }
/* ------------------------ Colored folders for bookmarks ------------------------ */
#PlacesToolbarItems > .bookmark-item:nth-of-type(9n+1) > .toolbarbutton-icon {
list-style-image: url("../images/folder1.svg") !important;
}
#PlacesToolbarItems > .bookmark-item:nth-of-type(9n+2) > .toolbarbutton-icon {
list-style-image: url("../images/folder2.svg") !important;
}
#PlacesToolbarItems > .bookmark-item:nth-of-type(9n+3) > .toolbarbutton-icon {
list-style-image: url("../images/folder3.svg") !important;
}
#PlacesToolbarItems > .bookmark-item:nth-of-type(9n+4) > .toolbarbutton-icon {
list-style-image: url("../images/folder4.svg") !important;
}
#PlacesToolbarItems > .bookmark-item:nth-of-type(9n+5) > .toolbarbutton-icon {
list-style-image: url("../images/folder5.svg") !important;
}
#PlacesToolbarItems > .bookmark-item:nth-of-type(9n+6) > .toolbarbutton-icon {
list-style-image: url("../images/folder6.svg") !important;
}
#PlacesToolbarItems > .bookmark-item:nth-of-type(9n+7) > .toolbarbutton-icon {
list-style-image: url("../images/folder7.svg") !important;
}
#PlacesToolbarItems > .bookmark-item:nth-of-type(9n+8) > .toolbarbutton-icon {
list-style-image: url("../images/folder8.svg") !important;
}
#PlacesToolbarItems > .bookmark-item:nth-of-type(9n+9) > .toolbarbutton-icon {
list-style-image: url("../images/folder9.svg") !important;
}
/* Carpeta "Otros Marcadores" */
#OtherBookmarks > .toolbarbutton-icon{
list-style-image: url("../images/folder-otherbookmarks.svg") !important;
}
/* ##################################################### Nuevos margenes Botón menú ##################################################### */
:root {
--margin-left-icons-personal: calc(var(--my-vertical-toolbar-width) / 2 - 16px) !important; /* Nuevo margen-left de íconos del -menu- */
--margin-right-icons-personal: 8px !important; /* Nuevo margen-right de íconos del -menu- */
}
/* Quitar label -Menu- del menú not [open] */
@media (-moz-platform: windows), (-moz-platform: linux) {
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button:not([open])>stack::after {
content: none !important;
}
:root:not([chromehidden~="toolbar"]):is([sizemode="normal"], [sizemode="fullscreen"]) #PanelUI-menu-button:is([open])>stack::after {
content: none !important;
}
}
/* Tamaño nuevo botón Menú */
@media (-moz-platform: windows), (-moz-platform: linux) {
/* Logo más grande */
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button image {
min-height: 20px !important;
min-width: 20px !important;
}
/* Logo alineado */
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button image {
margin-inline-start: calc(var(--margin-left-icons-personal) - 2px) !important;
}
/* Label Menú */
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button>stack::after {
padding-inline-start: calc(var(--margin-right-icons-personal) - 2px) !important;
}
/* Menu :hover */
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button:not([open]):hover>.toolbarbutton-badge-stack {
background-color: color-mix(in srgb, var(--general-color) 15%, transparent) !important;
}
}
/* ########################################### Baner de -actualización disponible- ########################################### */
@keyframes slide1 {
from { transform: rotate(0deg) }
to { transform: rotate(360deg); }
}
#PanelUI-menu-button[badge-status="update-available"]>.toolbarbutton-badge-stack>.toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-downloading"]>.toolbarbutton-badge-stack>.toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-manual"]>.toolbarbutton-badge-stack>.toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-other-instance"]>.toolbarbutton-badge-stack>.toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-restart"]>.toolbarbutton-badge-stack>.toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-unsupported"]>.toolbarbutton-badge-stack>.toolbarbutton-badge {
display: none !important;
}
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button[badge-status="update-available"]:not([open]) .toolbarbutton-badge-stack,
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button[badge-status="update-downloading"]:not([open]) .toolbarbutton-badge-stack,
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button[badge-status="update-manual"]:not([open]) .toolbarbutton-badge-stack,
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button[badge-status="update-other-instance"]:not([open]) .toolbarbutton-badge-stack,
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button[badge-status="update-restart"]:not([open]) .toolbarbutton-badge-stack,
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button[badge-status="update-unsupported"]:not([open]) .toolbarbutton-badge-stack,
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button[badge-status="addon-alert"]:not([open]) .toolbarbutton-badge-stack,
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button[badge-status="fxa-needs-authentication"]:not([open]) .toolbarbutton-badge-stack {
list-style-image: url("../images/foxFill.svg") !important;
fill: var(--general-color) !important;
animation: 2000ms infinite ease;
animation-name: slide1;
margin-inline: 0px !important;
border-radius: 50% !important;
}
/* Compatibilidad para <tab center reborn> extension */
#sidebar-box[sidebarcommand*="tabcenter"]:not([hidden]) {
border-right: 1px solid var(--border-contrast-color);
box-shadow: none !important;
border-image: none !important;
}
/* Nueva posición de Paneles [open] de left-sidebar
#PlacesToolbarItems > .bookmark-item > menupopup, #OtherBookmarks #OtherBookmarksPopup {
margin-inline-start: calc(var(--padding-left-tab) - 2px) !important;
margin-top: -56px !important;
}
#PersonalToolbar>toolbarbutton>menupopup {
margin-right: calc(var(--padding-left-tab) - 10px) !important;
margin-top: -39px !important;
}
#customizationui-widget-panel {
margin-right: calc(var(--padding-left-tab) - 9px) !important;
margin-top: -39px !important;
}
*/
}

View file

@ -0,0 +1,182 @@
/* Source file made available under Mozilla Public License v. 2.0 See the main repository for updates as well as full license text.
https://github.com/Godiesc/firefox-gx */
@media (-moz-platform: windows), (-moz-platform: linux) {
:root {
--label-color: color-mix(in srgb, var(--arrowpanel-color, var(--lwt-tab-text))80%, var(--Button-background-personal));
--margin-left-icons-personal: 3px !important;
--margin-right-icons-personal: 6px !important;
}
/* ------------Menú hamburguesa-> top-left ------------- */
/*Posición*/
:root:not([chromehidden~="toolbar"]) #PanelUI-button {
position: fixed;
display: flex;
top: var(--windowed-top-padding, 0px);
left: 0px !important;
z-index: 2 !important;
}
/* Tamaño menu [Open] - ventana maximizada y no maximizada*/
#appMenu-popup panelview {
width: 25.5em !important;
}
/* Ocultar botón menú en modo "pantalla completa" */
:root:is([chromehidden~="toolbar"], [sizemode="fullscreen"])>body>#browser, :root:is([chromehidden~="toolbar"], [sizemode="fullscreen"])>body>#browser-bottombox,
:root:is([chromehidden~="toolbar"], [sizemode="fullscreen"])>body>#customization-container {
z-index: 3 !important;
}
/* margen izquierda pestañas*/
:root:not([chromehidden~="toolbar"]) #toolbar-menubar, :root:not([chromehidden~="toolbar"]) #toolbar-menubar[autohide="true"]+#TabsToolbar {
padding-inline-start: var(--padding-left-tab) !important;
}
/* tamaño botón Menú */
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button {
padding: var(--margin-top-personal) 0 0 0 !important;
max-height: calc(var(--tab-height-personal)) !important;
min-height: calc(var(--tab-height-personal)) !important;
}
/* menu :hover y open */
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button>.toolbarbutton-badge-stack {
max-height: calc(var(--tab-height-personal)) !important;
min-height: calc(var(--tab-height-personal)) !important;
}
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button:not([open]):hover>.toolbarbutton-badge-stack {
background-color: var(--toolbarbutton-hover-personal) !important;
border-radius: 0px !important;
}
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button[open]>.toolbarbutton-badge-stack {
background-image: var(--noise-urlbar-personal, var(--noise-urlbar-personal, none)),
linear-gradient(var(--arrowpanel-background), var(--arrowpanel-background)),
linear-gradient(var(--arrowpanel-background), var(--arrowpanel-background)) !important;
border-radius: 0px !important;
border-image: var(--panel-separator-zap-gradient5) 1 !important;
width: 28.5em !important;
}
/* Logo */
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button .toolbarbutton-badge-stack {
list-style-image: url("../images/foxmenu.svg") !important;
display: -moz-box !important;
max-height: var(--tab-height-personal) !important;
min-width: var(--padding-left-tab) !important;
max-width: var(--padding-left-tab) !important;
-moz-box-pack: center !important;
fill: var(--general-color) !important;
border: 1px solid transparent !important;
}
:root:not([chromehidden~="toolbar"]) #PanelUI-menu-button image {
margin-top: -1px !important;
min-height: 18px !important;
min-width: 18px !important;
margin-inline-start: 2px !important;
}
/* Padding top para hacer espacio para la fila del Label menú */
/* Margin top para subir el menú [open] */
/* Separadores */
:root:not([chromehidden~="toolbar"]) #appMenu-popup.cui-widget-panel toolbarseparator {
margin-inline-start: 30px !important;
--panel-separator-margin-vertical: 2px !important;
--panel-separator-margin: var(--panel-separator-margin-vertical) var(--panel-separator-margin-horizontal) !important;
}
/* zoom icons */
#appMenu-zoomReduce-button2 > .toolbarbutton-icon, #appMenu-zoomEnlarge-button2 > .toolbarbutton-icon{
margin-inline: -4px !important;
}
/* Separadores */
:root:not([chromehidden~="toolbar"]) #appMenu-popup.cui-widget-panel toolbarseparator {
margin-inline-start: 30px !important;
--panel-separator-margin-vertical: 2px !important;
--panel-separator-margin: var(--panel-separator-margin-vertical) var(--panel-separator-margin-horizontal) !important;
}
/* Color de íconos y label */
.subviewbutton:not([disabled]), #appMenu-popup toolbarbutton:not([disabled]) .toolbarbutton-text label {
-moz-context-properties: fill;
fill: var(--label-color) !important;
color: var(--label-color) !important;
}
/* baner de -actualización disponible- */
#appMenu-popup .panel-banner-item:not([disabled]), #appMenu-popup .addon-banner-item:not([disabled]) {
background: var(--button-bgcolor) !important;
}
#appMenu-popup .panel-banner-item:not([disabled]):hover, #appMenu-popup .addon-banner-item:not([disabled]):hover {
background: var(--button-active-bgcolor) !important;
}
/* circulo de notificación de actualización */
#PanelUI-menu-button[badge-status="update-available"]>.toolbarbutton-badge-stack>.toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-downloading"]>.toolbarbutton-badge-stack>.toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-manual"]>.toolbarbutton-badge-stack>.toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-other-instance"]>.toolbarbutton-badge-stack>.toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-restart"]>.toolbarbutton-badge-stack>.toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-unsupported"]>.toolbarbutton-badge-stack>.toolbarbutton-badge {
box-shadow: none;
margin: -7px -3px 0px !important;
margin-inline-end: -7px !important;
}
.panel-banner-item::before {
background: url("../images/foxFill.svg") no-repeat center/16px;
content: "";
display: block;
width: 16px;
height: 16px;
margin-inline-end: 7px;
-moz-context-properties: fill;
fill: #3ad3a2 !important;
}
#appMenu-popup .panel-banner-item {
margin: 0 0px 2px !important;
padding-inline-start: 8px !important;
border-radius: 0px !important;
}
/* ---------------------------------------- Config para alinear íconos en el menú de hamburguesa ------------------------------------------- */
/* Sobreescribir nuevo Tamaño y margen de los íconos - Trick para aplicar margen nuevo solo al menu hamburguesa maximizado */
/* Menú más pequeño en linux*/
@media (-moz-platform: linux) {
:root {
--margin-left-icons-personal: 9px !important;
}
}

71
home/theme.nix Normal file
View file

@ -0,0 +1,71 @@
{ pkgs, lib, config, ... }: let
fontSize = config.services.device-vars.fontSize;
dracula-xresources = pkgs.fetchFromGitHub {
owner = "dracula";
repo = "xresources";
rev = "539ef24e9b0c5498a82d59bfa2bad9b618d832a3";
sha256 = "sha256-6fltsAluqOqYIh2NX0I/LC3WCWkb9Fn8PH6LNLBQbrY=";
};
in
{
home.pointerCursor = {
name = "Dracula-cursors";
package = pkgs.dracula-theme;
size = 24;
gtk.enable = true;
x11 = {
enable = true;
defaultCursor = "Dracula-cursors";
};
};
gtk = {
enable = true;
theme = {
name = "Dracula";
package = pkgs.dracula-theme;
};
iconTheme = {
name = "Flat-Remix-Violet-Dark";
package = pkgs.flat-remix-icon-theme;
};
font = {
name = "Sans Serif";
size = fontSize;
};
};
home.packages = with pkgs; [
libsForQt5.qtstyleplugin-kvantum
qt6Packages.qtstyleplugin-kvantum #FIXME: doesn't work with qt6ct
];
qt = {
enable = true;
platformTheme = "qtct";
};
xresources.extraConfig = builtins.readFile("${dracula-xresources}/Xresources");
xdg.configFile = let
qtconf = ''
[Fonts]
fixed="Sans Serif,${lib.strings.floatToString fontSize},-1,5,50,0,0,0,0,0"
general="Sans Serif,${lib.strings.floatToString fontSize},-1,5,50,0,0,0,0,0"
[Appearance]
icon_theme=Flat-Remix-Violet-Dark
style=''
;
in
{
"Kvantum/Dracula/Dracula.kvconfig".source = "${pkgs.dracula-theme}/share/Kvantum/Dracula-purple-solid/Dracula-purple-solid.kvconfig";
"Kvantum/Dracula/Dracula.svg".source = "${pkgs.dracula-theme}/share/Kvantum/Dracula-purple-solid/Dracula-purple-solid.svg";
"Kvantum/kvantum.kvconfig".text = "[General]\ntheme=Dracula";
"qt5ct/qt5ct.conf".text = qtconf + "kvantum";
};
}

17
home/wofi/default.nix Normal file
View file

@ -0,0 +1,17 @@
{ ... }: {
programs = {
wofi = {
enable = true;
settings = {
prompt = "";
allow_images = true;
normal_window = true;
image_size = "48";
matching = "fuzzy";
insensitive = true;
no_actions = true;
};
style = builtins.readFile ./style.css;
};
};
}

92
home/wofi/style.css Normal file
View file

@ -0,0 +1,92 @@
/* https://github.com/dracula/wofi/blob/master/style.css */
* {
font-size: 16px;
}
window,
undershoot {
all: unset;
}
#input {
all: unset;
border-radius: 9px;
color: #f8f8f2;
background-color: rgba(#44475a, 0.6);
border: 1px solid #44475a;
padding: 8px;
margin: 16.2px;
margin-bottom: 0;
}
#outer-box {
all: unset;
box-shadow: 0 0 4.5px 0 rgba(0, 0, 0, 0.6);
border: 2px solid rgba(189, 147, 249, 0.8);
border-radius: 25px;
background-color: rgba(40, 42, 54, 0.8);
color: #f8f8f2;
padding: 16.2px;
}
#inner-box {
padding: 16.2px;
min-width: 500px;
min-height: 450px;
}
#scroll scrollbar, #scroll scrollbar * {
all: unset;
}
#scroll scrollbar {
transition: 200ms;
background-color: rgba(23, 23, 23, 0.3);
&:hover {
background-color: rgba(23, 23, 23, 0.7);
}
}
#scroll scrollbar.vertical:hover slider {
background-color: rgba(238, 238, 238, 0.7);
min-width: .6em;
}
#scroll scrollbar.horizontal:hover slider {
background-color: rgba(238, 238, 238, 0.7);
min-height: .6em;
}
#scroll .vertical slider {
background-color: rgba(238, 238, 238, 0.5);
border-radius: 9px;
min-width: .4em;
min-height: 2em;
transition: 200ms;
}
#scroll .horizontal slider {
background-color: rgba(238, 238, 238, 0.5);
border-radius: 9px;
min-height: .4em;
min-width: 2em;
transition: 200ms;
}
#entry {
all: unset;
padding: 9px;
}
#entry image, #entry label {
all: unset;
}
#entry image {
margin-right: 9px;
}
#entry:selected {
background-color: rgba(189, 147, 249, 0.5);
border-radius: 9px;
box-shadow: inset 0 0 0 3px rgba(238, 238, 238, 0.03);
}
#entry:selected image {
-gtk-icon-shadow: 3px 3px rgba(0, 0, 0, 0.8);
}