From c73c1c90bf2676346e4d44804c44e24bd22a7f78 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 25 Aug 2025 09:04:13 +0200 Subject: [PATCH] Extra all packages into a single master manifest --- install.sh | 27 ++--- install/{desktop => config}/bluetooth.sh | 3 - install/{development => config}/docker.sh | 2 - .../ruby.sh => config/mise-ruby.sh} | 1 - install/{desktop => config}/printer.sh | 1 - install/{desktop => config}/theme.sh | 15 --- install/desktop/desktop.sh | 10 -- install/desktop/fonts.sh | 9 -- install/desktop/hyprlandia.sh | 6 - install/development/development.sh | 8 -- install/development/terminal.sh | 12 -- install/login/limine-snapper.sh | 1 - install/login/plymouth.sh | 3 - install/packages.sh | 109 ++++++++++++++++++ install/{desktop => packaging}/asdcontrol.sh | 0 install/packaging/fonts.sh | 6 + .../nvim.sh => packaging/lazyvim.sh} | 6 +- 17 files changed, 127 insertions(+), 92 deletions(-) rename install/{desktop => config}/bluetooth.sh (54%) rename install/{development => config}/docker.sh (93%) rename install/{development/ruby.sh => config/mise-ruby.sh} (82%) rename install/{desktop => config}/printer.sh (85%) rename install/{desktop => config}/theme.sh (70%) delete mode 100755 install/desktop/desktop.sh delete mode 100755 install/desktop/fonts.sh delete mode 100755 install/desktop/hyprlandia.sh delete mode 100755 install/development/development.sh delete mode 100755 install/development/terminal.sh create mode 100644 install/packages.sh rename install/{desktop => packaging}/asdcontrol.sh (100%) create mode 100755 install/packaging/fonts.sh rename install/{development/nvim.sh => packaging/lazyvim.sh} (57%) diff --git a/install.sh b/install.sh index 426ef3de..37686c04 100755 --- a/install.sh +++ b/install.sh @@ -16,8 +16,15 @@ source $OMARCHY_INSTALL/preflight/repositories.sh source $OMARCHY_INSTALL/preflight/migrations.sh source $OMARCHY_INSTALL/preflight/first-run-mode.sh +# Packages +source $OMARCHY_INSTALL/packages.sh +source $OMARCHY_INSTALL/packaging/asdcontrol.sh +source $OMARCHY_INSTALL/packaging/fonts.sh +source $OMARCHY_INSTALL/packaging/lazyvim.sh + # Configuration source $OMARCHY_INSTALL/config/config.sh +source $OMARCHY_INSTALL/config/theme.sh source $OMARCHY_INSTALL/config/branding.sh source $OMARCHY_INSTALL/config/network.sh source $OMARCHY_INSTALL/config/git.sh @@ -31,29 +38,17 @@ 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/bluetooth.sh +source $OMARCHY_INSTALL/config/printer.sh source $OMARCHY_INSTALL/config/xcompose.sh +source $OMARCHY_INSTALL/config/mise-ruby.sh +source $OMARCHY_INSTALL/config/docker.sh # Login source $OMARCHY_INSTALL/login/plymouth.sh source $OMARCHY_INSTALL/login/limine-snapper.sh source $OMARCHY_INSTALL/login/alt-bootloaders.sh -# Development -source $OMARCHY_INSTALL/development/terminal.sh -source $OMARCHY_INSTALL/development/development.sh -source $OMARCHY_INSTALL/development/nvim.sh -source $OMARCHY_INSTALL/development/ruby.sh -source $OMARCHY_INSTALL/development/docker.sh - -# Desktop -source $OMARCHY_INSTALL/desktop/desktop.sh -source $OMARCHY_INSTALL/desktop/hyprlandia.sh -source $OMARCHY_INSTALL/desktop/theme.sh -source $OMARCHY_INSTALL/desktop/bluetooth.sh -source $OMARCHY_INSTALL/desktop/asdcontrol.sh -source $OMARCHY_INSTALL/desktop/fonts.sh -source $OMARCHY_INSTALL/desktop/printer.sh - # Apps source $OMARCHY_INSTALL/apps/webapps.sh source $OMARCHY_INSTALL/apps/tuis.sh diff --git a/install/desktop/bluetooth.sh b/install/config/bluetooth.sh similarity index 54% rename from install/desktop/bluetooth.sh rename to install/config/bluetooth.sh index 48f98176..e2c7cd78 100755 --- a/install/desktop/bluetooth.sh +++ b/install/config/bluetooth.sh @@ -1,7 +1,4 @@ #!/bin/bash -# Install bluetooth controls -sudo pacman -S --noconfirm --needed blueberry - # Turn on bluetooth by default chrootable_systemctl_enable bluetooth.service diff --git a/install/development/docker.sh b/install/config/docker.sh similarity index 93% rename from install/development/docker.sh rename to install/config/docker.sh index 93ccee5b..6a715a73 100755 --- a/install/development/docker.sh +++ b/install/config/docker.sh @@ -1,7 +1,5 @@ #!/bin/bash -sudo pacman -S --noconfirm --needed docker docker-compose docker-buildx - # Configure Docker daemon: # - limit log size to avoid running out of disk # - use host's DNS resolver diff --git a/install/development/ruby.sh b/install/config/mise-ruby.sh similarity index 82% rename from install/development/ruby.sh rename to install/config/mise-ruby.sh index 13d69d4b..304a10dc 100755 --- a/install/development/ruby.sh +++ b/install/config/mise-ruby.sh @@ -1,7 +1,6 @@ #!/bin/bash # Install Ruby using gcc-14 for compatibility -sudo pacman -S --noconfirm --needed gcc14 mise settings set ruby.ruby_build_opts "CC=gcc-14 CXX=g++-14" # Trust .ruby-version diff --git a/install/desktop/printer.sh b/install/config/printer.sh similarity index 85% rename from install/desktop/printer.sh rename to install/config/printer.sh index 664f96cd..5a752b2d 100755 --- a/install/desktop/printer.sh +++ b/install/config/printer.sh @@ -1,6 +1,5 @@ #!/bin/bash -sudo pacman -S --noconfirm cups cups-pdf cups-filters cups-browsed system-config-printer avahi nss-mdns chrootable_systemctl_enable cups.service # Disable multicast dns in resolved. Avahi will provide this for better network printer discovery diff --git a/install/desktop/theme.sh b/install/config/theme.sh similarity index 70% rename from install/desktop/theme.sh rename to install/config/theme.sh index 47a5d398..da3f1308 100755 --- a/install/desktop/theme.sh +++ b/install/config/theme.sh @@ -1,20 +1,5 @@ #!/bin/bash -# Use dark mode for QT apps too (like kdenlive) -if ! pacman -Q kvantum-qt5 &>/dev/null; then - sudo pacman -S --noconfirm kvantum-qt5 -fi - -# Prefer dark mode everything -if ! pacman -Q gnome-themes-extra &>/dev/null; then - sudo pacman -S --noconfirm gnome-themes-extra # Adds Adwaita-dark theme -fi - -# Allow icons to match the theme -if ! pacman -Q yaru-icon-theme &>/dev/null; then - sudo pacman -S --noconfirm yaru-icon-theme -fi - 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 icon-theme "Yaru-blue" diff --git a/install/desktop/desktop.sh b/install/desktop/desktop.sh deleted file mode 100755 index 932ef4fa..00000000 --- a/install/desktop/desktop.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -sudo pacman -S --noconfirm --needed \ - brightnessctl playerctl pamixer wiremix wireplumber \ - fcitx5 fcitx5-gtk fcitx5-qt wl-clip-persist \ - nautilus sushi ffmpegthumbnailer gvfs-mtp \ - python-gobject power-profiles-daemon \ - slurp satty wf-recorder wl-screenrec \ - mpv evince imv \ - walker-bin omarchy-chromium diff --git a/install/desktop/fonts.sh b/install/desktop/fonts.sh deleted file mode 100755 index 488af44e..00000000 --- a/install/desktop/fonts.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -sudo pacman -S --noconfirm --needed \ - ttf-font-awesome ttf-cascadia-mono-nerd ttf-jetbrains-mono ttf-ia-writer \ - noto-fonts noto-fonts-emoji noto-fonts-cjk noto-fonts-extra - -mkdir -p ~/.local/share/fonts -cp ~/.local/share/omarchy/config/omarchy.ttf ~/.local/share/fonts/ -fc-cache diff --git a/install/desktop/hyprlandia.sh b/install/desktop/hyprlandia.sh deleted file mode 100755 index 2dbd59e5..00000000 --- a/install/desktop/hyprlandia.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -sudo pacman -S --noconfirm --needed \ - hyprland hyprshot hyprpicker hyprlock hypridle hyprsunset polkit-gnome hyprland-qtutils \ - libqalculate waybar mako swaybg swayosd \ - xdg-desktop-portal-hyprland xdg-desktop-portal-gtk diff --git a/install/development/development.sh b/install/development/development.sh deleted file mode 100755 index f77c28f8..00000000 --- a/install/development/development.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -sudo pacman -S --noconfirm --needed \ - cargo clang llvm mise \ - imagemagick \ - mariadb-libs postgresql-libs \ - github-cli \ - lazygit lazydocker diff --git a/install/development/terminal.sh b/install/development/terminal.sh deleted file mode 100755 index 627ed787..00000000 --- a/install/development/terminal.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -sudo pacman -S --noconfirm --needed \ - unzip inetutils impala \ - fd eza fzf ripgrep zoxide bat dust jq xmlstarlet \ - wl-clipboard fastfetch btop \ - man tldr less whois plocate \ - starship bash-completion \ - gum python-poetry-core python-terminaltexteffects \ - tzupdate \ - ufw ufw-docker \ - alacritty diff --git a/install/login/limine-snapper.sh b/install/login/limine-snapper.sh index 2fe8ce0c..73fbc33e 100755 --- a/install/login/limine-snapper.sh +++ b/install/login/limine-snapper.sh @@ -62,7 +62,6 @@ term_background_bright: 24283b EOF - sudo pacman -S --noconfirm --needed limine-snapper-sync limine-mkinitcpio-hook sudo limine-update # Match Snapper configs if not installing from the ISO diff --git a/install/login/plymouth.sh b/install/login/plymouth.sh index 21ae3418..37c0eaf7 100755 --- a/install/login/plymouth.sh +++ b/install/login/plymouth.sh @@ -1,9 +1,6 @@ #!/bin/bash # Hyprland launched via UWSM and login directly as user, rely on disk encryption + hyprlock for security -if ! command -v uwsm &>/dev/null || ! command -v plymouth &>/dev/null; then - sudo pacman -S --noconfirm --needed plymouth uwsm -fi # ============================================================================== # PLYMOUTH SETUP diff --git a/install/packages.sh b/install/packages.sh new file mode 100644 index 00000000..339baf01 --- /dev/null +++ b/install/packages.sh @@ -0,0 +1,109 @@ +sudo pacman -S --noconfirm --needed \ + 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 \ + fzf \ + gcc14 \ + github-cli \ + gnome-themes-extra \ + gum \ + gvfs-mtp \ + hypridle \ + hyprland \ + hyprland-qtutils \ + hyprlock \ + hyprpicker \ + hyprshot \ + hyprsunset \ + imagemagick \ + impala \ + imv \ + inetutils \ + jq \ + kvantum-qt5 \ + lazydocker \ + lazygit \ + less \ + libqalculate \ + limine-mkinitcpio-hook \ + limine-snapper-sync \ + llvm \ + luarocks \ + mako \ + man \ + mariadb-libs \ + mise \ + mpv \ + nautilus \ + noto-fonts \ + noto-fonts-cjk \ + noto-fonts-emoji \ + noto-fonts-extra \ + nss-mdns \ + nvim \ + omarchy-chromium \ + pamixer \ + playerctl \ + plocate \ + plymouth \ + polkit-gnome \ + postgresql-libs \ + power-profiles-daemon \ + python-gobject \ + python-poetry-core \ + python-terminaltexteffects \ + ripgrep \ + satty \ + slurp \ + starship \ + sushi \ + swaybg \ + swayosd \ + system-config-printer \ + tldr \ + tree-sitter-cli \ + ttf-cascadia-mono-nerd \ + ttf-font-awesome \ + ttf-ia-writer \ + ttf-jetbrains-mono \ + tzupdate \ + ufw \ + ufw-docker \ + unzip \ + uwsm \ + walker-bin \ + waybar \ + wf-recorder \ + whois \ + wiremix \ + wireplumber \ + wl-clip-persist \ + wl-clipboard \ + wl-screenrec \ + xdg-desktop-portal-gtk \ + xdg-desktop-portal-hyprland \ + xmlstarlet \ + yaru-icon-theme \ + zoxide diff --git a/install/desktop/asdcontrol.sh b/install/packaging/asdcontrol.sh similarity index 100% rename from install/desktop/asdcontrol.sh rename to install/packaging/asdcontrol.sh diff --git a/install/packaging/fonts.sh b/install/packaging/fonts.sh new file mode 100755 index 00000000..01f31edb --- /dev/null +++ b/install/packaging/fonts.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +# Omarchy logo in a font for Waybar use +mkdir -p ~/.local/share/fonts +cp ~/.local/share/omarchy/config/omarchy.ttf ~/.local/share/fonts/ +fc-cache diff --git a/install/development/nvim.sh b/install/packaging/lazyvim.sh similarity index 57% rename from install/development/nvim.sh rename to install/packaging/lazyvim.sh index 7c037e2a..7fad269d 100755 --- a/install/development/nvim.sh +++ b/install/packaging/lazyvim.sh @@ -1,10 +1,6 @@ #!/bin/bash -if ! command -v nvim &>/dev/null || [ ! -d "$HOME/.config/nvim" ]; then - sudo pacman -S --noconfirm --needed nvim luarocks tree-sitter-cli - - # Install LazyVim - rm -rf ~/.config/nvim +if [[ ! -d "$HOME/.config/nvim" ]]; then git clone https://github.com/LazyVim/starter ~/.config/nvim cp -R ~/.local/share/omarchy/config/nvim/* ~/.config/nvim/ rm -rf ~/.config/nvim/.git