distros:fedora_workstation_gnome
Table of Contents
Information
- Fedora Workstation 1)
- 38
Download
Workstation
Updated Live Images
Installation Notes
Installing
f2fs-tools
in the Live environment before starting the installer allows for selecting F2FS for partitions, and has improved performance over XFS in some real-world scenariosUsing F2FS for root caused some error with systemd trying to write file attributes to /var/log/journal (discussion thread), it's apparently harmless but XFS has no problem
EFI/fedora/shimx64.efi
2)
Partitioning
Delete
/home
Delete
/
- Set
/boot
to use ext4 - Re-create
/
without specifying a size 3) - Set
/
to use ext4
HOSTS
- Unified hosts + fakenews + gambling
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/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/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
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
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
- TODO: Figure out Noto fonts for F38
sudo dnf install evolution filezilla gimp keepassxc transmission-gtk aria2 hdparm htop kernel-tools lm_sensors p7zip p7zip-plugins unar wget xfsprogs-xfs_scrub xrandr
'google-noto'*
RPM Fusion
free
ffmpeg-libs mpv youtube-dl libavcodec-freeworld
Intel
libva-intel-driver
Mesa
- Can likely skip the
i686
packages unless using Wine or Proton Required for ALVR with AMD Graphics
sudo dnf swap 'mesa-va-drivers.x86_64' 'mesa-va-drivers-freeworld.x86_64'
sudo dnf swap 'mesa-vdpau-drivers.x86_64' 'mesa-vdpau-drivers-freeworld.x86_64'
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
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
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/hosts' && restorecon -F -I -R '/etc/hosts' && sync && fstrim --all --verbose && sync && read -n '1' -s -r -p 'Done' && sleep '2''"
KeePassXC Auto-Type Fix
2023/04/21:
keepassxc
hasQT_QPA_PLATFORM=xcb
in order to work for OSRS on GNOME on Wayland on Fedora 38
bash -c "secret-tool lookup 'keepass' 'default' | QT_QPA_PLATFORM='xcb' keepassxc --pw-stdin ~/'Documents/keepass.kdbx'"
Keys
- Listed respectively to above
- Ctrl + Alt + T
- Ctrl + Alt + Z
- Menu
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
Wraeclast
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=''
Linux OSI
sudo grubby --args='acpi_osi=Linux' --update-kernel='ALL'
PCI
sudo grubby --args='pci=pcie_bus_perf,realloc,pcie_scan_all,big_root_window' --update-kernel='ALL'
Intel 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'
GNOME
Dynamic Wallpaper
- TODO: Test on F39
gsettings set 'org.gnome.desktop.background' 'picture-uri' '/usr/share/backgrounds/f'*'/default/f'*'.xml'
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 6)
Settings
All-in-one
- Last updated: 2023/04/24
gsettings reset 'org.gnome.shell' 'app-picker-layout' && gsettings set 'org.gnome.desktop.interface' 'enable-animations' 'false' && 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: 2023/04/24
gsettings reset 'org.gnome.shell' 'app-picker-layout'
gsettings set 'org.gnome.desktop.interface' 'enable-animations' 'false'
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
Disable GPU
- Add the disable flags to
ExecStart=
sudo -e '/usr/lib/systemd/user/keybase.gui.service'
ExecStart=/opt/keybase/Keybase --disable-gpu --disable-software-rasterizer
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 hwdec=vaapi hwdec-codecs=all
PipeWire
- See PipeWire for main config
mkdir -p ~/'.config/pipewire/pipewire.conf.d' && nano ~/'.config/pipewire/pipewire.conf.d/99-custom.conf'
context.properties = { default.clock.rate = 192000 default.clock.allowed-rates = [ 44100 48000 88200 96000 192000 ] }
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- 2023/03/24: The prop value for
Broadcast RGB
changed from98
to99
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 '/etc/gdm/PostLogin/Default' && sync
#!/usr/bin/sh proptest -M 'i915' -D '/dev/dri/card'* '103' 'connector' '99' '1' proptest -M 'i915' -D '/dev/dri/card'* '103' 'connector' '107' '4'
Xorg
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
echo 'MOZ_USE_XINPUT2=1' | sudo tee '/etc/profile.d/99-firefox-tweaks.sh' > '/dev/null' && cat '/etc/profile.d/99-firefox-tweaks.sh'
sudo -e '/etc/profile.d/99-firefox-tweaks.sh'
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 available 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)
there used to be notes here on disabling Wayland on the log-in screen with GDM config
/var/www/wiki/data/pages/distros/fedora_workstation_gnome.txt · Last modified: 2023/04/29 21:45 by Sean Rhone