feat: Introduce initial Aurora OS configuration, branding assets, and system components across various directories.

This commit is contained in:
James Reilly 2025-11-25 11:59:55 +05:30
commit 8b52c30877
No known key found for this signature in database
167 changed files with 5819 additions and 0 deletions

14
brew/aurora-ai.Brewfile Normal file
View file

@ -0,0 +1,14 @@
brew "aichat"
brew "block-goose-cli"
tap "gptscript-ai/tap"
brew "gptscript-ai/tap/clio"
tap "charmbracelet/tap"
brew "charmbracelet/tap/crush"
cask "codex"
brew "gemini-cli"
brew "llm"
brew "mods"
brew "opencode"
brew "qwen-code"
brew "whisper-cpp"
brew "ramalama"

24
brew/aurora-cli.Brewfile Normal file
View file

@ -0,0 +1,24 @@
tap "valkyrie00/bbrew"
brew "atuin"
brew "bat"
brew "bash-preexec"
brew "valkyrie00/bbrew/bbrew"
brew "carapace"
brew "chezmoi"
brew "direnv"
brew "dysk"
brew "eza"
brew "fd"
brew "gh"
brew "glab"
brew "rg"
brew "starship"
brew "shellcheck"
brew "stress-ng"
brew "tealdeer"
brew "trash-cli"
brew "television"
brew "uutils-coreutils"
brew "ugrep"
brew "yq"
brew "zoxide"

View file

@ -0,0 +1,15 @@
cask "font-caskaydia-mono-nerd-font"
cask "font-droid-sans-mono-nerd-font"
cask "font-go-mono-nerd-font"
cask "font-blex-mono-nerd-font"
cask "font-open-dyslexic-nerd-font"
cask "font-sauce-code-pro-nerd-font"
cask "font-source-code-pro"
cask "font-ubuntu-nerd-font"
cask "font-fira-code-nerd-font"
cask "font-monaspice-nerd-font"
cask "font-symbols-only-nerd-font"
cask "font-cascadia-code-nf"
cask "font-intel-one-mono"
cask "font-inter"
cask "font-jetbrains-mono-nerd-font"

16
brew/aurora-k8s.Brewfile Normal file
View file

@ -0,0 +1,16 @@
tap "buildpacks/tap"
brew "kind"
brew "cdk8s"
tap "k0sproject/tap"
brew "k0sctl"
brew "k0sproject/tap/k0sctl"
brew "k3sup"
brew "dagger"
brew "grype"
brew "helm"
brew "kubectl"
brew "k9s"
brew "kubectx"
brew "pack"
brew "buildpacks/tap/pack"
brew "syft"

View file

@ -0,0 +1,3 @@
io.podman_desktop.PodmanDesktop
io.github.getnf.embellish
me.iepure.devtoolbox

View file

@ -0,0 +1,20 @@
com.github.tchx84.Flatseal
com.ranfdev.DistroShelf
io.github.flattool.Warehouse
io.github.kolunmi.Bazaar
io.missioncenter.MissionCenter
org.deskflow.deskflow
org.fedoraproject.MediaWriter
org.fkoehler.KTailctl
org.gnome.DejaDup
org.gtk.Gtk3theme.Breeze
org.kde.gwenview
org.kde.haruna
org.kde.kcalc
org.kde.kclock
org.kde.kontact
org.kde.kweather
org.kde.okular
org.kde.skanpage
org.mozilla.Thunderbird
org.mozilla.firefox

356
just/aurora-apps.just Normal file
View file

