feat: Introduce initial Aurora OS configuration, branding assets, and system components across various directories.
14
brew/aurora-ai.Brewfile
Normal 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
|
|
@ -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"
|
||||
15
brew/aurora-fonts.Brewfile
Normal 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
|
|
@ -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"
|
||||
3
flatpaks/system-flatpaks-dx.list
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
io.podman_desktop.PodmanDesktop
|
||||
io.github.getnf.embellish
|
||||
me.iepure.devtoolbox
|
||||
20
flatpaks/system-flatpaks.list
Normal 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
|
|
@ -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
|
|
@ -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
|
|
@ -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 |
21
logos/auroralogo-circle-symbolic.svg
Normal 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 |
58
logos/auroralogo-pride-trans.svg
Normal 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 |
85
logos/auroralogo-pride.svg
Normal 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 |
32
logos/auroralogo-white.svg
Normal 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 |
21
logos/distributor-logo-symbolic.svg
Normal 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 |
53
logos/distributor-logo.svg
Normal 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 |
8
system_files/dx/etc/profile.d/vscode-aurora-profile.sh
Normal 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
|
||||
5
system_files/dx/etc/skel/.config/Code/User/settings.json
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"window.titleBarStyle": "custom",
|
||||
"editor.fontFamily": "'Cascadia Code', 'Droid Sans Mono', 'monospace', monospace, 'Symbols Nerd Font Mono'",
|
||||
"update.mode": "none"
|
||||
}
|
||||
1
system_files/dx/usr/lib/sysctl.d/docker-ce.conf
Normal file
|
|
@ -0,0 +1 @@
|
|||
net.ipv4.ip_forward = 1
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
3
system_files/dx/usr/lib/tmpfiles.d/incus-workaround.conf
Normal 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
|
||||
2
system_files/dx/usr/lib/tmpfiles.d/swtpm-workaround.conf
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
C /usr/local/bin/overrides/swtpm - - - - /usr/bin/swtpm
|
||||
d /var/lib/swtpm-localca 0750 tss tss - -
|
||||
40
system_files/dx/usr/libexec/aurora-dx-groups
Executable 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"
|
||||
34
system_files/dx/usr/libexec/aurora-dx-user-vscode
Executable 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"
|
||||
79
system_files/dx/usr/libexec/aurora-incus
Executable 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."
|
||||
|
|
@ -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
|
||||
BIN
system_files/shared/etc/bazaar/01-aurora-bazaar.jxl
Normal file
BIN
system_files/shared/etc/bazaar/02-aurora-bazaar.jxl
Normal file
BIN
system_files/shared/etc/bazaar/03-aurora-bazaar.jxl
Normal file
BIN
system_files/shared/etc/bazaar/04-aurora-bazaar.jxl
Normal file
BIN
system_files/shared/etc/bazaar/05-aurora-bazaar.jxl
Normal file
BIN
system_files/shared/etc/bazaar/06-aurora-bazaar.jxl
Normal file
BIN
system_files/shared/etc/bazaar/07-aurora-bazaar.jxl
Normal file
BIN
system_files/shared/etc/bazaar/08-aurora-bazaar.jxl
Normal file
33
system_files/shared/etc/bazaar/blocklist.txt
Normal 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
|
||||
BIN
system_files/shared/etc/bazaar/browse.jxl
Normal file
384
system_files/shared/etc/bazaar/config.yaml
Normal 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
|
||||
BIN
system_files/shared/etc/bazaar/favourites.jxl
Normal file
BIN
system_files/shared/etc/bazaar/music.jxl
Normal 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
|
||||
3
system_files/shared/etc/geoclue/conf.d/99-beacondb.conf
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
[wifi]
|
||||
enable=true
|
||||
url=https://api.beacondb.net/v1/geolocate
|
||||
4
system_files/shared/etc/profile.d/askpass.sh
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/bash
|
||||
|
||||
SUDO_ASKPASS='/usr/bin/ksshaskpass'
|
||||
export SUDO_ASKPASS
|
||||
4
system_files/shared/etc/profile.d/ksshaskpass.sh
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
SSH_ASKPASS=/usr/bin/ksshaskpass
|
||||
export SSH_ASKPASS
|
||||
3
system_files/shared/etc/profile.d/neofetch.sh
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
|
||||
alias neofetch=fastfetch
|
||||
1
system_files/shared/etc/profile.d/open.sh
Executable file
|
|
@ -0,0 +1 @@
|
|||
alias open="xdg-open &>/dev/null"
|
||||
17
system_files/shared/etc/rpm-ostreed.conf
Normal 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
|
||||
2
system_files/shared/etc/skel/.config/gtk-3.0/gtk.css
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
@import 'colors.css';
|
||||
@import 'window_decorations.css';
|
||||
2
system_files/shared/etc/skel/.config/gtk-4.0/gtk.css
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
@import 'colors.css';
|
||||
@import 'kde_window_geometry.css';
|
||||
|
|
@ -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;
|
||||
}
|
||||
206
system_files/shared/etc/skel/.config/starship.toml
Normal 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"
|
||||
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[Context]
|
||||
filesystems=~/.local/share/applications;~/.local/share/icons
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
[Context]
|
||||
sockets=wayland;
|
||||
filesystems=xdg-run/podman;
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[io/github/dvlv/boxbuddyrs]
|
||||
default-terminal='Ptyxis'
|
||||
41
system_files/shared/etc/systemd/user.conf
Normal 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
|
||||
3
system_files/shared/etc/ublue-os/bling.json
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"bling-cli-name": "aurora-cli"
|
||||
}
|
||||
4
system_files/shared/etc/ublue-os/setup.json
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"check-secureboot": true,
|
||||
"setup-version": 1
|
||||
}
|
||||
1
system_files/shared/etc/xdg/kcm-about-distrorc
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
../../usr/share/kde-settings/kde-profile/default/xdg/kcm-about-distrorc
|
||||
1
system_files/shared/etc/xdg/kdeglobals
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
../../usr/share/kde-settings/kde-profile/default/xdg/kdeglobals
|
||||
1
system_files/shared/etc/xdg/krunnerrc
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
../../usr/share/kde-settings/kde-profile/default/xdg/krunnerrc
|
||||
1
system_files/shared/etc/xdg/kwinrc
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
../../usr/share/kde-settings/kde-profile/default/xdg/kwinrc
|
||||
26
system_files/shared/etc/zsh/zlogin
Normal 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
|
||||
) &!
|
||||
3
system_files/shared/etc/zsh/zlogout
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env zsh
|
||||
# vim:syntax=zsh
|
||||
# vim:filetype=zsh
|
||||
28
system_files/shared/etc/zsh/zprofile
Normal 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
|
||||
)
|
||||
20
system_files/shared/etc/zsh/zshenv
Normal 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
|
||||
225
system_files/shared/etc/zsh/zshrc
Normal 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
|
||||
13
system_files/shared/usr/bin/boot-to-windows
Executable 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
|
|
@ -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
|
||||
|
||||
19
system_files/shared/usr/bin/kde-ptyxis
Executable 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
|
||||
59
system_files/shared/usr/bin/podman-host
Executable 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 "$@"
|
||||
101
system_files/shared/usr/bin/ublue-rollback-helper
Executable 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
|
||||
14
system_files/shared/usr/bin/vscode-distrobox
Executable 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}"
|
||||
9
system_files/shared/usr/bin/yum
Executable 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
|
||||
2
system_files/shared/usr/lib/bootc/install/20-aurora.toml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
[install]
|
||||
root-fs-type = "btrfs"
|
||||
|
|
@ -0,0 +1 @@
|
|||
compress="zstd"
|
||||
|
|
@ -0,0 +1 @@
|
|||
add_dracutmodules+=" fido2 tpm2-tss pkcs11 pcsc "
|
||||
6
system_files/shared/usr/lib/modprobe.d/amd-legacy.conf
Normal 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
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[Theme]
|
||||
Current=01-breeze-aurora
|
||||
# The name comes from /usr/share/icons/breeze_cursors
|
||||
CursorTheme=breeze_cursors
|
||||
CursorSize=24
|
||||
2
system_files/shared/usr/lib/sysctl.d/80-inotify.conf
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fs.inotify.max_user_instances=8192
|
||||
fs.inotify.max_user_watches=524288
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
14
system_files/shared/usr/lib/systemd/user/bazaar.service
Normal 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
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1 @@
|
|||
L /var/lib/flatpak/overrides/io.github.kolunmi.Bazaar - - - - /usr/share/ublue-os/flatpak-overrides/io.github.kolunmi.Bazaar
|
||||
1
system_files/shared/usr/lib/tmpfiles.d/pmcd.conf
Normal file
|
|
@ -0,0 +1 @@
|
|||
d /var/log/pcp/pmcd - - - -
|
||||
|
|
@ -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 - - -
|
||||
36
system_files/shared/usr/libexec/aurora-groups.sh
Executable 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"
|
||||
26
system_files/shared/usr/libexec/configure-grub.sh
Executable 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"
|
||||
14
system_files/shared/usr/libexec/ublue-bluefin-plasma-wallpaper
Executable 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
|
||||
30
system_files/shared/usr/libexec/ublue-flatpak-manager
Executable 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"
|
||||
10
system_files/shared/usr/libexec/ublue-image-info.sh
Executable 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
|
||||