User Tools

Site Tools


distros:fedora_workstation_gnome

Table of Contents

Information

  • Fedora Workstation 1)
  • 27

Download

Workstation

Updated Live Images

Installation Notes

  • EFI/fedora/shimx64.efi 2)
  • Remove /home, set /boot and / to use XFS, expand /

Software Settings

Disable PackageKit

  • Package installations and upgrades are handled with dnf via command-line
  • This breaks GNOME Software Center
sudo systemctl mask 'packagekit' && sudo rm -Rf '/var/cache/PackageKit' && sudo pkill 'packagekitd' && sync

DNF Settings

  • Disables Delta RPMs
  • Downloads packages from fastest mirror
cat '/etc/dnf/dnf.conf' | grep -e 'deltarpm=false' -e 'fastestmirror=true' || echo -e "deltarpm=false\nfastestmirror=true" | sudo tee --append '/etc/dnf/dnf.conf' > '/dev/null' && cat '/etc/dnf/dnf.conf' | grep -e 'deltarpm=false' -e 'fastestmirror=true'

Repositories

RPM Fusion

Free

sudo rpm --import 'https://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-free-fedora-27' && sync && sudo dnf install 'https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-27.noarch.rpm' -y

negativo17

Nvidia driver, CUDA tools and libraries

sudo rpm --import 'http://negativo17.org/repos/RPM-GPG-KEY-slaanesh'
sudo dnf config-manager --add-repo='http://negativo17.org/repos/fedora-nvidia.repo'

espionage724/wine Coprs

Software

Update

sudo dnf clean 'all' && sudo dnf distro-sync -y && sudo dnf autoremove -y && sync

GNU nano

  • Installs nano
  • Sets as system-wide default editor
  • Sets nowrap and nonewlines for current user
sudo dnf install 'nano' -y && export 'EDITOR=nano' && echo 'Defaults editor = /usr/bin/nano' | sudo tee '/etc/sudoers.d/nano' > '/dev/null' && sudo cat '/etc/sudoers.d/nano' && echo -e "set nowrap\nset nonewlines" | tee ~/'.nanorc' > '/dev/null' && cat ~/'.nanorc'

General

  • kernel-tools is for setting the CPU governor
sudo dnf install filezilla keepassxc p7zip unar aria2 gimp transmission-gtk hdparm nano htop wget irqbalance kernel-tools

RPM Fusion

  • gstreamer1-libav and gstreamer1-plugins-ugly are needed to generate video thumbnails for more media
  • youtube-dl needs ffmpeg to correct DASH containers or something like that
mpv ffmpeg-libs gstreamer1-libav gstreamer1-plugins-ugly ffmpeg youtube-dl

VA-API

  • For GPUs using the intel kernel module
libva-intel-driver gstreamer1-vaapi libva-utils

VDPAU

  • For GPUs using the radeon, amdgpu, nouveau, or NVIDIA kernel module
  • mesa-vdpau-drivers can be omitted in-case of NVIDIA kernel module
mesa-vdpau-drivers vdpauinfo

Keybase

'https://prerelease.keybase.io/keybase_amd64.rpm'

Wine

  • libtxc_dxtn requires RPM Fusion repo
wine winetricks
libtxc_dxtn libtxc_dxtn.i686

Tor Browser

torbrowser-launcher

Google Chrome

sudo rpm --import 'https://dl-ssl.google.com/linux/linux_signing_key.pub' && sudo dnf install 'https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm'

Settings

Keyboard Shortcuts

  • gnome-shell --replace doesn't work on Wayland session
gnome-terminal
bash -c "secret-tool lookup 'keepass' 'default' | keepassxc --pw-stdin ~/'Documents/keepass.kdbx'"
gnome-shell --replace
false
gnome-terminal --command "bash -c 'sudo dnf clean 'all' && sudo dnf distro-sync -y && sudo dnf autoremove -y && sync && read -n1'"

Keys

  • Listed respectively to above
  • Ctrl + Alt + T
  • Ctrl + Alt + Z
  • Ctrl + Alt + \
  • Ctrl + Q 3)
  • Pause

gedit

  • 4 Tab width
  • Insert Spaces for Tab mode

Network

DNS.WATCH DNS

84.200.69.80,84.200.70.40
2001:1608:10:25::1c04:b12f,2001:1608:10:25::9249:d69b

Nautilus

  • Sort folders before files
  • 2GB File Previews

Rhythmbox

Terminal

  • 10-notch Transparency

GRUB

Anaconda Blacklist

  • nouveau may get automatically blacklisted; check this file and comment it out if it is
ls '/etc/modprobe.d/anaconda-blacklist.conf' && cat '/etc/modprobe.d/anaconda-blacklist.conf'
sudo -e '/etc/modprobe.d/anaconda-blacklist.conf'

UEFI

sudo -e '/etc/default/grub' && sudo grub2-mkconfig -o '/boot/efi/EFI/fedora/grub.cfg'

Legacy

sudo -e '/etc/default/grub' && sudo grub2-mkconfig -o '/boot/grub2/grub.cfg'

GRUB

GRUB_TIMEOUT=1

blk_mq

scsi_mod.use_blk_mq='y' dm_mod.use_blk_mq='y'

PCI-E ASPM

  • pcie_aspm can be off if ASPM causes problems 4)
pcie_aspm='force'

Intel HDA

snd_hda_intel.power_save='1' snd_hda_intel.enable_msi='1'

Reboot

  • Can be efi, pci, acpi, or TODO: Other stuff
  • efi is likely ok for platforms using UEFI
  • pci is likely ok for non-UEFI platforms
  • On Spinesnap, reboot=efi mostly fixes Ethernet not working after a reboot
reboot='efi'
reboot='pci'

Intel IOMMU

  • Requires Intel hardware that supports IOMMU
  • On Spinesnap, sometimes the NVMe controller has a DMAR-related error; no point in enabling IOMMU if not using virtualization?
intel_iommu='on'

Linux

acpi_osi='Linux'

i915

  • GuC firmware loading/submission requires PAVP to be enabled in BIOS
i915.enable_fbc='1' i915.fastboot='1' i915.enable_guc_loading='2' i915.enable_guc_submission='2'