@ -0,0 +1,356 @@
# vim: set ft=make :
########################
### aurora-apps.just
########################
## Standardized verbs
# configure- = configure something that is pre-installed on the image
# install- = install something, no uninstall or configuration provided
# setup- = install something and also provide configuration and/or uninstallation options
# toggle- = turn something on/off, logic can be automatic or manual selection
# fix- = apply fix/patch/workaround for something
# foo = no verb is used for shortcuts or something deemed important enough to use a super memorable name
# alias for setup-cockpit
[group('Apps')]
cockpit:
@ujust setup-cockpit
# Enable Cockpit for web-based system management | https://cockpit-project.org/
[group('Apps')]
setup-cockpit ACTION="":
#!/usr/bin/env bash
source /usr/lib/ujust/ujust.sh
MANAGED_COCKPIT_CONTAINER="cockpit-ws"
if sudo podman container exists $MANAGED_COCKPIT_CONTAINER ; then
COCKPIT_CONTAINER_STATUS_PRETTY="${green}${b}Installed${n}"
COCKPIT_CONTAINER_STATUS=1
else
COCKPIT_CONTAINER_STATUS_PRETTY="${invert}${b}Not installed${n}"
COCKPIT_CONTAINER_STATUS=0
fi
COCKPIT_SERVICE_STATUS="$(systemctl is-enabled cockpit.service)"
if [ "$COCKPIT_SERVICE_STATUS" == "enabled" ]; then
COCKPIT_SERVICE_STATUS="${green}${b}Enabled${n}"
elif [ "$COCKPIT_SERVICE_STATUS" == "disabled" ]; then
COCKPIT_SERVICE_STATUS="${red}${b}Disabled${n}"
else
COCKPIT_SERVICE_STATUS="${invert}${b}Not installed${n}"
fi
OPTION={{ ACTION }}
if [ "$OPTION" == "help" ]; then
cat <<EOF
Usage: ujust setup-cockpit <option>
<option>: Specify the quick option to skip the prompt
Use 'install' to select Install Cockpit
Use 'enable' to select Enable Cockpit
Use 'disable' to select Disable Cockpit
Use 'uninstall' to select Uninstall Cockpit
EOF
exit 0
elif [ "$OPTION" == "" ]; then
echo "${bold}Cockpit Setup${normal}"
echo "Cockpit service is currently: $COCKPIT_SERVICE_STATUS"
echo "The Cockpit container is currently: $COCKPIT_CONTAINER_STATUS_PRETTY"
if [[ "${COCKPIT_CONTAINER_STATUS}" -eq 0 ]]; then
echo "Warning: This will enable ssh password login because Cockpit requires it."
OPTION=$(Choose "Install Cockpit" "Cancel")
else
OPTION=$(Choose "Enable Cockpit" "Disable Cockpit" "Uninstall Cockpit")
fi
fi
if [[ "${OPTION,,}" =~ ^install ]]; then
echo "${blue}${b}Installing Cockpit${n}"
sudo /bin/bash <<EOF
[ ! -f /etc/ssh/sshd_config.d/02-enable-passwords.conf ] && echo -e "# File managed by ujust cockpit\nPasswordAuthentication yes" > /etc/ssh/sshd_config.d/02-enable-passwords.conf
systemctl -q try-restart sshd
systemctl -q enable --now sshd
if ! podman image exists quay.io/cockpit/ws ; then
podman pull quay.io/cockpit/ws:latest
fi
podman container runlabel -q --name $MANAGED_COCKPIT_CONTAINER RUN quay.io/cockpit/ws
podman container runlabel -q INSTALL quay.io/cockpit/ws systemctl enable cockpit.service
EOF
OPTION="Enable Cockpit"
fi
if [[ "${OPTION,,}" =~ ^enable ]]; then
sudo /bin/bash <<EOF
echo "${green}${b}Enabling${n} Cockpit"
systemctl -q enable --now cockpit.service
podman start $MANAGED_COCKPIT_CONTAINER
echo "$(Urllink "http://localhost:9090" "Open Cockpit${n}") -> http://localhost:9090"
EOF
fi
if [[ "${OPTION,,}" =~ ^disable ]]; then
echo "${red}${b}Disabling${n} Cockpit"
sudo /bin/bash <<EOF
systemctl -q disable cockpit.service
podman stop $MANAGED_COCKPIT_CONTAINER
EOF
echo "Cockpit has been ${b}${red}disabled${n}"
fi
if [[ "${OPTION,,}" =~ ^uninstall ]] ; then
sudo /bin/bash <<EOF
[ -f /etc/ssh/sshd_config.d/02-enable-passwords.conf ] && rm -f /etc/ssh/sshd_config.d/02-enable-passwords.conf
systemctl -q try-restart sshd
systemctl -q disable --now cockpit.service
rm -f /etc/systemd/system/cockpit.service
podman stop -i $MANAGED_COCKPIT_CONTAINER
podman rm -f $MANAGED_COCKPIT_CONTAINER
EOF
echo "Cockpit has been ${red}${b}uninstalled${n}"
fi
# alias for install-jetbrains-toolbox
[group('Apps')]
jetbrains-toolbox:
@ujust install-jetbrains-toolbox
# Install JetBrains Toolbox | https://www.jetbrains.com/toolbox-app/
[group('Apps')]
install-jetbrains-toolbox:
#!/usr/bin/env bash
pushd "$(mktemp -d)"
echo "Get latest JetBrains Toolbox version"
# Get the json with latest releases
curl -sSfL -o releases.json "https://data.services.jetbrains.com/products/releases?code=TBA&latest=true&type=release"
# Extract information
BUILD_VERSION=$(jq -r '.TBA[0].build' ./releases.json)
DOWNLOAD_LINK=$(jq -r '.TBA[0].downloads.linux.link' ./releases.json)
CHECKSUM_LINK=$(jq -r '.TBA[0].downloads.linux.checksumLink' ./releases.json)
echo "Installing JetBrains Toolbox ${BUILD_VERSION}"
curl -sSfL -O "${DOWNLOAD_LINK}"
curl -sSfL "${CHECKSUM_LINK}" | sha256sum -c
tar zxf jetbrains-toolbox-"${BUILD_VERSION}".tar.gz
mkdir -p $HOME/.local/share/JetBrains/ToolboxApp/
mv jetbrains-toolbox-"${BUILD_VERSION}"/* $HOME/.local/share/JetBrains/ToolboxApp/
echo "Launching JetBrains Toolbox"
$HOME/.local/share/JetBrains/ToolboxApp/bin/jetbrains-toolbox &
# Install GUI apps for OpenRazer
[group('Apps')]
install-openrazer-frontend:
#!/usr/bin/env bash
source /usr/lib/ujust/ujust.sh
OPENRAZER_CONFIGURATOR_APP="None"
echo "${bold}Select OpenRazer Frontend Apps${normal}"
OPTION=$(Choose "Razer Genie" "Polychromatic" "Close")
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"
# Install OpenTabletDriver, an open source, cross-platform, user-mode tablet driver
[group('Apps')]
install-opentabletdriver:
#!/usr/bin/bash
source /usr/lib/ujust/ujust.sh
echo "Installer for OpenTabletDriver..."
echo "${bold}Install or Remove OpenTabletDriver${normal}"
OPTION=$(Choose "Install" "Uninstall" "Exit")
if [[ "${OPTION,,}" =~ ^install ]]; then
echo "Installing OpenTabletDriver..."
curl -s https://api.github.com/repos/OpenTabletDriver/OpenTabletDriver/releases/latest \
| jq -r '.assets | sort_by(.created_at) | .[] | select (.name|test("opentabletdriver.*tar.gz$")) | .browser_download_url' \
| wget -qi - -O /tmp/OpenTabletDriver/opentabletdriver.tar.gz && \
tar --strip-components=1 -xvzf /tmp/OpenTabletDriver/opentabletdriver.tar.gz -C /tmp/OpenTabletDriver && \
pkexec cp /tmp/OpenTabletDriver/etc/udev/rules.d/70-opentabletdriver.rules /etc/udev/rules.d/71-opentabletdriver.rules && \
rm -rf /tmp/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 opentabletdriver.service
elif [[ "${OPTION,,}" =~ ^uninstall ]]; then
echo "Uninstalling OpenTabletDriver..."
pkexec rm /etc/udev/rules.d/71-opentabletdriver.rules && \
flatpak --system remove -y flathub net.opentabletdriver.OpenTabletDriver
else
echo "Have a good day :)!"
fi
# Install and configure Incus
[group('Apps')]
install-incus:
#!/usr/bin/env bash
source /usr/lib/ujust/ujust.sh
CURRENT_IMAGE=$(rpm-ostree status -b --json | jq -r '.deployments[0]."container-image-reference"')
if ! grep -e "-dx" <<< $CURRENT_IMAGE ; then
echo "Developer mode is currently ${b}${red}Disabled${n}."
echo "Run \"ujust devmode\" to turn on Developer mode."
exit
fi
echo 'Installing and configuring Incus.'
/usr/libexec/aurora-incus
# Install Kubernetes CLI dev tools
[group('Apps')]
aurora-k8s:
#!/usr/bin/bash
echo "☸️🛠️ Adding Kubernetes command line tools..."
brew bundle --file /usr/share/ublue-os/homebrew/aurora-k8s.Brewfile
# alias for install-ai-tools
aurora-ai:
@ujust install-ai-tools
# Install AI tools
[group('Apps')]
install-ai-tools:
#!/usr/bin/bash
echo "🧠🤖 Adding AI tools..."
brew bundle --file /usr/share/ublue-os/homebrew/aurora-ai.Brewfile
# Setup and configure Sunshine Game Streaming host
[group('Apps')]
setup-sunshine ACTION="":
#!/usr/bin/bash
source /usr/lib/ujust/ujust.sh
SERVICE_STATE="$(systemctl is-enabled --user sunshine.service)"
OPTION={{ ACTION }}
if [ "$SERVICE_STATE" == "enabled" ]; then
SERVICE_STATE="${green}${b}Enabled${n}"
else
SERVICE_STATE="${red}${b}Disabled${n}"
fi
if [ "$OPTION" == "help" ]; then
echo "Usage: ujust setup-sunshine <option>"
echo " <option>: Specify the quick option to skip the prompt"
echo " Use 'enable' to enable the Sunshine service"
echo " Use 'disable' to disable the Sunshine service"
echo " Use 'portal' to open the Sunshine management portal"
echo " Use 'exit' to exit without making changes"
exit 0
elif [ "$OPTION" == "" ]; then
echo "Service is $SERVICE_STATE"
OPTION=$(Choose "Enable" "Disable" "Open Portal" "Exit")
fi
if [[ "${OPTION,,}" =~ ^enable ]]; then
systemctl enable --user --now sunshine.service
elif [[ "${OPTION,,}" =~ ^(remove|uninstall|disable) ]]; then
systemctl disable --user --now sunshine.service
elif [[ "${OPTION,,}" =~ ^(portal|open) ]]; then
echo "Opening Sunshine management portal..."
xdg-open https://localhost:47990
elif [[ "${OPTION,,}" =~ ^exit ]]; then
echo "Exiting without making changes."
exit 0
fi
# Toggle between Bazaar and Discover software stores
[group('Apps')]
toggle-software-store ACTION="":
#!/usr/bin/env bash
source /usr/lib/ujust/ujust.sh
discover_apps=(
"org.kde.discover.desktop"
"org.kde.discover.flatpak.desktop"
"org.kde.discover.urlhandler.desktop"
)
mkdir -p "$HOME/.local/share/applications"
discover_active=false
for app in "${discover_apps[@]}"; do
if [ -f "$HOME/.local/share/applications/${app}" ]; then
discover_active=true
break
fi
done
if [ "$discover_active" = true ]; then
CURRENT_STATE="discover"
CURRENT_STATE_PRETTY="${blue}${b}Discover${n}"
else
CURRENT_STATE="bazaar"
CURRENT_STATE_PRETTY="${green}${b}Bazaar${n}"
fi
OPTION={{ ACTION }}
if [ "$OPTION" == "help" ]; then
echo "Usage: ujust toggle-software-store <option>"
echo " <option>: Specify the quick option to skip the prompt"
echo " Use 'bazaar' to enable Bazaar (hide Discover)"
echo " Use 'discover' to enable Discover (hide Bazaar)"
exit 0
elif [ "$OPTION" == "" ]; then
echo "${bold}Software Store Toggle${normal}"
echo "Currently active: $CURRENT_STATE_PRETTY"
if [ "$CURRENT_STATE" == "discover" ]; then
OPTION=$(Choose "Switch to Bazaar" "Cancel")
else
OPTION=$(Choose "Switch to Discover" "Cancel")
fi
fi
if [[ "${OPTION,,}" =~ ^(switch.*bazaar|bazaar) ]]; then
echo "${green}${b}Switching to Bazaar...${n}"
# Remove Discover files from ~/.local (hides them)
for app in "${discover_apps[@]}"; do
if [ -f "$HOME/.local/share/applications/${app}" ]; then
rm "$HOME/.local/share/applications/${app}"
fi
done
# Remove discover notifier (might still exist from before we removed it from the image)
if [ -f "$HOME/.config/autostart/org.kde.discover.notifier.desktop" ]; then
rm "$HOME/.config/autostart/org.kde.discover.notifier.desktop"
fi
# Remove Bazaar override if it exists (shows Bazaar)
if [ -f "$HOME/.local/share/applications/io.github.kolunmi.Bazaar.desktop" ]; then
rm "$HOME/.local/share/applications/io.github.kolunmi.Bazaar.desktop"
fi
# discover could still be running
pkill -f DiscoverNotifier
# enable bazaar in krunner
kwriteconfig6 --file krunnerrc --group Plugins --key krunner_appstreamEnabled false
kwriteconfig6 --file krunnerrc --group Plugins --key bazaarrunnerEnabled true
systemctl --user restart plasma-krunner.service plasma-plasmashell.service
echo "${green}${b}Bazaar is now active${n}"
elif [[ "${OPTION,,}" =~ ^(switch.*discover|discover) ]]; then
echo "${blue}${b}Switching to Discover...${n}"
# Copy Discover files from /usr to ~/.local (shows them)
for app in "${discover_apps[@]}"; do
if [ -f "/usr/share/applications/${app}.disabled" ]; then
cp "/usr/share/applications/${app}.disabled" "$HOME/.local/share/applications/${app}"
fi
done
# bazaar is probably still running
pkill -f bazaar
# enable discover in krunner
kwriteconfig6 --file krunnerrc --group Plugins --key krunner_appstreamEnabled true
kwriteconfig6 --file krunnerrc --group Plugins --key bazaarrunnerEnabled false
systemctl --user restart plasma-krunner.service plasma-plasmashell.service
# Hide Bazaar by creating NoDisplay override
cp /usr/share/applications/io.github.kolunmi.Bazaar.desktop "$HOME/.local/share/applications/io.github.kolunmi.Bazaar.desktop"
desktop-file-edit --set-key=NoDisplay --set-value=true "$HOME/.local/share/applications/io.github.kolunmi.Bazaar.desktop"
echo "${blue}${b}Discover is now active${n}"
elif [[ "${OPTION,,}" =~ ^cancel ]]; then
echo "No changes made."
exit 0
fi

340
just/aurora-system.just Normal file
View file

@ -0,0 +1,340 @@
# vim: set ft=make :
########################
### aurora-system.just
########################
## Standardized verbs
# configure- = configure something that is pre-installed on the image
# install- = install something, no uninstall or configuration provided
# setup- = install something and also provide configuration and/or uninstallation options
# toggle- = turn something on/off, logic can be automatic or manual selection
# fix- = apply fix/patch/workaround for something
# foo = no verb is used for shortcuts or something deemed important enough to use a super memorable name
# Run a one minute system benchmark
[group('System')]
benchmark:
#!/usr/bin/env bash
source /usr/lib/ujust/ujust.sh
if ! type -P "stress-ng" &>/dev/null ; then
if gum confirm "Stress does not seem to be on your path, do you wish to install it?" ; then
set -eu
brew install stress-ng
brew link stress-ng
set +eu
else
exit 0
fi
fi
echo 'Running a 1 minute benchmark ...'
trap popd EXIT
pushd $(mktemp -d)
stress-ng --matrix 0 -t 1m --times
# Configure Aurora-CLI Terminal Experience with Brew
[group('System')]
aurora-cli:
@/usr/libexec/ublue-bling
# alias for install-fonts
aurora-fonts:
@ujust install-fonts
# Install fonts from brew
[group('System')]
install-fonts:
#!/usr/bin/bash
echo "Installing extra fonts..."
brew bundle --file /usr/share/ublue-os/homebrew/aurora-fonts.Brewfile
# alias for toggle-devmode
devmode:
@ujust toggle-devmode
# Toggle between Aurora and the Developer Experience
[group('System')]
toggle-devmode:
#!/usr/bin/env bash
source /usr/lib/ujust/ujust.sh
CURRENT_IMAGE=$(rpm-ostree status -b --json | jq -r '.deployments[0]."container-image-reference"')
if grep -q "/var/ublue-os/image" <<< $CURRENT_IMAGE ; then
bash -c "cat <<EOF
Before we can switch to the Aurora Developer Experience
the current system needs an update. Please run 'ujust update'
and reboot your system when the update is finished
EOF"
exit
fi
if /bin/grep -q "\-dx" <<< $CURRENT_IMAGE ; then
CURRENT_STATE="enabled"
else
CURRENT_STATE="disabled"
fi
echo "Developer mode is currently ${CURRENT_STATE}"
echo "Enable or Disable developer mode"
OPTION=$(Choose Enable Disable)
if [[ "${OPTION,,}" =~ ^enable ]]; then
if [ "$CURRENT_STATE" = "enabled" ] ; then
echo "You are already on a developer image"
exit 0
fi
echo "Rebasing to a developer image"
NEW_IMAGE=$(sed "s/aurora/aurora-dx/" <<< $CURRENT_IMAGE)
rpm-ostree rebase $NEW_IMAGE
echo -e "\nUse `ujust dx-group` to add your user to the correct groups and complete the installation"
fi
if [[ "${OPTION,,}" =~ ^disable ]]; then
if [ "$CURRENT_STATE" != "enabled" ]; then
echo "You are currently not on a developer image"
exit 0
fi
echo "Rebasing to a non developer image"
# Remove -dx suffix from image, specifies ":" to mark the end of the image name
NEW_IMAGE=$(sed "s/\-dx//" <<< $CURRENT_IMAGE)
rpm-ostree rebase $NEW_IMAGE
fi
if gum confirm "Do you want to also install the default development flatpaks?" ; then
ujust install-system-flatpaks 1
fi
if gum confirm "Do you want to install extra fonts?" ; then
ujust install-fonts
fi
# Ptyxis terminal transparency
[group('System')]
ptyxis-transparency opacity="0.95":
#!/usr/bin/env bash
set -euxo pipefail
if [[ -n "$(echo "{{ opacity }}" | grep -v '^[.0-9]*$')" ]]; then
printf "Value must be numeric: %s.\n" "{{ opacity }}"
elif [[ $(echo "0<{{ opacity }} && 1>={{ opacity }}" | bc -q) -eq 1 ]]; then
raw="$(gsettings get org.gnome.Ptyxis profile-uuids)"
uuids="$(sed -En 's|[^0-9a-z]*||g; s|([0-9a-z]{32})|\1\n|gp' <<<${raw})"
for i in ${uuids}; do
location="org.gnome.Ptyxis.Profile:/org/gnome/Ptyxis/Profiles/${i}/"
gsettings set "${location}" opacity "{{ opacity }}"; done
printf "Ptyxis opacity is now %s.\n" "{{ opacity }}"
else
printf "Value must be greater than 0 and less than or equal to 1: %s.\n" "{{ opacity }}"
fi
# Configure docker,incus-admin,libvirt, container manager, serial permissions
[group('System')]
dx-group:
#!/usr/bin/pkexec bash
append_group() {
local group_name="$1"
if ! grep -q "^$group_name:" /etc/group; then
echo "Appending $group_name to /etc/group"
grep "^$group_name:" /usr/lib/group | sudo tee -a /etc/group > /dev/null
fi
}
GROUPS_ADD=("docker" "incus-admin" "libvirt" "dialout")
for GROUP_ADD in "${GROUPS_ADD[@]}" ; do
append_group $GROUP_ADD
usermod -aG $GROUP_ADD $USER
done
echo "Reboot system and log back in to use docker, libvirt, incus, and serial connections."
# Install system flatpaks for rebasers
[group('System')]
install-system-flatpaks $dx="dynamic":
#!/usr/bin/env bash
TARGET_FLATPAK_FILE="${TARGET_FLATPAK_FILE:-/etc/ublue-os/system-flatpaks.list}"
TARGET_DEVMODE_FILE="${TARGET_DEVMODE_FILE:-/etc/ublue-os/system-flatpaks-dx.list}"
case "$dx" in
"0"|"1")
ADD_DEVMODE="$dx"
;;
"dynamic")
if [[ $(jq '."image-flavor"' /usr/share/ublue-os/image-info.json) =~ dx ]] ; then
ADD_DEVMODE=1
fi
;;
*)
echo "Unsupported option"
exit 1
;;
esac
flatpak remote-add --if-not-exists --system flathub https://flathub.org/repo/flathub.flatpakrepo
# Disable Fedora Flatpak remotes
for remote in fedora fedora-testing; do
if flatpak remote-list | grep -q "$remote"; then
flatpak remote-delete "$remote"
fi
done
xargs flatpak --system -y install --reinstall --or-update < $TARGET_FLATPAK_FILE
if [ "$ADD_DEVMODE" == "1" ] ; then
xargs flatpak --system -y install --reinstall --or-update < $TARGET_DEVMODE_FILE
fi
# Configure grub bootmenu visibility
[group('System')]
configure-grub:
@/usr/libexec/configure-grub.sh
alias switch-stream := rebase-helper
alias switch-streams := rebase-helper
alias rollback-helper := rebase-helper
# Rebase assistant
[group('System')]
rebase-helper:
@/usr/bin/ublue-rollback-helper
# Toggle tailscale
[group('System')]
toggle-tailscale:
#!/bin/bash
set -euo pipefail
source /usr/lib/ujust/ujust.sh
source /usr/lib/os-release
TAILSCALED_STATUS="$(systemctl is-enabled tailscaled || true )"
if [ "$TAILSCALED_STATUS" == "enabled" ] || [ "$TAILSCALED_STATUS" == "disabled" ]; then
TAILSCALED="Installed"
else
TAILSCALED="Not Found"
echo "${b}${red}Unable to enable or disable Tailscale.${n}"
echo "The tailscaled service must be present and either enabled or disabled to run this script."
echo "tailscaled service status: $TAILSCALED_STATUS"
fi
if [ "$TAILSCALED" == "Installed" ]; then
echo "Enable or disable Tailscale?"
TS_OPTION=$(Choose Enable Disable)
if [ "$TS_OPTION" = "Enable" ]; then
systemctl enable --now tailscaled
TAILSCALED_STATUS="$(systemctl is-enabled tailscaled || true )"
if [ "$TAILSCALED_STATUS" == "enabled" ]; then
echo "${b}${green}Tailscale is enabled.${n}"
echo "If this is your first time using Tailscale, setup is necessary."
echo "Refer to Tailscale's documentation at https://tailscale.com/kb/1346/start."
fi
elif [ "$TS_OPTION" = "Disable" ]; then
systemctl disable --now tailscaled
TAILSCALED_STATUS="$(systemctl is-enabled tailscaled || true )"
if [ "$TAILSCALED_STATUS" == "disabled" ]; then
echo "${b}${red}Tailscale is disabled.${n}"
fi
fi
fi
# Automatically download Bluefin's monthly dinosaur wallpapers
[group('System')]
toggle-dinosaurs hemisphere="north":
#!/bin/bash
source /usr/lib/ujust/ujust.sh
if [[ "{{ hemisphere }}" != "north" && "{{ hemisphere }}" != "south" ]]; then
echo "Error: Invalid hemisphere '{{ hemisphere }}'. Must be 'north' or 'south'."
exit 1
fi
DINOSAUR_STATUS="$(systemctl --user is-enabled bluefin-wallpaper@{{ hemisphere }}.service 2>/dev/null || echo 'disabled')"
echo "Bluefin dinosaur wallpapers ({{ hemisphere }}ern hemisphere) are currently: $DINOSAUR_STATUS"
if [ "$DINOSAUR_STATUS" == "enabled" ]; then
echo "Disable Bluefin dinosaur wallpapers?"
OPTION=$(Choose Disable Cancel)
if [ "$OPTION" = "Disable" ]; then
systemctl --user disable --now bluefin-wallpaper@{{ hemisphere }}.service
echo "${b}${red}Bluefin dinosaur wallpapers ({{ hemisphere }}ern hemisphere) disabled.${n}"
echo "Wallpaper files remain in ~/.local/share/wallpapers/Bluefin/"
fi
else
echo "Enable Bluefin dinosaur wallpapers for the {{ hemisphere }}ern hemisphere?"
OPTION=$(Choose Enable Cancel)
if [ "$OPTION" = "Enable" ]; then
mkdir -p ~/.local/share/wallpapers/Bluefin
systemctl --user enable --now bluefin-wallpaper@{{ hemisphere }}.service
sleep 1
if systemctl --user is-active --quiet bluefin-wallpaper@{{ hemisphere }}.service; then
echo "${b}${green}Bluefin dinosaur wallpapers ({{ hemisphere }}ern hemisphere) enabled!${n}"
echo "Wallpapers will be downloaded to ~/.local/share/wallpapers/Bluefin/"
echo "The wallpaper will update automatically each month."
filename="$HOME/.local/share/wallpapers/Bluefin/{{ hemisphere }}.avif"
qdbus-qt6 org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript "
var allDesktops = desktops();
for (var i = 0; i < allDesktops.length; i++) {
var d = allDesktops[i];
d.wallpaperPlugin = \"com.github.zzag.dynamic\";
d.currentConfigGroup = Array(\"Wallpaper\", \"com.github.zzag.dynamic\", \"General\");
d.writeConfig(\"Image\", \"file:///${filename}\");
}
"
else
echo "${b}${red}Failed to start bluefin-wallpaper service.${n}"
echo "Check the service status with:"
echo " systemctl --user status bluefin-wallpaper@{{ hemisphere }}.service"
fi
fi
fi
# Configure Boot to Windows desktop entry
[group('System')]
configure-boot-to-windows:
mkdir -p $HOME/.local/share/applications
cp -r /usr/share/applications/boot-to-windows.desktop $HOME/.local/share/applications
sed -i 's/Hidden=true/Hidden=false/' $HOME/.local/share/applications/boot-to-windows.desktop
# Toggle IWD
[group('System')]
toggle-iwd:
#!/usr/bin/bash
echo -e "This script manages enabling or disabling iwd as a replacement for wpa_supplicant for Wi-Fi networking."
echo -e "Enabling this can improve throughput, mesh networking, and reduce latency increases when scanning for networks"
echo -e "Disabling this can improve corporate or eduroam network compatibility"
echo -e ""
echo -e "WARNING: Changing this will remove all saved wifi networks"
get_current_status() {
if [[ -f "/etc/NetworkManager/conf.d/iwd.conf" ]]; then
echo "Enabled"
else
echo "Disabled"
fi
}
remove_saved_networks() {
nmcli -t -f NAME connection show | while read -r line; do sudo nmcli connection delete "$line"; done
}
enable_iwd() {
sudo mkdir -p "/etc/NetworkManager/conf.d/"
sudo rm -f "/etc/NetworkManager/conf.d/iwd.conf"
printf "[device]\nwifi.backend=iwd" | sudo tee /etc/NetworkManager/conf.d/iwd.conf > /dev/null
remove_saved_networks
echo -e "iwd enabled. Reboot required to apply changes."
}
disable_iwd() {
sudo rm -f "/etc/NetworkManager/conf.d/iwd.conf"
remove_saved_networks
echo -e "iwd disabled. Reboot required to apply changes."
}
# Display current status
current_status=$(get_current_status)
echo -e "\nCurrent iwd status: $current_status\n"
# Prompt user for action
CHOICE=$(gum choose "Enable iwd" "Disable iwd" "Exit without changes")
case "$CHOICE" in
"Enable iwd")
enable_iwd
;;
"Disable iwd")
disable_iwd
;;
"Exit without changes")
echo "No changes made."
;;
*)
echo "Invalid choice. Exiting without changes."
;;
esac

76
logos/aurora-banner.svg Normal file
View file

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="1536"
height="450"
viewBox="0 0 1024 300"
version="1.1"
id="svg1"
sodipodi:docname="auroralogo-plain.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="0.44894182"
inkscape:cx="556.86504"
inkscape:cy="384.23687"
inkscape:window-width="1745"
inkscape:window-height="1032"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg1" />
<defs
id="defs1">
<linearGradient
id="linearGradient9">
<stop
offset="0"
style="stop-color:#ffbe8f;stop-opacity:1;"
id="stop5" />
<stop
offset="0.29142818"
style="stop-color:#b64d5f;stop-opacity:1;"
id="stop6" />
<stop
offset="0.54470932"
style="stop-color:#6d4793;stop-opacity:1;"
id="stop7" />
<stop
offset="0.75749785"
style="stop-color:#4f57b0;stop-opacity:1;"
id="stop8" />
<stop
offset="1"
style="stop-color:#4075bf;stop-opacity:1;"
id="stop9" />
</linearGradient>
<radialGradient
xlink:href="#linearGradient9"
id="radialGradient23"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(20.056589,6.5074866e-7,-0.12820521,5.8733108,-470.73343,-461.6729)"
cx="24.299227"
cy="129.68373"
fx="24.299227"
fy="129.68373"
r="51.055538" />
</defs>
<path
id="path18"
style="font-weight:596;font-size:31.4035px;font-family:'Red Hat Display';-inkscape-font-specification:'Red Hat Display weight=596';font-variation-settings:normal;letter-spacing:-1.2267px;display:inline;vector-effect:none;fill:url(#radialGradient23);fill-opacity:1;stroke:none;stroke-width:13.7778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
d="m 255.47005,0.01041667 c -5.66688,-0.188343 -11.2333,2.23421843 -14.96614,6.78776043 L 0,300 69.68099,273.8763 109.67578,225.07292 c 15.98068,-4.03012 39.98444,-12.96525 68.58984,-25.77604 29.40765,-13.1701 60.02633,-28.83414 88.22527,-45.20443 7.1872,-4.17238 14.01063,-8.26918 20.50911,-12.28906 17.28712,-10.69358 35.71075,-23.64975 51.11198,-37.83204 9.12349,-8.401388 17.35224,-17.384408 23.64844,-26.726558 5.9967,-8.89777 10.41776,-18.389558 11.96224,-28.154948 0.674,-4.40135 0.90042,-8.54804 0.66927,-12.43099 -0.23095,-3.88008 -0.9184,-7.481778 -2.0599,-10.779948 -1.14906,-3.32006 -2.73129,-6.252983 -4.67448,-8.795573 -1.96147,-2.566485 -4.2264,-4.652202 -6.65495,-6.329427 -4.95935,-3.4250728 -10.57137,-5.1328148 -15.85807,-5.9544268 -5.69505,-0.885131 -11.54318,-0.821381 -16.79167,-0.390625 -9.07343,0.744627 -17.70288,2.7104425 -23.26822,4.0859375 -2.65688,0.656687 -5.1233,1.32754 -7.33334,1.9687503 -11.80225,3.424008 -13.8173,4.975759 -13.83724,5.152343 -1e-5,6.63e-4 -4e-5,0.0033 0,0.0039 v 0.0013 0.0013 c 0.0913,0.290051 3.24793,-0.514272 14.5,-1.994792 2.24009,-0.294775 4.73497,-0.583636 7.39063,-0.817708 5.64587,-0.49759 14.08393,-0.841116 22.43359,0.148437 4.85837,0.575782 9.71042,1.606984 13.92969,3.317709 3.97059,1.6099 7.02785,3.679803 9.05469,6.152343 0.96342,1.17527 1.67416,2.414557 2.18229,3.735677 0.49891,1.297151 0.83224,2.751211 0.98307,4.40625 0.15092,1.65563 0.12746,3.606476 -0.15885,5.903646 -0.28821,2.31284 -0.84389,4.987375 -1.76302,8.078125 -1.69812,5.47398 -5.17855,11.489797 -10.54818,18.010417 -5.62139,6.82634 -12.98904,13.813907 -21.61068,20.822917 -14.04197,11.41547 -30.73116,22.340394 -46.88021,32.079424 V 18.597656 c -0.008,-7.857321 -4.93681,-14.8657545 -12.31901,-17.5117185 -1.84573,-0.66121 -3.74906,-1.01272683 -5.63802,-1.07552083 z M 236.26953,70.596354 v 65.291666 c -23.23009,11.74062 -47.7187,22.56659 -71.36849,32.53386 -4.60787,1.94198 -9.07612,3.80763 -13.38932,5.60026 z m 328.08985,47.885416 c -19.96871,3e-5 -36.68018,8.19484 -47.54818,22.53516 V 121.99349 H 482.85286 V 273.88151 H 516.8112 V 171.16146 c 8.83025,-17.55959 25.19715,-27.10779 44.83203,-26.92969 4.66226,0.0419 11.3531,1.27555 16.85286,2.59766 5.66412,-7.61303 11.22647,-14.82183 19.16407,-20.68099 -10.63582,-3.92734 -23.21421,-7.66669 -33.30078,-7.66667 z m 293.92187,0 c -19.96867,4e-5 -36.67892,8.19485 -47.54687,22.53516 v -19.02344 l -33.95964,0.73177 v 151.15625 h 33.95964 V 171.16146 c 8.8303,-17.55959 25.19709,-27.10779 44.83203,-26.92969 0.91818,0.008 1.86235,0.0506 2.82942,0.11979 6.50677,-8.48824 14.29837,-15.7197 23.10157,-21.6263 -7.94785,-2.42969 -16.18778,-4.2435 -23.21615,-4.24349 z m -190.50521,0.58203 c -50.26447,0 -90,35.72281 -90,79.03646 0,43.31365 39.73553,77.26172 90,77.26172 50.26446,0 90,-33.94807 90,-77.26172 0,-43.31365 -39.73554,-79.03646 -90,-79.03646 z m 280.48568,0.58724 c -33.79268,0 -61.55653,12.8519 -78.42318,36.02344 l 18.66537,13.20703 c 19.44622,-17.85987 39.04278,-24.64974 55.0052,-24.64974 27.50957,0 47.20573,10.2462 47.20573,31.31771 v 15.80469 c -14.26432,-5.56053 -35.05751,-8.48568 -51.69922,-8.48568 -43.47187,0 -71.52994,19.03617 -71.52994,47.13151 0,26.9247 27.71934,45.36198 65.07812,45.36198 21.05676,0 42.86785,-6.7494 58.15104,-17.28516 v 15.80469 H 1024 V 172.03906 c 0,-33.94854 -41.94561,-52.38802 -75.73828,-52.38802 z m -526.33203,2.34245 v 126.42839 h -42.45313 c -26.49073,0 -43.13151,-14.63539 -43.13151,-38.04818 v -83.82552 c -10.87101,8.84428 -22.38704,16.9454 -33.6237,24.18099 v 64.61979 c 0,34.53386 27.50632,58.53255 67.58204,58.53255 h 51.6263 33.95963 V 121.99349 Z m 245.84635,22.82552 c 31.58511,0 56.71485,24.30794 56.71485,53.28125 0,28.97333 -25.12974,51.50521 -56.71485,51.50521 -31.5851,0 -56.72005,-22.53188 -56.72005,-51.50521 0,-28.97331 25.13495,-53.28125 56.72005,-53.28125 z M 273.42708,168.5026 c -9.94975,5.75832 -20.16599,11.41157 -30.51823,16.90495 l -6.63932,3.52604 v 84.94271 h 37.15755 z m 668.30469,34.5586 c 17.32088,0 36.07732,2.92476 48.98307,9.36328 v 25.16927 c -12.56617,9.65777 -32.00139,16.11068 -50.34114,16.11068 -23.09451,0 -40.28125,-9.95133 -40.28125,-24.29167 0,-14.92564 16.84677,-26.35156 41.63932,-26.35156 z" />
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="256"
height="256"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1">
<style
type="text/css"
id="current-color-scheme">.ColorScheme-Text { color:#232629; }</style>
</defs>
<path
class="ColorScheme-Text"
d="M 128,10.785156 C 63.264512,10.785109 10.785105,63.264512 10.785156,128 c -1.9e-5,24.11851 7.284619,46.53621 19.773438,65.17188 L -0.06054687,230.44727 47.080078,212.79883 C 68.118833,232.88113 96.618775,245.21486 128,245.21484 192.73548,245.21488 245.21489,192.73548 245.21484,128 c 1e-5,-13.60686 -2.31849,-26.67196 -6.58203,-38.822266 3.26453,-3.519699 6.22054,-7.153021 8.72852,-10.86914 4.10135,-6.077056 7.12532,-12.558885 8.18164,-19.228516 0.46101,-3.006063 0.61512,-5.838234 0.45703,-8.490234 -0.15796,-2.650044 -0.6275,-5.11067 -1.4082,-7.363282 -0.78589,-2.267555 -1.86825,-4.271259 -3.19727,-6.007812 -1.34151,-1.752876 -2.89176,-3.176743 -4.55273,-4.322266 -3.39188,-2.339279 -7.22994,-3.505256 -10.84571,-4.066406 -3.89504,-0.604532 -7.89475,-0.561779 -11.48437,-0.267578 -6.20564,0.508564 -12.10773,1.851571 -15.91406,2.791016 -1.81713,0.448487 -3.5041,0.905812 -5.01563,1.34375 -2.1579,0.625172 -3.83568,1.16051 -5.13867,1.609375 C 178.83363,19.539958 154.43859,10.785137 128,10.785156 Z m -0.69922,10.236328 c 13.75888,3e-6 26.91023,2.596873 38.99219,7.328125 -0.67415,0.541731 -1.29891,1.1582 -1.86328,1.845703 L 36.988281,185.34375 C 26.144611,168.26641 20.320306,148.38829 20.320312,128 20.320322,68.917049 68.217828,21.021499 127.30078,21.021484 Z m 88.76758,12.949219 c 2.6393,-0.01665 5.50992,0.09372 8.36523,0.431641 3.32282,0.393272 6.64165,1.097224 9.52735,2.265625 2.71562,1.099539 4.80518,2.512456 6.1914,4.201172 0.65891,0.802688 1.14661,1.650425 1.49414,2.552734 0.34122,0.885931 0.56872,1.879399 0.67188,3.009766 0.10322,1.130778 0.0864,2.462314 -0.10938,4.03125 -0.19713,1.579643 -0.57647,3.406637 -1.20507,5.517578 -1.1614,3.738654 -3.54237,7.847286 -7.21485,12.300781 -0.92473,1.121397 -1.91835,2.25003 -2.97656,3.382812 -7.73915,-14.093681 -18.29221,-26.424452 -30.90234,-36.234374 1.15493,-0.168188 2.51917,-0.359314 4.125,-0.570313 1.53207,-0.201328 3.23838,-0.398726 5.05468,-0.558594 1.93071,-0.169924 4.33922,-0.313424 6.97852,-0.330078 z m -29.12305,5.207031 c 15.06249,10.134834 27.40769,24.000011 35.70899,40.271485 -1.17376,1.016321 -2.38985,2.034145 -3.64453,3.052734 -9.60379,7.796608 -21.01956,15.260472 -32.06446,21.912107 z M 161.5332,73.769531 v 44.591799 c -15.88787,8.01869 -32.63758,15.41319 -48.8125,22.2207 -3.15091,1.32612 -6.20484,2.60008 -9.15429,3.82422 z m 68.39649,23.935547 c 2.83072,9.605002 4.34961,19.773002 4.34961,30.294922 -1e-5,59.08295 -47.89557,106.97851 -106.97852,106.97852 -27.666031,0 -54.054961,-10.70457 -73.816405,-29.54493 l 21.466797,-26.16015 c 10.929741,-2.75252 27.345928,-8.85391 46.910158,-17.60352 20.11292,-8.99499 41.05555,-19.6943 60.34179,-30.875 4.91558,-2.84967 9.58281,-5.64705 14.02735,-8.39258 11.35648,-7.01522 23.42914,-15.45787 33.69922,-24.697262 z m -42.98438,42.931642 c -6.80497,3.93285 -13.79083,7.79497 -20.87109,11.54687 l -4.54102,2.40821 v 58.01367 h 25.41211 z"
fill="currentColor"
id="path1"
style="stroke-width:0.682608" />
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View file

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="375"
height="300"
viewBox="0 0 375 300"
version="1.1"
id="svg1"
xml:space="preserve"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs1"><linearGradient
id="linearGradient4"><stop
style="stop-color:#5bcefa;stop-opacity:1;"
offset="0"
id="stop4" /><stop
style="stop-color:#5bcefa;stop-opacity:1;"
offset="0.2"
id="stop10" /><stop
style="stop-color:#f5a9b8;stop-opacity:1;"
offset="0.2"
id="stop6" /><stop
style="stop-color:#f5a9b8;stop-opacity:1;"
offset="0.40000001"
id="stop11" /><stop
style="stop-color:#e5e5e5;stop-opacity:1;"
offset="0.40000001"
id="stop7" /><stop
style="stop-color:#e5e5e5;stop-opacity:1;"
offset="0.60000002"
id="stop12" /><stop
style="stop-color:#f5a9b8;stop-opacity:1;"
offset="0.60000002"
id="stop8" /><stop
style="stop-color:#f5a9b8;stop-opacity:1;"
offset="0.80000001"
id="stop13" /><stop
style="stop-color:#5bcefa;stop-opacity:1;"
offset="0.80000001"
id="stop9" /><stop
style="stop-color:#5bcefa;stop-opacity:1;"
offset="1"
id="stop14" /><stop
style="stop-color:#5bcefa;stop-opacity:1;"
offset="1"
id="stop5" /></linearGradient><linearGradient
xlink:href="#linearGradient4"
id="linearGradient5"
x1="187.5"
y1="300"
x2="187.5"
y2="-0.0004365324"
gradientUnits="userSpaceOnUse" /></defs><path
id="path23"
style="font-variation-settings:normal;baseline-shift:baseline;display:inline;overflow:visible;vector-effect:none;fill:url(#linearGradient5);fill-opacity:1;stroke:none;stroke-width:13.7874;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;enable-background:accumulate;stop-color:#000000"
d="M 255.82422,0.009771 C 250.14947,-0.178572 244.57591,2.24529 240.83788,6.798832 L -2.0163962e-6,300 69.777341,273.87696 109.82812,225.07227 c 16.00287,-4.03012 40.04044,-12.96459 68.68556,-25.77539 29.44848,-13.17009 60.10955,-28.83283 88.34765,-45.20313 7.19717,-4.17237 14.0296,-8.26918 20.5371,-12.28906 17.31112,-10.69357 35.76098,-23.6517 51.1836,-37.83399 9.13615,-8.401392 17.3767,-17.384402 23.68164,-26.726552 6.00502,-8.89777 10.4319,-18.38892 11.97851,-28.15431 0.67494,-4.40135 0.90139,-8.54868 0.66992,-12.43163 -0.23127,-3.88008 -0.91946,-7.48113 -2.0625,-10.7793 -1.15065,-3.32006 -2.73575,-6.25429 -4.68164,-8.79688 -1.96419,-2.566481 -4.23215,-4.650895 -6.66407,-6.32812 -4.96623,-3.425073 -10.58681,-5.133464 -15.88084,-5.955077 -5.70296,-0.88513 -11.55869,-0.821411 -16.81447,-0.390655 -9.08602,0.744627 -17.7277,2.712396 -23.30077,4.087891 -2.66057,0.656687 -5.12869,1.325585 -7.34181,1.966795 -11.81863,3.424008 -13.83746,4.975755 -13.85741,5.152339 v 0.002 0.0019 0.002 0.002 c 0.0914,0.290052 3.25184,-0.515581 14.51953,-1.996101 2.2432,-0.294776 4.74103,-0.582315 7.40039,-0.816387 5.65371,-0.49759 14.10359,-0.84111 22.46483,0.148443 4.86513,0.575782 9.72411,1.605687 13.94923,3.316412 3.97611,1.6099 7.0387,3.67979 9.06836,6.15233 0.96475,1.17526 1.6767,2.41521 2.18555,3.73633 0.49959,1.29715 0.83329,2.75122 0.98433,4.40626 0.15114,1.65563 0.12654,3.60517 -0.16017,5.90234 -0.28861,2.31285 -0.84525,4.98932 -1.76564,8.08007 -1.70047,5.47398 -5.18541,11.48915 -10.56249,18.00977 -5.6292,6.82634 -13.00702,13.81326 -21.64063,20.82227 -14.06146,11.41546 -30.77384,22.341042 -46.94531,32.080072 V 18.597728 c -0.008,-7.857317 -4.94348,-14.865756 -12.33593,-17.51172 -1.84829,-0.66121 -3.75491,-1.013372 -5.64649,-1.076166 z m -19.22655,70.587887 v 65.291012 c -23.26237,11.74064 -47.78418,22.56595 -71.46681,32.53321 -4.6137,1.94176 -9.08756,3.80719 -13.40625,5.59961 z m 37.20897,97.904302 c -9.96356,5.75831 -20.19394,11.41287 -30.56055,16.90624 l -6.64842,3.5254 v 84.94336 h 37.20897 z" /></svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

View file

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="375"
height="300"
viewBox="0 0 375 300"
version="1.1"
id="svg1"
sodipodi:docname="auroralogo-aonly-w.svg"
xml:space="preserve"
inkscape:export-filename="color alts/auroralogo-t.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"><inkscape:page
x="0"
y="0"
width="375"
height="300"
id="page2"
margin="0"
bleed="0" /></sodipodi:namedview><defs
id="defs1"><linearGradient
id="linearGradient4"
inkscape:collect="always"><stop
style="stop-color:#770088;stop-opacity:1;"
offset="0"
id="stop4" /><stop
style="stop-color:#770088;stop-opacity:1;"
offset="0.17"
id="stop33" /><stop
style="stop-color:#004cff;stop-opacity:1;"
offset="0.17"
id="stop14" /><stop
style="stop-color:#004cff;stop-opacity:1;"
offset="0.33000001"
id="stop34" /><stop
style="stop-color:#028121;stop-opacity:1;"
offset="0.33000001"
id="stop15" /><stop
style="stop-color:#028121;stop-opacity:1;"
offset="0.5"
id="stop35" /><stop
style="stop-color:#ffee00;stop-opacity:1;"
offset="0.5"
id="stop16" /><stop
style="stop-color:#ffee00;stop-opacity:1;"
offset="0.66000003"
id="stop36" /><stop
style="stop-color:#ff8d00;stop-opacity:1;"
offset="0.66000003"
id="stop17" /><stop
style="stop-color:#ff8d00;stop-opacity:1;"
offset="0.82999998"
id="stop37" /><stop
style="stop-color:#e50000;stop-opacity:1;"
offset="0.82999998"
id="stop19" /><stop
style="stop-color:#e50000;stop-opacity:1;"
offset="1"
id="stop5" /></linearGradient><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4"
id="linearGradient5"
x1="187.5"
y1="300"
x2="187.5"
y2="-0.0004365324"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.99999854,0,4.3653175e-4)" /></defs><path
id="path23"
style="font-variation-settings:normal;baseline-shift:baseline;display:inline;overflow:visible;vector-effect:none;fill:url(#linearGradient5);fill-opacity:1;stroke:none;stroke-width:13.7874;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;enable-background:accumulate;stop-color:#000000"
d="M 255.82422,0.01020752 C 250.14947,-0.17813521 244.57591,2.2457233 240.83788,6.7992586 L -2.0163962e-6,300 69.777341,273.877 109.82812,225.07238 c 16.00287,-4.03012 40.04044,-12.96457 68.68556,-25.77535 29.44848,-13.17007 60.10955,-28.83279 88.34765,-45.20307 7.19717,-4.17236 14.0296,-8.26917 20.5371,-12.28904 17.31112,-10.69355 35.76098,-23.65167 51.1836,-37.83393 9.13615,-8.401385 17.3767,-17.384381 23.68164,-26.726518 6.00502,-8.897757 10.4319,-18.388893 11.97851,-28.154269 0.67494,-4.401343 0.90139,-8.548667 0.66992,-12.431612 -0.23127,-3.880074 -0.91946,-7.481119 -2.0625,-10.779284 -1.15065,-3.320055 -2.73575,-6.254281 -4.68164,-8.796867 -1.96419,-2.566478 -4.23215,-4.650889 -6.66407,-6.328111 -4.96623,-3.4250681 -10.58681,-5.1334566 -15.88084,-5.9550685 -5.70296,-0.8851287 -11.55869,-0.8214098 -16.81447,-0.3906544 -9.08602,0.7446259 -17.7277,2.7123921 -23.30077,4.0878851 -2.66057,0.656686 -5.12869,1.325583 -7.34181,1.9667918 -11.81863,3.424003 -13.83746,4.975748 -13.85741,5.152332 v 0.002 0.0019 0.002 0.002 c 0.0914,0.290051 3.25184,-0.51558 14.51953,-1.996098 2.2432,-0.294776 4.74103,-0.582314 7.40039,-0.816386 5.65371,-0.497589 14.10359,-0.841109 22.46483,0.148443 4.86513,0.575781 9.72411,1.605684 13.94923,3.316407 3.97611,1.609898 7.0387,3.679784 9.06836,6.152321 0.96475,1.175258 1.6767,2.415206 2.18555,3.736324 0.49959,1.297149 0.83329,2.751216 0.98433,4.406254 0.15114,1.655628 0.12654,3.605165 -0.16017,5.902331 -0.28861,2.312847 -0.84525,4.989313 -1.76564,8.080059 -1.70047,5.473972 -5.18541,11.489133 -10.56249,18.009743 -5.6292,6.826331 -13.00702,13.81324 -21.64063,20.82224 -14.06146,11.415444 -30.77384,22.341007 -46.94531,32.080027 V 18.598137 C 273.79857,10.740832 268.86309,3.7324031 261.47064,1.086443 259.62235,0.42523391 257.71573,0.07307243 255.82415,0.01027852 Z M 236.59767,70.597992 v 65.290918 c -23.26237,11.74062 -47.78418,22.56592 -71.46681,32.53316 -4.6137,1.94176 -9.08756,3.80719 -13.40625,5.5996 z m 37.20897,97.904158 c -9.96356,5.7583 -20.19394,11.41285 -30.56055,16.90622 l -6.64842,3.52539 V 273.877 h 37.20897 z" /></svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="375"
height="300"
viewBox="0 0 375 300"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<g
id="layer1"
transform="matrix(1.0013883,0,0,1,-19.455761,-83.934972)"
style="fill:#ffffff">
<g
id="g26"
style="font-variation-settings:normal;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.37239;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
transform="matrix(10.028295,0,0,10.050305,-215.82639,-478.32543)">
<path
id="path23"
style="font-variation-settings:normal;baseline-shift:baseline;display:inline;overflow:visible;opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.37239;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
d="m 48.934071,55.945626 c -0.565089,-0.01874 -1.120185,0.222336 -1.492416,0.675411 L 23.45914,85.79445 30.407553,83.195126 47.019459,62.96897 v 7.375261 l 3.7052,-2.072225 v -10.47688 c -8.01e-4,-0.781799 -0.492212,-1.479257 -1.228349,-1.742529 -0.184052,-0.06579 -0.373876,-0.100723 -0.562239,-0.106971 z m 1.790588,16.764868 c -0.992167,0.572949 -2.010922,1.13548 -3.043225,1.682068 l -0.661975,0.350883 v 8.451681 h 3.7052 z" />
<path
style="font-variation-settings:normal;display:inline;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.37239;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
d="m 31.950056,77.606851 c -0.0085,-0.196635 -0.460355,-0.722383 -0.05259,-1.179767 0.724959,-0.81317 3.772655,-1.944635 8.005246,-3.724563 2.891826,-1.216098 5.909475,-2.560627 8.667206,-4.043954 0.698647,-0.375788 1.359514,-0.749374 1.979348,-1.120019 1.664392,-0.995264 3.399089,-2.120065 4.850226,-3.297188 0.859732,-0.697393 1.594371,-1.392607 2.154924,-2.071824 0.535448,-0.648798 0.882549,-1.247368 1.051881,-1.792026 0.09165,-0.307528 0.147063,-0.57368 0.175805,-0.803807 0.02855,-0.228567 0.03092,-0.422589 0.01587,-0.587324 -0.01504,-0.164675 -0.04828,-0.309356 -0.09803,-0.438421 -0.05067,-0.131451 -0.121594,-0.254847 -0.217663,-0.371785 -0.202112,-0.246017 -0.506971,-0.451965 -0.90291,-0.612149 -0.420736,-0.170216 -0.904522,-0.272762 -1.388989,-0.330055 -0.83261,-0.09846 -1.674049,-0.06428 -2.237043,-0.01477 -0.264817,0.02329 -0.513582,0.05204 -0.736959,0.08137 -1.122032,0.147312 -1.436831,0.227344 -1.445882,0.198487 -0.0042,-0.01345 0.184245,-0.167266 1.379821,-0.513361 0.220381,-0.0638 0.466279,-0.130467 0.731217,-0.195804 0.554964,-0.136861 1.415444,-0.33255 2.320227,-0.406639 0.523368,-0.04286 1.106523,-0.04917 1.674421,0.0389 0.527179,0.08175 1.086838,0.251627 1.581374,0.59242 0.24217,0.166883 0.468063,0.374418 0.663656,0.629782 0.193771,0.252986 0.351545,0.544818 0.466127,0.875162 0.113826,0.328167 0.182372,0.686581 0.205402,1.072647 0.02305,0.386351 4.65e-4,0.798993 -0.06675,1.236925 -0.154012,0.971651 -0.594866,1.915956 -1.192844,2.801279 -0.627843,0.929539 -1.448447,1.823346 -2.358221,2.65928 -1.535778,1.41113 -3.372887,2.700385 -5.096721,3.76439 -0.648015,0.399976 -1.328479,0.807599 -2.045171,1.222748 -2.811938,1.628836 -5.865163,3.187369 -8.797631,4.497786 -4.280655,1.912874 -7.528028,2.95724 -8.58874,2.787125 -0.6075,-0.09743 -0.584007,-0.79903 -0.696616,-0.954844 z"
id="path25" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="256"
height="256"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1">
<style
type="text/css"
id="current-color-scheme">.ColorScheme-Text { color:#232629; }</style>
</defs>
<path
class="ColorScheme-Text"
d="m 174.63882,25.615196 c -3.87363,-0.128566 -7.67821,1.525989 -10.22981,4.634287 L 0.01044217,230.39177 47.641215,212.55992 74.98032,179.24531 c 10.92372,-2.75102 27.33202,-8.84978 46.8855,-17.59458 20.10185,-8.99004 41.03143,-19.68159 60.30705,-30.85613 4.91288,-2.84811 9.57676,-5.64464 14.01886,-8.38865 11.81676,-7.29955 24.41083,-16.14491 34.93848,-25.825895 6.23643,-5.734881 11.86153,-11.866783 16.16534,-18.243837 4.09909,-6.073711 7.12092,-12.552472 8.17667,-19.218431 0.46073,-3.004409 0.61532,-5.835429 0.45736,-8.485969 -0.15859,-2.648585 -0.62764,-5.106699 -1.4078,-7.35807 -0.78558,-2.266308 -1.86758,-4.269244 -3.19588,-6.004841 -1.34079,-1.751911 -2.88893,-3.174754 -4.54897,-4.319647 -3.39002,-2.337992 -7.22669,-3.504158 -10.84045,-4.065 -3.89291,-0.604195 -7.89007,-0.560702 -11.47773,-0.266662 -6.20223,0.508286 -12.10113,1.851511 -15.90537,2.790439 -1.81612,0.44826 -3.50091,0.904851 -5.01159,1.342555 -8.06752,2.337265 -9.4456,3.396505 -9.45922,3.517043 v 0.0014 0.0013 0.0014 0.0014 c 0.0625,0.197986 2.21974,-0.351935 9.91118,-1.362563 1.53116,-0.201223 3.23628,-0.397495 5.05159,-0.557274 3.85929,-0.339664 9.62727,-0.574143 15.33475,0.101404 3.32098,0.393041 6.63778,1.096061 9.5219,2.263816 2.71412,1.098929 4.80468,2.511865 6.19015,4.199652 0.65856,0.802246 1.1446,1.648646 1.4919,2.55046 0.34106,0.885436 0.56886,1.878014 0.67187,3.007758 0.10252,1.130151 0.0865,2.460932 -0.10894,4.029003 -0.19704,1.57878 -0.57702,3.405766 -1.20531,5.515546 -1.16078,3.736603 -3.5396,7.842622 -7.21006,12.293667 -3.84254,4.65965 -8.87872,9.429 -14.77212,14.213428 -9.5985,7.792315 -21.00656,15.250236 -32.0454,21.898208 V 38.303483 c -0.006,-5.363491 -3.37478,-10.147528 -8.42096,-11.953692 -1.26165,-0.451348 -2.56312,-0.691738 -3.85433,-0.734603 z m -13.12425,48.184059 v 44.568355 c -15.87912,8.01429 -32.61799,15.40376 -48.78401,22.20752 -3.14936,1.32547 -6.20327,2.59883 -9.15125,3.82236 z m 25.39926,66.830545 c -6.80124,3.93068 -13.7846,7.79054 -20.86097,11.54038 l -4.53829,2.40648 v 57.98326 h 25.39926 z"
fill="currentColor"
id="path1"
style="stroke-width:0.682608" />
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="375"
height="375"
viewBox="0 0 375 375"
version="1.1"
id="svg1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1">
<linearGradient
id="linearGradient9">
<stop
offset="0"
style="stop-color:#ffbe8f;stop-opacity:1;"
id="stop5" />
<stop
offset="0.29142818"
style="stop-color:#b64d5f;stop-opacity:1;"
id="stop6" />
<stop
offset="0.54470932"
style="stop-color:#6d4793;stop-opacity:1;"
id="stop7" />
<stop
offset="0.7482971"
style="stop-color:#4f5fb0;stop-opacity:1;"
id="stop8" />
<stop
offset="1"
style="stop-color:#4075bf;stop-opacity:1;"
id="stop9" />
</linearGradient>
<radialGradient
xlink:href="#linearGradient9"
id="radialGradient23"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(20.084458,6.8416397e-7,-0.12843747,5.8745574,-471.38057,-424.33457)"
cx="24.299227"
cy="129.68373"
fx="24.299227"
fy="129.68373"
r="51.055538" />
</defs>
<path
id="path18"
style="font-weight:596;font-size:31.4035px;font-family:'Red Hat Display';-inkscape-font-specification:'Red Hat Display weight=596';font-variation-settings:normal;letter-spacing:-1.2267px;display:inline;vector-effect:none;fill:url(#radialGradient23);fill-opacity:1;stroke:none;stroke-width:13.7874;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
d="m 255.82503,37.510213 c -5.67476,-0.188343 -11.24893,2.23422 -14.98694,6.787765 L 2.9310513e-7,337.5 69.777811,311.37629 109.82817,262.57286 c 16.00289,-4.03012 40.03999,-12.96526 68.68515,-25.77604 29.44851,-13.17011 60.10975,-28.83416 88.34784,-45.20446 7.1972,-4.17237 14.03011,-8.26918 20.53762,-12.28907 17.31114,-10.69359 35.76038,-23.64977 51.183,-37.83207 9.13617,-8.40141 17.37634,-17.38444 23.68129,-26.72658 6.00504,-8.89778 10.43225,-18.389571 11.97887,-28.154968 0.67493,-4.401354 0.90167,-8.548045 0.6702,-12.431008 -0.23127,-3.880079 -0.91968,-7.48177 -2.06276,-10.779944 -1.15067,-3.320072 -2.73509,-6.252995 -4.68097,-8.795583 -1.96421,-2.566488 -4.23228,-4.65221 -6.6642,-6.329426 -4.96625,-3.425077 -10.58607,-5.132821 -15.88011,-5.954433 -5.70296,-0.885132 -11.55921,-0.821381 -16.815,-0.390625 -9.08605,0.744626 -17.72748,2.710444 -23.30055,4.085934 -2.66057,0.656686 -5.13041,1.327546 -7.34353,1.968755 -11.81865,3.424005 -13.8365,4.97577 -13.85646,5.152346 -2e-5,6.59e-4 -6e-5,0.0029 0,0.0044 v 0.0014 0.0014 c 0.0914,0.290046 3.25242,-0.514281 14.52014,-1.994792 2.24321,-0.294772 4.74156,-0.583634 7.4009,-0.817713 5.65371,-0.49759 14.10349,-0.841117 22.46476,0.148446 4.86513,0.575778 9.72393,1.606987 13.94904,3.317716 3.97612,1.609898 7.03762,3.679793 9.06729,6.152341 0.96474,1.175266 1.67648,2.41456 2.18531,3.735684 0.4996,1.29715 0.83339,2.751213 0.98444,4.406255 0.15112,1.655624 0.12759,3.606475 -0.15907,5.903646 -0.2886,2.312837 -0.84506,4.98737 -1.76547,8.078131 -1.70049,5.473974 -5.18575,11.489804 -10.56285,18.010418 -5.62918,6.82635 -13.00709,13.81392 -21.6407,20.82294 -14.06148,11.41533 -30.77385,22.34027 -46.94535,32.07932 V 56.097909 c -0.007,-7.857334 -4.94368,-14.86577 -12.33612,-17.511736 -1.8483,-0.661211 -3.75428,-1.012727 -5.64585,-1.075522 z M 236.59781,108.0962 v 65.2917 c -23.26236,11.74064 -47.785,22.56663 -71.46764,32.53391 -4.61428,1.94197 -9.08873,3.80763 -13.40794,5.60026 z m 37.20919,97.90631 c -9.96358,5.75833 -20.19401,11.4116 -30.56063,16.90498 l -6.64856,3.52603 v 84.94277 H 273.807 Z" />
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -0,0 +1,8 @@
#!/usr/bin/sh
if test "$(id -u)" -gt "0" && test -d "$HOME"; then
# Add default settings when there are no settings
if test ! -e "$HOME"/.config/Code/User/settings.json; then
mkdir -p "$HOME"/.config/Code/User
cp -f /etc/skel/.config/Code/User/settings.json "$HOME"/.config/Code/User/settings.json
fi
fi

View file

@ -0,0 +1,5 @@
{
"window.titleBarStyle": "custom",
"editor.fontFamily": "'Cascadia Code', 'Droid Sans Mono', 'monospace', monospace, 'Symbols Nerd Font Mono'",
"update.mode": "none"
}

View file

@ -0,0 +1 @@
net.ipv4.ip_forward = 1

View file

@ -0,0 +1,12 @@
[Unit]
Description=Add wheel members to docker,and incus-admin groups
[Service]
Type=oneshot
ExecStart=/usr/libexec/aurora-dx-groups
Restart=on-failure
RestartSec=30
StartLimitInterval=0
[Install]
WantedBy=default.target

View file

@ -0,0 +1,32 @@
[Unit]
Description=Workaround swtpm not having the correct label
ConditionFileIsExecutable=/usr/bin/incus
ConditionFileIsExecutable=/usr/bin/incus-agent
ConditionPathExists=/usr/lib/incus
After=local-fs.target
[Service]
Type=oneshot
# Copy if it doesn't exist
ExecStartPre=/usr/bin/bash -c "[ -x /usr/local/bin/overrides/incus ] || /usr/bin/cp /usr/bin/incus /usr/local/bin/overrides/incus"
ExecStartPre=/usr/bin/bash -c "[ -x /usr/local/bin/overrides/incus-agent ] || /usr/bin/cp /usr/bin/incus /usr/local/bin/overrides/incus-agent"
ExecStartPre=/usr/bin/bash -c "[ -d /usr/local/lib/overrides/incus ] || /usr/bin/cp -R /usr/bin/incus /usr/local/lib/overrides/incus"
# This is faster than using .mount unit. Also allows for the previous line/cleanup
ExecStartPre=/usr/bin/mount --bind /usr/local/bin/overrides/incus /usr/bin/incus
ExecStartPre=/usr/bin/mount --bind /usr/local/bin/overrides/incus-agent /usr/bin/incus-agent
ExecStartPre=/usr/bin/mount --bind /usr/local/lib/overrides/incus /usr/lib/incus
# Fix SELinux label
ExecStart=/usr/sbin/restorecon /usr/bin/incus
ExecStart=/usr/sbin/restorecon /usr/bin/incus-agent
ExecStart=/usr/sbin/restorecon -R /usr/lib/incus
# Clean-up after ourselves
ExecStop=/usr/bin/umount /usr/bin/incus
ExecStop=/usr/bin/umount /usr/bin/incus-agent
ExecStop=/usr/bin/umount /usr/lib/incus
ExecStop=/usr/bin/rm /usr/local/bin/overrides/incus
ExecStop=/usr/bin/rm /usr/local/bin/overrides/incus-agent
ExecStop=/usr/bin/rm -r /usr/local/lib/overrides/incus
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,20 @@
[Unit]
Description=Workaround swtpm not having the correct label
ConditionFileIsExecutable=/usr/bin/swtpm
After=local-fs.target
[Service]
Type=oneshot
# Copy if it doesn't exist
ExecStartPre=/usr/bin/bash -c "[ -x /usr/local/bin/overrides/swtpm ] || /usr/bin/cp /usr/bin/swtpm /usr/local/bin/overrides/swtpm"
# This is faster than using .mount unit. Also allows for the previous line/cleanup
ExecStartPre=/usr/bin/mount --bind /usr/local/bin/overrides/swtpm /usr/bin/swtpm
# Fix SELinux label
ExecStart=/usr/sbin/restorecon /usr/bin/swtpm
# Clean-up after ourselves
ExecStop=/usr/bin/umount /usr/bin/swtpm
ExecStop=/usr/bin/rm /usr/local/bin/overrides/swtpm
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,15 @@
[Unit]
Description=Run
Wants=network-online.target
After=network-online.target ublue-user-setup.service
ConditionUser=!@system
[Service]
Type=oneshot
ExecStart=/usr/libexec/aurora-dx-user-vscode
Restart=on-failure
RestartSec=30
StartLimitInterval=0
[Install]
WantedBy=default.target

View file

@ -0,0 +1,3 @@
C /usr/local/bin/overrides/incus - - - - /usr/bin/incus
C /usr/local/bin/overrides/incus-agent - - - - /usr/bin/incus-agent
C /usr/local/lib/overrides/incus - - - - /usr/lib/incus

View file

@ -0,0 +1,2 @@
C /usr/local/bin/overrides/swtpm - - - - /usr/bin/swtpm
d /var/lib/swtpm-localca 0750 tss tss - -

View file

@ -0,0 +1,40 @@
#!/usr/bin/env bash
# SCRIPT VERSION
GROUP_SETUP_VER=2
GROUP_SETUP_VER_FILE="/etc/ublue/dx-groups"
GROUP_SETUP_VER_RAN=$(cat "$GROUP_SETUP_VER_FILE")
# make the directory if it doesn't exist
mkdir -p /etc/ublue
# Run script if updated
if [[ -f $GROUP_SETUP_VER_FILE && "$GROUP_SETUP_VER" = "$GROUP_SETUP_VER_RAN" ]]; then
echo "Group setup has already run. Exiting..."
exit 0
fi
# Function to append a group entry to /etc/group
append_group() {
local group_name="$1"
if ! grep -q "^$group_name:" /etc/group; then
echo "Appending $group_name to /etc/group"
grep "^$group_name:" /usr/lib/group | tee -a /etc/group >/dev/null
fi
}
# Setup Groups
append_group docker
append_group incus-admin
append_group libvirt
wheelarray=($(getent group wheel | cut -d ":" -f 4 | tr ',' '\n'))
for user in $wheelarray; do
usermod -aG docker $user
usermod -aG incus-admin $user
usermod -aG libvirt $user
done
# Prevent future executions
echo "Writing state file"
echo "$GROUP_SETUP_VER" >"$GROUP_SETUP_VER_FILE"

View file

@ -0,0 +1,34 @@
#!/usr/bin/env bash
# SCRIPT VERSION
USER_SETUP_VER=2
USER_SETUP_VER_FILE="${XDG_DATA_HOME:-$HOME/.local/share}/ublue/vscode-configured"
USER_SETUP_VER_RAN=$(cat "$USER_SETUP_VER_FILE")
mkdir -p "$(dirname "$USER_SETUP_VER_FILE")" || exit 1
USER_SETUP_VER_FILE_V1="$HOME/.aurora-vscode-configured"
# Upgrade from v1 to v2 changes only the location of the USER_SETUP_VER.
# Exit if v1 file is present.
if [[ -f $USER_SETUP_VER_FILE_V1 ]]; then
echo "User setup v1 has already run. Exiting..."
rm $USER_SETUP_VER_FILE_V1
echo "$USER_SETUP_VER" > "$USER_SETUP_VER_FILE"
exit 0
fi
# Run script if updated
if [[ -f $USER_SETUP_VER_FILE && "$USER_SETUP_VER" = "$USER_SETUP_VER_RAN" ]]; then
echo "User setup v$VER has already run. Exiting..."
exit 0
fi
# Setup VSCode
# Pre-install preferred VSCode Extensions
code --install-extension ms-vscode-remote.remote-containers
code --install-extension ms-vscode-remote.remote-ssh
code --install-extension ms-azuretools.vscode-containers
# Prevent future executions
echo "Writing state file"
echo "$USER_SETUP_VER" > "$USER_SETUP_VER_FILE"

View file

@ -0,0 +1,79 @@
#!/usr/bin/env bash
# All the pieces needed to enable incus on Developer Experience Hosts
# This script is meant to be run on a aurora-dx host
if [ "$EUID" -eq 0 ]
then
echo "This script should not be run as root"
exit
fi
source /usr/lib/ujust/ujust.sh
# add user to incus-admin group
pkexec usermod -aG incus-admin $USER
# check for, then add necessary entries to /etc/subuid and /etc/subgid
echo -e "\nChecking for necessary entries in /etc/subuid and /etc/subgid"
if grep -q "root:1000000:1000000000" /etc/subuid
then
echo -e "\n * subuid root range"
else
echo "root:1000000:1000000000" | pkexec tee -a /etc/subuid
fi
if grep -q "root:1000000:1000000000" /etc/subgid
then
echo -e "\n * subgid root range"
else
echo "root:1000000:1000000000" | pkexec tee -a /etc/subgid
fi
if grep -q "root:$UID:1" /etc/subgid
then
echo -e "\n * subgid root->user"
else
echo "root:$UID:1" | pkexec tee -a /etc/subgid
fi
if grep -q "root:$UID:1" /etc/subuid
then
echo ""
echo " * subuid root->user"
else
echo "root:$UID:1" | sudo tee -a /etc/subuid
fi
echo -e "\nEnabling incus services"
pkexec /usr/bin/bash <<EOF
systemctl enable --now incus-workaround.service
systemctl enable --now lxcfs
systemctl enable --now incus.socket
systemctl start incus.service
systemctl enable incus-startup
EOF
echo -e "\nInitializing Incus"
echo "Choose your Incus installation type:"
OPTION=$(Choose Minimal Custom Cancel)
if [[ "${OPTION,,}" =~ ^minimal ]]; then
pkexec incus admin init --minimal
echo -e "\nAdding the incus bridge to the trusted firewall zone"
pkexec firewall-cmd --zone=trusted --change-interface=incusbr0 --permanent
pkexec firewall-cmd --reload
fi
if [[ "${OPTION,,}" =~ ^custom ]]; then
pkexec incus admin init
echo ""
cat <<EOF
Add the incus bridge to the trusted firewall zone with
```bash
sudo firewall-cmd --zone=trusted --change-interface=your-bridge --permanent
sudo firewall-cmd --reload
```
EOF
fi
if [[ "${OPTION,,}" =~ ^cancel ]]; then
echo "You have chosen to cancel the Incus installation process"
exit 0
fi
echo -e "\nIncus has been ${green}${b}installed${n}. You can now run 'incus' to manage your containers."

View file

@ -0,0 +1,17 @@
#!/usr/bin/bash
source /usr/lib/ublue/setup-services/libsetup.sh
version-script vscode user 1 || exit 1
set -x
# Setup VSCode
if test ! -e "$HOME"/.config/Code/User/settings.json; then
mkdir -p "$HOME"/.config/Code/User
cp -f /etc/skel/.config/Code/User/settings.json "$HOME"/.config/Code/User/settings.json
fi
code --install-extension ms-vscode-remote.remote-containers
code --install-extension ms-vscode-remote.remote-ssh
code --install-extension ms-azuretools.vscode-docker

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,33 @@
com.visualstudio.code
com.visualstudio.code-oss
com.vscodium.codium
com.vscodium.codium-insiders
com.jetbrains.CLion
com.jetbrains.DataGrip
com.jetbrains.GoLand
com.jetbrains.IntelliJ-IDEA-Community
com.jetbrains.IntelliJ-IDEA-Ultimate
com.jetbrains.PyCharm-Professional
com.jetbrains.WebStorm
com.jetbrains.PhpStorm
com.jetbrains.PyCharm-Community
com.jetbrains.Rider
com.jetbrains.RubyMine
com.jetbrains.RustRover
com.google.AndroidStudio
io.neovim.nvim
org.vim.Vim
io.github.zyedidia.micro
com.helix_editor.Helix
org.gnu.emacs
app.devsuite.Ptyxis
org.kde.konsole
org.kde.dolphin
dev.lizardbyte.app.Sunshine
org.freedesktop.fwupd
org.kde.kate
org.kde.ark
org.kde.filelight
org.kde.kfind
org.kde.kwalletmanager5
io.github.kolunmi.Bazaar

Binary file not shown.

View file

@ -0,0 +1,384 @@
css: |
.global-section banner {
margin-top: 30px;
margin-left: 30px;
margin-right: 30px;
border-radius: 10px;
}
.global-section banner-text-overlay {
margin: 30px;
padding: 20px;
}
.global-section banner-text {
padding: 50px;
text-shadow: 1px 1px 4px rgba(0, 0, 5, 1);
}
.global-section title {
text-shadow: 1px 1px 4px rgba(0, 0, 5, 1);
}
.global-section subtitle {
font-weight: 400;
text-shadow: 4px 4px 8px rgba(0, 0, 5, 1);
}
.global-section app-tile > button {
background-color: alpha(white, 0.1);
}
.global-section {
margin: 15px;
border-radius: 25px;
color: #ffffff;
}
.rec-section {
background: linear-gradient(0deg, #80cfe3, #54a3d8);
}
.rec-section app-tile-installed-indicator {
color: #2d2f9b;
}
.rec-section-dark {
background: linear-gradient(0deg, #271e7f, #60a5c3);
}
.rec-section-dark app-tile-installed-indicator {
color: #a8e6ff;
}
.cc-section {
background: linear-gradient(0deg, #b8a0cf, #9b59b6);
}
.cc-section app-tile-installed-indicator {
color: #000a55;
}
.cc-section-dark {
background: linear-gradient(0deg, #392946, #050815);
}
.cc-section-dark app-tile-installed-indicator {
color: #dbcaf3;
}
.music-section {
background: linear-gradient(to bottom, #F56217, #ffab7b);
}
.music-section app-tile-installed-indicator {
color: #4b5b64;
}
.music-section-dark {
background: linear-gradient(to bottom, #F56217, #912906);
}
.music-section-dark app-tile-installed-indicator {
color: #ffe6df;
}
.office-section {
background: linear-gradient(to bottom, #ff3e82, #f7caf0);
}
.office-section app-tile-installed-indicator {
color: #4a0052;
}
.office-section-dark {
background: linear-gradient(to bottom, #750051, #fa486b);
}
.office-section-dark app-tile-installed-indicator {
color: #007fd9;
}
.gaming-section {
background: linear-gradient(0deg, #888a90, #67c29a);
}
.gaming-section app-tile-installed-indicator {
color: #355c00;
}
.gaming-section-dark {
background: linear-gradient(0deg, #003a00, #444445);
}
.gaming-section-dark app-tile-installed-indicator {
color: #ffffff;
}
.utilities-section {
background: linear-gradient(0deg, #888a90, #48659a);
}
.utilities-section app-tile-installed-indicator {
color: #002542;
}
.utilities-section-dark {
background: linear-gradient(to right bottom, #00389e, #1d3283, #242d6a, #262851, #24233a, #282636, #2b2a31, #2d2d2d, #3a3a3a, #474748, #555556, #646364);
}
.utilities-section-dark app-tile-installed-indicator {
color: #dddddc;
}
.dev-section {
background-image: linear-gradient(to right bottom, #8b6fab, #7a77b3, #687fb6, #5985b6, #4d8bb3, #4892b4, #4698b3, #499eb1, #4da8b3, #55b2b4, #61bbb4, #6fc4b3);
}
.dev-section app-tile-installed-indicator {
color: #9b59b6;
}
.dev-section-dark {
background: linear-gradient(to right bottom, #8b6fab, #7a68a6, #6861a0, #555a9a, #405494, #315c9a, #1f649e, #006ca1, #0084ac, #089ab1, #43b0b2, #6fc4b3);
}
.dev-section-dark app-tile-installed-indicator {
color: #8c007c;
}
.ai-section {
background: linear-gradient(0deg, #cc773e, #d05a00);
}
.ai-section app-tile-installed-indicator {
color: #002c55;
}
.ai-section-dark {
background: linear-gradient(0deg, #4a1c00, #eb8000);
}
.ai-section-dark app-tile-installed-indicator {
color: #577bad;
}
sections:
- title: "Aurora Recommends"
subtitle: "Our Favorite Applications"
rows: 3
banner: file:///run/host/etc/bazaar/01-aurora-bazaar.jxl
banner-fit: cover
banner-text-halign: start
banner-text-valign: center
banner-height: 400
classes:
- global-section
light-classes:
- rec-section
dark-classes:
- rec-section-dark
appids:
- io.github.DenysMb.Kontainer
- com.pixelomer.ShijimaQt
- org.kde.kstars
- re.sonny.Eloquent
- io.github.halfmexican.Mingle
- org.kde.audiotube
- io.github.getnf.embellish
- io.github.pleromix.IceBox
- io.github.nozwock.Packet
- com.github.ADBeveridge.Raider
- rocks.shy.VacuumTube
- com.github.PintaProject.Pinta
- title: "Content Creation"
subtitle: "Create your first donut or make some tunes"
rows: 2
banner: file:///run/host/etc/bazaar/02-aurora-bazaar.jxl
banner-fit: cover
banner-text-halign: end
banner-text-valign: center
banner-height: 400
classes:
- global-section
light-classes:
- cc-section
dark-classes:
- cc-section-dark
appids:
- org.kde.krita
- org.ardour.Ardour
- org.kde.kdenlive
- org.blender.Blender
- org.inkscape.Inkscape
- org.audacityteam.Audacity
- com.obsproject.Studio
- com.inochi2d.inochi-session
- org.gimp.GIMP
- org.darktable.Darktable
- com.feaneron.Boatswain
- title: "Music & Media"
subtitle: "Let me break it down for you"
rows: 2
banner: file:///run/host/etc/bazaar/03-aurora-bazaar.jxl
banner-fit: cover
banner-text-halign: start
banner-text-valign: center
banner-height: 400
classes:
- global-section
light-classes:
- music-section
dark-classes:
- music-section-dark
appids:
- org.kde.elisa
- com.spotify.Client
- com.mastermindzh.tidal-hifi
- org.videolan.VLC
- com.github.iwalton3.jellyfin-media-player
- tv.plex.PlexDesktop
- org.kde.kasts
- org.kde.arianna
- com.plexamp.Plexamp
- io.github.mhogomchungu.media-downloader
- com.github.wwmm.easyeffects
- me.timschneeberger.jdsp4linux
- title: "Office & Productivity"
subtitle: "Let's do some work"
rows: 3
banner: file:///run/host/etc/bazaar/04-aurora-bazaar.jxl
banner-fit: cover
banner-text-halign: end
banner-text-valign: center
banner-height: 400
classes:
- global-section
light-classes:
- office-section
dark-classes:
- office-section-dark
appids:
- com.slack.Slack
- md.obsidian.Obsidian
- org.onlyoffice.desktopeditors
- org.libreoffice.LibreOffice
- io.github.alainm23.planify
- io.github.nokse22.Exhibit
- io.gitlab.theevilskeleton.Upscaler
- com.bambulab.BambuStudio
- com.github.IsmaelMartinez.teams_for_linux
- com.super_productivity.SuperProductivity
- title: "Games"
subtitle: "The cake is a lie"
rows: 3
banner: file:///run/host/etc/bazaar/05-aurora-bazaar.jxl
banner-fit: cover
banner-text-halign: start
banner-text-valign: center
banner-height: 400
classes:
- global-section
light-classes:
- gaming-section
dark-classes:
- gaming-section-dark
appids:
- com.valvesoftware.Steam
- com.valvesoftware.SteamLink
- com.heroicgameslauncher.hgl
- io.github.Faugus.faugus-launcher
- net.lutris.Lutris
- org.vinegarhq.Sober
- com.dec05eba.gpu_screen_recorder
- com.github.Matoking.protontricks
- org.prismlauncher.PrismLauncher
- com.discordapp.Discord
- com.parsecgaming.parsec
- net.davidotek.pupgui2
- org.endlessaccess.threadbare
- net.supertuxkart.SuperTuxKart
- com.github.k4zmu2a.spacecadetpinball
- net.stabyourself.nottetris2
- title: "Utilities"
subtitle: "Stuff you didn't need until now"
rows: 2
banner: file:///run/host/etc/bazaar/06-aurora-bazaar.jxl
banner-fit: cover
banner-text-halign: end
banner-text-valign: center
banner-height: 400
classes:
- global-section
light-classes:
- utilities-section
dark-classes:
- utilities-section-dark
appids:
- app.drey.Warp
- org.localsend.localsend_app
- com.github.zocker_160.SyncThingy
- org.keepassxc.KeePassXC
- io.github.nokse22.asciidraw
- io.github.radiolamp.mangojuice
- org.fedoraproject.MediaWriter
- org.gnome.gitlab.YaLTeR.VideoTrimmer
- org.raspberrypi.rpi-imager
- org.kde.optiimage
- org.mozilla.vpn
- hu.irl.cameractrls
- org.gnome.gitlab.YaLTeR.Identity
- io.github.BuddySirJava.SSH-Studio
- au.stevetech.yafi
- io.github.pwr_solaar.solaar
- title: "Developers"
subtitle: "Developers, developers, developers!"
rows: 2
banner: file:///run/host/etc/bazaar/07-aurora-bazaar.jxl
banner-fit: cover
banner-text-halign: start
banner-text-valign: center
banner-height: 400
classes:
- global-section
light-classes:
- dev-section
dark-classes:
- dev-section-dark
appids:
- io.podman_desktop.PodmanDesktop
- io.kinvolk.Headlamp
- org.gnome.Builder
- com.getpostman.Postman
- org.kde.kdevelop
- io.dbeaver.DBeaverCommunity
- org.gitfourchette.gitfourchette
- com.mardojai.ForgeSparks
- com.github.marhkb.Pods
- cc.arduino.IDE2
- io.github.plrigaux.sysd-manager
- me.iepure.devtoolbox
- title: "AI and Machine Learning"
subtitle: "Experience the best of open source AI"
rows: 1
banner: file:///run/host/etc/bazaar/08-aurora-bazaar.jxl
banner-fit: cover
banner-text-halign: start
banner-text-valign: center
banner-height: 500
classes:
- global-section
light-classes:
- ai-section
dark-classes:
- ai-section-dark
appids:
- com.jeffser.Alpaca
- io.github.qwersyk.Newelle

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,6 @@
# Relocatable schemas are located here in dconf
# Some Gnome extensions don't ship gschema XML, so their settings also need to go in dconf
[org/gnome/Ptyxis/Profiles/2871e8027773ae74d6c87a5f659bbc74]
palette='Breeze'
opacity=0.9

View file

@ -0,0 +1,3 @@
[wifi]
enable=true
url=https://api.beacondb.net/v1/geolocate

View file

@ -0,0 +1,4 @@
#!/usr/bin/bash
SUDO_ASKPASS='/usr/bin/ksshaskpass'
export SUDO_ASKPASS

View file

@ -0,0 +1,4 @@
#!/bin/sh
SSH_ASKPASS=/usr/bin/ksshaskpass
export SSH_ASKPASS

View file

@ -0,0 +1,3 @@
#!/bin/sh
alias neofetch=fastfetch

View file

@ -0,0 +1 @@
alias open="xdg-open &>/dev/null"

View file

@ -0,0 +1,17 @@
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# For option meanings, see rpm-ostreed.conf(5).
[Daemon]
AutomaticUpdatePolicy=stage
##########
# NOTE: This will be set to true by default in Spring 2025
#
# Set this to false to enable local layering with dnf
# This is an unsupported configuration that can lead to upgrade isses
# Be careful when setting this to true
#
# See [future link] for more information
##########
# LockLayering=false

View file

@ -0,0 +1,2 @@
@import 'colors.css';
@import 'window_decorations.css';

View file

@ -0,0 +1,2 @@
@import 'colors.css';
@import 'kde_window_geometry.css';

View file

@ -0,0 +1,35 @@
/*
Extremely trimmed down version of https://github.com/MrCompoopter/Libadwaita-Breeze-Dark
Modifies only the window shape, and otherwise makes no other changes.
This should ensure compatibility with most if not all themes and applications.
*/
window {
border-radius: 4px 4px 0 0;
border-width: 0px;
margin: 0px;
}
window.maximized {
border-radius: 0;
}
.maximized window,
.fullscreen window,
.tiled window {
border-radius: 0;
}
.popup window {
border-radius: 4px;
}
.csd window {
border-radius: 4px;
}
.solid-csd window {
border-radius: 0;
margin: 0;
border-width: 5px;
}

