mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
Compare commits
42 Commits
remove-log
...
remove-rec
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a34a671dc8 | ||
|
|
c3af4b9469 | ||
|
|
ffe8997fad | ||
|
|
e2611d9bc4 | ||
|
|
266767df5f | ||
|
|
eb4172a486 | ||
|
|
ca115b9061 | ||
|
|
ab09446971 | ||
|
|
af0f459a1a | ||
|
|
fbf9a19574 | ||
|
|
95139164a3 | ||
|
|
2ae973108d | ||
|
|
aa0b44b7f4 | ||
|
|
d9424b2bff | ||
|
|
36a30dd01d | ||
|
|
82467892a3 | ||
|
|
e138f7e8eb | ||
|
|
0a75644f2d | ||
|
|
3725f2d3b6 | ||
|
|
0ebd62a32e | ||
|
|
31d97335fc | ||
|
|
41a1fe6b21 | ||
|
|
91e686f1b2 | ||
|
|
75ac6910d4 | ||
|
|
b4b8788c14 | ||
|
|
76c94e2604 | ||
|
|
e59a98fb0b | ||
|
|
dee7e3e4a7 | ||
|
|
5a7b9292c8 | ||
|
|
31ce6f689e | ||
|
|
210481d758 | ||
|
|
3bac37b21b | ||
|
|
1edbe89191 | ||
|
|
617e96234b | ||
|
|
5873980703 | ||
|
|
b8cc8d8bc3 | ||
|
|
455fe890ec | ||
|
|
ccc8aa87d0 | ||
|
|
193797393f | ||
|
|
7056a3903a | ||
|
|
3880c49469 | ||
|
|
cc80782160 |
@@ -1,7 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Name=Audio Settings
|
||||
Comment=Using Wiremix
|
||||
Exec=alacritty --class=Wiremix --title=Wiremix -e wiremix
|
||||
Icon=audio-headphones
|
||||
Type=Application
|
||||
Terminal=false
|
||||
@@ -1,12 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Name=Zoom
|
||||
Comment=Zoom Video Conference
|
||||
Exec=env QT_SCALE_FACTOR=2 /usr/bin/zoom %U
|
||||
Icon=Zoom
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Encoding=UTF-8
|
||||
Categories=Network;Application;
|
||||
StartupWMClass=zoom
|
||||
MimeType=x-scheme-handler/zoommtg;x-scheme-handler/zoomus;x-scheme-handler/tel;x-scheme-handler/callto;x-scheme-handler/zoomphonecall;x-scheme-handler/zoomphonesms;x-scheme-handler/zoomcontactcentercall;application/x-zoom
|
||||
X-KDE-Protocols=zoommtg;zoomus;tel;callto;zoomphonecall;zoomphonesms;zoomcontactcentercall;
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
options=("MariaDB" "MySQL" "Redis" "PostgreSQL" "MongoDB")
|
||||
options=("MySQL" "PostgreSQL" "Redis" "MongoDB" "MariaDB")
|
||||
choices=$(printf "%s\n" "${options[@]}" | gum choose --no-limit --header "Select databases (space to select, return to install, esc to cancel)") || main_menu
|
||||
|
||||
if [[ -n "$choices" ]]; then
|
||||
|
||||
26
bin/omarchy-install-firewall
Executable file
26
bin/omarchy-install-firewall
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
if ! command -v ufw &>/dev/null; then
|
||||
yay -S --noconfirm --needed ufw ufw-docker
|
||||
fi
|
||||
|
||||
# Allow nothing in, everything out
|
||||
sudo ufw default deny incoming
|
||||
sudo ufw default allow outgoing
|
||||
|
||||
# Allow ports for LocalSend
|
||||
sudo ufw allow 53317/udp
|
||||
sudo ufw allow 53317/tcp
|
||||
|
||||
# Allow SSH in
|
||||
sudo ufw allow 22/tcp
|
||||
|
||||
# Allow Docker containers to use DNS on host
|
||||
sudo ufw allow in proto udp from 172.16.0.0/12 to 172.17.0.1 port 53 comment 'allow-docker-dns'
|
||||
|
||||
# Turn on the firewall
|
||||
sudo ufw --force enable
|
||||
|
||||
# Turn on Docker protections
|
||||
sudo ufw-docker install
|
||||
sudo ufw reload
|
||||
@@ -184,7 +184,8 @@ show_install_menu() {
|
||||
}
|
||||
|
||||
show_install_service_menu() {
|
||||
case $(menu "Install" " Dropbox\n Tailscale") in
|
||||
case $(menu "Install" " Firewall\n Dropbox\n Tailscale") in
|
||||
*Firewall*) present_terminal omarchy-install-firewall ;;
|
||||
*Dropbox*) present_terminal omarchy-install-dropbox ;;
|
||||
*Tailscale*) present_terminal omarchy-install-tailscale ;;
|
||||
*) show_install_menu ;;
|
||||
|
||||
@@ -8,6 +8,11 @@ if [[ -z $COMMAND ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v snapper &>/dev/null; then
|
||||
echo "You need Snapper installed to be able to use omarchy-snapshot."
|
||||
exit 127
|
||||
fi
|
||||
|
||||
case "$COMMAND" in
|
||||
create)
|
||||
DESC="$(omarchy-version)"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Status indicator daemon for waybar
|
||||
# Calls individual status scripts and caches results
|
||||
|
||||
STATE_DIR="/tmp/omarchy-status"
|
||||
STATE_DIR=~/.local/state/omarchy/status
|
||||
DAEMON_PID_FILE="$STATE_DIR/daemon.pid"
|
||||
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
|
||||
|
||||
@@ -11,15 +11,14 @@ mkdir -p "$STATE_DIR"
|
||||
|
||||
# Update all status files by calling individual scripts
|
||||
update_all_status_files() {
|
||||
"$SCRIPT_DIR/omarchy-status-dnd" > "$STATE_DIR/dnd"
|
||||
"$SCRIPT_DIR/omarchy-status-nightlight" > "$STATE_DIR/nightlight"
|
||||
"$SCRIPT_DIR/omarchy-status-recording" > "$STATE_DIR/recording"
|
||||
"$SCRIPT_DIR/omarchy-status-idle" > "$STATE_DIR/idle"
|
||||
"$SCRIPT_DIR/omarchy-status-dnd" >"$STATE_DIR/dnd"
|
||||
"$SCRIPT_DIR/omarchy-status-nightlight" >"$STATE_DIR/nightlight"
|
||||
"$SCRIPT_DIR/omarchy-status-idle" >"$STATE_DIR/idle"
|
||||
}
|
||||
|
||||
# Generate hash for change detection
|
||||
get_status_hash() {
|
||||
echo "$(pgrep -c "mako|hyprsunset|wl-screenrec|wf-recorder|obs|hypridle" 2>/dev/null)$(makoctl mode 2>/dev/null | grep -c 'do-not-disturb')$(hyprctl hyprsunset temperature 2>/dev/null)"
|
||||
echo "$($(makoctl mode 2>/dev/null | grep -c 'do-not-disturb')$(hyprctl hyprsunset temperature 2>/dev/null)"
|
||||
}
|
||||
|
||||
# Start background monitoring daemon
|
||||
@@ -32,24 +31,24 @@ start_daemon() {
|
||||
last_hash=""
|
||||
while true; do
|
||||
current_hash=$(get_status_hash)
|
||||
|
||||
|
||||
if [ "$current_hash" != "$last_hash" ]; then
|
||||
update_all_status_files
|
||||
last_hash="$current_hash"
|
||||
fi
|
||||
|
||||
|
||||
sleep 0.5
|
||||
done
|
||||
} &
|
||||
|
||||
echo $! > "$DAEMON_PID_FILE"
|
||||
|
||||
echo $! >"$DAEMON_PID_FILE"
|
||||
}
|
||||
|
||||
# Main execution
|
||||
MODULE="$1"
|
||||
|
||||
if [ -z "$MODULE" ]; then
|
||||
echo "Usage: $0 [dnd|nightlight|recording|idle]"
|
||||
echo "Usage: $0 [dnd|nightlight|idle]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Recording status indicator
|
||||
|
||||
if pgrep -x wl-screenrec >/dev/null 2>&1 || \
|
||||
pgrep -x wf-recorder >/dev/null 2>&1 || \
|
||||
pgrep -x obs >/dev/null 2>&1 || \
|
||||
pgrep -f "ffmpeg.*(x11grab|gdigrab|avfoundation)" >/dev/null 2>&1; then
|
||||
echo '{"text": "", "tooltip": "Screen recording active", "class": "status-recording"}'
|
||||
else
|
||||
echo '{"text": "", "tooltip": "", "class": "hidden"}'
|
||||
fi
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
set -e
|
||||
|
||||
omarchy-snapshot create
|
||||
omarchy-snapshot create || [ $? -eq 127 ]
|
||||
omarchy-update-git
|
||||
omarchy-migrate
|
||||
omarchy-update-system-pkgs
|
||||
|
||||
5
boot.sh
5
boot.sh
@@ -23,8 +23,9 @@ echo -e "\nCloning Omarchy from: https://github.com/${OMARCHY_REPO}.git"
|
||||
rm -rf ~/.local/share/omarchy/
|
||||
git clone "https://github.com/${OMARCHY_REPO}.git" ~/.local/share/omarchy >/dev/null
|
||||
|
||||
# Use custom branch if instructed
|
||||
if [[ -n "$OMARCHY_REF" ]]; then
|
||||
# Use custom branch if instructed, otherwise default to master
|
||||
OMARCHY_REF="${OMARCHY_REF:-master}"
|
||||
if [[ $OMARCHY_REF != "master" ]]; then
|
||||
echo -e "\eUsing branch: $OMARCHY_REF"
|
||||
cd ~/.local/share/omarchy
|
||||
git fetch origin "${OMARCHY_REF}" && git checkout "${OMARCHY_REF}"
|
||||
|
||||
BIN
config/omarchy.ttf
Normal file
BIN
config/omarchy.ttf
Normal file
Binary file not shown.
@@ -4,15 +4,8 @@
|
||||
"position": "top",
|
||||
"spacing": 0,
|
||||
"height": 26,
|
||||
"modules-left": [
|
||||
"custom/omarchy",
|
||||
"hyprland/workspaces"
|
||||
],
|
||||
"modules-center": [
|
||||
"group/status-cluster",
|
||||
"clock",
|
||||
"custom/update"
|
||||
],
|
||||
"modules-left": ["custom/omarchy", "hyprland/workspaces"],
|
||||
"modules-center": ["group/status-cluster", "clock", "custom/update"],
|
||||
"modules-right": [
|
||||
"group/tray-expander",
|
||||
"bluetooth",
|
||||
@@ -46,7 +39,7 @@
|
||||
}
|
||||
},
|
||||
"custom/omarchy": {
|
||||
"format": "",
|
||||
"format": "<span font='omarchy'>\ue900</span>",
|
||||
"on-click": "omarchy-menu",
|
||||
"tooltip-format": "Omarchy Menu\n\nSuper + Alt + Space"
|
||||
},
|
||||
@@ -70,11 +63,11 @@
|
||||
"on-click-right": "omarchy-cmd-tzupdate"
|
||||
},
|
||||
"network": {
|
||||
"format-icons": ["","","","",""],
|
||||
"format" : "{icon}",
|
||||
"format-wifi" : "{icon}",
|
||||
"format-ethernet" : "",
|
||||
"format-disconnected" : "",
|
||||
"format-icons": ["", "", "", "", ""],
|
||||
"format": "{icon}",
|
||||
"format-wifi": "{icon}",
|
||||
"format-ethernet": "",
|
||||
"format-disconnected": "",
|
||||
"tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||
"tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||
"tooltip-format-disconnected": "Disconnected",
|
||||
@@ -85,15 +78,11 @@
|
||||
"battery": {
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-discharging": "{icon}",
|
||||
"format-charging": "{icon}",
|
||||
"format-plugged": "",
|
||||
"format-charging": "{icon}",
|
||||
"format-plugged": "",
|
||||
"format-icons": {
|
||||
"charging": [
|
||||
"", "", "", "", "", "", "", "", "", ""
|
||||
],
|
||||
"default": [
|
||||
"", "", "", "", "", "", "", "", "", ""
|
||||
]
|
||||
"charging": ["", "", "", "", "", "", "", "", "", ""],
|
||||
"default": ["", "", "", "", "", "", "", "", "", ""]
|
||||
},
|
||||
"format-full": "",
|
||||
"tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%",
|
||||
@@ -128,17 +117,13 @@
|
||||
"transition-duration": 600,
|
||||
"children-class": "tray-group-item"
|
||||
},
|
||||
"modules": [
|
||||
"custom/expand-icon",
|
||||
"tray"
|
||||
]
|
||||
"modules": ["custom/expand-icon", "tray"]
|
||||
},
|
||||
"group/status-cluster": {
|
||||
"orientation": "inherit",
|
||||
"modules": [
|
||||
"custom/status-dnd",
|
||||
"custom/status-nightlight",
|
||||
"custom/status-recording",
|
||||
"custom/status-nightlight",
|
||||
"custom/status-idle"
|
||||
]
|
||||
},
|
||||
@@ -149,17 +134,11 @@
|
||||
"on-click": "makoctl mode -t do-not-disturb"
|
||||
},
|
||||
"custom/status-nightlight": {
|
||||
"exec": "omarchy-status-daemon nightlight",
|
||||
"exec": "omarchy-status-daemon nightlight",
|
||||
"return-type": "json",
|
||||
"interval": 1,
|
||||
"on-click": "omarchy-toggle-nightlight"
|
||||
},
|
||||
"custom/status-recording": {
|
||||
"exec": "omarchy-status-daemon recording",
|
||||
"return-type": "json",
|
||||
"interval": 1,
|
||||
"on-click": "omarchy-cmd-screenrecord-stop"
|
||||
},
|
||||
"custom/status-idle": {
|
||||
"exec": "omarchy-status-daemon idle",
|
||||
"return-type": "json",
|
||||
|
||||
@@ -64,7 +64,6 @@ tooltip {
|
||||
|
||||
#custom-status-dnd,
|
||||
#custom-status-nightlight,
|
||||
#custom-status-recording,
|
||||
#custom-status-idle {
|
||||
min-width: 12px;
|
||||
margin: 0 2px;
|
||||
@@ -77,11 +76,6 @@ tooltip {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#custom-status-recording.status-recording {
|
||||
color: #a55555;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
@@ -8,4 +8,3 @@ source = ~/.local/share/omarchy/default/hypr/apps/system.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/walker.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/1password.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/jetbrains.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/apps/zoom.conf
|
||||
@@ -3,4 +3,4 @@ windowrule = tile, class:^(Chromium)$
|
||||
|
||||
# Only slight opacity when unfocused
|
||||
windowrule = opacity 1 0.97, class:^(Chromium|chromium|google-chrome|google-chrome-unstable|Brave-browser|brave-browser)$
|
||||
windowrule = opacity 1 1, initialTitle:^(youtube.com_/)$ # Youtube
|
||||
windowrule = opacity 1 1, initialTitle:(youtube.com_/|app.zoom.us_/wc/home)
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
windowrule = opacity 1 1, class:Zoom Workplace
|
||||
|
||||
57
install.sh
57
install.sh
@@ -6,38 +6,6 @@ set -e
|
||||
export PATH="$HOME/.local/share/omarchy/bin:$PATH"
|
||||
OMARCHY_INSTALL=~/.local/share/omarchy/install
|
||||
|
||||
# Give people a chance to retry running the installation
|
||||
catch_errors() {
|
||||
echo -e "\n\e[31mOmarchy installation failed!\e[0m"
|
||||
echo "The failing command was: \`$BASH_COMMAND\` (exit code: $?)"
|
||||
echo "See your installation log: ~/.local/state/omarchy/installation.log"
|
||||
echo
|
||||
echo "Get help from the community via QR code or at https://discord.gg/tXFUdasqhY"
|
||||
echo " "
|
||||
echo " █▀▀▀▀▀█ ▄ ▄ ▀▄▄▄█ █▀▀▀▀▀█ "
|
||||
echo " █ ███ █ ▄▄▄▄▀▄▀▄▀ █ ███ █ "
|
||||
echo " █ ▀▀▀ █ ▄█ ▄█▄▄▀ █ ▀▀▀ █ "
|
||||
echo " ▀▀▀▀▀▀▀ ▀▄█ █ █ █ ▀▀▀▀▀▀▀ "
|
||||
echo " ▀▀█▀▀▄▀▀▀▀▄█▀▀█ ▀ █ ▀ █ "
|
||||
echo " █▄█ ▄▄▀▄▄ ▀ ▄ ▀█▄▄▄▄ ▀ ▀█ "
|
||||
echo " ▄ ▄▀█ ▀▄▀▀▀▄ ▄█▀▄█▀▄▀▄▀█▀ "
|
||||
echo " █ ▄▄█▄▀▄█ ▄▄▄ ▀ ▄▀██▀ ▀█ "
|
||||
echo " ▀ ▀ ▀ █ ▀▄ ▀▀█▀▀▀█▄▀ "
|
||||
echo " █▀▀▀▀▀█ ▀█ ▄▀▀ █ ▀ █▄▀██ "
|
||||
echo " █ ███ █ █▀▄▄▀ █▀███▀█▄██▄ "
|
||||
echo " █ ▀▀▀ █ ██ ▀ █▄█ ▄▄▄█▀ █ "
|
||||
echo " ▀▀▀▀▀▀▀ ▀ ▀ ▀▀▀ ▀ ▀▀▀▀▀▀ "
|
||||
echo " "
|
||||
|
||||
if [[ -n $OMARCHY_BARE ]]; then
|
||||
echo "You can retry by running: OMARCHY_BARE=true bash ~/.local/share/omarchy/install.sh"
|
||||
else
|
||||
echo "You can retry by running: bash ~/.local/share/omarchy/install.sh"
|
||||
fi
|
||||
}
|
||||
|
||||
trap catch_errors ERR
|
||||
|
||||
show_logo() {
|
||||
clear
|
||||
tte -i ~/.local/share/omarchy/logo.txt --frame-rate ${2:-120} ${1:-expand}
|
||||
@@ -49,30 +17,32 @@ show_subtext() {
|
||||
echo
|
||||
}
|
||||
|
||||
# Start logging
|
||||
source $OMARCHY_INSTALL/log/before-install.sh
|
||||
|
||||
# Install prerequisites
|
||||
source $OMARCHY_INSTALL/preflight/show-env.sh
|
||||
source $OMARCHY_INSTALL/preflight/trap-errors.sh
|
||||
source $OMARCHY_INSTALL/preflight/chroot.sh
|
||||
source $OMARCHY_INSTALL/preflight/mirrorlist.sh
|
||||
source $OMARCHY_INSTALL/preflight/gum.sh
|
||||
source $OMARCHY_INSTALL/preflight/guard.sh
|
||||
source $OMARCHY_INSTALL/preflight/aur.sh
|
||||
source $OMARCHY_INSTALL/preflight/tte.sh
|
||||
source $OMARCHY_INSTALL/preflight/migrations.sh
|
||||
|
||||
# Configuration
|
||||
source $OMARCHY_INSTALL/config/config.sh
|
||||
source $OMARCHY_INSTALL/config/branding.sh
|
||||
source $OMARCHY_INSTALL/config/detect-keyboard-layout.sh
|
||||
source $OMARCHY_INSTALL/config/fix-fkeys.sh
|
||||
source $OMARCHY_INSTALL/config/network.sh
|
||||
source $OMARCHY_INSTALL/config/power.sh
|
||||
source $OMARCHY_INSTALL/config/git.sh
|
||||
source $OMARCHY_INSTALL/config/gpg.sh
|
||||
source $OMARCHY_INSTALL/config/usb-autosuspend.sh
|
||||
source $OMARCHY_INSTALL/config/timezones.sh
|
||||
source $OMARCHY_INSTALL/config/nvidia.sh
|
||||
source $OMARCHY_INSTALL/config/increase-sudo-tries.sh
|
||||
source $OMARCHY_INSTALL/config/increase-lockout-limit.sh
|
||||
source $OMARCHY_INSTALL/config/ignore-power-button.sh
|
||||
source $OMARCHY_INSTALL/config/ssh-flakiness.sh
|
||||
source $OMARCHY_INSTALL/config/detect-keyboard-layout.sh
|
||||
source $OMARCHY_INSTALL/config/fix-fkeys.sh
|
||||
source $OMARCHY_INSTALL/config/xcompose.sh
|
||||
|
||||
# Login
|
||||
source $OMARCHY_INSTALL/login/plymouth.sh
|
||||
@@ -110,19 +80,14 @@ if ping -c5 omarchy.org &>/dev/null; then
|
||||
yay -Syu --noconfirm
|
||||
fi
|
||||
|
||||
# Stop logging
|
||||
source $OMARCHY_INSTALL/log/after-install.sh
|
||||
|
||||
# Reboot
|
||||
show_logo laseretch 920
|
||||
show_subtext "You're done! So we're ready to reboot now..."
|
||||
|
||||
if sudo test -f /etc/sudoers.d/99-omarchy-installer; then
|
||||
sudo rm -f /etc/sudoers.d/99-omarchy-installer &>/dev/null
|
||||
echo
|
||||
read -n 1 -s -r -p "Remove the USB installer then press any key to reboot..."
|
||||
echo
|
||||
echo -e "\nRemember to remove USB installer!"
|
||||
fi
|
||||
|
||||
sleep 2
|
||||
sleep 5
|
||||
reboot
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -z "$OMARCHY_BARE" ]; then
|
||||
omarchy-tui-install "Disk Usage" "bash -c 'dust; read -n 1 -s'" float https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/qdirstat.png
|
||||
omarchy-tui-install "Disk Usage" "bash -c 'dust -r; read -n 1 -s'" float https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/qdirstat.png
|
||||
omarchy-tui-install "Docker" "lazydocker" tile https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/docker.png
|
||||
fi
|
||||
|
||||
@@ -13,4 +13,5 @@ if [ -z "$OMARCHY_BARE" ]; then
|
||||
omarchy-webapp-install "X" https://x.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/x-light.png
|
||||
omarchy-webapp-install "Figma" https://figma.com/ https://www.veryicon.com/download/png/application/app-icon-7/figma-1?s=256
|
||||
omarchy-webapp-install "Discord" https://discord.com/channels/@me https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/discord.png
|
||||
omarchy-webapp-install "Zoom" https://app.zoom.us/wc/home https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/zoom.png
|
||||
fi
|
||||
|
||||
@@ -7,8 +7,7 @@ if [ -z "$OMARCHY_BARE" ]; then
|
||||
xournalpp localsend-bin
|
||||
|
||||
# Packages known to be flaky or having key signing issues are run one-by-one
|
||||
# FIXME: Add pinta back to this list when we have dealt with certificate issue
|
||||
for pkg in typora spotify zoom; do
|
||||
for pkg in typora spotify pinta; do
|
||||
yay -S --noconfirm --needed "$pkg" ||
|
||||
echo -e "\e[31mFailed to install $pkg. Continuing without!\e[0m"
|
||||
done
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copy over Omarchy configs
|
||||
mkdir -p ~/.config
|
||||
cp -R ~/.local/share/omarchy/config/* ~/.config/
|
||||
|
||||
# Use default bashrc from Omarchy
|
||||
@@ -14,43 +15,3 @@ if [ -n "$OMARCHY_BARE" ]; then
|
||||
mkdir -p ~/.local/state/omarchy
|
||||
touch ~/.local/state/omarchy/bare.mode
|
||||
fi
|
||||
|
||||
# Setup GPG configuration with multiple keyservers for better reliability
|
||||
sudo mkdir -p /etc/gnupg
|
||||
sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/
|
||||
sudo chmod 644 /etc/gnupg/dirmngr.conf
|
||||
sudo gpgconf --kill dirmngr || true
|
||||
sudo gpgconf --launch dirmngr || true
|
||||
|
||||
# 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\+\[default=die\]\s\+pam_faillock.so\)\s\+authfail.*$|\1 authfail deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
|
||||
|
||||
# Solve common flakiness with SSH
|
||||
echo "net.ipv4.tcp_mtu_probing=1" | sudo tee -a /etc/sysctl.d/99-sysctl.conf
|
||||
|
||||
# Set common git aliases
|
||||
git config --global alias.co checkout
|
||||
git config --global alias.br branch
|
||||
git config --global alias.ci commit
|
||||
git config --global alias.st status
|
||||
git config --global pull.rebase true
|
||||
git config --global init.defaultBranch master
|
||||
|
||||
# Set identification from install inputs
|
||||
if [[ -n "${OMARCHY_USER_NAME//[[:space:]]/}" ]]; then
|
||||
git config --global user.name "$OMARCHY_USER_NAME"
|
||||
fi
|
||||
|
||||
if [[ -n "${OMARCHY_USER_EMAIL//[[:space:]]/}" ]]; then
|
||||
git config --global user.email "$OMARCHY_USER_EMAIL"
|
||||
fi
|
||||
|
||||
# Set default XCompose that is triggered with CapsLock
|
||||
tee ~/.XCompose >/dev/null <<EOF
|
||||
include "%H/.local/share/omarchy/default/xcompose"
|
||||
|
||||
# Identification
|
||||
<Multi_key> <space> <n> : "$OMARCHY_USER_NAME"
|
||||
<Multi_key> <space> <e> : "$OMARCHY_USER_EMAIL"
|
||||
EOF
|
||||
|
||||
@@ -2,7 +2,4 @@
|
||||
|
||||
if [[ ! -f /etc/modprobe.d/hid_apple.conf ]]; then
|
||||
echo "options hid_apple fnmode=2" | sudo tee /etc/modprobe.d/hid_apple.conf
|
||||
|
||||
# Rely on install/login.sh to do the rebuild
|
||||
# sudo mkinitcpio -P
|
||||
fi
|
||||
|
||||
18
install/config/git.sh
Normal file
18
install/config/git.sh
Normal file
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Set common git aliases
|
||||
git config --global alias.co checkout
|
||||
git config --global alias.br branch
|
||||
git config --global alias.ci commit
|
||||
git config --global alias.st status
|
||||
git config --global pull.rebase true
|
||||
git config --global init.defaultBranch master
|
||||
|
||||
# Set identification from install inputs
|
||||
if [[ -n "${OMARCHY_USER_NAME//[[:space:]]/}" ]]; then
|
||||
git config --global user.name "$OMARCHY_USER_NAME"
|
||||
fi
|
||||
|
||||
if [[ -n "${OMARCHY_USER_EMAIL//[[:space:]]/}" ]]; then
|
||||
git config --global user.email "$OMARCHY_USER_EMAIL"
|
||||
fi
|
||||
8
install/config/gpg.sh
Normal file
8
install/config/gpg.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Setup GPG configuration with multiple keyservers for better reliability
|
||||
sudo mkdir -p /etc/gnupg
|
||||
sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/
|
||||
sudo chmod 644 /etc/gnupg/dirmngr.conf
|
||||
sudo gpgconf --kill dirmngr || true
|
||||
sudo gpgconf --launch dirmngr || true
|
||||
5
install/config/increase-lockout-limit.sh
Normal file
5
install/config/increase-lockout-limit.sh
Normal file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 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\+\[default=die\]\s\+pam_faillock.so\)\s\+authfail.*$|\1 authfail deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
|
||||
@@ -1,2 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Defaults passwd_tries=10" | sudo tee /etc/sudoers.d/passwd-tries
|
||||
sudo chmod 440 /etc/sudoers.d/passwd-tries
|
||||
|
||||
@@ -4,17 +4,16 @@
|
||||
# even if they're not running off a battery. So let's make sure that's changed to performance.
|
||||
yay -S --noconfirm python-gobject power-profiles-daemon
|
||||
|
||||
if ls /sys/class/power_supply/BAT* &>/dev/null; then
|
||||
# This computer runs on a battery
|
||||
powerprofilesctl set balanced || true
|
||||
# FIXME: Can't set powerprofilesctl during CHROOT, must do it afterwards
|
||||
if [ -z "${OMARCHY_CHROOT_INSTALL:-}" ]; then
|
||||
if ls /sys/class/power_supply/BAT* &>/dev/null; then
|
||||
# This computer runs on a battery
|
||||
powerprofilesctl set balanced || true
|
||||
|
||||
# Enable battery monitoring timer for low battery notifications
|
||||
if [ -n "${OMARCHY_CHROOT_INSTALL:-}" ]; then
|
||||
systemctl --user enable omarchy-battery-monitor.timer
|
||||
else
|
||||
# Enable battery monitoring timer for low battery notifications
|
||||
systemctl --user enable --now omarchy-battery-monitor.timer
|
||||
else
|
||||
# This computer runs on power outlet
|
||||
powerprofilesctl set performance || true
|
||||
fi
|
||||
else
|
||||
# This computer runs on power outlet
|
||||
powerprofilesctl set performance || true
|
||||
fi
|
||||
|
||||
4
install/config/ssh-flakiness.sh
Normal file
4
install/config/ssh-flakiness.sh
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Solve common flakiness with SSH
|
||||
echo "net.ipv4.tcp_mtu_probing=1" | sudo tee -a /etc/sysctl.d/99-sysctl.conf
|
||||
10
install/config/xcompose.sh
Normal file
10
install/config/xcompose.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Set default XCompose that is triggered with CapsLock
|
||||
tee ~/.XCompose >/dev/null <<EOF
|
||||
include "%H/.local/share/omarchy/default/xcompose"
|
||||
|
||||
# Identification
|
||||
<Multi_key> <space> <n> : "$OMARCHY_USER_NAME"
|
||||
<Multi_key> <space> <e> : "$OMARCHY_USER_EMAIL"
|
||||
EOF
|
||||
@@ -2,6 +2,10 @@
|
||||
|
||||
yay -S --noconfirm --needed ttf-font-awesome ttf-cascadia-mono-nerd ttf-ia-writer noto-fonts noto-fonts-emoji
|
||||
|
||||
mkdir -p ~/.local/share/fonts
|
||||
cp ~/.local/share/omarchy/config/omarchy.ttf ~/.local/share/fonts/
|
||||
fc-cache
|
||||
|
||||
if [ -z "$OMARCHY_BARE" ]; then
|
||||
yay -S --noconfirm --needed ttf-jetbrains-mono noto-fonts-cjk noto-fonts-extra
|
||||
fi
|
||||
|
||||
@@ -1,26 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
if ! command -v ufw &>/dev/null && -z "${OMARCHY_CHROOT_INSTALL:-}"; then
|
||||
yay -S --noconfirm --needed ufw ufw-docker
|
||||
|
||||
# Allow nothing in, everything out
|
||||
sudo ufw default deny incoming
|
||||
sudo ufw default allow outgoing
|
||||
|
||||
# Allow ports for LocalSend
|
||||
sudo ufw allow 53317/udp
|
||||
sudo ufw allow 53317/tcp
|
||||
|
||||
# Allow SSH in
|
||||
sudo ufw allow 22/tcp
|
||||
|
||||
# Allow Docker containers to use DNS on host
|
||||
sudo ufw allow in proto udp from 172.16.0.0/12 to 172.17.0.1 port 53 comment 'allow-docker-dns'
|
||||
|
||||
# Turn on the firewall
|
||||
sudo ufw --force enable
|
||||
|
||||
# Turn on Docker protections
|
||||
sudo ufw-docker install
|
||||
sudo ufw reload
|
||||
if -z "${OMARCHY_CHROOT_INSTALL:-}"; then
|
||||
omarchy-install-firewall
|
||||
fi
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
yay -S --noconfirm --needed \
|
||||
unzip inetutils impala \
|
||||
fd eza fzf ripgrep zoxide bat dust jq xmlstarlet \
|
||||
wl-clipboard btop \
|
||||
wl-clipboard fastfetch btop \
|
||||
man tldr less whois plocate \
|
||||
starship bash-completion \
|
||||
gum python-poetry-core python-terminaltexteffects \
|
||||
alacritty
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo -e "\n--- Pacman packages (after installation) ---"
|
||||
echo "Total packages installed: $(pacman -Q | wc -l)"
|
||||
pacman -Q
|
||||
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Start logging a copy of everything sent to STDOUT and STDERR
|
||||
mkdir -p ~/.local/state/omarchy/logs/
|
||||
exec &> >(tee -a ~/.local/state/omarchy/logs/installation.log)
|
||||
|
||||
echo "--- System state before installation ---"
|
||||
sudo pacman -S --noconfirm fastfetch
|
||||
fastfetch
|
||||
|
||||
echo -e "\n--- System logs (journalctl / current boot) ---"
|
||||
journalctl -b --no-pager
|
||||
|
||||
echo -e "\n--- Pacman packages (before installation) ---"
|
||||
echo "Total packages installed: $(pacman -Q | wc -l)"
|
||||
pacman -Q
|
||||
@@ -1,17 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
if command -v limine &>/dev/null && [ ! -f /etc/default/limine ]; then
|
||||
yay -S --noconfirm --needed limine-mkinitcpio-hook limine-snapper-sync
|
||||
|
||||
if command -v limine &>/dev/null; then
|
||||
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)
|
||||
EOF
|
||||
|
||||
CMDLINE=$(grep "^[[:space:]]*cmdline:" /boot/EFI/limine/limine.conf | head -1 | sed 's/^[[:space:]]*cmdline:[[:space:]]*//')
|
||||
[[ -f /boot/EFI/limine/limine.conf ]] && EFI=true
|
||||
|
||||
# Conf location is different between EFI and BIOS
|
||||
[[ -n "$EFI" ]] && limine_config="/boot/EFI/limine/limine.conf" || limine_config="/boot/limine/limine.conf"
|
||||
|
||||
CMDLINE=$(grep "^[[:space:]]*cmdline:" "$limine_config" | head -1 | sed 's/^[[:space:]]*cmdline:[[:space:]]*//')
|
||||
|
||||
sudo tee /etc/default/limine <<EOF >/dev/null
|
||||
TARGET_OS_NAME="Omarchy"
|
||||
|
||||
ESP_PATH="/boot"
|
||||
|
||||
KERNEL_CMDLINE[default]="$CMDLINE"
|
||||
KERNEL_CMDLINE[default]+="quiet splash"
|
||||
|
||||
@@ -29,6 +34,11 @@ MAX_SNAPSHOT_ENTRIES=5
|
||||
SNAPSHOT_FORMAT_CHOICE=5
|
||||
EOF
|
||||
|
||||
# UKI and EFI fallback are EFI only
|
||||
if [[ -z $EFI ]]; then
|
||||
sudo sed -i '/^ENABLE_UKI=/d; /^ENABLE_LIMINE_FALLBACK=/d' /etc/default/limine
|
||||
fi
|
||||
|
||||
# We overwrite the whole thing knowing the limine-update will add the entries for us
|
||||
sudo tee /boot/limine.conf <<EOF >/dev/null
|
||||
### Read more at config document: https://github.com/limine-bootloader/limine/blob/trunk/CONFIG.md
|
||||
@@ -52,6 +62,9 @@ term_background_bright: 24283b
|
||||
|
||||
EOF
|
||||
|
||||
yay -S --noconfirm --needed limine-mkinitcpio-hook limine-snapper-sync
|
||||
sudo limine-update
|
||||
|
||||
# Match Snapper configs if not installing from the ISO
|
||||
if [ -z "${OMARCHY_CHROOT_INSTALL:-}" ]; then
|
||||
if ! sudo snapper list-configs 2>/dev/null | grep -q "root"; then
|
||||
@@ -68,16 +81,15 @@ EOF
|
||||
sudo sed -i 's/^NUMBER_LIMIT="50"/NUMBER_LIMIT="5"/' /etc/snapper/configs/{root,home}
|
||||
sudo sed -i 's/^NUMBER_LIMIT_IMPORTANT="10"/NUMBER_LIMIT_IMPORTANT="5"/' /etc/snapper/configs/{root,home}
|
||||
|
||||
sudo limine-update
|
||||
chrootable_systemctl_enable limine-snapper-sync.service
|
||||
fi
|
||||
|
||||
# Add UKI entry to UEFI machines to skip bootloader showing on normal boot
|
||||
# Only doing this for ISO installs
|
||||
if [ -n "${OMARCHY_CHROOT_INSTALL:-}" ] && efibootmgr &>/dev/null && ! efibootmgr | grep -q Omarchy; then
|
||||
sudo efibootmgr --create \
|
||||
--disk "$(findmnt -n -o SOURCE /boot | sed 's/[0-9]*$//')" \
|
||||
--part "$(findmnt -n -o SOURCE /boot | grep -o '[0-9]*$')" \
|
||||
--label "Omarchy" \
|
||||
--loader "\\EFI\\Linux\\$(cat /etc/machine-id)_linux.efi"
|
||||
fi
|
||||
# FIXME: Make this work on real hardware
|
||||
# if [ -n "$EFI" ] && efibootmgr &>/dev/null && ! efibootmgr | grep -q Omarchy; then
|
||||
# sudo efibootmgr --create \
|
||||
# --disk "$(findmnt -n -o SOURCE /boot | sed 's/[0-9]*$//')" \
|
||||
# --part "$(findmnt -n -o SOURCE /boot | grep -o '[0-9]*$')" \
|
||||
# --label "Omarchy" \
|
||||
# --loader "\\EFI\\Linux\\$(cat /etc/machine-id)_linux.efi"
|
||||
# fi
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
# Chroot installations have some differences
|
||||
if ! cmp -s /proc/1/root/ / 2>/dev/null; then
|
||||
export OMARCHY_CHROOT_INSTALL=1
|
||||
fi
|
||||
|
||||
# Starting the installer with OMARCHY_CHROOT_INSTALL=1 will put it into chroot mode
|
||||
chrootable_systemctl_enable() {
|
||||
if [ -n "${OMARCHY_CHROOT_INSTALL:-}" ]; then
|
||||
sudo systemctl enable $1
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
sudo pacman -S --noconfirm --needed gum
|
||||
@@ -1,3 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Set mirror to single geo setup
|
||||
echo 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch' |
|
||||
sudo tee /etc/pacman.d/mirrorlist >/dev/null
|
||||
|
||||
4
install/preflight/show-env.sh
Normal file
4
install/preflight/show-env.sh
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Installation ENV:"
|
||||
env | grep -E "^(OMARCHY_CHROOT_INSTALL|OMARCHY_USER_NAME|OMARCHY_USER_EMAIL|USER|HOME|OMARCHY_REPO|OMARCHY_REF|OMARCHY_BARE)="
|
||||
34
install/preflight/trap-errors.sh
Normal file
34
install/preflight/trap-errors.sh
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Give people a chance to retry running the installation
|
||||
catch_errors() {
|
||||
echo -e "\n\e[31mOmarchy installation failed!\e[0m"
|
||||
echo
|
||||
echo "This command halted with exit code $?:"
|
||||
echo "$BASH_COMMAND"
|
||||
echo
|
||||
echo "Get help from the community via QR code or at https://discord.gg/tXFUdasqhY"
|
||||
echo " "
|
||||
echo " █▀▀▀▀▀█ ▄ ▄ ▀▄▄▄█ █▀▀▀▀▀█ "
|
||||
echo " █ ███ █ ▄▄▄▄▀▄▀▄▀ █ ███ █ "
|
||||
echo " █ ▀▀▀ █ ▄█ ▄█▄▄▀ █ ▀▀▀ █ "
|
||||
echo " ▀▀▀▀▀▀▀ ▀▄█ █ █ █ ▀▀▀▀▀▀▀ "
|
||||
echo " ▀▀█▀▀▄▀▀▀▀▄█▀▀█ ▀ █ ▀ █ "
|
||||
echo " █▄█ ▄▄▀▄▄ ▀ ▄ ▀█▄▄▄▄ ▀ ▀█ "
|
||||
echo " ▄ ▄▀█ ▀▄▀▀▀▄ ▄█▀▄█▀▄▀▄▀█▀ "
|
||||
echo " █ ▄▄█▄▀▄█ ▄▄▄ ▀ ▄▀██▀ ▀█ "
|
||||
echo " ▀ ▀ ▀ █ ▀▄ ▀▀█▀▀▀█▄▀ "
|
||||
echo " █▀▀▀▀▀█ ▀█ ▄▀▀ █ ▀ █▄▀██ "
|
||||
echo " █ ███ █ █▀▄▄▀ █▀███▀█▄██▄ "
|
||||
echo " █ ▀▀▀ █ ██ ▀ █▄█ ▄▄▄█▀ █ "
|
||||
echo " ▀▀▀▀▀▀▀ ▀ ▀ ▀▀▀ ▀ ▀▀▀▀▀▀ "
|
||||
echo " "
|
||||
|
||||
if [[ -n $OMARCHY_BARE ]]; then
|
||||
echo "You can retry by running: OMARCHY_BARE=true bash ~/.local/share/omarchy/install.sh"
|
||||
else
|
||||
echo "You can retry by running: bash ~/.local/share/omarchy/install.sh"
|
||||
fi
|
||||
}
|
||||
|
||||
trap catch_errors ERR
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
yay -S --noconfirm --needed python-poetry-core python-terminaltexteffects
|
||||
@@ -1,7 +0,0 @@
|
||||
if [[ ! -f ~/.local/state/omarchy/bare.mode ]]; then
|
||||
echo "Add missing installation of Zoom"
|
||||
|
||||
if ! command -v zoom &>/dev/null; then
|
||||
yay -S --noconfirm --needed zoom
|
||||
fi
|
||||
fi
|
||||
@@ -1,3 +1,3 @@
|
||||
echo "Add status indicators for screen recordings, nightlight, dnd, and idle lock to Waybar"
|
||||
echo "Add status indicators for nightlight, dnd, and idle lock to Waybar"
|
||||
echo
|
||||
gum confirm "Replace current Waybar config (backup will be made)?" && omarchy-refresh-waybar
|
||||
|
||||
9
migrations/1755981930.sh
Normal file
9
migrations/1755981930.sh
Normal file
@@ -0,0 +1,9 @@
|
||||
echo "Add Omarchy icon to the Waybar"
|
||||
|
||||
mkdir -p ~/.local/share/fonts
|
||||
cp ~/.local/share/omarchy/config/omarchy.ttf ~/.local/share/fonts/
|
||||
fc-cache
|
||||
|
||||
echo
|
||||
gum confirm "Replace current Waybar config (backup will be made)?" && omarchy-refresh-waybar
|
||||
|
||||
BIN
themes/catppuccin/backgrounds/2-cat-waves-mocha.png
Normal file
BIN
themes/catppuccin/backgrounds/2-cat-waves-mocha.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 MiB |
BIN
themes/catppuccin/backgrounds/3-cat-blue-eye-mocha.png
Normal file
BIN
themes/catppuccin/backgrounds/3-cat-blue-eye-mocha.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 254 KiB |
Reference in New Issue
Block a user