Kernel 4.16

  • As of 4.16-rc1, enable_guc_loading, and enable_guc_submission are removed
  • GuC firmware load/submission options merged and changed to bitmask value
i915.enable_guc='3'

radeon

  • If HDMI or DisplayPort audio is wanted, set radeon.audio to 1
radeon.audio='0' radeon.deep_color='1'

Blacklist Watchdogs

  • iTCO_wdt controls watchdog on some Intel platforms
  • sp5100_tco controls watchdog on some AMD platforms
  • nowatchdog disables both soft and hard generic watchdogs
  • I don't use watchdog features and apparently this reduces power usage slightly
modprobe.blacklist='iTCO_wdt,sp5100_tco' nowatchdog

Backlight

  • This prevents systemd from restoring previous backlight value on reboot
  • This is necessary for Power Management
systemd.restore_state='0'

DRM Debug

drm.debug='0xe'

GDM

Disable Wayland

cat '/etc/gdm/custom.conf' | grep '#WaylandEnable' > '/dev/null' && sudo sed -i 's/'#WaylandEnable'/'WaylandEnable'/g' '/etc/gdm/custom.conf' && cat '/etc/gdm/custom.conf' | grep 'WaylandEnable'

GNOME

Root GUI Apps in Wayland

  • Run this before running GUI applications requiring root
  • This needs re-ran after session restart
xhost +LOCAL:

Settings

All-in-one

  • Last updated: 2018/02/18
gsettings set 'org.gnome.desktop.interface' 'enable-animations' 'false' && 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' && gsettings set 'org.gnome.software' 'download-updates' 'false'

Individual

  • Last updated: 2018/02/18
gsettings set 'org.gnome.desktop.interface' 'enable-animations' 'false'
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'
gsettings set 'org.gnome.software' 'download-updates' 'false'

KeePassXC

Add Database Password to GNOME Keyring

secret-tool store --label='KeePass' 'keepass' 'default'

Kernel Options

  • Enables kernel.dmesg_restrict, kernel.kptr_restrict, and kernel.sysrq
echo -e "kernel.dmesg_restrict = 1\nkernel.kptr_restrict = 1\nkernel.sysrq = 1" | sudo tee '/etc/sysctl.d/99-custom.conf' > '/dev/null' && cat '/etc/sysctl.d/99-custom.conf'

mpv

VA-API

  • For GPUs using the intel kernel module
  • This sets hwdec and vo to vaapi, ao to pulse, and hwdec-codecs to all
mkdir -p ~/'.config/mpv' && echo -e "hwdec=vaapi\nhwdec-codecs=all\nvo=vaapi\nao=pulse" | tee ~/'.config/mpv/mpv.conf' > '/dev/null' && cat ~/'.config/mpv/mpv.conf'
vainfo | grep -e 'Driver version'

VDPAU

  • For GPUs using the radeon, amdgpu, nouveau, or NVIDIA kernel modules
  • This sets hwdec and vo to vdpau, ao to pulse, and hwdec-codecs to all
mkdir -p ~/'.config/mpv' && echo -e "hwdec=vdpau\nhwdec-codecs=all\nvo=vdpau\nao=pulse" | tee ~/'.config/mpv/mpv.conf' > '/dev/null' && cat ~/'.config/mpv/mpv.conf'
vdpauinfo | grep -e 'Information string'

NetworkManager

  • wifi.powersave can be 2 for disabled, or 3 for enabled
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

Power Management

Notes

  • This expects a laptop with a battery
  • Do not use this for desktops

Testing

  • The following commands can be ran to see if they work on specific hardware
watch -n 0.1 grep \'cpu MHz\' '/proc/cpuinfo'
sudo x86_energy_perf_policy --all 'performance' --turbo-enable '1' --force
sudo x86_energy_perf_policy --all 'power' --turbo-enable '0' --force

Scripts

AC

  • Change the backlight sysfs as-needed (see backlight notes) or remove altogether
sudo mkdir -p '/etc/udev/scripts.d' && sudo -e '/etc/udev/scripts.d/ac-power.sh' && sudo chmod +x '/etc/udev/scripts.d/ac-power.sh'
#!/usr/bin/bash
# AC
echo "$(cat '/sys/class/backlight/'*'/max_brightness')" | tee '/sys/class/backlight/'*'/brightness' > '/dev/null'
echo 'performance' | tee '/sys/module/pcie_aspm/parameters/policy' > '/dev/null'
x86_energy_perf_policy --all 'performance' --turbo-enable '1' --force

Battery

  • Change the backlight sysfs as-needed (see backlight notes) or remove altogether
  • Spinesnap's lowest visible brightness is 76 5)
sudo mkdir -p '/etc/udev/scripts.d' && sudo -e '/etc/udev/scripts.d/battery-power.sh' && sudo chmod +x '/etc/udev/scripts.d/battery-power.sh'
#!/usr/bin/bash
# Battery
echo '376' | tee '/sys/class/backlight/'*'/brightness' > '/dev/null'
echo 'powersupersave' | tee '/sys/module/pcie_aspm/parameters/policy' > '/dev/null'
x86_energy_perf_policy --all 'power' --turbo-enable '0' --force

udev Rule

  • Requires the above AC and Battery scripts
sudo -e '/etc/udev/rules.d/99-power.rules' && sudo udevadm control --reload
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/etc/udev/scripts.d/ac-power.sh"
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/etc/udev/scripts.d/battery-power.sh"

Available PCIe ASPM Policies

  • As long as performance and powersupersave are available, the above scripts should work as-is
cat '/sys/module/pcie_aspm/parameters/policy' | grep -e 'performance' -e 'powersupersave'

PulseAudio

SoX Resampling

  • Sets resample-method to soxr-vhq for current user
echo 'resample-method = soxr-vhq' | tee ~/'.config/pulse/daemon.conf' > '/dev/null' && cat ~/'.config/pulse/daemon.conf' | grep -e 'resample-method = soxr-vhq'

Secure Shell

systemd

  • Max log file sizes of 50MB