View file

@ -0,0 +1,206 @@
# Get editor completions based on the config schema
"$schema" = 'https://starship.rs/config-schema.json'
add_newline = true
[line_break]
disabled = false
[username]
style_user = 'blue bold'
style_root = 'red bold'
format = '[$user]($style)'
disabled = false
show_always = true
[hostname]
ssh_only = false
ssh_symbol = " "
format = '[$ssh_symbol](bold gray) at [$hostname](bold green) '
disabled = false
[character]
success_symbol = '[➜](bold green) '
error_symbol = '[✗](bold red) '
[aws]
symbol = " "
[buf]
symbol = " "
[c]
symbol = " "
[cmake]
symbol = " "
[conda]
symbol = " "
[crystal]
symbol = " "
[dart]
symbol = " "
[directory]
read_only = " 󰌾"
format = 'in [$path](bold yellow) '
[docker_context]
symbol = " "
[elixir]
symbol = " "
[elm]
symbol = " "
[fennel]
symbol = " "
[fossil_branch]
symbol = " "
[git_branch]
symbol = " "
[git_commit]
tag_symbol = '  '
[golang]
symbol = " "
[guix_shell]
symbol = " "
[haskell]
symbol = " "
[haxe]
symbol = " "
[hg_branch]
symbol = " "
[java]
symbol = " "
[julia]
symbol = " "
[kotlin]
symbol = " "
[lua]
symbol = " "
[memory_usage]
symbol = "󰍛 "
[meson]
symbol = "󰔷 "
[nim]
symbol = "󰆥 "
[nix_shell]
symbol = " "
[nodejs]
symbol = " "
[ocaml]
symbol = " "
[os.symbols]
Alpaquita = " "
Alpine = " "
AlmaLinux = " "
Amazon = " "
Android = " "
Arch = " "
Artix = " "
CachyOS = " "
CentOS = " "
Debian = " "
DragonFly = " "
Emscripten = " "
EndeavourOS = " "
Fedora = " "
FreeBSD = " "
Garuda = "󰛓 "
Gentoo = " "
HardenedBSD = "󰞌 "
Illumos = "󰈸 "
Kali = " "
Linux = " "
Mabox = " "
Macos = " "
Manjaro = " "
Mariner = " "
MidnightBSD = " "
Mint = " "
NetBSD = " "
NixOS = " "
Nobara = " "
OpenBSD = "󰈺 "
openSUSE = " "
OracleLinux = "󰌷 "
Pop = " "
Raspbian = " "
Redhat = " "
RedHatEnterprise = " "
RockyLinux = " "
Redox = "󰀘 "
Solus = "󰠳 "
SUSE = " "
Ubuntu = " "
Unknown = " "
Void = " "
Windows = "󰍲 "
[package]
symbol = "󰏗 "
[perl]
symbol = " "
[php]
symbol = " "
[pijul_channel]
symbol = " "
[python]
symbol = " "
[rlang]
symbol = "󰟔 "
[ruby]
symbol = " "
[rust]
symbol = "󱘗 "
[scala]
symbol = " "
[swift]
symbol = " "
[zig]
symbol = " "
[gradle]
symbol = " "
[custom.update]
when = "/usr/bin/rpm-ostree status --json | /usr/bin/jq -e \".deployments[0].booted == false\" > /dev/null;"
command = 'echo "New deployment staged"'
symbol = ""
format = " $symbol [($output)]($style) "
style = "italic green"

