This commit is contained in:
js0ny 2025-11-16 12:22:14 +00:00
parent 28797f148f
commit d59329969d
10 changed files with 227 additions and 55 deletions

79
nixcfgs/flake.lock generated
View file

@ -137,6 +137,27 @@
"type": "github" "type": "github"
} }
}, },
"firefox-addons": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1763254583,
"narHash": "sha256-qOCvJgLGKahIG9DWcLUMjadAR/0KZeEypIqw3ASj2sA=",
"owner": "petrkozorezov",
"repo": "firefox-addons-nix",
"rev": "7a779c26bd1e6caf1fe45f905253c41e5b03c2b7",
"type": "github"
},
"original": {
"owner": "petrkozorezov",
"repo": "firefox-addons-nix",
"type": "github"
}
},
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -213,6 +234,23 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"id": "flake-utils",
"type": "indirect"
}
},
"gitignore": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -350,7 +388,7 @@
"hyprwayland-scanner": "hyprwayland-scanner", "hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs_7", "nixpkgs": "nixpkgs_7",
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"systems": "systems_2", "systems": "systems_3",
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
@ -944,6 +982,7 @@
"inputs": { "inputs": {
"betterfox-nix": "betterfox-nix", "betterfox-nix": "betterfox-nix",
"caelestia-shell": "caelestia-shell", "caelestia-shell": "caelestia-shell",
"firefox-addons": "firefox-addons",
"home-manager": "home-manager", "home-manager": "home-manager",
"niri-flake": "niri-flake", "niri-flake": "niri-flake",
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
@ -953,7 +992,8 @@
"nur": "nur", "nur": "nur",
"plasma-manager": "plasma-manager", "plasma-manager": "plasma-manager",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"xremap-flake": "xremap-flake" "xremap-flake": "xremap-flake",
"zen-browser": "zen-browser"
} }
}, },
"sops-nix": { "sops-nix": {
@ -992,6 +1032,21 @@
} }
}, },
"systems_2": { "systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@ -1145,6 +1200,26 @@
"repo": "xwayland-satellite", "repo": "xwayland-satellite",
"type": "github" "type": "github"
} }
},
"zen-browser": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1762827415,
"narHash": "sha256-YxPQbafcd09foVFn5yHggTZDbXsrtHVae+iwo2wGn0w=",
"owner": "youwen5",
"repo": "zen-browser-flake",
"rev": "6e0ad935d9caad128d2c58b2a1ba31524c0fe7f1",
"type": "github"
},
"original": {
"owner": "youwen5",
"repo": "zen-browser-flake",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View file

@ -37,6 +37,14 @@
xremap-flake.url = "github:xremap/nix-flake"; xremap-flake.url = "github:xremap/nix-flake";
# betterfox - preconfigured firefox user.js # betterfox - preconfigured firefox user.js
betterfox-nix.url = "github:HeitorAugustoLN/betterfox-nix"; betterfox-nix.url = "github:HeitorAugustoLN/betterfox-nix";
firefox-addons = {
url = "github:petrkozorezov/firefox-addons-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
zen-browser = {
url = "github:youwen5/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = { outputs = {
@ -53,13 +61,19 @@
niri-flake, niri-flake,
xremap-flake, xremap-flake,
betterfox-nix, betterfox-nix,
firefox-addons,
zen-browser,
... ...
} @ inputs: let } @ inputs: let
overlays = [ overlays = [
nur.overlays.default nur.overlays.default
firefox-addons.overlays.default
(final: prev: { (final: prev: {
caelestia-shell = caelestia-shell.packages.x86_64-linux.caelestia-shell; caelestia-shell = caelestia-shell.packages.x86_64-linux.caelestia-shell;
}) })
(final: pref: {
zen-browser = zen-browser.packages.x86_64-linux.zen-browser;
})
]; ];
forSystem = system: forSystem = system:
import nixpkgs { import nixpkgs {

View file

@ -42,7 +42,13 @@
{ {
name = "IM Navigator - Alt-Up/Down"; name = "IM Navigator - Alt-Up/Down";
application = { application = {
only = ["org.telegram.desktop" "telegram-desktop" "wechat"]; only = [
"org.telegram.desktop"
"telegram-desktop"
"io.github.kukuruzka165.materialgram"
"materialgram"
"wechat"
];
}; };
remap = { remap = {
"M-j" = "M-down"; "M-j" = "M-down";

View file

@ -5,8 +5,8 @@
languagePacks = ["zh-CN"]; languagePacks = ["zh-CN"];
preferences = { preferences = {
"widget.use-xdg-desktop-portal.file-picker" = 1; # "widget.use-xdg-desktop-portal.file-picker" = 1;
"widget.use-xdg-desktop-portal.mime-handler" = 1; # "widget.use-xdg-desktop-portal.mime-handler" = 1;
"screenshots.browser.component.enabled" = false; "screenshots.browser.component.enabled" = false;
"toolkit.telemetry.enabled" = false; "toolkit.telemetry.enabled" = false;
"toolkit.telemetry.archive.enabled" = false; "toolkit.telemetry.archive.enabled" = false;

View file

@ -27,7 +27,7 @@
rose-pine-cursor rose-pine-cursor
pcloud pcloud
telegram-desktop materialgram
steam steam
signal-desktop signal-desktop
# Use Wayland for Jetbrains # Use Wayland for Jetbrains

View file

@ -1,11 +1,14 @@
{pkgs, ...}: { {...}: {
programs.chromium = { programs.chromium = {
enable = true; enable = true;
commandLineArgs = [ commandLineArgs = [
"--enable-wayland-ime" # Done by NIXOS_OZONE_WL=1
"--enable-features=WaylandWindowDecorations" # "--enable-wayland-ime"
"--enable-features=UseOzonePlatform" # "--enable-features=WaylandWindowDecorations"
"--ozone-platform-hint=auto" # "--enable-features=UseOzonePlatform"
# "--ozone-platform-hint=auto"
# See: https://wiki.archlinux.org/title/Chromium#Touchpad_gestures_for_navigation
"--enable-features=TouchpadOverscrollHistoryNavigation"
]; ];
extensions = [ extensions = [
{id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";} # ublock origin {id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";} # ublock origin

View file

@ -1,31 +1,75 @@
{pkgs, ...}: let {pkgs, ...}: let
addons = pkgs.nur.repos.rycee.firefox-addons; addons = pkgs.firefox-addons;
in { in {
# imports = [./lib.nix]; # TODO: Declarative extension permissions # imports = [./lib.nix]; # TODO: Declarative extension permissions
programs.firefox.profiles.default = { programs.firefox.profiles.default = {
extensions.packages = with addons; [ extensions.packages = with addons; [
ublock-origin # Keybindings & Gestures & User Scripts
foxy-gestures
shortkeys
surfingkeys_ff
violentmonkey
# Theming
material-icons-for-github
# Browsing Enhancement
darkreader darkreader
bionic-reader
ublock-origin
refined-github-
global-speed
buster-captcha-solver
sidebery
# Cookies
cookie-quick-manager
cookie-autodelete
consent-o-matic # istilldontcareaboutcookies alt
# Privacy
google-container
facebook-container
### Site Specific
# Steam
steam-database
protondb-for-steam
# YouTube
return-youtube-dislikes
sponsorblock
# Bilibili
bilisponsorblock
# Misc
rsshub-radar rsshub-radar
proton-pass proton-pass
proton-vpn proton-vpn
surfingkeys styl-us
web-archives kiss-translator
tampermonkey
stylus # Disabled
foxy-gestures # view-page-archive # Web Archives
google-container # single-file
refined-github # downthemall
downthemall
material-icons-for-github # Install globally by policies: see modules/nixos/programs/firefox.nix
single-file # clearurls
return-youtube-dislikes # multi-account-container
steam-database
bilisponsorblock
sponsorblock
buster-captcha-solver
protondb-for-steam
i-dont-care-about-cookies
]; ];
}; };
programs.firefox = {
policies = {
ExtensionSettings = [
{
name = "zotero@chnm.gmu.edu";
value = {
install_url = "https://download.zotero.org/connector/firefox/release/Zotero_Connector-5.0.189.xpi";
installation_mode = "allow";
private_browsing = false;
};
}
];
};
};
} }

View file

@ -10,10 +10,16 @@
enable = true; enable = true;
profiles.default = { profiles.default = {
settings = { settings = {
"browser.toolbars.bookmarks.visibility" = "never";
"extensions.update.enabled" = true; "extensions.update.enabled" = true;
"sidebar.expandOnHover" = true; "sidebar.expandOnHover" = true;
"sidebar.visibility" = "expand-on-hover"; "sidebar.visibility" = "expand-on-hover";
"toolkit.legacyUserProfileCustomizations.stylesheets" = true; "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"toolkit.tabbox.switchByScrolling" = true;
"browser.uidensity" = 1;
# Disable Menu when pressing <Alt>
"ui.key.menuAccessKey" = -1;
"ui.key.menuAccessKeyFocuses" = false;
}; };
}; };
}; };

View file

@ -1,19 +1,30 @@
{pkgs, ...}: { {
pkgs,
lib,
...
}: let
a = pkgs.firefox-addons;
in {
home.file.".floorp/profiles.ini".force = lib.mkForce true;
home.file.".floorp/js0ny/search.json.mozlz4".force = lib.mkForce true;
programs.floorp = { programs.floorp = {
enable = true; enable = true;
package = pkgs.floorp;
policies = { policies = {
DisableTelemetry = true; DisableTelemetry = true;
BlockAboutConfig = false; BlockAboutConfig = false;
DisableFirefoxScreenshots = true; DisableFirefoxScreenshots = true;
DontCheckDefaultBrowser = true; DontCheckDefaultBrowser = true;
Preferences = {
};
ExtensionSettings = with builtins; let ExtensionSettings = with builtins; let
extension = short: uuid: { extension = short: uuid: {
name = uuid; name = uuid;
value = { value = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/${short}/latest.xpi"; install_url = "https://addons.mozilla.org/firefox/downloads/latest/${short}/latest.xpi";
installation_mode = "force_installed"; updates_disabled = true;
private_browsing = true;
}; };
}; };
in in
@ -54,7 +65,7 @@
]; ];
}; };
}; };
profiles.default = { profiles.js0ny = {
search.engines = { search.engines = {
archwiki = { archwiki = {
name = "ArchWiki"; name = "ArchWiki";
@ -113,18 +124,20 @@
definedAliases = ["@gh"]; definedAliases = ["@gh"];
}; };
}; };
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ extensions = {
packages = with pkgs.firefox-addons; [
ublock-origin
darkreader darkreader
rsshub-radar rsshub-radar
proton-pass proton-pass
surfingkeys proton-vpn
web-archives surfingkeys_ff
# immersive-translate view-page-archive # Web Archives
tampermonkey tampermonkey
stylus styl-us
foxy-gestures foxy-gestures
google-container google-container
refined-github refined-github-
downthemall downthemall
material-icons-for-github material-icons-for-github
single-file single-file
@ -133,7 +146,14 @@
bilisponsorblock bilisponsorblock
sponsorblock sponsorblock
buster-captcha-solver buster-captcha-solver
protondb-for-steam
i-dont-care-about-cookies
global-speed
kiss-translator
# sidebery
]; ];
force = true;
};
}; };
}; };
} }

View file

@ -1,4 +1,7 @@
{...}: let {...}: let
# Why using nvim gui:
# * when `rga-fzf`: nvim wrapper failed to launch
# * nvim wrapper reports error on parsing filename with spaces
gvim = "nvim-qt.desktop"; gvim = "nvim-qt.desktop";
in { in {
xdg.configFile."mimeapps.list".force = true; xdg.configFile."mimeapps.list".force = true;
@ -14,6 +17,7 @@ in {
# Source Code - C # Source Code - C
"text/x-csrc" = gvim; # .c "text/x-csrc" = gvim; # .c
"text/x-chdr" = gvim; # .h "text/x-chdr" = gvim; # .h
"text/javascript" = gvim;
# CSV # CSV
"text/csv" = gvim; "text/csv" = gvim;
# File Explorer # File Explorer