sudo mkdir -p '/etc/systemd/journald.conf.d' && echo -e "[Journal]\nSystemMaxUse=50M\nRuntimeMaxUse=50M" | sudo tee '/etc/systemd/journald.conf.d/logging.conf' > '/dev/null' && cat '/etc/systemd/journald.conf.d/logging.conf'

TRIM

Swap

  • Add discard after defaults for the swap mountpoint 6)
sudo -e '/etc/fstab'
discard

Service

sudo systemctl enable 'fstrim.timer' --now && sudo systemctl start 'fstrim' && sync && sudo systemctl status 'fstrim' -l

Environment Variables

Timezone

echo 'export TZ=:/etc/localtime' | sudo tee '/etc/profile.d/tz.sh' > '/dev/null' && cat '/etc/profile.d/tz.sh' | grep -e 'export TZ=:/etc/localtime'

Wine Staging

echo -e "export STAGING_SHARED_MEMORY=1\nexport STAGING_WRITECOPY=1\nexport STAGING_RT_PRIORITY_SERVER=90" | sudo tee '/etc/profile.d/wine-staging.sh' > '/dev/null' && cat '/etc/profile.d/wine-staging.sh'

Realtime Priority Permissions

  • For Wine to be able to use the STAGING_RT_PRIORITY_SERVER environment variable
  • Allows rtprio up to 90 and nice up to 10
  • May also allow Realtime priorities to be used with other applications
  • NOTE: This makes an assumption that the current user is in a group with the same name; this is default behavior on Fedora 8)
echo -e "@CHANGEME - rtprio 90\n@CHANGEME - nice -10" | sudo tee '/etc/security/limits.d/99-custom.conf' > '/dev/null' && sudo sed -i 's/'CHANGEME'/'$USER'/g' '/etc/security/limits.d/99-custom.conf' && cat '/etc/security/limits.d/99-custom.conf'

NVIDIA

echo 'export __GL_YIELD=NOTHING' | sudo tee '/etc/profile.d/nvidia.sh' > '/dev/null' && cat '/etc/profile.d/nvidia.sh' | grep -e 'export __GL_YIELD=NOTHING'

Clutter

echo -e "export CLUTTER_DRIVER=gl3\nexport CLUTTER_VBLANK=dri" | sudo tee '/etc/profile.d/clutter.sh' > '/dev/null' && cat '/etc/profile.d/clutter.sh'

Mutter

  • This allows use of Wayland session on multi-graphics computers
echo 'export MUTTER_ALLOW_HYBRID_GPUS=1' | sudo tee --append '/etc/environment' > '/dev/null' && cat '/etc/environment' | grep 'MUTTER_ALLOW_HYBRID_GPUS=1'

Computer-specific

Spinesnap

CPU Undervolt

sudo dnf install 'msr-tools' -y && sudo -e '/etc/systemd/system/cpu-undervolt.service' && sudo systemctl daemon-reload && sudo systemctl enable 'cpu-undervolt' --now && sudo systemctl status 'cpu-undervolt' -l
[Unit]
Description=CPU Core and CPU Cache Undervolt

[Service]
Type=oneshot
ExecStart='/usr/sbin/wrmsr' '0x150' '0x80000011EB800000'
ExecStart='/usr/sbin/wrmsr' '0x150' '0x80000211EB800000'

ProtectControlGroups=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
PrivateTmp=yes
ProtectHome=yes
ProtectSystem=yes
NoNewPrivileges=yes
PrivateNetwork=yes
RestrictNamespaces=yes
MemoryDenyWriteExecute=yes
RestrictRealtime=yes

[Install]
WantedBy=multi-user.target

Values

  • First is CPU Core, second is CPU Cache
  • Additional values are here just in-case -160 ends up being unstable
-160

sudo wrmsr '0x150' '0x80000011EB800000' && sudo wrmsr '0x150' '0x80000211EB800000'
-155

sudo wrmsr '0x150' '0x80000011EC200000' && sudo wrmsr '0x150' '0x80000211EC200000'
-150

sudo wrmsr '0x150' '0x80000011ECC00000' && sudo wrmsr '0x150' '0x80000211ECC00000'
-145

sudo wrmsr '0x150' '0x80000011ED000000' && sudo wrmsr '0x150' '0x80000211ED000000'

Open-Source Graphics

intel + nouveau

  • Potentially faster with 2D acceleration
  • Sometimes has corruption with title bars in GNOME 9)
  • Acceleration is disabled on the NVIDIA dGPU since there's no re-clocking support on nouveau currently
  • TearFree is disabled since the compositor should be handling this, and don't need both 10)
  • Don't use this if using an external monitor primarily and the laptop display is shut, assuming the display port used is wired to the NVIDIA dGPU 11)
sudo dnf install 'xorg-x11-drv-intel' 'xorg-x11-drv-nouveau' -y && sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
Section "Device"
    Identifier  "Intel iGPU"
    Driver      "intel"
    BusID       "PCI:0:2:0"
    Option      "DRI"           "3"
    Option      "TearFree"      "0"
EndSection

Section "Device"
    Identifier  "NVIDIA dGPU"
    Driver      "nouveau"
    BusID       "PCI:1:0:0"
    Option      "DRI"           "3"
    Option	"NoAccel"	"1"
EndSection

modesetting

  • Potentially safer and more future-proof
  • Acceleration is disabled on the NVIDIA dGPU since there's no re-clocking support on nouveau currently
sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
Section "Device"
    Identifier  "Intel iGPU"
    Driver      "modesetting"
    BusID       "PCI:0:2:0"
EndSection

Section "Device"
    Identifier  "NVIDIA dGPU"
    Driver      "modesetting"
    BusID       "PCI:1:0:0"
    Option      "AccelMethod"   "none"
EndSection

Proprietary Graphics

Notes

Software

  • nvidia-driver-cuda provides nvidia-smi, which is useful for usage statistics
  • nvidia-driver-cuda-libs.i686 for 32-bit Wine applications
sudo dnf install nvidia-driver nvidia-driver-libs.i686 nvidia-driver-cuda nvidia-driver-cuda-libs.i686 nvidia-settings akmod-nvidia kernel-devel && sync

PRIME Synchronization

  • Add the following kernel option (UEFI or Legacy)
  • Last tested: 2018/02/24 12)