View file

@ -0,0 +1,2 @@
[Context]
filesystems=~/.local/share/applications;~/.local/share/icons

View file

@ -0,0 +1,3 @@
[Context]
sockets=wayland;
filesystems=xdg-run/podman;

View file

@ -0,0 +1,45 @@
[Palette]
Name=Catppuccin Dynamic
Primary=true
[Light]
Background=#EFF1F5
Foreground=#4C4F69
Cursor=#4C4F69
Color0=#5C5F77
Color1=#D20F39
Color2=#40A02B
Color3=#DF8E1D
Color4=#1E66F5
Color5=#EA76CB
Color6=#179299
Color7=#ACB0BE
Color8=#6C6F85
Color9=#D20F39
Color10=#40A02B
Color11=#DF8E1D
Color12=#1E66F5
Color13=#EA76CB
Color14=#179299
Color15=#BCC0CC
[Dark]
Background=#1E1E2E
Foreground=#CDD6F4
Cursor=#CDD6F4
Color0=#45475A
Color1=#F38BA8
Color2=#A6E3A1
Color3=#F9E2AF
Color4=#89B4FA
Color5=#F5C2E7
Color6=#94E2D5
Color7=#BAC2DE
Color8=#585B70
Color9=#F38BA8
Color10=#A6E3A1
Color11=#F9E2AF
Color12=#89B4FA
Color13=#F5C2E7
Color14=#94E2D5
Color15=#A6ADC8

