User Tools

Site Tools


distros:opensuse_tumbleweed_plasma_test

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
distros:opensuse_tumbleweed_plasma_test [2018/09/29 14:59] Sean Rhonedistros:opensuse_tumbleweed_plasma_test [2018/09/29 15:09] – [PCI-E ASPM] Sean Rhone
Line 1: Line 1:
 +====== Information ======
  
 +  * openSUSE ((https://www.opensuse.org))
 +  * Tumbleweed ((https://en.opensuse.org/Portal:Tumbleweed))
 +  * KDE ((https://www.kde.org))
 +
 +====== Download ======
 +
 +===== DVD-x86_64-Current.iso =====
 +
 +  * http://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso
 +
 +  cd ~/'Downloads' && aria2c 'http://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso' && sync
 +
 +===== Hashes =====
 +
 +  * http://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso.mirrorlist
 +
 +====== Installation Notes ======
 +
 +  * ''\EFI\opensuse\grubx64.efi'' ((EFI file to boot and in the case of Acer laptops, add to SecureBoot trust; doesn't matter if SecureBoot is enabled or not))
 +  * XFS, no separate ''/home'', separate ''swap'' partition enlarged to RAM for suspend
 +
 +====== Software Settings ======
 +
 +===== Disable PackageKit =====
 +
 +****
 +
 +  sudo systemctl mask 'packagekit' && sudo rm -Rf '/var/cache/PackageKit' && sync
 +
 +===== Zypper Settings =====
 +
 +  * Allows packages to change vendor if needed
 +  * Disable delta RPMs
 +  * Cleanup unused dependencies on package remove
 +
 +  sudo sed -i 's/solver.dupAllowVendorChange = false/solver.dupAllowVendorChange = true/g' '/etc/zypp/zypp.conf' && echo -e 'solver.allowVendorChange = true\ndownload.use_deltarpm = false\nsolver.cleandepsOnRemove = true' | sudo tee --append '/etc/zypp/zypp.conf' > '/dev/null' && echo 'Current Settings:' && cat '/etc/zypp/zypp.conf' | grep -e 'solver.allowVendorChange = true' -e 'solver.dupAllowVendorChange = true' -e 'download.use_deltarpm = false' -e 'solver.cleandepsOnRemove = true'
 +
 +====== Repositories ======
 +
 +===== VideoLAN =====
 +
 +  * https://download.videolan.org/pub/vlc/SuSE/Tumbleweed
 +
 +  * Repository Priority: 98
 +  * Provides extended multimedia support
 +
 +  sudo rpm --import 'http://download.videolan.org/SuSE/Tumbleweed/repodata/repomd.xml.key' && sudo zypper ar -f 'https://download.videolan.org/pub/vlc/SuSE/Tumbleweed/SuSE.repo' && sudo zypper mr -p 98 'VideoLAN repo (Tumbleweed)' && sync
 +
 +===== PackMan =====
 +
 +  * http://packman.inode.at/suse/openSUSE_Tumbleweed
 +
 +  * Repository Priority: 98
 +  * Provides extended multimedia support
 +
 +  sudo rpm --import 'http://packman.inode.at/suse/openSUSE_Tumbleweed/repodata/repomd.xml.key' && sudo zypper ar -f 'http://packman.inode.at/suse/openSUSE_Tumbleweed/packman.repo' && sudo zypper mr -p 98 'Packman repository (openSUSE_Tumbleweed)' && sync
 +
 +====== Software ======
 +
 +===== Disable USB Source =====
 +
 +****
 +
 +  sudo zypper modifyrepo -d -m 'hd'
 +
 +===== Update =====
 +
 +****
 +
 +  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' && sudo cat '/etc/sudoers.d/nano' && echo -e "set nowrap\nset nonewlines" | tee ~/'.nanorc' > '/dev/null' && cat ~/'.nanorc'
 +
 +===== General =====
 +
 +****
 +
 +  sudo zypper install filezilla keepassxc p7zip p7zip-full unar aria2 gimp transmission-qt hdparm nano htop wget irqbalance
 +
 +===== Packman =====
 +
 +  * ''gstreamer-plugins-libav'' and ''gstreamer-plugins-ugly'' are needed to generate video thumbnails for more media
 +  * ''youtube-dl'' in the past needed ''ffmpeg'' to correct DASH containers or something like that
 +
 +  mpv ffmpeg gstreamer-plugins-libav gstreamer-plugins-ugly youtube-dl
 +
 +==== VA-API ====
 +
 +  * For GPUs using the ''intel'' kernel module
 +
 +  gstreamer-plugins-vaapi libva-utils
 +
 +  intel-vaapi-driver
 +
 +===== Wine =====
 +
 +  * Pick one; SuSE is awesome enough to have many flavors :)
 +  * ''winetricks'' is included within the ''wine'' package and isn't a separate install
 +
 +  wine
 +
 +  wine-nine Mesa-libd3d Mesa-libd3d-32bit
 +
 +  wine-staging
 +
 +  wine-staging-nine Mesa-libd3d Mesa-libd3d-32bit
 +
 +===== 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 =====
 +
 +  * KeePassXC ((requires [[#add_password_to_wallet|password to be added to KDE's Wallet]]))
 +  * System Update
 +
 +  bash -c "kwallet-query --folder 'Passwords' --read-password 'keepass' 'kdewallet' | keepassxc --pw-stdin ~/'Documents/keepass.kdbx'"
 +
 +  konsole -e "bash -c 'sudo zypper clean --all && sudo zypper refresh -f && sudo zypper dup && sudo zypper ps -s && sudo rm -Rfv '/usr/lib64/firefox/browser/features' && sync && read -n1'"
 +
 +==== Keys ====
 +
 +  * Listed respectively to above
 +
 +  * Ctrl + Alt + Z
 +  * Pause or F7
 +
 +===== gedit =====
 +
 +  * 4 Tab width
 +  * Insert Spaces for Tab mode
 +
 +===== Network =====
 +
 +==== Cloudflare DNS ====
 +
 +  * https://1.1.1.1/
 +
 +  1.1.1.1,1.0.0.1
 +
 +  2606:4700:4700::1111,2606:4700:4700::1001
 +
 +==== OpenNIC DNS ====
 +
 +  * https://www.opennic.org/
 +  * Last Updated: 2018/09/16
 +
 +  172.98.193.42,18.215.88.41,192.99.85.244,128.52.130.209
 +
 +  2001:470:1f06:10b::2,2001:41d0:2:73d4::100,2a00:dcc0:eda:88:245:71:858e:a15,2a00:dcc0:dead:b242::42
 +
 +===== Nautilus =====
 +
 +  * Sort folders before files
 +  * 2GB File Previews
 +
 +===== Rhythmbox =====
 +
 +  * See [[Information:Internet Radio]]
 +
 +===== Terminal =====
 +
 +  * 10-notch Transparency
 +
 +===== GRUB =====
 +
 +==== Modern Standby ====
 +
 +  * Fixes suspend on a Dell XPS 13 (9360) ((still necessary as of 2018/09/22 on F28))
 +
 +  mem_sleep_default='s2idle'
 +
 +==== Corsair USB Quirks ====
 +
 +  * https://github.com/ckb-next/ckb-next/wiki/Troubleshooting#usbhid-quirks 
 +
 +  usbhid.quirks='0x1b1c:0x1b3c:0x20000408,0x1b1c:0x1b38:0x20000408'
 +
 +==== iwlwifi ====
 +
 +****
 +
 +  iwlwifi.11n_disable='8' iwlwifi.amsdu_size='3'
 +
 +==== intel_iommu ====
 +
 +****
 +
 +  intel_iommu='on'
 +
 +==== 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
 +
 +  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'
 +
 +==== acpi_osi ====
 +
 +  * [[#acpi_tables|Decompile ACPI tables]] and determine best value
 +  * ''2015'' on Nightwane
 +  * ''2017'' on Spinesnap
 +
 +  acpi_osi='Linux'
 +
 +  acpi_osi='!' acpi_osi='Windows 2015'
 +
 +  acpi_osi='!' acpi_osi='Windows 2017'
 +
 +==== i915 ====
 +
 +  * GuC firmware loading/submission **requires** PAVP to be enabled in BIOS
 +
 +  i915.enable_fbc='1' i915.fastboot='1' i915.enable_guc='3'
 +
 +=== Spinesnap ===
 +
 +  * ''enable_psr'' at ''1'' and ''3'' cause issues ((Suspend -> Wake -> Wait a little bit; ''dmesg'' reports potential broken atomic stuff)) ((''2'' is verified working from ''/sys/kernel/debug/dri/0/i915_edp_psr_status''))
 +
 +  i915.enable_psr='2'
 +
 +==== amdgpu ====
 +
 +  * If audio over HDMI or DisplayPort is wanted, set ''amdgpu.audio'' to ''1''
 +
 +  amdgpu.audio='0' amdgpu.deep_color='1'
 +
 +==== radeon ====
 +
 +  * If audio over HDMI or DisplayPort 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|Power Management]]
 +
 +  systemd.restore_state='0'
 +
 +==== DRM Debug ====
 +
 +  * This may make lower-end machines become very unresponsive; be prepared to have some safe way of rebooting
 +
 +  drm.debug='0xe'
 +
 +===== Input =====
 +
 +  sudo -e '/etc/X11/xorg.conf.d/99-libinput-custom.conf'
 +
 +<code>
 +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</code>
 +
 +===== KeePassXC =====
 +
 +==== Add Password to KDE Wallet ====
 +
 +  * The space at the beginning of this command is intentional ((this prevents the command and the password supplied from being written to bash history))
 +  * Change ''x'' to the KeePass database password
 +
 +<code>
 + echo 'x' | kwallet-query --folder 'Passwords' --write-password 'keepass' 'kdewallet'</code>
 +
 +===== Hostname =====
 +
 +  * Change ''x'' to computer name
 +
 +  sudo hostnamectl set-hostname 'x'
 +
 +===== 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\nvm.swappiness = 10\nvm.vfs_cache_pressure = 50" | sudo tee '/etc/sysctl.d/99-custom.conf' > '/dev/null' && cat '/etc/sysctl.d/99-custom.conf'
 +
 +===== NetworkManager =====
 +
 +  * ''wifi.powersave'' can be ''2'' for disabled, or ''3'' for enabled
 +
 +  sudo mkdir -p '/etc/NetworkManager/conf.d' && sudo -e '/etc/NetworkManager/conf.d/99-custom.conf'
 +
 +<code>
 +[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</code>
 +
 +===== 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 =====
 +
 +  * See [[Clients:Secure Shell]]
 +
 +===== systemd =====
 +
 +==== Journal ====
 +
 +  * Max 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 ((defaults,discard))
 +
 +  sudo -e '/etc/fstab'
 +
 +  ,discard
 +
 +==== Service ====
 +
 +****
 +
 +  sudo systemctl enable 'fstrim.timer' --now && sudo systemctl start 'fstrim' && sync && sudo systemctl status 'fstrim' -l
 +
 +===== Environment Variables =====
 +
 +==== Plasma Scaling ====
 +
 +****
 +
 +  echo 'export PLASMA_USE_QT_SCALING=1' | sudo tee '/etc/profile.d/plasma-tray-scaling.sh' > '/dev/null' && cat '/etc/profile.d/plasma-tray-scaling.sh'
 +
 +==== 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' && cat '/etc/profile.d/tz.sh'
 +
 +====== Computer-specific ======
 +
 +===== Graphics xorg.conf =====
 +
 +==== intel ====
 +
 +  sudo zypper install 'xf86-video-intel' && sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
 +
 +<code>
 +Section "Device"
 +    Identifier  "Intel iGPU"
 +    Driver      "intel"
 +    Option      "DRI"           "3"
 +    Option      "TearFree"      "0"
 +EndSection</code>
 +
 +==== amdgpu ====
 +
 +  sudo zypper install 'xf86-video-amdgpu' && sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
 +
 +<code>
 +Section "Device"
 +    Identifier  "Arctic Islands"
 +    Driver      "amdgpu"
 +EndSection</code>
 +
 +==== radeon ====
 +
 +  * Expects pre-SI GPUs ((HD6000 series and lower, and non-SI HD7000 series))
 +  * For SI, CIK, and newer GPUs, use ''amdgpu'', along with enabling ''si_support'' and ''cik_support'' respectively for the ''amdgpu'' kernel module ((see ''modinfo -p amdgpu''))
 +
 +  sudo zypper install 'xf86-video-ati' && sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
 +
 +<code>
 +Section "Device"
 +    Identifier  "AMD GPU"
 +    Driver      "radeon"
 +    Option      "AccelMethod"   "EXA"
 +    Option      "DRI"           "3"
 +    Option      "TearFree"      "0"
 +EndSection</code>
 +
 +==== Other ====
 +
 +  * If using Optimus or some other multi-GPU set-up, add the ''BusID'' option
 +
 +<code>    BusID      "PCI:0:2:0"</code>
 +
 +====== Mozilla Firefox ======
 +
 +  * Use Disconnect.me strict protection Block List
 +
 +===== YouTube HTML5 =====
 +
 +  * https://www.youtube.com/html5
 +  * Everything (including H.264) should have support
 +
 +===== Settings =====
 +
 +==== Default Profile ====
 +
 +  rm -fv '/tmp/profiles.ini' && nano '/tmp/profiles.ini' && sed -i 's/'CHANGEME'/'$USER'/g' '/tmp/profiles.ini'
 +
 +<code>
 +[General]
 +StartWithLastProfile=1
 +
 +[Profile0]
 +Name=default
 +IsRelative=1
 +Path=CHANGEME
 +Default=1</code>
 +
 +==== user.js ====
 +
 +  * Last updated: 2018/05/07
 +
 +  rm -fv '/tmp/user.js' && nano '/tmp/user.js'
 +
 +<code>
 +/******************************************************************************
 + * SECTION: 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("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                                                  *
 + ******************************************************************************/
 +
 +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: Privacy Settings Overrides                                        *
 + ******************************************************************************/
 +
 +user_pref("dom.storage.enabled",true);
 +
 +/******************************************************************************
 + * END                                                                        *
 + ******************************************************************************/</code>
 +
 +==== 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 =====
 +
 +==== Download ====
 +
 +  * 7 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://www.eff.org/privacybadger' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/cookie-autodelete/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'
 +
 +==== 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 ((not really, but need some kind of date reference))
 +
 +<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
 +https://raw.githubusercontent.com/ryanbr/fanboy-adblock/master/enhancedstats-addon.txt</code>
 +
 +====== Notable Folders and Commands ======
 +
 +===== Extract ISO =====
 +
 +  * ''D'' is the destination you want the extracted files to go
 +  * ''x'' is the ISO you want to extract files from
 +  * No space after the ''-o'' flag is intentional
 +  * This is primarily useful for copying Windows ISO images to a FAT32 flash drive
 +
 +  7z x -o'D' -y x
 +
 +  7z x -o'/run/media/espionage724/WIN1803' -y '/home/espionage724/Downloads/Win10_1803_English_x64.iso' 
 +
 +===== 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
 +
 +===== Zypper Repos =====
 +
 +==== Folder ====
 +
 +****
 +
 +  ls '/etc/zypp/repos.d'
 +
 +==== List ====
 +
 +****
 +
 +  zypper lr -p
 +
 +===== 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'
 +
 +===== fstrim =====
 +
 +****
 +
 +  sudo fstrim -v --all
 +
 +===== Xorg Debug =====
 +
 +****
 +
 +  gio open '/var/log/Xorg.0.log'
 +
 +===== Verify DRI3 =====
 +
 +****
 +
 +  LIBGL_DEBUG='verbose' glxinfo | grep 'libgl'
 +
 +===== GpuTest =====
 +
 +==== Execute ====
 +
 +****
 +
 +  wget -O '/tmp/GpuTest_Linux_x64.zip' 'http://www.ozone3d.net/gputest/dl/GpuTest_Linux_x64_0.7.0.zip' && unzip '/tmp/GpuTest_Linux_x64.zip' -d '/tmp' && cd '/tmp/GpuTest_Linux_x64_'* && ./GpuTest /test='fur' /width='1920' /height='1080'
 +
 +==== Cleanup ====
 +
 +****
 +
 +  rm -Rf '/tmp/GpuTest_Linux_'* && cd ~ && sync
 +
 +===== 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 hdparm -I '/dev/sda'
 +
 +  systemctl suspend
 +
 +  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-command ====
 +
 +  * Performs both ''security-erase'' and ''security-erase-enhanced'' on ''/dev/sda''
 +
 +  sudo hdparm -I '/dev/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
 +
 +==== Dell Quick-command ====
 +
 +  * Performs both ''security-erase'' and ''security-erase-enhanced'' on ''/dev/sda''
 +  * Removes the first ''security-set-pass'' since this needs to be set from firmware settings
 +
 +  sudo hdparm -I '/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
 +
 +===== NVMe Erase =====
 +
 +  sudo zypper --non-interactive 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 =====
 +
 +  * https://nouveau.freedesktop.org/wiki/Optimus
 +
 +  sudo cat '/sys/kernel/debug/vgaswitcheroo/switch'
 +
 +===== ACPI Tables =====
 +
 +  * In ''dsdt.dsl'', look for ''_OSI'' values, along with ''Windows'' and ''Linux''
 +
 +  sudo zypper install 'acpica'
 +
 +  sudo cp --force '/sys/firmware/acpi/tables/DSDT' ~/'dsdt.dat'
 +
 +  cd ~ && iasl -d ~/'dsdt.dat'
 +
 +  gio open ~/'dsdt.dsl'
 +
 +  sudo zypper remove 'acpica' && sync
 +
 +===== 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|Power Management notes]] on how to add backlight changes to a udev script
 +  * See [[https://wiki.archlinux.org/index.php/backlight|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;'
 +
 +===== FirewallD =====
 +
 +==== List Active Rules ====
 +
 +****
 +
 +  sudo firewall-cmd --list-all
 +
 +==== List Available Services ====
 +
 +****
 +
 +  sudo firewall-cmd --get-service
 +
 +==== Reload ====
 +
 +****
 +
 +  sudo firewall-cmd --reload
 +
 +==== Add/Remove Service ====
 +
 +  * Add ''--permanent'' as-needed to allow the rule to persist
 +
 +  sudo firewall-cmd --add-service=x
 +
 +  sudo firewall-cmd --remove-service=x
 +
 +==== Add/Remove Port ====
 +
 +  * Add ''--permanent'' as-needed to allow the rule to persist
 +  * Change ''tcp'' to ''udp'' as-needed
 +
 +  sudo firewall-cmd --add-port=x/tcp
 +
 +  sudo firewall-cmd --remove-port=x/tcp
 +
 +====== Privacy ======
 +
 +===== Clear Terminal History =====
 +
 +****
 +
 +  history -cw
 +
 +===== Create 7z Password Archive =====
 +
 +  * Change ''x'' in ''x.7z'' to the desired archive name
 +  * Change ''CHANGEME'' in ''-pCHANGEME'' to the desired password
 +
 +  sudo zypper install 'p7zip-full'
 +
 +  7za a 'x.7z' -p'CHANGEME'
 +
 +===== oathtool =====
 +
 +  * ''x'' is a secret without ''&digits=6''
 +
 +  sudo zypper install 'oath-toolkit'
 +
 +  oathtool --totp -b 'x'
 +
 +===== Remove EXIF data =====
 +
 +  sudo zypper install 'exiftool'
 +
 +  exiftool -all= *.* -overwrite_original