nvidia-drm.modeset='1'
Toggle
  • TODO: Test next time I install NVIDIA graphics
xrandr --output 'eDP-1-1' --set 'PRIME Synchronization' '0' 
xrandr --output 'eDP-1-1' --set 'PRIME Synchronization' '1'
Verify
  • 1 = Enabled
  • 0 = Disabled
xrandr --verbose | grep 'PRIME Synchronization'

xorg.conf

sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
Section "ServerLayout"
    Identifier  "layout"
    Screen 0    "nvidia"
    Inactive    "intel"
EndSection

Section "Device"
    Identifier  "nvidia"
    BusID       "PCI:1:0:0"
    Driver      "nvidia"
    Option      "ConnectToAcpid"    "0"
    Option      "Coolbits"          "8"
    Option      "TripleBuffer"      "1"
    Option      "Interactive"       "0"
    Option      "SLI"               "0"
    Option      "BaseMosaic"        "0"
EndSection

Section "Screen"
    Identifier  "nvidia"
    Device      "nvidia"
    Option      "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
    Identifier  "intel"
    BusID       "PCI:0:2:0"
    Driver      "modesetting"
    Option      "AccelMethod" "none"
EndSection

Section "Screen"
    Identifier  "intel"
    Device      "intel"
EndSection

NVIDIA Max GPU Performance

Launcher
mkdir -p ~/'.config/autostart' && nano ~/'.config/autostart/nvidia-max.desktop'
[Desktop Entry]
Type=Application
Name=NVIDIA Max Performance
Comment=Force Max GPU Performance Always
Exec=nvidia-settings --assign='GPUPowerMizerMode=1'
Terminal=false
Icon=nvidia-settings
Categories=Settings;

nvidia-smi Desktop Launcher

Launcher
mkdir -p ~/'.local/share/applications/utilities' && nano ~/'.local/share/applications/utilities/nvidia-smi.desktop'
[Desktop Entry]
Name=NVIDIA Stats
Comment=NVIDIA GPU Statistics via nvidia-smi
Exec=gnome-terminal --command "bash -c 'watch --interval '1' nvidia-smi'"
Type=Application
StartupNotify=true
Icon=0NS1_nvidia.0
Icon

mkdir -p ~/'.local/share/icons/hicolor/256x256/apps' && wget -O ~/'.local/share/icons/hicolor/256x256/apps/0NS1_nvidia.0.png' 'https://i.imgur.com/U8dIgh6.png'

Various AMD

Open-Source Graphics

radeon

  • Expects pre-SI GPUs 13)
  • For SI, CIK, and newer GPUs, use amdgpu, along with enabling si_support and cik_support respectively for the amdgpu kernel module 14)
sudo dnf install 'xorg-x11-drv-ati' -y && sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
Section "Device"
    Identifier  "AMD GPU"
    Driver      "radeon"
    Option      "AccelMethod"   "EXA"
    Option      "DRI"           "3"
    Option      "TearFree"      "0"
EndSection

Mozilla Firefox

  • Use Disconnect.me strict protection Block List
  • TODO: Fix user.js; it's restrictive and annoying…

Remove Default Extensions

sudo rm -Rfv '/usr/lib64/firefox/browser/features'

YouTube HTML5

Settings

Default Profile

rm -fv '/tmp/profiles.ini' && nano '/tmp/profiles.ini' && sed -i 's/'CHANGEME'/'$USER'/g' '/tmp/profiles.ini'
[General]
StartWithLastProfile=1

[Profile0]
Name=default
IsRelative=1
Path=CHANGEME
Default=1

user.js

rm -fv '/tmp/user.js' && nano '/tmp/user.js'
/******************************************************************************
 * SECTION: Verification                                                      *
 ******************************************************************************/

// Custom user.js file is present

/******************************************************************************
 * SECTION: My Custom Stuff                                                   *
 ******************************************************************************/

user_pref("mousewheel.min_line_scroll_amount", 40);
user_pref("browser.sessionstore.interval", 300000);
user_pref("extensions.pocket.enabled", false);
user_pref("reader.parse-on-load.enabled", false);
user_pref("privacy.popups.disable_from_plugins", 3);
user_pref("browser.safebrowsing.downloads.enabled", false);
user_pref("network.http.referer.userControlPolicy", 2);
user_pref("extensions.screenshots.system-disabled", true);
user_pref("media.autoplay.enabled", false);
user_pref("browser.tabs.drawInTitlebar", true);
user_pref("accessibility.force_disabled", 1);

/******************************************************************************
 * SECTION: GPU Acceleration (also custom stuff)                              *
 ******************************************************************************/

user_pref("layout.frame_rate.precise", true);
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("layout.css.servo.chrome.enabled", true);
user_pref("layers.omtp.enabled", true);

/******************************************************************************
 * SECTION: HTML5 / APIs / DOM                                                *
 ******************************************************************************/

