Merge pull request #99 from ublue-os/fix-conditionals

fix: Issues with conditionals
This commit is contained in:
Kyle Gospodnetich 2023-08-04 11:29:51 -07:00 committed by GitHub
commit fc96121da1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 463 additions and 141 deletions

View File

@ -71,7 +71,7 @@ RUN rpm-ostree install \
yad
# Configure KDE & GNOME
RUN if grep -v "gnome" <<< "${IMAGE_NAME}"; then \
RUN if grep -qv "gnome" <<< "${IMAGE_NAME}"; then \
rpm-ostree override replace \
--experimental \
--from repo=copr:copr.fedorainfracloud.org:kylegospo:gnome-vrr \
@ -100,14 +100,15 @@ RUN if grep -v "gnome" <<< "${IMAGE_NAME}"; then \
gnome-shell-extension-user-theme \
gnome-shell-extension-appindicator \
gnome-shell-extension-gsconnect \
gnome-shell-extension-system76-scheduler && \
gnome-shell-extension-system76-scheduler \
openssh-askpass && \
rpm-ostree override remove \
gnome-tour \
yelp \
; fi
# Install ROCM on non-Nvidia images
RUN if grep -v "nvidia" <<< "${IMAGE_NAME}"; then \
RUN if grep -qv "nvidia" <<< "${IMAGE_NAME}"; then \
rpm-ostree install \
rocm-hip \
rocm-opencl \
@ -144,7 +145,7 @@ RUN rm /usr/share/applications/shredder.desktop && \
systemctl --global enable ublue-update.timer && \
systemctl enable displaylink.service && \
systemctl enable input-remapper.service && \
if grep "gnome" <<< "${IMAGE_NAME}"; then \
if grep -q "gnome" <<< "${IMAGE_NAME}"; then \
systemctl disable gdm.service && \
systemctl enable sddm.service && \
rm /usr/share/applications/yad-icon-browser.desktop \
@ -187,7 +188,7 @@ RUN rpm-ostree install \
RUN rpm-ostree override remove \
ddccontrol \
ddccontrol-gtk && \
if grep -v "gnome" <<< "${IMAGE_NAME}"; then \
if grep -qv "gnome" <<< "${IMAGE_NAME}"; then \
rpm-ostree override remove \
steamdeck-kde-presets-desktop \
; fi
@ -208,7 +209,7 @@ RUN rpm-ostree override replace \
udisks2
# Configure KDE & GNOME
RUN if grep -v "gnome" <<< "${IMAGE_NAME}"; then \
RUN if grep -qv "gnome" <<< "${IMAGE_NAME}"; then \
rpm-ostree override remove \
krfb \
krfb-libs && \
@ -260,10 +261,10 @@ RUN rm /usr/share/applications/winetricks.desktop && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-wallpaper-engine-kde-plugin.repo && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ycollet-audinux.repo && \
mv /etc/sddm.conf /etc/sddm.conf.d/steamos.conf && \
if grep "gnome" <<< "${IMAGE_NAME}"; then \
if grep -q "gnome" <<< "${IMAGE_NAME}"; then \
systemctl enable gnome-autologin.service \
; fi && \
if grep -v "gnome" <<< "${IMAGE_NAME}"; then \
if grep -qv "gnome" <<< "${IMAGE_NAME}"; then \
systemctl enable plasma-autologin.service \
; fi && \
systemctl enable jupiter-fan-control.service && \

View File

@ -1,5 +1,8 @@
#!/usr/bin/env bash
# Source Bazzite defaults
source /etc/default/bazzite
# Simply launches the "yafti" GUI with the uBlue image's configuration.
/usr/bin/yafti /usr/share/ublue-os/firstboot/yafti.yml

View File

