| Both sides previous revisionPrevious revision | |
| linux:distros:opensuse_tumbleweed_kde [2026/06/11 16:33] – [OBS Studio] Sean Rhone | linux:distros:opensuse_tumbleweed_kde [2026/06/11 19:49] (current) – old revision restored (2025/09/11 06:43) Sean Rhone |
|---|
| ====== Information ====== | ====== Information ====== |
| |
| * openSUSE ((https://www.opensuse.org/)) | * openSUSE ((https://www.opensuse.org)) |
| * Tumbleweed ((https://en.opensuse.org/Portal:Tumbleweed)) | * Tumbleweed ((https://en.opensuse.org/Portal:Tumbleweed)) |
| * KDE ((https://en.opensuse.org/Portal:KDE)) | * KDE Plasma ((https://kde.org/plasma-desktop/)) ((https://en.opensuse.org/KDE)) |
| | |
| * Spinesnap = Dell Latitude 5591 ((i5-8400H, UHD 630, AX210, UEFI; no Thunderbolt, no dGPU, [[devices:dell_latitude_5591_spinesnap|notes]])) | |
| | |
| * :!: 2026/06/11: WIP | |
| |
| ====== Download ====== | ====== Download ====== |
| |
| * http://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso | * http://download.opensuse.org/tumbleweed/iso/ |
| * https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso.sha256 | |
| |
| http://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso | http://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso |
| |
| openSUSE-Tumbleweed-DVD-x86_64-Snapshot20260601-Media.iso | https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso.sha256 |
| |
| ====== Installation Notes ====== | ====== Installation Notes ====== |
| ===== Partitioning ===== | ===== Partitioning ===== |
| |
| - ext2 ''/'' | - ext4 ''/'' |
| - No separate ''/home'' | - No separate ''/home'' |
| - Separate ''swap'' without suspend resize | - Separate ''swap'' with suspend resize |
| |
| <code> | <code> |
| NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS | NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS |
| nvme0n1 259:0 0 953.9G 0 disk | nvme0n1 259:0 0 953.9G 0 disk |
| ├─nvme0n1p1 259:1 0 1G 0 part /boot/efi | ├─nvme0n1p1 259:1 0 512M 0 part /boot/efi |
| ├─nvme0n1p2 259:2 0 950.9G 0 part / | ├─nvme0n1p2 259:2 0 938G 0 part / |
| └─nvme0n1p3 259:3 0 2G 0 part [SWAP]</code> | └─nvme0n1p3 259:3 0 15.4G 0 part [SWAP]</code> |
| |
| ===== Boot Loader ===== | ===== TODOs ===== |
| |
| * GRUB2 for EFI | * GRUB no Secure Boot support |
| | * GRUB timeout |
| | * MAC: None |
| |
| ====== PackageKit ====== | ====== PackageKit ====== |
| |
| pkill 'gnome-software' && sudo systemctl stop 'packagekit' && sudo zypper remove 'PackageKit' | sudo systemctl stop 'packagekit' && sudo zypper remove 'PackageKit' |
| |
| sudo zypper addlock 'PackageKit' | sudo zypper addlock 'PackageKit' |
| ====== Repositories ====== | ====== Repositories ====== |
| |
| ===== PackMan ===== | ===== PackMan Essentials ===== |
| |
| * https://en.opensuse.org/Additional_package_repositories#Packman | * http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/Essentials |
| * http://packman.links2linux.org/mirrors | * Priority: 98 |
| | |
| | sudo rpm --import 'http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/Essentials/repodata/repomd.xml.key' && sudo zypper addrepo --check --gpgcheck-strict --refresh --priority '98' --name 'Packman Essentials repository (openSUSE_Tumbleweed)' 'http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/Essentials/' 'packman-essentials' |
| | |
| | ===== Wine ===== |
| |
| * https://ftp.fau.de/packman/suse/openSUSE_Tumbleweed/ | * https://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_Tumbleweed/ |
| * Priority: 98 | * Priority: 98 |
| |
| sudo rpm --import 'https://ftp.fau.de/packman/suse/openSUSE_Tumbleweed/repodata/repomd.xml.key' && sudo zypper addrepo --check --gpgcheck-strict --refresh --priority '98' --name 'Packman repository (openSUSE_Tumbleweed)' 'https://ftp.fau.de/packman/suse/openSUSE_Tumbleweed/' 'packman' | sudo rpm --import 'https://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_Tumbleweed/repodata/repomd.xml.key' && sudo zypper addrepo --check --gpgcheck-strict --refresh --priority '98' --name 'Wine (openSUSE_Tumbleweed)' 'https://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_Tumbleweed/' 'wine' |
| |
| ====== Software ====== | ====== Software ====== |
| |
| 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 | 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 enable-remote 'lvfs-testing' --no-remote-check && sudo fwupdmgr refresh --force && sudo fwupdmgr update | |
| |
| ===== GNU nano ===== | ===== GNU nano ===== |
| ===== Remove ===== | ===== Remove ===== |
| |
| sudo zypper remove --clean-deps baobab snapshot evolution* gnome-clocks gnome-contacts gnome-logs gnome-maps gnome-music gnome-online-accounts gnome-packagekit gnome-photos gnome-remote-desktop gnome-shell-search-provider-* gnome-software gnome-tour gnome-tweaks gnome-weather patterns-gnome-gnome_games malcontent-control totem snapshot yelp irqbalance plymouth | * TODO |
| |
| sudo zypper addlock baobab snapshot evolution gnome-clocks gnome-contacts gnome-logs gnome-maps gnome-music gnome-online-accounts gnome-packagekit gnome-photos gnome-remote-desktop gnome-shell-search-provider-* gnome-software gnome-tour gnome-tweaks gnome-weather patterns-gnome-gnome_games malcontent-control totem snapshot yelp irqbalance plymouth | 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 irqbalance |
| | |
| | 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 irqbalance |
| |
| ===== General ===== | ===== General ===== |
| **** | **** |
| |
| sudo zypper install filezilla foliate gimp google-noto-*-fonts gnome-browser-connector gnome-extensions nautilus-file-roller keepassxc libreoffice MozillaThunderbird transmission-gtk wallpapers-openSUSE-extra vlc 7zip android-tools aria2 fastfetch gstreamer-plugins-*-extra htop Mesa-demo-x secret-tool sensors unar yt-dlp | sudo zypper install filezilla gimp google-noto-*-fonts wallpapers-openSUSE-extra keepassxc libreoffice qbittorrent vlc 7zip android-tools aria2 binutils htop icoutils nano secret-tool sensors unar yt-dlp |
| | |
| ===== PackMan ===== | |
| | |
| **** | |
| | |
| vlc-codecs | |
| |
| ===== Intel ===== | ===== Intel ===== |
| |
| intel-media-driver intel-gpu-tools libvulkan_intel | ucode-intel intel-media-driver intel-gpu-tools libvulkan_intel |
| |
| kernel-firmware-iwlwifi | sudo intel_gpu_top -s '500' -p -m |
| |
| ===== Doomsday Engine ===== | ===== Games ===== |
| |
| * [[games:linux:doomsday_engine|Notes]] | **** |
| |
| doomsday | doomsday |
| |
| ===== OBS Studio ===== | |
| |
| **** | |
| |
| obs-studio | |
| |
| ===== Wine ===== | ===== Wine ===== |
| |
| * New WoW64 | wine-staging wine-staging-32bit libSDL3-0-32bit gstreamer-plugins-base-32bit gstreamer-plugins-good-32bit gstreamer-plugins-bad-32bit gstreamer-plugins-ugly-32bit gstreamer-plugins-libav-32bit Mesa-libva-32bit |
| * ''binutils'' provides ''strings'' | |
| |
| wine-staging-wow64 winetricks icoutils binutils | libvulkan_intel-32bit |
| |
| ===== Firefox ESR ===== | ===== systool ===== |
| |
| **** | sysfsutils |
| |
| sudo zypper remove --clean-deps 'MozillaFirefox' && sudo zypper addlock 'MozillaFirefox' && sudo zypper install 'firefox-esr' | sudo systool -v -m 'i915' |
| | |
| ==== H.264 ==== | |
| | |
| * 2026/05/02: ''libavcodec58'' version from [[https://build.opensuse.org/projects/openSUSE:Factory/packages/firefox-esr/files/firefox-esr.spec|firefox-esr.spec]] ((line ''246'' has ''mozilla-libavcodec58_91.patch'' and auto-installed ''libavcodec62'' didn't work)) | |
| | |
| libavcodec58_134 | |
| |
| ===== Tor Browser ===== | ===== Tor Browser ===== |
| torbrowser-launcher | torbrowser-launcher |
| |
| ===== Specs ===== | ====== Settings ====== |
| |
| clear && fastfetch && uname -a && date | ===== Keyboard Shortcuts ===== |
| |
| sudo intel_gpu_top -s '500' -p -m | * [[#updater|Updater script]] |
| |
| ====== Settings ====== | '/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/bash' -c "konsole -p tabtitle='openSUSE Updater' -e ~/'.local/scripts/opensuse-updater.sh'" |
| |
| ===== Printer ===== | ===== Printer ===== |
| * [[servers:upstream_dns_servers|More DNS Servers]] | * [[servers:upstream_dns_servers|More DNS Servers]] |
| |
| <code>1.1.1.2,1.0.0.2</code> | <code>9.9.9.9,149.112.112.112</code> |
| |
| <code>2606:4700:4700::1112,2606:4700:4700::1002</code> | <code>2620:fe::fe,2620:fe::9</code> |
| | |
| ==== Firewalld ==== | |
| | |
| * [[linux:notes:firewalld|Notes]] | |
| * ''dhcpv6-client'' is on default ''public'' zone | |
| | |
| sudo firewall-cmd --set-default-zone='block' | |
| | |
| sudo firewall-cmd --permanent --add-service='dhcpv6-client' | |
| | |
| sudo firewall-cmd --list-all | |
| | |
| sudo firewall-cmd --get-active-zones | |
| | |
| sudo firewall-cmd --permanent --zone='docker' --remove-interface='docker0' | |
| | |
| sudo systemctl restart 'firewalld' | |
| | |
| === Etc === | |
| | |
| **** | |
| | |
| sudo firewall-cmd --permanent --add-service='transmission-client' | |
| |
| ===== Kernel Options ===== | ===== Kernel Options ===== |
| |
| ==== BPF Disable ==== | |
| |
| * https://docs.kernel.org/admin-guide/sysctl/kernel.html#unprivileged-bpf-disabled | |
| |
| * ''kernel.unprivileged_bpf_disabled = 0'' | |
| |
| echo 'kernel.unprivileged_bpf_disabled=0' | sudo tee '/etc/sysctl.d/99-bpf-disable.conf' > '/dev/null' && cat '/etc/sysctl.d/99-bpf-disable.conf' | |
| |
| '/usr/sbin/sysctl' 'kernel.unprivileged_bpf_disabled' | |
| |
| ==== Legacy MMap ==== | |
| |
| * https://man7.org/linux/man-pages/man5/proc_sys_vm.5.html | |
| |
| * ''vm.legacy_va_layout = 1'' | |
| |
| echo 'vm.legacy_va_layout=1' | sudo tee '/etc/sysctl.d/99-vm-legacy-va.conf' > '/dev/null' && cat '/etc/sysctl.d/99-vm-legacy-va.conf' | |
| |
| '/usr/sbin/sysctl' 'vm.legacy_va_layout' | |
| |
| ==== Perf Counters ==== | |
| |
| * https://www.kernel.org/doc/html/latest/admin-guide/perf-security.html | |
| |
| * ''kernel.perf_event_paranoid = -1'' | |
| |
| echo 'kernel.perf_event_paranoid=-1' | sudo tee '/etc/sysctl.d/99-perf-events.conf' > '/dev/null' && cat '/etc/sysctl.d/99-perf-events.conf' | |
| |
| '/usr/sbin/sysctl' 'kernel.perf_event_paranoid' | |
| |
| ==== Intel Perf Counters ==== | ==== Intel Perf Counters ==== |
| |
| * https://wiki.archlinux.org/title/intel_graphics#Enable_performance_support | * https://wiki.archlinux.org/title/intel_graphics#Enable_performance_support |
| |
| * ''dev.i915.perf_stream_paranoid = 0'' | * ''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' | 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' |
| |
| '/usr/sbin/sysctl' 'dev.i915.perf_stream_paranoid' | sudo sysctl 'dev.i915.perf_stream_paranoid' |
| |
| ==== Magic SysRq key ==== | ==== Magic SysRq key ==== |
| |
| * https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html | * https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html |
| * Allows ''REISUB'' | |
| |
| * ''kernel.sysrq = 1'' | * ''kernel.sysrq = 1'' |
| |
| echo 'kernel.sysrq = 1' | sudo tee '/etc/sysctl.d/99-sysrq.conf' > '/dev/null' && cat '/etc/sysctl.d/99-sysrq.conf' | echo 'kernel.sysrq = 1' | sudo tee '/etc/sysctl.d/99-sysrq.conf' > '/dev/null' && cat '/etc/sysctl.d/99-sysrq.conf' |
| |
| '/usr/sbin/sysctl' 'kernel.sysrq' | sudo sysctl 'kernel.sysrq' |
| |
| ==== Swappiness ==== | ==== Swappiness ==== |
| echo 'vm.swappiness = 0' | sudo tee '/etc/sysctl.d/99-swappiness.conf' > '/dev/null' && cat '/etc/sysctl.d/99-swappiness.conf' | echo 'vm.swappiness = 0' | sudo tee '/etc/sysctl.d/99-swappiness.conf' > '/dev/null' && cat '/etc/sysctl.d/99-swappiness.conf' |
| |
| '/usr/sbin/sysctl' 'vm.swappiness' | sudo sysctl 'vm.swappiness' |
| |
| ==== Memory Map Count ==== | ===== Plasma ===== |
| |
| * https://docs.kernel.org/admin-guide/sysctl/vm.html#max-map-count | * TODO |
| | |
| * ''vm.max_map_count = 2147483642'' | |
| | |
| echo 'vm.max_map_count=2147483642' | sudo tee '/etc/sysctl.d/99-vm-max-map.conf' > '/dev/null' && cat '/etc/sysctl.d/99-vm-max-map.conf' | |
| | |
| '/usr/sbin/sysctl' 'vm.max_map_count' | |
| | |
| ===== GNOME ===== | |
| | |
| ==== External Monitor Settings ==== | |
| | |
| * Full RGB + 8-bit color | |
| * Also applies disabled monitors at log-in (docked laptop) | |
| * [[linux:notes:gnome_hdmi_full_rgb|Notes]] | |
| | |
| * Between ''</mode>'' and ''</monitor>'' | |
| | |
| nano ~/'.config/monitors.xml' && sudo cp -fv ~/'.config/monitors.xml' '/etc/xdg/monitors.xml' | |
| | |
| <code> | |
| <rgbrange>full</rgbrange> | |
| <maxbpc>8</maxbpc> | |
| </code> | |
| | |
| ==== Extensions ==== | |
| | |
| * https://extensions.gnome.org/extension/545/hide-top-bar/ ((2026/06/05: Fixed recording 640x480 MW2 with PipeWire display capture ''obs-studio'')) | |
| * https://extensions.gnome.org/extension/8008/disable-unredirect/ | |
| | |
| ==== gsettings ==== | |
| | |
| * [[linux;notes;gsettings|More gsettings]] | |
| | |
| gsettings reset 'org.gnome.shell' 'app-picker-layout' && gsettings reset 'org.gnome.mutter' 'experimental-features' && gsettings set 'org.gnome.desktop.interface' 'clock-format' '12h' && gsettings set 'org.gnome.desktop.interface' 'accent-color' 'green' && 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.nautilus.preferences' 'date-time-format' 'detailed' && gsettings set 'org.gnome.nautilus.preferences' 'show-delete-permanently' 'false' && gsettings set 'org.gnome.desktop.peripherals.mouse' 'accel-profile' 'flat' && 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.gnome.desktop.interface' 'gtk-enable-primary-paste' 'false' && 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' && gsettings set 'org.gnome.settings-daemon.plugins.housekeeping' 'donation-reminder-enabled' 'false' && gsettings set 'org.gnome.shell' 'always-show-log-out' 'true' && gsettings set 'org.gnome.shell' 'app-picker-layout' '[]' && gsettings set 'org.gnome.desktop.app-folders' 'folder-children' "['YaST']" && gsettings set 'org.gnome.Console' 'restore-window-size' 'false' && gsettings set 'org.gnome.desktop.interface' 'overlay-scrolling' 'true' && gsettings set 'org.gnome.Console' 'transparency' 'true' && echo 'gsettings done' | |
| | |
| ==== Keyboard Shortcuts ==== | |
| | |
| * [[#add_database_password_to_gnome_keyring|KeePassXC]] | |
| * [[#updater|Updater]] | |
| | |
| '/usr/bin/bash' -c "'/usr/bin/secret-tool' lookup 'keepass' 'default' | '/usr/bin/keepassxc' --pw-stdin ~/'Documents/keepass.kdbx'" | |
| | |
| '/usr/bin/konsole' --workdir '/tmp' --builtin-profile --separate -p 'tabtitle=openSUSE Updater' -e ~/'.local/scripts/opensuse-updater.sh' | |
| | |
| ===== Firefox ===== | |
| | |
| * [[programs:firefox|Notes]] | |
| * Also Thunderbird | |
| |
| ===== KeePassXC ===== | ===== KeePassXC ===== |
| * Security -> [x] Use DuckDuckGo service to download website icons | * Security -> [x] Use DuckDuckGo service to download website icons |
| |
| ==== Add Database Password to GNOME Keyring ==== | ==== Add Database Password to KDE Wallet ==== |
| |
| * [[#keyboard_shortcuts|Keyboard shortcut]] | **** |
| |
| '/usr/bin/secret-tool' store --label='KeePass' 'keepass' 'default' | secret-tool store --label='KeePass' 'keepass' 'default' |
| |
| ===== Laptop Power Management ===== | ===== Laptop Power ===== |
| |
| * [[linux:notes:x86_energy_perf_policy|udev Rule]] | * [[linux:notes:x86_energy_perf_policy|x86_energy_perf_policy udev Rule]] |
| |
| ===== lm_sensors ===== | ===== lm_sensors ===== |
| sudo -e '/etc/sysconfig/lm_sensors' | sudo -e '/etc/sysconfig/lm_sensors' |
| |
| ===== PipeWire ===== | ===== Secure Shell ===== |
| |
| * [[linux:notes:misc#pipewire|Notes]] | * See [[clients:secure_shell|Client]] notes to generate/restore public key |
| |
| mkdir -p ~/'.config/pipewire/pipewire.conf.d' && nano ~/'.config/pipewire/pipewire.conf.d/99-custom.conf' | ===== Disk Drives ===== |
| |
| <code> | ==== Trim ==== |
| context.properties = { | |
| default.clock.allowed-rates = [ 44100 48000 96000 192000 ] | |
| } | |
| |
| # End</code> | **** |
| | |
| | sudo systemctl enable 'fstrim.timer' --now && sudo systemctl start 'fstrim' && sync && sudo systemctl status 'fstrim' -l |
| |
| ===== Time ===== | ===== 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 |
| |
| timedatectl set-timezone 'America/New_York' && sudo timedatectl 'set-ntp' 'true' && sudo hwclock --systohc && timedatectl status | sudo hwclock --systohc |
| |
| ====== Boot Loader ====== | ==== UTC ==== |
| |
| * YaST2 | * [[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? |
| |
| ===== Boot Code Options ===== | sudo timedatectl set-local-rtc '0' |
| |
| * Boot Loader: ''GRUB2 for EFI'' | ==== Verify ==== |
| |
| * ''[ ]'' Secure Boot Support | **** |
| * ''[x]'' Update NVRAM Entry | |
| |
| * Protective MBR flag: ''do not change'' | timedatectl | grep local |
| |
| ===== Kernel Parameters ===== | ====== Boot Loader ====== |
| | |
| * CPU Mitigations: ''Off'' | |
| * ''[x]'' Graphical console | |
| * ''[ ]'' Serial console | |
| | |
| ==== Spinesnap ==== | |
| |
| * [[linux:notes:kernel_parameters|More Kernel Parameters]] | * [[linux:notes:kernel_parameters|More Kernel Parameters]] |
| * Last updated: 2026/05/21 | |
| * :!: [[bios:notes:umaf#opensuse|UMAF]] | |
| |
| quiet bgrt_disable security='' lsm='' audit='0' add_efi_memmap mce='off' ras='cec_disable' acpi_osi='!' acpi_osi='Windows 2017.2' mem_sleep_default='s2idle' reboot='pci' hibernate='no' idle='halt' nohz='off' preempt='lazy' iommu='pt' swiotlb='noforce' memory_corruption_check='0' init_on_alloc='0' init_on_free='0' align_va_addr='on' module_blacklist='iTCO_wdt,intel_oc_wdt' nowatchdog tsc='nowatchdog' drm_kms_helper.poll='0' drm_kms_helper.fbdev_emulation='0' video='HDMI-A-1:1600x900MR@76' acpi_mask_gpe='0x6E' pci='nocrs,no_e820,noaer,rom,routeirq,skip_isa_align,pcie_bus_tune_off,ecrc=off,realloc,noari,noats,pcie_scan_all,big_root_window,notph' pcie_ports='compat' pcie_port_pm='off' hostname='localhost' | ===== Spinesnap ===== |
| |
| === Test === | * TODO: [[bsd;freebsd_14.3_xfce#loaderconf|FreeBSD]] ''i915'' ips, etc |
| | * TODO: Check ''iwlwifi.bt_coex_active'' default with ''systool'' |
| |
| * Last updated: 2026/05/05 | <code>acpi_osi='Linux' idle='halt' nohz='off' preempt='full' iommu='pt' pci='nocrs,pcie_bus_perf,realloc,pcie_scan_all,big_root_window' pcie_aspm='off' pcie_port_pm='off' ahci.mobile_lpm_policy='1' iwlmvm.power_scheme='1' nvme_core.default_ps_max_latency_us='0' nvme.noacpi='1' nowatchdog modprobe.blacklist='iTCO_wdt' tsc='nowatchdog' snd_hda_intel.power_save='0' usbcore.autosuspend='-1' i915.enable_fbc='0' i915.enable_psr='0' i915.enable_dc='0' i915.enable_guc='3' i915.guc_log_level='0' i915.nuclear_pageflip='1' rootflags='data=writeback' iwlwifi.bt_coex_active='0'</code> |
| |
| cgroup_disable='cpu,blkio,net_cls,perf_event,hugetlb,pids,rdma,misc,dmem,memory' rcu_nocbs noautogroup | ==== i915 ==== |
| |
| cat '/proc/cgroups' | sudo -e '/etc/modprobe.d/99-i915.conf' |
| |
| ===== Bootloader Options ===== | options i915 mitigations=off |
| |
| * Timeout in Seconds: ''1'' | sudo dracut --force --regenerate-all |
| * ''[ ]'' Probe Foreign OS | |
| * ''[ ]'' Hide Menu on Boot | |
| * Default Boot Section: ''openSUSE Tumbleweed'' | |
| * ''[ ]'' Protect Boot Loader with Password | |
| |
| ====== Drive Maintenance ====== | ====== Drive Maintenance ====== |
| |
| ===== Trim ===== | |
| |
| sudo systemctl enable 'fstrim.timer' --now | |
| |
| sudo systemctl start 'fstrim' && sync && sudo systemctl status 'fstrim' -l | |
| |
| sudo fstrim -v -a | |
| |
| ===== EFI ===== | ===== EFI ===== |
| * ''nvme0n1p1'' type ''vfat'' | * ''nvme0n1p1'' type ''vfat'' |
| |
| sudo umount '/boot/efi' && sudo dosfsck -a -t -w -v '/dev/nvme0n1p1' && sudo mount '/boot/efi' | sudo umount '/boot/efi' |
| |
| ===== ext2 ===== | sudo dosfsck -a -t -w -v '/dev/nvme0n1p1' |
| |
| * :!: From LiveUSB/unmounted | sudo mount '/boot/efi' |
| |
| sudo e2fsck -D -E 'discard,optimize_extents,inode_count_fullmap' -f -v -y '/dev/nvme0n1p2' | ===== ext4 ===== |
| |
| ==== Recovery Boot ==== | * TODO |
| |
| * Single-user mode | ====== New Settings ====== |
| * ''(recovery mode)'' boot option | |
| |
| sudo -e '/ext2.sh' && sudo chmod +x '/ext2.sh' | ===== hostname ===== |
| |
| <code> | sudo hostnamectl hostname 'Spinesnap' |
| #!/bin/bash | |
| |
| umount '/' | sudo hostnamectl hostname 'x' |
| e2fsck -D -E 'discard,optimize_extents,inode_count_fullmap' -f -v -y '/dev/nvme0n1p2' | |
| sync | |
| sleep '3' | |
| reboot | |
| | |
| # End</code> | |
| | |
| /ext2.sh | |
| |
| ====== Tweaks ====== | ====== Tweaks ====== |
| |
| <code> | <code> |
| # General | |
| export LD_BIND_NOW='1' | |
| export LD_PREFER_MAP_32BIT_EXEC='1' | |
| |
| # Plasma | |
| export KWIN_DRM_NO_AMS='1' | |
| |
| # Qt | # Qt |
| export QSG_NO_VSYNC='1' | |
| export QSG_RENDER_LOOP='basic' | export QSG_RENDER_LOOP='basic' |
| export QSG_USE_SIMPLE_ANIMATION_DRIVER='1' | export QSG_USE_SIMPLE_ANIMATION_DRIVER='1' |
| export QSG_RHI_BACKEND='vulkan' | export QSG_RHI_BACKEND='vulkan' |
| export QT_LOGGING_RULES='*=false' | export QT_LOGGING_RULES='*=false' |
| |
| # GTK | |
| export GDK_DEBUG='gl-prefer-gl' | |
| export GDK_RENDERING='image' | |
| export GSK_RENDERER='cairo' | |
| export GTK_A11Y='none' | |
| export NO_AT_BRIDGE='1' | |
| export GTK_OVERLAY_SCROLLING='0' | |
| |
| # Intel | |
| export ANV_NO_GPL='1' | |
| export anv_disable_link_time_optimization='true' | |
| export MESA_GL_VERSION_OVERRIDE='4.6COMPAT' | |
| export force_guc_low_latency='false' | |
| export allow_compressed_fallback='true' | |
| |
| # Mesa | # Mesa |
| export MESA_DEBUG='silent' | |
| export MESA_NO_ERROR='1' | export MESA_NO_ERROR='1' |
| export mesa_glthread='false' | export mesa_glthread='false' |
| export vblank_mode='0' | |
| export MESA_VK_WSI_PRESENT_MODE='immediate' | |
| export allow_higher_compat_version='true' | |
| export block_on_depleted_buffers='true' | |
| export disable_throttling='true' | |
| export force_integer_tex_nearest='true' | |
| export vk_wsi_force_bgra8_unorm_first='true' | |
| export vk_x11_ignore_suboptimal='true' | |
| export vk_xwayland_wait_ready='false' | |
| |
| # Shader Cache | |
| #export MESA_SHADER_CACHE_DISABLE='true' | |
| export MESA_DISK_CACHE_DATABASE='0' | export MESA_DISK_CACHE_DATABASE='0' |
| export MESA_DISK_CACHE_SINGLE_FILE='0' | export MESA_DISK_CACHE_SINGLE_FILE='0' |
| |
| # End</code> | # End</code> |
| |
| ===== modprobe.d ===== | |
| |
| * [[linux;notes;modprobe.d_tweaks#spinesnap|Notes]] | |
| |
| ===== Dracut ===== | ===== Dracut ===== |
| |
| ==== General ==== | sudo -e '/etc/dracut.conf.d/99-custom.conf' && sudo dracut --force --regenerate-all |
| | |
| sudo -e '/etc/dracut.conf.d/99-tweaks.conf' | |
| |
| <code> | <code> |
| | # Compression |
| compress="cat" | compress="cat" |
| | |
| | # Machine-specific |
| do_strip="yes" | do_strip="yes" |
| aggressive_strip="yes" | aggressive_strip="yes" |
| hostonly="yes" | hostonly="yes" |
| hostonly_mode="strict" | hostonly_mode="strict" |
| reproducible="no" | |
| enhanced_cpio="no" | |
| i18n_install_all="no" | |
| kernel_cmdline="rd.luks=0 rd.lvm=0 rd.md=0 rd.dm=0" | |
| |
| # End</code> | # End</code> |
| |
| ==== Spinesnap ==== | ==== Undo ==== |
| |
| sudo -e '/etc/dracut.conf.d/99-spinesnap.conf' | **** |
| |
| <code> | sudo rm -f '/etc/dracut.conf.d/99-custom.conf' && sudo dracut --force --regenerate-all |
| early_microcode="no" | |
| nofscks="yes" | |
| |
| force_drivers+=" i915 " | ===== ext4 ===== |
| |
| omit_drivers+=" intel_oc_wdt iTCO_wdt iTCO_vendor_support thunderbolt " | * ''nvme0n1p2'' type ''ext4'' |
| omit_dracutmodules+=" i18n resume suse-xfs terminfo kernel-modules-extra " | |
| | |
| # End</code> | |
| | |
| sudo dracut --force --regenerate-all | |
| | |
| ===== journald ===== | |
| | |
| sudo mkdir -p '/etc/systemd/journald.conf.d' && sudo -e '/etc/systemd/journald.conf.d/99-tweaks.conf' | |
| | |
| <code> | |
| [Journal] | |
| Storage=none | |
| Compress=false | |
| MaxLevelStore=0 | |
| MaxLevelSyslog=0 | |
| MaxLevelKMsg=0 | |
| MaxLevelConsole=0 | |
| MaxLevelWall=0 | |
| | |
| # End</code> | |
| |
| sudo journalctl --vacuum-time='1s' --rotate | sudo tune2fs -O 'fast_commit' '/dev/nvme0n1p2' |
| |
| ===== fstab ===== | ===== fstab ===== |
| |
| **** | * ''swap'' and ext4 ''/'' on NVMe |
| | * ''data=writeback'' requires kernel parameter ''rootflags=data=writeback'' |
| |
| sudo -e '/etc/fstab' | sudo -e '/etc/fstab' |
| |
| ==== swap ==== | |
| |
| **** | |
| |
| ,discard=once | ,discard=once |
| |
| ==== ext2 ==== | ,data=writeback,nobarrier,journal_async_commit |
| | |
| * ''/ type ext2'' | |
| | |
| ,noatime | |
| | |
| ==== EFI ==== | |
| | |
| * https://www.kernel.org/doc/Documentation/filesystems/vfat.txt | |
| | |
| * ''/boot/efi type vfat'' | |
| | |
| ,discard,tz=UTC,shortname=winnt,allow_utime=0002 | |
| | |
| utf8,dmask=0077 | |
| |
| ===== Wine ===== | ===== Wine ===== |
| |
| * [[linux;notes;wine|Notes]] | * [[linux:notes:wine#tweaks]] |
| | |
| sudo -e '/etc/profile.d/wine-tweaks.sh' | |
| | |
| <code> | |
| # Staging | |
| export WINE_LARGE_ADDRESS_AWARE='1' | |
| export STAGING_SHARED_MEMORY='1' | |
| export STAGING_WRITECOPY='1' | |
| | |
| # Logging | |
| export WINEDEBUG='-all' | |
| export VKD3D_DEBUG='none' | |
| export VKD3D_SHADER_DEBUG='none' | |
| export DXVK_LOG_LEVEL='none' | |
| | |
| # DXVK | |
| #export DXVK_SHADER_CACHE='0' | |
| #export DXVK_STATE_CACHE='0' | |
| | |
| # End</code> | |
| |
| ====== Scripts ====== | ====== Scripts ====== |
| |
| ===== Updater ===== | ===== Updater ===== |
| |
| * [[#keyboard_shortcuts|Keyboard shortcut]] | |
| |
| mkdir -p ~/'.local/scripts' && nano ~/'.local/scripts/opensuse-updater.sh' && chmod +x ~/'.local/scripts/opensuse-updater.sh' | mkdir -p ~/'.local/scripts' && nano ~/'.local/scripts/opensuse-updater.sh' && chmod +x ~/'.local/scripts/opensuse-updater.sh' |
| #!/bin/bash | #!/bin/bash |
| |
| cd '/tmp' | 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 |
| |
| sudo '/usr/bin/zypper' clean --all | rm -Rf ~/'.cache/mesa_shader_cache'* |
| sudo '/usr/bin/zypper' refresh --force --services | balooctl6 purge |
| sudo '/usr/bin/zypper' dist-upgrade --details --allow-downgrade --allow-name-change --allow-arch-change --allow-vendor-change | |
| |
| rm -Rf ~/'.cache/mesa_shader_cache/'* ~/'.cache/thumbnails/'* | sudo fstrim --all --verbose |
| rm -Rf ~/'.cache/mozilla/firefox/'* ~/'.cache/thunderbird/'* | |
| | |
| balooctl6 purge | |
| |
| sync | sync |
| zypper ps --short | zypper ps --short |
| | |
| read -n '1' -s -r -p 'Done. Press any key to exit.' | read -n '1' -s -r -p 'Done. Press any key to exit.' |
| sleep '3' | sleep '3' |
| |
| * See [[linux;notes;misc]] | * See [[linux;notes;misc]] |
| |
| ====== Old TODO ====== | |
| |
| 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 irqbalance | |
| |
| 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 irqbalance | |
| |
| sudo zypper install filezilla gimp google-noto-*-fonts wallpapers-openSUSE-extra keepassxc libreoffice qbittorrent vlc 7zip android-tools aria2 binutils htop icoutils nano secret-tool sensors unar yt-dlp | |
| |