openSUSE
Tumbleweed
GNOME
TODOs
Download
http://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso
Installation Notes
Partitioning
ext4 /
No separate /home
Separate swap with suspend resize
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 953.9G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot/efi
├─nvme0n1p2 259:2 0 938G 0 part /
└─nvme0n1p3 259:3 0 15.4G 0 part [SWAP]
PackageKit
pkill 'gnome-software' && sudo systemctl stop 'packagekit' && sudo zypper remove 'PackageKit'
sudo zypper addlock 'PackageKit'
Software
Disable USB Source
sudo zypper modifyrepo --disable --medium-type 'hd'
Update
System
sudo zypper clean --all && sudo zypper refresh --force --services && sudo zypper dist-upgrade --details --allow-downgrade --allow-name-change --allow-arch-change --allow-vendor-change && sync
GNU nano
sudo zypper install 'nano' && export 'VISUAL=nano' && export 'EDITOR=nano' && echo -e 'export VISUAL=nano\nexport EDITOR=nano' | sudo tee '/etc/profile.d/editor-nano.sh' > '/dev/null' && cat '/etc/profile.d/editor-nano.sh' && mkdir -p ~/'.config/nano' && echo 'set nowrap' | tee ~/'.config/nano/nanorc' > '/dev/null' && cat ~/'.config/nano/nanorc'
Remove
sudo zypper remove --clean-deps baobab cheese evolution* gnome-clocks gnome-contacts gnome-maps gnome-music gnome-packagekit gnome-photos gnome-remote-desktop gnome-shell-search-provider-* gnome-software gnome-weather patterns-gnome-gnome_games myrlyn polari totem vinagre xscreensaver yelp plymouth
sudo zypper addlock baobab cheese evolution* gnome-clocks gnome-contacts gnome-maps gnome-music gnome-packagekit gnome-photos gnome-remote-desktop gnome-shell-search-provider-* gnome-software gnome-weather patterns-gnome-gnome_games myrlyn polari totem vinagre xscreensaver yelp plymouth
General
sudo zypper install filezilla foliate gimp google-noto-*-fonts nautilus-file-roller dynamic-wallpapers-11x keepassxc libreoffice MozillaThunderbird transmission-gtk vlc 7zip android-tools aria2 binutils htop nano secret-tool sensors unar yt-dlp
Intel
Tor Browser
Firefox ESR
sudo zypper remove --clean-deps 'MozillaFirefox'
sudo zypper addlock 'MozillaFirefox'
sudo zypper install 'firefox-esr'
Settings
Keyboard Shortcuts
'/usr/bin/kgx'
'/usr/bin/bash' -c "secret-tool lookup 'keepass' 'default' | keepassxc --pw-stdin ~/'Documents/keepass.kdbx'"
'/usr/bin/kgx' -T 'openSUSE Updater' -e ~/'.local/scripts/opensuse-updater.sh'
'/usr/bin/kgx' -T 'Spinesnap UV' -e ~/'.local/scripts/spinesnap-uv.sh'
Printer
ipp://192.168.1.164/ipp/print
Network
DNS
9.9.9.9,149.112.112.112
2620:fe::fe,2620:fe::9
Kernel Options
Intel Perf Counters
echo 'dev.i915.perf_stream_paranoid=0' | sudo tee '/etc/sysctl.d/99-i915-perf.conf' > '/dev/null' && cat '/etc/sysctl.d/99-i915-perf.conf'
sudo sysctl 'dev.i915.perf_stream_paranoid'
Magic SysRq key
echo 'kernel.sysrq = 1' | sudo tee '/etc/sysctl.d/99-sysrq.conf' > '/dev/null' && cat '/etc/sysctl.d/99-sysrq.conf'
sudo sysctl 'kernel.sysrq'
Swappiness
echo 'vm.swappiness = 0' | sudo tee '/etc/sysctl.d/99-swappiness.conf' > '/dev/null' && cat '/etc/sysctl.d/99-swappiness.conf'
sudo sysctl 'vm.swappiness'
GNOME
External Monitor Settings
This copies the configured monitor settings from the current user to gdm and also applies it to the log-in screen
Notably useful for setting a laptop's built-in screen as disabled for the log-in screen while used in a dock configuration
KeePassXC
Settings
Add Database Password to GNOME Keyring
secret-tool store --label='KeePass' 'keepass' 'default'
Laptop Power
lm_sensors
sudo sensors-detect --auto
sudo -e '/etc/sysconfig/lm_sensors'
Secure Shell
See
Client notes to generate/restore public key
Disk Drives
Trim
sudo systemctl enable 'fstrim.timer' --now && sudo systemctl start 'fstrim' && sync && sudo systemctl status 'fstrim' -l
Time
UTC
-
Set RTC to UTC

Needed if Windows is installed first

Windows should also be set to UTC