View file

@ -0,0 +1,2 @@
[io/github/dvlv/boxbuddyrs]
default-terminal='Ptyxis'

View file

@ -0,0 +1,41 @@
[Manager]
#LogLevel=info
#LogTarget=auto
#LogColor=yes
#LogLocation=no
#LogTime=no
#SystemCallArchitectures=
#TimerSlackNSec=
#StatusUnitFormat=combined
#DefaultTimerAccuracySec=1min
#DefaultStandardOutput=inherit
#DefaultStandardError=inherit
#DefaultTimeoutStartSec=45s
DefaultTimeoutStopSec=15s
#DefaultTimeoutAbortSec=
#DefaultDeviceTimeoutSec=45s
#DefaultRestartSec=100ms
#DefaultStartLimitIntervalSec=10s
#DefaultStartLimitBurst=5
#DefaultEnvironment=
#DefaultLimitCPU=
#DefaultLimitFSIZE=
#DefaultLimitDATA=
#DefaultLimitSTACK=
#DefaultLimitCORE=
#DefaultLimitRSS=
DefaultLimitNOFILE=4096:524288
#DefaultLimitAS=
#DefaultLimitNPROC=
#DefaultLimitMEMLOCK=
#DefaultLimitLOCKS=
#DefaultLimitSIGPENDING=
#DefaultLimitMSGQUEUE=
#DefaultLimitNICE=
#DefaultLimitRTPRIO=
#DefaultLimitRTTIME=
#DefaultMemoryPressureThresholdSec=200ms
#DefaultMemoryPressureWatch=auto
#DefaultSmackProcessLabel=
#ReloadLimitIntervalSec=
#ReloadLimitBurst

