diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d5cab6bf..f488c99a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -171,7 +171,7 @@ jobs: # Prepare offline documentation - id: download_offline_docs continue-on-error: true - env: + env: docs_repo: KyleGospo/docs.bazzite.gg run: | DOCS_DIR="${{ github.workspace }}/system_files/desktop/shared/usr/share/ublue-os/docs/html" diff --git a/.github/workflows/build_mkdocs/action.yml b/.github/workflows/build_mkdocs/action.yml deleted file mode 100644 index d67c7898..00000000 --- a/.github/workflows/build_mkdocs/action.yml +++ /dev/null @@ -1,95 +0,0 @@ -name: Build mkdocs -description: Parametrized mkdocs building - -inputs: - github_token: - description: github token - required: true - - site_url: - description: Set `MKDOCS_SITE_URL` env var - default: "" - required: true - - working_dir: - description: Parent directory that contains mkdocs.yml - default: ${{ github.workspace }}/docs - - output_dir: - description: Where we will output the resulting webpage - default: ${{ github.workspace }}/book - - upload_github_page: - description: Upload github-page - default: "false" - - repo_url: - description: URL of the repo - default: ${{ github.server_url }}/${{ github.repository }} - -outputs: - artifact_id: - description: "Artifact id uploaded (is an empty string in case of `upload_github_page: false`)" - value: ${{ steps.upload-artifact.outputs.artifact_id }} - -runs: - using: composite - steps: - - uses: actions/setup-python@v5 - with: - python-version: "3.12" - - - name: Install Poetry - uses: abatilo/actions-poetry@v4 - - - name: Configure Poetry - working-directory: ${{ inputs.working_dir }} - shell: bash - run: | - poetry config virtualenvs.create true --local - poetry config virtualenvs.in-project true --local - - - name: Poetry install deps - shell: bash - working-directory: ${{ inputs.working_dir }} - run: poetry install - - - name: Build book - shell: bash - working-directory: ${{ inputs.working_dir }} - env: - MKDOCS_SITE_URL: ${{ inputs.site_url }} - MKDOCS_REPO_URL: ${{ inputs.repo_url }} - _OUTPUT_DIR: ${{ inputs.output_dir }} - run: | - source .venv/bin/activate - max_tries=3 - is_ok=0 - while [[ $max_tries -gt 0 && is_ok -ne 1 ]]; do - if ! mkdocs build --verbose -d $_OUTPUT_DIR; then - max_tries=$(( $max_tries -1 )) - else - is_ok=1 - fi - done - - - name: Setup Pages - if: ${{ inputs.upload_github_page == 'true' }} - uses: actions/configure-pages@v5 - with: - token: ${{ inputs.github_token }} - - - name: Upload artifact - if: ${{ inputs.upload_github_page == 'true' }} - uses: actions/upload-pages-artifact@v3 - id: upload-artifact - with: - path: ${{ inputs.output_dir }} - token: ${{ inputs.github_token }} - - - name: Deploy to GitHub Pages - if: ${{ inputs.upload_github_page == 'true' }} - id: deployment - uses: actions/deploy-pages@v4 - with: - token: ${{ inputs.github_token }} 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 ec1aff6d..33dacad4 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 @@ -37,11 +37,6 @@ screens: default: false packages: - Install Resilio Sync: ujust install-resilio-sync - scrcpy: - description: scrcpy provides display and control of Android devices connected on USB (or over TCP/IP) - default: false - packages: - - Install scrcpy: ujust install-scrcpy configure-bazzite: source: yafti.screen.package values: diff --git a/system_files/desktop/shared/usr/libexec/waydroid-container-restart b/system_files/desktop/shared/usr/libexec/waydroid-container-restart new file mode 100755 index 00000000..17f61eda --- /dev/null +++ b/system_files/desktop/shared/usr/libexec/waydroid-container-restart @@ -0,0 +1,3 @@ +#!/usr/bin/bash + +sudo waydroid container restart \ No newline at end of file diff --git a/system_files/desktop/shared/usr/share/applications/waydroid-container-restart.desktop b/system_files/desktop/shared/usr/share/applications/waydroid-container-restart.desktop new file mode 100755 index 00000000..be6cbf14 --- /dev/null +++ b/system_files/desktop/shared/usr/share/applications/waydroid-container-restart.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=Force Restart Waydroid +Exec=pkexec /usr/libexec/waydroid-container-restart +Categories=X-WayDroid-App; +X-Purism-FormFactor=Workstation;Mobile; +Icon=waydroid +NoDisplay=false \ No newline at end of file diff --git a/system_files/desktop/shared/usr/share/polkit-1/actions/org.bazzite.waydroid.policy b/system_files/desktop/shared/usr/share/polkit-1/actions/org.bazzite.waydroid.policy index ab18119d..fada7b9a 100644 --- a/system_files/desktop/shared/usr/share/polkit-1/actions/org.bazzite.waydroid.policy +++ b/system_files/desktop/shared/usr/share/polkit-1/actions/org.bazzite.waydroid.policy @@ -28,6 +28,17 @@ /usr/libexec/waydroid-container-stop + + Restart Waydroid Container + package-x-generic + + yes + yes + yes + + /usr/libexec/waydroid-container-restart + + Fix Controllers in Waydroid package-x-generic diff --git a/system_files/desktop/shared/usr/share/polkit-1/rules.d/30-waydroid.rules b/system_files/desktop/shared/usr/share/polkit-1/rules.d/30-waydroid.rules index 91d74c48..2e54b858 100644 --- a/system_files/desktop/shared/usr/share/polkit-1/rules.d/30-waydroid.rules +++ b/system_files/desktop/shared/usr/share/polkit-1/rules.d/30-waydroid.rules @@ -1,6 +1,7 @@ polkit.addRule(function(action, subject) { if ((action.id == "org.bazzite.policykit.waydroid.container.start" || action.id == "org.bazzite.policykit.waydroid.container.stop" || + action.id == "org.bazzite.policykit.waydroid.container.restart" || action.id == "org.bazzite.policykit.waydroid.fix.controllers") && subject.isInGroup("wheel")) { return polkit.Result.YES; 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 1d1dfcf9..1edc94d4 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 @@ -32,11 +32,6 @@ screens: default: false packages: - Install Resilio Sync: ujust install-resilio-sync - scrcpy: - description: scrcpy provides display and control of Android devices connected on USB (or over TCP/IP) - default: false - packages: - - Install scrcpy: ujust install-scrcpy lact: description: LACT provides GPU overclocking for AMD & Nvidia GPUs default: false diff --git a/system_files/desktop/shared/usr/share/ublue-os/just/10-update.just b/system_files/desktop/shared/usr/share/ublue-os/just/10-update.just index 1ead09cf..59a4a3ba 100644 --- a/system_files/desktop/shared/usr/share/ublue-os/just/10-update.just +++ b/system_files/desktop/shared/usr/share/ublue-os/just/10-update.just @@ -40,8 +40,12 @@ alias changelog := changelogs # Show the stable changelog changelogs: - curl -s https://api.github.com/repos/ublue-os/bazzite/releases/latest | jq -r '.body' + #!/usr/bin/bash + CONTENT=$(curl -s https://api.github.com/repos/ublue-os/bazzite/releases/latest | jq -r '.body') + echo "$CONTENT" | glow - # Show the testing (pre-release) changelog changelogs-testing: - curl -s https://api.github.com/repos/ublue-os/bazzite/releases | jq -r 'map(select(.prerelease)) | .[0].body' + #!/usr/bin/bash + CONTENT=$(curl -s https://api.github.com/repos/ublue-os/bazzite/releases | jq -r 'map(select(.prerelease)) | .[0].body') + echo "$CONTENT" | glow - diff --git a/system_files/desktop/shared/usr/share/ublue-os/just/81-bazzite-fixes.just b/system_files/desktop/shared/usr/share/ublue-os/just/81-bazzite-fixes.just index a1ca9885..bdb6bff4 100644 --- a/system_files/desktop/shared/usr/share/ublue-os/just/81-bazzite-fixes.just +++ b/system_files/desktop/shared/usr/share/ublue-os/just/81-bazzite-fixes.just @@ -87,3 +87,83 @@ toggle-bt-mic: else echo "No changes were made." fi + +toggle-i915-sleep-fix: + #!/usr/bin/bash + # Explain the purpose of the script + echo -e "This script manages the i915.enable_dc kernel parameter, which controls a power-saving feature for Intel graphics" + echo -e "Enabling this setting can reduce power consumption, but may cause issues like random reboots or failed suspend on certain devices" + echo -e "Disabling it ensures stability at the cost of slightly higher power usage" + # Get the current i915.enable_dc setting + get_current_status() { + local karg_status + karg_status=$(cat /proc/cmdline | grep -o 'i915.enable_dc=[-0-9]' | cut -d= -f2) + if [[ -z "$karg_status" ]]; then + echo "Not Set" + else + echo "$karg_status" + fi + } + # Toggle i915.enable_dc kernel parameter + update_karg() { + local new_value=$1 + if [[ $new_value -ge 0 && $new_value -le 4 ]]; then + echo -e "\nYou are setting power-saving mode (i915.enable_dc=$new_value).\n" + if [[ $new_value -eq 0 ]]; then + echo -e "This disables power-saving mode and prioritizes stability.\n" + elif [[ $new_value -eq 1 ]]; then + echo -e "This enables basic power-saving mode but may cause minor stability issues.\n" + elif [[ $new_value -ge 2 ]]; then + echo -e "This enables higher levels of power-saving mode, which may impact stability further.\n" + fi + elif [[ $new_value -eq -1 ]]; then + echo -e "\nYou are setting power-saving mode to auto (i915.enable_dc=-1).\n" + else + echo -e "\nInvalid value for i915.enable_dc. Please choose a valid value.\n" + return + fi + sudo rpm-ostree kargs --replace "i915.enable_dc=$new_value" + echo -e "Kernel parameter updated. Reboot required to apply changes." + } + # Display current status + current_status=$(get_current_status) + echo -e "\nCurrent i915.enable_dc setting: $current_status\n" + # Prompt user for action + CHOICE=$(ugum choose "Set to Auto (i915.enable_dc=-1)" "Disable Power Saving (i915.enable_dc=0)" "Set to Level 1 (i915.enable_dc=1)" "Set to Level 2 (i915.enable_dc=2)" "Set to Level 3 (i915.enable_dc=3)" "Set to Level 4 (i915.enable_dc=4)" "Unset Parameter" "Exit without changes") + case "$CHOICE" in + "Set to Auto (i915.enable_dc=-1)") + echo "Setting power-saving mode to auto (i915.enable_dc=-1)..." + update_karg -1 + ;; + "Disable Power Saving (i915.enable_dc=0)") + echo "Disabling power-saving mode (i915.enable_dc=0)..." + update_karg 0 + ;; + "Set to Level 1 (i915.enable_dc=1)") + echo "Setting power-saving mode to level 1 (i915.enable_dc=1)..." + update_karg 1 + ;; + "Set to Level 2 (i915.enable_dc=2)") + echo "Setting power-saving mode to level 2 (i915.enable_dc=2)..." + update_karg 2 + ;; + "Set to Level 3 (i915.enable_dc=3)") + echo "Setting power-saving mode to level 3 (i915.enable_dc=3)..." + update_karg 3 + ;; + "Set to Level 4 (i915.enable_dc=4)") + echo "Setting power-saving mode to level 4 (i915.enable_dc=4)..." + update_karg 4 + ;; + "Unset Parameter") + echo "Unsetting i915.enable_dc..." + sudo rpm-ostree kargs --delete "i915.enable_dc=[-0-9]" + echo -e "Kernel parameter unset. Reboot required to apply changes." + ;; + "Exit without changes") + echo "No changes made." + ;; + *) + echo "Invalid choice. Exiting without changes." + ;; + esac 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 0ad51bc5..0e7fe724 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,13 +32,32 @@ install-steamcmd: # Install OpenRazer for Razer gaming hardware install-openrazer: - sudo wget https://download.opensuse.org/repositories/hardware:/razer/Fedora_$(rpm -E %fedora)/hardware:razer.repo -O /etc/yum.repos.d/hardware:razer.repo && \ + #!/usr/bin/bash + source /usr/lib/ujust/ujust.sh + OPENRAZER_CONFIGURATOR_APP="None of openrazer frontend apps" + sudo curl -Lo /etc/yum.repos.d/hardware:razer.repo https://openrazer.github.io/hardware:razer.repo && \ ublue-update --wait && \ - rpm-ostree install -y openrazer-meta razergenie && \ - if ! grep -q "plugdev" /etc/group; then \ + rpm-ostree install -y openrazer-daemon && \ + if ! grep -q "plugdev" /etc/group; then \ sudo bash -c 'grep "plugdev" /lib/group >> /etc/group' \ ; fi && \ sudo usermod -a -G plugdev $USER && \ + echo "${bold}Select OpenRazer Frontend Apps${normal}" + OPTION=$(Choose "Razer Genie" "Polychromatic" "None") + if [[ "${OPTION,,}" =~ ^razer[[:space:]]genie ]]; then + echo "Installing Razer Genie..." + flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + flatpak --system install -y flathub xyz.z3ntu.razergenie + OPENRAZER_CONFIGURATOR_APP="Razer Genie" + elif [[ "${OPTION,,}" =~ ^polychromatic ]]; then + echo "Installing Polychromatic..." + flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + flatpak --system install -y flathub app.polychromatic.controller + OPENRAZER_CONFIGURATOR_APP="Polychromatic" + else + echo "Not Selecting GUI Frontend" + fi + echo "$OPENRAZER_CONFIGURATOR_APP is installed" echo "Please reboot to apply needed changes." # Install EmuDeck (https://www.emudeck.com/) @@ -131,13 +150,13 @@ install-scrcpy: distrobox-check-fedora install-opentabletdriver: #!/usr/bin/bash source /usr/lib/ujust/ujust.sh - if grep -qvz "arch" <<< $(distrobox list); then \ - Assemble noconfirmcreate "" "arch"; \ - fi && \ - distrobox enter -n arch -- bash -c 'paru -Syu --noconfirm && paru -S opentabletdriver --noconfirm' && \ - mkdir -p ~/.config/systemd/user/ && \ - rm -f ~/.config/systemd/user/arch-opentabletdriver.service && \ - wget https://raw.githubusercontent.com/ublue-os/bazzite/main/post_install_files/OpenTabletDriver/opentabletdriver.service -O ~/.config/systemd/user/arch-opentabletdriver.service && \ + echo "Installing OpenTabletDriver..." + flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo && \ + flatpak --system install -y flathub net.opentabletdriver.OpenTabletDriver && \ + mkdir -p $HOME/.config/OpenTabletDriver && \ + flatpak override --user --filesystem=xdg-config/OpenTabletDriver net.opentabletdriver.OpenTabletDriver && \ + mkdir -p $HOME/.config/systemd/user && \ + curl -s https://raw.githubusercontent.com/flathub/net.opentabletdriver.OpenTabletDriver/refs/heads/master/scripts/opentabletdriver.service > $HOME/.config/systemd/user/opentabletdriver.service && \ systemctl --user daemon-reload && \ systemctl enable --user --now arch-opentabletdriver.service && \ distrobox enter -n arch -- bash -c 'distrobox-export --app otd-gui' diff --git a/system_files/desktop/shared/usr/share/ublue-os/just/82-bazzite-waydroid.just b/system_files/desktop/shared/usr/share/ublue-os/just/82-bazzite-waydroid.just index 0f5846a3..b2222121 100644 --- a/system_files/desktop/shared/usr/share/ublue-os/just/82-bazzite-waydroid.just +++ b/system_files/desktop/shared/usr/share/ublue-os/just/82-bazzite-waydroid.just @@ -29,6 +29,7 @@ setup-waydroid ACTION="": fi sudo waydroid init -c 'https://ota.waydro.id/system' -v 'https://ota.waydro.id/vendor' sudo restorecon -R /var/lib/waydroid + cp /usr/share/applications/waydroid-container-restart.desktop ~/.local/share/applications echo "Waydroid has been initialized, please run waydroid once before you Configure Waydroid" elif [[ "${OPTION,,}" =~ ^configure ]]; then git clone https://github.com/ublue-os/waydroid_script.git --depth 1 /tmp/waydroid_script