TODO: Should this be ran on openSUSE that's using
chrony instead?
sudo timedatectl set-local-rtc '0'
Verify
Boot Loader
Spinesnap
acpi_osi='Linux' hibernate='no' idle='halt' nohz='off' preempt='full' iommu='pt' pci='pcie_bus_perf,realloc,pcie_scan_all,big_root_window' pcie_aspm='off' pcie_port_pm='off' module_blacklist='iTCO_wdt,intel_oc_wdt' nowatchdog tsc='nowatchdog' drm_kms_helper.poll='0' drm_kms_helper.fbdev_emulation='0' hostname='localhost' rootflags='data=writeback'
Drive Maintenance
EFI
sudo umount '/boot/efi'
sudo dosfsck -a -t -w -v '/dev/nvme0n1p1'
sudo mount '/boot/efi'
ext4
New Settings
gsettings
-

TODO: Touchpad disabled on external mouse applies with a USB keyboard
gsettings reset 'org.gnome.shell' 'app-picker-layout' && gsettings set 'org.gnome.mutter' 'experimental-features' '[]' && gsettings set 'org.gnome.desktop.interface' 'enable-animations' 'false' && gsettings set 'org.gnome.desktop.interface' 'clock-show-date' 'true' && gsettings set 'org.gnome.desktop.interface' 'clock-show-weekday' 'true' && gsettings set 'org.gnome.desktop.screen-time-limits' 'history-enabled' 'false' && gsettings set 'org.gnome.desktop.wm.preferences' 'focus-mode' 'click' && gsettings set 'org.gtk.gtk4.Settings.FileChooser' 'sort-directories-first' 'true' && gsettings set 'org.gnome.Console' 'restore-window-size' 'false' && gsettings set 'org.gnome.desktop.peripherals.mouse' 'accel-profile' 'flat' && 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.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.desktop.peripherals.touchpad' 'click-method' 'areas' && gsettings set 'org.freedesktop.Tracker3.Miner.Files' 'enable-monitors' 'false' && gsettings set 'org.freedesktop.Tracker3.Miner.Files' 'crawling-interval' '-2' && gsettings set 'org.freedesktop.Tracker3.Miner.Files' 'index-on-battery' 'false' && gsettings set 'org.freedesktop.Tracker3.Miner.Files' 'index-on-battery-first-time' 'false' && gsettings reset 'org.gnome.Settings' 'last-panel'
Tweaks
General
sudo -e '/etc/profile.d/general-tweaks.sh'
# General
export LD_BIND_NOW='1'
export LD_PREFER_MAP_32BIT_EXEC='1'
# GNOME
export GSK_RENDERER='cairo'
export GTK_A11Y='none'
export CLUTTER_PAINT='disable-dynamic-max-render-time'
# Mesa
export MESA_NO_ERROR='1'
export mesa_glthread='false'
export MESA_DISK_CACHE_DATABASE='0'
export MESA_DISK_CACHE_SINGLE_FILE='0'
export vk_xwayland_wait_ready='false'
export vk_x11_ignore_suboptimal='true'
export vk_wsi_force_bgra8_unorm_first='true'
export block_on_depleted_buffers='true'
# End
journald
sudo -e '/etc/systemd/journald.conf.d/99-tweaks.conf'
[Journal]
Storage=none
Compress=false
MaxLevelStore=0
MaxLevelSyslog=0
MaxLevelKMsg=0
MaxLevelConsole=0
MaxLevelWall=0
MaxLevelSocket=0
# End
sudo journalctl --vacuum-time='1s' --rotate
Dracut
sudo -e '/etc/dracut.conf.d/99-custom.conf' && sudo dracut --force --regenerate-all
# Compression
compress="cat"
# Machine-specific
do_strip="yes"
aggressive_strip="yes"
hostonly="yes"
hostonly_mode="strict"
early_microcode="no"
# End
Undo
sudo rm -fv '/etc/dracut.conf.d/99-custom.conf' && sudo dracut --force --regenerate-all
fstab
swap
EFI
,discard,tz=UTC,shortname=winnt,usefree
ext4
,data=writeback,nobarrier,journal_async_commit
Tweaks
sudo tune2fs -O 'fast_commit' '/dev/nvme0n1p2'
Scripts
Updater
mkdir -p ~/'.local/scripts' && nano ~/'.local/scripts/opensuse-updater.sh' && chmod +x ~/'.local/scripts/opensuse-updater.sh'
#!/bin/bash
sudo zypper clean --all
sudo zypper refresh --force --services
sudo zypper dist-upgrade --details --allow-downgrade --allow-name-change --allow-arch-change --allow-vendor-change
rm -Rf ~/'.cache/mesa_shader_cache'*
localsearch reset --filesystem
sudo fstrim --all --verbose
sync
zypper ps --short
echo 'Done.'
# End
~/'.local/scripts/opensuse-updater.sh'
Notable Folders and Commands