user_pref("dom.serviceWorkers.enabled", false);
user_pref("dom.workers.enabled", false);
user_pref("dom.webnotifications.enabled", false);
user_pref("dom.enable_performance", false);
user_pref("dom.enable_user_timing", false);
user_pref("dom.webaudio.enabled", false);
user_pref("geo.enabled", false);
user_pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
user_pref("geo.wifi.logging.enabled", false);
user_pref("dom.mozTCPSocket.enabled",false);
user_pref("dom.storage.enabled",true);
user_pref("dom.netinfo.enabled", false);
user_pref("dom.network.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);
user_pref("media.navigator.enabled", false);
user_pref("media.navigator.video.enabled", false);
user_pref("media.getusermedia.screensharing.enabled", false);
user_pref("media.getusermedia.audiocapture.enabled", false);
user_pref("dom.battery.enabled", false);
user_pref("dom.telephony.enabled", false);
user_pref("beacon.enabled", false);
user_pref("dom.event.clipboardevents.enabled", false);
user_pref("dom.allow_cut_copy", false);
user_pref("media.webspeech.recognition.enable", false);
user_pref("media.webspeech.synth.enabled", false);
user_pref("device.sensors.enabled", false);
user_pref("browser.send_pings", false);
user_pref("browser.send_pings.require_same_host", true);
user_pref("dom.gamepad.enabled", false);
user_pref("dom.vr.enabled", false);
user_pref("dom.vibrator.enabled", false);
user_pref("dom.enable_resource_timing", false);
user_pref("dom.archivereader.enabled", false);
user_pref("webgl.disabled", true);
user_pref("webgl.min_capability_mode", true);
user_pref("webgl.disable-extensions", true);
user_pref("webgl.disable-fail-if-major-performance-caveat", true);
user_pref("webgl.enable-debug-renderer-info", false);
user_pref("pdfjs.enableWebGL", false);
user_pref("dom.maxHardwareConcurrency", 2);

/******************************************************************************
 * SECTION: Misc                                                              *
 ******************************************************************************/

user_pref("camera.control.face_detection.enabled", false);
user_pref("browser.search.defaultenginename", "DuckDuckGo");
user_pref("browser.search.order.1", "DuckDuckGo");
user_pref("keyword.URL", "https://duckduckgo.com/html/?q=!+");
user_pref("browser.search.countryCode", "US");
user_pref("browser.search.region", "US");
user_pref("browser.search.geoip.url", "");
user_pref("intl.accept_languages", "en-us, en");
user_pref("intl.locale.matchOS", false);
user_pref("browser.search.geoSpecificDefaults", false);
user_pref("clipboard.autocopy", false);
user_pref("javascript.use_us_english_locale", true);
user_pref("keyword.enabled", true);
user_pref("browser.urlbar.trimURLs", false);
user_pref("browser.fixup.alternate.enabled", false);
user_pref("browser.fixup.hide_user_pass", true);
user_pref("network.proxy.socks_remote_dns", true);
user_pref("network.manage-offline-status", false);
user_pref("security.mixed_content.block_active_content", true);
user_pref("security.mixed_content.block_display_content",	true);
user_pref("network.jar.open-unsafe-types", false);
user_pref("security.xpconnect.plugin.unrestricted", false);
user_pref("security.fileuri.strict_origin_policy", true);
user_pref("browser.urlbar.filter.javascript", true);
user_pref("javascript.options.asmjs", false);
user_pref("gfx.font_rendering.opentype_svg.enabled", false);
user_pref("svg.disabled", false);
user_pref("media.video_stats.enabled", false);
user_pref("general.buildID.override", "20100101");
user_pref("browser.startup.homepage_override.buildID", "20100101");
user_pref("browser.display.use_document_fonts", 0);
user_pref("network.protocol-handler.warn-external-default", true);
user_pref("network.protocol-handler.external.http", false);
user_pref("network.protocol-handler.external.https", false);
user_pref("network.protocol-handler.external.javascript", false);
user_pref("network.protocol-handler.external.moz-extension", false);
user_pref("network.protocol-handler.external.ftp", false);
user_pref("network.protocol-handler.external.file", false);
user_pref("network.protocol-handler.external.about", false);
user_pref("network.protocol-handler.external.chrome", false);
user_pref("network.protocol-handler.external.blob", false);
user_pref("network.protocol-handler.external.data", false);
user_pref("network.protocol-handler.expose-all", false);
user_pref("network.protocol-handler.expose.http", true);
user_pref("network.protocol-handler.expose.https", true);
user_pref("network.protocol-handler.expose.javascript", true);
user_pref("network.protocol-handler.expose.moz-extension", true);
user_pref("network.protocol-handler.expose.ftp", true);
user_pref("network.protocol-handler.expose.file", true);
user_pref("network.protocol-handler.expose.about", true);
user_pref("network.protocol-handler.expose.chrome", true);
user_pref("network.protocol-handler.expose.blob", true);
user_pref("network.protocol-handler.expose.data", true);

/******************************************************************************
 * SECTION: Extensions / plugins                                              *
 ******************************************************************************/

user_pref("security.dialog_enable_delay", 1000);
user_pref("xpinstall.signatures.required", true);
user_pref("extensions.getAddons.cache.enabled", false);
user_pref("lightweightThemes.update.enabled", false);
user_pref("plugin.state.flash", 0);
user_pref("plugin.state.java", 0);
user_pref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled",	false);
user_pref("dom.ipc.plugins.reportCrashURL", false);
user_pref("browser.safebrowsing.blockedURIs.enabled", true);
user_pref("shumway.disabled", true);
user_pref("plugin.state.libgnome-shell-browser-plugin", 0);
user_pref("media.gmp-provider.enabled",		false);
user_pref("plugins.click_to_play", true);
user_pref("extensions.update.enabled", true);
user_pref("extensions.blocklist.enabled", true);
user_pref("services.blocklist.update_enabled", true);
user_pref("extensions.blocklist.url", "https://blocklist.addons.mozilla.org/blocklist/3/%APP_ID%/%APP_VERSION%/");

/******************************************************************************
 * SECTION: Firefox (anti-)features / components                              *
 ******************************************************************************/

user_pref("devtools.webide.enabled", false);
user_pref("devtools.webide.autoinstallADBHelper", false);
user_pref("devtools.webide.autoinstallFxdtAdapters", false);
user_pref("devtools.debugger.remote-enabled", false);
user_pref("devtools.chrome.enabled", false);
user_pref("devtools.debugger.force-local", true);
user_pref("toolkit.telemetry.enabled", false);
user_pref("toolkit.telemetry.unified", false);
user_pref("experiments.supported", false);
user_pref("experiments.enabled", false);
user_pref("experiments.manifest.uri", "");
user_pref("network.allow-experiments", false);
user_pref("breakpad.reportURL", "");
user_pref("browser.tabs.crashReporting.sendReport", false);
user_pref("browser.crashReports.unsubmittedCheck.enabled", false);
user_pref("dom.flyweb.enabled", false);
user_pref("browser.uitour.enabled", false);
user_pref("privacy.trackingprotection.enabled", true);
user_pref("privacy.trackingprotection.pbmode.enabled", true);
user_pref("privacy.userContext.enabled", false);
user_pref("privacy.resistFingerprinting", true);
user_pref("pdfjs.disabled", true);
user_pref("datareporting.healthreport.uploadEnabled", false);
user_pref("datareporting.healthreport.service.enabled", false);
user_pref("datareporting.policy.dataSubmissionEnabled", false);
user_pref("browser.selfsupport.url", "");
user_pref("loop.enabled", false);
user_pref("loop.logDomains", false);
user_pref("app.update.auto", false);
user_pref("app.update.enabled", false);
user_pref("browser.safebrowsing.enabled", false);
user_pref("browser.safebrowsing.phishing.enabled", false);
user_pref("browser.safebrowsing.malware.enabled", false);
user_pref("browser.safebrowsing.downloads.remote.enabled", false);
user_pref("browser.pocket.enabled", false);
user_pref("extensions.pocket.enabled", false);
user_pref("extensions.shield-recipe-client.enabled", false);
user_pref("app.shield.optoutstudies.enabled", false);
user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false);

