====== Information ======
* openSUSE ((https://www.opensuse.org))
* Tumbleweed ((https://en.opensuse.org/Portal:Tumbleweed))
* KDE Plasma ((https://kde.org/plasma-desktop/)) ((https://en.opensuse.org/KDE))
====== Download ======
* http://download.opensuse.org/tumbleweed/iso/
===== DVD + Xfce Live =====
* Downloads the latest DVD (with SHA256 compare) and Xfce Live images with ''aria2c''
cd ~/'Downloads' && aria2c 'https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso.sha256' && aria2c 'http://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso' && aria2c 'https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-XFCE-Live-x86_64-Current.iso' && sha256sum ~/'Downloads/openSUSE-Tumbleweed-DVD-x86_64-'*'-Media.iso' && cat ~/'Downloads/openSUSE-Tumbleweed-DVD-x86_64-'*'-Media.iso.sha256' && sync
===== DVD =====
* ISO and SHA256 hash
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
===== Xfce =====
* For LiveUSB
https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-XFCE-Live-x86_64-Current.iso
====== Installation Notes ======
* :?: 2016: ''EFI/opensuse/grubx64.efi'' ((EFI file to boot and in the case of some Acer laptops, add to SecureBoot trust; doesn't matter if SecureBoot is enabled or not))
===== Partitioning =====
- XFS ''/''
- No separate ''/home''
- :!: Separate ''swap'' with suspend resize if RAM is 16 GB or less
===== Boot Loader =====
* :!: 2024/05/18: systemd-boot doesn't delete old ''initrd''s automatically, doesn't handle typewriter apostrophes, doesn't support ''dracut.conf'' settings, and doesn't seem faster than GRUB
====== 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
* :!: This was //still// necessary as of 2024/05/06
* :?: 2024/06/02: Is this as-annoying on Plasma? There wasn't the usual ''zypper'' lock
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
==== Firmware ====
****
sudo fwupdmgr refresh --force && sudo fwupdmgr update --verbose
==== Flatpaks ====
* :?: ''sudo'' Flatpak updating has a long delay on Plasma?
flatpak update
sudo flatpak update
===== 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'
===== General =====
****
sudo zypper install filezilla gbrainy gimp google-noto-*-fonts gstreamer-plugin-openh264 keepassxc mpv qbittorrent android-tools aria2 binutils chrony clinfo cups hdparm htop icoutils nano openssl-1_1 7zip secret-tool sensors unar wget xrandr yt-dlp
===== Intel =====
* AMD CPUs have ''ucode-amd''
ucode-intel intel-media-driver intel-gpu-tools intel-opencl
===== Wine =====
* ''winetricks'' is included within the ''wine'' package and isn't a separate install
wine-staging libpulse0-32bit gstreamer-plugins-bad-32bit gstreamer-plugins-bad-fluidsynth-32bit gstreamer-plugins-base-32bit gstreamer-plugins-good-32bit gstreamer-plugins-libav-32bit gstreamer-plugins-ugly-32bit libvulkan_intel libvulkan_intel-32bit
===== Tor Browser =====
****
torbrowser-launcher
====== Settings ======
===== Keyboard Shortcuts =====
bash -c "secret-tool lookup 'keepass' 'default' | keepassxc --pw-stdin ~/'Documents/keepass.kdbx'"
konsole -e "sudo sh -c 'zypper clean --all && zypper refresh --force --services && zypper dist-upgrade --details --allow-downgrade --allow-name-change --allow-arch-change --allow-vendor-change && sync && flatpak update && sync && fstrim --all --verbose && sync && read -n '1' -s -r -p 'Done''"
==== Keys ====
* Listed respectively to above
* Ctrl + Alt + Z
* Pause, Menu, F6, or Launch1
===== 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 ====
* [[notes:dns_servers#quad9|Quad9]], see [[notes:dns_servers]] for other addresses
9.9.9.9,149.112.112.112
2620:fe::fe,2620:fe::9
===== Dell Fan Profile =====
* https://www.dell.com/support/kbdoc/en-us/000177768/guide-to-dell-power-manager
sudo zypper install -y 'python3-smbios-utils' && sudo smbios-thermal-ctl --set-thermal-mode='performance' && sudo zypper remove --clean-deps -y 'python3-smbios-utils'
===== 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' && cat '/etc/sysctl.d/99-i915-perf.conf'
sudo sysctl 'dev.i915.perf_stream_paranoid' | grep 'dev.i915.perf_stream_paranoid = 0'
==== 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' && 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' && cat '/etc/sysctl.d/99-swappiness.conf'
sudo sysctl 'vm.swappiness' | grep 'vm.swappiness = 0'
===== Dracut =====
* System-specific boot optimization
* :!: Expects GRUB
* :!: Be sure to undo this if planning on booting the same disk install on different hardware, notably for servers
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"
==== Undo ====
****
sudo rm -f '/etc/dracut.conf.d/99-custom.conf' && sudo dracut --force --regenerate-all && sync
===== Boot Loader =====
==== Config ====
* :!: [[notes:kernel_parameters|More Kernel Parameters]]
sudo yast2 'bootloader'
==== Spinesnap ====
* Last updated: 2024/06/02 with GRUB
preempt='none' nohz='off' i915.enable_guc='3' pci='pcie_bus_perf,realloc,pcie_scan_all,big_root_window' pcie_aspm='off' video='HDMI-A-1:1920x1080MR@75' reboot='pci' usbcore.autosuspend='-1' usbhid.quirks='0x1b1c:0x1b75:0x20000408' usbcore.quirks='1b1c:1b75:gn'
===== KeePassXC =====
==== Settings ====
* General -> [ ] Load previous databases on startup
* Security -> [x] Use DuckDuckGo service to download website icons
==== Add Database Password to KDE Wallet ====
****
secret-tool store --label='KeePass' 'keepass' 'default'
===== 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 =====
==== 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]]
===== Xorg/Wayland =====
==== Display Settings ====
* This sets Full RGB and other options for a connected display (HDMI)
* See [[notes:proptest_full_rgb]] for more ports and examples
* This works on Wayland as well as GNOME on Xorg even with Wayland globally-disabled from ''custom.conf''
* :!: The numbers ''103'' and after the ''connector'' change depending on the hardware and need checked from ''proptest'' on a Wayland session ((the current values are specific to a Dell Latitude 5591 and its onboard HDMI port))
* Last tested: 2024/05/18 on GNOME 46 on Xorg
* :!: TODO: Figure this out on Plasma
sudo zypper install -y 'libdrm-tools' && sudo -e '/etc/gdm/PostLogin/Default' && sudo chmod +x '/etc/gdm/PostLogin/Default' && sync
# Broadcast RGB (99) to Full (1)
proptest -M 'i915' -D '/dev/dri/card'* '103' 'connector' '99' '1'
# content type (107) to Game (4)
proptest -M 'i915' -D '/dev/dri/card'* '103' 'connector' '107' '4'
# Colorspace (106) to opRGB (7)
proptest -M 'i915' -D '/dev/dri/card'* '103' 'connector' '106' '7'
# max bpc (108) to 8
proptest -M 'i915' -D '/dev/dri/card'* '103' 'connector' '108' '8'
# End
====== Firefox ======
* See [[notes:firefox|Firefox]] if old configuration is needed, otherwise use Firefox Sync
* https://wiki.archlinux.org/title/Firefox/Privacy
===== about:config =====
* See [[notes:firefox#aboutconfig|about:config]] for more info
* :!: ''layout.frame_rate'' ideally needs set if using Wayland and above 60Hz
layout.frame_rate
extensions.screenshots.disabled
extensions.pocket.enabled
security.tls.enable_kyber
===== Extensions =====
* [[https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/|uBlock Origin]]
* [[https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/|Decentraleyes]]
* [[https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/|Privacy Badger]]
==== uBlock Origin ====
==== Filters list ====
****
https://www.fanboy.co.nz/fanboy-problematic-sites.txt
https://www.fanboy.co.nz/r/fanboy-ultimate.txt
https://www.fanboy.co.nz/fanboy-cookiemonster_ubo.txt
https://www.fanboy.co.nz/enhancedstats.txt
===== DNS over HTTPS =====
* [[notes:dns_servers#quad9|Quad9]], see [[notes:dns_servers]] for other addresses
https://dns.quad9.net/dns-query
====== 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]]