View file

@ -0,0 +1,3 @@
{
"bling-cli-name": "aurora-cli"
}

View file

@ -0,0 +1,4 @@
{
"check-secureboot": true,
"setup-version": 1
}

View file

@ -0,0 +1 @@
../../usr/share/kde-settings/kde-profile/default/xdg/kcm-about-distrorc

View file

@ -0,0 +1 @@
../../usr/share/kde-settings/kde-profile/default/xdg/kdeglobals

View file

@ -0,0 +1 @@
../../usr/share/kde-settings/kde-profile/default/xdg/krunnerrc

View file

@ -0,0 +1 @@
../../usr/share/kde-settings/kde-profile/default/xdg/kwinrc

View file

@ -0,0 +1,26 @@
#!/usr/bin/env zsh
# vim:syntax=zsh
# vim:filetype=zsh
# Execute code in the background to not affect the current session
(
# <https://github.com/zimfw/zimfw/blob/master/login_init.zsh>
setopt LOCAL_OPTIONS EXTENDED_GLOB
autoload -U zrecompile
local ZSHCONFIG="${ZDOTDIR:-$HOME}/.zsh"
# Compile zcompdump, if modified, to increase startup speed.
zcompdump="${ZDOTDIR:-$HOME}/.zcompdump"
if [[ -s "$zcompdump" && (! -s "${zcompdump}.zwc" || "$zcompdump" -nt "${zcompdump}.zwc") ]]; then
zrecompile -pq "$zcompdump"
fi
# zcompile .zshrc
zrecompile -pq ${ZDOTDIR:-${HOME}}/.zshrc
zrecompile -pq ${ZDOTDIR:-${HOME}}/.zprofile
zrecompile -pq ${ZDOTDIR:-${HOME}}/.zshenv
# recompile all zsh or sh
for f in $ZSHCONFIG/**/*.*sh
do
zrecompile -pq $f
done
) &!

