aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2019-10-29 13:03:40 +0100
committerPatrick Spek <p.spek@tyil.nl>2019-10-29 13:03:40 +0100
commitc48413489b828a566c2fb0a1872ed2a59284f310 (patch)
tree35b3ab8a098ec2098df7782611b6fd357ff8ec4f
parentc70f15bca0f429d339aecff7c0f6a78c66688647 (diff)
parentf5d1351d341370f38f130eb994df5b2131a20002 (diff)
Merge branch 'master' of gitlab.com:tyil/dotfiles
-rw-r--r--.config/gtd/config.toml3
-rw-r--r--.config/shell/env2
-rw-r--r--.gitignore4
-rwxr-xr-x.local/bin/new74
-rw-r--r--.local/etc/firefox/user.js235
-rw-r--r--.local/templates/sh46
-rw-r--r--.ssh/known_hosts1
7 files changed, 338 insertions, 27 deletions
diff --git a/.config/gtd/config.toml b/.config/gtd/config.toml
index 67373df..cb9d5af 100644
--- a/.config/gtd/config.toml
+++ b/.config/gtd/config.toml
@@ -1,3 +1,6 @@
+[gtd]
+context = "work"
+
[database]
type = "fs"
directory = "/home/tyil/documents/gtd"
diff --git a/.config/shell/env b/.config/shell/env
index 99eb1ff..61b91b9 100644
--- a/.config/shell/env
+++ b/.config/shell/env
@@ -30,7 +30,7 @@ export XDG_CONFIG_HOME="${HOME}/.config"
export XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
export XDG_CONFIG_DIRS="/etc/xdg/"
export XDG_CACHE_HOME="${HOME}/.cache"
-export XDG_TEMPLATES_DIR="${HOME}/templates"
+export XDG_TEMPLATES_DIR="${HOME}/.local/templates"
#export XDG_RUNTIME_DIR=""
# export gpg-agent
diff --git a/.gitignore b/.gitignore
index 0326c14..9bbc507 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,6 +26,9 @@
!/.local/bin
/.local/bin/*
+# template files
+!/.local/templates
+
# gittab
!/.local/bin/gittab
!/.local/etc
@@ -40,6 +43,7 @@
!/.local/bin/lpass
!/.local/bin/mkbak
!/.local/bin/mkpasswd
+!/.local/bin/new
!/.local/bin/ta
!/.local/bin/uncolor
!/.local/bin/up
diff --git a/.local/bin/new b/.local/bin/new
new file mode 100755
index 0000000..2de7ecd
--- /dev/null
+++ b/.local/bin/new
@@ -0,0 +1,74 @@
+#! /usr/bin/env sh
+
+main()
+{
+ # Handle opts
+ opts "$@"
+ shift "$OPTS"
+ unset OPTS
+
+ # Show help
+ [ "$OPT_HELP_ONLY" ] && usage && exit 0
+
+ if [ -d "$1" ]
+ then
+ printf "A directory already exists at %s\n" "$1" >&2
+ exit 1
+ fi
+
+ if [ -f "$1" ]
+ then
+ printf "A file already exists at %s\n" "$1" >&2
+ exit 1
+ fi
+
+ if [ -z "$TYPE" ]
+ then
+ # TODO: Calculate type from extension
+ TYPE=
+ fi
+
+ if [ ! -f "$XDG_TEMPLATES_DIR/$TYPE" ]
+ then
+ printf "No template for %s\n" "$TYPE" >&2
+ touch "$1"
+ return 0
+ fi
+
+ cp -- "$XDG_TEMPLATES_DIR/$TYPE" "$1"
+}
+
+opts()
+{
+ OPTS=0
+
+ while getopts ":ht:" opt
+ do
+ case "$opt" in
+ h) OPT_HELP_ONLY=1 OPTS=$((OPTS + 1)) ;;
+ t) TYPE=$OPTARG OPTS=$((OPTS + 2)) ;;
+ *)
+ printf "Invalid option passed: %s\n" "$OPTARG" >&2
+ ;;
+ esac
+ done
+
+ unset opt
+}
+
+usage()
+{
+ cat <<EOF
+Usage:
+ $(basename "$0") -h
+ $(basename "$0") [-t TYPE] <LOCATION>
+
+Create a new file from a template, found in the \$XDG_TEMPLATES_DIR directory.
+
+Options:
+ -h Show this help text and exit.
+ -t Specify the template type to use.
+EOF
+}
+
+main "$@"
diff --git a/.local/etc/firefox/user.js b/.local/etc/firefox/user.js
index b94f57a..2ee8efa 100644
--- a/.local/etc/firefox/user.js
+++ b/.local/etc/firefox/user.js
@@ -1,8 +1,11 @@
//
-// Most of these settings are taken from
-// https://spyware.neocities.org/guides/firefox.html
+// Inspired by:
+// - https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js
+// - https://spyware.neocities.org/guides/firefox.html
//
+user_pref("accessibility.force_disabled", 1);
+user_pref("alerts.showFavicons", false); // [DEFAULT: false]
user_pref("app.normandy.api_url", "");
user_pref("app.normandy.enabled", false);
user_pref("app.shield.optoutstudies.enabled", false);
@@ -14,15 +17,37 @@ user_pref("app.update.staging.enabled", false);
user_pref("beacon.enabled", false);
user_pref("breakpad.reportURL", "");
user_pref("browser.aboutHomeSnippets.updateUrl", "data:,");
+user_pref("browser.cache.disk.enable", false);
+user_pref("browser.cache.offline.enable", false);
user_pref("browser.chrome.errorReporter.enabled", false);
user_pref("browser.chrome.errorReporter.submitUrl", "");
user_pref("browser.crashReports.unsubmittedCheck.autoSubmit", false);
-user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false);
-user_pref("browser.crashReports.unsubmittedCheck.enabled", false);
+user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); // [FF58+]
+user_pref("browser.crashReports.unsubmittedCheck.enabled", false); // [FF51+]
+user_pref("browser.discovery.enabled", false);
+user_pref("browser.display.use_document_fonts", 0);
+user_pref("browser.download.hide_plugins_without_extensions", false);
+user_pref("browser.download.manager.addToRecentDocs", false);
+user_pref("browser.download.useDownloadDir", false);
+user_pref("browser.fixup.alternate.enabled", false);
+user_pref("browser.formfill.enable", false);
+user_pref("browser.helperApps.deleteTempFileOnExit", true);
user_pref("browser.library.activity-stream.enabled", false);
+user_pref("browser.link.open_newwindow", 3);
+user_pref("browser.link.open_newwindow.restriction", 0);
user_pref("browser.newtab.preload", false);
+user_pref("browser.newtabpage.activity-stream.asrouter.providers.snippets", "");
+user_pref("browser.newtabpage.activity-stream.feeds.discoverystreamfeed", false); // [FF66+]
+user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
+user_pref("browser.newtabpage.activity-stream.feeds.snippets", false);
+user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
+user_pref("browser.newtabpage.activity-stream.section.highlights.includePocket", false);
+user_pref("browser.newtabpage.activity-stream.showSponsored", false);
+user_pref("browser.newtabpage.activity-stream.telemetry", false);
+user_pref("browser.newtabpage.activity-stream.telemetry.ping.endpoint", "");
user_pref("browser.newtabpage.enabled", false);
user_pref("browser.onboarding.enabled", false);
+user_pref("browser.pagethumbnails.capturing_disabled", true); // [HIDDEN PREF]
user_pref("browser.ping-centre.telemetry", false);
user_pref("browser.safebrowsing.allowOverride", false);
user_pref("browser.safebrowsing.blockedURIs.enabled", false);
@@ -50,91 +75,249 @@ user_pref("browser.safebrowsing.provider.google4.updateURL", "");
user_pref("browser.safebrowsing.provider.mozilla.gethashURL", "");
user_pref("browser.safebrowsing.provider.mozilla.updateURL", "");
user_pref("browser.safebrowsing.reportPhishURL", "");
+user_pref("browser.search.geoSpecificDefaults", false);
+user_pref("browser.search.geoSpecificDefaults.url", "");
user_pref("browser.search.geoip.url", "");
+user_pref("browser.search.region", "US"); // [HIDDEN PREF]
user_pref("browser.search.suggest.enabled", false);
user_pref("browser.search.update", false);
-user_pref("browser.send_pings", false);
+user_pref("browser.send_pings", false); // [DEFAULT: false]
user_pref("browser.send_pings.require_same_host", true);
+user_pref("browser.sessionstore.interval", 30000);
+user_pref("browser.sessionstore.privacy_level", 2);
+user_pref("browser.shell.checkDefaultBrowser", false);
user_pref("browser.shell.shortcutFavicons", false);
-user_pref("browser.startup.homepage", "about:blank");
+user_pref("browser.ssl_override_behavior", 1);
+user_pref("browser.startup.blankWindow", false);
user_pref("browser.startup.homepage", "https://searx.tyil.nl");
user_pref("browser.startup.homepage_override.mstone", "ignore");
-user_pref("browser.tabs.crashReporting.sendReport", false);
+user_pref("browser.startup.page", 0);
+user_pref("browser.tabs.crashReporting.sendReport", false); // [FF44+]
+user_pref("browser.tabs.remote.allowLinkedWebInFileUriProcess", false);
+user_pref("browser.taskbar.lists.enabled", false);
+user_pref("browser.taskbar.lists.frequent.enabled", false);
+user_pref("browser.taskbar.lists.recent.enabled", false);
+user_pref("browser.taskbar.lists.tasks.enabled", false);
+user_pref("browser.taskbar.previews.enable", false);
user_pref("browser.uitour.enabled", false);
user_pref("browser.uitour.url", "");
+user_pref("browser.uitour.url", "");
user_pref("browser.urlbar.speculativeConnect.enabled", false);
user_pref("browser.urlbar.suggest.searches", false);
+user_pref("browser.urlbar.trimURLs", false);
user_pref("browser.urlbar.usepreloadedtopurls.enabled", false);
user_pref("browser.urlbar.userMadeSearchSuggestionsChoice", true);
+user_pref("browser.xul.error_pages.expert_bad_cert", true);
+user_pref("browser.zoom.siteSpecific", false);
user_pref("captivedetect.canonicalURL", "");
user_pref("datareporting.healthreport.uploadEnabled", false);
user_pref("datareporting.policy.dataSubmissionEnabled", false);
+user_pref("devtools.chrome.enabled", false);
+user_pref("devtools.debugger.remote-enabled", false);
+user_pref("devtools.webide.autoinstallADBExtension", false); // [FF64+]
user_pref("devtools.webide.autoinstallADBHelper", false);
+user_pref("devtools.webide.enabled", false); // [DEFAULT: false FF70+]
+user_pref("dom.allow_cut_copy", false);
+user_pref("dom.disable_beforeunload", true);
+user_pref("dom.disable_open_during_load", true);
+user_pref("dom.disable_window_move_resize", true);
+user_pref("dom.disable_window_open_feature.close", true);
+user_pref("dom.disable_window_open_feature.location", true); // [DEFAULT: true]
+user_pref("dom.disable_window_open_feature.menubar", true);
+user_pref("dom.disable_window_open_feature.minimizable", true);
+user_pref("dom.disable_window_open_feature.personalbar", true); // bookmarks toolbar
+user_pref("dom.disable_window_open_feature.resizable", true); // [DEFAULT: true]
+user_pref("dom.disable_window_open_feature.status", true); // [DEFAULT: true]
+user_pref("dom.disable_window_open_feature.titlebar", true);
+user_pref("dom.disable_window_open_feature.toolbar", true);
+user_pref("dom.enable_performance", false);
+user_pref("dom.enable_resource_timing", false);
+user_pref("dom.event.clipboardevents.enabled", false);
+user_pref("dom.indexedDB.enabled", true); // [DEFAULT: true]
user_pref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled", false);
user_pref("dom.ipc.plugins.reportCrashURL", false);
+user_pref("dom.netinfo.enabled", false); // [DEFAULT: true on Android]
+user_pref("dom.popup_allowed_events", "click dblclick");
user_pref("dom.push.connection.enabled", false);
user_pref("dom.push.enabled", false);
user_pref("dom.push.serverURL", "");
user_pref("dom.push.userAgentID", "");
-user_pref("extensions.blocklist.enabled", false);
+user_pref("dom.serviceWorkers.enabled", false);
+user_pref("dom.targetBlankNoOpener.enabled", true);
+user_pref("dom.vibrator.enabled", false);
+user_pref("dom.w3c_pointer_events.enabled", false);
+user_pref("dom.webaudio.enabled", false);
+user_pref("extensions.autoDisableScopes", 15); // [DEFAULT: 15]
+user_pref("extensions.blocklist.enabled", true); // [DEFAULT: true]
user_pref("extensions.blocklist.url", "");
-user_pref("extensions.formautofill.addresses.enabled", false);
-user_pref("extensions.formautofill.available", "off");
-user_pref("extensions.formautofill.creditCards.enabled", false);
-user_pref("extensions.formautofill.heuristics.enabled", false);
+user_pref("extensions.enabledScopes", 5); // [HIDDEN PREF]
+user_pref("extensions.formautofill.addresses.enabled", false); // [FF55+]
+user_pref("extensions.formautofill.available", "off"); // [FF56+]
+user_pref("extensions.formautofill.creditCards.enabled", false); // [FF56+]
+user_pref("extensions.formautofill.heuristics.enabled", false); // [FF55+]
user_pref("extensions.getAddons.cache.enabled", false);
-user_pref("extensions.getAddons.showPane", false);
+user_pref("extensions.getAddons.showPane", false); // [HIDDEN PREF]
+user_pref("extensions.htmlaboutaddons.recommendations.enabled", false);
user_pref("extensions.pocket.enabled", false);
user_pref("extensions.screenshots.disabled", true);
user_pref("extensions.screenshots.upload-disabled", true);
-user_pref("extensions.systemAddon.update.enabled", false);
-user_pref("extensions.systemAddon.update.url", "");
+user_pref("extensions.systemAddon.update.enabled", false); // [FF62+]
+user_pref("extensions.systemAddon.update.url", ""); // [FF44+]
user_pref("extensions.update.autoUpdateDefault", false);
user_pref("extensions.update.enabled", false);
user_pref("extensions.webcompat-reporter.enabled", false);
user_pref("extensions.webservice.discoverURL", "");
+user_pref("geo.provider.ms-windows-location", false); // [WINDOWS]
+user_pref("geo.provider.use_corelocation", false); // [MAC]
+user_pref("geo.provider.use_gpsd", false); // [LINUX]
+user_pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
+user_pref("gfx.font_rendering.graphite.enabled", false);
+user_pref("gfx.font_rendering.opentype_svg.enabled", false);
+user_pref("intl.accept_languages", "en-US, en");
+user_pref("intl.charset.fallback.override", "windows-1252");
+user_pref("javascript.options.asmjs", false);
+user_pref("javascript.options.wasm", false);
+user_pref("javascript.use_us_english_locale", true); // [HIDDEN PREF]
+user_pref("keyword.enabled", false);
+user_pref("layout.css.visited_links_enabled", false);
user_pref("lightweightThemes.update.enabled", false);
+user_pref("media.autoplay.enabled.user-gestures-needed", false);
+user_pref("media.block-autoplay-until-in-foreground", true); // [DEFAULT: true]
+user_pref("media.eme.enabled", false);
+user_pref("media.getusermedia.audiocapture.enabled", false);
+user_pref("media.getusermedia.browser.enabled", false);
+user_pref("media.getusermedia.screensharing.enabled", false);
user_pref("media.gmp-eme-adobe.autoupdate", false);
user_pref("media.gmp-gmpopenh264.autoupdate", false);
user_pref("media.gmp-manager.updateEnabled", false);
user_pref("media.gmp-manager.url", "data:text/plain,");
user_pref("media.gmp-manager.url.override", "data:text/plain,");
user_pref("media.gmp-widevinecdm.autoupdate", false);
+user_pref("media.gmp-widevinecdm.enabled", false);
+user_pref("media.gmp-widevinecdm.visible", false);
+user_pref("media.navigator.enabled", false);
+user_pref("media.ondevicechange.enabled", false);
+user_pref("media.peerconnection.enabled", false);
+user_pref("media.peerconnection.ice.default_address_only", true);
+user_pref("media.peerconnection.ice.no_host", true); // [FF51+]
+user_pref("media.video_stats.enabled", false);
+user_pref("media.webspeech.synth.enabled", false);
+user_pref("middlemouse.contentLoadURL", false);
+user_pref("middlemouse.paste", false); // [DEFAULT: false on Windows]
+user_pref("network.IDN_show_punycode", true);
user_pref("network.allow-experiments", false);
-user_pref("network.captive-portal-service.enabled", false);
+user_pref("network.auth.subresource-http-auth-allow", 1);
+user_pref("network.captive-portal-service.enabled", false); // [FF52+]
user_pref("network.connectivity-service.enabled", false);
+user_pref("network.cookie.cookieBehavior", 1);
+user_pref("network.cookie.thirdparty.nonsecureSessionOnly", true); // [FF58+]
+user_pref("network.cookie.thirdparty.sessionOnly", true);
+user_pref("network.dns.disableIPv6", false);
user_pref("network.dns.disablePrefetch", true);
-user_pref("network.dns.disablePrefetchFromHTTPS", true);
-user_pref("network.file.disable_unc_paths", true);
-user_pref("network.predictor.enable-prefetch", false);
+user_pref("network.dns.disablePrefetchFromHTTPS", true); // [HIDDEN PREF ESR] [DEFAULT: true FF70+]
+user_pref("network.file.disable_unc_paths", true); // [HIDDEN PREF]
+user_pref("network.gio.supported-protocols", ""); // [HIDDEN PREF]
+user_pref("network.http.altsvc.enabled", false);
+user_pref("network.http.altsvc.oe", false);
+user_pref("network.http.redirection-limit", 10);
+user_pref("network.http.referer.XOriginPolicy", 1);
+user_pref("network.http.referer.XOriginTrimmingPolicy", 0); // [DEFAULT: 0]
+user_pref("network.http.referer.hideOnionSource", true);
+user_pref("network.http.speculative-parallel-limit", 0);
+user_pref("network.predictor.enable-prefetch", false); // [FF48+]
user_pref("network.predictor.enabled", false);
user_pref("network.prefetch-next", false);
user_pref("network.protocol-handler.external.ms-windows-store", false);
+user_pref("network.proxy.socks_remote_dns", true);
user_pref("network.trr.bootstrapAddress", "");
user_pref("network.trr.mode", 0);
user_pref("network.trr.uri", "");
+user_pref("offline-apps.allow_by_default", false);
+user_pref("pdfjs.disabled", false); // [DEFAULT: false]
user_pref("permissions.manager.defaultsUrl", "");
+user_pref("plugin.state.flash", 0);
+user_pref("plugins.click_to_play", true); // [DEFAULT: true FF25+]
+user_pref("privacy.clearOnShutdown.cache", true);
+user_pref("privacy.clearOnShutdown.cookies", true);
+user_pref("privacy.clearOnShutdown.downloads", true); // see note above
+user_pref("privacy.clearOnShutdown.formdata", true); // Form & Search History
+user_pref("privacy.clearOnShutdown.history", true); // Browsing & Download History
+user_pref("privacy.clearOnShutdown.offlineApps", true); // Offline Website Data
+user_pref("privacy.clearOnShutdown.sessions", true); // Active Logins
+user_pref("privacy.clearOnShutdown.siteSettings", false); // Site Preferences
+user_pref("privacy.cpd.cache", true);
+user_pref("privacy.cpd.cookies", true);
+user_pref("privacy.cpd.formdata", true); // Form & Search History
+user_pref("privacy.cpd.history", true); // Browsing & Download History
+user_pref("privacy.cpd.offlineApps", true); // Offline Website Data
+user_pref("privacy.cpd.passwords", false); // this is not listed
+user_pref("privacy.cpd.sessions", true); // Active Logins
+user_pref("privacy.cpd.siteSettings", false); // Site Preferences
+user_pref("privacy.donottrackheader.enabled", true);
+user_pref("privacy.firstparty.isolate", true);
+user_pref("privacy.firstparty.isolate.restrict_opener_access", true); // [DEFAULT: true]
+user_pref("privacy.resistFingerprinting", true);
+user_pref("privacy.resistFingerprinting.block_mozAddonManager", true); // [HIDDEN PREF]
+user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF]
+user_pref("privacy.sanitize.sanitizeOnShutdown", true);
+user_pref("privacy.sanitize.timeSpan", 0);
+user_pref("privacy.userContext.enabled", true);
+user_pref("privacy.userContext.longPressBehavior", 2);
+user_pref("privacy.userContext.ui.enabled", true);
+user_pref("privacy.usercontext.about_newtab_segregation.enabled", true); // [DEFAULT: true FF61+]
+user_pref("security.OCSP.enabled", 1);
+user_pref("security.OCSP.require", true);
+user_pref("security.ask_for_password", 2);
+user_pref("security.cert_pinning.enforcement_level", 2);
+user_pref("security.csp.enable", true); // [DEFAULT: true]
+user_pref("security.dialog_enable_delay", 700);
+user_pref("security.family_safety.mode", 0);
+user_pref("security.insecure_connection_icon.enabled", true); // [FF59+] [DEFAULT: true FF70+]
+user_pref("security.insecure_connection_text.enabled", true); // [FF60+]
+user_pref("security.mixed_content.block_active_content", true); // [DEFAULT: true]
+user_pref("security.mixed_content.block_display_content", true);
+user_pref("security.mixed_content.block_object_subrequest", true);
+user_pref("security.password_lifetime", 5);
+user_pref("security.pki.sha1_enforcement_level", 1);
+user_pref("security.ssl.disable_session_identifiers", true); // [HIDDEN PREF]
+user_pref("security.ssl.enable_ocsp_stapling", true);
user_pref("security.ssl.errorReporting.automatic", false);
user_pref("security.ssl.errorReporting.enabled", false);
user_pref("security.ssl.errorReporting.url", "");
+user_pref("security.ssl.require_safe_negotiation", true);
+user_pref("security.ssl.treat_unsafe_negotiation_as_broken", true);
+user_pref("security.tls.enable_0rtt_data", false);
user_pref("services.blocklist.addons.collection", "");
user_pref("services.blocklist.gfx.collection", "");
user_pref("services.blocklist.onecrl.collection", "");
user_pref("services.blocklist.plugins.collection", "");
user_pref("services.blocklist.update_enabled", false);
user_pref("shield.savant.enabled", false);
+user_pref("signon.autofillForms", false);
+user_pref("signon.formlessCapture.enabled", false);
user_pref("startup.homepage_override_url", "");
user_pref("startup.homepage_welcome_url", "");
user_pref("startup.homepage_welcome_url.additional", "");
+user_pref("toolkit.coverage.endpoint.base", "");
+user_pref("toolkit.coverage.opt-out", true); // [FF64+] [HIDDEN PREF]
user_pref("toolkit.telemetry.archive.enabled", false);
-user_pref("toolkit.telemetry.bhrPing.enabled", false);
+user_pref("toolkit.telemetry.bhrPing.enabled", false); // [FF57+] Background Hang Reporter
user_pref("toolkit.telemetry.cachedClientID", "");
-user_pref("toolkit.telemetry.enabled", false);
-user_pref("toolkit.telemetry.firstShutdownPing.enabled", false);
-user_pref("toolkit.telemetry.hybridContent.enabled", false);
-user_pref("toolkit.telemetry.newProfilePing.enabled", false);
+user_pref("toolkit.telemetry.coverage.opt-out", true); // [HIDDEN PREF]
+user_pref("toolkit.telemetry.enabled", false); // see [NOTE] above FF58+
+user_pref("toolkit.telemetry.firstShutdownPing.enabled", false); // [FF57+]
+user_pref("toolkit.telemetry.hybridContent.enabled", false); // [FF59+]
+user_pref("toolkit.telemetry.newProfilePing.enabled", false); // [FF55+]
user_pref("toolkit.telemetry.server", "data:,");
-user_pref("toolkit.telemetry.shutdownPingSender.enabled", false);
+user_pref("toolkit.telemetry.shutdownPingSender.enabled", false); // [FF55+]
user_pref("toolkit.telemetry.unified", false);
-user_pref("toolkit.telemetry.updatePing.enabled", false);
+user_pref("toolkit.telemetry.updatePing.enabled", false); // [FF56+]
+user_pref("toolkit.winRegisterApplicationRestart", false);
+user_pref("ui.use_standins_for_native_colors", true);
user_pref("webchannel.allowObject.urlWhitelist", "");
+user_pref("webgl.disable-extensions", true);
+user_pref("webgl.disable-fail-if-major-performance-caveat", true);
+user_pref("webgl.disabled", true);
+user_pref("webgl.enable-debug-renderer-info", false);
+user_pref("webgl.enable-webgl2", false);
+user_pref("webgl.min_capability_mode", true);
diff --git a/.local/templates/sh b/.local/templates/sh
new file mode 100644
index 0000000..27cae4a
--- /dev/null
+++ b/.local/templates/sh
@@ -0,0 +1,46 @@
+#! /usr/bin/env sh
+
+main()
+{
+ # Handle opts
+ opts "$@"
+ shift "$OPTS"
+ unset OPTS
+
+ # Show help
+ [ "$OPT_HELP_ONLY" ] && usage && exit 0
+
+ # TODO: Write actual program
+}
+
+opts()
+{
+ OPTS=0
+
+ while getopts ":h" opt
+ do
+ case "$opt" in
+ h) OPT_HELP_ONLY=1 ;;
+ *)
+ printf "Invalid option passed: %s\n" "$OPTARG" >&2
+ ;;
+ esac
+ done
+
+ unset opt
+}
+
+usage()
+{
+ cat <<EOF
+Usage:
+ $(basename "$0") -h
+
+Nondescript
+
+Options:
+ -h Show this help text and exit.
+EOF
+}
+
+main "$@"
diff --git a/.ssh/known_hosts b/.ssh/known_hosts
index 8100b20..fa9a3e6 100644
--- a/.ssh/known_hosts
+++ b/.ssh/known_hosts
@@ -26,3 +26,4 @@ pg09.gov.fuga.mintlab.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ671IYtPnzI0HY7OHL
# Misc
gitlab.com,35.231.145.151 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY=
+github.com,140.82.118.3 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==