User Tools

Site Tools


distros:opensuse_tumbleweed_desktop

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Last revisionBoth sides next revision
distros:opensuse_tumbleweed_desktop [2017/10/03 01:14] – [Open-Source Graphics] Sean Rhonedistros:opensuse_tumbleweed_desktop [2017/10/03 01:51] Sean Rhone
Line 1: Line 1:
 +====== Information ======
  
 +  * openSUSE ((https://www.opensuse.org))
 +  * Tumbleweed ((https://en.opensuse.org/Portal:Tumbleweed))
 +  * GNOME ((https://www.gnome.org))
 +  * KDE ((https://www.kde.org))
 +
 +====== Download ======
 +
 +===== DVD-x86_64-Current.iso =====
 +
 +  * http://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso
 +
 +===== Hashes =====
 +
 +  * http://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso.mirrorlist
 +
 +====== Installation Notes ======
 +
 +  * ''\EFI\opensuse\grubx64.efi'' ((Acer Trust))
 +
 +====== Repositories ======
 +
 +===== VideoLAN =====
 +
 +  * http://download.videolan.org/pub/vlc/SuSE/Tumbleweed/
 +  * Repository Priority: 98
 +
 +  * Provides extended multimedia support
 +
 +  sudo rpm --import 'http://download.videolan.org/pub/vlc/SuSE/Tumbleweed/repodata/repomd.xml.key' && sudo zypper ar -f 'http://download.videolan.org/pub/vlc/SuSE/Tumbleweed/SuSE.repo' && sudo zypper mr -p 98 'VideoLAN repo (Tumbleweed)'
 +
 +  sudo zypper dup --from 'VideoLAN repo (Tumbleweed)'
 +
 +===== namtrac:subpixel =====
 +
 +  * http://download.opensuse.org/repositories/home:/namtrac:/subpixel/openSUSE_Factory/x86_64/
 +  * Repository Priority: 97
 +
 +  * Provides patented subpixel rendering for fonts
 +
 +  sudo rpm --import 'http://download.opensuse.org/repositories/home:/namtrac:/subpixel/openSUSE_Factory/repodata/repomd.xml.key' && sudo zypper ar -f 'http://download.opensuse.org/repositories/home:/namtrac:/subpixel/openSUSE_Factory/home:namtrac:subpixel.repo' && sudo zypper mr -p 97 'subpixel (openSUSE_Factory)'
 +
 +  sudo zypper dup --from 'subpixel (openSUSE_Factory)'
 +
 +===== Wine =====
 +
 +  * http://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_Tumbleweed
 +  * Repository Priority: 96
 +
 +  * Provides Wine Staging
 +
 +  sudo rpm --import 'http://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_Tumbleweed/repodata/repomd.xml.key' && sudo zypper ar -f 'http://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_Tumbleweed/Emulators:Wine.repo' && sudo zypper mr -p 96 'Wine (openSUSE_Tumbleweed)'
 +
 +  sudo zypper dup --from 'Wine (openSUSE_Tumbleweed)'
 +
 +====== Software ======
 +
 +===== Disable USB Source =====
 +
 +****
 +
 +  sudo zypper modifyrepo -d -m 'hd'
 +
 +===== Update =====
 +
 +  * If any extra repositories are being used, be sure to dup from the repo first
 +
 +  sudo zypper clean --all && sudo zypper refresh -f && sudo zypper dup && sync
 +
 +===== GNU nano =====
 +
 +  * Installs ''nano''
 +  * Sets as system-wide default editor
 +  * Sets ''nowrap'' and ''nonewlines'' for current user
 +
 +  sudo zypper --non-interactive install 'nano' && export 'EDITOR=nano' && echo 'Defaults editor = /usr/bin/nano' | sudo tee '/etc/sudoers.d/nano' > '/dev/null' && echo 'set nowrap' | tee --append ~/'.nanorc' > '/dev/null' && echo 'set nonewlines' | tee --append ~/'.nanorc' > '/dev/null'
 +
 +===== General =====
 +
 +****
 +
 +  sudo zypper install keepassxc android-tools android-tools-udev filezilla aria2 p7zip perl-Image-ExifTool htop unar gdouros-symbola-fonts Mesa-demo-x gstreamer-plugins-libav
 +
 +===== GNOME =====
 +
 +****
 +
 +  rhythmbox gnome-session-wayland
 +
 +===== KDE =====
 +
 +****
 +
 +  transmission-qt
 +
 +===== VideoLAN =====
 +
 +****
 +
 +  vlc vlc-codec-gstreamer
 +
 +==== KDE ====
 +
 +  * Add these along with the above packages
 +
 +  phonon4qt5-backend-vlc phonon-backend-vlc vlc-qt
 +
 +===== Wine =====
 +
 +****
 +
 +  wine-staging
 +
 +===== VA-API =====
 +
 +****
 +
 +  intel-vaapi-driver gstreamer-plugins-vaapi
 +
 +===== VDPAU =====
 +
 +  * Also requires a driver depending on the GPU used
 +
 +  zypper search -s 'libvdpau_'
 +
 +  libgstvdpau libvdpau1
 +
 +===== Google Chrome =====
 +
 +****
 +
 +  sudo rpm --import 'https://dl-ssl.google.com/linux/linux_signing_key.pub' && sudo zypper install 'https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm'
 +
 +====== Settings ======
 +
 +===== Keyboard Shortcuts =====
 +
 +==== GNOME ====
 +
 +  * ''gnome-shell --replace'' doesn't work on Wayland session
 +
 +  gnome-terminal
 +
 +  gnome-shell --replace
 +
 +  keepassxc
 +
 +==== KDE ====
 +
 +  * ''konsole -e'' is an update command that can be assigned to the **Break** key ((TODO: Adapt this for ''gnome-terminal''))
 +
 +  konsole
 +
 +  keepassxc
 +
 +  konsole -e "bash -c 'sudo zypper clean --all && sudo zypper refresh -f && sudo zypper dup && sudo zypper ps -s && sync && read -n1'"
 +
 +===== gedit =====
 +
 +  * 4 Tab width
 +  * Insert Spaces for Tab mode
 +
 +===== Network =====
 +
 +==== VPN.AC ====
 +
 +  * See [[information:vpn.ac | VPN.AC]]
 +
 +==== DNS.WATCH DNS ===
 +
 +=== IPv4 ===
 +
 +  84.200.69.80
 +
 +  84.200.70.40
 +
 +  84.200.69.80,84.200.70.40
 +
 +=== IPv6 ==
 +
 +  2001:1608:10:25::1c04:b12f
 +
 +  2001:1608:10:25::9249:d69b
 +
 +  2001:1608:10:25::1c04:b12f,2001:1608:10:25::9249:d69b
 +
 +===== Nautilus =====
 +
 +  * Sort folders before files
 +  * 2GB File Previews
 +
 +===== Rhythmbox =====
 +
 +  * See [[Information:Internet Radio]]
 +
 +===== Terminal =====
 +
 +  * 10-notch Transparency
 +
 +===== YaST =====
 +
 +==== Boot Loader ====
 +
 +=== blk_mq ===
 +
 +  * See [[#i_o_schedulers | I/O Schedulers]] in order to select an I/O scheduler
 +
 +  scsi_mod.use_blk_mq='y'
 +
 +=== Linux ===
 +
 +****
 +
 +  acpi_osi='Linux'
 +
 +=== i915 ===
 +
 +****
 +
 +  i915.enable_guc_loading='2' i915.enable_guc_submission='2'
 +
 +=== Disable HT ===
 +
 +  * Set to half of total cores if Intel HT is enabled
 +
 +  maxcpus='4'
 +
 +=== Blacklist ===
 +
 +  * ''btusb,hci_uart'' control Bluetooth
 +  * ''uvcvideo'' controls Webcams
 +  * ''iTCO_wdt'' controls Intel's Hardware Watchdog
 +  * ''nowatchdog'' disables both soft and hard generic watchdogs
 +
 +  modprobe.blacklist='btusb,hci_uart,uvcvideo,iTCO_wdt' nowatchdog
 +
 +=== DRM Debug ===
 +
 +****
 +
 +  drm.debug='0xe'
 +
 +=== Corsair Gaming HARPOON RGB Mouse Quirk ===
 +
 +****
 +
 +  usbhid.quirks=0x1B1C:0x1B3C:0x20000000
 +
 +==== Fonts ====
 +
 +  * Requires [[#namtracsubpixel | namtrac:subpixel]] repo for Subpixel Rendering to function
 +
 +  * Font Antialiasing
 +  * Force Autohinting On
 +  * Force Hint Style: hintslight
 +  * Subpixel Rendering: rgb
 +  * LCD Filter: lcddefault
 +
 +===== GDM =====
 +
 +==== Disable Wayland ====
 +
 +  * TODO: Change this to a sed command
 +
 +  sudo -e '/etc/gdm/custom.conf'
 +
 +  WaylandEnable=false
 +
 +===== GNOME =====
 +
 +==== Notes ====
 +
 +  * If using external monitor primarily, monitor configuration must be complete before copying config to GDM
 +  * If keyboard shortcuts were set in Xorg session, they may not work in the Wayland session; remove the shortcuts in the Xorg session and then re-set them in Wayland ((https://bugzilla.redhat.com/show_bug.cgi?id=1367544))
 +
 +==== Root GUI Apps in Wayland ====
 +
 +  * Run this before running GUI applications requiring root
 +  * This needs re-ran after session restart
 +
 +  xhost +LOCAL:
 +
 +==== Input ====
 +
 +  gsettings set 'org.gnome.desktop.peripherals.touchpad' 'send-events' 'disabled-on-external-mouse'
 +
 +  gsettings set 'org.gnome.desktop.peripherals.touchpad' 'natural-scroll' 'false'
 +
 +  gsettings set 'org.gnome.desktop.peripherals.mouse' 'accel-profile' 'flat'
 +
 +  gsettings set 'org.gnome.desktop.peripherals.touchpad' 'tap-to-click' 'false'
 +
 +  gsettings set 'org.gnome.desktop.peripherals.touchpad' 'tap-and-drag' 'false'
 +
 +  gsettings set 'org.gnome.desktop.peripherals.touchpad' 'disable-while-typing' 'false'
 +
 +==== Extensions ====
 +
 +=== Top Panel Workspace Scroll ===
 +
 +  * https://extensions.gnome.org/extension/701/top-panel-workspace-scroll
 +  * https://github.com/timbertson/gnome-shell-scroll-workspaces
 +
 +  * Requires ''gnome-shell-extension-tool'' provided by ''gnome-shell-devel''
 +
 +  wget -O '/tmp/gnome-shell-scroll-workspaces-master.zip' 'https://github.com/timbertson/gnome-shell-scroll-workspaces/archive/master.zip' && unzip '/tmp/gnome-shell-scroll-workspaces-master.zip' -d '/tmp' && rm -Rf ~/'.local/share/gnome-shell/extensions/scroll-workspaces@gfxmonk.net' && mkdir -p ~/'.local/share/gnome-shell/extensions' && mv '/tmp/gnome-shell-scroll-workspaces-master/scroll-workspaces' ~/'.local/share/gnome-shell/extensions/scroll-workspaces@gfxmonk.net' && rm -R '/tmp/gnome-shell-scroll-workspaces-master.zip' '/tmp/gnome-shell-scroll-workspaces-master' && gnome-shell-extension-tool -e 'scroll-workspaces@gfxmonk.net' && sync
 +
 +===== KDE =====
 +
 +==== Settings ====
 +
 +=== Desktop Behavior ===
 +
 +  * Desktop Effects -> Wobbly Windows
 +  * Desktop Effects -> Dim Inactive
 +  * Desktop Effects -> Dim Screen for Administrator Mode
 +  * Desktop Effects -> Slide Back
 +  * Screen Edges -> Switch desktop on edge: Only When Moving Windows
 +  * Virtual Desktops -> Number of rows: 1
 +
 +==== KDE Connect ====
 +
 +  * Allows KDE Connect through the firewall
 +
 +  sudo -e '/etc/sysconfig/SuSEfirewall2' && sudo systemctl restart 'SuSEfirewall2'
 +
 +  FW_CONFIGURATIONS_EXT="kdeconnect-kde"
 +
 +==== Input ====
 +
 +  sudo -e '/etc/X11/xorg.conf.d/99-libinput-custom.conf'
 +
 +  Section "InputClass"
 +      Identifier          "libinput pointer custom"
 +      Driver              "libinput"
 +      MatchIsPointer      "yes"
 +      Option              "AccelProfile"                  "flat"
 +  EndSection
 +  
 +  Section "InputClass"
 +      Identifier          "libinput touchpad custom"
 +      Driver              "libinput"
 +      MatchIsTouchpad     "yes"
 +      Option              "AccelProfile"                  "flat"
 +      Option              "DisableWhileTyping"            "0"
 +      Option              "MiddleEmulation"               "0"
 +      Option              "NaturalScrolling"              "0"
 +      Option              "ScrollMethod"                  "twofinger"
 +      Option              "SendEventsMode"                "disabled-on-external-mouse"
 +      Option              "Tapping"                       "0"
 +  EndSection
 +  
 +  Section "InputClass"
 +      Identifier          "libinput touchscreen custom"
 +      Driver              "libinput"
 +      MatchIsTouchscreen  "yes"
 +      Option              "AccelProfile"                  "flat"
 +  EndSection
 +
 +===== I/O Schedulers =====
 +
 +==== Check ====
 +
 +  * Replace ''sda'' if necessary
 +  * If using ''blk-mq'', non-mq schedulers aren't present ((no ''noop'', ''cfq'' nor ''deadline''))
 +
 +  cat '/sys/block/sda/queue/scheduler'
 +
 +==== BFQ ====
 +
 +  * Good for average workloads and responsiveness
 +  * Requires [[distros:opensuse_tumbleweed_gnome#blk_mq | blk_mq]] and kernel 4.12+
 +
 +  echo 'ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="bfq"' | sudo tee '/etc/udev/rules.d/60-scheduler.rules' > '/dev/null' && sudo udevadm control --reload && sudo udevadm trigger
 +
 +==== mq-deadline ====
 +
 +  * Requires [[distros:opensuse_tumbleweed_gnome#blk_mq | blk_mq]]
 +
 +  echo 'ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="mq-deadline"' | sudo tee '/etc/udev/rules.d/60-scheduler.rules' > '/dev/null' && sudo udevadm control --reload && sudo udevadm trigger
 +
 +==== none ====
 +
 +  * If I/O load causes hitching/stuttering, this should not be used
 +  * Requires [[distros:opensuse_tumbleweed_gnome#blk_mq | blk_mq]] ((use ''noop'' if not using blk_mq))
 +
 +  echo 'ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="none"' | sudo tee '/etc/udev/rules.d/60-scheduler.rules' > '/dev/null' && sudo udevadm control --reload && sudo udevadm trigger
 +
 +===== Kernel Options =====
 +
 +  sudo -e '/etc/sysctl.d/99-custom.conf'
 +
 +  kernel.dmesg_restrict = 1
 +  kernel.kptr_restrict = 1
 +  kernel.sysrq = 1
 +
 +===== NetworkManager =====
 +
 +  sudo mkdir -p '/etc/NetworkManager/conf.d' && sudo -e '/etc/NetworkManager/conf.d/99-custom.conf'
 +
 +  [device-mac-randomization]
 +  wifi.scan-rand-mac-address=yes
 +  
 +  [connection-mac-randomization]
 +  ethernet.cloned-mac-address=random
 +  wifi.cloned-mac-address=random
 +  
 +  [connection]
 +  wifi.powersave=2
 +
 +===== Printer =====
 +
 +  * http://localhost:631/
 +
 +===== PulseAudio =====
 +
 +  nano ~/'.config/pulse/daemon.conf'
 +
 +  resample-method = soxr-vhq
 +  flat-volumes = no
 +
 +===== Secure Shell =====
 +
 +  * See [[Clients:Secure Shell]]
 +
 +===== systemd Journal =====
 +
 +  sudo mkdir -p '/etc/systemd/journald.conf.d' && sudo -e '/etc/systemd/journald.conf.d/logging.conf'
 +
 +  [Journal]
 +  SystemMaxUse=50M
 +  RuntimeMaxUse=50M
 +
 +===== TRIM =====
 +
 +==== Swap ====
 +
 +  * Add ''discard'' after ''defaults'' for the ''swap'' mountpoint
 +
 +  sudo -e '/etc/fstab'
 +
 +  discard
 +
 +==== Service ====
 +
 +****
 +
 +  sudo systemctl enable 'fstrim.timer' && sudo systemctl start 'fstrim.timer' 'fstrim' --now && sync && sudo systemctl status 'fstrim' -l
 +
 +===== Environment Variables =====
 +
 +==== Mutter ====
 +
 +  * This allows use of Wayland session on multi-graphics computers (like Optimus)
 +
 +  echo 'export MUTTER_ALLOW_HYBRID_GPUS=1' | sudo tee --append '/etc/environment' > '/dev/null'
 +
 +==== Wine Staging ====
 +
 +****
 +
 +  echo 'export STAGING_SHARED_MEMORY=1' | sudo tee --append '/etc/profile.d/wine-staging.sh' > '/dev/null' && echo 'export STAGING_WRITECOPY=1' | sudo tee --append '/etc/profile.d/wine-staging.sh' > '/dev/null'
 +
 +==== Timezone ====
 +
 +  * https://blog.packagecloud.io/eng/2017/02/21/set-environment-variable-save-thousands-of-system-calls
 +
 +  echo 'export TZ=:/etc/localtime' | sudo tee '/etc/profile.d/tz.sh' > '/dev/null'
 +
 +===== Zypper =====
 +
 +==== Allow Vendor Changes ====
 +
 +  * This sets both ''allowVendorChange'' and ''dupAllowVendorChange'' to ''true''
 +
 +  sudo sed -i 's/# solver.allowVendorChange = false/solver.allowVendorChange = true/g' '/etc/zypp/zypp.conf' && sudo sed -i 's/# solver.dupAllowVendorChange = false/solver.dupAllowVendorChange = true/g' '/etc/zypp/zypp.conf'
 +
 +====== Computer-specific ======
 +
 +===== Spinesnap =====
 +
 +==== Internal Speakers ====
 +
 +  * https://bugzilla.kernel.org/show_bug.cgi?id=195049
 +
 +=== Service ===
 +
 +  sudo zypper --non-interactive install 'hda-verb' && sudo -e '/etc/systemd/system/acer-speakers.service' && sudo systemctl daemon-reload && sudo systemctl enable 'acer-speakers' --now && sudo systemctl status 'acer-speakers' -l
 +
 +  [Unit]
 +  Description=Acer Predator G9-791 Internal Speaker Fix
 +  After=sound.target
 +  Wants=sound.target
 +  
 +  [Service]
 +  Type=oneshot
 +  ExecStart='/usr/bin/hda-verb' '/dev/snd/hwC0D0' '0x1b' '0x300' '0x9000'
 +  ExecStart='/usr/bin/hda-verb' '/dev/snd/hwC0D0' '0x1b' '0x300' '0xa000'
 +  ExecStart='/usr/bin/hda-verb' '/dev/snd/hwC0D0' '0x1b' '0x707' '0x60'
 +  
 +  [Install]
 +  WantedBy=sound.target
 +
 +=== Sleep Script ===
 +
 +  sudo -e '/usr/lib/systemd/system-sleep/acer-speakers.sleep' && sudo chmod +x '/usr/lib/systemd/system-sleep/acer-speakers.sleep'
 +
 +  #!/bin/sh
 +  '/usr/bin/hda-verb' '/dev/snd/hwC0D0' '0x1b' '0x300' '0x9000'
 +  '/usr/bin/hda-verb' '/dev/snd/hwC0D0' '0x1b' '0x300' '0xa000'
 +  '/usr/bin/hda-verb' '/dev/snd/hwC0D0' '0x1b' '0x707' '0x60'
 +
 +==== Open-Source Graphics ====
 +
 +=== intel + nouveau ===
 +
 +  * This supposedly gives better performance over ''modesetting''
 +  * ''TearFree'' was enabled; the man pages say it's disabled by-default though
 +
 +  sudo zypper --non-interactive install 'xf86-video-intel' 'xf86-video-nouveau' && sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
 +
 +<code>
 +Section "Device"
 +    Identifier      "Skylake GT2"
 +    Driver          "intel"
 +    BusID           "PCI:0:2:0"
 +    Option          "DRI"       "3"
 +    Option          "TearFree"  "0"
 +EndSection
 +
 +Section "Device"
 +    Identifier      "NV124"
 +    Driver          "nouveau"
 +    BusID           "PCI:1:0:0"
 +    Option          "DRI"       "3"
 +EndSection</code>
 +
 +=== modesetting ===
 +
 +  sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
 +
 +  Section "Device"
 +      Identifier      "Optimus"
 +      Driver          "modesetting"
 +  EndSection
 +
 +==== Proprietary Graphics ====
 +
 +  * TODO: Fix
 +
 +==== MSR ====
 +
 +  * Not necessary to be ran, only here for reference
 +  * Requires ''msr-tools''
 +
 +=== Enable Intel Speed Shift Technology ===
 +
 +  * ''0x770'' needs to report ''1''
 +
 +  sudo rdmsr --all --decimal '0x770'
 +
 +  sudo wrmsr --all '0x770' '1'
 +
 +=== Disable BD-PROCHOT ===
 +
 +  * ''0x1FC'' needs to be set to whatever it reports
 +
 +  sudo rdmsr --all --decimal '0x1FC'
 +
 +  sudo wrmsr --all '0x1FC' 'x'
 +
 +====== Steven Black's Unified Hosts File ======
 +
 +===== Service =====
 +
 +  sudo -e '/etc/systemd/system/hosts-up.service'
 +
 +  [Service]
 +  Type=oneshot
 +  WorkingDirectory=/tmp
 +  ExecStartPre='/usr/bin/rm' -Rf '/tmp/master.zip' '/tmp/hosts-master'
 +  ExecStartPre='/usr/bin/wget' 'https://github.com/StevenBlack/hosts/archive/master.zip' -O '/tmp/master.zip'
 +  ExecStartPre='/usr/bin/unzip' '/tmp/master.zip' -d '/tmp'
 +  ExecStart='/usr/bin/python3' '/tmp/hosts-master/updateHostsFile.py' --auto --replace --flush-dns-cache --extensions 'gambling' 'fakenews'
 +  ExecStartPost='/usr/bin/rm' -Rf '/tmp/master.zip' '/tmp/hosts-master'
 +  ExecStartPost='/usr/bin/sync'
 +
 +===== Timer =====
 +
 +  sudo -e '/etc/systemd/system/hosts-up.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'hosts-up.timer' --now && sudo systemctl start 'hosts-up' && sudo systemctl status 'hosts-up' -l
 +
 +  [Unit]
 +  Description=Steven Black's Unified Hosts File Sources Updater
 +  After=network-online.target
 +  Wants=network-online.target
 +  
 +  [Timer]
 +  OnCalendar=weekly
 +  Persistent=true
 +  
 +  [Install]
 +  WantedBy=timers.target
 +
 +====== Mozilla Firefox ======
 +
 +  * Use Disconnect.me strict protection Block List
 +
 +===== StartPage =====
 +
 +  * https://www.startpage.com
 +
 +===== user.js =====
 +
 +  cd ~/'.mozilla/firefox/'*'.default' && nano 'user.js' && cd ~
 +
 +<code>
 +user_pref("layout.frame_rate.precise", true);
 +user_pref("mousewheel.min_line_scroll_amount", 40);
 +user_pref("browser.sessionstore.interval", 300000);
 +user_pref("extensions.pocket.enabled", false);
 +user_pref("loop.enabled", false);
 +user_pref("reader.parse-on-load.enabled", false);
 +user_pref("network.captive-portal-service.enabled", false);
 +user_pref("network.cookie.cookieBehavior", 1);
 +user_pref("browser.sessionstore.privacy_level", 2);
 +user_pref("browser.cache.disk.enable", false);
 +user_pref("privacy.popups.disable_from_plugins", 3);
 +user_pref("dom.battery.enabled", false);
 +user_pref("media.peerconnection.ice.default_address_only", true);
 +user_pref("toolkit.telemetry.enabled", false);
 +user_pref("privacy.donottrackheader.enabled", true);
 +user_pref("geo.enabled", false);
 +user_pref("browser.safebrowsing.malware.enabled", false);
 +user_pref("browser.safebrowsing.phishing.enabled", false);
 +user_pref("browser.safebrowsing.downloads.enabled", false);
 +user_pref("webgl.disabled", true);
 +user_pref("network.cookie.lifetimePolicy", 2);
 +user_pref("browser.display.use_document_fonts", 0);
 +user_pref("network.http.referer.userControlPolicy", 2);
 +user_pref("dom.webaudio.enabled", false);
 +user_pref("dom.webnotifications.enabled", false);
 +user_pref("gfx.canvas.azure.accelerated", true);
 +user_pref("layers.acceleration.force-enabled", true);
 +user_pref("browser.tabs.remote.autostart", true);
 +user_pref("browser.tabs.remote.force-enable", true);
 +user_pref("media.mediasource.ignore_codecs", true);
 +user_pref("security.ssl.require_safe_negotiation", false);
 +user_pref("extensions.jid1-BoFifL9Vbdl2zQ@jetpack.showReleaseNotes", false);
 +user_pref("dom.storage.enabled", true);
 +user_pref("dom.event.clipboardevents.enabled", true);</code>
 +
 +===== Extensions =====
 +
 +==== Download ====
 +
 +  * 8 extensions
 +
 +  gio open 'https://addons.mozilla.org/en-US/firefox/addon/privacy-settings/versions' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/versions' && gio open 'https://www.eff.org/https-everywhere' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/cookie-autodelete/versions' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/https-by-default/versions' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/no-resource-uri-leak/versions' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/versions' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/canvasblocker/versions'
 +
 +==== Cookie AutoDelete ====
 +
 +  * Enable Active Mode
 +  * Don't Log Total Number Of Cookies Deleted
 +  * Don't Show Notification After Cookie CleanUp
 +  * Clean Cookies from Open Tabs on StartUp
 +
 +==== No Resource URI Leak ====
 +
 +  * Block Web-exposed subset of chrome URIs
 +  * Update the policy
 +
 +==== uBlock Origin ====
 +
 +  * Enable Advanced Mode
 +
 +  * Uncheck EasyPrivacy
 +  * Uncheck EasyList
 +  * Check MVPS HOSTS
 +  * Check hpHost's Ad and tracking servers
 +  * Check Dan Pollock's hosts file
 +  * Add the following custom filters
 +
 +<code>
 +https://secure.fanboy.co.nz/fanboy-problematic-sites.txt
 +https://secure.fanboy.co.nz/r/fanboy-ultimate.txt
 +https://secure.fanboy.co.nz/fanboy-antifacebook.txt
 +https://secure.fanboy.co.nz/fanboy-antifonts.txt
 +https://raw.githubusercontent.com/ryanbr/fanboy-adblock/master/fanboy-cookiemonster.txt
 +https://raw.githubusercontent.com/ryanbr/fanboy-adblock/master/popads-domains-list.txt
 +https://raw.githubusercontent.com/ryanbr/fanboy-adblock/master/fake-news.txt</code>
 +
 +====== Notable Folders and Commands ======
 +
 +===== GPG Keys =====
 +
 +==== Check Keys ====
 +
 +****
 +
 +  rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'
 +
 +==== Remove Keys ====
 +
 +****
 +
 +  sudo rpm -e gpg-pubkey-x
 +
 +===== Zypper =====
 +
 +==== List Repos and Priority ====
 +
 +****
 +
 +  zypper lr -p
 +
 +===== Shortcuts =====
 +
 +  /usr/share/applications
 +
 +  ~/.local/share/applications
 +
 +===== Icons =====
 +
 +  /usr/share/icons/hicolor
 +
 +  ~/.local/share/icons/hicolor
 +
 +===== List GNOME gsettings =====
 +
 +  * Change ''x'' to schema or omit it to show all settings
 +
 +  gsettings list-recursively 'x'
 +
 +===== GNOME Software Maintenance =====
 +
 +****
 +
 +  pkcon -c '1' refresh && pkcon update
 +
 +===== fstrim =====
 +
 +****
 +
 +  sudo fstrim -v --all
 +
 +===== GPU Info =====
 +
 +****
 +
 +  sudo zypper --non-interactive install 'inxi' 'xdpyinfo' && inxi -G
 +
 +===== Xorg Debug =====
 +
 +  journalctl -e _COMM='gdm-x-session'
 +
 +  gio open '/var/log/Xorg.0.log'
 +
 +===== Verify DRI3 =====
 +
 +****
 +
 +  LIBGL_DEBUG='verbose' glxinfo | grep 'libgl'
 +
 +===== Show CPU Frequency =====
 +
 +  grep 'MHz' '/proc/cpuinfo'
 +
 +  watch -n 0.1 grep \'cpu MHz\' '/proc/cpuinfo'
 +
 +===== Partition Information =====
 +
 +****
 +
 +  df -hT
 +
 +===== Encryption Information =====
 +
 +****
 +
 +  sudo cryptsetup -v status '/dev/dm-0'
 +
 +===== hdparm Secure Erase =====
 +
 +  * The suspend is needed to release frozen drive state ((Spinesnap))
 +
 +  systemctl suspend
 +
 +  lsblk
 +
 +  sudo hdparm -I '/dev/sda' | grep 'not'
 +
 +  sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda'
 +
 +  sudo hdparm --user-master u --security-erase 'x' '/dev/sda'
 +
 +  sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sda'
 +
 +==== Quick Commands ====
 +
 +  * Performs ''security-erase'' followed by ''security-erase-enhanced''
 +
 +=== sda ===
 +
 +****
 +
 +  sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase 'x' '/dev/sda' && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sda' && sync
 +
 +=== sdb ===
 +
 +****
 +
 +  sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdb' && sudo hdparm --user-master u --security-erase 'x' '/dev/sdb' && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdb' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sdb' && sync
 +
 +===== Clean EFI Variables =====
 +
 +  * This is only verified on Spinesnap, other computers beware as this can cause a brick apparently
 +  * This is an easier way of clearing boot entries outside of ''efibootmgr'' and manually deleting each entry
 +
 +  sudo rm -f '/sys/firmware/efi/efivars/'* || sync && sudo efibootmgr -v
 +
 +==== EFI Variables R/W ====
 +
 +  * This wasn't necessary on openSUSE TW, but should ''efivars'' need to be ''rw'', the following command does that
 +
 +  sudo mount -o 'remount' '/sys/firmware/efi/efivars' -o 'rw,nosuid,nodev,noexec,noatime'
 +
 +===== RAID Controller Details =====
 +
 +****
 +
 +  sudo mdadm --detail-platform
 +
 +===== VGA Switcheroo Power States =====
 +
 +  * https://nouveau.freedesktop.org/wiki/Optimus
 +  * DIS: Discrete GPU
 +  * IGD: Integrated Graphics
 +  * DIS-Audio: The audio device exported by your discrete GPU for HDMI sound playback
 +  * +: This device is connected to graphics connectors
 +  * OFF: The device is powered off
 +  * ON: The device is powered on
 +  * DynOff: The device is currently powered off but will be powered on when needed
 +  * DynPwr: The device is currently powered on but will be powered off when not needed
 +
 +  sudo cat '/sys/kernel/debug/vgaswitcheroo/switch'
 +
 +===== i915 GuC Firmware =====
 +
 +  sudo cat '/sys/kernel/debug/dri/0/i915_guc_info'
 +
 +  sudo cat '/sys/kernel/debug/dri/0/i915_guc_load_status'
 +
 +===== Optimal GCC compiler flags =====
 +
 +****
 +
 +  gcc -v -E -x c -march=native -mtune=native - < /dev/null 2>&1 | grep cc1 | perl -pe 's/ -mno-\S+//g; s/^.* - //g;'
 +
 +====== Privacy ======
 +
 +===== Remove EXIF data =====
 +
 +****
 +
 +  exiftool -all= *.* -overwrite_original