View file

@ -0,0 +1,3 @@
#!/usr/bin/env zsh
# vim:syntax=zsh
# vim:filetype=zsh

View file

@ -0,0 +1,28 @@
# vim:syntax=zsh
# vim:filetype=zsh
#
# Executes commands at login before zshrc.
#
if [[ -z "$LANG" ]]; then
export LANG='en_US.UTF-8'
export LANGUAGE=en_US.UTF-8
fi
export LC_COLLATE=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export LC_MESSAGES=en_US.UTF-8
export LC_MONETARY=en_US.UTF-8
export LC_NUMERIC=en_US.UTF-8
export LC_TIME=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LESSCHARSET=utf-8
# eliminates duplicates in *paths
typeset -gU cdpath fpath path
# Zsh search path for executable
path=(
/usr/local/{bin,sbin}
$path
)

View file

@ -0,0 +1,20 @@
#!/usr/bin/env zsh
# vim:syntax=zsh
# vim:filetype=zsh
# https://blog.patshead.com/2011/04/improve-your-oh-my-zsh-startup-time-maybe.html
skip_global_compinit=1
# http://disq.us/p/f55b78
setopt noglobalrcs
export SYSTEM=$(uname -s)
# https://github.com/sorin-ionescu/prezto/blob/master/runcoms/zshenv
# Ensure that a non-login, non-interactive shell has a defined environment.
if [[ ("$SHLVL" -eq 1 && ! -o LOGIN) && -s "${ZDOTDIR:-$HOME}/.zprofile" ]]; then
source "${ZDOTDIR:-$HOME}/.zprofile"
fi
export PATH=$PATH:${HOME}/.bin
export PATH=$HOME/bin:/usr/local/bin:$PATH

View file

