====== Information ======
* openSUSE ((https://www.opensuse.org/))
* Tumbleweed ((https://en.opensuse.org/Portal:Tumbleweed))
* GNOME ((https://www.gnome.org/))
* ''20250423''
====== Download ======
* http://download.opensuse.org/tumbleweed/iso/
http://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso
https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso.sha256
====== Installation Notes ======
===== Partitioning =====
- ext4 ''/''
- No separate ''/home''
- Separate ''swap'' without suspend resize
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 953.9G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot/efi
├─nvme0n1p2 259:2 0 950.9G 0 part /
└─nvme0n1p3 259:3 0 2G 0 part [SWAP]
====== PackageKit ======
* PackageKit is an long-standing, consistent annoyance when using ''zypper'' at random times
* This uninstalls it, and prevents it from being automatically re-installed
sudo systemctl stop 'packagekit' && sudo zypper remove 'PackageKit' && sync
sudo zypper addlock 'PackageKit'
====== Software ======
===== List =====
* http://download.opensuse.org/tumbleweed/repo/
===== 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 =====
* Installs ''nano''
* Sets ''VISUAL'' and ''EDITOR'' to ''nano'' via environment variable
* Sets ''nowrap'' for current user
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-software gnome-weather patterns-gnome-gnome_games polari totem vinagre xscreensaver yelp
sudo zypper addlock baobab cheese evolution* gnome-clocks gnome-contacts gnome-maps gnome-music gnome-packagekit gnome-photos gnome-remote-desktop gnome-software gnome-weather patterns-gnome-gnome_games polari totem vinagre xscreensaver yelp
===== General =====
****
sudo zypper install filezilla foliate gimp google-noto-*-fonts gnome-extensions keepassxc nautilus-file-roller gstreamer-plugin-openh264 libreoffice mpv rhythmbox MozillaThunderbird transmission-gtk vlc 7zip android-tools aria2 binutils htop icoutils nano secret-tool sensors unar yt-dlp
===== Intel =====
* 2025/04/22: ''ucode-intel'' is beneficial on Coffee Lake ((''ucode-intel'' updated i5-8400H with [[https://www.dell.com/support/home/en-us/drivers/driversdetails?driverid=1d93c&oscode=biosa&productcode=latitude-15-5591-laptop|Latitude 5591 1.38]] BIOS (2025/04/17) from ''0x000000f8'' to ''0x000000fa'' and matches [[https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/tag/microcode-20250211|CFL-H/S/E3]]))
ucode-intel intel-media-driver intel-gpu-tools
libvulkan_intel
===== Games =====
****
doomsday FlightGear
===== Wine =====
****
wine-staging wine-staging-32bit
===== Tor Browser =====
****
torbrowser-launcher
====== Settings ======
===== Keyboard Shortcuts =====
* [[#updater|Updater script]]
kgx
bash -c "secret-tool lookup 'keepass' 'default' | keepassxc --pw-stdin ~/'Documents/keepass.kdbx'"
bash -c "kgx -T 'openSUSE Updater' -e ~/'.local/scripts/opensuse-updater.sh'"
===== Printer =====
* http://localhost:631/admin
* :!: Log-in as ''root''
* Internet Printing Protocol (ipp) -> HP -> IPP Everywhere ™
* Color Mode: Device Gray
* Administration -> Set As Server Default
ipp://192.168.1.164/ipp/print
===== Network =====
==== DNS ====
* See [[servers:upstream_dns_servers|DNS Servers]] for other addresses
1.1.1.2,1.0.0.2
2606:4700:4700::1112,2606:4700:4700::1002
===== Rhythmbox =====
* See [[Information:Internet Radio|Internet Radio]]
===== Kernel Options =====
==== Intel Perf Counters ====
* https://wiki.archlinux.org/title/intel_graphics#Enable_performance_support
* ''dev.i915.perf_stream_paranoid = 0''
echo 'dev.i915.perf_stream_paranoid=0' | sudo tee '/etc/sysctl.d/99-i915-perf.conf' > '/dev/null' && sudo restorecon -F -I '/etc/sysctl.d/99-i915-perf.conf' && cat '/etc/sysctl.d/99-i915-perf.conf'
sudo sysctl 'dev.i915.perf_stream_paranoid'
==== Magic SysRq key ====
* https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html
* ''kernel.sysrq = 1''
echo 'kernel.sysrq = 1' | sudo tee '/etc/sysctl.d/99-sysrq.conf' > '/dev/null' && sudo restorecon -F -I '/etc/sysctl.d/99-sysrq.conf' && cat '/etc/sysctl.d/99-sysrq.conf'
sudo sysctl 'kernel.sysrq'
==== Swappiness ====
* ''vm.swappiness = 0''
echo 'vm.swappiness = 0' | sudo tee '/etc/sysctl.d/99-swappiness.conf' > '/dev/null' && sudo restorecon -F -I '/etc/sysctl.d/99-swappiness.conf' && cat '/etc/sysctl.d/99-swappiness.conf'
sudo sysctl 'vm.swappiness'
===== Boot Loader =====
==== Config ====
* :!: [[notes:kernel_parameters|More Kernel Parameters]]
sudo yast2 'bootloader'
==== Spinesnap ====
* Last updated: 2024/05/18 with GRUB
preempt='none' nohz='off' acpi_osi='Linux' i915.enable_dc='0' i915.enable_fbc='0' i915.enable_psr='0' i915.enable_hangcheck='0' i915.panel_use_ssc='0' i915.nuclear_pageflip='1' i915.request_timeout_ms='200000' i915.enable_guc='3' pcie_ports='native' pci='pcie_bus_perf,realloc,pcie_scan_all,big_root_window' pcie_aspm='off' video='HDMI-A-1:1920x1080MR@75' reboot='pci' idle='halt' usbhid.quirks='0x1b1c:0x1b75:0x20000408' usbcore.quirks='1b1c:1b75:gn'
===== GNOME =====
==== Extensions ====
* https://extensions.gnome.org/extension/545/hide-top-bar/
* https://extensions.gnome.org/extension/1873/disable-unredirect-fullscreen-windows/ ((for preventing Tearing on Xorg sessions in some situations))
==== 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
sudo cp --remove-destination ~/'.config/monitors.xml' ~gdm/'.config/monitors.xml' && sudo chown 'gdm':'gdm' ~gdm/'.config/monitors.xml'
=== Undo ===
****
sudo rm ~gdm/'.config/monitors.xml' && sync
===== KeePassXC =====
==== Settings ====
* General -> [ ] Load previous databases on startup
* Security -> [x] Use DuckDuckGo service to download website icons
==== Add Database Password to GNOME Keyring ====
****
secret-tool store --label='KeePass' 'keepass' 'default'
===== Laptop Power =====
* See [[notes:laptop_power_management|Laptop Power Management]]
===== lm_sensors =====
sudo sensors-detect --auto
sudo -e '/etc/sysconfig/lm_sensors'
===== mpv =====
* [[https://wiki.archlinux.org/index.php/mpv#High_quality_configurations|ArchWiki mpv High quality configurations]]
mkdir -p ~/'.config/mpv' && nano ~/'.config/mpv/mpv.conf'
save-position-on-quit
sub-auto=fuzzy
force-window=yes
profile=gpu-hq
scale=ewa_lanczossharp
cscale=ewa_lanczossharp
video-sync=display-resample
interpolation
tscale=oversample
hwdec=vaapi
hwdec-codecs=all
vo=dmabuf-wayland
===== Secure Shell =====
* See [[clients:secure_shell|Client]] notes to generate/restore public key
===== Disk Drives =====
==== Disable barriers ====
* Add '',barrier=0'' after ''defaults'' for the ''/'' mountpoint ((defaults,barrier=0))
* Expects ''ext4''
sudo -e '/etc/fstab'
,barrier=0
==== Swap ====
* Add '',discard=once'' after ''defaults'' for the ''swap'' mountpoint ((defaults,discard))
* According to the ''swapon'' man page, setting this in ''fstab'' is acceptable
sudo -e '/etc/fstab'
,discard=once
==== Trim ====
****
sudo systemctl enable 'fstrim.timer' --now && sudo systemctl start 'fstrim' && sync && sudo systemctl status 'fstrim' -l
===== Time =====
* :!: 2024/05/06: Even though ''chrony'' does NTP sync, it doesn't seem to write it to the hardware clock which is usually wrong after a CMOS reset ((starting Firefox quickly after rebooting has a wrong system clock certificate failure error))
* This sets the hardware clock to the current system/OS clock
* TODO: Figure out ''chrony'' command to do NTP sync
sudo hwclock --systohc
==== UTC ====
* [[https://wiki.archlinux.org/index.php/System_time#Time_standard|System time - ArchWiki]]
* 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 ====
****
timedatectl | grep local
===== Wine =====
* See [[notes:wine|Wine]]
====== Drive Maintenance ======
===== EFI =====
* ''/dev/nvme0n1p1 on /boot/efi type vfat''
sudo umount '/boot/efi'
sudo dosfsck -a -t -w -v '/dev/nvme0n1p1'
sudo mount '/boot/efi'
===== ext4 =====
* TODO
====== New Settings ======
===== gsettings =====
==== gdm ====
sudo runuser -u 'gdm' -- dbus-run-session gsettings set 'org.gnome.desktop.interface' 'enable-animations' 'false'
sudo runuser -u 'gdm' -- dbus-run-session gsettings set 'org.gnome.mutter' 'experimental-features' '[]'
==== User ====
* [[linux;notes;gsettings|More]]
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'
===== hostname =====
sudo hostnamectl hostname 'Spinesnap'
sudo hostnamectl hostname 'x'
====== Tweaks ======
===== General =====
sudo -e '/etc/profile.d/general-tweaks.sh' && sudo restorecon -F -I '/etc/profile.d/general-tweaks.sh'
# GTK
export GSK_RENDERER='vulkan'
# Mesa
export MESA_NO_ERROR='1'
export mesa_glthread='false'
export MESA_DISK_CACHE_DATABASE='0'
export MESA_DISK_CACHE_SINGLE_FILE='0'
# End
===== Dracut =====
sudo -e '/etc/dracut.conf.d/99-custom.conf' && sudo dracut --force --regenerate-all
compress="cat"
do_strip="yes"
aggressive_strip="yes"
hostonly="yes"
hostonly_mode="strict"
fileloglvl="0"
sysloglvl="0"
stdloglvl="0"
# End
==== Undo ====
****
sudo rm -f '/etc/dracut.conf.d/99-custom.conf' && sudo dracut --force --regenerate-all
====== 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'
====== Server ======
* For workstations that run servers as a secondary directive
* For headless servers, use [[distros:opensuse_tumbleweed_server|openSUSE TW (Server)]]
===== Automatic Updates =====
==== Service ====
sudo -e '/etc/systemd/system/suse-up.service'
[Service]
Type=oneshot
ExecStartPre='/usr/bin/zypper' clean --all
ExecStart='/usr/bin/zypper' --non-interactive refresh --force --services
ExecStart='/usr/bin/zypper' --non-interactive dist-upgrade --auto-agree-with-licenses --allow-downgrade --allow-name-change --allow-arch-change --allow-vendor-change
ExecStartPost='/usr/bin/sync'
ExecStartPost='/usr/bin/systemctl' reboot
==== Timer ====
* 06:00 Oak
sudo -e '/etc/systemd/system/suse-up.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'suse-up.timer' --now
[Unit]
Description=Software Package Maintenance and Updater
After=network-online.target
Wants=network-online.target
[Timer]
OnCalendar=*-*-* 06:00:00
Persistent=true
[Install]
WantedBy=timers.target
====== Notable Folders and Commands ======
* See [[notes:misc_linux#opensuse|misc_linux]]