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