@ -0,0 +1,225 @@
#!/usr/bin/env zsh
# vim:syntax=zsh
# vim:filetype=zsh
#
# .zshrc is sourced in interactive shells.
# It should contain commands to set up aliases,
# functions, options, key bindings, etc.
#
# for profiling zsh
# https://unix.stackexchange.com/a/329719/27109
#
# zmodload zsh/zprof
# Load and initialize the completion system ignoring insecure directories with a
# cache time of 20 hours, so it should almost always regenerate the first time a
# shell is opened each day.
autoload -Uz compinit
_comp_path="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompdump"
# #q expands globs in conditional expressions
if [[ $_comp_path(#qNmh-20) ]]; then
# -C (skip function check) implies -i (skip security check).
compinit -C -d "$_comp_path"
else
mkdir -p "$_comp_path:h"
compinit -i -d "$_comp_path"
# Keep $_comp_path younger than cache time even if it isn't regenerated.
touch "$_comp_path"
fi
unset _comp_path
#
# Completions
#
# load brew autocomplete
if [ -d "/home/linuxbrew/.linuxbrew/share/zsh/site-functions" ]; then
fpath+=(/home/linuxbrew/.linuxbrew/share/zsh/site-functions)
fi
#
# Options
#
setopt INC_APPEND_HISTORY # To save every command before it is executed
setopt SHARE_HISTORY # Share history between all sessions.
setopt APPEND_HISTORY # Append history to the history file.
setopt COMPLETE_IN_WORD # Complete from both ends of a word.
setopt ALWAYS_TO_END # Move cursor to the end of a completed word.
setopt PATH_DIRS # Perform path search even on command names with slashes.
setopt AUTO_MENU # Show completion menu on a successive tab press.
setopt AUTO_LIST # Automatically list choices on ambiguous completion.
setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a trailing slash.
setopt EXTENDED_GLOB # Needed for file modification glob modifiers with compinit.
unsetopt MENU_COMPLETE # Do not autoselect the first completion entry.
unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor.
setopt interactivecomments # Allow inline comments
setopt AUTO_CD # Auto changes to a directory without typing cd.
#
# Variables
#
export ZSHCONFIG=${ZDOTDIR:-$HOME}/.zsh
ZSH_THEME="spaceship"
# Standard style used by default for 'list-colors'
LS_COLORS=${LS_COLORS:-'di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:'}
#
# Styles
#
# Defaults.
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*:default' list-prompt '%S%M matches%s'
# Use caching to make completion for commands such as dpkg and apt usable.
zstyle ':completion::complete:*' use-cache on
zstyle ':completion::complete:*' cache-path "${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompcache"
# Case-insensitive (all), partial-word, and then substring completion.
if zstyle -t ':prezto:module:completion:*' case-sensitive; then
zstyle ':completion:*' matcher-list 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
setopt CASE_GLOB
else
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
unsetopt CASE_GLOB
fi
# Group matches and describe.
zstyle ':completion:*:*:*:*:*' menu select
zstyle ':completion:*:matches' group 'yes'
zstyle ':completion:*:options' description 'yes'
zstyle ':completion:*:options' auto-description '%d'
zstyle ':completion:*:corrections' format ' %F{green}-- %d (errors: %e) --%f'
zstyle ':completion:*:descriptions' format ' %F{yellow}-- %d --%f'
zstyle ':completion:*:messages' format ' %F{purple} -- %d --%f'
zstyle ':completion:*:warnings' format ' %F{red}-- no matches found --%f'
zstyle ':completion:*' format ' %F{yellow}-- %d --%f'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' verbose yes
# Fuzzy match mistyped completions.
zstyle ':completion:*' completer _complete _match _approximate
zstyle ':completion:*:match:*' original only
zstyle ':completion:*:approximate:*' max-errors 1 numeric
# Increase the number of errors based on the length of the typed word. But make
# sure to cap (at 7) the max-errors to avoid hanging.
zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3>7?7:($#PREFIX+$#SUFFIX)/3))numeric)'
# Don't complete unavailable commands.
zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))'
# Array completion element sorting.
zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
# Directories
zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories
zstyle ':completion:*:*:cd:*:directory-stack' menu yes select
zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path-directories' 'users' 'expand'
zstyle ':completion:*' squeeze-slashes true
# History
zstyle ':completion:*:history-words' stop yes
zstyle ':completion:*:history-words' remove-all-dups yes
zstyle ':completion:*:history-words' list false
zstyle ':completion:*:history-words' menu yes
# Environment Variables
zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-}
# Populate hostname completion. But allow ignoring custom entries from static
# */etc/hosts* which might be uninteresting.
zstyle -a ':prezto:module:completion:*:hosts' etc-host-ignores '_etc_host_ignores'
zstyle -e ':completion:*:hosts' hosts 'reply=(
${=${=${=${${(f)"$(cat {/etc/ssh/ssh_,~/.ssh/}known_hosts(|2)(N) 2> /dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ }
${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2> /dev/null))"}%%(\#${_etc_host_ignores:+|${(j:|:)~_etc_host_ignores}})*}
${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2> /dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}}
)'
# Don't complete uninteresting users...
zstyle ':completion:*:*:*:users' ignored-patterns \
adm amanda apache avahi beaglidx bin cacti canna clamav daemon \
dbus distcache dovecot fax ftp games gdm gkrellmd gopher \
hacluster haldaemon halt hsqldb ident junkbust ldap lp mail \
mailman mailnull mldonkey mysql nagios \
named netdump news nfsnobody nobody nscd ntp nut nx openvpn \
operator pcap postfix postgres privoxy pulse pvm quagga radvd \
rpc rpcuser rpm shutdown squid sshd sync uucp vcsa xfs '_*'
# Ignore multiple entries.
zstyle ':completion:*:(rm|kill|diff):*' ignore-line other
zstyle ':completion:*:rm:*' file-patterns '*:all-files'
# Kill
zstyle ':completion:*:*:*:*:processes' command 'ps -u $LOGNAME -o pid,user,command -w'
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;36=0=01'
zstyle ':completion:*:*:kill:*' menu yes select
zstyle ':completion:*:*:kill:*' force-list always
zstyle ':completion:*:*:kill:*' insert-ids single
# Man
zstyle ':completion:*:manuals' separate-sections true
zstyle ':completion:*:manuals.(^1*)' insert-sections true
# Media Players
zstyle ':completion:*:*:mpg123:*' file-patterns '*.(mp3|MP3):mp3\ files *(-/):directories'
zstyle ':completion:*:*:mpg321:*' file-patterns '*.(mp3|MP3):mp3\ files *(-/):directories'
zstyle ':completion:*:*:ogg123:*' file-patterns '*.(ogg|OGG|flac):ogg\ files *(-/):directories'
zstyle ':completion:*:*:mocp:*' file-patterns '*.(wav|WAV|mp3|MP3|ogg|OGG|flac):ogg\ files *(-/):directories'
# Mutt
if [[ -s "$HOME/.mutt/aliases" ]]; then
zstyle ':completion:*:*:mutt:*' menu yes select
zstyle ':completion:*:mutt:*' users ${${${(f)"$(<"$HOME/.mutt/aliases")"}#alias[[:space:]]}%%[[:space:]]*}
fi
# SSH/SCP/RSYNC
zstyle ':completion:*:(ssh|scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
zstyle ':completion:*:(scp|rsync):*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr
zstyle ':completion:*:ssh:*' group-order users hosts-domain hosts-host users hosts-ipaddr
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*'
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*'
autoload -U colors
colors
#####################
# Sourcing
#####################
# Brew
if [[ -o interactive ]] && [[ -d /home/linuxbrew/.linuxbrew ]]; then
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
if type brew &>/dev/null; then
if [[ -w /home/linuxbrew/.linuxbrew ]]; then
if [[ ! -L "$(brew --prefix)/share/zsh/site-functions/_brew" ]]; then
brew completions link
fi
fi
fi
fi
# Starship
if type "starship" > /dev/null; then
eval "$(starship init zsh)"
fi
#####################
# User configuration
#####################
# Load user zsh scripts
if [ -d $ZSHCONFIG ]; then
for f in $ZSHCONFIG/**/*.*sh
do
source "$f"
done
fi

View file

@ -0,0 +1,13 @@
#!/usr/bin/bash
# Look up the boot number for Windows in the EFI records
boot_number=$(echo $(efibootmgr) | grep -Po "(?<=Boot)\S{4}(?=( |\* )Windows)")
# Check that Windows EFI entry was found
if [ -z "$boot_number" ]; then
kdialog --error "Cannot find Windows boot in EFI, exiting"
exit 1
fi
# Set next boot to be Windows and reboot the machine
sudo efibootmgr -n "${boot_number}" && reboot

10
system_files/shared/usr/bin/dnf Executable file
View file

@ -0,0 +1,10 @@
#!/usr/bin/bash
# Redirect to dnf5 if we are running inside a container
if systemd-detect-virt -cq || { [[ -e /run/.containerenv || -e /.dockerenv ]]; }; then
exec dnf5 "$@"
fi
echo -e "ERROR: Hello stargazers looks like you are trying to use DNF on Aurora, please \e]8;;https://docs.getaurora.dev/guides/software/\aread our documentation here\e]8;;\a\n\e]8;;https://docs.getaurora.dev/guides/software/\ahttps://docs.getaurora.dev/guides/software/\e]8;;\a\n"
exit 1

View file

@ -0,0 +1,19 @@
#!/usr/bin/bash
# Shim to handle KDE only supporting -e
# https://bugs.kde.org/show_bug.cgi?id=459616
# We replace all standalone occurrences, but ignore others, e.g. in 'distrobox-enter'
args=()
for arg in ${@}; do
if [[ "$arg" == -e ]]; then
args+=("--")
else
args+=("$arg")
fi
done
# Dolphin integration requires --new-window to function properly
if [[ ! "${args[@]}" =~ "--" && ! "${args[@]}" =~ "-h" && ! "${args[@]}" =~ "-x" ]]; then
/usr/bin/ptyxis --new-window "${args[@]}"
else
/usr/bin/ptyxis "${args[@]}"
fi

View file

@ -0,0 +1,59 @@
#!/bin/sh
id="$(echo "$@" | grep -Eo ' [a-zA-Z0-9]{64} ' | tr -d ' ')"
PODMAN_COMMAND="$(command -v podman 2> /dev/null)"
DISTROBOX_COMMAND="$(command -v distrobox 2> /dev/null)"
# if we're in a flatpak, use podman-remote
# else we fallback to host-spawn
if [ -n "$FLATPAK_ID" ]; then
if command -v podman-remote > /dev/null 2>&1; then
PODMAN_COMMAND="podman-remote"
else
PODMAN_COMMAND="flatpak-spawn --host podman"
fi
DISTROBOX_COMMAND="flatpak-spawn --host distrobox"
fi
# This little workaround is used to ensure
# we use our distrobox to properly enter the container
if echo "$@" | grep -q 'exec'; then
# if exec && distrobox -> use distrobox-enter --
if [ "$($PODMAN_COMMAND inspect --type container --format '{{ index .Config.Labels "manager" }}' "${id}")" = "distrobox" ]; then
# Ensure that our distrobox containers will use different vscode-servers by symlinking to different paths
if [ -n "${id}" ]; then
$PODMAN_COMMAND exec -u "$USER" "${id}" /bin/sh -c '
if [ ! -L "${HOME}/.vscode-server" ]; then
[ -e "${HOME}/.vscode-server" ] && mv "${HOME}/.vscode-server" /var/tmp
[ -d /var/tmp/.vscode-server ] && mkdir /var/tmp/.vscode-server
ln -sf /var/tmp/.vscode-server "$HOME"
elif [ ! -e "${HOME}/.vscode-server" ]; then
mkdir /var/tmp/.vscode-server
fi'
fi
# Remove everything from $@ and leave only the execution part, we start
# capturing after we meet our ID
dbox_args="-e A=B"
capture="false"
for i; do
if [ $capture = "true" ]; then
set -- "$@" "$i"
elif echo "$i" | grep -q "VSCODE"; then
dbox_args="$dbox_args -e $i"
elif echo "$i" | grep -q "\-w"; then
dbox_args="$dbox_args -w $2"
fi
if [ "$i" = "${id}" ]; then
capture="true"
fi
shift
done
$DISTROBOX_COMMAND enter --additional-flags "${dbox_args}" "${id}" -- "$@"
exit $?
fi
fi
$PODMAN_COMMAND "$@"

View file

@ -0,0 +1,101 @@
#!/usr/bin/bash
#shellcheck disable=1091
source /usr/lib/ujust/ujust.sh
IMAGE_INFO="/usr/share/ublue-os/image-info.json"
IMAGE_NAME=$(jq -r '."image-name"' < "$IMAGE_INFO")
IMAGE_TAG=$(jq -r '."image-tag"' < "$IMAGE_INFO")
IMAGE_VENDOR=$(jq -r '."image-vendor"' < "$IMAGE_INFO")
FEDORA_VERSION=$(jq -r '."fedora-version"' < "$IMAGE_INFO")
IMAGE_REGISTRY="ghcr.io/${IMAGE_VENDOR}"
ROOT_FS=$(findmnt -n -o FSTYPE /)
function list_tags() {
local filter="$1"
skopeo list-tags "docker://${IMAGE_REGISTRY}/${IMAGE_NAME}" \
| jq -r '.Tags[]' \
| grep -E --color=never "$filter" \
| sort -rV | head -n 31
}
function rebase_helper() {
echo "Current image: ${IMAGE_NAME}:${IMAGE_TAG} (Fedora ${FEDORA_VERSION})"
echo "Root filesystem: ${ROOT_FS}"
echo
# Step 1: Choose image variant
echo "Select your Aurora image:"
IMAGE_OPTIONS=(aurora aurora-dx)
# Add current image if it's not already in the list
if [[ ! " ${IMAGE_OPTIONS[*]} " =~ \ ${IMAGE_NAME}\ ]]; then
IMAGE_OPTIONS+=("${IMAGE_NAME}")
fi
IMAGE_OPTIONS+=(cancel)
selected_image=$(Choose "${IMAGE_OPTIONS[@]}")
[[ "$selected_image" == "cancel" ]] && exit 0
IMAGE_NAME="$selected_image"
base_image="${IMAGE_REGISTRY}/${IMAGE_NAME}"
# Step 2: Channel Selection
declare -a CHANNELS
CHANNELS=(stable stable-daily latest)
echo "The default selection is stable. Stable-daily (daily builds) are for enthusiasts, and latest is for testers"
# Fetch Fedora version per channel and build display list
declare -a CHANNELS_DISPLAY
declare -a CHANNELS_RAW
for channel in "${CHANNELS[@]}"; do
version=$(skopeo inspect --no-tags docker://${base_image}:${channel} | jq -r '.Labels["org.opencontainers.image.version"]' | sed 's/.*-//' | cut -c 1-2)
CHANNELS_DISPLAY+=("${channel} (F${version})")
CHANNELS_RAW+=("${channel}")
done
channel_choice=$(Choose "${CHANNELS_DISPLAY[@]}" cancel)
[[ "$channel_choice" == "cancel" ]] && exit 0
channel_selected=${channel_choice%% *}
rebase_target="${base_image}:${channel_selected}"
# Step 3: Date selection (scoped to channel)
echo "Would you like to pin to a specific build date?"
echo "NOTICE! You won't receive any updates after pinning to a specific build date."
date_choice=$(Choose "no" "yes" cancel)
[[ "$date_choice" == "cancel" ]] && return 1
if [[ "$date_choice" == "yes" ]]; then
echo "Fetching available tags for channel: $channel_selected..."
filter="${channel_selected}-[0-9]{8}"
valid_tags=( $(list_tags "$filter") )
[[ "${#valid_tags[@]}" -eq 0 ]] && { echo "No tags found for filter: $filter"; return 1; }
selected_tag=$(Choose cancel "${valid_tags[@]}")
[[ "$selected_tag" == "cancel" ]] && return 1
rebase_target="${base_image}:${selected_tag}"
fi
echo "Rebase target: ${rebase_target}"
echo "Confirm rebase?"
[[ $(Confirm) -ne 0 ]] && return 1
if grep -q "^LockLayering=true" /etc/rpm-ostreed.conf; then
pkexec bootc switch --enforce-container-sigpolicy "${rebase_target}"
else
rpm-ostree rebase ostree-image-signed:docker://"${rebase_target}"
fi
}
echo "Choose your action."
option=$(Choose rebase cancel)
if [[ "$option" == "rebase" ]]; then
rebase_helper || /usr/bin/ublue-rollback-helper
else
exit 0
fi

View file

@ -0,0 +1,14 @@
#!/bin/sh
container_name="$(printf '{"containerName":"%s"}' "$1" | od -A n -t x1 | tr -d "\n\t ")"
if flatpak list | grep -q com.visualstudio.code; then
code_command="flatpak run com.visualstudio.code"
elif command -v code 2> /dev/null > /dev/null; then
code_command="code"
else
echo "vscode not installed"
exit 127
fi
${code_command} --folder-uri="vscode-remote://attached-container+${container_name}/${2}"

View file

@ -0,0 +1,9 @@
#!/usr/bin/bash
# Redirect to dnf5 if we are running inside a container
if systemd-detect-virt -cq || { [[ -e /run/.containerenv || -e /.dockerenv ]]; }; then
exec dnf5 "$@"
fi
echo -e "ERROR: Hello stargazers looks like you are trying to use YUM on Aurora, please \e]8;;https://docs.getaurora.dev/guides/software/\aread our documentation here\e]8;;\a\n\e]8;;https://docs.getaurora.dev/guides/software/\ahttps://docs.getaurora.dev/guides/software/\e]8;;\a\n"
exit 1

View file

@ -0,0 +1,2 @@
[install]
root-fs-type = "btrfs"

View file

@ -0,0 +1 @@
compress="zstd"

View file

@ -0,0 +1 @@
add_dracutmodules+=" fido2 tpm2-tss pkcs11 pcsc "

View file

@ -0,0 +1,6 @@
# Enable Legacy AMD hardware support
options amdgpu si_support=1
options amdgpu cik_support=1
options radeon si_support=0
options radeon cik_support=0

View file

@ -0,0 +1,5 @@
[Theme]
Current=01-breeze-aurora
# The name comes from /usr/share/icons/breeze_cursors
CursorTheme=breeze_cursors
CursorSize=24

View file

@ -0,0 +1,2 @@
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=524288

View file

@ -0,0 +1,12 @@
[Unit]
Description=Add plugdev groups
[Service]
Type=oneshot
ExecStart=/usr/libexec/aurora-groups.sh
Restart=on-failure
RestartSec=30
StartLimitInterval=0
[Install]
WantedBy=default.target

View file

@ -0,0 +1,10 @@
[Unit]
Description=Update the dconf database onboot
Documentation=https://github.com/coreos/rpm-ostree/issues/1944
[Service]
Type=oneshot
ExecStart=/usr/bin/dconf update
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,20 @@
[Unit]
Description=Remove Fedora flatpak repositories
Before=flatpak-preinstall.service
Before=flatpak-system-helper.service
# Make sure we run before the Fedora service if it exists
Before=flatpak-add-fedora-repos.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/flatpak remote-delete --system fedora
ExecStart=/usr/bin/flatpak remote-delete --system fedora-testing
# Make sure even if flatpak-add-fedora-repos.service exists, it
# won't run.
ExecStart=/usr/bin/touch /var/lib/flatpak/.fedora-initialized
# Flatpak will fail if the remote doesn't exist, but we don't mind
SuccessExitStatus=1
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,19 @@
[Unit]
Description=Preinstall Flatpaks
After=network-online.target
Wants=network-online.target
ConditionPathExists=/usr/bin/flatpak
Documentation=man:flatpak-preinstall(1)
[Service]
Type=oneshot
ExecStart=/usr/bin/flatpak preinstall -y
RemainAfterExit=true
Restart=on-failure
RestartSec=30
StartLimitIntervalSec=600
StartLimitBurst=3
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,11 @@
[Unit]
Name=Universal Blue Missing /etc/hostname Workaround
Description=Workaround for the missing /etc/hostname file on Universal Blue systems
After=network.target
ConditionPathExists=!/etc/hostname
[Service]
ExecStart=/usr/bin/touch /etc/hostname
[Install]
WantedBy=default.target

View file

@ -0,0 +1,18 @@
[Unit]
Description=Setup Guest User dotfiles
After=local-fs.target
ConditionHost=ContainerTestUblueOS
ConditionVirtualization=yes
ConditionPathExists=/var/home/ublue-os
ConditionPathExists=!/run/ostree-booted
ConditionPathExists=!/var/home/ublue-os/.%N.stamp
[Service]
User=ublue-os
Type=oneshot
ExecStart=/usr/bin/cp -r /etc/skel/.* /var/home/ublue-os/
ExecStart=/usr/bin/touch /var/home/ublue-os/.%N.stamp
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target default.target

View file

@ -0,0 +1,20 @@
# Workaround to allow KDE Discover to install sddm themes
# TODO: Remove this whenever sddm allows installing themes other than in /usr/share.
# See https://github.com/sddm/sddm/issues/1561
[Unit]
Description=KDE writable sddm workaround
RequiresMountsFor=/usr /var
ConditionPathExists=/usr/share/sddm
ConditionPathExists=/var/sddm_themes/themes
ConditionPathExists=/var/sddm_themes/themes.work
PartOf=aurora-kde-themes-workaround.target
[Mount]
Type=overlay
What=overlay
Where=/usr/share/sddm/themes
Options=lowerdir=/usr/share/sddm/themes,upperdir=/var/sddm_themes/themes,workdir=/var/sddm_themes/themes.work
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,14 @@
[Unit]
Description=Bazaar background service
Documentation=https://github.com/kolunmi/bazaar
After=graphical-session.target
StartLimitBurst=10
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=flatpak run --command=bazaar io.github.kolunmi.Bazaar --no-window
StandardOutput=journal
[Install]
WantedBy=graphical-session.target

View file

@ -0,0 +1,11 @@
[Unit]
Description=Update Bluefin Wallpaper of the Month
After=graphical-session.target
[Service]
Type=oneshot
ExecStart=/usr/libexec/ublue-bluefin-plasma-wallpaper %i
RemainAfterExit=true
[Install]
WantedBy=default.target

View file

@ -0,0 +1 @@
L /var/lib/flatpak/overrides/io.github.kolunmi.Bazaar - - - - /usr/share/ublue-os/flatpak-overrides/io.github.kolunmi.Bazaar

View file

@ -0,0 +1 @@
d /var/log/pcp/pmcd - - - -

View file

@ -0,0 +1,6 @@
# Workaround to allow KDE Discover to install sddm themes
# TODO: Remove this whenever sddm allows installing themes other than in /usr/share.
# See https://github.com/sddm/sddm/issues/1561
d /var/sddm_themes/themes 0755 - - -
d /var/sddm_themes/themes.work 0755 - - -

View file

@ -0,0 +1,36 @@
#!/usr/bin/env bash
# SCRIPT VERSION
GROUP_SETUP_VER=2
GROUP_SETUP_VER_FILE="/etc/ublue/aurora-groups"
GROUP_SETUP_VER_RAN=$(cat "$GROUP_SETUP_VER_FILE")
# make the directory if it doesn't exist
mkdir -p /etc/ublue
# Run script if updated
if [[ -f $GROUP_SETUP_VER_FILE && "$GROUP_SETUP_VER" = "$GROUP_SETUP_VER_RAN" ]]; then
echo "Group setup has already run. Exiting..."
exit 0
fi
# Function to append a group entry to /etc/group
append_group() {
local group_name="$1"
if ! grep -q "^$group_name:" /etc/group; then
echo "Appending $group_name to /etc/group"
grep "^$group_name:" /usr/lib/group | tee -a /etc/group >/dev/null
fi
}
# Setup Groups
append_group plugdev
wheelarray=($(getent group wheel | cut -d ":" -f 4 | tr ',' '\n'))
for user in $wheelarray; do
usermod -aG plugdev $user
done
# Prevent future executions
echo "Writing state file"
echo "$GROUP_SETUP_VER" >"$GROUP_SETUP_VER_FILE"

View file

@ -0,0 +1,26 @@
#!/bin/bash
source /usr/lib/ujust/ujust.sh
GRUB_STATE="$(sudo grub2-editenv list | grep "^menu_auto_hide=")"
if [[ "$GRUB_STATE" == "menu_auto_hide=1" ]]; then
GRUB_STATE="${bold}Hidden${normal}"
elif [[ "$GRUB_STATE" == "menu_auto_hide=2" ]]; then
GRUB_STATE="${bold}Always Hidden${normal}"
else
GRUB_STATE="${bold}Unhidden${normal}"
fi
echo "${bold}Grub menu configuration${normal}"
echo "Grub menu is set to: $GRUB_STATE"
OPTION=$(Choose "Always Hide Grub" "Hide Grub" "Show Grub" "Cancel")
if [[ "${OPTION,,}" =~ ^always ]]; then
sudo grub2-editenv - set menu_auto_hide=2
GRUB_STATE="${bold}Always Hidden${normal}"
elif [[ "${OPTION,,}" =~ ^hide ]]; then
sudo grub2-editenv - set menu_auto_hide=1
GRUB_STATE="${bold}Hidden${normal}"
elif [[ "${OPTION,,}" =~ ^show ]]; then
sudo grub2-editenv - set menu_auto_hide=0
GRUB_STATE="${bold}Unhidden${normal}"
else
echo "Not Changing Settings"
fi
echo "Grub menu is set to: $GRUB_STATE"

View file

@ -0,0 +1,14 @@
#!/bin/bash
set -oux pipefail
HEMI="${1:-north}"
if [[ "$HEMI" != "north" && "$HEMI" != "south" ]]; then
echo "Error: Invalid hemisphere '$HEMI'. Must be 'north' or 'south'."
exit 1
fi
mkdir -p ~/.local/share/wallpapers/Bluefin
cd ~/.local/share/wallpapers/Bluefin
curl -Lo ${HEMI}.md5 https://github.com/grandpares/plasma-bluefin-wallpaper/releases/latest/download/${HEMI}.md5
md5sum --status -c ${HEMI}.md5 || curl -Lo ${HEMI}.avif https://github.com/grandpares/plasma-bluefin-wallpaper/releases/latest/download/${HEMI}.avif

View file

@ -0,0 +1,30 @@
#!/usr/bin/bash
# Script Version
VER=2
LOCAL_UBLUE_DIR="${XDG_DATA_HOME:-${HOME}/.local/share}/ublue"
VER_FILE="${LOCAL_UBLUE_DIR}/flatpak_manager_version"
VER_RAN=$(cat "$VER_FILE")
mkdir -p "${LOCAL_UBLUE_DIR}" || exit 1
# Install flatpaks if the list has been updated
ujust install-system-flatpaks "${LOCAL_UBLUE_DIR}/flatpak_current_list"
# Run script if updated
if [[ -f $VER_FILE && $VER = "$VER_RAN" ]]; then
echo "Flatpak manager v$VER has already ran. Exiting..."
exit 0
fi
# Set up Firefox default configuration
mkdir -p /var/lib/flatpak/extension/org.mozilla.firefox.systemconfig/$(arch)/stable/defaults/pref
rm -f /var/lib/flatpak/extension/org.mozilla.firefox.systemconfig/$(arch)/stable/defaults/pref/*aurora*.js
/usr/bin/cp -rf /usr/share/ublue-os/firefox-config/* /var/lib/flatpak/extension/org.mozilla.firefox.systemconfig/$(arch)/stable/defaults/pref/
# Use until yafti rework is done
flatpak --system update -y
notify-send "Welcome to Aurora" "Your computer is ready!" --app-name="Flatpak Manager Service" -u NORMAL
echo $VER >"$VER_FILE"

View file

@ -0,0 +1,10 @@
#!/usr/bin/bash
# shellcheck disable=2046
echo -n $(jq -r '"\(.["image-name"]):\(.["image-tag"])"' < /usr/share/ublue-os/image-info.json)
if [[ $(rpm-ostree status --booted) =~ "signed" ]]; then
echo -n " 🔐"
else
echo -n -e " \033[5m🔓\033[0m"
fi

Some files were not shown because too many files have changed in this diff Show more