distros:fedora_workstation_gnome
Table of Contents
Information
- Fedora Workstation 1)
- 37
Download
Workstation
Updated Live Images
Installation Notes
EFI/fedora/shimx64.efi
2)
Partitioning
Delete
/home
Delete
/
- Set
/boot
to use XFS - Re-create
/
without specifying a size 3) - Set
/
to use XFS
HOSTS
- Unified hosts + fakenews + gambling + porn
Initial
Only run this once as it overwrites
/etc/hosts-bak
on subsequent runs
wget -O '/tmp/hosts-tmp' 'https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn/hosts' && sudo cp '/etc/hosts' '/etc/hosts-bak' && sudo mv '/tmp/hosts-tmp' '/etc/hosts' && sudo restorecon -F -I -R '/etc/hosts' && sync
Update
wget -O '/tmp/hosts-tmp' 'https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn/hosts' && sudo mv '/tmp/hosts-tmp' '/etc/hosts' && sudo restorecon -F -I -R '/etc/hosts' && sync
Verify
cat '/etc/hosts' | grep 'Date:'
sudo -e '/etc/hosts'
Restore
sudo cp '/etc/hosts-bak' '/etc/hosts' && sync
DNF
- Disables Delta RPMs with
deltarpm=false
- Downloads packages from the fastest mirror with
fastestmirror=true
cat '/etc/dnf/dnf.conf' | grep 'deltarpm=false' || echo 'deltarpm=false' | sudo tee --append '/etc/dnf/dnf.conf' > '/dev/null' && cat '/etc/dnf/dnf.conf'
cat '/etc/dnf/dnf.conf' | grep 'fastestmirror=true' || echo 'fastestmirror=true' | sudo tee --append '/etc/dnf/dnf.conf' > '/dev/null' && cat '/etc/dnf/dnf.conf'
Repositories
su
- Useful for fresh installations where repo(s) can be added, and then package updates can be ran afterwards unattended without having
sudo
timeout and re-prompt for the password
sudo su
calcastor/gnome-patched Copr
This allows Mutter to use triple-buffering for improved performance, like Ubuntu 22.04+
sudo dnf copr enable 'calcastor/gnome-patched'
RPM Fusion
free
sudo rpm --import 'https://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-free-fedora-2020' && sync && sudo dnf install 'https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-'$(rpm -E %fedora)'.noarch.rpm' -y && sync
nonfree
Provides Steam and
intel-media-driver
sudo rpm --import 'https://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-nonfree-fedora-2020' && sync && sudo dnf install 'https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-'$(rpm -E %fedora)'.noarch.rpm' -y && sync
RawhideKernelNodebug
sudo dnf config-manager --add-repo='http://dl.fedoraproject.org/pub/alt/rawhide-kernel-nodebug/fedora-rawhide-kernel-nodebug.repo'
Flathub
- Enables both
flathub
andflathub-beta
There's no benefit to replacing native packages with Flatpak in late 2022 5)
sudo flatpak remote-delete --system --verbose 'flathub' && sudo flatpak remote-add --system --prio='2' --if-not-exists --verbose 'flathub' 'https://flathub.org/repo/flathub.flatpakrepo' && sudo flatpak remote-delete --system --verbose 'flathub-beta' && sudo flatpak remote-add --system --prio='3' --if-not-exists --verbose 'flathub-beta' 'https://flathub.org/beta-repo/flathub-beta.flatpakrepo' && sync
Software
Update
System
sudo dnf autoremove -y && sudo dnf distro-sync -y && sync
modesetting
- Forces use of
modesetting
with Xorg by removingamdgpu
,ati
,intel
, andnouveau
DDX drivers
sudo dnf remove xorg-x11-drv-amdgpu xorg-x11-drv-ati xorg-x11-drv-intel xorg-x11-drv-nouveau
Firmware
sudo fwupdmgr refresh --force && sudo fwupdmgr update --verbose
Flatpaks
flatpak update && sudo flatpak update
GNU nano
- Installs
nano
- Sets
VISUAL
andEDITOR
tonano
via environment variable - Sets
nowrap
for current user
sudo dnf install 'nano' -y && 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'
RPM Fusion
Tainted Repos
- Provides interesting firmware files
sudo dnf install 'rpmfusion-free-release-tainted' 'rpmfusion-nonfree-release-tainted'
Metadata and Multimedia
- Covers AppStream data and missing Multimedia packages
sudo dnf groupupdate 'core' && sudo dnf groupupdate 'multimedia' --setop='install_weak_deps=False' --exclude='PackageKit-gstreamer-plugin' && sudo dnf groupupdate 'sound-and-video' && sync
More Multimedia
sudo dnf install gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 gstreamer1-libav --exclude='gstreamer1-plugins-bad-free-devel'
sudo dnf install lame\* --exclude='lame-devel'
sudo dnf group upgrade --with-optional 'Multimedia'
General
sudo dnf install evolution filezilla gimp keepassxc transmission-gtk aria2 'google-noto'* hdparm htop kernel-tools lm_sensors p7zip p7zip-plugins unar wget xfsprogs-xfs_scrub xrandr
RPM Fusion
free
ffmpeg-libs mpv youtube-dl
Mesa
sudo dnf swap 'mesa-va-drivers' 'mesa-va-drivers-freeworld'
sudo dnf swap 'mesa-vdpau-drivers' 'mesa-vdpau-drivers-freeworld'
sudo dnf swap 'mesa-va-drivers.i686' 'mesa-va-drivers-freeworld.i686'
sudo dnf swap 'mesa-vdpau-drivers.i686' 'mesa-vdpau-drivers-freeworld.i686'
nonfree
Intel
iHD may perform worse than the older i965 VA driver, see #925
intel-media-driver
Steam
steam protontricks redhat-lsb-core mangohud
NVIDIA
- This installs NVIDIA proprietary graphics drivers and necessary packages, along with building the module afterwards
If the open kernel module is wanted instead, see nvidia-open-gpu-kernel-modules
Reboot after running this
sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda xorg-x11-drv-nvidia-cuda-libs vulkan vdpauinfo libva-vdpau-driver libva-utils nvidia-vaapi-driver -y && sync && sudo akmods --force && sync
Tainted
libdvdcss \*-firmware
ROCm
rocm-opencl rocm-smi
ckb-next
ckb-next
Wine
wine winetricks mangohud
Tor Browser
torbrowser-launcher
Game Controllers
- Necessary for Xbox 360 controllers
- Not necessary for a Steam Controller
kernel-modules-extra
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'
Keybase
'https://prerelease.keybase.io/keybase_amd64.rpm'
Settings
Keyboard Shortcuts
- See Nightwane notes for
Game.sh
script
gnome-terminal
bash -c "secret-tool lookup 'keepass' 'default' | keepassxc --pw-stdin ~/'Documents/keepass.kdbx'"
gnome-terminal --command "sudo sh -c 'dnf clean 'all' && dnf distro-sync -y && sync && flatpak update && wget -O '/etc/hosts' 'https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn/hosts' && restorecon -F -I -R '/etc/hosts' && sync && fstrim --all --verbose && sync && read -n '1' -s -r -p 'Done' && sleep '2''"
gnome-terminal -- sh -c ~/'.local/scripts/Game.sh'
Keys
- Listed respectively to above
- Ctrl + Alt + T
- Ctrl + Alt + Z
- Menu (Square with 3 lines near Alt)
- F6
Printer
- Internet Printing Protocol (ipps) → HP → IPP Everywhere ™
- Color Mode: Device Gray
- Administration → Set As Server Default
ipps://192.168.1.164/ipp/print
Network
1.1.1.1 For Families DNS
- See DNS servers for other DNS servers
1.1.1.2,1.0.0.2
2606:4700:4700::1112,2606:4700:4700::1002
https://security.cloudflare-dns.com/dns-query
Nautilus
- Sort Folders Before Files
Rhythmbox
- See Internet Radio
Terminal
- 10-notch Transparency
Kernel Options
Magic SysRq key
echo 'kernel.sysrq = 1' | sudo tee '/etc/sysctl.d/99-sysrq.conf' > '/dev/null' && cat '/etc/sysctl.d/99-sysrq.conf'
Swappiness
echo 'vm.swappiness = 0' | sudo tee '/etc/sysctl.d/99-swappiness.conf' > '/dev/null' && cat '/etc/sysctl.d/99-swappiness.conf'
Verify
sysctl 'vm.swappiness'
cat '/proc/sys/vm/swappiness'
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'
GRUB
Config
- Add commands within
args
sudo grubby --update-kernel='ALL' --args=''
PCI
sudo grubby --args='pci=pcie_bus_perf,realloc,pcie_scan_all,big_root_window' --update-kernel='ALL'
Modern Standby
sudo grubby --args='mem_sleep_default=s2idle' --update-kernel='ALL'
AMD SME
- Disable TSME in BIOS if using this
sudo grubby --args='mem_encrypt=on' --update-kernel='ALL'
Intel
IOMMU
sudo grubby --update-kernel='ALL' --args='intel_iommu=on'
Optimization
- This enables Framebuffer compression, Panel self-refresh, and i915 Fastboot
- This also enables GuC and HuC firmware loading if supported by the hardware
sudo grubby --update-kernel='ALL' --args='i915.enable_fbc=1 i915.enable_psr=1 i915.fastboot=1 i915.enable_guc=3'
AMDGPU Overclocking
- Allows use of Overdrive options for overclocking and increasing the Power Limit
Calculate
printf 'amdgpu.ppfeaturemask=0x%x\n' "$(($(cat /sys/module/amdgpu/parameters/ppfeaturemask) | 0x4000))"
Kernel Option
- Replace
x
with aboveamdgpu.ppfeaturemask
sudo grubby --args='x' --update-kernel='ALL'
GNOME
Notes
Disable color calibration for the monitor in GNOME Settings 6)
Hide Top Bar
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
- Above 100% scaling makes Fedora's logo on the log-in screen look pixelated
sudo cp ~/'.config/monitors.xml' ~gdm/'.config/monitors.xml' && sudo chown 'gdm':'gdm' ~gdm/'.config/monitors.xml'
Undo
sudo rm ~gdm/'.config/monitors.xml' && sync
Wayland
ckb-next auto light shutoff requires Xorg
GPU scaling for non-native resolutions requires Xorg
Steam and various games through Wine work better on Xorg
- Xorg can be selected at log-in 7)
Settings
All-in-one
- Last updated: 2022/10/14
TODO: Add gsettings for changing to Noto fonts?
gsettings reset 'org.gnome.shell' 'app-picker-layout' && gsettings set 'org.gnome.desktop.interface' 'enable-animations' 'true' && 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.mouse' 'accel-profile' 'flat' && 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' 'clock-show-date' 'true' && gsettings set 'org.gnome.software' 'download-updates' 'false' && gsettings set 'org.gnome.desktop.interface' 'clock-show-weekday' 'true'
Individual
- Last updated: 2022/10/14
gsettings reset 'org.gnome.shell' 'app-picker-layout'
gsettings set 'org.gnome.desktop.interface' 'enable-animations' 'true'
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.mouse' 'accel-profile' 'flat'
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' 'clock-show-date' 'true'
gsettings set 'org.gnome.software' 'download-updates' 'false'
gsettings set 'org.gnome.desktop.interface' 'clock-show-weekday' 'true'
Hostname
- Change
x
to computer name
hostnamectl set-hostname 'x'
Keybase
Run after initial install
run_keybase
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'
lm_sensors
--auto
can be used here, but if modules need to be added to/etc/modules
, not using--auto
will allow sensors to do it on-prompt
sudo sensors-detect
sudo -e '/etc/sysconfig/lm_sensors'
mpv
mkdir -p ~/'.config/mpv' && nano ~/'.config/mpv/mpv.conf'
profile=gpu-hq scale=ewa_lanczossharp cscale=ewa_lanczossharp video-sync=display-resample interpolation tscale=oversample
Laptop Power Management
Secure Shell
- See Client notes to generate/restore public key
Drive Maintenance
Trim
sudo systemctl enable 'fstrim.timer' --now && sudo systemctl start 'fstrim' && sync && sudo systemctl status 'fstrim' -l
XFS Scrub
Enable in all cases since it's likely both
/
and/boot
are XFS
sudo systemctl enable 'xfs_scrub_all.timer' --now && sudo systemctl start 'xfs_scrub_all' && sync && sudo systemctl status 'xfs_scrub_all' -l
UTC
- Set RTC to UTC
Needed if Windows is installed first
Windows should also be set to UTC
sudo timedatectl set-local-rtc '0'
Verify
timedatectl | grep local
Wine
- See Wine
Wayland
i915 HDMI
- This sets RGB Full on HDMI, and the content type to
Game
on HDMI for low-latency - Run
proptest
from a Wayland session to see moreconnector
and prop names This will prevent GDM from displaying if
proptest
is not installed
sudo dnf install 'drm-utils' -y && sync
sudo -e '/etc/gdm/PostLogin/Default' && sudo chmod +x '/etc/gdm/PostLogin/Default' && sudo restorecon -F -I -R -v '/etc/gdm/PostLogin/Default'
#!/usr/bin/sh proptest -M 'i915' -D '/dev/dri/card'* '103' 'connector' '98' '1' proptest -M 'i915' -D '/dev/dri/card'* '103' 'connector' '107' '4'
Xorg
Do not force a Xorg DDX driver 8)
i915 HDMI
- Same as
proptest
Wayland commands above - These don't need to be auto-start since the above
proptest
commands for Wayland carry-over to Xorg sessions
xrandr --output 'HDMI-1' --set 'Broadcast RGB' 'Full'
xrandr --output 'HDMI-1' --set 'content type' 'Game'
NVIDIA
Root Xorg
Run Xorg as Root
- This is required to allow overclocking and fan control
This is still required as of 2022/10/13 with 520.56.06, even with the open module
echo 'needs_root_rights = yes' | sudo tee --append '/etc/X11/Xwrapper.config' > '/dev/null' && cat '/etc/X11/Xwrapper.config'
xorg.conf
- See NVIDIA xorg.conf
Mozilla Firefox
- See Firefox if old configuration is needed, otherwise use Firefox Sync
Tweaks
- Enables smooth-scrolling
sudo mkdir -p '/etc/environment.d' && echo 'MOZ_USE_XINPUT2=1' | sudo tee '/etc/environment.d/99-firefox-tweaks.conf' > '/dev/null' && cat '/etc/environment.d/99-firefox-tweaks.conf'
DNS over HTTPS
- See DNS Servers for other DoH addresses
https://security.cloudflare-dns.com/dns-query
Server
- For workstations that run servers as a secondary directive
- For headless servers, see Fedora Server
Enable SSH
sudo systemctl enable --now 'sshd'
Automatic Updates
Service
sudo -e '/etc/systemd/system/fedora-up.service'
[Service] Type=oneshot ExecStartPre='/usr/bin/dnf' clean 'all' ExecStart='/usr/bin/dnf' distro-sync -y ExecStart='/usr/bin/dnf' autoremove -y ExecStartPost='/usr/bin/sync' ExecStartPost='/usr/bin/systemctl' reboot
Timer
- 03:00 Oak
sudo -e '/etc/systemd/system/fedora-up.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'fedora-up.timer' --now
[Unit] Description=Software Package Maintenance and Updater After=network-online.target Wants=network-online.target [Timer] OnCalendar=*-*-* 03:00:00 Persistent=true [Install] WantedBy=timers.target
Notable Folders and Commands
- See misc_linux
2)
EFI file to boot and in the case of (quirky) InsydeH2O UEFI implementations, add to SecureBoot trust; doesn't matter if SecureBoot is enabled or not
3)
this uses all avaialble space
4)
default
fedora
repo has top/1
priority5)
Steam's Flatpak crashes when closing the last window (no background), and Steam Link app has notably higher latency
6)
GNOME for several versions now makes the screen color too warm on Xorg
7)
there used to be notes here on disabling Wayland on the log-in screen with GDM config
8)
modesetting
functions better than amdgpu
and intel
DDX drivers in 2022/var/www/wiki/data/pages/distros/fedora_workstation_gnome.txt · Last modified: 2023/01/13 14:36 by Sean Rhone