Automated Arch Linux installation
- Windows, along with the EFI partition are already installed. EFI partition size is increased to 512 MB
- There's at least 80 GB unassigned space on the disk for Arch
- In Windows, real time is set to UTC following this guide
- Create a DOS partition table on the pendrive
- Add a FAT32 partition with the boot flag
- Label the partition with
sudo mlabel -i /dev/sda1 ::archiso
- Build with
~/code/arch/archiso.zsh
- Copy with
rm -rf /run/media/$USER/ARCHISO/(arch|boot|EFI|loader|shellx64.efi)
cp -r ~/code/arch/archiso/usb/* /run/media/$USER/ARCHISO
- Boot from archiso
- Run
source ~/arch/player.zsh
,source ~/arch/drifter.zsh
orsource ~/arch/worker.zsh
- Once per machine, run
~/arch/disk.sh
, otherwise run~/arch/unlock.zsh
- Run
~/arch/system.zsh
- Once per machine, run
~/arch/boot.zsh
- Reboot to Arch and login as normal user
- Run
~/code/arch/services.zsh
- Reboot to GNOME, login as normal user and connect to internet
- Run
~/code/arch/apps.zsh
- Reboot
- Brave
- Setup your profiles
- Sign in to your sites
- Set as default browser
- Hide bookmarks
- Hide side panel button
- Hide bookmarks button
- Hide Brave News button in address bar
- Only allow suggestions from top sites, history and bookmarks (not Leo)
- Hide Brave Rewards button
- Hide VPN button
- Hide tab search button
- Cycle through the most recently used tabs with Ctrl-Tab
- Disable everything except background images on the dashboard
- Disable Brave News on the dashboard
- Enable search and URL autocompletion
- Disable EasyList Cookie content filter
- Don't show the number of blocked items on the Shields icon
- Disable product analytics, daily usage ping and diagnostic reports
- Enable Safe Browsing
- Don't allow sites to send notifications
- Allow camera and microphone access to Teams
- Join the Sync Chain and sync everything
- Install your extensions
- Disable wallets and hide the button
- Don't offer to save passwords and don't sign in automatically
- Add Polish and enable spell check for it
- Don't offer to translate pages
- Don't ask where to save downloaded files
- Don't show Wayback Machine prompts on 404 pages
- Don't continue running background apps
- Disable Brave VPN
- Enable Memory Saver
- KeePassXC
- Open your databases
- Only show attachment, title and username columns
- Fit columns to window
- Change font to
Cascadia Code
, font size to16
and tab size to2
in Postman - Hide recommended extensions and disable tweet feedback icon in Visual Studio Code
- GNOME
- Set display refresh rate on player to 144 Hz
- Set display scale to 200% on drifter
- Enable Night Light on worker
- Select the sound device and set volume to 50%
- Run
clean.zsh
- Prepare
$XDG_CONFIG_HOME/zsh/.env
file with GitHub & NPM tokens - Fix window sizes and positions
Enabled on drifter and worker. Foot and Kitty run on native Wayland. Code, Brave, KeePassXC and Postman run on XWayland.
- GNOME text scaling factor not supported by the apps in native Wayland
- Brave, Steam & games flickering on XWayland with NVIDIA with VRR when above 60 Hz
- KeePassXC auto-type not supported on native Wayland
- Blurry XWayland apps with fractional scaling
- Flameshot issue when using fractional scaling with two monitors
dispwin
not compatible andcolormgr
most likely doesn't work on NVIDIAredshift
not compatible with Wayland andgammastep
doesn't work in GNOME on NVIDIAnvidia-settings
not compatible (coolbits, undervolting and overclocking) but maybe tuxclocker can be used- PowerMizer doesn't work as soon as
nvidia_drm.modeset=1
is enabled
- Add
nvidia_drm.modeset=1
kernel module setting - Run
ln -s /dev/null /etc/udev/rules.d/61-gdm.rules
- Make sure there's no
WaylandEnable=false
in/etc/gdm/custom.conf
- Fix GNOME Shell suspend
Force native Wayland for QT apps with QT_QPA_PLATFORM=wayland
XDP implementations conflict each other so only one should be installed at the same time:
- GNOME -
xdg-desktop-portal-gnome
andxdg-desktop-portal-gtk
- KDE -
xdg-desktop-portal-kde
- Hyprland -
xdg-desktop-portal-hyprland
- Sway -
xdg-desktop-portal-wlr
Comfortable settings for display scale & font scaling factor given the screen size and resolution:
- drifter - 200% & 1.25
- player & worker - 100% & 1.75
The aim is to use the font size of 1em
or 12pt
or 16px
(converter) and have font scaling factor make it comfortable. Apps running on X11 or XWayland respect font scaling factor. For native Wayland apps font size is adjusted to simulate font scaling factor:
- Alacritty, Foot & Kitty
- drifter (Wayland) -
15pt
(or1.25em
or20px
) - player (X11) -
12pt
(or1em
or16px
) - worker (Wayland) -
21pt
(or1.75em
or28px
)
- drifter (Wayland) -
- Brave, Code & Postman (XWayland) -
16px
(or1em
or12pt
)
To test on Wayland run dbus-run-session -- env MUTTER_DEBUG_DUMMY_MODE_SPECS=2560x1440 gnome-shell --nested --wayland
.
During the installation, put Windows and virtio-win iso in $DIR
. Install disk, graphics card and network card drivers from virtio-win. Disable fast startup. Map \\10.0.2.4\qemu
as network drive on guest.
For Secure Boot with TPM 2.0 install swtpm
and edk2-ovmf
on host.
For clipboard sharing using spice install virt-viewer
on host and guest tools on guest.
For folder sharing using spice install virt-viewer
on host and webdav daemon on guest. Run c:\Program Files (x86)\SPICE webdavd\map-drive.bat
on guest.
To install Windows 11 without Internet connection and with local account, when asked to connect to Internet, press Shift+F10
to bring up the command prompt and type OOBE\BYPASSNRO
.
To reduce the image size after freeing up space on guest, first defragment the drives and run sdelete -z
on guest, then run qemu-img convert -O qcow2 from.cow to.cow
.
- Run
~/code/arch/games.zsh
- Reboot
- Start Steam
- Once per machine, configure Steam, and specifically
- Don't sign in to friends when Steam starts
- Disable non-critical notifications and hide non-critical notifications while in game
- Set start up location to Library
- Disable community content and hide game icons in Library
- Enable shader pre-caching and allow background processing of Vulkan shaders
- Disable Steam overlay and remove screenshot shortcut
- Enable Steam Play for supported and all other titles
- Disable Remote Play
- For each game, set game compatibility to Proton-GE
- Once per machine, move Steam to games disk with
mv $XDG_DATA_HOME/Steam /run/media/$USER/games/
ln -s /run/media/$USER/games/Steam $XDG_DATA_HOME/Steam
- Cemu, VULKAN
LD_PRELOAD="$LD_PRELOAD:/usr/lib/libgamemode.so.0" PROTON_ENABLE_NGX_UPDATER=1 PROTON_ENABLE_NVAPI=1 python3 ./save_sync mangohud gamemoderun %command% -f -g "<game file>"
- Elden Ring, VKD3D
./er-patcher --rate 144 -vcas -- env LD_PRELOAD="$LD_PRELOAD:/usr/lib/libgamemode.so.0" PROTON_ENABLE_NGX_UPDATER=1 PROTON_ENABLE_NVAPI=1 VKD3D_CONFIG=dxr11,dxr WINE_FULLSCREEN_FSR=1 WINE_FULLSCREEN_FSR_MODE=ultra WINE_FULLSCREEN_FSR_STRENGTH=2 mangohud gamemoderun %command%
Affects all machines. Worked around in the windows
GNOME Shell extension. Disabled the workaround on Jan 20th 2024.
Affects all machines. Check the linked thread from time to time.
Worked around with rm -rf ~/.cache/nvidia/GLCache
Worked around by installing lib32-libnm
. Disabled the workaround on Jan 20th 2024.
- When NVIDIA driver 555 comes out, switch to Wayland and revisit gaming
- Explore CachyOS GitHub and maybe use/install something