feat: massive cleanup, kctx cache
This commit is contained in:
parent
23d1e06c20
commit
a759ac8dd2
@ -34,7 +34,6 @@ export MAKEFLAGS='-j'
|
||||
|
||||
export PASSWORD_STORE_ENABLE_EXTENSIONS=true
|
||||
|
||||
export DOCKER_BUILDKIT=0
|
||||
export DOCKER_HOST="unix://$XDG_RUNTIME_DIR/podman/podman.sock"
|
||||
|
||||
export SSH_AUTH_SOCK; SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
|
||||
|
@ -1,8 +1,8 @@
|
||||
[duhayon]
|
||||
source = imaps://ange@duhayon.com@ssl0.ovh.net
|
||||
source-cred-cmd = pass show duhayoncom/ange@duhayon.com | head -n1
|
||||
source-cred-cmd = pass show email/ange@duhayon.com | head -n1
|
||||
outgoing = smtps://ange@duhayon.com@ssl0.ovh.net
|
||||
outgoing-cred-cmd = pass show duhayoncom/ange@duhayon.com | head -n1
|
||||
outgoing-cred-cmd = pass show email/ange@duhayon.com | head -n1
|
||||
default = INBOX
|
||||
from = "Ange DUHAYON" <ange@duhayon.com>
|
||||
cache-headers = true
|
||||
@ -11,9 +11,9 @@ signature-file = ~/.config/aerc/signature.txt
|
||||
|
||||
[yw5n]
|
||||
source = imaps://ange@yw5n.com@ssl0.ovh.net
|
||||
source-cred-cmd = pass show yw5ncom/ange@yw5n.com | head -n1
|
||||
source-cred-cmd = pass show email/ange@yw5n.com | head -n1
|
||||
outgoing = smtps://ange@yw5n.com@ssl0.ovh.net
|
||||
outgoing-cred-cmd = pass show yw5ncom/ange@yw5n.com | head -n1
|
||||
outgoing-cred-cmd = pass show email/ange@yw5n.com | head -n1
|
||||
default = INBOX
|
||||
from = "Ange DUHAYON" <ange@yw5n.com>
|
||||
cache-headers = true
|
||||
|
@ -1,3 +1,27 @@
|
||||
function am() {
|
||||
local name dev lsblk
|
||||
|
||||
while true; do
|
||||
mapfile -t lsblk < <(lsblk -n --paths --list | grep part)
|
||||
|
||||
COLUMNS=1
|
||||
select dev in "${lsblk[@]}"; do
|
||||
if [ -z "$dev" ]; then
|
||||
break
|
||||
fi
|
||||
name="$(awk '{print $1}' <<< "$dev")"
|
||||
|
||||
if mount | grep -q "$name"; then
|
||||
umount "$name"
|
||||
else
|
||||
cd "$(udisksctl mount -b "$name" | awk '{print $NF}')"
|
||||
return
|
||||
fi
|
||||
break
|
||||
done || return
|
||||
done
|
||||
}
|
||||
|
||||
function bat() {
|
||||
if [ -z "$1" ]; then
|
||||
return 1
|
||||
@ -17,7 +41,6 @@ function update() {
|
||||
$TERM --hold -e "$SHELL" -xc "sudo pacman -Syu && echo $'\e[32mDONE'" &
|
||||
$TERM --hold -e "$SHELL" -xc "flatpak update && echo -e $'\e[32mDONE'" &
|
||||
$TERM --hold -e "$SHELL" -xc "git --git-dir='$HOME/.dotfiles/' --work-tree='$HOME' submodule update --remote --recursive && echo $'\e[32mDONE'" &
|
||||
$TERM --hold -e "$SHELL" -xc "firefox update && echo -e $'\e[32mDONE'" &
|
||||
}
|
||||
|
||||
function tmp() {
|
||||
|
@ -32,7 +32,6 @@ compalias dk='podman' \
|
||||
dknrm='podman network rm' \
|
||||
dksys='podman system' \
|
||||
dksysdf='podman system df' \
|
||||
dksysp='podman system prune' \
|
||||
dktop='podman top' \
|
||||
dkv='podman volume' \
|
||||
dkvc='podman volume create' \
|
||||
@ -63,12 +62,12 @@ compalias dc='docker-compose' \
|
||||
function dkb() {
|
||||
local name="${1:-${PWD##*/}}"; shift
|
||||
|
||||
docker build . -t "$name" "$@"
|
||||
podman build . -t "$name" "$@"
|
||||
}
|
||||
|
||||
function dkr() {
|
||||
if [ -z "$1" ]; then
|
||||
set -- "${PWD##*/}"
|
||||
fi
|
||||
docker run -i -t "$@"
|
||||
podman run -i -t "$@"
|
||||
}
|
||||
|
@ -1,46 +1,54 @@
|
||||
function _kctxns() {
|
||||
local conf="${KUBECONFIG:-"$HOME/.kube/config"}"
|
||||
local tmp cache file="$1" func="$2"; shift 2
|
||||
|
||||
mapfile -t cache < "$file"
|
||||
if [ "$conf" -nt "$file" ]; then
|
||||
tmp="$(_"$func"_get)"
|
||||
if [ "$tmp" != "${cache[0]}" ]; then
|
||||
cache[1]="${cache[0]}"
|
||||
fi
|
||||
cache[0]="$tmp"
|
||||
echo -e "${cache[0]}\n${cache[1]}" > "$file"
|
||||
fi
|
||||
if [ -z "$1" ]; then
|
||||
echo "${cache[0]}"
|
||||
return
|
||||
fi
|
||||
if [ "$1" == - ]; then
|
||||
set -- "${cache[1]}" "${cache[0]}"
|
||||
else
|
||||
if [ "$1" == "${cache[0]}" ]; then
|
||||
return
|
||||
fi
|
||||
set -- "$1" "${cache[0]}"
|
||||
fi
|
||||
_"$func"_set "$1" || return
|
||||
echo -e "$1\n$2" > "$file"
|
||||
}
|
||||
|
||||
function _kns_get() {
|
||||
kubectl config view --minify -ojsonpath='{..namespace}'
|
||||
}
|
||||
function _kns_set() {
|
||||
if ! kubectl get namespace -oname | grep -q "^namespace/$1\$"; then
|
||||
echo "error: no namespace exists with the name: \"$1\"" >&2
|
||||
return 1
|
||||
fi
|
||||
kubectl config set-context --current --namespace "$1" > /dev/null
|
||||
echo "Switched to namespace \"$1\"."
|
||||
}
|
||||
function kns() {
|
||||
local cache="$XDG_CACHE_HOME/${FUNCNAME[0]}"
|
||||
local conf="${KUBECONFIG:-"$HOME/.kube/config"}"
|
||||
local dir="$XDG_CACHE_HOME/kns"
|
||||
|
||||
if [ "$1" == - ]; then
|
||||
echo "not implemented" >&2
|
||||
return 1
|
||||
elif [ -n "$1" ]; then
|
||||
if ! kubectl get namespace -oname | grep -q "^namespace/$1\$"; then
|
||||
echo "error: no namespace exists with the name: \"$1\"" >&2
|
||||
return 1
|
||||
fi
|
||||
kubectl config set-context --current --namespace "$1" > /dev/null
|
||||
else
|
||||
if [ "$conf" -nt "$cache" ]; then
|
||||
set -- "$(kubectl config view --minify -ojsonpath='{..namespace}')"
|
||||
else
|
||||
cat "$cache"
|
||||
return
|
||||
fi
|
||||
fi
|
||||
tee "$cache" <<< "$1"
|
||||
mkdir -p "$dir" > /dev/null
|
||||
_kctxns "$dir/$(kctx)" kns "$@"
|
||||
}
|
||||
|
||||
function kctx() {
|
||||
local cache="$XDG_CACHE_HOME/${FUNCNAME[0]}"
|
||||
local conf="${KUBECONFIG:-"$HOME/.kube/config"}"
|
||||
|
||||
if [ "$1" == - ]; then
|
||||
echo "not implemented" >&2
|
||||
return 1
|
||||
elif [ -n "$1" ]; then
|
||||
kubectl config use-context "$1" > /dev/null || return
|
||||
else
|
||||
if [ "$conf" -nt "$cache" ]; then
|
||||
set -- "$(kubectl config current-context)"
|
||||
else
|
||||
cat "$cache"
|
||||
return
|
||||
fi
|
||||
fi
|
||||
tee "$cache" <<< "$1"
|
||||
}
|
||||
function _kctx_get() { kubectl config current-context ; }
|
||||
function _kctx_set() { kubectl config use-context "$1" ; }
|
||||
# shellcheck disable=SC2120
|
||||
function kctx() { _kctxns "$XDG_CACHE_HOME/kctx" kctx "$@" ; }
|
||||
|
||||
alias kga='kubectl get "$(kubectl api-resources --verbs=list --namespaced -oname | grep -v event | paste -sd,)"' \
|
||||
kgaoname='kubectl get "$(kubectl api-resources --verbs=list --namespaced -oname | grep -v event | paste -sd,)" -oname' \
|
||||
@ -59,31 +67,22 @@ compalias k=kubectl \
|
||||
krm='kubectl delete' \
|
||||
|
||||
function _k8salias() {
|
||||
local name short
|
||||
local n s a
|
||||
|
||||
for a in "$@"; do
|
||||
name="${a#*=}" short="${a%%=*}"
|
||||
compalias "kd${short}=kubectl describe $name" \
|
||||
"kd${short}alloname=kubectl describe $name --all-namespaces -oname" \
|
||||
"kd${short}allowide=kubectl describe $name --all-namespaces -owide" \
|
||||
"kd${short}alloyaml=kubectl describe $name --all-namespaces -oyaml" \
|
||||
"kd${short}oname=kubectl describe $name -oname" \
|
||||
"kd${short}owide=kubectl describe $name -owide" \
|
||||
"kd${short}oyaml=kubectl describe $name -oyaml" \
|
||||
"kg${short}=kubectl get $name" \
|
||||
"kg${short}alloname=kubectl get $name --all-namespaces -oname" \
|
||||
"kg${short}allowide=kubectl get $name --all-namespaces -owide" \
|
||||
"kg${short}alloyaml=kubectl get $name --all-namespaces -oyaml" \
|
||||
"kg${short}oname=kubectl get $name -oname" \
|
||||
"kg${short}owide=kubectl get $name -owide" \
|
||||
"kg${short}oyaml=kubectl get $name -oyaml" \
|
||||
"krm${short}=kubectl delete $name" \
|
||||
"krm${short}alloname=kubectl delete $name --all-namespaces -oname" \
|
||||
"krm${short}allowide=kubectl delete $name --all-namespaces -owide" \
|
||||
"krm${short}alloyaml=kubectl delete $name --all-namespaces -oyaml" \
|
||||
"krm${short}oname=kubectl delete $name -oname" \
|
||||
"krm${short}owide=kubectl delete $name -owide" \
|
||||
"krm${short}oyaml=kubectl delete $name -oyaml"
|
||||
for a in '' "${@/=/= }"; do
|
||||
s="${a%%=*}" n="${a#*=}"
|
||||
compalias "kd${s}=kubectl describe$n" \
|
||||
"kg${s}=kubectl get$n" \
|
||||
"kg${s}alloname=kubectl get --all-namespaces -oname$n" \
|
||||
"kg${s}allowide=kubectl get --all-namespaces -owide$n" \
|
||||
"kg${s}alloyaml=kubectl get --all-namespaces -oyaml$n" \
|
||||
"kg${s}oname=kubectl get -oname$n" \
|
||||
"kg${s}oname=kubectl get -oname$n" \
|
||||
"kg${s}owide=kubectl get -owide$n" \
|
||||
"kg${s}owide=kubectl get -owide$n" \
|
||||
"kg${s}oyaml=kubectl get -oyaml$n" \
|
||||
"kg${s}oyaml=kubectl get -oyaml$n" \
|
||||
"krm${s}=kubectl delete$n"
|
||||
done
|
||||
}
|
||||
_k8salias cj=cronjob \
|
||||
|
@ -1,14 +1,12 @@
|
||||
# vim: tabstop=8 nowrap
|
||||
|
||||
# TODO
|
||||
https://swatchseries.is/watch-tv/watch-rick-and-morty-39480.10164145
|
||||
https://serverfault.com/questions/1150627/bind9-behind-nginx-reverse-proxy-doh/1168780#1168780
|
||||
https://www.grepular.com/Automatically_Encrypting_all_Incoming_Email
|
||||
https://www.grepular.com/Protecting_a_Laptop_from_Simple_and_Sophisticated_Attacks
|
||||
https://www.rtcsec.com/article/slack-webrtc-turn-compromise-and-bug-bounty/
|
||||
https://www.youtube.com/playlist?list=PLjAJj2LotlkOzOgp1xXJkbF73ZrQeDE7j
|
||||
https://www.bunkerity.com/fr
|
||||
https://morphaius.com/
|
||||
https://searx.yw5n.com:30903/
|
||||
|
||||
comm/discord https://discord.com/app
|
||||
comm/whatsapp https://web.whatsapp.com
|
||||
@ -94,3 +92,4 @@ tools/win/msmgtoolkit https://msmgtoolkit.in
|
||||
tools/win/office https://answers.microsoft.com/en-us/msoffice/forum/all/useful-microsoft-download-links-for-office-direct/7bcaa971-9493-44b6-a1ba-0db4c6957c47
|
||||
tools/win/server https://www.microsoft.com/en-us/evalcenter/download-windows-server-2025
|
||||
tools/win/snappydriver http://www.snappy-driver-installer.org
|
||||
tools/z-library https://z-library.sk
|
||||
|
@ -22,7 +22,6 @@ https://github.com/qbittorrent/qBittorrent/tags.atom "qBittorrent" < item-rule
|
||||
https://github.com/searxng/searxng/commits/master.atom "SearXNG"
|
||||
https://github.com/element-hq/synapse/releases.atom "Synapse" < item-rule "title NOT LIKE '%rc%'"
|
||||
https://github.com/ventoy/Ventoy/releases.atom "Ventoy"
|
||||
|
||||
@ K8S
|
||||
https://github.com/kubernetes/kubernetes/releases.atom "Kubernetes" < item-rule "title NOT LIKE '%-rc._' AND title NOT LIKE '%-alpha._' AND title NOT LIKE '%-beta._'"
|
||||
https://github.com/cert-manager/cert-manager/releases.atom "cert-manager" < item-rule "title NOT LIKE 'cmd/ctl/%' AND title NOT LIKE '%-alpha._' AND title NOT LIKE '%-beta._'"
|
||||
|
1
.config/nvim/ftplugin/ldif.lua
Symbolic link
1
.config/nvim/ftplugin/ldif.lua
Symbolic link
@ -0,0 +1 @@
|
||||
json.lua
|
@ -23,6 +23,8 @@ vim.g.netrw_list_hide = "\\.o$,\\.d$,\\.gc..$"
|
||||
vim.opt.lazyredraw = true
|
||||
vim.opt.complete = vim.o.complete .. ",i"
|
||||
|
||||
vim.g.go_recommended_style = 0
|
||||
|
||||
require"theme"
|
||||
require"pack-lspconfig"
|
||||
require"pack-telescope"
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 814f102cd1da3dc78c7d2f20f2ef3ed3cdf0e6e4
|
||||
Subproject commit a4ed82509cecc56df1c7138920a1aeaf246c0ac5
|
@ -1 +1 @@
|
||||
Subproject commit f0ff9f0e5dab10123d3192b12556aa8f88859790
|
||||
Subproject commit 523a9e148919f58eb5a013f76787e57696e00c93
|
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -19,6 +19,3 @@
|
||||
[submodule ".local/aur/sparrow"]
|
||||
path = .local/aur/sparrow
|
||||
url = https://aur.archlinux.org/sparrow-wallet.git
|
||||
[submodule ".local/aur/waydroid"]
|
||||
path = .local/aur/waydroid
|
||||
url = https://aur.archlinux.org/waydroid.git
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit be787ffa4852e27b1079866f615aa7d22801c01d
|
||||
Subproject commit 0e935562f6c6931e809321374860c4bba74d297a
|
@ -1 +1 @@
|
||||
Subproject commit b990349ef3384459b1879d3b535433a95c9af904
|
||||
Subproject commit 582b5504e110b0c21310eb7814b14633f64684d8
|
@ -1 +0,0 @@
|
||||
Subproject commit d19d5823400fc065a3b0ea9bb1eb8b7cc9cb5e12
|
@ -1,20 +0,0 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
while true; do
|
||||
mapfile -t LSBLK < <(lsblk -n --paths --list | grep part)
|
||||
|
||||
COLUMNS=1
|
||||
select dev in "${LSBLK[@]}"; do
|
||||
if [ -z "$dev" ]; then
|
||||
break
|
||||
fi
|
||||
name="$(awk '{print $1}' <<< "$dev")"
|
||||
|
||||
if mount | grep -q "$name"; then
|
||||
umount "$name"
|
||||
else
|
||||
udisksctl mount -b "$name" > /dev/null
|
||||
fi
|
||||
break
|
||||
done || exit
|
||||
done
|
@ -1,5 +1,4 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
shopt -s extglob
|
||||
|
||||
if [ "$1" = -p ]; then
|
||||
|
@ -1,5 +1,10 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
if [ -z "$1" ] || [ -z "$2" ]; then
|
||||
echo "USAGE: $(basename "${BASH_SOURCE[0]}") in out [smallside]" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
in="$1"; shift
|
||||
out="$1"; shift
|
||||
smallside="${1:-720}"; shift || true
|
||||
@ -9,10 +14,6 @@ if ! [ -r "$in" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$out" ]; then
|
||||
echo "error: output file name can't be empty" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -x
|
||||
#ffmpeg -i "$in" -r 24 -vcodec libx265 -vf "scale=-2:$smallside,setpts=0.5*PTS" "$@" "$out"
|
||||
|
@ -3,7 +3,6 @@
|
||||
sites=(
|
||||
'https://discord.com'
|
||||
'https://gmoker.com'
|
||||
'https://linkedin.com'
|
||||
'https://login.microsoftonline.com'
|
||||
'https://maby.dev'
|
||||
'https://web.whatsapp.com'
|
||||
|
123
.local/bin/sbar
123
.local/bin/sbar
@ -3,29 +3,24 @@
|
||||
function update_crypto() {
|
||||
local c
|
||||
|
||||
c="$(crypto 2> /dev/null)" && crypto="$c"
|
||||
c="$(crypto 2> /dev/null)" && echo "$c" > "$SBAR/crypto"
|
||||
}
|
||||
|
||||
function update_cpu() {
|
||||
cpu=" $(awk '{print $1}' /proc/loadavg)"
|
||||
echo " $(awk '{print $1}' /proc/loadavg)" > "$SBAR/cpu"
|
||||
}
|
||||
|
||||
function update_memory() {
|
||||
memory=" $(free -h | awk '/^Mem:/{print $3}')"
|
||||
echo " $(free -h | awk '/^Mem:/{print $3}')" > "$SBAR/memory"
|
||||
}
|
||||
|
||||
function update_bat() {
|
||||
local dir cap
|
||||
local cap; cap="$(cat /sys/class/power_supply/BAT0/capacity)"
|
||||
|
||||
dir='/sys/class/power_supply/BAT0'
|
||||
cap="$(cat "$dir/capacity")"
|
||||
if grep -qv Discharging "$dir/status"; then
|
||||
bat=" $cap%"
|
||||
elif [ "$cap" -gt 80 ]; then bat=" $cap%"
|
||||
elif [ "$cap" -gt 60 ]; then bat=" $cap%"
|
||||
elif [ "$cap" -gt 40 ]; then bat=" $cap%"
|
||||
elif [ "$cap" -gt 20 ]; then bat=" $cap%"
|
||||
else bat=" $cap%"
|
||||
if grep -qv Discharging /sys/class/power_supply/BAT0/status; then
|
||||
echo " $cap%" > "$SBAR/bat"
|
||||
else
|
||||
echo " $cap%" > "$SBAR/bat"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -33,11 +28,10 @@ function update_sink_vol() {
|
||||
local vol mute
|
||||
|
||||
read -r _ vol mute < <(wpctl get-volume '@DEFAULT_AUDIO_SINK@') || return
|
||||
vol=$((10#${vol/./}))
|
||||
if [ -n "$mute" ]; then sink_vol='🔇'
|
||||
elif [ "$vol" -gt 67 ]; then sink_vol=" $vol"
|
||||
elif [ "$vol" -gt 33 ]; then sink_vol=" $vol"
|
||||
else sink_vol=" $vol"
|
||||
if [ -n "$mute" ]; then
|
||||
echo '🔇' > "$SBAR/sink"
|
||||
else
|
||||
echo " $((10#${vol/./}))" > "$SBAR/sink"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -45,9 +39,10 @@ function update_source_vol() {
|
||||
local vol mute
|
||||
|
||||
read -r _ vol mute < <(wpctl get-volume '@DEFAULT_AUDIO_SOURCE@') || return
|
||||
vol=$((10#${vol/./}))
|
||||
if [ -n "$mute" ]; then source_vol='🔇'
|
||||
else source_vol=" $vol"
|
||||
if [ -n "$mute" ]; then
|
||||
echo '' > "$SBAR/source"
|
||||
else
|
||||
echo " $((10#${vol/./}))" > "$SBAR/source"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -58,20 +53,20 @@ function update_net() {
|
||||
j="$(networkctl status "$dev" --json=short)"
|
||||
case "$(jq -r .Type <<< "$j")" in
|
||||
ether)
|
||||
net="🌐 $dev"
|
||||
echo "🌐 $dev" > "$SBAR/net"
|
||||
;;
|
||||
wlan)
|
||||
ssid="$(jq -r .SSID <<< "$j")"
|
||||
sig="$(awk "/$dev/{printf \"%.0f\", \$3}" /proc/net/wireless)"
|
||||
if [ "$sig" -gt 56 ]; then net="▂▄▆█ $ssid"
|
||||
elif [ "$sig" -gt 38 ]; then net="▂▄▆_ $ssid"
|
||||
elif [ "$sig" -gt 21 ]; then net="▂▄__ $ssid"
|
||||
elif [ "$sig" -gt 3 ]; then net="▂___ $ssid"
|
||||
else net="____ $ssid"
|
||||
if [ "$sig" -gt 56 ]; then echo "▂▄▆█ $ssid" > "$SBAR/net"
|
||||
elif [ "$sig" -gt 38 ]; then echo "▂▄▆_ $ssid" > "$SBAR/net"
|
||||
elif [ "$sig" -gt 21 ]; then echo "▂▄__ $ssid" > "$SBAR/net"
|
||||
elif [ "$sig" -gt 3 ]; then echo "▂___ $ssid" > "$SBAR/net"
|
||||
else echo "____ $ssid" > "$SBAR/net"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
net='⚠'
|
||||
echo '⚠' > "$SBAR/net"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
@ -79,58 +74,54 @@ function update_net() {
|
||||
function update_vpn() {
|
||||
local v; v="$(ip -br link show type wireguard | awk '{print $1}')"
|
||||
|
||||
if [ -n "$v" ]; then vpn=" 🔒 $v"
|
||||
else vpn=
|
||||
if [ -n "$v" ]; then
|
||||
echo " 🔒 $v" > "$SBAR/vpn"
|
||||
else
|
||||
: > "$SBAR/vpn"
|
||||
fi
|
||||
}
|
||||
|
||||
function update_time() {
|
||||
time="$(TZ=Asia/Makassar date '+%R %Z') - $(date -u '+%a %m-%d %R')"
|
||||
}
|
||||
|
||||
function reload() {
|
||||
sec=0
|
||||
echo "$(TZ=Asia/Makassar date '+%R %Z') - $(date -u '+%a %m-%d %R')" \
|
||||
> "$SBAR/time"
|
||||
}
|
||||
|
||||
function display() {
|
||||
"${DISPLAYCMD[@]}" "$crypto | $cpu | $memory | $sink_vol $source_vol | $net$vpn | $bat | $time"
|
||||
for f in "$SBAR"/*; do
|
||||
local "$(basename "$f")"="$(cat "$f")"
|
||||
done
|
||||
# shellcheck disable=SC2154
|
||||
xsetroot -name "$crypto | $cpu | $memory | $sink $source | $net$vpn | $bat | $time"
|
||||
}
|
||||
|
||||
if [ "$XDG_SESSION_TYPE" = wayland ]; then
|
||||
DISPLAYCMD=(echo)
|
||||
else
|
||||
DISPLAYCMD=(xsetroot -name)
|
||||
fi
|
||||
|
||||
# SIGNALING
|
||||
# trap '<function>;display;wait' 'RTMIN+n'
|
||||
trap 'reload' 'RTMIN'
|
||||
trap 'update_sink_vol;display;wait' 'RTMIN+1'
|
||||
trap 'update_source_vol;display;wait' 'RTMIN+2'
|
||||
trap 'update_net;display;wait' 'RTMIN+3'
|
||||
trap 'update_vpn;display;wait' 'RTMIN+4'
|
||||
# trap '<function>;display;wait -n' 'RTMIN+n'
|
||||
trap 'update_sink_vol;display;wait -n' 'RTMIN+0'
|
||||
trap 'update_source_vol;display;wait -n' 'RTMIN+1'
|
||||
trap 'update_net;display;wait -n' 'RTMIN+2'
|
||||
trap 'update_vpn;display;wait -n' 'RTMIN+3'
|
||||
# to update it from external commands
|
||||
## kill -m "$(cat "$XDG_CACHE_HOME/pidofbar")"
|
||||
# where m = 34 + n
|
||||
|
||||
echo "$$" > "$XDG_CACHE_HOME/pidofbar"
|
||||
SBAR="$XDG_CACHE_HOME/sbar"
|
||||
mkdir -p "$SBAR"
|
||||
echo "$$" > "$SBAR/pid"
|
||||
|
||||
(while :; do
|
||||
update_crypto
|
||||
sleep $((300 - 10#$(date '+%S') % 300)) & wait -n
|
||||
done &)
|
||||
|
||||
sec=0
|
||||
while true; do
|
||||
if [ $((sec % 300)) -eq 5 ]; then
|
||||
update_crypto
|
||||
fi
|
||||
if [ $((sec % 5)) -eq 0 ]; then
|
||||
update_cpu
|
||||
update_memory
|
||||
update_sink_vol
|
||||
update_source_vol
|
||||
update_net
|
||||
update_vpn
|
||||
update_bat
|
||||
update_time
|
||||
display
|
||||
fi
|
||||
((sec += 5))
|
||||
sleep $((5 - 10#$(date '+%S') % 5)) & wait
|
||||
update_cpu
|
||||
update_memory
|
||||
update_sink_vol
|
||||
update_source_vol
|
||||
update_net
|
||||
update_vpn
|
||||
update_bat
|
||||
update_time
|
||||
display
|
||||
sleep $((5 - 10#$(date '+%S') % 5)) & wait -n
|
||||
done
|
||||
|
@ -3,11 +3,11 @@
|
||||
case "$1" in
|
||||
s)
|
||||
DEV='@DEFAULT_AUDIO_SINK@'
|
||||
SIG=35
|
||||
SIG=34
|
||||
;;
|
||||
m)
|
||||
DEV='@DEFAULT_AUDIO_SOURCE@'
|
||||
SIG=36
|
||||
SIG=35
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
@ -33,7 +33,7 @@ function update_vol() {
|
||||
}
|
||||
|
||||
read -r _ CUR MUTE < <(wpctl get-volume "$DEV")
|
||||
CUR=$(("10#${CUR/./}"))
|
||||
CUR=$((10#${CUR/./}))
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "$CUR"
|
||||
@ -49,4 +49,4 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
kill "-$SIG" "$(cat "$XDG_CACHE_HOME/pidofbar")"
|
||||
kill "-$SIG" "$(cat "$XDG_CACHE_HOME/sbar/pid")"
|
||||
|
@ -13,16 +13,15 @@ if [ "$EUID" != 0 ]; then
|
||||
XDG_CACHE_HOME="$XDG_CACHE_HOME" "$BASH" -- "${BASH_SOURCE[0]}" "$@"
|
||||
fi
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
set -- "$(basename -s.conf /etc/wireguard/*.conf | "$DMENU")"
|
||||
if [ "$1" != off ]; then
|
||||
set -- "$(basename -s.conf "/etc/wireguard/$1"*.conf | "$DMENU")"
|
||||
if ! wg | grep -q "$1"; then
|
||||
wg-quick up "$1"
|
||||
fi
|
||||
fi
|
||||
|
||||
while read -r i; do
|
||||
wg-quick down "$i"
|
||||
done < <(wg show interfaces)
|
||||
done < <(ip -br link show type wireguard | awk "\$1 != \"$1\"{print \$1}")
|
||||
|
||||
if [ "$1" != off ]; then
|
||||
wg-quick up "$1"
|
||||
fi
|
||||
|
||||
kill -38 "$(cat "$XDG_CACHE_HOME/pidofbar")"
|
||||
kill -37 "$(cat "$XDG_CACHE_HOME/sbar/pid")"
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
iwctl=(iwctl station "$(find /sys/class/net/wlan* -print -quit)")
|
||||
iwctl=(iwctl station "$(find /sys/class/net/wlan* -printf '%f' -quit)")
|
||||
|
||||
rfkill unblock wlan
|
||||
if ! "${iwctl[@]}" show | grep -q 'Scanning\s\+yes'; then
|
||||
@ -9,7 +9,7 @@ fi
|
||||
|
||||
for _ in {0..29}; do
|
||||
if "${iwctl[@]}" show | grep -q '\s*State\s\+connected\s*$'; then
|
||||
kill -37 "$(cat "$XDG_CACHE_HOME/pidofbar")"
|
||||
kill -36 "$(cat "$XDG_CACHE_HOME/sbar/pid")"
|
||||
exit 0
|
||||
fi
|
||||
sleep 1
|
||||
|
@ -1,17 +1,21 @@
|
||||
# vim: nowrap
|
||||
git.gmoker.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDgTtgsVL6fT12EJXUtuGfQra/jG8411Bm8n0kxqt+z8ELNSmaAXMQ5J9WZpK96fU1EaOwBRYJr885Cj7z9hjNkyadbO058huleEI5my91Vtk9lsB1DpdjG1V07uvPyOqrxy2dk/BtRzvzTUrf3B1oAnNJu6ntz73c7t2IiEfsm6z8KqTOKtgbU6D7BnskovVSRP3lS1phSFjzJWKfkGfxyQlOVH/woTSp5G4cYDI6pz+aG3ideHaWE6Ls8yC+76KbVjnUAPHCGk4zUWrqCp2iVVek+13hl7oyp3fwSOIyGzW+x6288PvAgkVTmgRBuTU0VXUgjxJImVAqZFqz0h9X44F2y2quBRXra0f8NXb5uPID1jmP73dudJC3wXie/QW+aQTF6rKAVq750HseQum7HZoD+s8Qg8t1ROxyVqYkes35JjblkRm1+Mips1mZozjwYuAsX8P24z/u2R07Y1fACYr0gX4iIGQSU+ie42n1/33xK2W1HGb4zrsu3RptxQp2rpNsYZ+9NO3VWqaWUbhIyFfyd+jEh8tzCbUvRySSmK5kTSGzTU07flhLehqgKWeWiI+Q4xrg0SLpLLFZJKHc0+935xD9jRNW+FXhOU1ud7nUCRnBlvo0Wp/yKjcU1ycJKt7cmaAwprHGg5KnOAzszAvRVMWAzw6ICyTQmTSY/fQ==
|
||||
git.maby.dev ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCy6Vljjd9lVRmXjwhxuRopFTALb18I1rVzeyr8X6g1BIvl8PE8EBBeWgJ673pmzdA1KMFbJ5uMah5Cz5oqeXJi/cqneKW5sFiIlRB+/epOGPBHbfDNQOsv+vR1qt+N++SjuP59E2846JEM5G7380eb4iOTSzkPwgv4zEPIIWYzMO4jmHytrsmKU7mKOqbaRYXAc9pqJBJ3K0uvsCBSydCVwICv6ykfex+kPyBxU2o52NgHvrq7vgn4eREy1Fnt4HG8GT46/3H48HOr6zbB43sS3JiMxVNWK2YU3IBGeuo5PMkUBzuWx/GB33W5Pc2GTARoW11T63SZ/EBlJQyRozwD4UzJkJJRtYn//WZLimz9KFMV50Wc9o+Lcfz/xshTfgCn0B9rac1XzsBjJ0riMqyx+6UWjizrrtJtkhhEfobKcws1wRi/I+lWJM08th8DKUMKT599CjjiESFqX1QvfABYt56FDDORskYZRLi2AYeIPsLmLYxmjh9NVu3CcNNPsFmu2xqCWp5Symd6DMSpzejnwL0rWdm1kdPBLLRaOnp/EmwaRVFt98K4XaFA7hHd10NxAoQlG50yUfTo0fsngedpWYKwMsLjatgozjoB6eQAxkVGs4MaGgSwYyn5jrmYnFeAzLPCWL6kzd4dmnvrDi2SCcOWRL0+LNF1ltOw/+U7sw==
|
||||
github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
|
||||
github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
|
||||
github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
|
||||
git.gmoker.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDgTtgsVL6fT12EJXUtuGfQra/jG8411Bm8n0kxqt+z8ELNSmaAXMQ5J9WZpK96fU1EaOwBRYJr885Cj7z9hjNkyadbO058huleEI5my91Vtk9lsB1DpdjG1V07uvPyOqrxy2dk/BtRzvzTUrf3B1oAnNJu6ntz73c7t2IiEfsm6z8KqTOKtgbU6D7BnskovVSRP3lS1phSFjzJWKfkGfxyQlOVH/woTSp5G4cYDI6pz+aG3ideHaWE6Ls8yC+76KbVjnUAPHCGk4zUWrqCp2iVVek+13hl7oyp3fwSOIyGzW+x6288PvAgkVTmgRBuTU0VXUgjxJImVAqZFqz0h9X44F2y2quBRXra0f8NXb5uPID1jmP73dudJC3wXie/QW+aQTF6rKAVq750HseQum7HZoD+s8Qg8t1ROxyVqYkes35JjblkRm1+Mips1mZozjwYuAsX8P24z/u2R07Y1fACYr0gX4iIGQSU+ie42n1/33xK2W1HGb4zrsu3RptxQp2rpNsYZ+9NO3VWqaWUbhIyFfyd+jEh8tzCbUvRySSmK5kTSGzTU07flhLehqgKWeWiI+Q4xrg0SLpLLFZJKHc0+935xD9jRNW+FXhOU1ud7nUCRnBlvo0Wp/yKjcU1ycJKt7cmaAwprHGg5KnOAzszAvRVMWAzw6ICyTQmTSY/fQ==
|
||||
git.maby.dev ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCy6Vljjd9lVRmXjwhxuRopFTALb18I1rVzeyr8X6g1BIvl8PE8EBBeWgJ673pmzdA1KMFbJ5uMah5Cz5oqeXJi/cqneKW5sFiIlRB+/epOGPBHbfDNQOsv+vR1qt+N++SjuP59E2846JEM5G7380eb4iOTSzkPwgv4zEPIIWYzMO4jmHytrsmKU7mKOqbaRYXAc9pqJBJ3K0uvsCBSydCVwICv6ykfex+kPyBxU2o52NgHvrq7vgn4eREy1Fnt4HG8GT46/3H48HOr6zbB43sS3JiMxVNWK2YU3IBGeuo5PMkUBzuWx/GB33W5Pc2GTARoW11T63SZ/EBlJQyRozwD4UzJkJJRtYn//WZLimz9KFMV50Wc9o+Lcfz/xshTfgCn0B9rac1XzsBjJ0riMqyx+6UWjizrrtJtkhhEfobKcws1wRi/I+lWJM08th8DKUMKT599CjjiESFqX1QvfABYt56FDDORskYZRLi2AYeIPsLmLYxmjh9NVu3CcNNPsFmu2xqCWp5Symd6DMSpzejnwL0rWdm1kdPBLLRaOnp/EmwaRVFt98K4XaFA7hHd10NxAoQlG50yUfTo0fsngedpWYKwMsLjatgozjoB6eQAxkVGs4MaGgSwYyn5jrmYnFeAzLPCWL6kzd4dmnvrDi2SCcOWRL0+LNF1ltOw/+U7sw==
|
||||
github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
|
||||
github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
|
||||
github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
|
||||
gmk-agn-k3s10.gmoker.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBg/Q1LaxJETYLM3OQ4Af3FOSIjNdGuuW+E9N1Myo+eTDcXFCiMntpabaa4892h6iir83ipWxHfcWPysGAjg9HA=
|
||||
gmk-agn-k3s10.gmoker.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEG8qbky30YMixmAkSHKaw0YdFkqB38pFRg/SyYT5rcE
|
||||
gmk-agn-k3s10.gmoker.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCe0XtLIv+dXyYuTex6PPDOwKG9FVwWi8XvcERb6IRKE+yLHWYip3tCA0gC+WZ8OpiA1DrcKmPpKq8QBHanH4sxyVK1i/RjM0ZfxyXDJ+mpX/qYFsJKq36HlGs7nsFtJhyeK+vvwjeNRkTgT2IF5NjvzPlju30vbBlNsewIO6wN2iA3Ae2DwxKkYI7IkKXVSfcoNSbUUkIwFwoLDLCVsmUXojeWgZdiKfv64tiLKiwkiRSolPRmKNDi9jS9R+d9J0u8XksfSJzDbGbk3O+S4lLltfsYXw+ONoXxQW9xmsOt/tU0EssiYaN1I0fS1fq4a1R4/KSjG3qVOs1ty4M5zyCkbmlQnbsJNGdA9x3WvyURcw6cNnnI2KQhkmNesw8r8XTvXOXc7Oh0pTRa4+azL89gjTCqKj3ijdwOyqo6PtwobHa175F1sC3SkRwPD9cpzz7ls+vwyctEvNR/cbO3W6sht0sTbNN2gbZnIi485KuYBTB8zFW+79hhbIjIyZesD/s=
|
||||
gmk-gra-k3s10.gmoker.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFVue2qHONB78l8dSSx401QhJS2ShXIxidG6oRyGQ9zcPzx0usC+jeT8vtTV0od4qPDFKBgmvS1oP3AXRcACaFQ=
|
||||
gmk-gra-k3s10.gmoker.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKO5Li+9f7j6xtxwWgES2KKTjUErcOdEcsczQ+m5aDQ2
|
||||
gmk-gra-k3s10.gmoker.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCcnkKy7wvuSLqKd2NI3KYkpZyF5KbitCcfO7oJufgFeBzvnSHT7ZUifCvgmoa/0B3r+zsxpiq2MrCFqEUkLF7d2NUpM2Yi7ymq9Txt/2idk3o3sGyQ1dZTVqY0Qv6eCW3jCUCHnw8glDPku03/uh1Yycvl/ytamn3JJXYkzeG1KsTDuIUdNoM7JTPBBpaWKzWtqWkbmRIzY687bTWMjOp/jhnblaqqdNUA6FPP6mwBOlmfhA+vyK1Vj6TXVkHUrVURBLyrS69ED74+jUjMCpEimb/NlXJVf7S2403FNeykpHmRkVWYyCBJ5r3yGYZGZARuGk/gyCL3xyWzYTc1PIENvoV8mHjYKyxAGkSLKkokuIoofpq4G4z/vIfAT3n7UufnFo8zrj5tZpIWmZmFbfkYsS3gYONoBu+O17jTSIiISHGeEd9ChXETuyicD3LCcGtXgbfl6huW6HsjsrQK54gVa53nsYnAeGgnD8hwTIKtdo4FcdUYY6wBK1WdZY2NpV8=
|
||||
gmk-gra-k8s10.gmoker.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFw3zNFkiL2zyHqzYKGSdRoDidexlF67lRw2/ziBxbL2bKpknzmLFmkX/so4NLfRoL3l7KBPerpgEB/QgEmDx/4=
|
||||
gmk-gra-k8s10.gmoker.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPmeHCzrppCRHwRWhK6PEpbA0t76dDB7BACyFEM3557E
|
||||
gmk-gra-k8s10.gmoker.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDNeYdgb3xb/QTlATNtkxkr8WryMlSCYpTVHesapzNOJwCrqCErxFehsb3PYLgWAKrvMJTyabj3J3EBwDlwhy1a+2XHUjJE++bdYPj4UhRGziUVcLeKhz/cMiK5DCqeE7PqE5WdinMou0+wQByDKjjzBs3vrtjW9/2YYRIECHUbYiN+4AmPAtDko+ya9/Omc3XB78WeFs/DOIdm+k7r/T8R/zhgVExfg5QxBr6/CZHeheQ9x/sqWtHsGcrcBhLLfupri2jTFcL6IAIoRigC+OQvJpx7DmkyZidGX6i/bMxaj+4cItLDNVE8zyetRFR+BiC7YZKr/Osv7Ggfe/UWBYJEFNpSPzh18hromzhQcLPeJeaj0e53SdUTkoMpqVRD+9f8Ur1cYDLnpX5pZVBmcd/TejOVGXezMvZsKRscksGn8kkKPclP7GfwgUCFR8bUQO4ZXCIkI8a4yUCmHv/lwsN9msSEnptGwois8GyMcXCQ2PGHeooM3k0SfVyNQRr1zWM=
|
||||
maby-agn-001.maby.dev ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBApovEYSJC9rvvf/eKkCK2X5A5jPJ8IXL8ARTph1AFK/vk3fg0dALJPhhPNIYkByM3p0sjv8oDj7SDkcqXaTJI=
|
||||
maby-agn-001.maby.dev ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIiwLJZj0vkh1TXzvnTbhXN69ZieiGyT0MhElqcfE4gi
|
||||
maby-agn-001.maby.dev ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCiVxPl8ViIk1uKazSup2UDljaqJNcV8rIM/SP6ob78NIeP0xcc4YW3sa4g77k+yblyUdow//bMoSztkiqyigH/6PVtK3SJYmCWp7NjwSdaFY7p8nsAGYN25zOLJNAgRh8/n2NSK8PGmYgJ23WNMAzUx+PeLCcOia75IpzE8kKGXxh9FQ2f/fdMIn1n9RBmfx41MRSx+8NBzcc9uEZslyGkKack/1360cEhoqKKw2EloIAAo7wet9uXejW3c+sxmZ4OCcKvbMKsybPT9IcEgl+Boq8ny/GYwd393PDv155BszUrKZjwkRtQWXp6bET8UNGx+NAdGHoQZZ+Dmt2ZvQtM0GmLWOU8zriNWIKsAEpRpJqOsiQVkUqtBOpKLR6+IaW0Z9PklWqwIk1IRWCulsyXpmcdGsXXzDLiOA2qEsY2C1bh7uynkD9oQVj/FFWATV2WgHuSEAfY11Cv9t8d+Yq/0xox5Qv07hhhvBR15tGSkJ4jVgLov++nru0tb5DNbk8=
|
||||
maby-rbx-10.maby.dev ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDo8ghj94fc7ZDqtFCteCZvGKXxAgyr8weVVBhMgn/jrn+E7lhKwnAYHBO4A8RkOk0ZpzmPgzUmjF/NVEtCtmCI=
|
||||
maby-rbx-10.maby.dev ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMRBXBjej1iFEPX/J9lDYG5PKPSq6eaUefz9vkR/N53f
|
||||
maby-rbx-10.maby.dev ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCNmPM49diEYdiEXEPXykcXMyWp+lvUav7GvJ9WZ8S9M8P65Cs8x2cEliKcxS8/73zOYe2cMMTHQflFsu7PGMxyYSUCtFyH0tHPoWdy4GqCTUhoGOeW7mEZr3TBSC/ie/kEXpLgFk3v9xQVm18Hj7UBDEWHqQhpXNrzH2vwGksYdxDYQ51gGEcf5oaVauFRPa50ZpQDHiQ18hNwoE+SlkBcoSuAddXxg7PYZbgKHpWL1HXU+qYFbCY8rtHuTgkSQYCw6RCPyp7euZKzxM8oOgZkK+V6LqwXn/rBuHIaFR8+RJO+bL9iBwnOW5C3qEGI1PZ2Nf5FtXwVFuMtEX7DSQfxFfyZbfKY7Nr+yv1x4vMJiaa8/Ds30aG4FPYuYsG9GTk6ibhCqTl1UjXEJrbi+Ps7a0yUJVYn1AqTs0BhNEwJVzMuhVaYzy28cNPmKHp0vhymSMWxjL0evaZYn9bsGr87GVwYmnmA/aJKFAZK1cH6r0kBfSfOPjzPwNiaCywZQc8=
|
||||
wg.yw5n.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNL6/GXyFdQl0pJxc5V7DssrAQNYVLjA/bQyP29a7McxxHUQvOnDm+4+GNDV0vX4tERBLXk5KfpdLtRIsrkFn9o=
|
||||
wg.yw5n.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBTqzAcx3b60/DRQxdQtrBCPr4IV5Yy2bT+MDICM/t4S
|
||||
gmk-gra-k8s10.gmoker.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPmeHCzrppCRHwRWhK6PEpbA0t76dDB7BACyFEM3557E
|
||||
gmk-gra-k8s10.gmoker.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDNeYdgb3xb/QTlATNtkxkr8WryMlSCYpTVHesapzNOJwCrqCErxFehsb3PYLgWAKrvMJTyabj3J3EBwDlwhy1a+2XHUjJE++bdYPj4UhRGziUVcLeKhz/cMiK5DCqeE7PqE5WdinMou0+wQByDKjjzBs3vrtjW9/2YYRIECHUbYiN+4AmPAtDko+ya9/Omc3XB78WeFs/DOIdm+k7r/T8R/zhgVExfg5QxBr6/CZHeheQ9x/sqWtHsGcrcBhLLfupri2jTFcL6IAIoRigC+OQvJpx7DmkyZidGX6i/bMxaj+4cItLDNVE8zyetRFR+BiC7YZKr/Osv7Ggfe/UWBYJEFNpSPzh18hromzhQcLPeJeaj0e53SdUTkoMpqVRD+9f8Ur1cYDLnpX5pZVBmcd/TejOVGXezMvZsKRscksGn8kkKPclP7GfwgUCFR8bUQO4ZXCIkI8a4yUCmHv/lwsN9msSEnptGwois8GyMcXCQ2PGHeooM3k0SfVyNQRr1zWM=
|
||||
maby-rbx-10.maby.dev ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDo8ghj94fc7ZDqtFCteCZvGKXxAgyr8weVVBhMgn/jrn+E7lhKwnAYHBO4A8RkOk0ZpzmPgzUmjF/NVEtCtmCI=
|
||||
maby-rbx-10.maby.dev ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMRBXBjej1iFEPX/J9lDYG5PKPSq6eaUefz9vkR/N53f
|
||||
maby-rbx-10.maby.dev ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCNmPM49diEYdiEXEPXykcXMyWp+lvUav7GvJ9WZ8S9M8P65Cs8x2cEliKcxS8/73zOYe2cMMTHQflFsu7PGMxyYSUCtFyH0tHPoWdy4GqCTUhoGOeW7mEZr3TBSC/ie/kEXpLgFk3v9xQVm18Hj7UBDEWHqQhpXNrzH2vwGksYdxDYQ51gGEcf5oaVauFRPa50ZpQDHiQ18hNwoE+SlkBcoSuAddXxg7PYZbgKHpWL1HXU+qYFbCY8rtHuTgkSQYCw6RCPyp7euZKzxM8oOgZkK+V6LqwXn/rBuHIaFR8+RJO+bL9iBwnOW5C3qEGI1PZ2Nf5FtXwVFuMtEX7DSQfxFfyZbfKY7Nr+yv1x4vMJiaa8/Ds30aG4FPYuYsG9GTk6ibhCqTl1UjXEJrbi+Ps7a0yUJVYn1AqTs0BhNEwJVzMuhVaYzy28cNPmKHp0vhymSMWxjL0evaZYn9bsGr87GVwYmnmA/aJKFAZK1cH6r0kBfSfOPjzPwNiaCywZQc8=
|
||||
wg.yw5n.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNL6/GXyFdQl0pJxc5V7DssrAQNYVLjA/bQyP29a7McxxHUQvOnDm+4+GNDV0vX4tERBLXk5KfpdLtRIsrkFn9o=
|
||||
wg.yw5n.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBTqzAcx3b60/DRQxdQtrBCPr4IV5Yy2bT+MDICM/t4S
|
||||
wg.yw5n.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCh4CPf/3FZzFtJiSW8eSDc9mqjAkadyqYt7lZowIJnFhU663Jsqk6KeS9oHmfSYw43da0eTxxPWACAA7gptHcEqiOqyi6qQc90YL9oPQv8gxPoPl09e5Eawj7qKdkA/1hsY4kZ615P5GN1eX8hBsDczax5ta0m45YhSzsEfEk5aKQlZEO0wF1KzVdmrfgtvdERVJOkWZTua7IqgYLWI6OaPgBWJN0+GXPXVUCF1cb93ffFOboPguYWbRvZbNGjW0q2NbOfKWxon6lfBJ1RSbZBb5vYOEeKY0Wl2X1bBCOLbqNjgs40qenEA7+xhoobWCfRnW2mBYoIhRuO+IfOSAecsWUxbNUCP108GCIYHNxtK1ixVQMrH7BvTXogrkIZ3Y8W7PoDhy27jJme1ZEa2a/nJC/6ZVnfKuyFnBauHcQwOMw0ASsVPDWnSV0X69bhz5FN8wQ2ZcSnEcgh8wb7M01Ld9zlS57xDaL2PFk7hNdRprm+iVZpEUN2QoGreStNQ3E=
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******
|
||||
* name: arkenfox user.js
|
||||
* date: 13 January 2025
|
||||
* version: 133
|
||||
* date: 6 March 2025
|
||||
* version: 135
|
||||
* urls: https://github.com/arkenfox/user.js [repo]
|
||||
* : https://arkenfox.github.io/gui/ [interactive]
|
||||
* license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt
|
||||
@ -63,6 +63,7 @@
|
||||
6000: DON'T TOUCH
|
||||
7000: DON'T BOTHER
|
||||
8000: DON'T BOTHER: FINGERPRINTING
|
||||
8500: TELEMETRY
|
||||
9000: NON-PROJECT RELATED
|
||||
9999: DEPRECATED / RENAMED
|
||||
|
||||
@ -82,7 +83,7 @@ user_pref("browser.aboutConfig.showWarning", false);
|
||||
user_pref("_user.js.parrot", "0100 syntax error: the parrot's dead!");
|
||||
/* 0102: set startup page [SETUP-CHROME]
|
||||
* 0=blank, 1=home, 2=last visited page, 3=resume previous session
|
||||
* [NOTE] Session Restore is cleared with history (2811), and not used in Private Browsing mode
|
||||
* [NOTE] Session Restore is cleared with history (2811+), and not used in Private Browsing mode
|
||||
* [SETTING] General>Startup>Restore previous session ***/
|
||||
user_pref("browser.startup.page", 0);
|
||||
/* 0103: set HOME+NEWWINDOW page
|
||||
@ -116,8 +117,8 @@ user_pref("extensions.getAddons.showPane", false); // [HIDDEN PREF]
|
||||
/* 0321: disable recommendations in about:addons' Extensions and Themes panes [FF68+] ***/
|
||||
user_pref("extensions.htmlaboutaddons.recommendations.enabled", false);
|
||||
/* 0322: disable personalized Extension Recommendations in about:addons and AMO [FF65+]
|
||||
* [NOTE] This pref has no effect when Health Reports (0331) are disabled
|
||||
* [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to make personalized extension recommendations
|
||||
* [NOTE] This pref has no effect when Health Reports (8501) are disabled
|
||||
* [SETTING] Privacy & Security>Firefox Data Collection and Use>Allow personalized extension recommendations
|
||||
* [1] https://support.mozilla.org/kb/personalized-extension-recommendations ***/
|
||||
user_pref("browser.discovery.enabled", false);
|
||||
/* 0323: disable shopping experience [FF116+]
|
||||
@ -125,41 +126,13 @@ user_pref("browser.discovery.enabled", false);
|
||||
user_pref("browser.shopping.experience2023.enabled", false); // [DEFAULT: false]
|
||||
|
||||
/** TELEMETRY ***/
|
||||
/* 0330: disable new data submission [FF41+]
|
||||
* If disabled, no policy is shown or upload takes place, ever
|
||||
* [1] https://bugzilla.mozilla.org/1195552 ***/
|
||||
user_pref("datareporting.policy.dataSubmissionEnabled", false);
|
||||
/* 0331: disable Health Reports
|
||||
* [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send technical... data ***/
|
||||
user_pref("datareporting.healthreport.uploadEnabled", false);
|
||||
/* 0332: disable telemetry
|
||||
* The "unified" pref affects the behavior of the "enabled" pref
|
||||
* - If "unified" is false then "enabled" controls the telemetry module
|
||||
* - If "unified" is true then "enabled" only controls whether to record extended data
|
||||
* [NOTE] "toolkit.telemetry.enabled" is now LOCKED to reflect prerelease (true) or release builds (false) [2]
|
||||
* [1] https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/internals/preferences.html
|
||||
* [2] https://medium.com/georg-fritzsche/data-preference-changes-in-firefox-58-2d5df9c428b5 ***/
|
||||
user_pref("toolkit.telemetry.unified", false);
|
||||
user_pref("toolkit.telemetry.enabled", false); // see [NOTE]
|
||||
user_pref("toolkit.telemetry.server", "data:,");
|
||||
user_pref("toolkit.telemetry.archive.enabled", false);
|
||||
user_pref("toolkit.telemetry.newProfilePing.enabled", false); // [FF55+]
|
||||
user_pref("toolkit.telemetry.shutdownPingSender.enabled", false); // [FF55+]
|
||||
user_pref("toolkit.telemetry.updatePing.enabled", false); // [FF56+]
|
||||
user_pref("toolkit.telemetry.bhrPing.enabled", false); // [FF57+] Background Hang Reporter
|
||||
user_pref("toolkit.telemetry.firstShutdownPing.enabled", false); // [FF57+]
|
||||
/* 0333: disable Telemetry Coverage
|
||||
* [1] https://blog.mozilla.org/data/2018/08/20/effectively-measuring-search-in-firefox/ ***/
|
||||
user_pref("toolkit.telemetry.coverage.opt-out", true); // [HIDDEN PREF]
|
||||
user_pref("toolkit.coverage.opt-out", true); // [FF64+] [HIDDEN PREF]
|
||||
user_pref("toolkit.coverage.endpoint.base", "");
|
||||
/* 0335: disable Firefox Home (Activity Stream) telemetry ***/
|
||||
user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
|
||||
user_pref("browser.newtabpage.activity-stream.telemetry", false);
|
||||
|
||||
/** STUDIES ***/
|
||||
/* 0340: disable Studies
|
||||
* [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to install and run studies ***/
|
||||
* [SETTING] Privacy & Security>Firefox Data Collection and Use>Install and run studies ***/
|
||||
user_pref("app.shield.optoutstudies.enabled", false);
|
||||
/* 0341: disable Normandy/Shield [FF60+]
|
||||
* Shield is a telemetry system that can push and test "recipes"
|
||||
@ -173,7 +146,7 @@ user_pref("breakpad.reportURL", "");
|
||||
user_pref("browser.tabs.crashReporting.sendReport", false); // [FF44+]
|
||||
// user_pref("browser.crashReports.unsubmittedCheck.enabled", false); // [FF51+] [DEFAULT: false]
|
||||
/* 0351: enforce no submission of backlogged Crash Reports [FF58+]
|
||||
* [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send backlogged crash reports ***/
|
||||
* [SETTING] Privacy & Security>Firefox Data Collection and Use>Send backlogged crash reports ***/
|
||||
user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); // [DEFAULT: false]
|
||||
|
||||
/** OTHER ***/
|
||||
@ -261,7 +234,7 @@ user_pref("network.file.disable_unc_paths", true); // [HIDDEN PREF]
|
||||
* [1] https://bugzilla.mozilla.org/1433507
|
||||
* [2] https://en.wikipedia.org/wiki/GVfs
|
||||
* [3] https://en.wikipedia.org/wiki/GIO_(software) ***/
|
||||
user_pref("network.gio.supported-protocols", ""); // [HIDDEN PREF] [DEFAULT: "" FF118+]
|
||||
user_pref("network.gio.supported-protocols", ""); // [HIDDEN PREF] [DEFAULT: ""]
|
||||
/* 0705: disable proxy direct failover for system requests [FF91+]
|
||||
* [WARNING] Default true is a security feature against malicious extensions [1]
|
||||
* [SETUP-CHROME] If you use a proxy and you trust your extensions
|
||||
@ -320,11 +293,11 @@ user_pref("browser.urlbar.yelp.featureGate", false); // [FF124+]
|
||||
/* 0807: disable urlbar clipboard suggestions [FF118+] ***/
|
||||
// user_pref("browser.urlbar.clipboard.featureGate", false);
|
||||
/* 0808: disable recent searches [FF120+]
|
||||
* [NOTE] Recent searches are cleared with history (2811)
|
||||
* [NOTE] Recent searches are cleared with history (2811+)
|
||||
* [1] https://support.mozilla.org/kb/search-suggestions-firefox ***/
|
||||
// user_pref("browser.urlbar.recentsearches.featureGate", false);
|
||||
/* 0810: disable search and form history
|
||||
* [NOTE] We also clear formdata on exit (2811)
|
||||
* [NOTE] We also clear formdata on exit (2811+)
|
||||
* [SETUP-WEB] Be aware that autocomplete form data can be read by third parties [1][2]
|
||||
* [SETTING] Privacy & Security>History>Custom Settings>Remember search and form history
|
||||
* [1] https://blog.mindedsecurity.com/2011/10/autocompleteagain.html
|
||||
@ -337,7 +310,7 @@ user_pref("browser.formfill.enable", false);
|
||||
/* 0820: disable coloring of visited links
|
||||
* [SETUP-HARDEN] Bulk rapid history sniffing was mitigated in 2010 [1][2]. Slower and more expensive
|
||||
* redraw timing attacks were largely mitigated in FF77+ [3]. Using RFP (4501) further hampers timing
|
||||
* attacks. Don't forget clearing history on exit (2811). However, social engineering [2#limits][4][5]
|
||||
* attacks. Don't forget clearing history on exit (2811+). However, social engineering [2#limits][4][5]
|
||||
* and advanced targeted timing attacks could still produce usable results
|
||||
* [1] https://developer.mozilla.org/docs/Web/CSS/Privacy_and_the_:visited_selector
|
||||
* [2] https://dbaron.org/mozilla/visited-privacy
|
||||
@ -380,7 +353,7 @@ user_pref("network.auth.subresource-http-auth-allow", 1);
|
||||
/*** [SECTION 1000]: DISK AVOIDANCE ***/
|
||||
user_pref("_user.js.parrot", "1000 syntax error: the parrot's gone to meet 'is maker!");
|
||||
/* 1001: disable disk cache
|
||||
* [NOTE] We also clear cache on exit (2811)
|
||||
* [NOTE] We also clear cache on exit (2811+)
|
||||
* [SETUP-CHROME] If you think disk cache helps perf, then feel free to override this ***/
|
||||
user_pref("browser.cache.disk.enable", false);
|
||||
/* 1002: set media cache in Private Browsing to in-memory and increase its maximum size
|
||||
@ -442,13 +415,14 @@ user_pref("security.tls.enable_0rtt_data", false);
|
||||
* [1] https://en.wikipedia.org/wiki/Ocsp ***/
|
||||
user_pref("security.OCSP.enabled", 1); // [DEFAULT: 1]
|
||||
/* 1212: set OCSP fetch failures (non-stapled, see 1211) to hard-fail
|
||||
* [SETUP-WEB] SEC_ERROR_OCSP_SERVER_ERROR
|
||||
* [SETUP-WEB] SEC_ERROR_OCSP_SERVER_ERROR | SEC_ERROR_OCSP_UNAUTHORIZED_REQUEST
|
||||
* When a CA cannot be reached to validate a cert, Firefox just continues the connection (=soft-fail)
|
||||
* Setting this pref to true tells Firefox to instead terminate the connection (=hard-fail)
|
||||
* It is pointless to soft-fail when an OCSP fetch fails: you cannot confirm a cert is still valid (it
|
||||
* could have been revoked) and/or you could be under attack (e.g. malicious blocking of OCSP servers)
|
||||
* [1] https://blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox/
|
||||
* [2] https://www.imperialviolet.org/2014/04/19/revchecking.html ***/
|
||||
* [2] https://www.imperialviolet.org/2014/04/19/revchecking.html
|
||||
* [3] https://letsencrypt.org/2024/12/05/ending-ocsp/ ***/
|
||||
user_pref("security.OCSP.require", true);
|
||||
|
||||
/** CERTS / HPKP (HTTP Public Key Pinning) ***/
|
||||
@ -463,7 +437,7 @@ user_pref("security.cert_pinning.enforcement_level", 2);
|
||||
* 3 = consult CRLite and enforce "Not Revoked" results, but defer to OCSP for "Revoked" (default)
|
||||
* [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1429800,1670985,1753071
|
||||
* [2] https://blog.mozilla.org/security/tag/crlite/ ***/
|
||||
user_pref("security.remote_settings.crlite_filters.enabled", true);
|
||||
user_pref("security.remote_settings.crlite_filters.enabled", true); // [DEFAULT: true FF137+]
|
||||
user_pref("security.pki.crlite_mode", 2);
|
||||
|
||||
/** MIXED CONTENT ***/
|
||||
@ -647,41 +621,33 @@ user_pref("browser.contentblocking.category", "strict"); // [HIDDEN PREF]
|
||||
/*** [SECTION 2800]: SHUTDOWN & SANITIZING ***/
|
||||
user_pref("_user.js.parrot", "2800 syntax error: the parrot's bleedin' demised!");
|
||||
/* 2810: enable Firefox to clear items on shutdown
|
||||
* [NOTE] In FF129+ clearing "siteSettings" on shutdown (2811), or manually via site data (2820) and
|
||||
* [NOTE] In FF129+ clearing "siteSettings" on shutdown (2811+), or manually via site data (2820+) and
|
||||
* via history (2830), will no longer remove sanitize on shutdown "cookie and site data" site exceptions (2815)
|
||||
* [SETTING] Privacy & Security>History>Custom Settings>Clear history when Firefox closes | Settings ***/
|
||||
user_pref("privacy.sanitize.sanitizeOnShutdown", true);
|
||||
|
||||
/** SANITIZE ON SHUTDOWN: IGNORES "ALLOW" SITE EXCEPTIONS | v2 migration is FF128+ ***/
|
||||
/* 2811: set/enforce what items to clear on shutdown (if 2810 is true) [SETUP-CHROME]
|
||||
* [NOTE] If "history" is true, downloads will also be cleared ***/
|
||||
user_pref("privacy.clearOnShutdown.cache", true); // [DEFAULT: true]
|
||||
user_pref("privacy.clearOnShutdown_v2.cache", true); // [FF128+] [DEFAULT: true]
|
||||
user_pref("privacy.clearOnShutdown.downloads", true); // [DEFAULT: true]
|
||||
user_pref("privacy.clearOnShutdown.formdata", true); // [DEFAULT: true]
|
||||
user_pref("privacy.clearOnShutdown.history", true); // [DEFAULT: true]
|
||||
user_pref("privacy.clearOnShutdown_v2.historyFormDataAndDownloads", true); // [FF128+] [DEFAULT: true]
|
||||
// user_pref("privacy.clearOnShutdown.siteSettings", false); // [DEFAULT: false]
|
||||
// user_pref("privacy.clearOnShutdown_v2.siteSettings", false); // [FF128+] [DEFAULT: false]
|
||||
/* 2812: set Session Restore to clear on shutdown (if 2810 is true) [FF34+]
|
||||
* [NOTE] Not needed if Session Restore is not used (0102) or it is already cleared with history (2811)
|
||||
/** SANITIZE ON SHUTDOWN: IGNORES "ALLOW" SITE EXCEPTIONS ***/
|
||||
/* 2811: set/enforce clearOnShutdown items (if 2810 is true) [SETUP-CHROME] [FF128+] ***/
|
||||
user_pref("privacy.clearOnShutdown_v2.cache", true); // [DEFAULT: true]
|
||||
user_pref("privacy.clearOnShutdown_v2.historyFormDataAndDownloads", true); // [DEFAULT: true]
|
||||
// user_pref("privacy.clearOnShutdown_v2.siteSettings", false); // [DEFAULT: false]
|
||||
/* 2812: set/enforce clearOnShutdown items [FF136+] ***/
|
||||
user_pref("privacy.clearOnShutdown_v2.browsingHistoryAndDownloads", true); // [DEFAULT: true]
|
||||
user_pref("privacy.clearOnShutdown_v2.downloads", true);
|
||||
user_pref("privacy.clearOnShutdown_v2.formdata", true);
|
||||
/* 2813: set Session Restore to clear on shutdown (if 2810 is true) [FF34+]
|
||||
* [NOTE] Not needed if Session Restore is not used (0102) or it is already cleared with history (2811+)
|
||||
* [NOTE] If true, this prevents resuming from crashes (also see 5008) ***/
|
||||
// user_pref("privacy.clearOnShutdown.openWindows", true);
|
||||
|
||||
/** SANITIZE ON SHUTDOWN: RESPECTS "ALLOW" SITE EXCEPTIONS FF103+ | v2 migration is FF128+ ***/
|
||||
/* 2815: set "Cookies" and "Site Data" to clear on shutdown (if 2810 is true) [SETUP-CHROME]
|
||||
* [NOTE] Exceptions: A "cookie" permission also controls "offlineApps" (see note below). For cross-domain logins,
|
||||
* add exceptions for both sites e.g. https://www.youtube.com (site) + https://accounts.google.com (single sign on)
|
||||
* [NOTE] "offlineApps": Offline Website Data: localStorage, service worker cache, QuotaManager (IndexedDB, asm-cache)
|
||||
* [NOTE] "sessions": Active Logins (has no site exceptions): refers to HTTP Basic Authentication [1], not logins via cookies
|
||||
/** SANITIZE ON SHUTDOWN: RESPECTS "ALLOW" SITE EXCEPTIONS ***/
|
||||
/* 2815: set "Cookies" and "Site Data" to clear on shutdown (if 2810 is true) [SETUP-CHROME] [FF128+]
|
||||
* [NOTE] Exceptions: For cross-domain logins, add exceptions for both sites
|
||||
* e.g. https://www.youtube.com (site) + https://accounts.google.com (single sign on)
|
||||
* [WARNING] Be selective with what sites you "Allow", as they also disable partitioning (1767271)
|
||||
* [SETTING] to add site exceptions: Ctrl+I>Permissions>Cookies>Allow (when on the website in question)
|
||||
* [SETTING] to manage site exceptions: Options>Privacy & Security>Permissions>Settings
|
||||
* [1] https://en.wikipedia.org/wiki/Basic_access_authentication ***/
|
||||
user_pref("privacy.clearOnShutdown.cookies", true); // Cookies
|
||||
user_pref("privacy.clearOnShutdown.offlineApps", true); // Site Data
|
||||
user_pref("privacy.clearOnShutdown.sessions", true); // Active Logins [DEFAULT: true]
|
||||
user_pref("privacy.clearOnShutdown_v2.cookiesAndStorage", true); // Cookies, Site Data, Active Logins [FF128+]
|
||||
* [SETTING] to manage site exceptions: Options>Privacy & Security>Permissions>Settings ***/
|
||||
user_pref("privacy.clearOnShutdown_v2.cookiesAndStorage", true);
|
||||
|
||||
/** SANITIZE SITE DATA: IGNORES "ALLOW" SITE EXCEPTIONS ***/
|
||||
/* 2820: set manual "Clear Data" items [SETUP-CHROME] [FF128+]
|
||||
@ -691,30 +657,24 @@ user_pref("privacy.clearSiteData.cache", true);
|
||||
user_pref("privacy.clearSiteData.cookiesAndStorage", false); // keep false until it respects "allow" site exceptions
|
||||
user_pref("privacy.clearSiteData.historyFormDataAndDownloads", true);
|
||||
// user_pref("privacy.clearSiteData.siteSettings", false);
|
||||
/* 2821: set manual "Clear Data" items [FF136+] ***/
|
||||
user_pref("privacy.clearSiteData.browsingHistoryAndDownloads", true);
|
||||
user_pref("privacy.clearSiteData.formdata", true);
|
||||
|
||||
/** SANITIZE HISTORY: IGNORES "ALLOW" SITE EXCEPTIONS | clearHistory migration is FF128+ ***/
|
||||
/* 2830: set manual "Clear History" items, also via Ctrl-Shift-Del [SETUP-CHROME]
|
||||
/** SANITIZE HISTORY: IGNORES "ALLOW" SITE EXCEPTIONS ***/
|
||||
/* 2830: set manual "Clear History" items, also via Ctrl-Shift-Del [SETUP-CHROME] [FF128+]
|
||||
* Firefox remembers your last choices. This will reset them when you start Firefox
|
||||
* [NOTE] Regardless of what you set "downloads" to, as soon as the dialog
|
||||
* for "Clear Recent History" is opened, it is synced to the same as "history"
|
||||
* [SETTING] Privacy & Security>History>Custom Settings>Clear History ***/
|
||||
user_pref("privacy.cpd.cache", true); // [DEFAULT: true]
|
||||
user_pref("privacy.clearHistory.cache", true);
|
||||
user_pref("privacy.cpd.formdata", true); // [DEFAULT: true]
|
||||
user_pref("privacy.cpd.history", true); // [DEFAULT: true]
|
||||
// user_pref("privacy.cpd.downloads", true); // not used, see note above
|
||||
user_pref("privacy.clearHistory.historyFormDataAndDownloads", true);
|
||||
user_pref("privacy.cpd.cookies", false);
|
||||
user_pref("privacy.cpd.sessions", true); // [DEFAULT: true]
|
||||
user_pref("privacy.cpd.offlineApps", false); // [DEFAULT: false]
|
||||
user_pref("privacy.clearHistory.cache", true); // [DEFAULT: true]
|
||||
user_pref("privacy.clearHistory.cookiesAndStorage", false);
|
||||
// user_pref("privacy.cpd.openWindows", false); // Session Restore
|
||||
// user_pref("privacy.cpd.passwords", false);
|
||||
// user_pref("privacy.cpd.siteSettings", false);
|
||||
// user_pref("privacy.clearHistory.siteSettings", false);
|
||||
user_pref("privacy.clearHistory.historyFormDataAndDownloads", true); // [DEFAULT: true]
|
||||
// user_pref("privacy.clearHistory.siteSettings", false); // [DEFAULT: false]
|
||||
/* 2831: set manual "Clear History" items [FF136+] ***/
|
||||
user_pref("privacy.clearHistory.browsingHistoryAndDownloads", true); // [DEFAULT: true]
|
||||
user_pref("privacy.clearHistory.formdata", true);
|
||||
|
||||
/** SANITIZE MANUAL: TIMERANGE ***/
|
||||
/* 2840: set "Time range to clear" for "Clear Data" (2820) and "Clear History" (2830)
|
||||
/* 2840: set "Time range to clear" for "Clear Data" (2820+) and "Clear History" (2830+)
|
||||
* Firefox remembers your last choice. This will reset the value when you start Firefox
|
||||
* 0=everything, 1=last hour, 2=last two hours, 3=last four hours, 4=today
|
||||
* [NOTE] Values 5 (last 5 minutes) and 6 (last 24 hours) are not listed in the dropdown,
|
||||
@ -740,7 +700,7 @@ user_pref("privacy.sanitize.timeSpan", 0);
|
||||
user_pref("_user.js.parrot", "4000 syntax error: the parrot's bereft of life!");
|
||||
/* 4001: enable FPP in PB mode [FF114+]
|
||||
* [NOTE] In FF119+, FPP for all modes (7016) is enabled with ETP Strict (2701) ***/
|
||||
// user_pref("privacy.fingerprintingProtection.pbmode", true); // [DEFAULT: true FF118+]
|
||||
// user_pref("privacy.fingerprintingProtection.pbmode", true); // [DEFAULT: true]
|
||||
/* 4002: set global FPP overrides [FF114+]
|
||||
* uses "RFPTargets" [1] which despite the name these are not used by RFP
|
||||
* e.g. "+AllTargets,-CSSPrefersColorScheme,-JSDateTimeUTC" = all targets but allow prefers-color-scheme and do not change timezone
|
||||
@ -763,7 +723,6 @@ user_pref("_user.js.parrot", "4000 syntax error: the parrot's bereft of life!");
|
||||
add letterboxing (4504), spoof_english (4506), and webgl (4520).
|
||||
|
||||
RFP is an all-or-nothing buy in: you cannot pick and choose what parts you want
|
||||
[TEST] https://arkenfox.github.io/TZP/tzp.html
|
||||
|
||||
[WARNING] DO NOT USE extensions to alter RFP protected metrics
|
||||
|
||||
@ -771,8 +730,8 @@ user_pref("_user.js.parrot", "4000 syntax error: the parrot's bereft of life!");
|
||||
1360039 - spoof navigator.hardwareConcurrency as 2 (FF55)
|
||||
FF56
|
||||
1333651 - spoof User Agent & Navigator API
|
||||
version: android version spoofed as ESR (FF119 or lower)
|
||||
OS: JS spoofed as Windows 10, OS 10.15, Android 10, or Linux | HTTP Headers spoofed as Windows or Android
|
||||
JS: spoofed as Windows 10, OS 10.15, Android 10, or Linux
|
||||
HTTP Header: spoofed as Windows 10 or Android 10.15 until FF136 then matches JS spoof
|
||||
1369319 - disable device sensor API
|
||||
1369357 - disable site specific zoom
|
||||
1337161 - hide gamepads from content
|
||||
@ -867,7 +826,6 @@ user_pref("widget.non-native-theme.use-theme-accent", false); // [DEFAULT: false
|
||||
* Stops malicious window sizes and some screen resolution leaks.
|
||||
* You can still right-click a link and open in a new window
|
||||
* [SETTING] General>Tabs>Open links in tabs instead of new windows
|
||||
* [TEST] https://arkenfox.github.io/TZP/tzp.html#screen
|
||||
* [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/9881 ***/
|
||||
user_pref("browser.link.open_newwindow", 3); // [DEFAULT: 3]
|
||||
/* 4513: set all open window methods to abide by "browser.link.open_newwindow" (4512)
|
||||
@ -935,7 +893,7 @@ user_pref("_user.js.parrot", "5000 syntax error: the parrot's taken 'is last bow
|
||||
* [1] https://support.mozilla.org/kb/address-bar-autocomplete-firefox#w_url-autocomplete ***/
|
||||
// user_pref("browser.urlbar.autoFill", false);
|
||||
/* 5013: disable browsing and download history
|
||||
* [NOTE] We also clear history and downloads on exit (2811)
|
||||
* [NOTE] We also clear history and downloads on exit (2811+)
|
||||
* [SETTING] Privacy & Security>History>Custom Settings>Remember browsing and download history ***/
|
||||
// user_pref("places.history.enabled", false);
|
||||
/* 5014: disable Windows jumplist [WINDOWS] ***/
|
||||
@ -1060,16 +1018,20 @@ user_pref("extensions.webcompat-reporter.enabled", false); // [DEFAULT: false]
|
||||
/* 6012: enforce Quarantined Domains [FF115+]
|
||||
* [WHY] https://support.mozilla.org/kb/quarantined-domains */
|
||||
user_pref("extensions.quarantinedDomains.enabled", true); // [DEFAULT: true]
|
||||
/* 6050: prefsCleaner: previously active items removed from arkenfox 115-127 ***/
|
||||
// user_pref("accessibility.force_disabled", "");
|
||||
// user_pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", "");
|
||||
// user_pref("geo.provider.network.url", "");
|
||||
// user_pref("geo.provider.network.logging.enabled", "");
|
||||
// user_pref("geo.provider.use_gpsd", "");
|
||||
// user_pref("network.protocol-handler.external.ms-windows-store", "");
|
||||
// user_pref("privacy.partition.always_partition_third_party_non_cookie_storage", "");
|
||||
// user_pref("privacy.partition.always_partition_third_party_non_cookie_storage.exempt_sessionstorage", "");
|
||||
// user_pref("privacy.partition.serviceWorkers", "");
|
||||
/* 6050: prefsCleaner: reset previously active items removed from arkenfox FF128+ ***/
|
||||
// user_pref("privacy.clearOnShutdown.cache", "");
|
||||
// user_pref("privacy.clearOnShutdown.cookies", "");
|
||||
// user_pref("privacy.clearOnShutdown.downloads", "");
|
||||
// user_pref("privacy.clearOnShutdown.formdata", "");
|
||||
// user_pref("privacy.clearOnShutdown.history", "");
|
||||
// user_pref("privacy.clearOnShutdown.offlineApps", "");
|
||||
// user_pref("privacy.clearOnShutdown.sessions", "");
|
||||
// user_pref("privacy.cpd.cache", "");
|
||||
// user_pref("privacy.cpd.cookies", "");
|
||||
// user_pref("privacy.cpd.formdata", "");
|
||||
// user_pref("privacy.cpd.history", "");
|
||||
// user_pref("privacy.cpd.offlineApps", "");
|
||||
// user_pref("privacy.cpd.sessions", "");
|
||||
|
||||
/*** [SECTION 7000]: DON'T BOTHER ***/
|
||||
user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies!");
|
||||
@ -1151,7 +1113,7 @@ user_pref("_user.js.parrot", "7000 syntax error: the parrot's pushing up daisies
|
||||
// user_pref("network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation", true); // [FF100+]
|
||||
// user_pref("privacy.bounceTrackingProtection.mode", 1); // [FF131+] [ETP FF133+]
|
||||
// user_pref("privacy.fingerprintingProtection", true); // [FF114+] [ETP FF119+]
|
||||
// user_pref("privacy.partition.network_state.ocsp_cache", true); // [DEFAULT: true FF123+]
|
||||
// user_pref("privacy.partition.network_state.ocsp_cache", true); // [DEFAULT: true]
|
||||
// user_pref("privacy.query_stripping.enabled", true); // [FF101+]
|
||||
// user_pref("privacy.trackingprotection.enabled", true);
|
||||
// user_pref("privacy.trackingprotection.socialtracking.enabled", true);
|
||||
@ -1210,6 +1172,58 @@ user_pref("_user.js.parrot", "8000 syntax error: the parrot's crossed the Jordan
|
||||
// user_pref("ui.use_standins_for_native_colors", "");
|
||||
// user_pref("webgl.enable-debug-renderer-info", "");
|
||||
|
||||
/*** [SECTION 8500]: TELEMETRY
|
||||
Arkenfox does not consider Firefox telemetry to be a privacy or security concern - comments below.
|
||||
But since most arkenfox users prefer it disabled, we'll do that rather than cause overrides.
|
||||
|
||||
Opt-out
|
||||
- Telemetry is essential: a browser engine is a _very_ large complex beast costing billions to maintain
|
||||
- Opt-in telemetry _does not_ work and results in data that is unrepresentative and may be misleading
|
||||
Choice
|
||||
- Every new profile on first use provides data collection/use policy and the abillty to opt-out
|
||||
- It can be disabled at any time (Settings>Privacy & Security>Data Collection and Use)
|
||||
Data
|
||||
- no PII (Personally Identifiable Information)
|
||||
- can be viewed in about:telemetry
|
||||
- uses Prio [1][2][3], Glean [4], Oblivious HTTP [5][6]
|
||||
|
||||
[1] https://crypto.stanford.edu/prio/
|
||||
[2] https://hacks.mozilla.org/2018/10/testing-privacy-preserving-telemetry-with-prio/
|
||||
[3] https://blog.mozilla.org/security/2019/06/06/next-steps-in-privacy-preserving-telemetry-with-prio/
|
||||
[4] https://firefox-source-docs.mozilla.org/toolkit/components/glean/index.html
|
||||
[5] https://firefox-source-docs.mozilla.org/toolkit/components/glean/user/ohttp.html
|
||||
[6] https://blog.mozilla.org/en/tag/oblivious-http/
|
||||
***/
|
||||
user_pref("_user.js.parrot", "8500 syntax error: the parrot's off the twig!");
|
||||
/* 8500: disable new data submission [FF41+]
|
||||
* If disabled, no policy is shown or upload takes place, ever
|
||||
* [1] https://bugzilla.mozilla.org/1195552 ***/
|
||||
user_pref("datareporting.policy.dataSubmissionEnabled", false);
|
||||
/* 8501: disable Health Reports
|
||||
* [SETTING] Privacy & Security>Firefox Data Collection and Use>Send technical... data ***/
|
||||
user_pref("datareporting.healthreport.uploadEnabled", false);
|
||||
/* 0802: disable telemetry
|
||||
* The "unified" pref affects the behavior of the "enabled" pref
|
||||
* - If "unified" is false then "enabled" controls the telemetry module
|
||||
* - If "unified" is true then "enabled" only controls whether to record extended data
|
||||
* [NOTE] "toolkit.telemetry.enabled" is now LOCKED to reflect prerelease (true) or release builds (false) [2]
|
||||
* [1] https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/internals/preferences.html
|
||||
* [2] https://medium.com/georg-fritzsche/data-preference-changes-in-firefox-58-2d5df9c428b5 ***/
|
||||
user_pref("toolkit.telemetry.unified", false);
|
||||
user_pref("toolkit.telemetry.enabled", false); // see [NOTE]
|
||||
user_pref("toolkit.telemetry.server", "data:,");
|
||||
user_pref("toolkit.telemetry.archive.enabled", false);
|
||||
user_pref("toolkit.telemetry.newProfilePing.enabled", false); // [FF55+]
|
||||
user_pref("toolkit.telemetry.shutdownPingSender.enabled", false); // [FF55+]
|
||||
user_pref("toolkit.telemetry.updatePing.enabled", false); // [FF56+]
|
||||
user_pref("toolkit.telemetry.bhrPing.enabled", false); // [FF57+] Background Hang Reporter
|
||||
user_pref("toolkit.telemetry.firstShutdownPing.enabled", false); // [FF57+]
|
||||
/* 8503: disable Telemetry Coverage
|
||||
* [1] https://blog.mozilla.org/data/2018/08/20/effectively-measuring-search-in-firefox/ ***/
|
||||
user_pref("toolkit.telemetry.coverage.opt-out", true); // [HIDDEN PREF]
|
||||
user_pref("toolkit.coverage.opt-out", true); // [FF64+] [HIDDEN PREF]
|
||||
user_pref("toolkit.coverage.endpoint.base", "");
|
||||
|
||||
/*** [SECTION 9000]: NON-PROJECT RELATED ***/
|
||||
user_pref("_user.js.parrot", "9000 syntax error: the parrot's cashed in 'is chips!");
|
||||
/* 9001: disable welcome notices ***/
|
||||
@ -1223,74 +1237,6 @@ user_pref("browser.urlbar.showSearchTerms.enabled", false);
|
||||
|
||||
/*** [SECTION 9999]: DEPRECATED / RENAMED ***/
|
||||
user_pref("_user.js.parrot", "9999 syntax error: the parrot's shuffled off 'is mortal coil!");
|
||||
/* ESR115.x still uses all the following prefs
|
||||
// [NOTE] replace the * with a slash in the line above to re-enable active ones
|
||||
// FF116
|
||||
// 4506: set RFP's font visibility level (1402) [FF94+]
|
||||
// [-] https://bugzilla.mozilla.org/1838415
|
||||
// user_pref("layout.css.font-visibility.resistFingerprinting", 1); // [DEFAULT: 1]
|
||||
// FF117
|
||||
// 1221: disable Windows Microsoft Family Safety cert [FF50+] [WINDOWS]
|
||||
// 0=disable detecting Family Safety mode and importing the root
|
||||
// 1=only attempt to detect Family Safety mode (don't import the root)
|
||||
// 2=detect Family Safety mode and import the root
|
||||
// [1] https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/21686
|
||||
// [-] https://bugzilla.mozilla.org/1844908
|
||||
user_pref("security.family_safety.mode", 0);
|
||||
// 7018: disable service worker Web Notifications [FF44+]
|
||||
// [WHY] Web Notifications are behind a prompt (7002)
|
||||
// [1] https://blog.mozilla.org/en/products/firefox/block-notification-requests/
|
||||
// [-] https://bugzilla.mozilla.org/1842457
|
||||
// user_pref("dom.webnotifications.serviceworker.enabled", false);
|
||||
// FF118
|
||||
// 1402: limit font visibility (Windows, Mac, some Linux) [FF94+]
|
||||
// Uses hardcoded lists with two parts: kBaseFonts + kLangPackFonts [1], bundled fonts are auto-allowed
|
||||
// In normal windows: uses the first applicable: RFP over TP over Standard
|
||||
// In Private Browsing windows: uses the most restrictive between normal and private
|
||||
// 1=only base system fonts, 2=also fonts from optional language packs, 3=also user-installed fonts
|
||||
// [1] https://searchfox.org/mozilla-central/search?path=StandardFonts*.inc
|
||||
// [-] https://bugzilla.mozilla.org/1847599
|
||||
// user_pref("layout.css.font-visibility.private", 1);
|
||||
// user_pref("layout.css.font-visibility.standard", 1);
|
||||
// user_pref("layout.css.font-visibility.trackingprotection", 1);
|
||||
// 2623: disable permissions delegation [FF73+]
|
||||
// Currently applies to cross-origin geolocation, camera, mic and screen-sharing
|
||||
// permissions, and fullscreen requests. Disabling delegation means any prompts
|
||||
// for these will show/use their correct 3rd party origin
|
||||
// [1] https://groups.google.com/forum/#!topic/mozilla.dev.platform/BdFOMAuCGW8/discussion
|
||||
// [-] https://bugzilla.mozilla.org/1697151
|
||||
// user_pref("permissions.delegation.enabled", false);
|
||||
// FF119
|
||||
// 0211: use en-US locale regardless of the system or region locale
|
||||
// [SETUP-WEB] May break some input methods e.g xim/ibus for CJK languages [1]
|
||||
// [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=867501,1629630
|
||||
// [-] https://bugzilla.mozilla.org/1846224
|
||||
// user_pref("javascript.use_us_english_locale", true); // [HIDDEN PREF]
|
||||
// 0711: disable skipping DoH when parental controls are enabled [FF70+]
|
||||
// [-] https://bugzilla.mozilla.org/1586941
|
||||
user_pref("network.dns.skipTRR-when-parental-control-enabled", false);
|
||||
// FF123
|
||||
// 0334: disable PingCentre telemetry (used in several System Add-ons) [FF57+]
|
||||
// Defense-in-depth: currently covered by 0331
|
||||
// [-] https://bugzilla.mozilla.org/1868988
|
||||
user_pref("browser.ping-centre.telemetry", false);
|
||||
// FF126
|
||||
// 9003: disable What's New toolbar icon [FF69+]
|
||||
// [-] https://bugzilla.mozilla.org/1724300
|
||||
user_pref("browser.messaging-system.whatsNewPanel.enabled", false);
|
||||
// FF127
|
||||
// 2630: disable content analysis by DLP (Data Loss Prevention) agents - replaced by default_result
|
||||
// [-] https://bugzilla.mozilla.org/1880314
|
||||
user_pref("browser.contentanalysis.default_allow", false);
|
||||
// 4511: enforce non-native widget theme
|
||||
// Security: removes/reduces system API calls, e.g. win32k API [1]
|
||||
// Fingerprinting: provides a uniform look and feel across platforms [2]
|
||||
// [1] https://bugzilla.mozilla.org/1381938
|
||||
// [2] https://bugzilla.mozilla.org/1411425
|
||||
// [-] https://bugzilla.mozilla.org/1848899
|
||||
user_pref("widget.non-native-theme.enabled", true); // [DEFAULT: true]
|
||||
// ***/
|
||||
|
||||
/* ESR128.x still uses all the following prefs
|
||||
// [NOTE] replace the * with a slash in the line above to re-enable active ones
|
||||
// FF132
|
||||
@ -1319,26 +1265,18 @@ user_pref("findbar.highlightAll", true);
|
||||
user_pref("identity.fxaccounts.enabled", false);
|
||||
user_pref("media.videocontrols.picture-in-picture.enabled", false);
|
||||
user_pref("media.webspeech.synth.enabled", false);
|
||||
user_pref("privacy.clearHistory.cache", false);
|
||||
user_pref("privacy.clearHistory.browsingHistoryAndDownloads", true);
|
||||
user_pref("privacy.clearHistory.cache", true);
|
||||
user_pref("privacy.clearHistory.cookiesAndStorage", true);
|
||||
user_pref("privacy.clearHistory.formdata", true);
|
||||
user_pref("privacy.clearHistory.historyFormDataAndDownloads", true);
|
||||
user_pref("privacy.clearHistory.siteSettings", true);
|
||||
user_pref("privacy.clearOnShutdown.cache", false);
|
||||
user_pref("privacy.clearOnShutdown.cookies", true);
|
||||
user_pref("privacy.clearOnShutdown.downloads", false);
|
||||
user_pref("privacy.clearOnShutdown.formdata", true);
|
||||
user_pref("privacy.clearOnShutdown.history", false);
|
||||
user_pref("privacy.clearOnShutdown.offlineApps", true);
|
||||
user_pref("privacy.clearOnShutdown.sessions", true);
|
||||
user_pref("privacy.clearOnShutdown.siteSettings", true);
|
||||
user_pref("privacy.clearOnShutdown_v2.browsingHistoryAndDownloads", false);
|
||||
user_pref("privacy.clearOnShutdown_v2.cache", false);
|
||||
user_pref("privacy.clearOnShutdown_v2.cookiesAndStorage", true);
|
||||
user_pref("privacy.clearOnShutdown_v2.downloads", false);
|
||||
user_pref("privacy.clearOnShutdown_v2.formdata", true);
|
||||
user_pref("privacy.clearOnShutdown_v2.historyFormDataAndDownloads", false);
|
||||
user_pref("privacy.clearOnShutdown_v2.siteSettings", true);
|
||||
user_pref("privacy.clearSiteData.cache", true);
|
||||
user_pref("privacy.clearSiteData.cookiesAndStorage", true);
|
||||
user_pref("privacy.clearSiteData.historyFormDataAndDownloads", true);
|
||||
user_pref("privacy.clearSiteData.siteSettings", true);
|
||||
user_pref("privacy.cpd.cache", true);
|
||||
user_pref("privacy.cpd.cookies", true);
|
||||
user_pref("privacy.cpd.formdata", true);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -9,8 +9,3 @@ Name=ange
|
||||
IsRelative=1
|
||||
Path=ange
|
||||
Default=1
|
||||
|
||||
[Profile1]
|
||||
Name=music
|
||||
IsRelative=1
|
||||
Path=music
|
||||
|
@ -6,7 +6,7 @@ See https://git.maby.dev/ange/archinstall.git for installation
|
||||
```bash
|
||||
git clone --bare https://git.maby.dev/ange/.dotfiles.git ~/.dotfiles
|
||||
alias c='git --git-dir=$HOME/.dotfiles --work-tree=$HOME'
|
||||
c checkout -f
|
||||
c checkout
|
||||
c submodule update --init --recursive --remote
|
||||
c config status.showUntrackedFiles no
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user