feat(firefox): softened non-proxy profiles and hardened proxy profiles
This commit is contained in:
@@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
bindd = [
|
bindd = [
|
||||||
"SUPER, W, Open Browser, exec, uwsm app -- firefox"
|
"SUPER, W, Open Browser, exec, uwsm app -- firefox"
|
||||||
|
"SUPER ALT, P, Open Browser, exec, uwsm app -- firefox -P VPN"
|
||||||
"SUPER, Y, Toggle YouTube, togglespecialworkspace, youtube"
|
"SUPER, Y, Toggle YouTube, togglespecialworkspace, youtube"
|
||||||
"SUPER SHIFT, Y, Move to YouTube Special Workspace, movetoworkspace, special:youtube"
|
"SUPER SHIFT, Y, Move to YouTube Special Workspace, movetoworkspace, special:youtube"
|
||||||
"SUPER, I, Toggle Jellyfin, togglespecialworkspace, jellyfin"
|
"SUPER, I, Toggle Jellyfin, togglespecialworkspace, jellyfin"
|
||||||
@@ -88,7 +89,7 @@
|
|||||||
};
|
};
|
||||||
vpn-proxy = import ./profiles/vpn-proxy.nix {
|
vpn-proxy = import ./profiles/vpn-proxy.nix {
|
||||||
inherit pkgs myConfig;
|
inherit pkgs myConfig;
|
||||||
id = 2;
|
id = 4;
|
||||||
name = "VPN";
|
name = "VPN";
|
||||||
url = "https://browserleaks.com/ip";
|
url = "https://browserleaks.com/ip";
|
||||||
};
|
};
|
||||||
@@ -119,11 +120,11 @@
|
|||||||
settings = {
|
settings = {
|
||||||
# --- Privacy & Hardening ---
|
# --- Privacy & Hardening ---
|
||||||
"browser.contentblocking.category" = "strict";
|
"browser.contentblocking.category" = "strict";
|
||||||
"geo.enabled" = false;
|
"geo.enabled" = true;
|
||||||
"media.peerconnection.enabled" = false; # Prevents WebRTC IP leaks
|
"media.peerconnection.enabled" = false; # Prevents WebRTC IP leaks
|
||||||
"network.dns.disablePrefetch" = true;
|
"network.dns.disablePrefetch" = true;
|
||||||
"network.prefetch-next" = false;
|
"network.prefetch-next" = false;
|
||||||
"privacy.resistFingerprinting" = true; # Note: Spoofs timezone and caps FPS to 60
|
"privacy.resistFingerprinting" = false; # Note: Spoofs timezone and caps FPS to 60
|
||||||
"privacy.trackingprotection.enabled" = true;
|
"privacy.trackingprotection.enabled" = true;
|
||||||
|
|
||||||
# --- NixOS / Hyprland Integration ---
|
# --- NixOS / Hyprland Integration ---
|
||||||
|
|||||||
@@ -4,9 +4,6 @@
|
|||||||
id,
|
id,
|
||||||
name,
|
name,
|
||||||
url,
|
url,
|
||||||
# Add default proxy parameters (can be overridden when imported)
|
|
||||||
proxyHost ? "192.168.68.70",
|
|
||||||
proxyPort ? 8888,
|
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
inherit id name;
|
inherit id name;
|
||||||
@@ -18,37 +15,32 @@
|
|||||||
extensions.force = true;
|
extensions.force = true;
|
||||||
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
ublock-origin
|
ublock-origin
|
||||||
bitwarden
|
|
||||||
tridactyl
|
|
||||||
new-tab-override
|
|
||||||
pywalfox
|
|
||||||
];
|
];
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
# --- PROXY / VPN CONFIGURATION ---
|
# --- PROXY CONFIGURATION (HTTP & HTTPS) ---
|
||||||
"network.proxy.type" = 1; # 1 = Manual proxy configuration (0 = Direct, 5 = System)
|
"network.proxy.type" = 1; # 1 = Manual proxy configuration (0 = Direct, 5 = System)
|
||||||
|
|
||||||
# SOCKS5 Proxy Settings (Recommended for VPN tunnels)
|
# HTTP Proxy Settings
|
||||||
"network.proxy.socks" = proxyHost;
|
"network.proxy.http" = myConfig.proxy.ip;
|
||||||
"network.proxy.socks_port" = proxyPort;
|
"network.proxy.http_port" = myConfig.proxy.port;
|
||||||
"network.proxy.socks_version" = 5;
|
|
||||||
|
|
||||||
# CRITICAL: Prevent DNS leaks by forcing DNS queries through the SOCKS proxy
|
# HTTPS / SSL Proxy Settings (Routing HTTPS through the same HTTP proxy)
|
||||||
"network.proxy.socks_remote_dns" = true;
|
"network.proxy.ssl" = myConfig.proxy.ip;
|
||||||
"network.proxy.proxy_over_tls" = true;
|
"network.proxy.ssl_port" = myConfig.proxy.port;
|
||||||
|
|
||||||
# Optional: If using an HTTP/HTTPS proxy instead of SOCKS5, uncomment these and comment out SOCKS above:
|
# Tell Firefox to share these settings across all protocols
|
||||||
# "network.proxy.http" = proxyHost;
|
"network.proxy.share_proxy_settings" = true;
|
||||||
# "network.proxy.http_port" = proxyPort;
|
|
||||||
# "network.proxy.ssl" = proxyHost;
|
|
||||||
# "network.proxy.ssl_port" = proxyPort;
|
|
||||||
|
|
||||||
# Define what should NOT go through the proxy (local addresses)
|
# Define what should NOT go through the proxy (local network addresses)
|
||||||
"network.proxy.no_proxies_on" = "localhost, 127.0.0.1, ::1, 192.168.0.0/16, 10.0.0.0/8";
|
"network.proxy.no_proxies_on" = "localhost, 127.0.0.1, ::1, 192.168.0.0/16, 10.0.0.0/8";
|
||||||
|
|
||||||
# Fail closed: Do NOT fall back to direct connection if the proxy fails
|
# Fail closed: Do NOT fall back to direct connection if the proxy fails or times out
|
||||||
"network.proxy.failover_timeout" = 1800;
|
"network.proxy.failover_timeout" = 1800;
|
||||||
|
|
||||||
|
# Optional: If your HTTP proxy itself is encrypted over TLS (HTTPS proxying to the server), uncomment:
|
||||||
|
# "network.proxy.proxy_over_tls" = true;
|
||||||
|
|
||||||
# --- New Tab Override ---
|
# --- New Tab Override ---
|
||||||
"extensions.newtaboverride@agenedia.com.url" = url;
|
"extensions.newtaboverride@agenedia.com.url" = url;
|
||||||
"extensions.newtaboverride@agenedia.com.type" = 1; # URL mode
|
"extensions.newtaboverride@agenedia.com.type" = 1; # URL mode
|
||||||
@@ -56,9 +48,9 @@
|
|||||||
# --- Privacy & Hardening ---
|
# --- Privacy & Hardening ---
|
||||||
"browser.contentblocking.category" = "strict";
|
"browser.contentblocking.category" = "strict";
|
||||||
"privacy.trackingprotection.enabled" = true;
|
"privacy.trackingprotection.enabled" = true;
|
||||||
"privacy.resistFingerprinting" = false; # Note: Spoofs timezone and caps FPS to 60
|
"privacy.resistFingerprinting" = true; # Note: Spoofs timezone and caps FPS to 60
|
||||||
"geo.enabled" = false;
|
"geo.enabled" = false;
|
||||||
"media.peerconnection.enabled" = false; # Prevents WebRTC IP leaks (Essential for VPN use)
|
"media.peerconnection.enabled" = false; # Prevents WebRTC IP leaks
|
||||||
"network.dns.disablePrefetch" = true;
|
"network.dns.disablePrefetch" = true;
|
||||||
"network.prefetch-next" = false;
|
"network.prefetch-next" = false;
|
||||||
|
|
||||||
@@ -97,11 +89,14 @@
|
|||||||
"browser.sessionstore.max_tabs_undo" = 0; # Disable undo close tab
|
"browser.sessionstore.max_tabs_undo" = 0; # Disable undo close tab
|
||||||
|
|
||||||
# --- DNS over HTTPS ---
|
# --- DNS over HTTPS ---
|
||||||
# Note: When using SOCKS5 remote DNS, Trr (DoH) can conflict or bypass your VPN's internal DNS.
|
# Mode 5 disables native DoH explicitly. When using an HTTP proxy, standard HTTP requests
|
||||||
# Mode 5 disables DoH explicitly so the SOCKS proxy handles all DNS resolution cleanly.
|
# send the full URI and HTTPS requests use the CONNECT method with domain names, meaning
|
||||||
|
# DNS resolution is handled directly by the proxy server without local DNS leaks.
|
||||||
"network.trr.mode" = 5;
|
"network.trr.mode" = 5;
|
||||||
|
# --- private ---
|
||||||
|
"browser.privatebrowsing.autostart" = true;
|
||||||
|
"extensions.allowPrivateBrowsingByDefault" = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Optional: Keep your userChrome block here if you want the autohide UI applied to this profile too
|
# Optional: Append your userChrome = '' ... ''; block here if needed
|
||||||
# userChrome = '' ... '';
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
"browser.contentblocking.category" = "strict";
|
"browser.contentblocking.category" = "strict";
|
||||||
"privacy.trackingprotection.enabled" = true;
|
"privacy.trackingprotection.enabled" = true;
|
||||||
"privacy.resistFingerprinting" = false; # Note: Spoofs timezone and caps FPS to 60
|
"privacy.resistFingerprinting" = false; # Note: Spoofs timezone and caps FPS to 60
|
||||||
"geo.enabled" = false;
|
"geo.enabled" = true;
|
||||||
"media.peerconnection.enabled" = false; # Prevents WebRTC IP leaks
|
"media.peerconnection.enabled" = false; # Prevents WebRTC IP leaks
|
||||||
"network.dns.disablePrefetch" = true;
|
"network.dns.disablePrefetch" = true;
|
||||||
"network.prefetch-next" = false;
|
"network.prefetch-next" = false;
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
{
|
{
|
||||||
hakase = {
|
hakase = {
|
||||||
myConfig = {
|
myConfig = {
|
||||||
|
proxy = {
|
||||||
|
ip = "192.168.68.70";
|
||||||
|
port = "8634";
|
||||||
|
};
|
||||||
font = {
|
font = {
|
||||||
monospace = "MonoLisa";
|
monospace = "MonoLisa";
|
||||||
monospaceScript = "MonoLisa Italic @ss02=1";
|
monospaceScript = "MonoLisa Italic @ss02=1";
|
||||||
|
|||||||
Reference in New Issue
Block a user