From c8dc6d8f32efb2142226d50a42bfdd3e4317620c Mon Sep 17 00:00:00 2001 From: HikariKnight <2557889+HikariKnight@users.noreply.github.com> Date: Sun, 24 Mar 2024 00:51:51 +0100 Subject: [PATCH 01/25] feat: remove custom rpm-ostree initramfs arg support After longer testing, rpm-ostree initramfs is too finiky to properly support this, dracut.conf files work better without stepping on bazzites initramfs args --- .../shared/usr/libexec/bazzite-hardware-setup | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/system_files/desktop/shared/usr/libexec/bazzite-hardware-setup b/system_files/desktop/shared/usr/libexec/bazzite-hardware-setup index 46baa711..59633110 100755 --- a/system_files/desktop/shared/usr/libexec/bazzite-hardware-setup +++ b/system_files/desktop/shared/usr/libexec/bazzite-hardware-setup @@ -26,14 +26,6 @@ INITRAMFS_DIR="/etc/bazzite/initramfs" INITRAMFS_REBUILD_TRIGGER="$INITRAMFS_DIR/rebuild" INITRAMFS_BAZZITE_ARG_FILE="$INITRAMFS_DIR/hardware-setup.args" INITRAMFS_BAZZITE_ARGS=$(cat $INITRAMFS_BAZZITE_ARG_FILE) -INITRAMFS_CUSTOM_ARGS_DIR="$INITRAMFS_DIR/args.d" -INITRAMFS_CUSTOM_ARGS="" - -# If the /etc/bazzite/initramfs/args.d dir exists -if [[ -d "$INITRAMFS_CUSTOM_ARGS_DIR" ]]; then - # Grab all the content of the files (minus comments) and join them together with spaces - INITRAMFS_CUSTOM_ARGS=$(grep -RvP "^(#|$)" $INITRAMFS_CUSTOM_ARGS_DIR/ | sort | perl -pe 's/(^$INITRAMFS_CUSTOM_ARGS_DIR\/.+:|\\\n$)//g' | tr '\n' ' ') -fi # If no rebuild is requested if [[ ! -f $INITRAMFS_REBUILD_TRIGGER ]]; then @@ -51,9 +43,9 @@ else # REMOVE REBUILD TRIGGER TO AVOID INFINITE BOOT LOOP! rm $INITRAMFS_REBUILD_TRIGGER # Rebuild current initramfs (this will add any new configs added to /etc/dracut.conf.d/) then reboot - echo "Initramfs rebuild triggered, using: $INITRAMFS_BAZZITE_ARGS $INITRAMFS_CUSTOM_ARGS" + echo "Initramfs rebuild triggered, adding dracut configs and these args: $INITRAMFS_BAZZITE_ARGS" plymouth display-message --text="Updating initramfs - Please wait, this may take a while" || true - rpm-ostree initramfs --enable "${INITRAMFS_BAZZITE_ARGS} ${INITRAMFS_CUSTOM_ARGS}" --reboot + rpm-ostree initramfs --enable ${INITRAMFS_BAZZITE_ARGS} --reboot exit 0 fi @@ -98,9 +90,9 @@ if $NEEDS_INITRAMFS_APPLICATION; then echo "Found needed initramfs changes, applying the following: ${NEEDED_INITRAMFS[*]}" echo "--arg=\"-I ${NEEDED_INITRAMFS[*]}\"" > $INITRAMFS_BAZZITE_ARG_FILE INITRAMFS_BAZZITE_ARGS=$(cat $INITRAMFS_BAZZITE_ARG_FILE) - echo "Building initramfs with following custom args: $INITRAMFS_CUSTOM_ARGS" + echo "Building initramfs with dracut configs and the following args: ${INITRAMFS_BAZZITE_ARGS}" plymouth display-message --text="Updating initramfs - Please wait, this may take a while" || true - rpm-ostree initramfs --enable "${INITRAMFS_BAZZITE_ARGS} ${INITRAMFS_CUSTOM_ARGS}" + rpm-ostree initramfs --enable ${INITRAMFS_BAZZITE_ARGS} else echo "No initramfs changes needed" fi @@ -268,4 +260,4 @@ echo $IMAGE_BRANCH > $KNOWN_IMAGE_BRANCH_FILE if [[ $IMAGE_FLAVOR =~ "nvidia" ]]; then echo "Nvidia image detected, rebooting to avoid screen freeze issue in 550." systemctl reboot -fi \ No newline at end of file +fi From 5a864933ce220646240c60fe359983271b1330a2 Mon Sep 17 00:00:00 2001 From: HikariKnight <2557889+HikariKnight@users.noreply.github.com> Date: Sun, 24 Mar 2024 03:12:21 +0100 Subject: [PATCH 02/25] chore: remove old custom arg example --- .../bazzite/initramfs/args.d/00-example.conf | 22 ------------------- 1 file changed, 22 deletions(-) delete mode 100644 system_files/desktop/shared/etc/bazzite/initramfs/args.d/00-example.conf diff --git a/system_files/desktop/shared/etc/bazzite/initramfs/args.d/00-example.conf b/system_files/desktop/shared/etc/bazzite/initramfs/args.d/00-example.conf deleted file mode 100644 index 6864b3ee..00000000 --- a/system_files/desktop/shared/etc/bazzite/initramfs/args.d/00-example.conf +++ /dev/null @@ -1,22 +0,0 @@ -# Anything commented out with # on a new line will be ignored -# These files follow the "rpm-ostree initramfs" syntax, please consult -# "rpm-ostree initramfs --help" for more information -# -# You can do 1 initramfs argument per line or do them all in 1 line. -# If you need to just add drivers to dracut, you should instead just add -# config files for dracut into /etc/dracut.conf.d/ and trigger an initramfs -# rebuild using "sudo touch /etc/bazzite/initramfs/rebuild" which -# will rebuild the initramfs on next boot using bazzite-hardware-setup. -# Documentation: https://universal-blue.discourse.group/docs?topic=399 -# -# NOTE: If you need to add files to initramfs (like modprobe files), -# please add them to a .conf file in /etc/dracut.conf.d/ -# with the line (spaces before and after paths are important!) -# install_items+=" /path/to/file1 /path/to/file2 " -# -# Multiline Example: -#--arg="--add-drivers" -#--arg="vfio vfio_iommu_type1 vfio-pci" -# -# Single Line Example: -#--arg="--add-drivers" --arg="vfio vfio_iommu_type1 vfio-pci From 6834f49cd588ac89b879ec001e3f59db8ea9d429 Mon Sep 17 00:00:00 2001 From: HikariKnight <2557889+HikariKnight@users.noreply.github.com> Date: Sun, 24 Mar 2024 03:12:55 +0100 Subject: [PATCH 03/25] feat: add readme for how to trigger initramfs rebuild --- .../desktop/shared/etc/bazzite/initramfs/readme.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 system_files/desktop/shared/etc/bazzite/initramfs/readme.md diff --git a/system_files/desktop/shared/etc/bazzite/initramfs/readme.md b/system_files/desktop/shared/etc/bazzite/initramfs/readme.md new file mode 100644 index 00000000..edd8a703 --- /dev/null +++ b/system_files/desktop/shared/etc/bazzite/initramfs/readme.md @@ -0,0 +1,8 @@ +Creating the file `rebuild` in this folder will cause +bazzite-hardware-setup to rebuild initramfs on the next boot. + +This will include any dracut.conf files from: `/etc/dracut.conf.d/` + +If you used any custom arguments through the `args.d` folder, +they have been deprecated in favor of `dracut` config files. +This was because `rpm-ostree` was very picky with it's initramfs args. From ac2dd5e8e6bc0784f2732df1156bcba94257e1ab Mon Sep 17 00:00:00 2001 From: Noel Miller Date: Sat, 6 Apr 2024 15:49:08 -0500 Subject: [PATCH 04/25] chore(ci): install using apt since no longer using a container --- .github/workflows/build_iso.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_iso.yml b/.github/workflows/build_iso.yml index eb8c0d24..a7a9cc48 100644 --- a/.github/workflows/build_iso.yml +++ b/.github/workflows/build_iso.yml @@ -163,7 +163,8 @@ jobs: RCLONE_CONFIG_R2_ENDPOINT: ${{ secrets.R2_ENDPOINT }} SOURCE_DIR: ${{ steps.upload-directory.outputs.iso-upload-dir }} run: | - dnf install -y rclone + sudo apt-get update + sudo apt-get install -y rclone rclone copy $SOURCE_DIR R2:bazzite - name: Upload ISOs to archive.org From 020060e4570609a95842b890a9b56b4aadb06b6c Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Sat, 6 Apr 2024 14:32:42 -0700 Subject: [PATCH 05/25] feat: Switch yafti to use the new Solaar flatpak --- .../shared/usr/share/ublue-os/firstboot/yafti.yml | 6 +----- .../shared/usr/share/ublue-os/firstboot/yafti.yml | 6 +----- .../usr/share/ublue-os/just/82-bazzite-apps.just | 11 +---------- 3 files changed, 3 insertions(+), 20 deletions(-) diff --git a/system_files/deck/shared/usr/share/ublue-os/firstboot/yafti.yml b/system_files/deck/shared/usr/share/ublue-os/firstboot/yafti.yml index 78d2710f..227bcd5b 100644 --- a/system_files/deck/shared/usr/share/ublue-os/firstboot/yafti.yml +++ b/system_files/deck/shared/usr/share/ublue-os/firstboot/yafti.yml @@ -70,11 +70,6 @@ screens: default: false packages: - Install OpenRazer: ujust install-openrazer - Solaar: - description: Application to control Logitech Mice, Keyboards, and Trackpads - default: false - packages: - - Install Solaar: ujust install-solaar Wootility: description: A configurator for Wooting keyboards default: false @@ -231,6 +226,7 @@ screens: - qBittorrent: org.qbittorrent.qBittorrent - Resources: net.nokyan.Resources - SaveDesktop: io.github.vikdevelop.SaveDesktop + - Solaar: io.github.pwr_solaar.solaar - Syncthing: com.github.zocker_160.SyncThingy - VLC: org.videolan.VLC final-screen: diff --git a/system_files/desktop/shared/usr/share/ublue-os/firstboot/yafti.yml b/system_files/desktop/shared/usr/share/ublue-os/firstboot/yafti.yml index 126dded9..1087a6dc 100644 --- a/system_files/desktop/shared/usr/share/ublue-os/firstboot/yafti.yml +++ b/system_files/desktop/shared/usr/share/ublue-os/firstboot/yafti.yml @@ -53,11 +53,6 @@ screens: default: false packages: - Install Oversteer: ujust install-oversteer - Solaar: - description: Application to control Logitech Mice, Keyboards, and Trackpads - default: false - packages: - - Install Solaar: ujust install-solaar Wootility: description: A configurator for Wooting keyboards default: false @@ -222,6 +217,7 @@ screens: - qBittorrent: org.qbittorrent.qBittorrent - Resources: net.nokyan.Resources - SaveDesktop: io.github.vikdevelop.SaveDesktop + - Solaar: io.github.pwr_solaar.solaar - Syncthing: com.github.zocker_160.SyncThingy - VLC: org.videolan.VLC final-screen: diff --git a/system_files/desktop/shared/usr/share/ublue-os/just/82-bazzite-apps.just b/system_files/desktop/shared/usr/share/ublue-os/just/82-bazzite-apps.just index fa553009..b2e02f70 100644 --- a/system_files/desktop/shared/usr/share/ublue-os/just/82-bazzite-apps.just +++ b/system_files/desktop/shared/usr/share/ublue-os/just/82-bazzite-apps.just @@ -32,7 +32,7 @@ install-coolercontrol: rpm-ostree install --apply-live -y liquidctl coolercontrol systemctl enable coolercontrold.service mkdir -p $HOME/.config/autostart - cp /usr/share/application/org.coolercontrol.CoolerControl.desktop $HOME/.config/autostart/org.coolercontrol.CoolerControl.desktop + cp /usr/share/applications/org.coolercontrol.CoolerControl.desktop $HOME/.config/autostart/org.coolercontrol.CoolerControl.desktop echo 'Complete.' alias get-steamcmd := install-steamcmd @@ -85,15 +85,6 @@ install-oversteer: distrobox-check-fedora sudo dnf install -y oversteer && \ distrobox-export --app oversteer' -# Install Solaar for Logitech Mice, Keyboards, and Trackpads -install-solaar: distrobox-check-fedora - distrobox-enter -n fedora -- bash -c 'sudo dnf install -y \ - solaar && \ - distrobox-export --app solaar' && \ - mkdir -p ~/.config/autostart && \ - rm -f ~/.config/autostart/fedora-solaar.desktop && \ - cp ~/.local/share/applications/fedora-solaar.desktop ~/.config/autostart/fedora-solaar.desktop - # Install Resilio Sync, a file synchronization utility powered by BitTorrent install-resilio-sync: distrobox-check-fedora distrobox-enter -n fedora -- bash -c 'sudo rpm --import https://linux-packages.resilio.com/resilio-sync/key.asc' && \ From ecc8f10ec29ad1c0c6ae0e3313b8e719da0f9322 Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Sat, 6 Apr 2024 14:33:48 -0700 Subject: [PATCH 06/25] feat: Add wl-clipboard --- Containerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Containerfile b/Containerfile index f1638702..d94e8d89 100644 --- a/Containerfile +++ b/Containerfile @@ -326,6 +326,7 @@ RUN rpm-ostree install \ cockpit-system \ cockpit-navigator \ cockpit-storaged \ + wl-clipboard \ lsb_release && \ pip install --prefix=/usr topgrade && \ rpm-ostree install \ From 1028c5d9a33016093f1d1ebef99036970bc91406 Mon Sep 17 00:00:00 2001 From: Noel Miller Date: Sat, 6 Apr 2024 17:17:06 -0500 Subject: [PATCH 07/25] chore(ci): try with deps branch --- .github/workflows/build_iso.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build_iso.yml b/.github/workflows/build_iso.yml index a7a9cc48..f87edcac 100644 --- a/.github/workflows/build_iso.yml +++ b/.github/workflows/build_iso.yml @@ -111,7 +111,7 @@ jobs: docker rmi ${image} - name: Build ISOs - uses: jasonn3/build-container-installer@main + uses: jasonn3/build-container-installer@deps id: build with: arch: x86_64 @@ -122,10 +122,10 @@ jobs: image_tag: ${{ steps.generate-tag.outputs.tag }} secure_boot_key_url: 'https://github.com/ublue-os/akmods/raw/main/certs/public_key.der' enrollment_password: 'ublue-os' - iso_name: ${{ matrix.image_name }}-${{ steps.generate-tag.outputs.tag }} + iso_name: ${{ matrix.image_name }}-${{ steps.generate-tag.outputs.tag }}.iso enable_cache_dnf: "false" enable_cache_skopeo: "false" - flatpak_remote_refs_dir: /github/workspace/${{ steps.generate-flatpak-dir-shortname.outputs.flatpak-dir-shortname }} + flatpak_remote_refs_dir: ${{ steps.generate-flatpak-dir-shortname.outputs.flatpak-dir-shortname }} enable_flatpak_dependencies: "false" extra_boot_params: ${{ steps.generate-extra-params.outputs.extra-boot-params }} @@ -135,8 +135,8 @@ jobs: run: | ISO_UPLOAD_DIR=${{ github.workspace }}/upload mkdir ${ISO_UPLOAD_DIR} - mv ${{ steps.build.outputs.iso_path }} ${ISO_UPLOAD_DIR} - mv ${{ steps.build.outputs.iso_path }}-CHECKSUM ${ISO_UPLOAD_DIR} + mv ${{ steps.build.outputs.iso_path }}/${{ steps.build.outputs.iso_name }} ${ISO_UPLOAD_DIR} + mv ${{ steps.build.outputs.iso_path }}/${{ steps.build.outputs.iso_name }}-CHECKSUM ${ISO_UPLOAD_DIR} echo "iso-upload-dir=${ISO_UPLOAD_DIR}" >> $GITHUB_OUTPUT - name: Upload ISOs and Checksum to Job Artifacts From 7a3a9c13627bba4ba2fb5cc1f9bb48817486ba97 Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Sat, 6 Apr 2024 21:15:23 -0400 Subject: [PATCH 08/25] fix: Remove unneeded secure boot message --- .../shared/usr/etc/profile.d/bazzite-warnings.sh | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100755 system_files/desktop/shared/usr/etc/profile.d/bazzite-warnings.sh diff --git a/system_files/desktop/shared/usr/etc/profile.d/bazzite-warnings.sh b/system_files/desktop/shared/usr/etc/profile.d/bazzite-warnings.sh deleted file mode 100755 index 06670300..00000000 --- a/system_files/desktop/shared/usr/etc/profile.d/bazzite-warnings.sh +++ /dev/null @@ -1,12 +0,0 @@ -IMAGE_INFO="/usr/share/ublue-os/image-info.json" -IMAGE_FLAVOR=$(jq -r '."image-flavor"' < $IMAGE_INFO) - -if [[ $IMAGE_FLAVOR = "nvidia" ]]; then - if ! grep -q "nvidia" <<< $(lsmod); then - echo -e 'You are using a Nvidia image, but the Nvidia driver is not loaded:\n - If you are using secure boot, run "ujust enroll-secure-boot-key", then reboot and enter the password "ublue-os" when prompted.\n - If you are not using secure boot or have already enrolled the above key, ensure you have the needed kargs by running "ujust configure-nvidia kargs" and then rebooting.\n - This message will not appear if the issue is resolved.\n' - fi -else - if ! grep -q "xone-dongle" <<< $(lsmod); then - echo -e 'Required drivers could not be loaded:\n - If you are using secure boot, run "ujust enroll-secure-boot-key", then reboot and enter the password "ublue-os" when prompted.\n - This message will not appear if the issue is resolved.\n' - fi -fi From aa648f57c04ddb21df1b39fbe3b3b0bf240112a2 Mon Sep 17 00:00:00 2001 From: Pat Connors <121328689+nicknamenamenick@users.noreply.github.com> Date: Sun, 7 Apr 2024 10:53:03 +0000 Subject: [PATCH 09/25] chore: Remove dual boot documentation (#944) I plan to merge the dual boot documentation with the installation guide and re-arrange some things especially since handheld usage is becoming increasingly popular. --- .../desktop/shared/usr/share/ublue-os/motd/tips/10-ublue.md | 1 - 1 file changed, 1 deletion(-) diff --git a/system_files/desktop/shared/usr/share/ublue-os/motd/tips/10-ublue.md b/system_files/desktop/shared/usr/share/ublue-os/motd/tips/10-ublue.md index 54318477..f6a6acb3 100644 --- a/system_files/desktop/shared/usr/share/ublue-os/motd/tips/10-ublue.md +++ b/system_files/desktop/shared/usr/share/ublue-os/motd/tips/10-ublue.md @@ -2,7 +2,6 @@ It is **always** better to install packages with Distrobox rather than layer the Packages installed in Distrobox can be exported to appear like any other application~[View documentation](https://distrobox.it/usage/distrobox-export/) *Update break something?* You can roll back and pin the previous release or rebase by build date~[View our guide](https://universal-blue.discourse.group/docs?topic=36) *This isn't a distro*, this is a custom image built on  Fedora Atomic Desktop technology~[View our mission](https://ublue.it/mission/) -*Looking to dual-boot with  Windows?*~[View dual booting guide](https://universal-blue.discourse.group/docs?topic=129) **Support the app store!**~[Donate to  Flatpak](https://opencollective.com/flatpak) **Support indie game preservation and OSS developers!**~[Join Hit Save!'s Patreon](https://patreon.com/hitsave) **H.264 hardware acceleration is supported out of the box.** No tweaks necessary! From 06dc42ecba9831402040d8c7ec1fc523f14767bf Mon Sep 17 00:00:00 2001 From: Noel Miller Date: Tue, 9 Apr 2024 10:19:44 -0500 Subject: [PATCH 10/25] chore(ci): test with main branch --- .github/workflows/build_iso.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_iso.yml b/.github/workflows/build_iso.yml index f87edcac..d3ecd909 100644 --- a/.github/workflows/build_iso.yml +++ b/.github/workflows/build_iso.yml @@ -111,7 +111,7 @@ jobs: docker rmi ${image} - name: Build ISOs - uses: jasonn3/build-container-installer@deps + uses: jasonn3/build-container-installer@main id: build with: arch: x86_64 From 540367916c6b07f5581936d46cbb57a659ea5e6d Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 9 Apr 2024 09:35:59 -0700 Subject: [PATCH 11/25] feat: Add support for midi in Lutris fix: Add missing sqlite package for duperemove, fixes #959 --- Containerfile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Containerfile b/Containerfile index d94e8d89..ec08211b 100644 --- a/Containerfile +++ b/Containerfile @@ -271,6 +271,7 @@ RUN rpm-ostree install \ python3-pip \ libadwaita \ duperemove \ + sqlite \ xwininfo \ xrandr \ compsize \ @@ -388,6 +389,9 @@ RUN rpm-ostree install \ sed -i '0,/enabled=0/s//enabled=1/' /etc/yum.repos.d/fedora-updates.repo && \ rpm-ostree install \ lutris \ + fluidsynth \ + fluid-soundfont-gm \ + qsynth \ wxGTK \ libFAudio \ wine-core.x86_64 \ From 36421eeee9f74cdb62dce4bcd7ec01e7e8273c17 Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 9 Apr 2024 10:38:25 -0700 Subject: [PATCH 12/25] chore: Fully disable joystickwake on GNOME --- system_files/desktop/shared/usr/bin/bazzite-joystickwake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/system_files/desktop/shared/usr/bin/bazzite-joystickwake b/system_files/desktop/shared/usr/bin/bazzite-joystickwake index b6593d6c..047d7f38 100755 --- a/system_files/desktop/shared/usr/bin/bazzite-joystickwake +++ b/system_files/desktop/shared/usr/bin/bazzite-joystickwake @@ -11,5 +11,7 @@ fi if [[ ${BASE_IMAGE_NAME} =~ "kinoite" ]]; then /usr/bin/joystickwake --command "qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement wakeup" "$@" else - /usr/bin/joystickwake --command "gnome-session-inhibit sleep 5" "$@" + # Do nothing on GNOME until issue with this making the lock screen irrelevant is fully resolved. + exit 0 + #/usr/bin/joystickwake "$@" fi From 1dcda86fe048a269ee1a79eacbb18377fc27379f Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 9 Apr 2024 10:56:43 -0700 Subject: [PATCH 13/25] fix: Use balanced-no-pstate profile on CPUs that don't support a pstate governor. --- .../lib/systemd/system/bazzite-hardware-setup.service | 2 +- .../desktop/shared/usr/libexec/bazzite-hardware-setup | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/system_files/desktop/shared/usr/lib/systemd/system/bazzite-hardware-setup.service b/system_files/desktop/shared/usr/lib/systemd/system/bazzite-hardware-setup.service index 79e9f3dd..549b7f58 100644 --- a/system_files/desktop/shared/usr/lib/systemd/system/bazzite-hardware-setup.service +++ b/system_files/desktop/shared/usr/lib/systemd/system/bazzite-hardware-setup.service @@ -1,6 +1,6 @@ [Unit] Description=Configure Bazzite for current hardware -After=rpm-ostreed.service +After=rpm-ostreed.service tuned.service Before=systemd-user-sessions.service jupiter-biosupdate.service jupiter-controller-update.service [Service] diff --git a/system_files/desktop/shared/usr/libexec/bazzite-hardware-setup b/system_files/desktop/shared/usr/libexec/bazzite-hardware-setup index 46baa711..9551bb67 100755 --- a/system_files/desktop/shared/usr/libexec/bazzite-hardware-setup +++ b/system_files/desktop/shared/usr/libexec/bazzite-hardware-setup @@ -246,6 +246,15 @@ else echo "No minimum-free ZRAM changes needed" fi +# NO-PSTATE FIX +if grep -q "acpi-cpufreq" <<< "$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver)"; then + sed -i 's/balanced=balanced/balanced=balanced-no-pstate/g' /etc/tuned/ppd.conf + tuned-adm profile balanced-no-pstate +else + sed -i 's/balanced=balanced-no-pstate/balanced=balanced/g' /etc/tuned/ppd.conf + tuned-adm profile balanced +fi + # HOSTNAME FIX # If the hostname is too long Distrobox will fail during setup # Let's check the length and reset it to something sensible if that happens. From fe775bc09707f724a476381ffe6795fea9f77e23 Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 9 Apr 2024 11:13:33 -0700 Subject: [PATCH 14/25] chore: Add remaining Loki devices to HHD list --- .../desktop/shared/usr/libexec/hardware/hhd-supported-hardware | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system_files/desktop/shared/usr/libexec/hardware/hhd-supported-hardware b/system_files/desktop/shared/usr/libexec/hardware/hhd-supported-hardware index 9e3ddda3..f010ee05 100755 --- a/system_files/desktop/shared/usr/libexec/hardware/hhd-supported-hardware +++ b/system_files/desktop/shared/usr/libexec/hardware/hhd-supported-hardware @@ -1,7 +1,7 @@ #!/usr/bin/bash # Returns true for hardware that is supported by HHD SYS_ID="$(cat /sys/devices/virtual/dmi/id/product_name)" -if [[ ":ROG Ally RC71L_RC71L:ROG Ally RC71L:83E1:G1618-04:G1617-01:G1619-05:AIR Plus:AIR:AYANEO GEEK:AYANEO 2:AYANEO 2S:AOKZOE A1 AR07:G1619-04:Win600:Loki Max:" =~ ":$SYS_ID:" ]]; then +if [[ ":ROG Ally RC71L_RC71L:ROG Ally RC71L:83E1:G1618-04:G1617-01:G1619-05:AIR Plus:AIR:AYANEO GEEK:AYANEO 2:AYANEO 2S:AOKZOE A1 AR07:G1619-04:Win600:Loki Max:Loki Zero:Loki MiniPro:" =~ ":$SYS_ID:" ]]; then exit 0 else exit 1 From cfbab1931760a9d21421c5adcddebcbced27caa7 Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 9 Apr 2024 12:26:27 -0700 Subject: [PATCH 15/25] chore(gnome): Add setroubleshoot to Utilities folder by default --- .../silverblue/usr/etc/dconf/db/local.d/04-bazzite-folders | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system_files/desktop/silverblue/usr/etc/dconf/db/local.d/04-bazzite-folders b/system_files/desktop/silverblue/usr/etc/dconf/db/local.d/04-bazzite-folders index 28806a17..fb3d4fdd 100644 --- a/system_files/desktop/silverblue/usr/etc/dconf/db/local.d/04-bazzite-folders +++ b/system_files/desktop/silverblue/usr/etc/dconf/db/local.d/04-bazzite-folders @@ -12,7 +12,7 @@ name='X-Pardus-Apps.directory' translate=true [org/gnome/desktop/app-folders/folders/Utilities] -apps=['yafti.desktop', 'system-update.desktop', 'webapp-manager.desktop', 'tuned-gui.desktop', 'rog-control-center.desktop', 'fish.desktop', 'tuned-gui.desktop', 'nvtop.desktop', 'yelp.desktop', 'btop.desktop', 'com.github.tchx84.Flatseal.desktop', 'io.github.flattool.Warehouse.desktop', 'it.mijorus.gearlever.desktop', 'com.mattjakeman.ExtensionManager.desktop', 'org.gnome.tweaks.desktop', 'com.github.GradienceTeam.Gradience', 'io.github.fastrizwaan.WineZGUI.desktop'] +apps=['yafti.desktop', 'system-update.desktop', 'webapp-manager.desktop', 'tuned-gui.desktop', 'rog-control-center.desktop', 'fish.desktop', 'tuned-gui.desktop', 'nvtop.desktop', 'yelp.desktop', 'btop.desktop', 'com.github.tchx84.Flatseal.desktop', 'io.github.flattool.Warehouse.desktop', 'it.mijorus.gearlever.desktop', 'com.mattjakeman.ExtensionManager.desktop', 'org.gnome.tweaks.desktop', 'com.github.GradienceTeam.Gradience', 'io.github.fastrizwaan.WineZGUI.desktop', 'setroubleshoot.desktop'] categories=['X-GNOME-Utilities'] name='X-GNOME-Utilities.directory' translate=true From 8541ee119bc1e233a37df759a577906e174ccf0f Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 9 Apr 2024 12:28:59 -0700 Subject: [PATCH 16/25] chore(gnome): Add hhd-ui to Gaming Utilities folder by default --- .../silverblue/usr/etc/dconf/db/local.d/04-bazzite-folders | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system_files/desktop/silverblue/usr/etc/dconf/db/local.d/04-bazzite-folders b/system_files/desktop/silverblue/usr/etc/dconf/db/local.d/04-bazzite-folders index fb3d4fdd..e3a7730b 100644 --- a/system_files/desktop/silverblue/usr/etc/dconf/db/local.d/04-bazzite-folders +++ b/system_files/desktop/silverblue/usr/etc/dconf/db/local.d/04-bazzite-folders @@ -2,7 +2,7 @@ folder-children=['Games', 'GamingUtilities', 'Utilities', 'Containers', 'Waydroid', 'Wine', 'YaST', 'Pardus'] [org/gnome/desktop/app-folders/folders/GamingUtilities] -apps=['protontricks.desktop', 'discover_overlay_configure.desktop', 'com.vysp3r.ProtonPlus.desktop', 'io.github.benjamimgois.goverlay.desktop', 'com.gerbilsoft.rom-properties.rp-config.desktop', 'input-remapper-gtk.desktop', 'steamos-nested-desktop.desktop'] +apps=['protontricks.desktop', 'discover_overlay_configure.desktop', 'com.vysp3r.ProtonPlus.desktop', 'io.github.benjamimgois.goverlay.desktop', 'com.gerbilsoft.rom-properties.rp-config.desktop', 'input-remapper-gtk.desktop', 'steamos-nested-desktop.desktop', 'hhd-ui.desktop'] name='Gaming Utilities' translate=false From 89ca085912f0896c26577a4bce0d83a3bb31da10 Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 9 Apr 2024 12:31:28 -0700 Subject: [PATCH 17/25] fix(deck): Restore all settings in restore-gnome-de-settings ujust command on deck images --- .../usr/share/ublue-os/just/90-bazzite-de.just | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 system_files/deck/shared/usr/share/ublue-os/just/90-bazzite-de.just diff --git a/system_files/deck/shared/usr/share/ublue-os/just/90-bazzite-de.just b/system_files/deck/shared/usr/share/ublue-os/just/90-bazzite-de.just new file mode 100644 index 00000000..dd87e84b --- /dev/null +++ b/system_files/deck/shared/usr/share/ublue-os/just/90-bazzite-de.just @@ -0,0 +1,13 @@ +# vim: set ft=make : + +# Restore Bazzite customized DE settings +restore-gnome-de-settings: + dconf load / < /usr/etc/dconf/db/local.d/02-bazzite-global + dconf load / < /usr/etc/dconf/db/local.d/03-bazzite-dash + dconf load / < /usr/etc/dconf/db/local.d/05-bazzite-extensions + dconf load / < /usr/etc/dconf/db/local.d/06-bazzite-theme + dconf load / < /usr/etc/dconf/db/local.d/07-bazzite-deck + +# Restore Bazzite customized applications folders +restore-gnome-folders: + dconf load / < /usr/etc/dconf/db/local.d/04-bazzite-folders From 057fcac22b80453b9834e0f063f142c845c50cdc Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 9 Apr 2024 12:47:39 -0700 Subject: [PATCH 18/25] fix(gnome): Restore joystickwake functionality with caffeine extension --- Containerfile | 3 ++- .../etc/dconf/db/local.d/05-bazzite-extensions | 2 +- .../kinoite/usr/bin/bazzite-joystickwake | 11 +++++++++++ .../usr/etc/xdg/autostart/joystickwake.desktop | 0 .../desktop/shared/usr/bin/bazzite-joystickwake | 17 ----------------- .../etc/dconf/db/local.d/05-bazzite-extensions | 2 +- 6 files changed, 15 insertions(+), 20 deletions(-) create mode 100755 system_files/desktop/kinoite/usr/bin/bazzite-joystickwake rename system_files/desktop/{shared => kinoite}/usr/etc/xdg/autostart/joystickwake.desktop (100%) delete mode 100755 system_files/desktop/shared/usr/bin/bazzite-joystickwake diff --git a/Containerfile b/Containerfile index ec08211b..2bf7b3ff 100644 --- a/Containerfile +++ b/Containerfile @@ -285,7 +285,6 @@ RUN rpm-ostree install \ tuned-profiles-cpu-partitioning \ powertop \ i2c-tools \ - joystickwake \ udica \ joycond \ ladspa-caps-plugins \ @@ -469,6 +468,7 @@ RUN if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \ kdeplasma-addons \ rom-properties-kf5 \ qvtf \ + joystickwake \ ptyxis && \ mkdir -p /tmp/kwin-system76-scheduler-integration && \ wget https://github.com/maxiberta/kwin-system76-scheduler-integration/archive/374a261497c772571df93f59fbced0ad02e64ad5.tar.gz -O /tmp/kwin-system76-scheduler-integration/archive.tar.gz && \ @@ -523,6 +523,7 @@ RUN if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \ gnome-shell-extension-gamerzilla \ gnome-shell-extension-bazzite-menu \ gnome-shell-extension-hotedge \ + gnome-shell-extension-caffeine \ rom-properties-gtk3 \ pixbufloader-vtf \ openssh-askpass && \ diff --git a/system_files/deck/silverblue/usr/etc/dconf/db/local.d/05-bazzite-extensions b/system_files/deck/silverblue/usr/etc/dconf/db/local.d/05-bazzite-extensions index a3e9c6c9..6cc7e7c7 100644 --- a/system_files/deck/silverblue/usr/etc/dconf/db/local.d/05-bazzite-extensions +++ b/system_files/deck/silverblue/usr/etc/dconf/db/local.d/05-bazzite-extensions @@ -1,3 +1,3 @@ [org/gnome/shell] -enabled-extensions=['s76-scheduler@mattjakeman.com', 'logomenu@aryan_k', 'appindicatorsupport@rgcjonas.gmail.com', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'gsconnect@andyholmes.github.io', 'just-perfection-desktop@just-perfection', 'blur-my-shell@aunetx', 'hotedge@jonathan.jdoda.ca', 'block-caribou-36@lxylxy123456.ercli.dev'] +enabled-extensions=['s76-scheduler@mattjakeman.com', 'logomenu@aryan_k', 'appindicatorsupport@rgcjonas.gmail.com', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'gsconnect@andyholmes.github.io', 'just-perfection-desktop@just-perfection', 'blur-my-shell@aunetx', 'hotedge@jonathan.jdoda.ca', 'block-caribou-36@lxylxy123456.ercli.dev', 'caffeine@patapon.info'] disabled-extensions=['background-logo@fedorahosted.org'] diff --git a/system_files/desktop/kinoite/usr/bin/bazzite-joystickwake b/system_files/desktop/kinoite/usr/bin/bazzite-joystickwake new file mode 100755 index 00000000..000a02fa --- /dev/null +++ b/system_files/desktop/kinoite/usr/bin/bazzite-joystickwake @@ -0,0 +1,11 @@ +#!/usr/bin/bash + +IMAGE_INFO="/usr/share/ublue-os/image-info.json" +BASE_IMAGE_NAME=$(jq -r '."base-image-name"' < $IMAGE_INFO) + +if /usr/libexec/hardware/valve-hardware; then + # Don't do anything on Valve hardware, prevents lizard mode from working properly. + exit 0 +fi + +/usr/bin/joystickwake --command "qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement wakeup" "$@" diff --git a/system_files/desktop/shared/usr/etc/xdg/autostart/joystickwake.desktop b/system_files/desktop/kinoite/usr/etc/xdg/autostart/joystickwake.desktop similarity index 100% rename from system_files/desktop/shared/usr/etc/xdg/autostart/joystickwake.desktop rename to system_files/desktop/kinoite/usr/etc/xdg/autostart/joystickwake.desktop diff --git a/system_files/desktop/shared/usr/bin/bazzite-joystickwake b/system_files/desktop/shared/usr/bin/bazzite-joystickwake deleted file mode 100755 index 047d7f38..00000000 --- a/system_files/desktop/shared/usr/bin/bazzite-joystickwake +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/bash - -IMAGE_INFO="/usr/share/ublue-os/image-info.json" -BASE_IMAGE_NAME=$(jq -r '."base-image-name"' < $IMAGE_INFO) - -if /usr/libexec/hardware/valve-hardware; then - # Don't do anything on Valve hardware, prevents lizard mode from working properly. - exit 0 -fi - -if [[ ${BASE_IMAGE_NAME} =~ "kinoite" ]]; then - /usr/bin/joystickwake --command "qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement wakeup" "$@" -else - # Do nothing on GNOME until issue with this making the lock screen irrelevant is fully resolved. - exit 0 - #/usr/bin/joystickwake "$@" -fi diff --git a/system_files/desktop/silverblue/usr/etc/dconf/db/local.d/05-bazzite-extensions b/system_files/desktop/silverblue/usr/etc/dconf/db/local.d/05-bazzite-extensions index 94a8bbfc..6df8afd1 100644 --- a/system_files/desktop/silverblue/usr/etc/dconf/db/local.d/05-bazzite-extensions +++ b/system_files/desktop/silverblue/usr/etc/dconf/db/local.d/05-bazzite-extensions @@ -1,3 +1,3 @@ [org/gnome/shell] -enabled-extensions=['s76-scheduler@mattjakeman.com', 'logomenu@aryan_k', 'appindicatorsupport@rgcjonas.gmail.com', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'gsconnect@andyholmes.github.io', 'just-perfection-desktop@just-perfection', 'blur-my-shell@aunetx', 'hotedge@jonathan.jdoda.ca'] +enabled-extensions=['s76-scheduler@mattjakeman.com', 'logomenu@aryan_k', 'appindicatorsupport@rgcjonas.gmail.com', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'gsconnect@andyholmes.github.io', 'just-perfection-desktop@just-perfection', 'blur-my-shell@aunetx', 'hotedge@jonathan.jdoda.ca', 'caffeine@patapon.info'] disabled-extensions=['background-logo@fedorahosted.org'] From 43465bee274b172237cfdf730c46328adff967bd Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 9 Apr 2024 12:48:18 -0700 Subject: [PATCH 19/25] chore(deck): Don't enable caffeine on GNOME images by default --- .../silverblue/usr/etc/dconf/db/local.d/05-bazzite-extensions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system_files/deck/silverblue/usr/etc/dconf/db/local.d/05-bazzite-extensions b/system_files/deck/silverblue/usr/etc/dconf/db/local.d/05-bazzite-extensions index 6cc7e7c7..a3e9c6c9 100644 --- a/system_files/deck/silverblue/usr/etc/dconf/db/local.d/05-bazzite-extensions +++ b/system_files/deck/silverblue/usr/etc/dconf/db/local.d/05-bazzite-extensions @@ -1,3 +1,3 @@ [org/gnome/shell] -enabled-extensions=['s76-scheduler@mattjakeman.com', 'logomenu@aryan_k', 'appindicatorsupport@rgcjonas.gmail.com', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'gsconnect@andyholmes.github.io', 'just-perfection-desktop@just-perfection', 'blur-my-shell@aunetx', 'hotedge@jonathan.jdoda.ca', 'block-caribou-36@lxylxy123456.ercli.dev', 'caffeine@patapon.info'] +enabled-extensions=['s76-scheduler@mattjakeman.com', 'logomenu@aryan_k', 'appindicatorsupport@rgcjonas.gmail.com', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'gsconnect@andyholmes.github.io', 'just-perfection-desktop@just-perfection', 'blur-my-shell@aunetx', 'hotedge@jonathan.jdoda.ca', 'block-caribou-36@lxylxy123456.ercli.dev'] disabled-extensions=['background-logo@fedorahosted.org'] From 255915e8c70b4379d8c28dad484a0e1e4555f8d8 Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 9 Apr 2024 18:29:28 -0700 Subject: [PATCH 20/25] chore: Update kernel to 6.8.4-202.fsync --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c69c4bb2..21287c1f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,7 +30,7 @@ on: workflow_dispatch: env: IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }} - KERNEL_VERSION: 6.7.11-201.fsync + KERNEL_VERSION: 6.8.4-202.fsync concurrency: group: ${{ github.workflow }}-${{ github.ref || github.run_id }} From ecf862bfda1ebbd91a5fd299bb842cdde426addb Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 9 Apr 2024 18:45:25 -0700 Subject: [PATCH 21/25] chore: Temporarily drop rtl8814au --- Containerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Containerfile b/Containerfile index 2bf7b3ff..caa1f2f5 100644 --- a/Containerfile +++ b/Containerfile @@ -122,7 +122,6 @@ RUN sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo /tmp/akmods-rpms/kmods/*bmi160*.rpm \ /tmp/akmods-rpms/kmods/*bmi260*.rpm \ /tmp/akmods-rpms/kmods/*bmi323*.rpm \ - /tmp/akmods-rpms/kmods/*rtl8814au*.rpm \ /tmp/akmods-rpms/kmods/*ryzen-smu*.rpm && \ sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/negativo17-fedora-multimedia.repo From fbc8d534c2408b2ba5d8d51c6065705b4974ef00 Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 9 Apr 2024 19:05:02 -0700 Subject: [PATCH 22/25] chore: Add mkdir to fix console error --- Containerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Containerfile b/Containerfile index caa1f2f5..7402614f 100644 --- a/Containerfile +++ b/Containerfile @@ -330,6 +330,7 @@ RUN rpm-ostree install \ pip install --prefix=/usr topgrade && \ rpm-ostree install \ ublue-update && \ + mkdir -p /usr/etc/xdg/autostart && \ echo "X-GNOME-Autostart-enabled=false" >> /usr/etc/xdg/autostart/sealertauto.desktop && \ sed -i '1s/^/[include]\npaths = ["\/etc\/ublue-os\/topgrade.toml"]\n\n/' /usr/share/ublue-update/topgrade-user.toml && \ sed -i 's/min_battery_percent.*/min_battery_percent = 20.0/' /usr/etc/ublue-update/ublue-update.toml && \ From f5f033424281f88f0a132ec0561a5a5f002faf24 Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 9 Apr 2024 21:51:34 -0700 Subject: [PATCH 23/25] fix(ally): Fix a bug where the power drains when the device is fully powered off caused by the fingerprint reader. --- .../deck/shared/usr/lib/udev/rules.d/50-ally-fingerprint.rules | 2 ++ .../usr/lib/udev/rules.d/50-lenovo-legion-controller.rules | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 system_files/deck/shared/usr/lib/udev/rules.d/50-ally-fingerprint.rules diff --git a/system_files/deck/shared/usr/lib/udev/rules.d/50-ally-fingerprint.rules b/system_files/deck/shared/usr/lib/udev/rules.d/50-ally-fingerprint.rules new file mode 100644 index 00000000..bbd8aeeb --- /dev/null +++ b/system_files/deck/shared/usr/lib/udev/rules.d/50-ally-fingerprint.rules @@ -0,0 +1,2 @@ +# Fixes a bug that causes battery drain on the ASUS Ally when the device is fully powered off +ACTION=="add", SUBSYSTEM=="usb", TEST=="power/control", ATTR{idVendor}=="1c7a", ATTR{idProduct}=="0588", ATTR{power/control}="auto" diff --git a/system_files/deck/shared/usr/lib/udev/rules.d/50-lenovo-legion-controller.rules b/system_files/deck/shared/usr/lib/udev/rules.d/50-lenovo-legion-controller.rules index 87802eb2..e263a242 100644 --- a/system_files/deck/shared/usr/lib/udev/rules.d/50-lenovo-legion-controller.rules +++ b/system_files/deck/shared/usr/lib/udev/rules.d/50-lenovo-legion-controller.rules @@ -1,2 +1,2 @@ -# Lenovo Legion Go +# Lenovo Legion Go Controller ACTION=="add", ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="6182", RUN+="/sbin/modprobe xpad" RUN+="/bin/sh -c 'echo 17ef 6182 > /sys/bus/usb/drivers/xpad/new_id'" From f349a396daa18716aab40c739278165af6e221cb Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Wed, 10 Apr 2024 00:53:36 -0400 Subject: [PATCH 24/25] feat: Add Nobara USB Polling Rate Patch (#964) Co-authored-by: badlydrawnface --- .../shared/usr/bin/custom-device-pollrates.sh | 29 +++++++++++++++++++ .../usr/etc/custom-device-pollrates.conf | 25 ++++++++++++++++ .../99-custom-device-pollrates.preset | 1 + .../system/custom-device-pollrates.service | 10 +++++++ .../shared/usr/bin/custom-device-pollrates.sh | 29 +++++++++++++++++++ .../usr/etc/custom-device-pollrates.conf | 25 ++++++++++++++++ .../99-custom-device-pollrates.preset | 1 + .../system/custom-device-pollrates.service | 10 +++++++ 8 files changed, 130 insertions(+) create mode 100755 system_files/deck/shared/usr/bin/custom-device-pollrates.sh create mode 100644 system_files/deck/shared/usr/etc/custom-device-pollrates.conf create mode 100644 system_files/deck/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset create mode 100644 system_files/deck/shared/usr/lib/systemd/system/custom-device-pollrates.service create mode 100755 system_files/desktop/shared/usr/bin/custom-device-pollrates.sh create mode 100644 system_files/desktop/shared/usr/etc/custom-device-pollrates.conf create mode 100644 system_files/desktop/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset create mode 100644 system_files/desktop/shared/usr/lib/systemd/system/custom-device-pollrates.service diff --git a/system_files/deck/shared/usr/bin/custom-device-pollrates.sh b/system_files/deck/shared/usr/bin/custom-device-pollrates.sh new file mode 100755 index 00000000..69e14d33 --- /dev/null +++ b/system_files/deck/shared/usr/bin/custom-device-pollrates.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -m + +# Gather device poll rate settings from /etc/custom-device-pollrates/custom-device-pollrates.conf +DEVICES=$(grep -v '^\s*$\|^\s*\#' /etc/custom-device-pollrates/custom-device-pollrates.conf | paste -sd, -) + +# Set new polling rate for devices +echo "$DEVICES" | sudo tee /sys/module/usbcore/parameters/interrupt_interval_override > /dev/null + + +# Reload all USB devices + +for xhci in /sys/bus/pci/drivers/?hci_hcd ; do + + if ! cd $xhci ; then + echo Failed to change directory to $xhci + exit 1 + fi + + echo Resetting devices from $xhci... + + for i in ????:??:??.? ; do + echo -n "$i" > unbind + echo -n "$i" > bind + done +sleep 1 +done + + diff --git a/system_files/deck/shared/usr/etc/custom-device-pollrates.conf b/system_files/deck/shared/usr/etc/custom-device-pollrates.conf new file mode 100644 index 00000000..1691866f --- /dev/null +++ b/system_files/deck/shared/usr/etc/custom-device-pollrates.conf @@ -0,0 +1,25 @@ +# Format: +# vendorid:deviceid:rate +# +# Polling Rates: +# 1=1000Hz,2=500Hz,4=250Hz,8=125Hz +# +# Ex (PS5 DualSense, 1000Mhz polling rate): +# 054c:0ce6:1 +# +# One entry per line +# +# +# To allow these devices to have custom +# pollrates, uncomment the device or alternatively +# add a new device configuration line, then restart +# the service with: +# +# sudo systemctl restart custom-device-pollrates.service +# -------------SONY------------- +# DS4 +#054c:09cc:1 +# DS5 +#054c:0ce6:1 +# -------------SONY------------- + diff --git a/system_files/deck/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset b/system_files/deck/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset new file mode 100644 index 00000000..f6ab2433 --- /dev/null +++ b/system_files/deck/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset @@ -0,0 +1 @@ +enable custom-device-pollrates.service diff --git a/system_files/deck/shared/usr/lib/systemd/system/custom-device-pollrates.service b/system_files/deck/shared/usr/lib/systemd/system/custom-device-pollrates.service new file mode 100644 index 00000000..b8ae107c --- /dev/null +++ b/system_files/deck/shared/usr/lib/systemd/system/custom-device-pollrates.service @@ -0,0 +1,10 @@ +[Unit] +Description=Set custom polling rates for specific devices + +[Service] +Type=simple +ExecStart=/usr/bin/bash /usr/bin/custom-device-pollrates.sh + +[Install] +WantedBy=multi-user.target + diff --git a/system_files/desktop/shared/usr/bin/custom-device-pollrates.sh b/system_files/desktop/shared/usr/bin/custom-device-pollrates.sh new file mode 100755 index 00000000..69e14d33 --- /dev/null +++ b/system_files/desktop/shared/usr/bin/custom-device-pollrates.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -m + +# Gather device poll rate settings from /etc/custom-device-pollrates/custom-device-pollrates.conf +DEVICES=$(grep -v '^\s*$\|^\s*\#' /etc/custom-device-pollrates/custom-device-pollrates.conf | paste -sd, -) + +# Set new polling rate for devices +echo "$DEVICES" | sudo tee /sys/module/usbcore/parameters/interrupt_interval_override > /dev/null + + +# Reload all USB devices + +for xhci in /sys/bus/pci/drivers/?hci_hcd ; do + + if ! cd $xhci ; then + echo Failed to change directory to $xhci + exit 1 + fi + + echo Resetting devices from $xhci... + + for i in ????:??:??.? ; do + echo -n "$i" > unbind + echo -n "$i" > bind + done +sleep 1 +done + + diff --git a/system_files/desktop/shared/usr/etc/custom-device-pollrates.conf b/system_files/desktop/shared/usr/etc/custom-device-pollrates.conf new file mode 100644 index 00000000..1691866f --- /dev/null +++ b/system_files/desktop/shared/usr/etc/custom-device-pollrates.conf @@ -0,0 +1,25 @@ +# Format: +# vendorid:deviceid:rate +# +# Polling Rates: +# 1=1000Hz,2=500Hz,4=250Hz,8=125Hz +# +# Ex (PS5 DualSense, 1000Mhz polling rate): +# 054c:0ce6:1 +# +# One entry per line +# +# +# To allow these devices to have custom +# pollrates, uncomment the device or alternatively +# add a new device configuration line, then restart +# the service with: +# +# sudo systemctl restart custom-device-pollrates.service +# -------------SONY------------- +# DS4 +#054c:09cc:1 +# DS5 +#054c:0ce6:1 +# -------------SONY------------- + diff --git a/system_files/desktop/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset b/system_files/desktop/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset new file mode 100644 index 00000000..f6ab2433 --- /dev/null +++ b/system_files/desktop/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset @@ -0,0 +1 @@ +enable custom-device-pollrates.service diff --git a/system_files/desktop/shared/usr/lib/systemd/system/custom-device-pollrates.service b/system_files/desktop/shared/usr/lib/systemd/system/custom-device-pollrates.service new file mode 100644 index 00000000..b8ae107c --- /dev/null +++ b/system_files/desktop/shared/usr/lib/systemd/system/custom-device-pollrates.service @@ -0,0 +1,10 @@ +[Unit] +Description=Set custom polling rates for specific devices + +[Service] +Type=simple +ExecStart=/usr/bin/bash /usr/bin/custom-device-pollrates.sh + +[Install] +WantedBy=multi-user.target + From 134635c688458d323a5f93d9475d1ad9ebe6824b Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 9 Apr 2024 21:57:06 -0700 Subject: [PATCH 25/25] chore: Clean up USB Polling Rate Patch --- Containerfile | 1 + .../usr/etc/custom-device-pollrates.conf | 25 ---------------- .../99-custom-device-pollrates.preset | 1 - .../system/custom-device-pollrates.service | 10 ------- .../shared/usr/bin/custom-device-pollrates} | 2 +- .../shared/usr/bin/custom-device-pollrates.sh | 29 ------------------- .../99-custom-device-pollrates.preset | 1 - .../system/custom-device-pollrates.service | 2 +- 8 files changed, 3 insertions(+), 68 deletions(-) delete mode 100644 system_files/deck/shared/usr/etc/custom-device-pollrates.conf delete mode 100644 system_files/deck/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset delete mode 100644 system_files/deck/shared/usr/lib/systemd/system/custom-device-pollrates.service rename system_files/{deck/shared/usr/bin/custom-device-pollrates.sh => desktop/shared/usr/bin/custom-device-pollrates} (97%) delete mode 100755 system_files/desktop/shared/usr/bin/custom-device-pollrates.sh delete mode 100644 system_files/desktop/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset diff --git a/Containerfile b/Containerfile index 7402614f..8d726bff 100644 --- a/Containerfile +++ b/Containerfile @@ -622,6 +622,7 @@ RUN /tmp/image-info.sh && \ systemctl enable tailscaled.service && \ systemctl enable dev-hugepages1G.mount && \ systemctl enable joycond && \ + systemctl enable custom-device-pollrates.service && \ systemctl --global enable bazzite-user-setup.service && \ systemctl --global enable podman.socket && \ systemctl --global enable systemd-tmpfiles-setup.service && \ diff --git a/system_files/deck/shared/usr/etc/custom-device-pollrates.conf b/system_files/deck/shared/usr/etc/custom-device-pollrates.conf deleted file mode 100644 index 1691866f..00000000 --- a/system_files/deck/shared/usr/etc/custom-device-pollrates.conf +++ /dev/null @@ -1,25 +0,0 @@ -# Format: -# vendorid:deviceid:rate -# -# Polling Rates: -# 1=1000Hz,2=500Hz,4=250Hz,8=125Hz -# -# Ex (PS5 DualSense, 1000Mhz polling rate): -# 054c:0ce6:1 -# -# One entry per line -# -# -# To allow these devices to have custom -# pollrates, uncomment the device or alternatively -# add a new device configuration line, then restart -# the service with: -# -# sudo systemctl restart custom-device-pollrates.service -# -------------SONY------------- -# DS4 -#054c:09cc:1 -# DS5 -#054c:0ce6:1 -# -------------SONY------------- - diff --git a/system_files/deck/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset b/system_files/deck/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset deleted file mode 100644 index f6ab2433..00000000 --- a/system_files/deck/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset +++ /dev/null @@ -1 +0,0 @@ -enable custom-device-pollrates.service diff --git a/system_files/deck/shared/usr/lib/systemd/system/custom-device-pollrates.service b/system_files/deck/shared/usr/lib/systemd/system/custom-device-pollrates.service deleted file mode 100644 index b8ae107c..00000000 --- a/system_files/deck/shared/usr/lib/systemd/system/custom-device-pollrates.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Set custom polling rates for specific devices - -[Service] -Type=simple -ExecStart=/usr/bin/bash /usr/bin/custom-device-pollrates.sh - -[Install] -WantedBy=multi-user.target - diff --git a/system_files/deck/shared/usr/bin/custom-device-pollrates.sh b/system_files/desktop/shared/usr/bin/custom-device-pollrates similarity index 97% rename from system_files/deck/shared/usr/bin/custom-device-pollrates.sh rename to system_files/desktop/shared/usr/bin/custom-device-pollrates index 69e14d33..955cddd7 100755 --- a/system_files/deck/shared/usr/bin/custom-device-pollrates.sh +++ b/system_files/desktop/shared/usr/bin/custom-device-pollrates @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/bash set -m # Gather device poll rate settings from /etc/custom-device-pollrates/custom-device-pollrates.conf diff --git a/system_files/desktop/shared/usr/bin/custom-device-pollrates.sh b/system_files/desktop/shared/usr/bin/custom-device-pollrates.sh deleted file mode 100755 index 69e14d33..00000000 --- a/system_files/desktop/shared/usr/bin/custom-device-pollrates.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -set -m - -# Gather device poll rate settings from /etc/custom-device-pollrates/custom-device-pollrates.conf -DEVICES=$(grep -v '^\s*$\|^\s*\#' /etc/custom-device-pollrates/custom-device-pollrates.conf | paste -sd, -) - -# Set new polling rate for devices -echo "$DEVICES" | sudo tee /sys/module/usbcore/parameters/interrupt_interval_override > /dev/null - - -# Reload all USB devices - -for xhci in /sys/bus/pci/drivers/?hci_hcd ; do - - if ! cd $xhci ; then - echo Failed to change directory to $xhci - exit 1 - fi - - echo Resetting devices from $xhci... - - for i in ????:??:??.? ; do - echo -n "$i" > unbind - echo -n "$i" > bind - done -sleep 1 -done - - diff --git a/system_files/desktop/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset b/system_files/desktop/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset deleted file mode 100644 index f6ab2433..00000000 --- a/system_files/desktop/shared/usr/lib/systemd/system-presets/99-custom-device-pollrates.preset +++ /dev/null @@ -1 +0,0 @@ -enable custom-device-pollrates.service diff --git a/system_files/desktop/shared/usr/lib/systemd/system/custom-device-pollrates.service b/system_files/desktop/shared/usr/lib/systemd/system/custom-device-pollrates.service index b8ae107c..b22724c4 100644 --- a/system_files/desktop/shared/usr/lib/systemd/system/custom-device-pollrates.service +++ b/system_files/desktop/shared/usr/lib/systemd/system/custom-device-pollrates.service @@ -3,7 +3,7 @@ Description=Set custom polling rates for specific devices [Service] Type=simple -ExecStart=/usr/bin/bash /usr/bin/custom-device-pollrates.sh +ExecStart=/usr/bin/bash /usr/bin/custom-device-pollrates [Install] WantedBy=multi-user.target