Compare commits
2 Commits
add-t2-sup
...
update-oma
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8c30708b40 | ||
|
|
f5ec131b47 |
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 196 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 15 KiB |
@@ -1,6 +1,6 @@
|
|||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Name=Image Viewer
|
Name=Image Viewer
|
||||||
Exec=sh -c 'imv -n "$1" "$(dirname "$1")"' sh %f
|
Exec=imv %F
|
||||||
Icon=imv
|
Icon=imv
|
||||||
Type=Application
|
Type=Application
|
||||||
MimeType=image/png;image/jpeg;image/jpg;image/gif;image/bmp;image/webp;image/tiff;image/x-xcf;image/x-portable-pixmap;image/x-xbitmap;
|
MimeType=image/png;image/jpeg;image/jpg;image/gif;image/bmp;image/webp;image/tiff;image/x-xcf;image/x-portable-pixmap;image/x-xbitmap;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
focused_monitor="$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')"
|
focused_monitor="$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')"
|
||||||
|
|
||||||
sinks=$(pactl -f json list sinks | jq '[.[] | select((.ports | length == 0) or ([.ports[]? | .availability != "not available"] | any))]')
|
sinks=$(pactl -f json list sinks | jq '[.[] | select([.ports[]? | .availability == "available"] | any)]')
|
||||||
sinks_count=$(echo "$sinks" | jq '. | length')
|
sinks_count=$(echo "$sinks" | jq '. | length')
|
||||||
|
|
||||||
if [ "$sinks_count" -eq 0 ]; then
|
if [ "$sinks_count" -eq 0 ]; then
|
||||||
|
|||||||
@@ -6,12 +6,8 @@ FIRST_RUN_MODE=~/.local/state/omarchy/first-run.mode
|
|||||||
|
|
||||||
if [[ -f "$FIRST_RUN_MODE" ]]; then
|
if [[ -f "$FIRST_RUN_MODE" ]]; then
|
||||||
rm -f "$FIRST_RUN_MODE"
|
rm -f "$FIRST_RUN_MODE"
|
||||||
|
$OMARCHY_PATH/install/first-run/battery-monitor.sh
|
||||||
bash "$OMARCHY_PATH/install/first-run/battery-monitor.sh"
|
$OMARCHY_PATH/install/first-run/firewall.sh
|
||||||
bash "$OMARCHY_PATH/install/first-run/firewall.sh"
|
$OMARCHY_PATH/install/first-run/gnome-theme.sh
|
||||||
bash "$OMARCHY_PATH/install/first-run/gnome-theme.sh"
|
|
||||||
sudo rm -f /etc/sudoers.d/first-run
|
sudo rm -f /etc/sudoers.d/first-run
|
||||||
|
|
||||||
bash "$OMARCHY_PATH/install/first-run/wifi.sh"
|
|
||||||
bash "$OMARCHY_PATH/install/first-run/welcome.sh"
|
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
function exit_screensaver {
|
function exit_screensaver {
|
||||||
hyprctl keyword cursor:invisible false
|
|
||||||
pkill -x tte 2>/dev/null
|
pkill -x tte 2>/dev/null
|
||||||
pkill -f "alacritty --class Screensaver" 2>/dev/null
|
pkill -f "alacritty --class Screensaver" 2>/dev/null
|
||||||
exit 0
|
exit 0
|
||||||
@@ -9,8 +8,6 @@ function exit_screensaver {
|
|||||||
|
|
||||||
trap exit_screensaver SIGINT SIGTERM SIGHUP SIGQUIT
|
trap exit_screensaver SIGINT SIGTERM SIGHUP SIGQUIT
|
||||||
|
|
||||||
hyprctl keyword cursor:invisible true
|
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1)
|
effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1)
|
||||||
tte -i ~/.config/omarchy/branding/screensaver.txt \
|
tte -i ~/.config/omarchy/branding/screensaver.txt \
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ if [[ ! -d "$OUTPUT_DIR" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
pkill slurp || hyprshot -m ${1:-region} --raw |
|
pkill slurp || hyprshot -m ${1:-region} --raw --freeze |
|
||||||
satty --filename - \
|
satty --filename - \
|
||||||
--output-filename "$OUTPUT_DIR/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png" \
|
--output-filename "$OUTPUT_DIR/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png" \
|
||||||
--early-exit \
|
--early-exit \
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
notify-send " Updating time and timezone..."
|
|
||||||
sudo systemctl restart systemd-timesyncd
|
sudo systemctl restart systemd-timesyncd
|
||||||
sudo tzupdate
|
sudo tzupdate
|
||||||
new_timezone=$(timedatectl show -p Timezone --value)
|
new_timezone=$(timedatectl show -p Timezone --value)
|
||||||
omarchy-restart-waybar
|
omarchy-restart-waybar
|
||||||
notify-send " Time updated and timezone set to $new_timezone"
|
notify-send "Time synced and timezone set to $new_timezone"
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "Adding multilib repository for 32-bit compatibility"
|
||||||
|
sudo sed -i '/^#\s*\[multilib\]/,/^#\s*Include/ s/^#\s*//' /etc/pacman.conf
|
||||||
|
|
||||||
echo "Now pick dependencies matching your graphics card"
|
echo "Now pick dependencies matching your graphics card"
|
||||||
sudo pacman -Syu --noconfirm steam
|
sudo pacman -Syu --noconfirm steam
|
||||||
setsid gtk-launch steam >/dev/null 2>&1 &
|
setsid gtk-launch steam >/dev/null 2>&1 &
|
||||||
|
|||||||
@@ -1,12 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
default_browser=$(xdg-settings get default-web-browser)
|
exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$(xdg-settings get default-web-browser) 2>/dev/null | head -1) ${args[@]} $@
|
||||||
browser_exec=$(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$default_browser 2>/dev/null | head -1)
|
|
||||||
|
|
||||||
if [[ $browser_exec =~ (firefox|zen|librewolf) ]]; then
|
|
||||||
private_flag="--private-window"
|
|
||||||
else
|
|
||||||
private_flag="--incognito"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec setsid uwsm app -- "$browser_exec" "${@/--private/$private_flag}"
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ BACK_TO_EXIT=false
|
|||||||
back_to() {
|
back_to() {
|
||||||
local parent_menu="$1"
|
local parent_menu="$1"
|
||||||
|
|
||||||
if [[ "$BACK_TO_EXIT" == "true" ]]; then
|
if [[ "$DIRECT_ACCESS" == "true" ]]; then
|
||||||
exit 0
|
exit 0
|
||||||
elif [[ -n "$parent_menu" ]]; then
|
elif [[ -n "$parent_menu" ]]; then
|
||||||
"$parent_menu"
|
"$parent_menu"
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [[ -z $1 && $1 != "CNCLD" ]]; then
|
# omarchy-theme-set: Set a theme, specified by its name.
|
||||||
echo "Usage: omarchy-theme-set <theme-name>"
|
# Usage: omarchy-theme-set <theme-name>
|
||||||
|
|
||||||
|
if [[ -z "$1" && "$1" != "CNCLD" ]]; then
|
||||||
|
echo "Usage: omarchy-theme-set <theme-name>" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -13,8 +16,8 @@ THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
|||||||
|
|
||||||
# Check if the theme entered exists
|
# Check if the theme entered exists
|
||||||
if [[ ! -d "$THEME_PATH" ]]; then
|
if [[ ! -d "$THEME_PATH" ]]; then
|
||||||
echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR"
|
echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR" >&2
|
||||||
exit 1
|
exit 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Update theme symlinks
|
# Update theme symlinks
|
||||||
@@ -36,24 +39,19 @@ else
|
|||||||
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
|
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Change browser colors via policies
|
# Change Chromium colors
|
||||||
if omarchy-cmd-present chromium || omarchy-cmd-present brave; then
|
if command -v chromium &>/dev/null; then
|
||||||
|
if [[ -f ~/.config/omarchy/current/theme/light.mode ]]; then
|
||||||
|
chromium --no-startup-window --set-color-scheme="light"
|
||||||
|
else
|
||||||
|
chromium --no-startup-window --set-color-scheme="dark"
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -f ~/.config/omarchy/current/theme/chromium.theme ]]; then
|
if [[ -f ~/.config/omarchy/current/theme/chromium.theme ]]; then
|
||||||
rgb=$(<~/.config/omarchy/current/theme/chromium.theme)
|
chromium --no-startup-window --set-theme-color="$(<~/.config/omarchy/current/theme/chromium.theme)"
|
||||||
THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${rgb//,/ })
|
|
||||||
else
|
else
|
||||||
# Use a default, neutral grey if theme doesn't have a color
|
# Use a default, neutral grey if theme doesn't have a color
|
||||||
THEME_HEX_COLOR="#1c2027"
|
chromium --no-startup-window --set-theme-color="28,32,39"
|
||||||
fi
|
|
||||||
|
|
||||||
if omarchy-cmd-present chromium; then
|
|
||||||
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/chromium/policies/managed/color.json" >/dev/null
|
|
||||||
chromium --refresh-platform-policy --no-startup-window
|
|
||||||
fi
|
|
||||||
|
|
||||||
if omarchy-cmd-present brave; then
|
|
||||||
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/brave/policies/managed/color.json" >/dev/null
|
|
||||||
brave --refresh-platform-policy --no-startup-window
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -20,16 +20,13 @@ fi
|
|||||||
|
|
||||||
ICON_DIR="$HOME/.local/share/applications/icons"
|
ICON_DIR="$HOME/.local/share/applications/icons"
|
||||||
DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop"
|
DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop"
|
||||||
|
ICON_PATH="$ICON_DIR/$APP_NAME.png"
|
||||||
|
|
||||||
if [[ ! "$ICON_URL" =~ ^https?:// ]] && [ -f "$ICON_URL" ]; then
|
mkdir -p "$ICON_DIR"
|
||||||
ICON_PATH="$ICON_URL"
|
|
||||||
else
|
if ! curl -sL -o "$ICON_PATH" "$ICON_URL"; then
|
||||||
ICON_PATH="$ICON_DIR/$APP_NAME.png"
|
echo "Error: Failed to download icon."
|
||||||
mkdir -p "$ICON_DIR"
|
return 1
|
||||||
if ! curl -sL -o "$ICON_PATH" "$ICON_URL"; then
|
|
||||||
echo "Error: Failed to download icon."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $WINDOW_STYLE == "float" ]]; then
|
if [[ $WINDOW_STYLE == "float" ]]; then
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
echo -e "\e[32mUpdate Omarchy\e[0m"
|
echo -e "\e[32mUpdate Omarchy\e[0m"
|
||||||
|
|
||||||
git -C $OMARCHY_PATH pull --autostash
|
git -C $OMARCHY_PATH pull --autostash
|
||||||
git -C $OMARCHY_PATH diff --check || git -C $OMARCHY_PATH reset --merge
|
git -C $OMARCHY_PATH diff --check || git -C $OMARCHY_PATH reset --merge
|
||||||
|
|||||||
@@ -1,126 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Upload logs to 0x0.st
|
|
||||||
|
|
||||||
LOG_TYPE="${1:-install}"
|
|
||||||
TEMP_LOG="/tmp/upload-log.txt"
|
|
||||||
SYSTEM_INFO="/tmp/system-info.txt"
|
|
||||||
|
|
||||||
# Get system information if fastfetch is available
|
|
||||||
if command -v fastfetch >/dev/null 2>&1; then
|
|
||||||
{
|
|
||||||
echo "========================================="
|
|
||||||
echo "SYSTEM INFORMATION"
|
|
||||||
echo "========================================="
|
|
||||||
# Use fastfetch with no logo to get clean output
|
|
||||||
fastfetch --logo none --pipe 2>/dev/null || echo "Failed to get system info"
|
|
||||||
echo ""
|
|
||||||
echo "========================================="
|
|
||||||
echo "LOG CONTENT"
|
|
||||||
echo "========================================="
|
|
||||||
echo ""
|
|
||||||
} >"$SYSTEM_INFO"
|
|
||||||
else
|
|
||||||
# Fallback to basic info if fastfetch isn't available
|
|
||||||
{
|
|
||||||
echo "========================================="
|
|
||||||
echo "SYSTEM INFORMATION"
|
|
||||||
echo "========================================="
|
|
||||||
echo "Hostname: $(hostname)"
|
|
||||||
echo "Kernel: $(uname -r)"
|
|
||||||
echo "Date: $(date)"
|
|
||||||
echo ""
|
|
||||||
echo "========================================="
|
|
||||||
echo "LOG CONTENT"
|
|
||||||
echo "========================================="
|
|
||||||
echo ""
|
|
||||||
} >"$SYSTEM_INFO"
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$LOG_TYPE" in
|
|
||||||
install)
|
|
||||||
ARCHINSTALL_LOG="/var/log/archinstall/install.log"
|
|
||||||
OMARCHY_LOG="/var/log/omarchy-install.log"
|
|
||||||
|
|
||||||
# Combine system info with logs
|
|
||||||
cat "$SYSTEM_INFO" >"$TEMP_LOG"
|
|
||||||
cat $ARCHINSTALL_LOG $OMARCHY_LOG >>"$TEMP_LOG" 2>/dev/null
|
|
||||||
|
|
||||||
if [ ! -s "$TEMP_LOG" ]; then
|
|
||||||
echo "Error: No install logs found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Uploading installation log to 0x0.st..."
|
|
||||||
;;
|
|
||||||
|
|
||||||
this-boot)
|
|
||||||
# Combine system info with boot logs
|
|
||||||
cat "$SYSTEM_INFO" >"$TEMP_LOG"
|
|
||||||
journalctl -b 0 >>"$TEMP_LOG" 2>/dev/null
|
|
||||||
|
|
||||||
if [ ! -s "$TEMP_LOG" ]; then
|
|
||||||
echo "Error: No logs found for current boot"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Uploading current boot logs to 0x0.st..."
|
|
||||||
;;
|
|
||||||
|
|
||||||
last-boot)
|
|
||||||
# Combine system info with previous boot logs
|
|
||||||
cat "$SYSTEM_INFO" >"$TEMP_LOG"
|
|
||||||
journalctl -b -1 >>"$TEMP_LOG" 2>/dev/null
|
|
||||||
|
|
||||||
if [ ! -s "$TEMP_LOG" ]; then
|
|
||||||
echo "Error: No logs found for previous boot"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Uploading previous boot logs to 0x0.st..."
|
|
||||||
;;
|
|
||||||
|
|
||||||
installed)
|
|
||||||
# System info plus all installed packages
|
|
||||||
cat "$SYSTEM_INFO" >"$TEMP_LOG"
|
|
||||||
{
|
|
||||||
echo ""
|
|
||||||
echo "========================================="
|
|
||||||
echo "INSTALLED PACKAGES (pacman -Q)"
|
|
||||||
echo "========================================="
|
|
||||||
pacman -Q 2>/dev/null || echo "Failed to get package list"
|
|
||||||
} >>"$TEMP_LOG"
|
|
||||||
|
|
||||||
if [ ! -s "$TEMP_LOG" ]; then
|
|
||||||
echo "Error: Failed to gather system information"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Uploading system information to 0x0.st..."
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
echo "Usage: $0 [install|this-boot|last-boot|system-info]"
|
|
||||||
echo " install - Upload installation logs (default)"
|
|
||||||
echo " this-boot - Upload logs from current boot"
|
|
||||||
echo " last-boot - Upload logs from previous boot"
|
|
||||||
echo " installed - Upload system info and installed packages"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
URL=$(curl -sF "file=@$TEMP_LOG" -Fexpires=24 https://0x0.st)
|
|
||||||
|
|
||||||
if [ $? -eq 0 ] && [ -n "$URL" ]; then
|
|
||||||
echo "✓ Log uploaded successfully!"
|
|
||||||
echo "Share this URL:"
|
|
||||||
echo ""
|
|
||||||
echo " $URL"
|
|
||||||
echo ""
|
|
||||||
echo "This link will expire in 24 hours."
|
|
||||||
else
|
|
||||||
echo "Error: Failed to upload log file"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
url="$1"
|
|
||||||
web_url="https://app.zoom.us/wc/home"
|
|
||||||
|
|
||||||
if [[ $url =~ ^zoom(mtg|us):// ]]; then
|
|
||||||
confno=$(echo "$url" | sed -n 's/.*[?&]confno=\([^&]*\).*/\1/p')
|
|
||||||
|
|
||||||
if [[ -n $confno ]]; then
|
|
||||||
pwd=$(echo "$url" | sed -n 's/.*[?&]pwd=\([^&]*\).*/\1/p')
|
|
||||||
|
|
||||||
if [[ -n $pwd ]]; then
|
|
||||||
web_url="https://app.zoom.us/wc/join/$confno?pwd=$pwd"
|
|
||||||
else
|
|
||||||
web_url="https://app.zoom.us/wc/join/$confno"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec omarchy-launch-webapp "$web_url"
|
|
||||||
@@ -1,69 +1,46 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [ "$#" -lt 3 ]; then
|
if [ "$#" -ne 3 ]; then
|
||||||
echo -e "\e[32mLet's create a new web app you can start with the app launcher.\n\e[0m"
|
echo -e "\e[32mLet's create a new web app you can start with the app launcher.\n\e[0m"
|
||||||
APP_NAME=$(gum input --prompt "Name> " --placeholder "My favorite web app")
|
APP_NAME=$(gum input --prompt "Name> " --placeholder "My favorite web app")
|
||||||
APP_URL=$(gum input --prompt "URL> " --placeholder "https://example.com")
|
APP_URL=$(gum input --prompt "URL> " --placeholder "https://example.com")
|
||||||
ICON_REF=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG!)")
|
ICON_URL=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG!)")
|
||||||
CUSTOM_EXEC=""
|
|
||||||
MIME_TYPES=""
|
|
||||||
INTERACTIVE_MODE=true
|
|
||||||
else
|
else
|
||||||
APP_NAME="$1"
|
APP_NAME="$1"
|
||||||
APP_URL="$2"
|
APP_URL="$2"
|
||||||
ICON_REF="$3"
|
ICON_URL="$3"
|
||||||
CUSTOM_EXEC="$4" # Optional custom exec command
|
|
||||||
MIME_TYPES="$5" # Optional mime types
|
|
||||||
INTERACTIVE_MODE=false
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Ensure valid execution
|
if [[ -z "$APP_NAME" || -z "$APP_URL" || -z "$ICON_URL" ]]; then
|
||||||
if [[ -z "$APP_NAME" || -z "$APP_URL" || -z "$ICON_REF" ]]; then
|
|
||||||
echo "You must set app name, app URL, and icon URL!"
|
echo "You must set app name, app URL, and icon URL!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Refer to local icon or fetch remotely from URL
|
ICON_DIR="$HOME/.local/share/applications/icons"
|
||||||
if [[ $ICON_REF =~ ^https?:// ]]; then
|
|
||||||
if curl -sL -o "$ICON_PATH" "$ICON_REF"; then
|
|
||||||
ICON_PATH="$ICON_DIR/$APP_NAME.png"
|
|
||||||
else
|
|
||||||
echo "Error: Failed to download icon."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
ICON_PATH="$HOME/.local/share/applications/icons/$ICON_REF"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Use custom exec if provided, otherwise default behavior
|
|
||||||
if [[ -n $CUSTOM_EXEC ]]; then
|
|
||||||
EXEC_COMMAND="$CUSTOM_EXEC"
|
|
||||||
else
|
|
||||||
EXEC_COMMAND="omarchy-launch-webapp $APP_URL"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create application .desktop file
|
|
||||||
DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop"
|
DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop"
|
||||||
|
ICON_PATH="$ICON_DIR/$APP_NAME.png"
|
||||||
|
|
||||||
|
mkdir -p "$ICON_DIR"
|
||||||
|
|
||||||
|
if ! curl -sL -o "$ICON_PATH" "$ICON_URL"; then
|
||||||
|
echo "Error: Failed to download icon."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
cat >"$DESKTOP_FILE" <<EOF
|
cat >"$DESKTOP_FILE" <<EOF
|
||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Version=1.0
|
Version=1.0
|
||||||
Name=$APP_NAME
|
Name=$APP_NAME
|
||||||
Comment=$APP_NAME
|
Comment=$APP_NAME
|
||||||
Exec=$EXEC_COMMAND
|
Exec=omarchy-launch-webapp $APP_URL
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
Icon=$ICON_PATH
|
Icon=$ICON_PATH
|
||||||
StartupNotify=true
|
StartupNotify=true
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Add mime types if provided
|
|
||||||
if [[ -n $MIME_TYPES ]]; then
|
|
||||||
echo "MimeType=$MIME_TYPES" >>"$DESKTOP_FILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
chmod +x "$DESKTOP_FILE"
|
chmod +x "$DESKTOP_FILE"
|
||||||
|
|
||||||
if [[ $INTERACTIVE_MODE == true ]]; then
|
if [ "$#" -ne 3 ]; then
|
||||||
echo -e "You can now find $APP_NAME using the app launcher (SUPER + SPACE)\n"
|
echo -e "You can now find $APP_NAME using the app launcher (SUPER + SPACE)\n"
|
||||||
fi
|
fi
|
||||||
|
|||||||
3
boot.sh
@@ -1,8 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Set install mode to online since boot.sh is used for curl installations
|
|
||||||
export OMARCHY_ONLINE_INSTALL=true
|
|
||||||
|
|
||||||
ansi_art=' ▄▄▄
|
ansi_art=' ▄▄▄
|
||||||
▄█████▄ ▄███████████▄ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄
|
▄█████▄ ▄███████████▄ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄
|
||||||
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
|
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ $browser = omarchy-launch-browser
|
|||||||
bindd = SUPER, return, Terminal, exec, $terminal --working-directory="$(omarchy-cmd-terminal-cwd)"
|
bindd = SUPER, return, Terminal, exec, $terminal --working-directory="$(omarchy-cmd-terminal-cwd)"
|
||||||
bindd = SUPER, F, File manager, exec, uwsm app -- nautilus --new-window
|
bindd = SUPER, F, File manager, exec, uwsm app -- nautilus --new-window
|
||||||
bindd = SUPER, B, Browser, exec, $browser
|
bindd = SUPER, B, Browser, exec, $browser
|
||||||
bindd = SUPER SHIFT, B, Browser (private), exec, $browser --private
|
|
||||||
bindd = SUPER, M, Music, exec, uwsm app -- spotify
|
bindd = SUPER, M, Music, exec, uwsm app -- spotify
|
||||||
bindd = SUPER, N, Neovim, exec, $terminal -e nvim
|
bindd = SUPER, N, Neovim, exec, $terminal -e nvim
|
||||||
bindd = SUPER, T, Activity, exec, $terminal -e btop
|
bindd = SUPER, T, Activity, exec, $terminal -e btop
|
||||||
|
|||||||
@@ -16,5 +16,4 @@ source = ~/.config/hypr/monitors.conf
|
|||||||
source = ~/.config/hypr/input.conf
|
source = ~/.config/hypr/input.conf
|
||||||
source = ~/.config/hypr/bindings.conf
|
source = ~/.config/hypr/bindings.conf
|
||||||
source = ~/.config/hypr/envs.conf
|
source = ~/.config/hypr/envs.conf
|
||||||
source = ~/.config/hypr/looknfeel.conf
|
|
||||||
source = ~/.config/hypr/autostart.conf
|
source = ~/.config/hypr/autostart.conf
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ source = ~/.config/omarchy/current/theme/hyprlock.conf
|
|||||||
background {
|
background {
|
||||||
monitor =
|
monitor =
|
||||||
color = $color
|
color = $color
|
||||||
path = ~/.config/omarchy/current/background
|
|
||||||
blur_passes = 3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
animations {
|
animations {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Makes hyprsunset do nothing to the screen by default
|
# Makes hyprsunset do nothing to the screen by default
|
||||||
# Without this, the default applies some tint to the monitor
|
# Without this, the default applies some tint to the monitor
|
||||||
profile {
|
profile {
|
||||||
time = 07:00
|
time = 00:00
|
||||||
identity = true
|
identity = true
|
||||||
}
|
}
|
||||||
@@ -29,7 +29,3 @@ input {
|
|||||||
|
|
||||||
# Scroll faster in the terminal
|
# Scroll faster in the terminal
|
||||||
windowrule = scrolltouchpad 1.5, class:Alacritty
|
windowrule = scrolltouchpad 1.5, class:Alacritty
|
||||||
|
|
||||||
# Enable touchpad gestures for changing workspaces
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Gestures/
|
|
||||||
# gesture = 3, horizontal, workspace
|
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
# Change the default Omarchy look'n'feel
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
|
||||||
general {
|
|
||||||
# No gaps between windows
|
|
||||||
# gaps_in = 0
|
|
||||||
# gaps_out = 0
|
|
||||||
|
|
||||||
# Use master layout instead of dwindle
|
|
||||||
# layout = master
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
|
||||||
decoration {
|
|
||||||
# Use round window corners
|
|
||||||
# rounding = 8
|
|
||||||
}
|
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
"format": "{icon}",
|
"format": "{icon}",
|
||||||
"format-wifi": "{icon}",
|
"format-wifi": "{icon}",
|
||||||
"format-ethernet": "",
|
"format-ethernet": "",
|
||||||
"format-disconnected": "",
|
"format-disconnected": "",
|
||||||
"tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
"tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||||
"tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
"tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||||
"tooltip-format-disconnected": "Disconnected",
|
"tooltip-format-disconnected": "Disconnected",
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
"on-click-right": "pamixer -t",
|
"on-click-right": "pamixer -t",
|
||||||
"tooltip-format": "Playing at {volume}%",
|
"tooltip-format": "Playing at {volume}%",
|
||||||
"scroll-step": 5,
|
"scroll-step": 5,
|
||||||
"format-muted": "",
|
"format-muted": "",
|
||||||
"format-icons": {
|
"format-icons": {
|
||||||
"default": ["", "", ""]
|
"default": ["", "", ""]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,5 +10,5 @@ if [[ ! -v BASH_COMPLETION_VERSINFO && -f /usr/share/bash-completion/bash_comple
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Set complete path
|
# Set complete path
|
||||||
export PATH="$HOME/.local/bin:$PATH"
|
export PATH="./bin:$HOME/.local/bin:$PATH"
|
||||||
set +h
|
set +h
|
||||||
|
|||||||
@@ -5,13 +5,11 @@ bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu
|
|||||||
bindd = SUPER, ESCAPE, Power menu, exec, omarchy-menu system
|
bindd = SUPER, ESCAPE, Power menu, exec, omarchy-menu system
|
||||||
bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system
|
bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system
|
||||||
bindd = SUPER, K, Show key bindings, exec, omarchy-menu-keybindings
|
bindd = SUPER, K, Show key bindings, exec, omarchy-menu-keybindings
|
||||||
bindd = , XF86Calculator, Calculator, exec, gnome-calculator
|
|
||||||
|
|
||||||
# Aesthetics
|
# Aesthetics
|
||||||
bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, omarchy-toggle-waybar
|
bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, omarchy-toggle-waybar
|
||||||
bindd = SUPER CTRL, SPACE, Next background in theme, exec, omarchy-theme-bg-next
|
bindd = SUPER CTRL, SPACE, Next background in theme, exec, omarchy-theme-bg-next
|
||||||
bindd = SUPER SHIFT CTRL, SPACE, Pick new theme, exec, omarchy-menu theme
|
bindd = SUPER SHIFT CTRL, SPACE, Pick new theme, exec, omarchy-menu theme
|
||||||
bindd = SUPER, BACKSPACE, Toggle window transparency, exec, hyprctl dispatch setprop "address:$(hyprctl activewindow -j | jq -r '.address')" opaque toggle
|
|
||||||
|
|
||||||
# Notifications
|
# Notifications
|
||||||
bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss
|
bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss
|
||||||
|
|||||||
@@ -14,3 +14,8 @@ input {
|
|||||||
natural_scroll = false
|
natural_scroll = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||||
|
gestures {
|
||||||
|
workspace_swipe = false
|
||||||
|
}
|
||||||
|
|||||||
@@ -14,6 +14,3 @@ invisible=false
|
|||||||
|
|
||||||
[urgency=critical]
|
[urgency=critical]
|
||||||
default-timeout=0
|
default-timeout=0
|
||||||
|
|
||||||
[summary~="Setup Wi-Fi"]
|
|
||||||
on-button-left=exec sh -c 'alacritty --class=Impala -e impala & makoctl dismiss -n "$id"'
|
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ Include = /etc/pacman.d/mirrorlist
|
|||||||
[extra]
|
[extra]
|
||||||
Include = /etc/pacman.d/mirrorlist
|
Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
[multilib]
|
# [multilib]
|
||||||
Include = /etc/pacman.d/mirrorlist
|
# Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
[omarchy]
|
[omarchy]
|
||||||
SigLevel = Optional TrustAll
|
SigLevel = Optional TrustAll
|
||||||
|
|||||||
66
install.sh
Normal file → Executable file
@@ -1,18 +1,60 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Exit immediately if a command exits with a non-zero status
|
# Exit immediately if a command exits with a non-zero status
|
||||||
set -eEo pipefail
|
set -eE
|
||||||
|
|
||||||
# Define Omarchy locations
|
OMARCHY_PATH="$HOME/.local/share/omarchy"
|
||||||
export OMARCHY_PATH="$HOME/.local/share/omarchy"
|
OMARCHY_INSTALL="$OMARCHY_PATH/install"
|
||||||
export OMARCHY_INSTALL="$OMARCHY_PATH/install"
|
|
||||||
export OMARCHY_INSTALL_LOG_FILE="/var/log/omarchy-install.log"
|
|
||||||
export PATH="$OMARCHY_PATH/bin:$PATH"
|
export PATH="$OMARCHY_PATH/bin:$PATH"
|
||||||
|
|
||||||
# Install
|
# Preparation
|
||||||
source "$OMARCHY_INSTALL/helpers/all.sh"
|
source $OMARCHY_INSTALL/preflight/show-env.sh
|
||||||
source "$OMARCHY_INSTALL/preflight/all.sh"
|
source $OMARCHY_INSTALL/preflight/trap-errors.sh
|
||||||
source "$OMARCHY_INSTALL/packaging/all.sh"
|
source $OMARCHY_INSTALL/preflight/guard.sh
|
||||||
source "$OMARCHY_INSTALL/config/all.sh"
|
source $OMARCHY_INSTALL/preflight/chroot.sh
|
||||||
source "$OMARCHY_INSTALL/login/all.sh"
|
source $OMARCHY_INSTALL/preflight/pacman.sh
|
||||||
source "$OMARCHY_INSTALL/post-install/all.sh"
|
source $OMARCHY_INSTALL/preflight/migrations.sh
|
||||||
|
source $OMARCHY_INSTALL/preflight/first-run-mode.sh
|
||||||
|
|
||||||
|
# Packaging
|
||||||
|
source $OMARCHY_INSTALL/packages.sh
|
||||||
|
source $OMARCHY_INSTALL/packaging/fonts.sh
|
||||||
|
source $OMARCHY_INSTALL/packaging/lazyvim.sh
|
||||||
|
source $OMARCHY_INSTALL/packaging/webapps.sh
|
||||||
|
source $OMARCHY_INSTALL/packaging/tuis.sh
|
||||||
|
|
||||||
|
# Configuration
|
||||||
|
source $OMARCHY_INSTALL/config/config.sh
|
||||||
|
source $OMARCHY_INSTALL/config/theme.sh
|
||||||
|
source $OMARCHY_INSTALL/config/branding.sh
|
||||||
|
source $OMARCHY_INSTALL/config/git.sh
|
||||||
|
source $OMARCHY_INSTALL/config/gpg.sh
|
||||||
|
source $OMARCHY_INSTALL/config/timezones.sh
|
||||||
|
source $OMARCHY_INSTALL/config/increase-sudo-tries.sh
|
||||||
|
source $OMARCHY_INSTALL/config/increase-lockout-limit.sh
|
||||||
|
source $OMARCHY_INSTALL/config/ssh-flakiness.sh
|
||||||
|
source $OMARCHY_INSTALL/config/detect-keyboard-layout.sh
|
||||||
|
source $OMARCHY_INSTALL/config/xcompose.sh
|
||||||
|
source $OMARCHY_INSTALL/config/mise-ruby.sh
|
||||||
|
source $OMARCHY_INSTALL/config/docker.sh
|
||||||
|
source $OMARCHY_INSTALL/config/mimetypes.sh
|
||||||
|
source $OMARCHY_INSTALL/config/localdb.sh
|
||||||
|
source $OMARCHY_INSTALL/config/sudoless-asdcontrol.sh
|
||||||
|
source $OMARCHY_INSTALL/config/hardware/network.sh
|
||||||
|
source $OMARCHY_INSTALL/config/hardware/set-wireless-regdom.sh
|
||||||
|
source $OMARCHY_INSTALL/config/hardware/fix-fkeys.sh
|
||||||
|
source $OMARCHY_INSTALL/config/hardware/bluetooth.sh
|
||||||
|
source $OMARCHY_INSTALL/config/hardware/printer.sh
|
||||||
|
source $OMARCHY_INSTALL/config/hardware/usb-autosuspend.sh
|
||||||
|
source $OMARCHY_INSTALL/config/hardware/ignore-power-button.sh
|
||||||
|
source $OMARCHY_INSTALL/config/hardware/nvidia.sh
|
||||||
|
source $OMARCHY_INSTALL/config/hardware/intel.sh
|
||||||
|
source $OMARCHY_INSTALL/config/hardware/fix-f13-amd-audio-input.sh
|
||||||
|
|
||||||
|
# Login
|
||||||
|
source $OMARCHY_INSTALL/login/plymouth.sh
|
||||||
|
source $OMARCHY_INSTALL/login/limine-snapper.sh
|
||||||
|
source $OMARCHY_INSTALL/login/alt-bootloaders.sh
|
||||||
|
|
||||||
|
# Finishing
|
||||||
|
source $OMARCHY_INSTALL/reboot.sh
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
run_logged $OMARCHY_INSTALL/config/config.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/theme.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/branding.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/git.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/gpg.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/timezones.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/increase-sudo-tries.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/increase-lockout-limit.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/ssh-flakiness.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/detect-keyboard-layout.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/xcompose.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/mise-ruby.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/mise-work.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/docker.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/mimetypes.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/localdb.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/sudoless-asdcontrol.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/hardware/network.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/hardware/set-wireless-regdom.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-fkeys.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/hardware/bluetooth.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/hardware/printer.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/hardware/usb-autosuspend.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/hardware/ignore-power-button.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/hardware/nvidia.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-f13-amd-audio-input.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-bcm4360.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-spi-keyboard.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-t2.sh
|
|
||||||
2
install/config/branding.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Allow the user to change the branding for fastfetch and screensaver
|
# Allow the user to change the branding for fastfetch and screensaver
|
||||||
mkdir -p ~/.config/omarchy/branding
|
mkdir -p ~/.config/omarchy/branding
|
||||||
cp ~/.local/share/omarchy/icon.txt ~/.config/omarchy/branding/about.txt
|
cp ~/.local/share/omarchy/icon.txt ~/.config/omarchy/branding/about.txt
|
||||||
|
|||||||
2
install/config/config.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Copy over Omarchy configs
|
# Copy over Omarchy configs
|
||||||
mkdir -p ~/.config
|
mkdir -p ~/.config
|
||||||
cp -R ~/.local/share/omarchy/config/* ~/.config/
|
cp -R ~/.local/share/omarchy/config/* ~/.config/
|
||||||
|
|||||||
11
install/config/detect-keyboard-layout.sh
Normal file → Executable file
@@ -1,13 +1,16 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Copy over the keyboard layout that's been set in Arch during install to Hyprland
|
# Copy over the keyboard layout that's been set in Arch during install to Hyprland
|
||||||
conf="/etc/vconsole.conf"
|
conf="/etc/vconsole.conf"
|
||||||
hyprconf="$HOME/.config/hypr/input.conf"
|
hyprconf="$HOME/.config/hypr/input.conf"
|
||||||
|
|
||||||
if grep -q '^XKBLAYOUT=' "$conf"; then
|
layout=$(grep '^XKBLAYOUT=' "$conf" | cut -d= -f2 | tr -d '"')
|
||||||
layout=$(grep '^XKBLAYOUT=' "$conf" | cut -d= -f2 | tr -d '"')
|
variant=$(grep '^XKBVARIANT=' "$conf" | cut -d= -f2 | tr -d '"')
|
||||||
|
|
||||||
|
if [[ -n "$layout" ]]; then
|
||||||
sed -i "/^[[:space:]]*kb_options *=/i\ kb_layout = $layout" "$hyprconf"
|
sed -i "/^[[:space:]]*kb_options *=/i\ kb_layout = $layout" "$hyprconf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if grep -q '^XKBVARIANT=' "$conf"; then
|
if [[ -n "$variant" ]]; then
|
||||||
variant=$(grep '^XKBVARIANT=' "$conf" | cut -d= -f2 | tr -d '"')
|
|
||||||
sed -i "/^[[:space:]]*kb_options *=/i\ kb_variant = $variant" "$hyprconf"
|
sed -i "/^[[:space:]]*kb_options *=/i\ kb_variant = $variant" "$hyprconf"
|
||||||
fi
|
fi
|
||||||
|
|||||||
2
install/config/docker.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Configure Docker daemon:
|
# Configure Docker daemon:
|
||||||
# - limit log size to avoid running out of disk
|
# - limit log size to avoid running out of disk
|
||||||
# - use host's DNS resolver
|
# - use host's DNS resolver
|
||||||
|
|||||||
2
install/config/git.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Ensure git settings live under ~/.config
|
# Ensure git settings live under ~/.config
|
||||||
mkdir -p ~/.config/git
|
mkdir -p ~/.config/git
|
||||||
touch ~/.config/git/config
|
touch ~/.config/git/config
|
||||||
|
|||||||
2
install/config/gpg.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Setup GPG configuration with multiple keyservers for better reliability
|
# Setup GPG configuration with multiple keyservers for better reliability
|
||||||
sudo mkdir -p /etc/gnupg
|
sudo mkdir -p /etc/gnupg
|
||||||
sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/
|
sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/
|
||||||
|
|||||||
2
install/config/hardware/bluetooth.sh
Normal file → Executable file
@@ -1,2 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Turn on bluetooth by default
|
# Turn on bluetooth by default
|
||||||
chrootable_systemctl_enable bluetooth.service
|
chrootable_systemctl_enable bluetooth.service
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
# Install wifi drivers for 2013-2015 MacBooks using the BCM4360 chip
|
|
||||||
if lspci -nnv | grep -A2 "14e4:43a0" | grep -q "106b:"; then
|
|
||||||
echo "Apple BCM4360 detected"
|
|
||||||
sudo pacman -S --noconfirm --needed broadcom-wl dkms linux-headers
|
|
||||||
fi
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
# Detect MacBook models that need SPI keyboard modules
|
|
||||||
if [[ "$(cat /sys/class/dmi/id/product_name 2>/dev/null)" =~ MacBook12,1|MacBookPro13,[123]|MacBookPro14,[123] ]]; then
|
|
||||||
echo "Detected MacBook with SPI keyboard"
|
|
||||||
|
|
||||||
sudo pacman -S --noconfirm --needed macbook12-spi-driver-dkms
|
|
||||||
echo "MODULES=(applespi intel_lpss_pci spi_pxa2xx_platform)" | sudo tee /etc/mkinitcpio.conf.d/macbook_spi_modules.conf >/dev/null
|
|
||||||
fi
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
# Detect T2 MacBook models using PCI IDs
|
|
||||||
# Vendor: 106b (Apple), Device IDs: 1801 or 1802 (T2 Security Chip)
|
|
||||||
if lspci -nn | grep -q "106b:180[12]"; then
|
|
||||||
echo "Detected MacBook with T2 chip. Installing support items..."
|
|
||||||
|
|
||||||
sudo pacman -S --noconfirm --needed \
|
|
||||||
linux-t2 \
|
|
||||||
linux-t2-headers \
|
|
||||||
apple-t2-audio-config \
|
|
||||||
apple-bcm-firmware \
|
|
||||||
t2fanrd \
|
|
||||||
tiny-dfr
|
|
||||||
|
|
||||||
echo "apple-bce" | sudo tee /etc/modules-load.d/t2.conf >/dev/null
|
|
||||||
|
|
||||||
echo "MODULES+=(apple-bce usbhid hid_apple hid_generic xhci_pci xhci_hcd)" | sudo tee /etc/mkinitcpio.conf.d/apple-t2.conf >/dev/null
|
|
||||||
|
|
||||||
cat <<EOF | sudo tee /etc/modprobe.d/brcmfmac.conf >/dev/null
|
|
||||||
# Fix for T2 MacBook WiFi connectivity issues
|
|
||||||
options brcmfmac feature_disable=0x82000
|
|
||||||
EOF
|
|
||||||
|
|
||||||
sudo mkdir -p /etc/limine-entry-tool.d
|
|
||||||
cat <<EOF | sudo tee /etc/limine-entry-tool.d/t2-mac.conf >/dev/null
|
|
||||||
# Generated by Omarchy installer for T2 Mac support
|
|
||||||
KERNEL_CMDLINE[default]+="intel_iommu=on iommu=pt pcie_ports=compat"
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
4
install/config/hardware/fix-f13-amd-audio-input.sh
Normal file → Executable file
@@ -1,4 +1,6 @@
|
|||||||
AMD_AUDIO_CARD=$(pactl list cards 2>/dev/null | grep -B20 "Family 17h/19h" | grep "Name: " | awk '{print $2}' || true)
|
#!/bin/bash
|
||||||
|
|
||||||
|
AMD_AUDIO_CARD=$(pactl list cards | grep -B20 "Family 17h/19h" | grep "Name: " | awk '{print $2}')
|
||||||
|
|
||||||
if [[ -n $AMD_AUDIO_CARD ]]; then
|
if [[ -n $AMD_AUDIO_CARD ]]; then
|
||||||
pactl set-card-profile "$AMD_AUDIO_CARD" "HiFi (Mic1, Mic2, Speaker)" 2>/dev/null || true
|
pactl set-card-profile "$AMD_AUDIO_CARD" "HiFi (Mic1, Mic2, Speaker)" 2>/dev/null || true
|
||||||
|
|||||||
2
install/config/hardware/fix-fkeys.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Ensure that F-keys on Apple-like keyboards (such as Lofree Flow84) are always F-keys
|
# Ensure that F-keys on Apple-like keyboards (such as Lofree Flow84) are always F-keys
|
||||||
if [[ ! -f /etc/modprobe.d/hid_apple.conf ]]; then
|
if [[ ! -f /etc/modprobe.d/hid_apple.conf ]]; then
|
||||||
echo "options hid_apple fnmode=2" | sudo tee /etc/modprobe.d/hid_apple.conf
|
echo "options hid_apple fnmode=2" | sudo tee /etc/modprobe.d/hid_apple.conf
|
||||||
|
|||||||
3
install/config/hardware/ignore-power-button.sh
Normal file → Executable file
@@ -1,2 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Disable shutting system down on power button to bind it to power menu afterwards
|
# Disable shutting system down on power button to bind it to power menu afterwards
|
||||||
sudo sed -i 's/.*HandlePowerKey=.*/HandlePowerKey=ignore/' /etc/systemd/logind.conf
|
sudo sed -i 's/.*HandlePowerKey=.*/HandlePowerKey=ignore/' /etc/systemd/logind.conf
|
||||||
|
|
||||||
|
|||||||
3
install/config/hardware/intel.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# This installs hardware video acceleration for Intel GPUs
|
# This installs hardware video acceleration for Intel GPUs
|
||||||
# Check if we have an Intel GPU at all
|
# Check if we have an Intel GPU at all
|
||||||
if INTEL_GPU=$(lspci | grep -iE 'vga|3d|display' | grep -i 'intel'); then
|
if INTEL_GPU=$(lspci | grep -iE 'vga|3d|display' | grep -i 'intel'); then
|
||||||
@@ -9,3 +11,4 @@ if INTEL_GPU=$(lspci | grep -iE 'vga|3d|display' | grep -i 'intel'); then
|
|||||||
sudo pacman -S --needed --noconfirm libva-intel-driver
|
sudo pacman -S --needed --noconfirm libva-intel-driver
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
2
install/config/hardware/network.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Ensure iwd service will be started
|
# Ensure iwd service will be started
|
||||||
sudo systemctl enable iwd.service
|
sudo systemctl enable iwd.service
|
||||||
|
|
||||||
|
|||||||
7
install/config/hardware/nvidia.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# Hyprland NVIDIA Setup Script for Arch Linux
|
# Hyprland NVIDIA Setup Script for Arch Linux
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
@@ -28,6 +30,11 @@ if [ -n "$(lspci | grep -i 'nvidia')" ]; then
|
|||||||
KERNEL_HEADERS="linux-hardened-headers"
|
KERNEL_HEADERS="linux-hardened-headers"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Enable multilib repository for 32-bit libraries
|
||||||
|
if ! grep -q "^\[multilib\]" /etc/pacman.conf; then
|
||||||
|
sudo sed -i '/^#\s*\[multilib\]/,/^#\s*Include/ s/^#\s*//' /etc/pacman.conf
|
||||||
|
fi
|
||||||
|
|
||||||
# force package database refresh
|
# force package database refresh
|
||||||
sudo pacman -Syu --noconfirm
|
sudo pacman -Syu --noconfirm
|
||||||
|
|
||||||
|
|||||||
2
install/config/hardware/printer.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
chrootable_systemctl_enable cups.service
|
chrootable_systemctl_enable cups.service
|
||||||
|
|
||||||
# Disable multicast dns in resolved. Avahi will provide this for better network printer discovery
|
# Disable multicast dns in resolved. Avahi will provide this for better network printer discovery
|
||||||
|
|||||||
7
install/config/hardware/set-wireless-regdom.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# First check that wireless-regdb is there
|
# First check that wireless-regdb is there
|
||||||
if [ -f "/etc/conf.d/wireless-regdom" ]; then
|
if [ -f "/etc/conf.d/wireless-regdom" ]; then
|
||||||
unset WIRELESS_REGDOM
|
unset WIRELESS_REGDOM
|
||||||
@@ -22,12 +24,13 @@ if [ ! -n "${WIRELESS_REGDOM}" ]; then
|
|||||||
# Check if we have a two letter country code
|
# Check if we have a two letter country code
|
||||||
if [[ "$COUNTRY" =~ ^[A-Z]{2}$ ]]; then
|
if [[ "$COUNTRY" =~ ^[A-Z]{2}$ ]]; then
|
||||||
# Append it to the wireless-regdom conf file that is used at boot
|
# Append it to the wireless-regdom conf file that is used at boot
|
||||||
echo "WIRELESS_REGDOM=\"$COUNTRY\"" | sudo tee -a /etc/conf.d/wireless-regdom >/dev/null
|
echo "WIRELESS_REGDOM=\"$COUNTRY\"" | sudo tee -a /etc/conf.d/wireless-regdom > /dev/null
|
||||||
|
|
||||||
# Also set it one off now
|
# Also set it one off now
|
||||||
if command -v iw &>/dev/null; then
|
if command -v iw &> /dev/null; then
|
||||||
sudo iw reg set ${COUNTRY}
|
sudo iw reg set ${COUNTRY}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
3
install/config/hardware/usb-autosuspend.sh
Normal file → Executable file
@@ -1,5 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Disable USB autosuspend to prevent peripheral disconnection issues
|
# Disable USB autosuspend to prevent peripheral disconnection issues
|
||||||
if [[ ! -f /etc/modprobe.d/disable-usb-autosuspend.conf ]]; then
|
if [[ ! -f /etc/modprobe.d/disable-usb-autosuspend.conf ]]; then
|
||||||
echo "options usbcore autosuspend=-1" | sudo tee /etc/modprobe.d/disable-usb-autosuspend.conf
|
echo "options usbcore autosuspend=-1" | sudo tee /etc/modprobe.d/disable-usb-autosuspend.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
2
install/config/increase-lockout-limit.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Increase lockout limit to 10 and decrease timeout to 2 minutes
|
# Increase lockout limit to 10 and decrease timeout to 2 minutes
|
||||||
sudo sed -i 's|^\(auth\s\+required\s\+pam_faillock.so\)\s\+preauth.*$|\1 preauth silent deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
|
sudo sed -i 's|^\(auth\s\+required\s\+pam_faillock.so\)\s\+preauth.*$|\1 preauth silent deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
|
||||||
sudo sed -i 's|^\(auth\s\+\[default=die\]\s\+pam_faillock.so\)\s\+authfail.*$|\1 authfail deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
|
sudo sed -i 's|^\(auth\s\+\[default=die\]\s\+pam_faillock.so\)\s\+authfail.*$|\1 authfail deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
|
||||||
|
|||||||
2
install/config/increase-sudo-tries.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Give the user 10 instead of 3 tries to fat finger their password before lockout
|
# Give the user 10 instead of 3 tries to fat finger their password before lockout
|
||||||
echo "Defaults passwd_tries=10" | sudo tee /etc/sudoers.d/passwd-tries
|
echo "Defaults passwd_tries=10" | sudo tee /etc/sudoers.d/passwd-tries
|
||||||
sudo chmod 440 /etc/sudoers.d/passwd-tries
|
sudo chmod 440 /etc/sudoers.d/passwd-tries
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
omarchy-lazyvim-setup
|
|
||||||
0
install/config/localdb.sh
Normal file → Executable file
2
install/config/mimetypes.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
omarchy-refresh-applications
|
omarchy-refresh-applications
|
||||||
update-desktop-database ~/.local/share/applications
|
update-desktop-database ~/.local/share/applications
|
||||||
|
|
||||||
|
|||||||
23
install/config/mise-ruby.sh
Normal file → Executable file
@@ -1,26 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Install Ruby using gcc-14 for compatibility
|
# Install Ruby using gcc-14 for compatibility
|
||||||
mise settings set ruby.ruby_build_opts "CC=gcc-14 CXX=g++-14"
|
mise settings set ruby.ruby_build_opts "CC=gcc-14 CXX=g++-14"
|
||||||
|
|
||||||
# Trust .ruby-version
|
# Trust .ruby-version
|
||||||
mise settings add idiomatic_version_file_enable_tools ruby
|
mise settings add idiomatic_version_file_enable_tools ruby
|
||||||
|
|
||||||
# Install pre-built Ruby + Rails for x86_64
|
|
||||||
if [[ $(uname -m) == "x86_64" ]]; then
|
|
||||||
RUBY_VERSION="3.4.5"
|
|
||||||
RUBY_TARBALL="ruby-$RUBY_VERSION-rails-8.0.2.1-x86_64.tar.gz"
|
|
||||||
RUBY_URL="https://pkgs.omarchy.org/ruby/$RUBY_TARBALL"
|
|
||||||
MISE_RUBY_DIR="$HOME/.local/share/mise/installs/ruby"
|
|
||||||
OFFLINE_CACHE="/var/cache/omarchy/ruby"
|
|
||||||
|
|
||||||
mkdir -p "$MISE_RUBY_DIR"
|
|
||||||
|
|
||||||
if [[ -n ${OMARCHY_ONLINE_INSTALL:-} ]]; then
|
|
||||||
echo "Downloading pre-built Ruby $RUBY_VERSION..."
|
|
||||||
curl -fsSL "$RUBY_URL" | tar -xz -C "$MISE_RUBY_DIR"
|
|
||||||
else
|
|
||||||
echo "Installing Ruby from offline cache..."
|
|
||||||
tar -xzf "$OFFLINE_CACHE/$RUBY_TARBALL" -C "$MISE_RUBY_DIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
mise use --global "ruby@${RUBY_VERSION}"
|
|
||||||
fi
|
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
# Add ./bin to path for all items in ~/Work
|
|
||||||
mkdir -p "$HOME/Work"
|
|
||||||
|
|
||||||
cat >"$HOME/Work/.mise.toml" <<'EOF'
|
|
||||||
[env]
|
|
||||||
_.path = "{{ cwd }}/bin"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
mise trust ~/Work/.mise.toml
|
|
||||||
2
install/config/ssh-flakiness.sh
Normal file → Executable file
@@ -1,2 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Solve common flakiness with SSH
|
# Solve common flakiness with SSH
|
||||||
echo "net.ipv4.tcp_mtu_probing=1" | sudo tee -a /etc/sysctl.d/99-sysctl.conf
|
echo "net.ipv4.tcp_mtu_probing=1" | sudo tee -a /etc/sysctl.d/99-sysctl.conf
|
||||||
|
|||||||
2
install/config/sudoless-asdcontrol.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Setup sudo-less controls for controlling brightness on Apple Displays
|
# Setup sudo-less controls for controlling brightness on Apple Displays
|
||||||
echo "$USER ALL=(ALL) NOPASSWD: /usr/local/bin/asdcontrol" | sudo tee /etc/sudoers.d/asdcontrol
|
echo "$USER ALL=(ALL) NOPASSWD: /usr/local/bin/asdcontrol" | sudo tee /etc/sudoers.d/asdcontrol
|
||||||
sudo chmod 440 /etc/sudoers.d/asdcontrol
|
sudo chmod 440 /etc/sudoers.d/asdcontrol
|
||||||
|
|||||||
10
install/config/theme.sh
Normal file → Executable file
@@ -1,6 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Set links for Nautilius action icons
|
# Set links for Nautilius action icons
|
||||||
sudo ln -snf /usr/share/icons/Adwaita/symbolic/actions/go-previous-symbolic.svg /usr/share/icons/Yaru/scalable/actions/go-previous-symbolic.svg
|
sudo ln -snf /usr/share/icons/Adwaita/symbolic/actions/go-previous-symbolic.svg /usr/share/icons/Yaru/scalable/actions/go-previous-symbolic.svg
|
||||||
sudo ln -snf /usr/share/icons/Adwaita/symbolic/actions/go-next-symbolic.svg /usr/share/icons/Yaru/scalable/actions/go-next-symbolic.svg
|
sudo ln -snf /usr/share/icons/Adwaita/symbolic/actions/go-next-symbolic.svg /usr/share/icons/Yaru/scalable/actions/go-next-symbolic.svg
|
||||||
|
sudo gtk-update-icon-cache /usr/share/icons/Yaru
|
||||||
|
|
||||||
# Setup theme links
|
# Setup theme links
|
||||||
mkdir -p ~/.config/omarchy/themes
|
mkdir -p ~/.config/omarchy/themes
|
||||||
@@ -19,10 +22,3 @@ ln -snf ~/.config/omarchy/current/theme/btop.theme ~/.config/btop/themes/current
|
|||||||
|
|
||||||
mkdir -p ~/.config/mako
|
mkdir -p ~/.config/mako
|
||||||
ln -snf ~/.config/omarchy/current/theme/mako.ini ~/.config/mako/config
|
ln -snf ~/.config/omarchy/current/theme/mako.ini ~/.config/mako/config
|
||||||
|
|
||||||
# Add managed policy directories for Chromium and Brave for theme changes
|
|
||||||
sudo mkdir -p /etc/chromium/policies/managed
|
|
||||||
sudo chmod a+rw /etc/chromium/policies/managed
|
|
||||||
|
|
||||||
sudo mkdir -p /etc/brave/policies/managed
|
|
||||||
sudo chmod a+rw /etc/brave/policies/managed
|
|
||||||
|
|||||||
2
install/config/timezones.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Ensure timezone can be updated without needing to sudo
|
# Ensure timezone can be updated without needing to sudo
|
||||||
sudo tee /etc/sudoers.d/omarchy-tzupdate >/dev/null <<EOF
|
sudo tee /etc/sudoers.d/omarchy-tzupdate >/dev/null <<EOF
|
||||||
%wheel ALL=(root) NOPASSWD: /usr/bin/tzupdate, /usr/bin/timedatectl
|
%wheel ALL=(root) NOPASSWD: /usr/bin/tzupdate, /usr/bin/timedatectl
|
||||||
|
|||||||
2
install/config/xcompose.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Set default XCompose that is triggered with CapsLock
|
# Set default XCompose that is triggered with CapsLock
|
||||||
tee ~/.XCompose >/dev/null <<EOF
|
tee ~/.XCompose >/dev/null <<EOF
|
||||||
include "%H/.local/share/omarchy/default/xcompose"
|
include "%H/.local/share/omarchy/default/xcompose"
|
||||||
|
|||||||
2
install/first-run/battery-monitor.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
if ls /sys/class/power_supply/BAT* &>/dev/null; then
|
if ls /sys/class/power_supply/BAT* &>/dev/null; then
|
||||||
# This computer runs on a battery
|
# This computer runs on a battery
|
||||||
powerprofilesctl set balanced || true
|
powerprofilesctl set balanced || true
|
||||||
|
|||||||
2
install/first-run/firewall.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Allow nothing in, everything out
|
# Allow nothing in, everything out
|
||||||
sudo ufw default deny incoming
|
sudo ufw default deny incoming
|
||||||
sudo ufw default allow outgoing
|
sudo ufw default allow outgoing
|
||||||
|
|||||||
4
install/first-run/gnome-theme.sh
Normal file → Executable file
@@ -1,5 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
|
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
|
||||||
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
|
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
|
||||||
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
|
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
|
||||||
|
|
||||||
sudo gtk-update-icon-cache /usr/share/icons/Yaru
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
notify-send "👋 Welcome to Omarchy" "You're in for a great computing adventure. Have fun!" -t 30000
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
if ! ping -c3 -W1 1.1.1.1 >/dev/null 2>&1; then
|
|
||||||
notify-send " Click to Setup Wi-Fi" "Tab between sections, space selects, ? for help." -u critical -t 30000
|
|
||||||
fi
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
source $OMARCHY_INSTALL/helpers/chroot.sh
|
|
||||||
source $OMARCHY_INSTALL/helpers/presentation.sh
|
|
||||||
source $OMARCHY_INSTALL/helpers/errors.sh
|
|
||||||
source $OMARCHY_INSTALL/helpers/logging.sh
|
|
||||||
@@ -1,159 +0,0 @@
|
|||||||
# Directs user to Omarchy Discord
|
|
||||||
QR_CODE='
|
|
||||||
█▀▀▀▀▀█ ▄ ▄ ▀▄▄▄█ █▀▀▀▀▀█
|
|
||||||
█ ███ █ ▄▄▄▄▀▄▀▄▀ █ ███ █
|
|
||||||
█ ▀▀▀ █ ▄█ ▄█▄▄▀ █ ▀▀▀ █
|
|
||||||
▀▀▀▀▀▀▀ ▀▄█ █ █ █ ▀▀▀▀▀▀▀
|
|
||||||
▀▀█▀▀▄▀▀▀▀▄█▀▀█ ▀ █ ▀ █
|
|
||||||
█▄█ ▄▄▀▄▄ ▀ ▄ ▀█▄▄▄▄ ▀ ▀█
|
|
||||||
▄ ▄▀█ ▀▄▀▀▀▄ ▄█▀▄█▀▄▀▄▀█▀
|
|
||||||
█ ▄▄█▄▀▄█ ▄▄▄ ▀ ▄▀██▀ ▀█
|
|
||||||
▀ ▀ ▀ █ ▀▄ ▀▀█▀▀▀█▄▀
|
|
||||||
█▀▀▀▀▀█ ▀█ ▄▀▀ █ ▀ █▄▀██
|
|
||||||
█ ███ █ █▀▄▄▀ █▀███▀█▄██▄
|
|
||||||
█ ▀▀▀ █ ██ ▀ █▄█ ▄▄▄█▀ █
|
|
||||||
▀▀▀▀▀▀▀ ▀ ▀ ▀▀▀ ▀ ▀▀▀▀▀▀'
|
|
||||||
|
|
||||||
# Track if we're already handling an error to prevent double-trapping
|
|
||||||
ERROR_HANDLING=false
|
|
||||||
|
|
||||||
# Cursor is usually hidden while we install
|
|
||||||
show_cursor() {
|
|
||||||
printf "\033[?25h"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Display truncated log lines from the install log
|
|
||||||
show_log_tail() {
|
|
||||||
if [[ -f $OMARCHY_INSTALL_LOG_FILE ]]; then
|
|
||||||
local log_lines=$(($TERM_HEIGHT - $LOGO_HEIGHT - 35))
|
|
||||||
local max_line_width=$((LOGO_WIDTH - 4))
|
|
||||||
|
|
||||||
tail -n $log_lines "$OMARCHY_INSTALL_LOG_FILE" | while IFS= read -r line; do
|
|
||||||
if ((${#line} > max_line_width)); then
|
|
||||||
local truncated_line="${line:0:$max_line_width}..."
|
|
||||||
else
|
|
||||||
local truncated_line="$line"
|
|
||||||
fi
|
|
||||||
|
|
||||||
gum style "$truncated_line"
|
|
||||||
done
|
|
||||||
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Display the failed command or script name
|
|
||||||
show_failed_script_or_command() {
|
|
||||||
if [[ -n ${CURRENT_SCRIPT:-} ]]; then
|
|
||||||
gum style "Failed script: $CURRENT_SCRIPT"
|
|
||||||
else
|
|
||||||
# Truncate long command lines to fit the display
|
|
||||||
local cmd="$BASH_COMMAND"
|
|
||||||
local max_cmd_width=$((LOGO_WIDTH - 4))
|
|
||||||
|
|
||||||
if ((${#cmd} > max_cmd_width)); then
|
|
||||||
cmd="${cmd:0:$max_cmd_width}..."
|
|
||||||
fi
|
|
||||||
|
|
||||||
gum style "$cmd"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Save original stdout and stderr for trap to use
|
|
||||||
save_original_outputs() {
|
|
||||||
exec 3>&1 4>&2
|
|
||||||
}
|
|
||||||
|
|
||||||
# Restore stdout and stderr to original (saved in FD 3 and 4)
|
|
||||||
# This ensures output goes to screen, not log file
|
|
||||||
restore_outputs() {
|
|
||||||
if [ -e /proc/self/fd/3 ] && [ -e /proc/self/fd/4 ]; then
|
|
||||||
exec 1>&3 2>&4
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Error handler
|
|
||||||
catch_errors() {
|
|
||||||
# Prevent recursive error handling
|
|
||||||
if [[ $ERROR_HANDLING == true ]]; then
|
|
||||||
return
|
|
||||||
else
|
|
||||||
ERROR_HANDLING=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Store exit code immediately before it gets overwritten
|
|
||||||
local exit_code=$?
|
|
||||||
|
|
||||||
stop_log_output
|
|
||||||
restore_outputs
|
|
||||||
|
|
||||||
clear_logo
|
|
||||||
show_cursor
|
|
||||||
|
|
||||||
gum style --foreground 1 --padding "1 0 1 $PADDING_LEFT" "Omarchy installation stopped!"
|
|
||||||
show_log_tail
|
|
||||||
|
|
||||||
gum style "This command halted with exit code $exit_code:"
|
|
||||||
show_failed_script_or_command
|
|
||||||
|
|
||||||
gum style "$QR_CODE"
|
|
||||||
echo
|
|
||||||
gum style "Get help from the community via QR code or at https://discord.gg/tXFUdasqhY"
|
|
||||||
|
|
||||||
# Offer options menu
|
|
||||||
while true; do
|
|
||||||
options=()
|
|
||||||
|
|
||||||
# If online install, show retry first
|
|
||||||
if [[ -n ${OMARCHY_ONLINE_INSTALL:-} ]]; then
|
|
||||||
options+=("Retry installation")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add upload option if internet is available
|
|
||||||
if ping -c 1 -W 1 1.1.1.1 >/dev/null 2>&1; then
|
|
||||||
options+=("Upload log for support")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add remaining options
|
|
||||||
options+=("View full log")
|
|
||||||
options+=("Exit")
|
|
||||||
|
|
||||||
choice=$(gum choose "${options[@]}" --header "What would you like to do?" --height 6 --padding "1 $PADDING_LEFT")
|
|
||||||
|
|
||||||
case "$choice" in
|
|
||||||
"Retry installation")
|
|
||||||
bash ~/.local/share/omarchy/install.sh
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
"View full log")
|
|
||||||
less "$OMARCHY_INSTALL_LOG_FILE"
|
|
||||||
;;
|
|
||||||
"Upload log for support")
|
|
||||||
omarchy-upload-install-log
|
|
||||||
;;
|
|
||||||
"Exit" | "")
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# Exit handler - ensures cleanup happens on any exit
|
|
||||||
exit_handler() {
|
|
||||||
local exit_code=$?
|
|
||||||
|
|
||||||
# Only run if we're exiting with an error and haven't already handled it
|
|
||||||
if [[ $exit_code -ne 0 && $ERROR_HANDLING != true ]]; then
|
|
||||||
catch_errors
|
|
||||||
else
|
|
||||||
stop_log_output
|
|
||||||
show_cursor
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Set up traps
|
|
||||||
trap catch_errors ERR INT TERM
|
|
||||||
trap exit_handler EXIT
|
|
||||||
|
|
||||||
# Save original outputs in case we trap
|
|
||||||
save_original_outputs
|
|
||||||
@@ -1,134 +0,0 @@
|
|||||||
start_log_output() {
|
|
||||||
local ANSI_SAVE_CURSOR="\033[s"
|
|
||||||
local ANSI_RESTORE_CURSOR="\033[u"
|
|
||||||
local ANSI_CLEAR_LINE="\033[2K"
|
|
||||||
local ANSI_HIDE_CURSOR="\033[?25l"
|
|
||||||
local ANSI_RESET="\033[0m"
|
|
||||||
local ANSI_GRAY="\033[90m"
|
|
||||||
|
|
||||||
# Save cursor position and hide cursor
|
|
||||||
printf $ANSI_SAVE_CURSOR
|
|
||||||
printf $ANSI_HIDE_CURSOR
|
|
||||||
|
|
||||||
(
|
|
||||||
local log_lines=20
|
|
||||||
local max_line_width=$((LOGO_WIDTH - 4))
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
# Read the last N lines into an array
|
|
||||||
mapfile -t current_lines < <(tail -n $log_lines "$OMARCHY_INSTALL_LOG_FILE" 2>/dev/null)
|
|
||||||
|
|
||||||
# Build complete output buffer with escape sequences
|
|
||||||
output=""
|
|
||||||
for ((i = 0; i < log_lines; i++)); do
|
|
||||||
line="${current_lines[i]:-}"
|
|
||||||
|
|
||||||
# Truncate if needed
|
|
||||||
if [ ${#line} -gt $max_line_width ]; then
|
|
||||||
line="${line:0:$max_line_width}..."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add clear line escape and formatted output for each line
|
|
||||||
if [ -n "$line" ]; then
|
|
||||||
output+="${ANSI_CLEAR_LINE}${ANSI_GRAY}${PADDING_LEFT_SPACES} → ${line}${ANSI_RESET}\n"
|
|
||||||
else
|
|
||||||
output+="${ANSI_CLEAR_LINE}${PADDING_LEFT_SPACES}\n"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
printf "${ANSI_RESTORE_CURSOR}%b" "$output"
|
|
||||||
|
|
||||||
sleep 0.1
|
|
||||||
done
|
|
||||||
) &
|
|
||||||
monitor_pid=$!
|
|
||||||
}
|
|
||||||
|
|
||||||
stop_log_output() {
|
|
||||||
if [ -n "${monitor_pid:-}" ]; then
|
|
||||||
kill $monitor_pid 2>/dev/null || true
|
|
||||||
wait $monitor_pid 2>/dev/null || true
|
|
||||||
unset monitor_pid
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
start_install_log() {
|
|
||||||
sudo touch "$OMARCHY_INSTALL_LOG_FILE"
|
|
||||||
sudo chmod 666 "$OMARCHY_INSTALL_LOG_FILE"
|
|
||||||
|
|
||||||
export OMARCHY_START_TIME=$(date '+%Y-%m-%d %H:%M:%S')
|
|
||||||
|
|
||||||
echo "=== Omarchy Installation Started: $OMARCHY_START_TIME ===" >>"$OMARCHY_INSTALL_LOG_FILE"
|
|
||||||
start_log_output
|
|
||||||
}
|
|
||||||
|
|
||||||
stop_install_log() {
|
|
||||||
stop_log_output
|
|
||||||
show_cursor
|
|
||||||
|
|
||||||
if [[ -n ${OMARCHY_INSTALL_LOG_FILE:-} ]]; then
|
|
||||||
OMARCHY_END_TIME=$(date '+%Y-%m-%d %H:%M:%S')
|
|
||||||
echo "=== Omarchy Installation Completed: $OMARCHY_END_TIME ===" >>"$OMARCHY_INSTALL_LOG_FILE"
|
|
||||||
echo "" >>"$OMARCHY_INSTALL_LOG_FILE"
|
|
||||||
echo "=== Installation Time Summary ===" >>"$OMARCHY_INSTALL_LOG_FILE"
|
|
||||||
|
|
||||||
if [ -f "/var/log/archinstall/install.log" ]; then
|
|
||||||
ARCHINSTALL_START=$(grep -m1 '^\[' /var/log/archinstall/install.log 2>/dev/null | sed 's/^\[\([^]]*\)\].*/\1/' || true)
|
|
||||||
ARCHINSTALL_END=$(grep 'Installation completed without any errors' /var/log/archinstall/install.log 2>/dev/null | sed 's/^\[\([^]]*\)\].*/\1/' || true)
|
|
||||||
|
|
||||||
if [ -n "$ARCHINSTALL_START" ] && [ -n "$ARCHINSTALL_END" ]; then
|
|
||||||
ARCH_START_EPOCH=$(date -d "$ARCHINSTALL_START" +%s)
|
|
||||||
ARCH_END_EPOCH=$(date -d "$ARCHINSTALL_END" +%s)
|
|
||||||
ARCH_DURATION=$((ARCH_END_EPOCH - ARCH_START_EPOCH))
|
|
||||||
|
|
||||||
ARCH_MINS=$((ARCH_DURATION / 60))
|
|
||||||
ARCH_SECS=$((ARCH_DURATION % 60))
|
|
||||||
|
|
||||||
echo "Archinstall: ${ARCH_MINS}m ${ARCH_SECS}s" >>"$OMARCHY_INSTALL_LOG_FILE"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$OMARCHY_START_TIME" ]; then
|
|
||||||
OMARCHY_START_EPOCH=$(date -d "$OMARCHY_START_TIME" +%s)
|
|
||||||
OMARCHY_END_EPOCH=$(date -d "$OMARCHY_END_TIME" +%s)
|
|
||||||
OMARCHY_DURATION=$((OMARCHY_END_EPOCH - OMARCHY_START_EPOCH))
|
|
||||||
|
|
||||||
OMARCHY_MINS=$((OMARCHY_DURATION / 60))
|
|
||||||
OMARCHY_SECS=$((OMARCHY_DURATION % 60))
|
|
||||||
|
|
||||||
echo "Omarchy: ${OMARCHY_MINS}m ${OMARCHY_SECS}s" >>"$OMARCHY_INSTALL_LOG_FILE"
|
|
||||||
|
|
||||||
if [ -n "$ARCH_DURATION" ]; then
|
|
||||||
TOTAL_DURATION=$((ARCH_DURATION + OMARCHY_DURATION))
|
|
||||||
TOTAL_MINS=$((TOTAL_DURATION / 60))
|
|
||||||
TOTAL_SECS=$((TOTAL_DURATION % 60))
|
|
||||||
echo "Total: ${TOTAL_MINS}m ${TOTAL_SECS}s" >>"$OMARCHY_INSTALL_LOG_FILE"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
echo "=================================" >>"$OMARCHY_INSTALL_LOG_FILE"
|
|
||||||
|
|
||||||
echo "Rebooting system..." >>"$OMARCHY_INSTALL_LOG_FILE"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
run_logged() {
|
|
||||||
local script="$1"
|
|
||||||
|
|
||||||
export CURRENT_SCRIPT="$script"
|
|
||||||
|
|
||||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Starting: $script" >>"$OMARCHY_INSTALL_LOG_FILE"
|
|
||||||
|
|
||||||
# Use bash -c to create a clean subshell
|
|
||||||
bash -c "source '$script'" </dev/null >>"$OMARCHY_INSTALL_LOG_FILE" 2>&1
|
|
||||||
|
|
||||||
local exit_code=$?
|
|
||||||
|
|
||||||
if [ $exit_code -eq 0 ]; then
|
|
||||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Completed: $script" >>"$OMARCHY_INSTALL_LOG_FILE"
|
|
||||||
unset CURRENT_SCRIPT
|
|
||||||
else
|
|
||||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Failed: $script (exit code: $exit_code)" >>"$OMARCHY_INSTALL_LOG_FILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
return $exit_code
|
|
||||||
}
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
# Ensure we have gum available
|
|
||||||
if ! command -v gum &>/dev/null; then
|
|
||||||
sudo pacman -S --needed --noconfirm gum
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get terminal size from /dev/tty (works in all scenarios: direct, sourced, or piped)
|
|
||||||
if [ -e /dev/tty ]; then
|
|
||||||
TERM_SIZE=$(stty size 2>/dev/null </dev/tty)
|
|
||||||
|
|
||||||
if [ -n "$TERM_SIZE" ]; then
|
|
||||||
export TERM_HEIGHT=$(echo "$TERM_SIZE" | cut -d' ' -f1)
|
|
||||||
export TERM_WIDTH=$(echo "$TERM_SIZE" | cut -d' ' -f2)
|
|
||||||
else
|
|
||||||
# Fallback to reasonable defaults if stty fails
|
|
||||||
export TERM_WIDTH=80
|
|
||||||
export TERM_HEIGHT=24
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# No terminal available (e.g., non-interactive environment)
|
|
||||||
export TERM_WIDTH=80
|
|
||||||
export TERM_HEIGHT=24
|
|
||||||
fi
|
|
||||||
|
|
||||||
export LOGO_PATH="$OMARCHY_PATH/logo.txt"
|
|
||||||
export LOGO_WIDTH=$(awk '{ if (length > max) max = length } END { print max+0 }' "$LOGO_PATH" 2>/dev/null || echo 0)
|
|
||||||
export LOGO_HEIGHT=$(wc -l <"$LOGO_PATH" 2>/dev/null || echo 0)
|
|
||||||
|
|
||||||
export PADDING_LEFT=$((($TERM_WIDTH - $LOGO_WIDTH) / 2))
|
|
||||||
export PADDING_LEFT_SPACES=$(printf "%*s" $PADDING_LEFT "")
|
|
||||||
|
|
||||||
# Tokyo Night theme for gum confirm
|
|
||||||
export GUM_CONFIRM_PROMPT_FOREGROUND="6" # Cyan for prompt
|
|
||||||
export GUM_CONFIRM_SELECTED_FOREGROUND="0" # Black text on selected
|
|
||||||
export GUM_CONFIRM_SELECTED_BACKGROUND="2" # Green background for selected
|
|
||||||
export GUM_CONFIRM_UNSELECTED_FOREGROUND="7" # White for unselected
|
|
||||||
export GUM_CONFIRM_UNSELECTED_BACKGROUND="0" # Black background for unselected
|
|
||||||
export PADDING="0 0 0 $PADDING_LEFT" # Gum Style
|
|
||||||
export GUM_CHOOSE_PADDING="$PADDING"
|
|
||||||
export GUM_FILTER_PADDING="$PADDING"
|
|
||||||
export GUM_INPUT_PADDING="$PADDING"
|
|
||||||
export GUM_SPIN_PADDING="$PADDING"
|
|
||||||
export GUM_TABLE_PADDING="$PADDING"
|
|
||||||
export GUM_CONFIRM_PADDING="$PADDING"
|
|
||||||
|
|
||||||
clear_logo() {
|
|
||||||
printf "\033[H\033[2J" # Clear screen and move cursor to top-left
|
|
||||||
gum style --foreground 2 --padding "1 0 0 $PADDING_LEFT" "$(<"$LOGO_PATH")"
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
# Called by Omarchy ISO setup before starting configurator and archinstall
|
|
||||||
|
|
||||||
source "$OMARCHY_INSTALL/preflight/set-size-vars.sh"
|
|
||||||
source "$OMARCHY_INSTALL/helpers/logo.sh"
|
|
||||||
source "$OMARCHY_INSTALL/preflight/gum.sh"
|
|
||||||
source "$OMARCHY_INSTALL/helpers/tail-log-output.sh"
|
|
||||||
source "$OMARCHY_INSTALL/helpers/trap-errors.sh"
|
|
||||||
|
|
||||||
source $OMARCHY_INSTALL/helpers/chroot.sh
|
|
||||||
source $OMARCHY_INSTALL/helpers/logo.sh
|
|
||||||
source $OMARCHY_INSTALL/helpers/gum.sh
|
|
||||||
source $OMARCHY_INSTALL/helpers/errors.sh
|
|
||||||
source $OMARCHY_INSTALL/helpers/logging.sh
|
|
||||||
source $OMARCHY_INSTALL/helpers/layout.sh
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
run_logged $OMARCHY_INSTALL/login/plymouth.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/login/limine-snapper.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/login/enable-mkinitcpio.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/login/alt-bootloaders.sh
|
|
||||||
2
install/login/alt-bootloaders.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
if ! command -v limine &>/dev/null; then
|
if ! command -v limine &>/dev/null; then
|
||||||
# Add kernel hooks
|
# Add kernel hooks
|
||||||
if ! grep -Eq '^HOOKS=.*plymouth' /etc/mkinitcpio.conf; then
|
if ! grep -Eq '^HOOKS=.*plymouth' /etc/mkinitcpio.conf; then
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
echo "Re-enabling mkinitcpio hooks..."
|
|
||||||
|
|
||||||
# Restore the specific mkinitcpio pacman hooks
|
|
||||||
if [ -f /usr/share/libalpm/hooks/90-mkinitcpio-install.hook.disabled ]; then
|
|
||||||
sudo mv /usr/share/libalpm/hooks/90-mkinitcpio-install.hook.disabled /usr/share/libalpm/hooks/90-mkinitcpio-install.hook
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f /usr/share/libalpm/hooks/60-mkinitcpio-remove.hook.disabled ]; then
|
|
||||||
sudo mv /usr/share/libalpm/hooks/60-mkinitcpio-remove.hook.disabled /usr/share/libalpm/hooks/60-mkinitcpio-remove.hook
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "mkinitcpio hooks re-enabled"
|
|
||||||
|
|
||||||
if command -v limine &>/dev/null; then
|
|
||||||
sudo limine-update
|
|
||||||
else
|
|
||||||
sudo mkinitcpio -P
|
|
||||||
fi
|
|
||||||
26
install/login/limine-snapper.sh
Normal file → Executable file
@@ -1,27 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
if command -v limine &>/dev/null; then
|
if command -v limine &>/dev/null; then
|
||||||
sudo tee /etc/mkinitcpio.conf.d/omarchy_hooks.conf <<EOF >/dev/null
|
sudo tee /etc/mkinitcpio.conf.d/omarchy_hooks.conf <<EOF >/dev/null
|
||||||
HOOKS=(base udev plymouth keyboard autodetect microcode modconf kms keymap consolefont block encrypt filesystems fsck btrfs-overlayfs)
|
HOOKS=(base udev plymouth keyboard autodetect microcode modconf kms keymap consolefont block encrypt filesystems fsck btrfs-overlayfs)
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
[[ -f /boot/EFI/limine/limine.conf ]] || [[ -f /boot/EFI/BOOT/limine.conf ]] && EFI=true
|
[[ -f /boot/EFI/limine/limine.conf ]] && EFI=true
|
||||||
|
|
||||||
# Conf location is different between EFI and BIOS
|
# Conf location is different between EFI and BIOS
|
||||||
if [[ -n "$EFI" ]]; then
|
[[ -n "$EFI" ]] && limine_config="/boot/EFI/limine/limine.conf" || limine_config="/boot/limine/limine.conf"
|
||||||
# Check USB location first, then regular EFI location
|
|
||||||
if [[ -f /boot/EFI/BOOT/limine.conf ]]; then
|
|
||||||
limine_config="/boot/EFI/BOOT/limine.conf"
|
|
||||||
else
|
|
||||||
limine_config="/boot/EFI/limine/limine.conf"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
limine_config="/boot/limine/limine.conf"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Double-check and exit if we don't have a config file for some reason
|
|
||||||
if [[ ! -f $limine_config ]]; then
|
|
||||||
echo "Error: Limine config not found at $limine_config" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
CMDLINE=$(grep "^[[:space:]]*cmdline:" "$limine_config" | head -1 | sed 's/^[[:space:]]*cmdline:[[:space:]]*//')
|
CMDLINE=$(grep "^[[:space:]]*cmdline:" "$limine_config" | head -1 | sed 's/^[[:space:]]*cmdline:[[:space:]]*//')
|
||||||
|
|
||||||
@@ -76,9 +63,10 @@ term_background_bright: 24283b
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
sudo pacman -S --noconfirm --needed limine-snapper-sync limine-mkinitcpio-hook
|
sudo pacman -S --noconfirm --needed limine-snapper-sync limine-mkinitcpio-hook
|
||||||
|
sudo limine-update
|
||||||
|
|
||||||
# Match Snapper configs if not installing from the ISO
|
# Match Snapper configs if not installing from the ISO
|
||||||
if [[ -z ${OMARCHY_CHROOT_INSTALL:-} ]]; then
|
if [ -z "${OMARCHY_CHROOT_INSTALL:-}" ]; then
|
||||||
if ! sudo snapper list-configs 2>/dev/null | grep -q "root"; then
|
if ! sudo snapper list-configs 2>/dev/null | grep -q "root"; then
|
||||||
sudo snapper -c root create-config /
|
sudo snapper -c root create-config /
|
||||||
fi
|
fi
|
||||||
@@ -97,7 +85,7 @@ EOF
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Add UKI entry to UEFI machines to skip bootloader showing on normal boot
|
# Add UKI entry to UEFI machines to skip bootloader showing on normal boot
|
||||||
if [[ -n $EFI ]] && efibootmgr &>/dev/null && ! efibootmgr | grep -q Omarchy &&
|
if [ -n "$EFI" ] && efibootmgr &>/dev/null && ! efibootmgr | grep -q Omarchy &&
|
||||||
! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "American Megatrends"; then
|
! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "American Megatrends"; then
|
||||||
sudo efibootmgr --create \
|
sudo efibootmgr --create \
|
||||||
--disk "$(findmnt -n -o SOURCE /boot | sed 's/p\?[0-9]*$//')" \
|
--disk "$(findmnt -n -o SOURCE /boot | sed 's/p\?[0-9]*$//')" \
|
||||||
|
|||||||
4
install/login/plymouth.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Hyprland launched via UWSM and login directly as user, rely on disk encryption + hyprlock for security
|
# Hyprland launched via UWSM and login directly as user, rely on disk encryption + hyprlock for security
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
@@ -6,7 +8,7 @@
|
|||||||
|
|
||||||
if [ "$(plymouth-set-default-theme)" != "omarchy" ]; then
|
if [ "$(plymouth-set-default-theme)" != "omarchy" ]; then
|
||||||
sudo cp -r "$HOME/.local/share/omarchy/default/plymouth" /usr/share/plymouth/themes/omarchy/
|
sudo cp -r "$HOME/.local/share/omarchy/default/plymouth" /usr/share/plymouth/themes/omarchy/
|
||||||
sudo plymouth-set-default-theme omarchy
|
sudo plymouth-set-default-theme -R omarchy
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|||||||
@@ -1,131 +0,0 @@
|
|||||||
# Omarchy core package list installed via install/packages.sh
|
|
||||||
# This file is also used by the ISO builder when determining needs
|
|
||||||
|
|
||||||
1password-beta
|
|
||||||
1password-cli
|
|
||||||
alacritty
|
|
||||||
asdcontrol-git
|
|
||||||
avahi
|
|
||||||
bash-completion
|
|
||||||
bat
|
|
||||||
blueberry
|
|
||||||
brightnessctl
|
|
||||||
btop
|
|
||||||
cargo
|
|
||||||
clang
|
|
||||||
cups
|
|
||||||
cups-browsed
|
|
||||||
cups-filters
|
|
||||||
cups-pdf
|
|
||||||
docker
|
|
||||||
docker-buildx
|
|
||||||
docker-compose
|
|
||||||
dust
|
|
||||||
evince
|
|
||||||
eza
|
|
||||||
fastfetch
|
|
||||||
fcitx5
|
|
||||||
fcitx5-gtk
|
|
||||||
fcitx5-qt
|
|
||||||
fd
|
|
||||||
ffmpegthumbnailer
|
|
||||||
fontconfig
|
|
||||||
fzf
|
|
||||||
gcc14
|
|
||||||
github-cli
|
|
||||||
gnome-calculator
|
|
||||||
gnome-keyring
|
|
||||||
gnome-themes-extra
|
|
||||||
gum
|
|
||||||
gvfs-mtp
|
|
||||||
gvfs-smb
|
|
||||||
hypridle
|
|
||||||
hyprland
|
|
||||||
hyprland-qtutils
|
|
||||||
hyprlock
|
|
||||||
hyprpicker
|
|
||||||
hyprshot
|
|
||||||
hyprsunset
|
|
||||||
imagemagick
|
|
||||||
impala
|
|
||||||
imv
|
|
||||||
inetutils
|
|
||||||
iwd
|
|
||||||
jq
|
|
||||||
kdenlive
|
|
||||||
kvantum-qt5
|
|
||||||
lazydocker
|
|
||||||
lazygit
|
|
||||||
less
|
|
||||||
libqalculate
|
|
||||||
libreoffice
|
|
||||||
llvm
|
|
||||||
localsend
|
|
||||||
luarocks
|
|
||||||
mako
|
|
||||||
man
|
|
||||||
mariadb-libs
|
|
||||||
mise
|
|
||||||
mpv
|
|
||||||
nautilus
|
|
||||||
noto-fonts
|
|
||||||
noto-fonts-cjk
|
|
||||||
noto-fonts-emoji
|
|
||||||
noto-fonts-extra
|
|
||||||
nss-mdns
|
|
||||||
nvim
|
|
||||||
obs-studio
|
|
||||||
obsidian
|
|
||||||
omarchy-chromium
|
|
||||||
omarchy-lazyvim
|
|
||||||
pamixer
|
|
||||||
pinta
|
|
||||||
playerctl
|
|
||||||
plocate
|
|
||||||
plymouth
|
|
||||||
polkit-gnome
|
|
||||||
postgresql-libs
|
|
||||||
power-profiles-daemon
|
|
||||||
python-gobject
|
|
||||||
python-poetry-core
|
|
||||||
python-terminaltexteffects
|
|
||||||
qt5-wayland
|
|
||||||
ripgrep
|
|
||||||
satty
|
|
||||||
signal-desktop
|
|
||||||
slurp
|
|
||||||
spotify
|
|
||||||
starship
|
|
||||||
sushi
|
|
||||||
swaybg
|
|
||||||
swayosd
|
|
||||||
system-config-printer
|
|
||||||
tldr
|
|
||||||
tree-sitter-cli
|
|
||||||
ttf-cascadia-mono-nerd
|
|
||||||
ttf-ia-writer
|
|
||||||
ttf-jetbrains-mono-nerd
|
|
||||||
typora
|
|
||||||
tzupdate
|
|
||||||
ufw
|
|
||||||
ufw-docker
|
|
||||||
unzip
|
|
||||||
uwsm
|
|
||||||
walker-bin
|
|
||||||
waybar
|
|
||||||
wf-recorder
|
|
||||||
whois
|
|
||||||
wireless-regdb
|
|
||||||
wiremix
|
|
||||||
wireplumber
|
|
||||||
wl-clip-persist
|
|
||||||
wl-clipboard
|
|
||||||
wl-screenrec
|
|
||||||
woff2-font-awesome
|
|
||||||
xdg-desktop-portal-gtk
|
|
||||||
xdg-desktop-portal-hyprland
|
|
||||||
xmlstarlet
|
|
||||||
xournalpp
|
|
||||||
yaru-icon-theme
|
|
||||||
yay
|
|
||||||
zoxide
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
# Packages installed outside of install/packages.sh or optional packages
|
|
||||||
# Utilized by ISO builder to ensure package availability in the ISO
|
|
||||||
|
|
||||||
autoconf-archive
|
|
||||||
base
|
|
||||||
base-devel
|
|
||||||
broadcom-wl
|
|
||||||
btrfs-progs
|
|
||||||
dart
|
|
||||||
dkms
|
|
||||||
egl-wayland
|
|
||||||
git
|
|
||||||
gst-plugin-pipewire
|
|
||||||
gtk4-layer-shell
|
|
||||||
htop
|
|
||||||
intltool
|
|
||||||
iwd
|
|
||||||
jdk-openjdk
|
|
||||||
libpulse
|
|
||||||
libsass
|
|
||||||
libva-intel-driver
|
|
||||||
libva-nvidia-driver
|
|
||||||
limine
|
|
||||||
limine-mkinitcpio-hook
|
|
||||||
limine-snapper-sync
|
|
||||||
linux
|
|
||||||
linux-firmware
|
|
||||||
linux-headers
|
|
||||||
macbook12-spi-driver-dkms
|
|
||||||
nvidia-dkms
|
|
||||||
nvidia-open-dkms
|
|
||||||
nvidia-utils
|
|
||||||
lib32-nvidia-utils
|
|
||||||
pipewire
|
|
||||||
pipewire-alsa
|
|
||||||
pipewire-jack
|
|
||||||
pipewire-pulse
|
|
||||||
qt5-remoteobjects
|
|
||||||
qt6-wayland
|
|
||||||
sassc
|
|
||||||
snapper
|
|
||||||
webp-pixbuf-loader
|
|
||||||
wget
|
|
||||||
yay-debug
|
|
||||||
zram-generator
|
|
||||||
|
|
||||||
# T2 MacBook support packages
|
|
||||||
apple-bcm-firmware
|
|
||||||
apple-t2-audio-config
|
|
||||||
linux-t2
|
|
||||||
linux-t2-headers
|
|
||||||
t2fanrd
|
|
||||||
tiny-dfr
|
|
||||||
130
install/packages.sh
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
sudo pacman -S --noconfirm --needed \
|
||||||
|
1password-beta \
|
||||||
|
1password-cli \
|
||||||
|
asdcontrol-git \
|
||||||
|
alacritty \
|
||||||
|
avahi \
|
||||||
|
bash-completion \
|
||||||
|
bat \
|
||||||
|
blueberry \
|
||||||
|
brightnessctl \
|
||||||
|
btop \
|
||||||
|
cargo \
|
||||||
|
clang \
|
||||||
|
cups \
|
||||||
|
cups-browsed \
|
||||||
|
cups-filters \
|
||||||
|
cups-pdf \
|
||||||
|
docker \
|
||||||
|
docker-buildx \
|
||||||
|
docker-compose \
|
||||||
|
dust \
|
||||||
|
evince \
|
||||||
|
eza \
|
||||||
|
fastfetch \
|
||||||
|
fcitx5 \
|
||||||
|
fcitx5-gtk \
|
||||||
|
fcitx5-qt \
|
||||||
|
fd \
|
||||||
|
ffmpegthumbnailer \
|
||||||
|
fontconfig \
|
||||||
|
fzf \
|
||||||
|
gcc14 \
|
||||||
|
github-cli \
|
||||||
|
gnome-calculator \
|
||||||
|
gnome-keyring \
|
||||||
|
gnome-themes-extra \
|
||||||
|
gum \
|
||||||
|
gvfs-mtp \
|
||||||
|
gvfs-smb \
|
||||||
|
hypridle \
|
||||||
|
hyprland \
|
||||||
|
hyprland-qtutils \
|
||||||
|
hyprlock \
|
||||||
|
hyprpicker \
|
||||||
|
hyprshot \
|
||||||
|
hyprsunset \
|
||||||
|
imagemagick \
|
||||||
|
impala \
|
||||||
|
imv \
|
||||||
|
inetutils \
|
||||||
|
iwd \
|
||||||
|
jq \
|
||||||
|
kdenlive \
|
||||||
|
kvantum-qt5 \
|
||||||
|
lazydocker \
|
||||||
|
lazygit \
|
||||||
|
less \
|
||||||
|
libqalculate \
|
||||||
|
libreoffice \
|
||||||
|
llvm \
|
||||||
|
localsend \
|
||||||
|
luarocks \
|
||||||
|
mako \
|
||||||
|
man \
|
||||||
|
mariadb-libs \
|
||||||
|
mise \
|
||||||
|
mpv \
|
||||||
|
nautilus \
|
||||||
|
noto-fonts \
|
||||||
|
noto-fonts-cjk \
|
||||||
|
noto-fonts-emoji \
|
||||||
|
noto-fonts-extra \
|
||||||
|
nss-mdns \
|
||||||
|
nvim \
|
||||||
|
obs-studio \
|
||||||
|
obsidian \
|
||||||
|
omarchy-chromium \
|
||||||
|
pamixer \
|
||||||
|
pinta \
|
||||||
|
playerctl \
|
||||||
|
plocate \
|
||||||
|
plymouth \
|
||||||
|
polkit-gnome \
|
||||||
|
postgresql-libs \
|
||||||
|
power-profiles-daemon \
|
||||||
|
python-gobject \
|
||||||
|
python-poetry-core \
|
||||||
|
python-terminaltexteffects \
|
||||||
|
qt5-wayland \
|
||||||
|
ripgrep \
|
||||||
|
satty \
|
||||||
|
signal-desktop \
|
||||||
|
slurp \
|
||||||
|
spotify \
|
||||||
|
starship \
|
||||||
|
sushi \
|
||||||
|
swaybg \
|
||||||
|
swayosd \
|
||||||
|
system-config-printer \
|
||||||
|
tldr \
|
||||||
|
tree-sitter-cli \
|
||||||
|
ttf-cascadia-mono-nerd \
|
||||||
|
ttf-ia-writer \
|
||||||
|
ttf-jetbrains-mono-nerd \
|
||||||
|
typora \
|
||||||
|
tzupdate \
|
||||||
|
ufw \
|
||||||
|
ufw-docker \
|
||||||
|
unzip \
|
||||||
|
uwsm \
|
||||||
|
walker-bin \
|
||||||
|
waybar \
|
||||||
|
wf-recorder \
|
||||||
|
whois \
|
||||||
|
wireless-regdb \
|
||||||
|
wiremix \
|
||||||
|
wireplumber \
|
||||||
|
wl-clip-persist \
|
||||||
|
wl-clipboard \
|
||||||
|
wl-screenrec \
|
||||||
|
woff2-font-awesome \
|
||||||
|
xdg-desktop-portal-gtk \
|
||||||
|
xdg-desktop-portal-hyprland \
|
||||||
|
xmlstarlet \
|
||||||
|
xournalpp \
|
||||||
|
yaru-icon-theme \
|
||||||
|
yay \
|
||||||
|
zoxide
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
run_logged $OMARCHY_INSTALL/packaging/base.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/packaging/fonts.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/packaging/lazyvim.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/packaging/icons.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/packaging/webapps.sh
|
|
||||||
run_logged $OMARCHY_INSTALL/packaging/tuis.sh
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
# Install all base packages
|
|
||||||
mapfile -t packages < <(grep -v '^#' "$OMARCHY_INSTALL/omarchy-base.packages" | grep -v '^$')
|
|
||||||
sudo pacman -S --noconfirm --needed "${packages[@]}"
|
|
||||||
2
install/packaging/fonts.sh
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Omarchy logo in a font for Waybar use
|
# Omarchy logo in a font for Waybar use
|
||||||
mkdir -p ~/.local/share/fonts
|
mkdir -p ~/.local/share/fonts
|
||||||
cp ~/.local/share/omarchy/config/omarchy.ttf ~/.local/share/fonts/
|
cp ~/.local/share/omarchy/config/omarchy.ttf ~/.local/share/fonts/
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
# Copy all bundled icons to the applications/icons directory
|
|
||||||
ICON_DIR="$HOME/.local/share/applications/icons"
|
|
||||||
mkdir -p "$ICON_DIR"
|
|
||||||
cp ~/.local/share/omarchy/applications/icons/*.png "$ICON_DIR/"
|
|
||||||
7
install/packaging/lazyvim.sh
Normal file → Executable file
@@ -1,3 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
if [[ ! -d "$HOME/.config/nvim" ]]; then
|
if [[ ! -d "$HOME/.config/nvim" ]]; then
|
||||||
omarchy-lazyvim-setup
|
git clone https://github.com/LazyVim/starter ~/.config/nvim
|
||||||
|
cp -R ~/.local/share/omarchy/config/nvim/* ~/.config/nvim/
|
||||||
|
rm -rf ~/.config/nvim/.git
|
||||||
|
echo "vim.opt.relativenumber = false" >>~/.config/nvim/lua/config/options.lua
|
||||||
fi
|
fi
|
||||||
|
|||||||
13
install/packaging/pins.sh
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# We pin explicit packages that are bad upstream here
|
||||||
|
pinned_packages=$(omarchy-pkg-pinned)
|
||||||
|
|
||||||
|
if [[ -n $pinned_packages ]]; then
|
||||||
|
echo -e "\e[32m\nInstall pinned system packages\e[0m"
|
||||||
|
|
||||||
|
for pinned in $pinned_packages; do
|
||||||
|
echo "sudo pacman -U --noconfirm $pinned"
|
||||||
|
sudo pacman -U --noconfirm $pinned
|
||||||
|
done
|
||||||
|
fi
|
||||||