/******************************************************************************
 * SECTION: Automatic connections                                             *
 ******************************************************************************/

user_pref("network.prefetch-next", false);
user_pref("network.dns.disablePrefetch", true);
user_pref("network.dns.disablePrefetchFromHTTPS", true);
user_pref("network.predictor.enabled", false);
user_pref("network.dns.blockDotOnion", true);
user_pref("browser.search.suggest.enabled", false);
user_pref("browser.urlbar.suggest.searches", false);
user_pref("browser.urlbar.suggest.history", false);
user_pref("browser.casting.enabled", false);
user_pref("media.gmp-gmpopenh264.enabled", false);
user_pref("media.gmp-manager.url", "");
user_pref("network.http.speculative-parallel-limit", 0);
user_pref("browser.aboutHomeSnippets.updateUrl", "");
user_pref("browser.search.update", false);
user_pref("network.captive-portal-service.enabled", false);

/******************************************************************************
 * SECTION: HTTP                                                              *
 ******************************************************************************/

user_pref("network.negotiate-auth.allow-insecure-ntlm-v1", false);
user_pref("network.negotiate-auth.allow-insecure-ntlm-v1-https", false);
user_pref("security.csp.experimentalEnabled", true);
user_pref("security.csp.enable", true);
user_pref("security.sri.enable", true);
user_pref("privacy.donottrackheader.enabled", true);
user_pref("network.http.referer.spoofSource", true);
user_pref("network.cookie.cookieBehavior", 1);
user_pref("privacy.firstparty.isolate", true);
user_pref("network.cookie.thirdparty.sessionOnly", true);

/*******************************************************************************
 * SECTION: Caching                                                            *
 ******************************************************************************/

user_pref("browser.privatebrowsing.autostart", false);
user_pref("browser.cache.offline.enable", false);
user_pref("privacy.sanitize.sanitizeOnShutdown", true);
user_pref("privacy.clearOnShutdown.cache", true);
user_pref("privacy.clearOnShutdown.cookies", true);
user_pref("privacy.clearOnShutdown.downloads", true);
user_pref("privacy.clearOnShutdown.formdata", true);
user_pref("privacy.clearOnShutdown.history", true);
user_pref("privacy.clearOnShutdown.offlineApps", true);
user_pref("privacy.clearOnShutdown.sessions", true);
user_pref("privacy.clearOnShutdown.openWindows", true);
user_pref("privacy.sanitize.timeSpan", 0);
user_pref("privacy.cpd.offlineApps", true);
user_pref("privacy.cpd.cache", true);
user_pref("privacy.cpd.cookies", true);
user_pref("privacy.cpd.downloads", true);
user_pref("privacy.cpd.formdata", true);
user_pref("privacy.cpd.history", true);
user_pref("privacy.cpd.sessions", true);
user_pref("places.history.enabled", false);
user_pref("browser.cache.disk.enable", false);
user_pref("browser.cache.memory.enable", false);
user_pref("browser.cache.disk_cache_ssl", false);
user_pref("browser.download.manager.retention", 0);
user_pref("signon.rememberSignons", true);
user_pref("browser.formfill.enable", false);
user_pref("network.cookie.lifetimePolicy", 2);
user_pref("signon.autofillForms", false);
user_pref("signon.formlessCapture.enabled", false);
user_pref("signon.autofillForms.http", false);
user_pref("security.insecure_field_warning.contextual.enabled", true);
user_pref("browser.formfill.expire_days", 0);
user_pref("browser.sessionstore.privacy_level", 2);
user_pref("browser.helperApps.deleteTempFileOnExit", true);
user_pref("browser.pagethumbnails.capturing_disabled", true);
user_pref("browser.shell.shortcutFavicons", false);

/*******************************************************************************
 * SECTION: UI related                                                         *
 *******************************************************************************/

user_pref("security.insecure_password.ui.enabled", true);
user_pref("dom.event.contextmenu.enabled", false);
user_pref("dom.disable_beforeunload", true);
user_pref("browser.download.folderList", 2);
user_pref("browser.download.useDownloadDir", false);
user_pref("browser.newtabpage.enabled", false);
user_pref("browser.newtab.url", "about:blank");
user_pref("browser.newtabpage.activity-stream.enabled", false);
user_pref("browser.newtabpage.enhanced", false);
user_pref("browser.newtab.preload", false);
user_pref("browser.newtabpage.directory.ping", "");
user_pref("browser.newtabpage.directory.source", "data:text/plain,{}");
user_pref("plugins.update.notifyUser", true);
user_pref("network.IDN_show_punycode", true);
user_pref("browser.urlbar.autoFill", false);
user_pref("browser.urlbar.autoFill.typed", false);
user_pref("layout.css.visited_links_enabled", false);
user_pref("browser.urlbar.autocomplete.enabled", false);
user_pref("browser.shell.checkDefaultBrowser", false);
user_pref("security.ask_for_password", 2);
user_pref("security.password_lifetime", 1);
user_pref("browser.offline-apps.notify", true);

/******************************************************************************
 * SECTION: Cryptography                                                      *
 ******************************************************************************/

