From 85a574fd360d27a7f188c594c3a88195bf45c036 Mon Sep 17 00:00:00 2001 From: ducoterra Date: Fri, 11 Oct 2024 10:48:03 -0400 Subject: [PATCH] add scaling, mangohud, mpv, network, ungoogle chromium --- infrastructure/graduated/arch/README.md | 72 ++++++++++++++++- infrastructure/graduated/arch/gaming.md | 84 +++++++++++++++++++- infrastructure/graduated/arch/workstation.md | 50 +++++++++++- 3 files changed, 200 insertions(+), 6 deletions(-) diff --git a/infrastructure/graduated/arch/README.md b/infrastructure/graduated/arch/README.md index de6f487..e1825d2 100644 --- a/infrastructure/graduated/arch/README.md +++ b/infrastructure/graduated/arch/README.md @@ -48,6 +48,11 @@ instructions for building a: - [Flatpak](#flatpak-1) - [Networking](#networking) - [IPv6](#ipv6) + - [IPv6 Privacy by Default](#ipv6-privacy-by-default) + - [EUI64](#eui64) + - [Networking Privacy](#networking-privacy) + - [Mac Address Randomization](#mac-address-randomization) + - [Date and Time](#date-and-time) ## Installation @@ -536,8 +541,7 @@ Create a snapshot config /etc/btrbk/snapshots.conf ```conf -snapshot_preserve_min 24h -snapshot_preserve 24h +snapshot_preserve_min 7d # root volume /btr_pools/root @@ -632,8 +636,7 @@ Now set up the backup: ```conf snapshot_create no - target_preserve_min no - target_preserve 24h + target_preserve_min 7d # root volume /btr_pools/root @@ -784,6 +787,8 @@ vim /etc/systemd/logind.conf 1. `pacman -S bluez bluez-utils` 2. `systemctl enable --now bluetooth` +Note that SBC-XQ is usually lower latency and higher quality than AAC. + ### Audio Without pipewire-pulse the audio level/device will reset every reboot. @@ -846,10 +851,69 @@ cp /var/lib/flatpak/exports/share/applications/... ~/.local/share/applications/ ### IPv6 +#### IPv6 Privacy by Default + +Create `/etc/NetworkManager/conf.d/01-ip6.conf`: + +```conf +[ipv6] +ip6-privacy=2 +``` + +#### EUI64 + Set address generation type to eui64 with nmcli: ```bash nmcli connection modify Wired\ connection\ 1 ipv6.ip6-privacy 0 nmcli connection modify Wired\ connection\ 1 ipv6.addr-gen-mode eui64 systemctl restart NetworkManager +``` + +You can also start an interactive session to edit a connection: + +```bash +nmcli connection edit Wired\ connection\ 1 + +# Show all current settings +print + +# Set something +set ipv6.ip6-privacy 0 +set ipv6.addr-gen-mode eui64 + +# Save the changed setting +save + +quit +``` + +### Networking Privacy + +#### Mac Address Randomization + + + + + +edit `/etc/NetworkManager/conf.d/wifi_rand_mac.conf` + +```conf +[device-mac-randomization] +# "yes" is already the default for scanning +wifi.scan-rand-mac-address=yes + +[connection-mac-randomization] +# Randomize MAC for every ethernet connection +ethernet.cloned-mac-address=random +# Generate a random MAC for each WiFi and associate the two permanently. +wifi.cloned-mac-address=stable +``` + +## Date and Time + +If you're like me and like 24 hour time use `C.UTF-8`: + +```bash +localectl set-locale C.UTF-8 ``` \ No newline at end of file diff --git a/infrastructure/graduated/arch/gaming.md b/infrastructure/graduated/arch/gaming.md index 1394346..5abf700 100644 --- a/infrastructure/graduated/arch/gaming.md +++ b/infrastructure/graduated/arch/gaming.md @@ -5,6 +5,7 @@ - [Steam](#steam) - [autostart](#autostart) - [mangohud](#mangohud) + - [Scaling](#scaling) - [Streaming](#streaming) - [FSR](#fsr) - [Sunshine and Moonlight](#sunshine-and-moonlight) @@ -23,10 +24,13 @@ - [OBS](#obs) - [Xbox Controller](#xbox-controller) - [Mangohud](#mangohud-1) + - [Minecraft with Mangohud](#minecraft-with-mangohud) - [ffmpeg](#ffmpeg) - [AUR](#aur) - [Intel 11th gen](#intel-11th-gen) - [AMD 7900xtx](#amd-7900xtx) + - [Taking Game Cips](#taking-game-cips) + - [MPV](#mpv) - [Minecraft](#minecraft) - [Launcher](#launcher) - [MultiMC](#multimc) @@ -66,7 +70,7 @@ Start steam with mangohud ```bash pacman -S mangohud lib32-mangohud -cp /usr/share/applications/steam-native.desktop ~/.local/share/applications/steam.desktop +cp /usr/share/applications/steam.desktop ~/.local/share/applications/steam.desktop ``` Edit ~/.local/share/applications/steam.desktop: @@ -75,6 +79,21 @@ Edit ~/.local/share/applications/steam.desktop: Exec=/usr/bin/mangohud /usr/bin/steam-native %U ``` +### Scaling + +On HiDPI screens you might need to manually scale the steam interface. This can be done by editing +the .desktop file: + +```bash +cp /usr/share/applications/steam.desktop ~/.local/share/applications/steam.desktop +``` + +Edit `~/.local/share/applications/steam.desktop` + +```conf +Exec=/usr/bin/mangohud /usr/bin/steam-runtime -forcedesktopscaling 2 %U +``` + ### Streaming See [Sunshine and Moonlight](#sunshine-and-moonlight) first! It's much better than steam streaming. @@ -316,6 +335,10 @@ Edit `~/.config/MangoHud/MangoHud.conf` and tweak as you see fit. Then add `mangohud env MANGOHUD_CONFIGFILE=/home/ducoterra/.config/MangoHud/MangoHud.conf %command%` to your steam launch. +### Minecraft with Mangohud + +MultiMC offers a "Wrapper" option in Settings -> Custom commands. Add `/usr/bin/mangohud --dlsym`. + ## ffmpeg @@ -369,6 +392,65 @@ ffmpeg \ output.mp4 ``` +### Taking Game Cips + +1. Install [MPV](#mpv) +2. Open the video clip in mpv +3. Press del to always show the seek bar +4. Click the timestamp in the bottom left to show milliseconds +5. Use , and . to seek frame by frame to find the start frame +6. Use the following ffmpeg command to trim clips + + ```bash + # format start_time and end_time like `00:00:34.000` (hh:mm:ss.mmm) + export input_file= + export output_file= + export start_time= + export end_time= + + # -r 30 == frame rate of 30 + # -vf scale scales the output + ffmpeg \ + -ss $start_time \ + -to $end_time \ + -i $input_file \ + -c:v libx264 \ + -b:v 0 \ + -vf scale=1920:1080 \ + -r 30 \ + $output_file + ``` + +6. Then concat clips with the following + + ```bash + # Create mylist.txt + cat < clips.txt + file '/path/to/file1' + file '/path/to/file2' + file '/path/to/file3' + EOF + ``` + + ```bash + ffmpeg -f concat -i mylist.txt -c copy output.mp4 + ``` + +## MPV + + + +MPV is an alternative to VLC with a couple key benefits: + +1. Reverse frame-by-frame seeking +2. millisecond timestamp + +These are great for video clipping with ffmpeg. + +```bash +pacman -S mpv +``` + ## Minecraft ### Launcher diff --git a/infrastructure/graduated/arch/workstation.md b/infrastructure/graduated/arch/workstation.md index e4a8f5e..60bc425 100644 --- a/infrastructure/graduated/arch/workstation.md +++ b/infrastructure/graduated/arch/workstation.md @@ -9,6 +9,9 @@ - [Turn Off Fingerprint When Laptop Lid Closed](#turn-off-fingerprint-when-laptop-lid-closed) - [SSH](#ssh) - [Templates](#templates) + - [Ungoogled Chromium](#ungoogled-chromium) + - [Ungoogled Chromium AUR](#ungoogled-chromium-aur) + - [Ungoogled Chromium Manual Build](#ungoogled-chromium-manual-build) - [Firefox](#firefox) - [Gnome Extensions](#gnome-extensions) - [Avahi (Bonjour)](#avahi-bonjour) @@ -52,6 +55,7 @@ - [VirtualBox](#virtualbox) - [Email](#email) - [Traffic Usage](#traffic-usage) + - [Wine](#wine) ## Pacman Packages @@ -242,6 +246,42 @@ mkdir ~/Templates touch ~/Templates/text.txt ``` +## Ungoogled Chromium + + + +### Ungoogled Chromium AUR + + + +Make sure to `pacman -S gnome-browser-connector` and grab the [Gnome Shell Integration](https://chromewebstore.google.com/detail/gnome-shell-integration/gphhapmejobijbbhgpjhcjognlahblep) + +Install the [chromium-web-store](https://github.com/NeverDecaf/chromium-web-store) extension to use +chrome web store extensions. + +### Ungoogled Chromium Manual Build + + + +```bash +# Install required dependencies. Make sure your user has access to sudo +sudo pacman -S base-devel + +# Clone this repository +git clone https://github.com/ungoogled-software/ungoogled-chromium-archlinux + +# Navigate into the repository +cd ungoogled-chromium-archlinux + +# Check out the latest tag +git checkout $(git describe --abbrev=0 --tags) + +# Start the build, this will download all necessary dependencies automatically +makepkg -s + +# Install +makepkg --install +``` ## Firefox @@ -844,4 +884,12 @@ pacman -S nethogs # You'll need to run this with sudo if you aren't root nethogs -``` \ No newline at end of file +``` + +## Wine + +```bash +pacman -S wine +``` + +You can adjust the dpi scaling for wine with `winecfg`. \ No newline at end of file