@ -47,25 +47,11 @@ screens:
default: true
packages:
- Enable Gamescope Autologin: just --unstable enable-gamescope-autologin
Gradience:
description: Adds Valve-inspired themes to Gradience
condition:
run: grep "gnome" <<< $(rpm-ostree status)
default: true
packages:
- Setup Gradience: just --unstable setup-gradience
Greenlight:
description: A utility for xCloud and xHome streaming
default: false
packages:
- Retrieve Greenlight: just --unstable get-greenlight
GSConnect:
condition:
run: grep "gnome" <<< $(rpm-ostree status)
description: A KDE connect implementation for GNOME
default: true
packages:
- Enable GSConnect: just --unstable enable-gsconnect
Hide GRUB Menu:
description: |
NOTE: Press the escape key before boot to show the menu
@ -118,19 +104,12 @@ screens:
default: true
packages:
- Enable System76 Scheduler: just --unstable enable-system76-scheduler
Wallpaper Engine:
description: Enables Wallpaper Engine
condition:
run: grep -v "gnome" <<< $(rpm-ostree status)
default: true
packages:
- Enable Wallpaper Engine: just --unstable enable-wallpaper-engine
can-we-modify-your-flatpaks:
source: yafti.screen.consent
values:
title: Setting up Flathub
condition:
run: flatpak remotes --system | grep fedora
run: flatpak remotes --system | grep -q fedora
description: |
WARNING: This will modify your Flatpaks if you are rebasing! If you do not want to do this exit the installer.
actions:
@ -252,18 +231,25 @@ screens:
- Bitwarden: com.bitwarden.desktop
- Calibre: com.calibre_ebook.calibre
- Fedora Media Writer: org.fedoraproject.MediaWriter
- Flatseal Permissions Manager: com.github.tchx84.Flatseal
- KeePassXC: org.keepassxc.KeePassXC
- OpenRGB: org.openrgb.OpenRGB
- qBittorrent: org.qbittorrent.qBittorrent
- Syncthing: com.github.zocker_160.SyncThingy
- VLC: org.videolan.VLC
setup-desktop-environment:
source: yafti.screen.consent
values:
title: Setting up your Desktop Environment
description: |
Configures your desktop environment, including needed plugins/extensions.
actions:
- run: just --unstable setup-desktop-environment
theme:
source: yafti.screen.title
values:
title: "GNOME Theme"
condition:
run: grep "gnome" <<< $(rpm-ostree status)
run: [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]
links:
- "Vapor Theme":
run: just --unstable enable-vapor-theme

View File

