User Tools

Site Tools


distros:fedora_workstation_gnome

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 scenarios
  • :!: Using 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

  1. :!: Delete /home
  2. :!: Delete /
  3. Set /boot to use ext4
  4. Re-create / without specifying a size 3)
  5. Set / to use ext4

HOSTS

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

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 and flathub-beta
  • Sets flathub priority to 2 and flathub-beta to 3 4)
  • :!: 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 and EDITOR to nano 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

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

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

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 has QT_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

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

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

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

  • :!: Keybase uses GPU in the background, and used to crash amdgpu (see #25070)
  • 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

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

Wayland

i915 HDMI

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

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

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

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 priority
5)
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

Except where otherwise noted, content on this wiki is licensed under the following license: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki