Both sides previous revisionPrevious revisionNext revision | Previous revision |
distros:fedora_workstation_gnome [2024/04/29 16:58] – [Full RGB HDMI] Sean Rhone | distros:fedora_workstation_gnome [2024/08/13 17:03] (current) – removed Sean Rhone |
---|
====== Information ====== | |
| |
* Fedora Workstation ((https://getfedora.org/en/workstation)) | |
* 40 | |
| |
====== Download ====== | |
| |
===== Fedora Media Writer ===== | |
| |
* https://github.com/FedoraQt/MediaWriter/releases | |
| |
===== Workstation ===== | |
| |
* https://getfedora.org/en/workstation/download | |
| |
===== Updated Live Images ===== | |
| |
* [[https://fedoraproject.org/wiki/Respins-SIG|Respins-SIG]] | |
| |
* https://dl.fedoraproject.org/pub/alt/live-respins | |
* 2024/04/29: This is still offering F39 images currently | |
| |
====== Installation Notes ====== | |
| |
===== ISO Image Write ===== | |
| |
* :!: 2024/04/29: Rufus from Windows 10 wrote F40's Workstation ISO in DD mode to an external HDD and caused media check to fail around 4% | |
* :!: Fedora Image Writer [[https://github.com/FedoraQt/MediaWriter/releases/tag/5.0.9|5.0.9 win64]] also had failed media checks in the past ([[https://github.com/FedoraQt/MediaWriter/issues/669#issuecomment-1901538714|comment]]), but [[https://github.com/FedoraQt/MediaWriter/releases/tag/latest-windows|this version]] ((Oct 25, 2023, [[https://github.com/FedoraQt/MediaWriter/commit/43acd55d77299ee674c91e9743e61d659f31d0ba|43acd55]])) was consistently fine | |
| |
* 2024/04/29: ''dd'' images from Linux or a LiveUSB session of it, or [[https://etcher.balena.io/#download-etcher|balena's Etcher]] portable on Windows | |
| |
===== Partitioning ===== | |
| |
- :!: Delete ''/home'' | |
- :!: Delete ''/'' | |
- Set ''/boot'' to XFS ((Fedora Server and RHEL do it)) | |
- Re-create ''/'' without specifying a size ((this uses all available remaining space)) | |
- Set ''/'' to F2FS or XFS ((If F2FS isn't an option, install ''f2fs-tools'' on F38 and older before starting Anaconda)) | |
- :!: See [[notes:misc_linux#create_software_raid|Software RAID]] notes if software RAID across multiple drives is wanted | |
| |
====== HOSTS ====== | |
| |
* https://github.com/StevenBlack/hosts/ | |
* Unified hosts + fakenews + gambling | |
| |
===== Initial ===== | |
| |
* Only run once | |
| |
ls '/etc/hosts~' || wget -O '/tmp/hosts-tmp' 'https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling/hosts' && sudo cp --backup '/tmp/hosts-tmp' '/etc/hosts' && sudo restorecon -F -I -R '/etc/hosts' && sync | |
| |
===== Update ===== | |
| |
**** | |
| |
ls '/etc/hosts~' && wget -O '/tmp/hosts-tmp' 'https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling/hosts' && sudo mv --force '/tmp/hosts-tmp' '/etc/hosts' && sudo restorecon -F -I -R '/etc/hosts' && sync | |
| |
===== Restore Backup ===== | |
| |
**** | |
| |
ls '/etc/hosts~' && sudo restorecon -F -I -R '/etc/hosts~' && sudo mv --force '/etc/hosts~' '/etc/hosts' && sync | |
| |
====== DNF ====== | |
| |
* Disables Delta RPMs with ''deltarpm=false'' | |
| |
echo 'deltarpm=false' | sudo tee --append '/etc/dnf/dnf.conf' > '/dev/null' && cat '/etc/dnf/dnf.conf' | grep 'deltarpm=false' | |
| |
sudo -e '/etc/dnf/dnf.conf' | |
| |
====== Repositories ====== | |
| |
===== Keybase ===== | |
| |
* https://keybase.io/ | |
| |
sudo rpm --import 'https://keybase.io/docs/server_security/code_signing_key.asc' && sudo dnf config-manager --add-repo 'http://prerelease.keybase.io/rpm/$basearch' | |
| |
===== RPM Fusion ===== | |
| |
* https://rpmfusion.org | |
* See [[notes:fedora_rpm_fusion|RPM Fusion]] notes | |
| |
====== Software ====== | |
| |
===== Update ===== | |
| |
==== System ==== | |
| |
* See [[notes:misc_linux#dnf_autoremove_fix]] if ''dnf autoremove'' fails | |
| |
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' | |
| |
==== Multimedia ==== | |
| |
**** | |
| |
<code>sudo dnf groupupdate 'core' 'multimedia' 'sound-and-video' --setop='install_weak_deps=False' --exclude='PackageKit-gstreamer-plugin' --allowerasing && sync</code> | |
| |
===== General ===== | |
| |
**** | |
| |
sudo dnf install evolution file-roller filezilla foliate gbrainy gimp gnome-extensions-app keepassxc mpv transmission-gtk android-tools aria2 binutils hdparm htop icoutils kernel-tools lm_sensors gstreamer1-plugin-openh264 openh264 mozilla-openh264 p7zip p7zip-plugins unar wget xrandr yt-dlp | |
| |
===== Google Chrome ===== | |
| |
**** | |
| |
google-chrome-stable | |
| |
===== Keybase ===== | |
| |
**** | |
| |
keybase | |
| |
===== OBS Studio ===== | |
| |
* ''obs-studio'' is in Fedora repos and works fine by itself, but pulls in interesting dependencies from [[notes:fedora_rpm_fusion#free|RPM Fusion's free repo]] | |
| |
obs-studio | |
| |
===== Wine ===== | |
| |
<code>wine winetricks</code> | |
| |
<code>mesa-libd3d mesa-libd3d.i686</code> | |
| |
====== Settings ====== | |
| |
===== Keyboard Shortcuts ===== | |
| |
<code>gnome-terminal</code> | |
| |
<code>bash -c "secret-tool lookup 'keepass' 'default' | keepassxc --pw-stdin ~/'Documents/keepass.kdbx'"</code> | |
| |
<code>gnome-terminal --command "sudo sh -c 'dnf clean 'all' && dnf distro-sync -y && sync && flatpak update && wget -O '/tmp/sb-hosts' 'https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling/hosts' && mv --force '/tmp/sb-hosts' '/etc/hosts' && restorecon -F -I -R '/etc/hosts' && sync && fstrim --all --verbose && sync && read -n '1' -s -r -p 'Done' && sleep '2''"</code> | |
| |
==== Keys ==== | |
| |
* Listed respectively to above | |
| |
* Ctrl + Alt + T | |
* Ctrl + Alt + Z | |
* Menu or F6 | |
| |
===== Printer ===== | |
| |
* http://localhost:631/admin | |
| |
* Printer name can be ''Ctrl + F'''d | |
* :!: AppSocket/HP JetDirect -> HP -> HP Officejet Pro 8710, hpcups (en) ((single ''en'' **not** ''en, en'')) | |
* Color Mode: Device Gray | |
* Administration -> Set As Server Default | |
| |
socket://192.168.1.164:9100 | |
| |
HP Officejet Pro 8710 | |
| |
==== Info ==== | |
| |
* ''HP Officejet Pro 8710, hpcups 3.23.5'' has two options, ''(en)'' and ''(en), (en)'' | |
* With Firefox, do ''Inspect'' | |
* ''(en)'' is ''drv'' | |
* ''(en), (en)'' is ''lsb'' | |
* https://access.redhat.com/solutions/6971890 implies the ''drv'' path is the modern choice | |
* :!: The IPP option //sometimes//(?) prints blurry documents; CUPS says old non-IPP drivers will be deprecated eventually | |
| |
===== Network ===== | |
| |
==== systemd-resolved ==== | |
| |
* systemd-resolved caches DNS | |
* [[notes:dns_servers#quad9|Quad9]], see [[notes:dns_servers]] for other addresses | |
| |
sudo mkdir -p '/etc/systemd/resolved.conf.d' && sudo -e '/etc/systemd/resolved.conf.d/99-dns-over-tls.conf' | |
| |
<code> | |
[Resolve] | |
DNS=9.9.9.9#dns.quad9.net 149.112.112.112#dns.quad9.net 2620:fe::fe#dns.quad9.net 2620:fe::9#dns.quad9.net | |
DNSOverTLS=yes</code> | |
| |
=== NetworkManager === | |
| |
<code>127.0.0.1</code> | |
| |
<code>::1</code> | |
| |
===== Nautilus ===== | |
| |
* Sort Folders Before Files | |
| |
===== Rhythmbox ===== | |
| |
* See [[Information:Internet Radio|Internet Radio]] | |
| |
===== Terminal ===== | |
| |
* 10-notch Transparency | |
| |
===== Fan Profile ===== | |
| |
* https://www.dell.com/support/kbdoc/en-us/000177768/guide-to-dell-power-manager | |
| |
sudo dnf install 'smbios-utils-python' -y && sudo smbios-thermal-ctl --set-thermal-mode='performance' && sudo dnf remove 'smbios-utils-python' -y | |
| |
===== Kernel Options ===== | |
| |
==== 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' | |
| |
sysctl 'kernel.sysrq' | |
| |
===== GRUB ===== | |
| |
==== Config ==== | |
| |
* :!: [[notes:kernel_parameters|More Kernel Parameters]] | |
* Add commands within ''args'' | |
| |
sudo grubby --update-kernel='ALL' --args='' | |
| |
sudo grubby --update-kernel='ALL' --remove-args='' | |
| |
sudo -e '/etc/default/grub' && sudo grub2-mkconfig -o '/boot/grub2/grub.cfg' | |
| |
==== Spinesnap ==== | |
| |
* Last updated: 2024/04/29 | |
* ''GRUB_CMDLINE_LINUX='' | |
| |
sudo -e '/etc/default/grub' && sudo grub2-mkconfig -o '/boot/grub2/grub.cfg' | |
| |
<code>preempt='full' threadirqs nohz='off' acpi_osi='Linux' pci='pcie_bus_perf,realloc,pcie_scan_all,big_root_window' video='HDMI-A-1:1920x1080MR@75' reboot='efi'</code> | |
| |
===== GNOME ===== | |
| |
==== Disable Wayland ==== | |
| |
* :!: 2023/07/23: It's been the cause of **far** too many issues and solving nothing while doing it | |
| |
* Last tested: 2024/04/29 | |
| |
<code>cat '/etc/gdm/custom.conf' | grep '#WaylandEnable' > '/dev/null' && sudo sed -i 's/'#WaylandEnable=false'/'WaylandEnable=false'/g' '/etc/gdm/custom.conf' && cat '/etc/gdm/custom.conf' | grep 'WaylandEnable=false'</code> | |
| |
<code>sudo -e '/etc/gdm/custom.conf'</code> | |
| |
==== Dynamic Wallpaper ==== | |
| |
**** | |
| |
gsettings set 'org.gnome.desktop.background' 'picture-uri' '/usr/share/backgrounds/f'*'/default/f'*'.xml' | |
| |
==== Extensions ==== | |
| |
=== Disable unredirect fullscreen windows === | |
| |
* https://extensions.gnome.org/extension/1873/disable-unredirect-fullscreen-windows/ | |
* 2023: This resolves screen tearing with some games on Intel UHD 630 on GNOME on Xorg ((seemingly not required for GNOME on Wayland)) | |
| |
=== Hide Top Bar === | |
| |
* https://extensions.gnome.org/extension/545/hide-top-bar/ | |
* :!: 2024/04/29: TODO: Compile from source for GNOME 46 https://gitlab.gnome.org/tuxor1337/hidetopbar/-/merge_requests/401 | |
| |
==== 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 | |
| |
sudo cp --remove-destination ~/'.config/monitors.xml' ~gdm/'.config/monitors.xml' && sudo chown 'gdm':'gdm' ~gdm/'.config/monitors.xml' && sudo restorecon -F -I -R ~gdm/'.config/monitors.xml' | |
| |
=== Undo === | |
| |
**** | |
| |
sudo rm ~gdm/'.config/monitors.xml' && sync | |
| |
==== Settings ==== | |
| |
=== All-in-one === | |
| |
* Last updated: 2024/04/01 | |
| |
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.desktop.wm.preferences' 'focus-mode' 'click' && gsettings set 'org.gnome.software' 'download-updates' 'false' && gsettings set 'org.gnome.desktop.interface' 'clock-show-weekday' 'true' | |
| |
=== Individual === | |
| |
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.desktop.wm.preferences' 'focus-mode' 'click' | |
| |
gsettings set 'org.gnome.software' 'download-updates' 'false' | |
| |
gsettings set 'org.gnome.desktop.interface' 'clock-show-weekday' 'true' | |
| |
==== Weather ==== | |
| |
=== Location Fork === | |
| |
* https://gitlab.gnome.org/GNOME/gnome-weather/-/issues/247#note_1819885 | |
| |
* Last tested: 2024/03/31 | |
| |
wget -O ~/'Downloads/add-location-to-gnome-weather.sh' 'https://gitlab.com/Espionage724/scripts/-/raw/main/add-location-to-gnome-weather.sh?ref_type=heads' && chmod +x ~/'Downloads/add-location-to-gnome-weather.sh' && sh ~/'Downloads/add-location-to-gnome-weather.sh' | |
| |
===== Hostname ===== | |
| |
* Change ''x'' to computer name | |
| |
hostnamectl set-hostname 'x' | |
| |
===== 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' | |
| |
===== Keybase ===== | |
| |
**** | |
| |
<code>run_keybase && sudo rm -f '/etc/yum.repos.d/prerelease.keybase.io_rpm_basearch.repo'</code> | |
| |
===== lm_sensors ===== | |
| |
sudo sensors-detect --auto | |
| |
sudo -e '/etc/sysconfig/lm_sensors' | |
| |
===== mpv ===== | |
| |
mkdir -p ~/'.config/mpv' && nano ~/'.config/mpv/mpv.conf' | |
| |
<code> | |
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</code> | |
| |
<code> | |
hwdec=vaapi | |
hwdec-codecs=all | |
vo=dmabuf-wayland</code> | |
| |
===== Secure Shell ===== | |
| |
* See [[clients:secure_shell|Client]] notes to generate/restore public key | |
| |
===== Drive Maintenance ===== | |
| |
==== XFS Scrub ==== | |
| |
* [[https://wiki.archlinux.org/title/XFS#Online_metadata_checking_(scrub)|XFS - ArchWiki]] | |
| |
sudo dnf install 'xfsprogs-xfs_scrub' -y && sync | |
| |
sudo systemctl enable 'xfs_scrub_all.timer' --now && sudo systemctl start 'xfs_scrub_all' && sync && sudo systemctl status 'xfs_scrub_all' -l | |
| |
==== Trim ==== | |
| |
**** | |
| |
sudo systemctl enable 'fstrim.timer' --now && sudo systemctl start 'fstrim' && sync && sudo systemctl status 'fstrim' -l | |
| |
===== UTC ===== | |
| |
* [[https://wiki.archlinux.org/index.php/System_time#Time_standard|System time - ArchWiki]] | |
* Set RTC to UTC | |
* :!: Likely needed if Windows was installed first for dual-boot | |
* :!: Windows should also be set to UTC | |
| |
sudo timedatectl set-local-rtc '0' | |
| |
==== Verify ==== | |
| |
**** | |
| |
timedatectl | grep local | |
| |
===== Wine ===== | |
| |
* See [[notes:wine|Wine]] | |
| |
===== Xorg/Wayland ===== | |
| |
==== Full RGB HDMI ==== | |
| |
* See [[notes:proptest_full_rgb]] for more ports | |
* 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)) | |
| |
sudo dnf install 'drm-utils' -y && sudo -e '/etc/gdm/PostLogin/Default' && sudo restorecon -F -I -R '/etc/gdm/PostLogin/Default' && sudo chmod +x '/etc/gdm/PostLogin/Default' && sync | |
| |
<code> | |
#!/bin/bash | |
| |
# 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</code> | |
| |
====== 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 ((check ''Target Frame Rate'' in ''about:support'')) | |
| |
layout.frame_rate | |
| |
extensions.screenshots.disabled | |
| |
extensions.pocket.enabled | |
| |
===== 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 ==== | |
| |
**** | |
| |
<code> | |
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</code> | |
| |
==== My filters ==== | |
| |
**** | |
| |
<code> | |
! Hide RuneScape Wiki clocks | |
! 2023/12/13 | |
oldschool.runescape.wiki###utcdate > [href="#"] | |
oldschool.runescape.wiki###footer-info-lastmod | |
runescape.wiki##[href="/w/Clock_(interface)"] | |
runescape.wiki###footer-info-lastmod | |
| |
! End</code> | |
| |
===== DNS over HTTPS ===== | |
| |
* [[notes:dns_servers#quad9|Quad9]], see [[notes:dns_servers]] for other addresses | |
| |
<code>https://dns.quad9.net/dns-query</code> | |
| |
====== Server ====== | |
| |
* For workstations that run servers as a secondary directive | |
* For headless servers, see [[distros:fedora_server|Fedora Server]] | |
| |
===== Enable SSH ===== | |
| |
**** | |
| |
sudo systemctl enable --now 'sshd' | |
| |
===== Automatic Updates ===== | |
| |
==== Service ==== | |
| |
sudo -e '/etc/systemd/system/fedora-up.service' | |
| |
<code> | |
[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</code> | |
| |
===== Timer ===== | |
| |
* 03:00 Oak | |
| |
sudo -e '/etc/systemd/system/fedora-up.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'fedora-up.timer' --now | |
| |
<code> | |
[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</code> | |
| |
====== Notable Folders and Commands ====== | |
| |
* See [[notes:misc_linux]] | |
| |