user_pref("network.stricttransportsecurity.preloadlist", true);
user_pref("security.OCSP.enabled", 1);
user_pref("security.ssl.enable_ocsp_stapling", true);
user_pref("security.ssl.enable_ocsp_must_staple", true);
user_pref("security.OCSP.require", true);
user_pref("security.ssl.disable_session_identifiers", true);
user_pref("security.tls.version.min", 1);
user_pref("security.tls.version.max", 4);
user_pref("security.tls.version.fallback-limit", 3);
user_pref("security.cert_pinning.enforcement_level", 2);
user_pref("security.pki.sha1_enforcement_level", 1);
user_pref("security.ssl.treat_unsafe_negotiation_as_broken", true);
user_pref("security.ssl.errorReporting.enabled", false);
user_pref("security.ssl.errorReporting.automatic", false);
user_pref("browser.ssl_override_behavior", 1);

/******************************************************************************
 * SECTION: Cipher suites                                                     *
 ******************************************************************************/

user_pref("security.ssl3.rsa_null_sha", false);
user_pref("security.ssl3.rsa_null_md5", false);
user_pref("security.ssl3.ecdhe_rsa_null_sha", false);
user_pref("security.ssl3.ecdhe_ecdsa_null_sha", false);
user_pref("security.ssl3.ecdh_rsa_null_sha", false);
user_pref("security.ssl3.ecdh_ecdsa_null_sha", false);
user_pref("security.ssl3.rsa_seed_sha", false);
user_pref("security.ssl3.rsa_rc4_40_md5", false);
user_pref("security.ssl3.rsa_rc2_40_md5", false);
user_pref("security.ssl3.rsa_1024_rc4_56_sha", false);
user_pref("security.ssl3.rsa_camellia_128_sha", false);
user_pref("security.ssl3.ecdhe_rsa_aes_128_sha", false);
user_pref("security.ssl3.ecdhe_ecdsa_aes_128_sha", false);
user_pref("security.ssl3.ecdh_rsa_aes_128_sha", false);
user_pref("security.ssl3.ecdh_ecdsa_aes_128_sha", false);
user_pref("security.ssl3.dhe_rsa_camellia_128_sha", false);
user_pref("security.ssl3.dhe_rsa_aes_128_sha", false);
user_pref("security.ssl3.ecdh_ecdsa_rc4_128_sha", false);
user_pref("security.ssl3.ecdh_rsa_rc4_128_sha", false);
user_pref("security.ssl3.ecdhe_ecdsa_rc4_128_sha", false);
user_pref("security.ssl3.ecdhe_rsa_rc4_128_sha", false);
user_pref("security.ssl3.rsa_rc4_128_md5", false);
user_pref("security.ssl3.rsa_rc4_128_sha", false);
user_pref("security.tls.unrestricted_rc4_fallback", false);
user_pref("security.ssl3.dhe_dss_des_ede3_sha", false);
user_pref("security.ssl3.dhe_rsa_des_ede3_sha", false);
user_pref("security.ssl3.ecdh_ecdsa_des_ede3_sha", false);
user_pref("security.ssl3.ecdh_rsa_des_ede3_sha", false);
user_pref("security.ssl3.ecdhe_ecdsa_des_ede3_sha", false);
user_pref("security.ssl3.ecdhe_rsa_des_ede3_sha", false);
user_pref("security.ssl3.rsa_des_ede3_sha", false);
user_pref("security.ssl3.rsa_fips_des_ede3_sha", false);
user_pref("security.ssl3.ecdh_rsa_aes_256_sha", false);
user_pref("security.ssl3.ecdh_ecdsa_aes_256_sha", false);
user_pref("security.ssl3.rsa_camellia_256_sha", false);
user_pref("security.ssl3.ecdhe_rsa_aes_256_sha", true);
user_pref("security.ssl3.ecdhe_ecdsa_aes_256_sha", true);
user_pref("security.ssl3.ecdhe_ecdsa_aes_128_gcm_sha256", true);
user_pref("security.ssl3.ecdhe_rsa_aes_128_gcm_sha256", true);
user_pref("security.ssl3.ecdhe_ecdsa_chacha20_poly1305_sha256", true);
user_pref("security.ssl3.ecdhe_rsa_chacha20_poly1305_sha256", true);
user_pref("security.ssl3.dhe_rsa_camellia_256_sha", false);
user_pref("security.ssl3.dhe_rsa_aes_256_sha", false);
user_pref("security.ssl3.dhe_dss_aes_128_sha", false);
user_pref("security.ssl3.dhe_dss_aes_256_sha", false);
user_pref("security.ssl3.dhe_dss_camellia_128_sha", false);
user_pref("security.ssl3.dhe_dss_camellia_256_sha", false);
user_pref("security.ssl3.rsa_aes_256_sha", true);
user_pref("security.ssl3.rsa_aes_128_sha", true);

/******************************************************************************
 * END                                                                        *
 ******************************************************************************/

Apply Settings

  • Path should report the current user's username, and the text Custom user.js file is present should be visible
pkill 'firefox' && rm -Rfv ~/'.mozilla' && sync && mkdir -p ~/'.mozilla/firefox/'$USER && mv '/tmp/profiles.ini' ~/'.mozilla/firefox/profiles.ini' && mv '/tmp/user.js' ~/'.mozilla/firefox/'$USER'/user.js' && sync && cat ~/'.mozilla/firefox/profiles.ini' | grep $USER && cat ~/'.mozilla/firefox/'$USER'/user.js' | grep 'user.js'

Extensions

  • privacy.resistFingerprinting needs to be temporarily set to false in about:config or else extensions download pages won't allow downloading 15)

Download

  • 2 extensions
gio open 'https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/versions' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/versions'

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

Custom 3rd-party filters

  • Last updated: 2018/02/07 16)
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
https://raw.githubusercontent.com/ryanbr/fanboy-adblock/master/enhancedstats-addon.txt

My filters

  • Last updated: 2018/02/07 17)
! Facebook 2017/11/10
www.facebook.com###sideNav > div
www.facebook.com###rightCol
www.facebook.com###fbDockChatBuddylistNub > .fbNubButton
www.facebook.com###feedx_sprouts_container

! Reddit 2017/11/10
www.reddit.com##.trending-subreddits
www.reddit.com###chat
www.reddit.com##.initialized.listing-chooser
www.reddit.com##.listingsignupbar.infobar
www.reddit.com##.menuarea
www.reddit.com##.create.sidebox
www.reddit.com##.hohoho.sidebox

! Imgur 2017/11/10
imgur.com###right-content
imgur.com##.caption-create
imgur.com##.post-action
imgur.com##.comments-info
imgur.com###topbar
imgur.com##.spotlight-container

! Phoronix 2017/11/10
www.phoronix.com##.restore.notice
www.phoronix.com###breadcrumbs
www.phoronix.com###widget_6
www.phoronix.com###notices
www.phoronix.com###channel-subtabbar
www.phoronix.com###widget_152
www.phoronix.com###widget_153
www.phoronix.com###widget_2
www.phoronix.com###widget_151
www.phoronix.com###widget_9
www.phoronix.com###widget_7
www.phoronix.com###widget_4
www.phoronix.com###footer-tabbar
www.phoronix.com###footer-copyright
www.phoronix.com###ui-id-1
www.phoronix.com###sidebar
www.phoronix.com###footer

! My Digital Life Forums 2017/11/10
forums.mydigitallife.net##.noticeContent.baseHtml
forums.mydigitallife.net##footer
forums.mydigitallife.net##.persistentFooterButton__bar--spaceHolder
forums.mydigitallife.net##.element.concealed

! Gfycat 2017/11/10
gfycat.com###header-container
gfycat.com###video-details-container
gfycat.com##.right

Notable Folders and Commands

youtube-dl

Show Formats

  • Change x to a URL
youtube-dl -F x

Download Audio-only

  • Download the m4a audio only format shown from the above command
  • The format code is likely 140
  • Change x to a URL
youtube-dl -f 140 x

Shortcuts

/usr/share/applications
~/.local/share/applications

Icons

/usr/share/icons/hicolor
~/.local/share/icons/hicolor

Anaconda Module Blacklists

sudo -e '/etc/modprobe.d/anaconda-blacklist.conf'

YUM/DNF Repos

gio open '/etc/yum.repos.d'

DNF History

Transaction IDs

sudo dnf history

Undo

  • Change x to a transaction ID found above
sudo dnf history undo x

GPG Keys

Check Keys

rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'

Remove Keys

sudo rpm -e x

Re-generate Thumbnails

rm -Rf ~/'.cache/thumbnails'

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

SELinux Re-label

sudo touch '/.autorelabel'

Xorg Debug

journalctl -e _COMM='gdm-x-session'
gio open ~/'.local/share/xorg/Xorg.1.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

sudo dnf install 'hdparm' -y && sync
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'

NVMe Erase

  • NVMe Erase from the start page lands here and I usually use a Ubuntu LiveUSB to do this, hence the apt command
sudo apt install 'nvme-cli' -y && sync
sudo dnf install 'nvme-cli' -y && sync
sudo nvme format '/dev/nvme0' --reset --ses='1' --pil='0' --pi='0' --ms='0' && sync

Clean EFI Variables

  • This works fine on a few Acer and Dell laptops, but could potentially cause a brick with bad platform implementations, use at own risk
  • Safer way is to use efibootmgr to remove boot entries
sudo rm -f '/sys/firmware/efi/efivars/'* || sync && sudo efibootmgr -v

RAID

Controller Details

sudo mdadm --detail-platform

Create Software RAID

  • Came from old notes; I assume this worked at some point, but in any case, the syntax looks nice :p
sudo mdadm --create '/dev/md0' --name='RAID' --level='0' --raid-devices='3' '/dev/sda' '/dev/sdb' '/dev/sdc' --verbose

VGA Switcheroo Power States

sudo cat '/sys/kernel/debug/vgaswitcheroo/switch'

Backlight

Notes

  • The following commands with an asterisk expect only one backlight controller at /sys/class/backlight
  • This was only tested on one laptop with intel_backlight
  • See Power Management notes on how to add backlight changes to a udev script
  • See backlight for more details

Controller Name

ls '/sys/class/backlight'

Query Current Brightness

cat '/sys/class/backlight/'*'/brightness'

Query Max Brightness

cat '/sys/class/backlight/'*'/max_brightness'

Set Custom Brightness

  • Change 376 to desired brightness
  • Desired brightness must be under max_brightness value
echo "376" | sudo tee '/sys/class/backlight/'*'/brightness' > '/dev/null'

Set Max Brightness

echo "$(cat '/sys/class/backlight/'*'/max_brightness')" | sudo tee '/sys/class/backlight/'*'/brightness' > '/dev/null'

Intel GuC Firmware

sudo cat '/sys/kernel/debug/dri/0/i915_guc_info'
sudo cat '/sys/kernel/debug/dri/0/i915_guc_load_status'

Hyper-threading Information

grep -e "processor" -e "core id" -e "^$" /proc/cpuinfo

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

Clear Terminal History

history -cw

oathtool

  • x is a secret without &digits=6
oathtool --totp -b 'x'

Remove EXIF data

exiftool -all= *.* -overwrite_original
2)
EFI file to boot and in the case of Acer laptops, add to SecureBoot trust; doesn't matter if SecureBoot is enabled or not
3)
prevents closing of applications accidentally
4)
forcing it on and then disabling it via the below scripts under Power Management with the performance policy might be ok? Need to test this on a problematic computer
5)
the next step down 1 turns the backlight off entirely
6)
defaults,discard
7)
verify with wine --version
8)
in the event this fails to work, run groups to see what groups the user is a part of and pick one
9)
FreeDesktop bug report, happens rarely, nothing too bad
10)
Intel's man page says it's disabled by-default, but Xorg's log at some point said it was enabled by-default; so this is a force-disable
11)
this causes the external display to render on the NVIDIA chip exclusively, and since nouveau can't currently re-clock, performance is awful; use modesetting below instead
12)
seemingly works fine
13)
HD6000 series and lower, and non-SI HD7000 series
14)
see modinfo -p amdgpu
15)
this will be set back to true automatically on Firefox restart due to user.js
16) , 17)
not really, but need some kind of date reference
distros/fedora_workstation_gnome.txt · Last modified: 2018/04/25 14:51 by Sean Rhone