@ -1,18 +1,20 @@
enable-gamescope-autologin:
#!/usr/bin/env bash
if grep "gnome" <<< $(rpm-ostree status); then
source /etc/default/bazzite
if [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then
systemctl disable --now gnome-autologin
else
elif [[ ${BASE_IMAGE_NAME} == 'kinoite' ]]; then
systemctl disable --now plasma-autologin
fi
systemctl enable --now gamescope-autologin
enable-desktop-autologin:
#!/usr/bin/env bash
source /etc/default/bazzite
systemctl disable --now gamescope-autologin
if grep "gnome" <<< $(rpm-ostree status); then
if [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then
systemctl enable --now gnome-autologin
else
elif [[ ${BASE_IMAGE_NAME} == 'kinoite' ]]; then
systemctl enable --now plasma-autologin
fi
@ -44,7 +46,8 @@ get-steamcmd:
install-extensions-cli:
#!/usr/bin/env bash
if grep "gnome" <<< $(rpm-ostree status); then
source /etc/default/bazzite
if [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then
pip install --upgrade gnome-extensions-cli
else
echo "This is only supported under GNOME."
@ -52,17 +55,18 @@ install-extensions-cli:
enable-system76-scheduler:
#!/usr/bin/env bash
echo 'Installing System76-Scheduler plugin for KDE...'
if grep "gnome" <<< $(rpm-ostree status); then
source /etc/default/bazzite
if [[ ${BASE_IMAGE_NAME} == 'kinoite' ]]; then
echo 'Installing System76-Scheduler plugin for KDE...'
git clone https://github.com/maxiberta/kwin-system76-scheduler-integration.git --depth 1 /tmp/kwin-system76-scheduler-integration
kpackagetool5 --type=KWin/Script -i /tmp/kwin-system76-scheduler-integration
systemctl --user enable --now com.system76.Scheduler.dbusproxy.service
systemctl enable --now com.system76.Scheduler.service
kcmshell5 kcm_kwin_scripts
rm -rf /tmp/kwin-system76-scheduler-integration
else
gsettings set org.gnome.shell enabled-extensions ['appindicatorsupport@rgcjonas.gmail.com', 'gsconnect@andyholmes.github.io', 's76-scheduler@mattjakeman.com', 'tofumenu@tofu', 'user-theme@gnome-shell-extensions.gcampax.github.com']
gsettings set org.gnome.shell.extensions.fedora-menu menu-button-icon-size 20
elif [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then
echo 'Enabling System76-Scheduler GNOME extension...'
gnome-shell-extension-cl -e s76-scheduler@mattjakeman.com
fi
install-nix:
@ -83,29 +87,31 @@ get-boilr:
-O ~/Desktop/BoilR
chmod +x ~/Desktop/BoilR
enable-wallpaper-engine:
setup-desktop-environment:
#!/usr/bin/env bash
if grep -v "gnome" <<< $(rpm-ostree status); then
source /etc/default/bazzite
if [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then
echo 'Configuring GNOME extensions...'
gnome-shell-extension-cl -d background-logo@fedorahosted.org
gnome-shell-extension-cl -e appindicatorsupport@rgcjonas.gmail.com
gnome-shell-extension-cl -e gsconnect@andyholmes.github.io
gnome-shell-extension-cl -e tofumenu@tofu
gsettings set org.gnome.shell.extensions.fedora-menu menu-button-icon-size 20
mkdir -p $HOME/.config/presets/user/
gradience-cli import -p /usr/share/ublue-os/bazzite/themes/vapor.json
gradience-cli import -p /usr/share/ublue-os/bazzite/themes/vgui2.json
elif [[ ${BASE_IMAGE_NAME} == 'kinoite' ]]; then
echo 'Installing Wallpaper Engine Plugin for KDE...'
git clone https://github.com/catsout/wallpaper-engine-kde-plugin.git --depth 1 /tmp/wallpaper-engine-kde-plugin
plasmapkg2 -i /tmp/wallpaper-engine-kde-plugin/plugin
rm -rf /tmp/wallpaper-engine-kde-plugin
else
echo "This is only supported under KDE."
fi
setup-gradience:
#!/usr/bin/env bash
if grep "gnome" <<< $(rpm-ostree status); then
gradience-cli import -p /usr/share/ublue-os/bazzite/themes/vapor.json
gradience-cli import -p /usr/share/ublue-os/bazzite/themes/vgui2.json
else
echo "This is only supported under GNOME."
fi
enable-vapor-theme:
#!/usr/bin/env bash
if grep "gnome" <<< $(rpm-ostree status); then
source /etc/default/bazzite
if [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then
gnome-shell-extension-cl -e user-theme@gnome-shell-extensions.gcampax.github.com
gsettings set org.gnome.desktop.wm.preferences button-layout appmenu:minimize,maximize,close
gsettings set org.gnome.desktop.interface color-scheme prefer-dark
gsettings set org.gnome.desktop.interface gtk-theme adw-gtk3-dark
@ -119,7 +125,9 @@ enable-vapor-theme:
enable-vgui2-theme:
#!/usr/bin/env bash
if grep "gnome" <<< $(rpm-ostree status); then
source /etc/default/bazzite
if [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then
gnome-shell-extension-cl -e user-theme@gnome-shell-extensions.gcampax.github.com
gsettings set org.gnome.desktop.wm.preferences button-layout appmenu:minimize,maximize,close
gsettings set org.gnome.desktop.interface color-scheme prefer-dark
gsettings set org.gnome.desktop.interface gtk-theme adw-gtk3-dark
@ -134,7 +142,7 @@ enable-vgui2-theme:
deckswap-on:
#!/usr/bin/env bash
STATUS=$(systemctl status deckswap.service)
if grep 'inactive' <<< ${STATUS}; then
if grep -q 'inactive' <<< ${STATUS}; then
systemctl enable deckswap.service
echo 'deckswap enabled. Please reboot.'
else
@ -144,7 +152,7 @@ deckswap-on:
deckswap-off:
#!/usr/bin/env bash
STATUS=$(systemctl status deckswap.service)
if grep -v 'inactive' <<< ${STATUS}; then
if grep -qv 'inactive' <<< ${STATUS}; then
systemctl disable deckswap.service
echo 'deckswap disabled. Please reboot.'
else
@ -154,7 +162,7 @@ deckswap-off:
resize-deckswap:
#!/usr/bin/env bash
CONFIG='/etc/default/deckswap'
CURRENT_SIZE=$(cat "${CONFIG}" | grep "SWAP_SIZE" | sed 's/SWAP_SIZE=//g')
CURRENT_SIZE=$(cat "${CONFIG}" | grep -q "SWAP_SIZE" | sed 's/SWAP_SIZE=//g')
echo 'Current size: '${CURRENT_SIZE}
read -p 'Enter new size (1-16) in gigabytes (1G): ' NEW_SIZE
if [ -z "${NEW_SIZE//[0-9]}" ]; then
@ -181,7 +189,7 @@ set-btrfs-flags:
#!/usr/bin/env bash
echo 'Configuring drive mount parameters...'
sudo sed -i 's/compress=zstd:1/noatime,lazytime,commit=120,compress-force=zstd:1,space_cache=v2,discard=async/g' /etc/fstab
if grep '64GB' <<< $(lsblk -o MODEL); then
if grep -q '64GB' <<< $(lsblk -o MODEL); then
echo 'Increasing compression for detected 64GB eMMC'
sudo sed -i 's/compress-force=zstd:1/compress-force=zstd:3/g' /etc/fstab
fi
@ -192,7 +200,7 @@ switch-to-ext4:
zram-on:
#!/usr/bin/env bash
KARGS=$(rpm-ostree kargs)
if grep 'zram' <<< ${KARGS}; then
if grep -q 'zram' <<< ${KARGS}; then
rpm-ostree kargs --delete=zram
echo 'ZRAM enabled. Please reboot.'
else
@ -202,7 +210,7 @@ zram-on:
zram-off:
#!/usr/bin/env bash
KARGS=$(rpm-ostree kargs)
if grep -v 'zram' <<< ${KARGS}; then
if grep -qv 'zram' <<< ${KARGS}; then
rpm-ostree kargs --append=zram=0
echo 'ZRAM disabled. Please reboot.'
else
@ -212,8 +220,8 @@ zram-off:
resize-zram:
#!/usr/bin/env bash
CONFIG='/etc/systemd/zram-generator.conf'
if grep "zram-size" <<< $(cat ${CONFIG}); then
CURRENT_SIZE=$(cat "${CONFIG}" | grep "zram-size" | sed 's/zram-size=//g')
if grep -q "zram-size" <<< $(cat ${CONFIG}); then
CURRENT_SIZE=$(cat "${CONFIG}" | grep -q "zram-size" | sed 's/zram-size=//g')
else
CURRENT_SIZE=1024
fi
@ -224,7 +232,7 @@ resize-zram:
NEW_SIZE=1024
fi
if ((${NEW_SIZE} >= 512 && ${NEW_SIZE} <= 4096)); then
if grep "zram-size" <<< $(cat ${CONFIG}); then
if grep -q "zram-size" <<< $(cat ${CONFIG}); then
sudo sed -i 's/zram-size='${CURRENT_SIZE}'/zram-size='${NEW_SIZE}'/g' ${CONFIG}
else
sudo -A echo "zram-size=${NEW_SIZE}" >> ${CONFIG}

View File

@ -2,3 +2,4 @@ net.davidotek.pupgui2
org.freedesktop.Platform.VulkanLayer.MangoHud//22.08
org.freedesktop.Platform.VulkanLayer.vkBasalt//22.08
org.mozilla.firefox
com.github.tchx84.Flatseal

View File

@ -1,2 +1,8 @@
SUDO_ASKPASS='/usr/bin/ksshaskpass'
#!/usr/bin/env bash
source /etc/default/bazzite
if [[ ${BASE_IMAGE_NAME} == 'kinoite' ]]; then
SUDO_ASKPASS='/usr/bin/ksshaskpass'
elif [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then
SUDO_ASKPASS='/usr/libexec/openssh/gnome-ssh-askpass'
fi
export SUDO_ASKPASS

View File

@ -1,4 +1,5 @@
#!/usr/bin/env bash
source /etc/default/bazzite
if [[ -f '/etc/flatpak/install' ]]; then
cp -r /etc/flatpak/flathub/* /var/lib/flatpak/repo/refs/remotes/flathub
@ -15,7 +16,7 @@ if [[ -f '/etc/flatpak/remove' ]]; then
fi
if [[ -f '/etc/flatpak/deck' ]]; then
if grep "deck" <<< $(rpm-ostree status); then
if [[ ${IMAGE_NAME} == *'deck'* ]]; then
cat /etc/flatpak/deck | while read line; do
flatpak install --system --noninteractive --no-pull flathub $line
done && cat /etc/flatpak/deck >> /etc/flatpak/installed

View File

@ -1,4 +1,7 @@
#!/usr/bin/env bash
# Source Bazzite defaults
source /etc/default/bazzite
# Simply launches the "yafti" GUI with the uBlue image's configuration.
/usr/bin/yafti /usr/share/ublue-os/firstboot/yafti.yml

View File

@ -9,6 +9,37 @@ screens:
icon: "/usr/share/ublue-os/bazzite/logo.svg"
description: |
Configure your system to get started
configure-bazzite-arch:
source: yafti.screen.package
values:
title: Configure Bazzite Arch
condition:
run: grep -qv "bazzite-arch" <<< $(distrobox list)
show_terminal: true
package_manager: yafti.plugin.run
groups:
Install Bazzite Arch:
description: This will install an Arch distrobox configured for gaming
default: true
packages:
- Install Bazzite Arch: just --unstable install-bazzite-arch
Export Launchers:
description: This exports Steam and Lutris
default: true
packages:
- Export Steam: distrobox-enter -n bazzite-arch -- ' distrobox-export --app steam'
- Export Lutris: distrobox-enter -n bazzite-arch -- ' distrobox-export --app lutris'
Export Utilities:
description: This exports SteamCMD and protontricks
default: true
packages:
- Export SteamCMD: just --unstable export-steamcmd
- Export Protontricks: distrobox-enter -n bazzite-arch -- ' distrobox-export --app protontricks'
Autostart Steam:
description: Starts Steam after logging in
default: true
packages:
- Autostart Steam: cp ~/.local/share/applications/bazzite-arch-steam.desktop ~/.config/autostart/bazzite-arch-steam-silent.desktop && sed -i 's@/usr/bin/steam-runtime %U@/usr/bin/steam-runtime -silent %U@g' ~/.config/autostart/bazzite-arch-steam-silent.desktop
configure-bazzite:
source: yafti.screen.package
values:
@ -16,37 +47,11 @@ screens:
show_terminal: true
package_manager: yafti.plugin.run
groups:
Bazzite Arch Distrobox:
description: This will install an Arch distrobox configured for gaming. Steam and Lutris will then be exported.
default: true
condition:
run: distrobox list | grep -v bazzite-arch
packages:
- Install Bazzite Arch: just --unstable install-bazzite-arch
- Export Steam: distrobox-enter -n bazzite-arch -- ' distrobox-export --app steam'
- Export SteamCMD: just --unstable export-steamcmd
- Export Lutris: distrobox-enter -n bazzite-arch -- ' distrobox-export --app lutris'
- Export Protontricks: distrobox-enter -n bazzite-arch -- ' distrobox-export --app protontricks'
- Autostart Steam: cp ~/.local/share/applications/bazzite-arch-steam.desktop ~/.config/autostart/bazzite-arch-steam-silent.desktop && sed -i 's@/usr/bin/steam-runtime %U@/usr/bin/steam-runtime -silent %U@g' ~/.config/autostart/bazzite-arch-steam-silent.desktop
Automatic Duplicate File Removal:
description: Flattens duplicate files to take up no more space than a single copy, a considerable space savings for wine prefixes and compatdata
default: true
packages:
- Enable Duperemove: systemctl enable --now duperemove-weekly@$(systemd-escape $HOME).timer
CoreCtrl:
description: AMD GPU Overclocking
condition:
run: grep -v "nvidia" <<< $(rpm-ostree status)
default: false
packages:
- Install CoreCtrl: just --unstable install-corectrl
Gradience:
description: Adds Valve-inspired themes to Gradience
condition:
run: grep "gnome" <<< $(rpm-ostree status)
default: true
packages:
- Setup Gradience: just --unstable setup-gradience
Greenlight:
description: A utility for xCloud and xHome streaming
default: false
@ -78,31 +83,52 @@ screens:
default: true
packages:
- Set SteamOS BTRFS mount flags: sudo -A just --unstable set-btrfs-flags
Supergfxctl:
condition:
run: grep "nvidia" <<< $(rpm-ostree status)
description: A utility for Nvidia GPU switching
default: false
packages:
- Enable supergfxctl: just --unstable enable-supergfxctl
System76 Scheduler:
description: Enables System76 scheduler
default: true
packages:
- Enable System76 Scheduler: just --unstable enable-system76-scheduler
Wallpaper Engine:
description: Enables Wallpaper Engine
amd-additions:
source: yafti.screen.package
values:
title: AMD Additions
condition:
run: [[ ${IMAGE_FLAVOR} == 'main' ]]
show_terminal: true
package_manager: yafti.plugin.run
groups:
CoreCtrl:
description: AMD GPU Overclocking
condition:
run: grep -v "gnome" <<< $(rpm-ostree status)
default: true
run: grep -qv "nvidia" <<< $(cat /etc/default/bazzite)
default: false
packages:
- Enable Wallpaper Engine: just --unstable enable-wallpaper-engine
- Install CoreCtrl: just --unstable install-corectrl
nvidia-additions:
source: yafti.screen.package
values:
title: Nvidia Additions
condition:
run: [[ ${IMAGE_FLAVOR} == 'nvidia' ]]
show_terminal: true
package_manager: yafti.plugin.run
groups:
GreenWithEnvy:
description: Nvidia GPU Overclocking
default: false
packages:
- Install GreenWithEnvy: flatpak install --user --noninteractive com.leinardi.gwe
Supergfxctl:
description: A utility for Nvidia GPU switching
default: false
packages:
- Enable Supergfxctl: just --unstable enable-supergfxctl
can-we-modify-your-flatpaks:
source: yafti.screen.consent
values:
title: Setting up Flathub
condition:
run: flatpak remotes --system | grep fedora
run: flatpak remotes --system | grep -q fedora
description: |
WARNING: This will modify your Flatpaks if you are rebasing! If you do not want to do this exit the installer.
actions:
@ -225,20 +251,26 @@ screens:
- Calibre: com.calibre_ebook.calibre
- Easy Effects: com.github.wwmm.easyeffects
- Fedora Media Writer: org.fedoraproject.MediaWriter
- Flatseal Permissions Manager: com.github.tchx84.Flatseal
- GreenWithEnvy (Nvidia GPU Overclocking): com.leinardi.gwe
- JamesDSP: me.timschneeberger.jdsp4linux
- KeePassXC: org.keepassxc.KeePassXC
- OpenRGB: org.openrgb.OpenRGB
- qBittorrent: org.qbittorrent.qBittorrent
- Syncthing: com.github.zocker_160.SyncThingy
- VLC: org.videolan.VLC
setup-desktop-environment:
source: yafti.screen.consent
values:
title: Setting up your Desktop Environment
description: |
Configures your desktop environment, including needed plugins/extensions.
actions:
- run: just --unstable setup-desktop-environment
theme:
source: yafti.screen.title
values:
title: "GNOME Theme"
condition:
run: grep "gnome" <<< $(rpm-ostree status)
run: [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]
links:
- "Vapor Theme":
run: just --unstable enable-vapor-theme

View File

@ -1,7 +1,7 @@
install-bazzite-arch:
#!/usr/bin/env bash
KARGS=$(rpm-ostree kargs)
if grep 'nvidia' <<< ${KARGS}; then
source /etc/default/bazzite
if [[ ${IMAGE_FLAVOR} == 'nvidia' ]]; then
echo 'Installing Bazzite Arch (Nvidia)...'
distrobox assemble create --file /usr/share/ublue-os/distrobox/bazzite-arch-nvidia
else
@ -28,9 +28,10 @@ remove-nix:
enable-big-picture:
#!/usr/bin/env bash
if grep "gnome" <<< $(rpm-ostree status); then
source /etc/default/bazzite
if [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then
systemctl enable --now gnome-autologin
else
elif [[ ${BASE_IMAGE_NAME} == 'kinoite' ]]; then
systemctl enable --now plasma-autologin
fi
sed -i 's@/usr/bin/steam-runtime -silent %U@/usr/bin/steam-runtime -bigpicture %U@g' ~/.config/autostart/bazzite-arch-steam-silent.desktop
@ -43,7 +44,8 @@ get-greenlight:
install-extensions-cli:
#!/usr/bin/env bash
if grep "gnome" <<< $(rpm-ostree status); then
source /etc/default/bazzite
if [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then
pip install --upgrade gnome-extensions-cli
else
echo "This is only supported under GNOME."
@ -51,51 +53,52 @@ install-extensions-cli:
enable-system76-scheduler:
#!/usr/bin/env bash
echo 'Installing System76-Scheduler plugin for KDE...'
if grep "gnome" <<< $(rpm-ostree status); then
source /etc/default/bazzite
if [[ ${BASE_IMAGE_NAME} == 'kinoite' ]]; then
echo 'Installing System76-Scheduler plugin for KDE...'
git clone https://github.com/maxiberta/kwin-system76-scheduler-integration.git --depth 1 /tmp/kwin-system76-scheduler-integration
kpackagetool5 --type=KWin/Script -i /tmp/kwin-system76-scheduler-integration
systemctl --user enable --now com.system76.Scheduler.dbusproxy.service
systemctl enable --now com.system76.Scheduler.service
kcmshell5 kcm_kwin_scripts
rm -rf /tmp/kwin-system76-scheduler-integration
else
gsettings set org.gnome.shell enabled-extensions ['appindicatorsupport@rgcjonas.gmail.com', 'gsconnect@andyholmes.github.io', 's76-scheduler@mattjakeman.com', 'tofumenu@tofu', 'user-theme@gnome-shell-extensions.gcampax.github.com']
gsettings set org.gnome.shell.extensions.fedora-menu menu-button-icon-size 20
elif [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then
echo 'Enabling System76-Scheduler GNOME extension...'
gnome-shell-extension-cl -e s76-scheduler@mattjakeman.com
fi
enable-supergfxctl:
#!/usr/bin/env bash
status=$(rpm-ostree status)
if grep "nvidia" <<< ${status}; then
source /etc/default/bazzite
if [[ ${IMAGE_FLAVOR} == 'nvidia' ]]; then
systemctl enable --now supergfxd.service
else
echo "This requires an Nvidia image."
fi
enable-wallpaper-engine:
setup-desktop-environment:
#!/usr/bin/env bash
if grep -v "gnome" <<< $(rpm-ostree status); then
source /etc/default/bazzite
if [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then
echo 'Configuring GNOME extensions...'
gnome-shell-extension-cl -d background-logo@fedorahosted.org
gnome-shell-extension-cl -e appindicatorsupport@rgcjonas.gmail.com
gnome-shell-extension-cl -e gsconnect@andyholmes.github.io
mkdir -p $HOME/.config/presets/user/
gradience-cli import -p /usr/share/ublue-os/bazzite/themes/vapor.json
gradience-cli import -p /usr/share/ublue-os/bazzite/themes/vgui2.json
elif [[ ${BASE_IMAGE_NAME} == 'kinoite' ]]; then
echo 'Installing Wallpaper Engine Plugin for KDE...'
git clone https://github.com/catsout/wallpaper-engine-kde-plugin.git --depth 1 /tmp/wallpaper-engine-kde-plugin
plasmapkg2 -i /tmp/wallpaper-engine-kde-plugin/plugin
rm -rf /tmp/wallpaper-engine-kde-plugin
else
echo "This is only supported under KDE."
fi
setup-gradience:
#!/usr/bin/env bash
if grep "gnome" <<< $(rpm-ostree status); then
gradience-cli import -p /usr/share/ublue-os/bazzite/themes/vapor.json
gradience-cli import -p /usr/share/ublue-os/bazzite/themes/vgui2.json
else
echo "This is only supported under GNOME."
fi
enable-vapor-theme:
#!/usr/bin/env bash
if grep "gnome" <<< $(rpm-ostree status); then
source /etc/default/bazzite
if [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then
gnome-shell-extension-cl -e user-theme@gnome-shell-extensions.gcampax.github.com
gsettings set org.gnome.desktop.wm.preferences button-layout appmenu:minimize,maximize,close
gsettings set org.gnome.desktop.interface color-scheme prefer-dark
gsettings set org.gnome.desktop.interface gtk-theme adw-gtk3-dark
@ -103,13 +106,15 @@ enable-vapor-theme:
gsettings set org.gnome.desktop.background picture-uri-dark file:///usr/share/backgrounds/steamdeck/Steam\ Deck\ Logo\ Default.jpg
gradience-cli flatpak-overrides -e both
gradience-cli apply -p /usr/share/ublue-os/bazzite/themes/vapor.json
else
else
echo "This is only supported under GNOME."
fi
enable-vgui2-theme:
#!/usr/bin/env bash
if grep "gnome" <<< $(rpm-ostree status); then
source /etc/default/bazzite
if [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then
gnome-shell-extension-cl -e user-theme@gnome-shell-extensions.gcampax.github.com
gsettings set org.gnome.desktop.wm.preferences button-layout appmenu:minimize,maximize,close
gsettings set org.gnome.desktop.interface color-scheme prefer-dark
gsettings set org.gnome.desktop.interface gtk-theme adw-gtk3-dark
@ -128,7 +133,7 @@ set-btrfs-flags:
zram-on:
#!/usr/bin/env bash
KARGS=$(rpm-ostree kargs)
if grep 'zram' <<< ${KARGS}; then
if grep -q 'zram' <<< ${KARGS}; then
rpm-ostree kargs --delete=zram
echo 'ZRAM enabled. Please reboot.'
else
@ -138,7 +143,7 @@ zram-on:
zram-off:
#!/usr/bin/env bash
KARGS=$(rpm-ostree kargs)
if grep -v 'zram' <<< ${KARGS}; then
if grep -qv 'zram' <<< ${KARGS}; then
rpm-ostree kargs --append=zram=0
echo 'ZRAM disabled. Please reboot.'
else
@ -148,7 +153,7 @@ zram-off:
resize-zram:
#!/usr/bin/env bash
CONFIG='/etc/systemd/zram-generator.conf'
if grep "zram-size" <<< $(cat ${CONFIG}); then
if grep -q "zram-size" <<< $(cat ${CONFIG}); then
CURRENT_SIZE=$(cat "${CONFIG}" | grep "zram-size" | sed 's/zram-size=//g')
else
CURRENT_SIZE=1024

View File

@ -7,3 +7,4 @@ com.mattjakeman.ExtensionManager
org.gtk.Gtk3theme.adw-gtk3
org.gtk.Gtk3theme.adw-gtk3-dark
org.mozilla.firefox
com.github.tchx84.Flatseal

View File

@ -0,0 +1,275 @@
#! /usr/bin/env bash
# Copyright (C) 2016
# Alexandru Catalin Petrini <alexandru.c.petrini@gmail.com>
# This script is intended to usefully manage gnome-shell extensions,
# in compatible Gnome Shell versions.
# Install this script by running this command:
# $ sudo wget https://raw.githubusercontent.com/cyberalex4life/gnome-shell-extension-cl/master/gnome-shell-extension-cl -O /usr/local/bin/gnome-shell-extension-cl && sudo chmod +x /usr/local/bin/gnome-shell-extension-cl
# -------------------------------------------------------------------------------
function get_enabled_extensions() {
enabled_extensions=( $(gsettings get org.gnome.shell enabled-extensions | \
sed -e 's|^@as ||g' | tr -d "[",",","]","\'") )
}
function print_enabled_extensions(){
get_enabled_extensions
for enabled_extension in "${enabled_extensions[@]}"
do
echo "$enabled_extension"
done
}
# -------------------------------------------------------------------------------
function get_installed_extensions() {
global_installed_extensions=( $(find "/usr/share/gnome-shell/extensions/" \
-maxdepth 1 -type d -name "*@*" -exec \
/usr/bin/basename {} \;) )
local_installed_extensions=( $(find "$HOME/.local/share/gnome-shell/extensions/" \
-maxdepth 1 -type d -name "*@*" -exec \
/usr/bin/basename {} \;) )
if [ ${#local_installed_extensions[@]} -gt ${#global_installed_extensions[@]} ]
then
installed_extensions=( ${local_installed_extensions[@]} )
test_extensions=( ${global_installed_extensions[@]} )
else
installed_extensions=( ${global_installed_extensions[@]} )
test_extensions=( ${local_installed_extensions[@]} )
fi
for test_extension in "${test_extensions[@]}"
do
test_extension_not_doubled=true
for installed_extension in "${installed_extensions[@]}"
do
if [ "$test_extension" = "$installed_extension" ]
then
test_extension_not_doubled=false
break
fi
done
if [ $test_extension_not_doubled = true ]
then
test_extension=( $test_extension )
installed_extensions=( "${installed_extensions[@]}" "${test_extension[@]}" )
#echo ${test_extension[@]}
fi
done
echo "${installed_extensions[@]}"
}
function print_installed_extensions() {
installed_extensions=( $(get_installed_extensions) )
for installed_extension in "${installed_extensions[@]}"
do
[ "$(check_extension_is_enabled "$installed_extension")" = true ] && \
status="enabled" || status="disabled";
printf "%-65s - %-10s \n" "$installed_extension" "$status"
done
}
# -------------------------------------------------------------------------------
function check_extension_is_enabled() {
extension_to_check=$1
enabled_extensions=( $(gsettings get org.gnome.shell enabled-extensions | \
sed -e 's|^@as ||g' | tr -d "[",",","]","\'") )
for enabled_extension in "${enabled_extensions[@]}"
do
if [ "$enabled_extension" = "$extension_to_check" ]
then
echo true
return
fi
done
echo false
}
function check_extension_in_all_extensions() {
extension_to_check=$1
installed_extensions=( $(get_installed_extensions) )
for installed_extension in "${installed_extensions[@]}"
do
if [ "$installed_extension" = "$extension_to_check" ]
then
echo true
return
fi
done
echo false
}
function version_greater() {
minimal_version=3.18.0
our_version=$(gnome-shell --version | awk '{print $3}')
if [ "$(echo "$our_version $minimal_version" | tr " " "\n" | sort -V | head -n 1)" != "$our_version" ]
then
echo true
else
echo false
fi
}
function disable_extension() {
arguments=("$@")
unset "arguments[0]"
for extension_to_disable in "${arguments[@]}"
do
if [ "$(check_extension_in_all_extensions "$extension_to_disable")" = false ]
then
echo "'$extension_to_disable' is not installed."
continue
fi
if [ "$(check_extension_is_enabled "$extension_to_disable")" = false ]
then
echo "'$extension_to_disable' is already disabled."
continue
fi
if [ "$(version_greater)" = true ]
then
gnome-shell-extension-tool -d "$extension_to_disable"
continue
fi
enabled_extensions=( $(gsettings get org.gnome.shell enabled-extensions | \
tr -d "[",",","]","\'") )
enabled_extensions_string=""
for enabled_extension in "${enabled_extensions[@]}"
do
if [ "$enabled_extension" != "$extension_to_disable" ]
then
enabled_extensions_string="$enabled_extensions_string '$enabled_extension', "
fi
done
enabled_extensions_string=${enabled_extensions_string:1:-2}
enabled_extensions_string="[ $enabled_extensions_string ]"
dbus-launch gsettings set org.gnome.shell enabled-extensions "$enabled_extensions_string"
done
return
}
function enable_extension() {
arguments=("$@")
unset "arguments[0]"
for extension_to_enable in "${arguments[@]}"
do
if [ "$(check_extension_in_all_extensions "$extension_to_enable")" = false ]
then
echo "'$extension_to_enable' is not installed."
continue
fi
if [ "$(check_extension_is_enabled "$extension_to_enable")" = true ]
then
echo "'$extension_to_enable' is already enabled."
continue
fi
if [ "$(version_greater)" = true ]
then
gnome-shell-extension-tool -e "$extension_to_enable"
continue
fi
enabled_extensions_string=$(gsettings get org.gnome.shell enabled-extensions | tr -d "]")
[ "$enabled_extensions_string" != "@as [" ] && delimiter=,
enabled_extensions_string="${enabled_extensions_string}${delimiter} '$extension_to_enable' ]"
gsettings set org.gnome.shell enabled-extensions "$enabled_extensions_string"
done
return
}
# -------------------------------------------------------------------------------
function disable_all_extensions() {
get_enabled_extensions
for enabled_extension in "${enabled_extensions[@]}"
do
# Don't disable user-theme extensions to avoid breaking them
if [ "$enabled_extension" != "user-theme" ] && \
[ "$enabled_extension" != "user-themes" ] && \
[ "$enabled_extension" != "user-theme@gnome-shell-extensions.gcampax.github.com" ]
then
disable_extension "this element will be ignored" "$enabled_extension"
else
continue
fi
done
}
# -------------------------------------------------------------------------------
function print_help() {
printf "
GNOME Shell Extension Control Tool:
usage: gnome-shell-extensions <option> [extension name]
Options
-h, --help Display help message.
-e, --enable-extension <extension name> Enable extension.
-d, --disable-extension <extension name> Disable extension.
-da, --disable-all-extensions Disables all extensions.
-le, --list-enabled List enabled extensions.
-l, --list List all extensions + state info.
-s, --status <extension name> Show status of extension.
\n"
}
# -------------------------------------------------------------------------------
case $1 in
-h|--help)
print_help
;;
-e|--enable-extension)
enable_extension "$@"
;;
-d|--disable-extension)
disable_extension "$@"
;;
-da|--disable-all-extensions)
disable_all_extensions
;;
-le|--list-enabled)
print_enabled_extensions
;;
-l|--list)
print_installed_extensions
;;
-s|--status)
if [ "$(check_extension_is_enabled "$2")" = true ]
then
echo "enabled"
else
echo "disabled"
fi
;;
*)
print_help
;;
esac