fix up firefox to be more declarative
This commit is contained in:
parent
ada5e5ad6a
commit
96c329918d
39
flake.lock
39
flake.lock
|
@ -31,11 +31,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1657514455,
|
||||
"narHash": "sha256-rYrofeCRgZyiZMuuwbwbM7ZLNTj04S0l4G/1ZeH0gqI=",
|
||||
"lastModified": 1663665682,
|
||||
"narHash": "sha256-YB+vmQB3N9RyeshHAO4GjIFebA7NPY2jlkdvGGZtM64=",
|
||||
"ref": "main",
|
||||
"rev": "50f7ee786d9704ecfd67a9fe2eb8f338fc983dc1",
|
||||
"revCount": 64,
|
||||
"rev": "36bda6965ab2e1a206f8c2b7a74f3b022c873662",
|
||||
"revCount": 65,
|
||||
"type": "git",
|
||||
"url": "ssh://gitea@git.sealight.xyz/aynish/basant"
|
||||
},
|
||||
|
@ -663,33 +663,19 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1663489134,
|
||||
"narHash": "sha256-YqM45LLzvgBNbvIK0QQa8cY8omKS0+bRUg4JWzEj14w=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "830e228898ac7a66eeafb169dd3df0dc427674d4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"locked": {
|
||||
"lastModified": 1663393873,
|
||||
"narHash": "sha256-DtumXhmyA9gpu0+qa5fwvU93qKqtx0AtUFvfazPzz1Y=",
|
||||
"lastModified": 1663680695,
|
||||
"narHash": "sha256-sVdmg21MzIS0e+mCyIEInivIodJNYKVicZ3WJr907XI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "ecf7442437f53f0f689df6897c10a7f9a4f6b9ae",
|
||||
"rev": "a22f443201174496ce6edb237a2e9596591cd542",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nur",
|
||||
"type": "indirect"
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nvfetcher": {
|
||||
|
@ -885,7 +871,10 @@
|
|||
},
|
||||
"vimwiki-cli": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
"nixpkgs": [
|
||||
"poonam",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1662448409,
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
nvfetcher.inputs.nixpkgs.follows = "nixos";
|
||||
naersk.url = "github:nmattia/naersk";
|
||||
naersk.inputs.nixpkgs.follows = "nixos";
|
||||
nur.url = "github:nix-community/NUR";
|
||||
# Tools
|
||||
agenix.url = "github:ryantm/agenix";
|
||||
agenix.inputs.nixpkgs.follows = "nixos";
|
||||
|
@ -147,7 +148,7 @@
|
|||
};
|
||||
suites = with profiles; rec {
|
||||
base = [ core users.root users.anish ];
|
||||
sealight = [ base server metrics gitea sealight-website backup rss-bridge mount-mossnet matrix ]; #
|
||||
sealight = [ base server metrics gitea sealight-website backup rss-bridge mount-mossnet ]; # matrix
|
||||
mossnet = [ base server taskd shaarli dns monitoring nfs rss-bridge gonic headphones radicale seafile syncthing dhyan calibre wallabag ]; # hpi sync.music
|
||||
cube = [ base site server ];
|
||||
graphical = [ base bluetooth music sync.kitaab sync.website sync.cal wifi desktop mimetypes ];
|
||||
|
|
|
@ -1,11 +1,45 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Imperative steps:
|
||||
# - Enable & configure plugins
|
||||
# - Run :colourscheme --url https://raw.githubusercontent.com/lonepie/dracula-tridactyl/main/dracula.css dracula for tridactyl theme
|
||||
# - Import css for tree style tabs from treestyletabs.css
|
||||
|
||||
programs.browserpass.enable = true;
|
||||
programs.browserpass.browsers = [ "firefox" ];
|
||||
#env.XDG_DEXSTOP_DIR = "$HOME/";
|
||||
programs.firefox.profiles.anish.userChrome = (builtins.readFile ./userChrome.css);
|
||||
programs.firefox.profiles.anish.settings = {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
ublock-origin
|
||||
wallabagger
|
||||
tree-style-tab
|
||||
tridactyl
|
||||
promnesia
|
||||
(buildFirefoxXpiAddon {
|
||||
pname = "shaarli";
|
||||
version = "2.0.0";
|
||||
addonId = "{f59a7028-b71f-490d-844e-f781a11ffbc7}";
|
||||
url = "https://addons.mozilla.org/firefox/downloads/file/815126/shaarli-2.0.0.xpi";
|
||||
sha256 = "W/OpvOfMclibP6LeG573/DlMs0p8fF0efyd+i8Sudgg=";
|
||||
meta = { };
|
||||
})
|
||||
(buildFirefoxXpiAddon {
|
||||
pname = "grasp";
|
||||
version = "0.6.6";
|
||||
addonId = "{37e42980-a7c9-473c-96d5-13f18e0efc74}";
|
||||
url = "https://addons.mozilla.org/firefox/downloads/file/3502186/grasp-0.6.6.xpi";
|
||||
sha256 = "L4JhT29MeA34nHIlB8FtCU7hrpbWljZZBusx12uxblE=";
|
||||
meta = { };
|
||||
})
|
||||
];
|
||||
profiles.anish = {
|
||||
id = 0;
|
||||
isDefault = true;
|
||||
name = "anish";
|
||||
userChrome = (builtins.readFile ./userChrome.css);
|
||||
settings = {
|
||||
"devtools.theme" = "dark";
|
||||
# Enable userContent.css and userChrome.css for our theme modules
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
|
@ -39,6 +73,11 @@
|
|||
"extensions.htmlaboutaddons.recommendations.enabled" = false;
|
||||
"extensions.htmlaboutaddons.discover.enabled" = false;
|
||||
"extensions.pocket.enabled" = false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
||||
"extensions.pocket.api" = "";
|
||||
"extensions.pocket.oAuthConsumerKey" = "";
|
||||
"extensions.pocket.showHome" = false;
|
||||
"extensions.pocket.site" = "";
|
||||
"app.normandy.enabled" = false;
|
||||
"app.normandy.api_url" = "";
|
||||
"extensions.shield-recipe-client.enabled" = false;
|
||||
|
@ -77,9 +116,27 @@
|
|||
"experiments.supported" = false;
|
||||
"experiments.enabled" = false;
|
||||
"experiments.manifest.uri" = "";
|
||||
"privacy.donottrackheader.enabled" = true;
|
||||
"privacy.trackingprotection.enabled" = true;
|
||||
"privacy.trackingprotection.socialtracking.enabled" = true;
|
||||
"privacy.partition.network_state.ocsp_cache" = true;
|
||||
# Disable health reports (basically more telemetry)
|
||||
# https://support.mozilla.org/en-US/kb/firefox-health-report-understand-your-browser-perf
|
||||
# https://gecko.readthedocs.org/en/latest/toolkit/components/telemetry/telemetry/preferences.html
|
||||
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
|
||||
"browser.newtabpage.activity-stream.telemetry" = false;
|
||||
"browser.ping-centre.telemetry" = false;
|
||||
"toolkit.telemetry.bhrPing.enabled" = false;
|
||||
"toolkit.telemetry.firstShutdownPing.enabled" = false;
|
||||
"toolkit.telemetry.hybridContent.enabled" = false;
|
||||
"toolkit.telemetry.newProfilePing.enabled" = false;
|
||||
"toolkit.telemetry.reportingpolicy.firstRun" = false;
|
||||
"toolkit.telemetry.shutdownPingSender.enabled" = false;
|
||||
"toolkit.telemetry.updatePing.enabled" = false;
|
||||
|
||||
# As well as Firefox 'experiments'
|
||||
"experiments.activeExperiment" = false;
|
||||
"network.allow-experiments" = false;
|
||||
"datareporting.healthreport.uploadEnabled" = false;
|
||||
"datareporting.healthreport.service.enabled" = false;
|
||||
"datareporting.policy.dataSubmissionEnabled" = false;
|
||||
|
@ -88,33 +145,6 @@
|
|||
"reader.parse-on-load.enabled" = false;
|
||||
"media.webspeech.synth.enabled" = false;
|
||||
};
|
||||
|
||||
# Override?
|
||||
home.packages = with pkgs; [
|
||||
firefox-bin
|
||||
# TODO something changed in 22.05, needs to be a list?
|
||||
# (makeDesktopItem {
|
||||
# name = "firefox-private";
|
||||
# desktopName = "Firefox (Private)";
|
||||
# genericName = "Open a private Firefox window";
|
||||
# icon = "firefox";
|
||||
# exec = "${firefox-bin}/bin/firefox --private-window";
|
||||
# categories = "Network";
|
||||
# })
|
||||
];
|
||||
|
||||
home.file = let cfgPath = ".mozilla/firefox"; in
|
||||
{
|
||||
"${cfgPath}/profiles.ini".text = ''
|
||||
[Profile0]
|
||||
Name=default
|
||||
IsRelative=1
|
||||
Path=anish.default
|
||||
Default=1
|
||||
[General]
|
||||
StartWithLastProfile=1
|
||||
Version=2
|
||||
'';
|
||||
"${cfgPath}/anish.default/chrome/userChrome.css".source = ./userChrome.css;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
278
users/profiles/firefox/treestyletab.css
Normal file
278
users/profiles/firefox/treestyletab.css
Normal file
|
@ -0,0 +1,278 @@
|
|||
:root{
|
||||
--dark-0: #1A1E28;
|
||||
--dark-base: #1F2430;
|
||||
--dark-1: #2A3141;
|
||||
--dark-2: #323A4E;
|
||||
--dark-3: #424D67;
|
||||
--dark-4: #4A5673;
|
||||
--light-0: #E8E7E3;
|
||||
--light-base: #CCCAC2;
|
||||
--light-1: #C3C0B7;
|
||||
--light-2: #B9B7AC;
|
||||
--light-3: #B0ADA0;
|
||||
--light-4: #A7A395;
|
||||
--accent: #FFCC66;
|
||||
--yellow: #695380;
|
||||
--green: #D5FF80;
|
||||
--red: #f28779;
|
||||
--extension-icon-mask: grayscale(85%) invert(30%) sepia(13%) saturate(1019%) hue-rotate(184deg) brightness(95%) contrast(96%);
|
||||
}
|
||||
|
||||
:root.incognito{
|
||||
--dark-0: #1C0E34;
|
||||
--dark-base: #20103c;
|
||||
--dark-1: #2F1D4E;
|
||||
--dark-2: #38225D;
|
||||
--dark-3: #4A2D7B;
|
||||
--dark-4: #53338A;
|
||||
--light-0: #CC6B9C;
|
||||
--light-base: #B9407C;
|
||||
--light-1: #AB3B73;
|
||||
--light-2: #9C3569;
|
||||
--light-3: #8D305E;
|
||||
--light-4: #7D2B54;
|
||||
--accent: #e9207e;
|
||||
--yellow: #C9B336;
|
||||
--green: #36C987;
|
||||
--red: #C9365D;
|
||||
--extension-icon-mask: grayscale(85%) invert(17%) sepia(33%) saturate(3632%) hue-rotate(245deg) brightness(92%) contrast(90%);
|
||||
}
|
||||
|
||||
|
||||
:root{
|
||||
--tab-border-radius: 7px; /* border radius of tabs */
|
||||
--animation-duration: 200ms; /* duration of different animations [0s: turn all animations off] */
|
||||
--spacing: 14px; /* spacing between tabs. [<15px: compact tabs] */
|
||||
--distance-from-edge: 10px; /* distance between tabs, and left-right edges of sidebar*/
|
||||
--hover-text-spacing: 0.1; /* should be left alone. with hover sidebar, if text is visible in collapsed status, increase this */
|
||||
|
||||
--ease-in: cubic-bezier(0.32, 0, 0.67, 0);
|
||||
--ease-out: cubic-bezier(0.22, 1, 0.36, 1);
|
||||
--ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
|
||||
|
||||
--collapsed-width: 60px;
|
||||
}
|
||||
|
||||
/************UNCUSTOMIZED CSS************/
|
||||
#tabbar-container #tabbar{
|
||||
margin-bottom: 15px !important;
|
||||
}
|
||||
|
||||
:root, #background{
|
||||
background: var(--dark-base) !important;
|
||||
}
|
||||
|
||||
#all-tabs{
|
||||
margin: 10px var(--distance-from-edge);
|
||||
}
|
||||
|
||||
tab-item:not(.collapsed) {
|
||||
margin-top: var(--spacing);
|
||||
border-radius: var(--tab-border-radius);
|
||||
border: none !important;
|
||||
padding-top: 9px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
tab-item.collapsed{
|
||||
height: 0;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
tab-item:not([data-level="0"]):not(.pinned){
|
||||
border-left: dashed 2px var(--light-4) !important;
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
margin-top: calc(var(--spacing)/2);
|
||||
}
|
||||
|
||||
tab-item tab-favicon{
|
||||
left: 0;
|
||||
filter: var(--extension-icon-mask);
|
||||
transition: left calc(var(--animation-duration)*2) var(--ease-out);
|
||||
}
|
||||
|
||||
.highlighter {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
tab-item .label {
|
||||
color: var(--light-2) !important;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
|
||||
tab-item .twisty:before{
|
||||
background: var(--light-3) !important;
|
||||
}
|
||||
|
||||
tab-item.active .label {
|
||||
color: var(--light-0) !important;
|
||||
}
|
||||
|
||||
tab-item.active {
|
||||
background: var(--dark-3) !important;
|
||||
}
|
||||
|
||||
|
||||
tab-item:not(.active).highlighted{
|
||||
background: var(--dark-1) !important;
|
||||
}
|
||||
|
||||
tab-item:not(active):hover {
|
||||
background: var(--dark-1);
|
||||
}
|
||||
|
||||
tab-item:hover tab-closebox {
|
||||
right: 10px;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
tab-item:not(pinned) tab-closebox {
|
||||
position: absolute;
|
||||
margin-top: 2px;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
right: -30px;
|
||||
border-radius: 50%;
|
||||
padding-top: 2px;
|
||||
padding-left: 2px;
|
||||
background: var(--light-4);
|
||||
transition : all var(--animation-duration) var(--ease-out);
|
||||
}
|
||||
|
||||
.sound-button:after {
|
||||
background: var(--light-3) !important;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.counter{
|
||||
color: var(--light-4) !important;
|
||||
background: var(--dark-2) !important;
|
||||
border-radius: 7px;
|
||||
margin: 2px 2px 0px 0px;
|
||||
padding: 0 4px;
|
||||
padding-bottom: 2px;
|
||||
order: -2 !important;
|
||||
}
|
||||
|
||||
.counter:before, .counter:after{ content: ""}
|
||||
|
||||
/********LEFT CONTENT TAB(static)*************/
|
||||
|
||||
:root.left tab-item{
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
:root.left tab-item tab-favicon {
|
||||
transform: scale(120%);
|
||||
margin-right: 5px;
|
||||
left: 80%;
|
||||
}
|
||||
|
||||
:root.left tab-item .label {
|
||||
transform: translateX(10px);
|
||||
right: 28%;
|
||||
}
|
||||
|
||||
|
||||
:root.left tab-item[data-child-ids] .twisty{
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
/********RIGHT CONTENT TAB(hover)*************/
|
||||
|
||||
:root.right tab-item .label {
|
||||
margin-left: 10px;
|
||||
margin-right: calc(var(--collapsed-width)*0.3) !important;
|
||||
}
|
||||
|
||||
:root.right tab-item:not(pinned):hover tab-closebox{
|
||||
right: calc(var(--collapsed-width)*0.3);
|
||||
}
|
||||
|
||||
:root.right tab-item:not([data-level="0"]):not(.pinned){
|
||||
border: none !important;
|
||||
border-right: dashed 2px var(--light-4) !important;
|
||||
border-radius: var(--tab-border-radius);
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
:root.right tab-item.active:not([data-level="0"]):not(.pinned){
|
||||
margin-right: 5px !important;
|
||||
}
|
||||
|
||||
:root.right .sound-button{
|
||||
order: -1 !important;
|
||||
}
|
||||
|
||||
:root.right tab-item.active.pinned {
|
||||
position: relative;
|
||||
left: 190px !important;
|
||||
}
|
||||
|
||||
:root.right tab-item.active.pinned tab-favicon {
|
||||
transform: scale(130%) !important;
|
||||
margin-left: 7px;
|
||||
}
|
||||
|
||||
/***********************************/
|
||||
|
||||
.tab
|
||||
.favicon
|
||||
.favicon-default::before {
|
||||
filter: var(--extension-icon-mask); // change for light theme
|
||||
}
|
||||
|
||||
.tab[data-current-favicon-uri="undefined"]
|
||||
.favicon
|
||||
.favicon-default::before{
|
||||
background: url("chrome://branding/content/identity-icons-brand.svg") no-repeat center !important;
|
||||
mask: none !important;
|
||||
}
|
||||
|
||||
/***********NEW TAB BUTTON**********/
|
||||
|
||||
.newtab-button-box {
|
||||
border: none !important;
|
||||
margin: 0 50px;
|
||||
}
|
||||
|
||||
.newtab-button {
|
||||
border: none !important;
|
||||
border-radius: 8px;
|
||||
padding: 8px 0 !important;
|
||||
margin: 0 5px;
|
||||
}
|
||||
|
||||
.newtab-button::before{
|
||||
background: var(--light-3) !important;
|
||||
}
|
||||
|
||||
.newtab-action-selector-anchor {
|
||||
border: none !important;
|
||||
margin-right: 10px;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.newtab-button:hover {
|
||||
background: var(--dark-1);
|
||||
}
|
||||
|
||||
/**********PINNED TAB***************/
|
||||
|
||||
tab-item.pinned {
|
||||
margin: 5px !important;
|
||||
padding: 5px !important;
|
||||
transition : all 0.1s var(--ease-out);
|
||||
}
|
||||
|
||||
/***********************************/
|
||||
|
||||
#all-tabs {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in a new issue