Compare commits
2
Commits
e55f053efb
...
e9e5b6a30b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e9e5b6a30b | ||
|
|
7ca1f5dd66 |
@@ -13,12 +13,27 @@ disable_backends = ["asdf", "ubi"]
|
||||
minimum_release_age = "14d"
|
||||
|
||||
[tools]
|
||||
node = "lts"
|
||||
pnpm = "latest"
|
||||
"npm:@anthropic-ai/sandbox-runtime" = "latest"
|
||||
"npm:typescript-language-server" = "latest"
|
||||
"npm:typescript" = "latest"
|
||||
# Short names resolve to the aqua backend (checksum + signature verified)
|
||||
"aqua:F1bonacc1/process-compose" = "1.120.0"
|
||||
"aqua:neovim/neovim" = "0.12.4"
|
||||
"github:Satty-org/Satty" = "0.20.1"
|
||||
"github:F1bonacc1/process-compose" = "latest"
|
||||
"npm:@earendil-works/pi-coding-agent" = "latest"
|
||||
uv = "latest"
|
||||
"npm:@anthropic-ai/sandbox-runtime" = "0.0.67"
|
||||
"npm:@earendil-works/pi-coding-agent" = "0.83.0"
|
||||
"npm:typescript" = "7.0.2"
|
||||
"npm:typescript-language-server" = "5.3.0"
|
||||
bat = "0.26.1"
|
||||
btop = "1.4.7"
|
||||
delta = "0.19.2"
|
||||
dive = "0.13.1"
|
||||
eza = "0.23.5"
|
||||
fd = "10.4.2"
|
||||
gh = "2.97.0"
|
||||
jq = "1.8.2"
|
||||
lazygit = "0.64.1"
|
||||
node = "24.18.1"
|
||||
opencode = "1.15.11"
|
||||
pnpm = "11.18.0"
|
||||
restic = "0.19.1"
|
||||
ripgrep = "15.2.0"
|
||||
tmux = "3.7b"
|
||||
uv = "0.12.0"
|
||||
|
||||
+130
-75
@@ -1,103 +1,158 @@
|
||||
# Install homebrew dependencies
|
||||
sudo dnf group install development-tools
|
||||
|
||||
echo "Installing homebrew"
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
|
||||
# NOTE: Do not brew install anything with a dependency on node.
|
||||
# Instead, use mise.
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# mise use --global npm:<package-name>
|
||||
# Install packages for this machine.
|
||||
#
|
||||
# Usage: ./install-packages.sh <desktop|server>
|
||||
#
|
||||
# Runs the common package set first, then the profile-specific set.
|
||||
# Move packages between install_common / install_desktop / install_server
|
||||
# so a headless server does not pull in desktop-only packages.
|
||||
#
|
||||
# TODO: Convert binaries in this repo into mise globals config.
|
||||
#
|
||||
|
||||
# NOTE: claude was installed using the install script:
|
||||
# curl -fsSL https://claude.ai/install.sh | bash
|
||||
set -euo pipefail
|
||||
|
||||
brew install \
|
||||
anomalyco/tap/opencode \
|
||||
install_common() {
|
||||
# Packages installed on every machine (desktop and headless server).
|
||||
|
||||
# Install homebrew dependencies (dnf on Fedora, apt on Debian/Ubuntu).
|
||||
if command -v dnf >/dev/null 2>&1; then
|
||||
sudo dnf group install development-tools
|
||||
elif command -v apt-get >/dev/null 2>&1; then
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y build-essential procps curl file git
|
||||
else
|
||||
echo "No supported package manager (dnf/apt-get) found for homebrew deps" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if command -v brew >/dev/null 2>&1; then
|
||||
echo "Homebrew already installed, skipping"
|
||||
else
|
||||
echo "Installing homebrew"
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
fi
|
||||
|
||||
# NOTE: Do not brew install anything with a dependency on node.
|
||||
# Instead, use mise.
|
||||
#
|
||||
# mise use --global npm:<package-name>
|
||||
#
|
||||
# Do use this for anything that has dynamic dependencies.
|
||||
# Single-file CLI tools (bat, fd, ripgrep, gh, lazygit, neovim, etc.) are
|
||||
# managed by mise now, pinned in ~/.config/mise/config.toml and installed
|
||||
# by `mise install` below. Only keep things here that mise can't handle
|
||||
# well: the login shell, build toolchain, a service, or dynamic-dep tools.
|
||||
brew install \
|
||||
atuin \
|
||||
bat \
|
||||
btop \
|
||||
dive \
|
||||
eza \
|
||||
fd \
|
||||
fish \
|
||||
fzf \
|
||||
gcc \
|
||||
gh \
|
||||
git \
|
||||
git-delta \
|
||||
hmans/beans/beans \
|
||||
jq \
|
||||
lazygit \
|
||||
mise \
|
||||
neovim \
|
||||
restic \
|
||||
ripgrep \
|
||||
stow \
|
||||
tmux
|
||||
#crane \
|
||||
#go \
|
||||
sqlite \
|
||||
stow
|
||||
#gron \
|
||||
#hadolint \
|
||||
#pnpm
|
||||
#sqlite \
|
||||
#stripe-cli \
|
||||
#visidata \
|
||||
|
||||
# OpenAI Codex
|
||||
brew install --cask codex
|
||||
# Run stow now as soon as it's available so that config files are in
|
||||
# place before more services are started or installed.
|
||||
./run-stow.sh
|
||||
|
||||
brew services start atuin
|
||||
# NOTE: claude was installed using the install script:
|
||||
# curl -fsSL https://claude.ai/install.sh | bash
|
||||
|
||||
# Install system packages
|
||||
sudo dnf install \
|
||||
# OpenAI Codex
|
||||
brew install --cask codex
|
||||
|
||||
brew services start atuin
|
||||
|
||||
# Install global packages managed by mise.
|
||||
# Should be run after ./run-stow.sh.
|
||||
mise install
|
||||
|
||||
# Install tailscale
|
||||
# https://tailscale.com/kb/1511/install-fedora-2
|
||||
|
||||
# Installing tmux plugins
|
||||
if [ -d ~/.tmux/plugins/tpm ]; then
|
||||
git -C ~/.tmux/plugins/tpm pull --ff-only
|
||||
else
|
||||
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
||||
fi
|
||||
}
|
||||
|
||||
install_desktop() {
|
||||
# Install flatpaks
|
||||
flatpak install flathub com.github.jeromerobert.pdfarranger
|
||||
flatpak install flathub fr.handbrake.ghb
|
||||
flatpak install flathub org.gimp.GIMP
|
||||
flatpak install flathub org.gimp.GIMP.Plugin.GMic
|
||||
flatpak install flathub org.gnucash.GnuCash
|
||||
flatpak install flathub org.inkscape.Inkscape
|
||||
flatpak install flathub org.jellyfin.JellyfinDesktop
|
||||
flatpak install flathub org.kde.digikam
|
||||
flatpak install flathub org.kde.kdenlive
|
||||
flatpak install flathub org.kde.okular
|
||||
flatpak install flathub org.kde.skanpage
|
||||
flatpak install flathub org.libreoffice.LibreOffice
|
||||
flatpak install flathub org.musicbrainz.Picard
|
||||
flatpak install flathub org.qgis.qgis
|
||||
|
||||
# Install system packages
|
||||
#
|
||||
# - fuselibs for running appimages
|
||||
# - gstreamer1-plugin-openh264 and mozilla-openh264 for twitch streams
|
||||
# - qalculate and qalculate-gtk are here because the homebrew version installs x11 and wayland.
|
||||
#
|
||||
# tmux moved to mise (pinned in ~/.config/mise/config.toml). It was on dnf,
|
||||
# not brew, most likely because brew's tmux couldn't find the tmux-256color
|
||||
# terminfo entry; the mise static build is on trial. To roll back, add
|
||||
# `tmux \` to the dnf list below.
|
||||
sudo dnf install \
|
||||
alacritty \
|
||||
bubblewrap \
|
||||
copyq \
|
||||
direnv \
|
||||
distrobox \
|
||||
fuse-libs \ # For running appimages
|
||||
fuse-libs \
|
||||
grim \
|
||||
gstreamer1-plugin-openh264 mozilla-openh264 \ # For twitch videos
|
||||
gstreamer1-plugin-openh264 mozilla-openh264 \
|
||||
podman \
|
||||
qalculate qalculate-gtk \ # Homebrew version installs x11 and waylany in brew.
|
||||
qalculate qalculate-gtk \
|
||||
slurp \
|
||||
socat \
|
||||
wf-recorder
|
||||
}
|
||||
|
||||
sudo dnf copr enable scottames/ghostty
|
||||
sudo dnf install ghostty
|
||||
install_server() {
|
||||
# Packages only needed on a headless server.
|
||||
#
|
||||
# tmux now comes from mise (install_common), pinned in config.toml, so both
|
||||
# machines get the same version -- nothing server-specific is needed. To roll
|
||||
# back to the distro package, restore: sudo apt install -y tmux
|
||||
#
|
||||
# NOTE: Debian may lack the tmux-256color terminfo entry (it's in the
|
||||
# ncurses-term package); install it if tmux complains about the terminal.
|
||||
:
|
||||
}
|
||||
|
||||
# Install global packages managed by mise.
|
||||
mise install
|
||||
|
||||
# Install tailscale
|
||||
# https://tailscale.com/kb/1511/install-fedora-2
|
||||
|
||||
# Install flatpaks
|
||||
flatpak install flathub com.github.jeromerobert.pdfarranger
|
||||
flatpak install flathub fr.handbrake.ghb
|
||||
flatpak install flathub org.gimp.GIMP
|
||||
flatpak install flathub org.gimp.GIMP
|
||||
flatpak install flathub org.gimp.GIMP.Plugin.GMic
|
||||
flatpak install flathub org.gnucash.GnuCash
|
||||
flatpak install flathub org.inkscape.Inkscape
|
||||
flatpak install flathub org.jellyfin.JellyfinDesktop
|
||||
flatpak install flathub org.kde.digikam
|
||||
flatpak install flathub org.kde.kdenlive
|
||||
flatpak install flathub org.kde.okular
|
||||
flatpak install flathub org.kde.skanpage
|
||||
flatpak install flathub org.libreoffice.LibreOffice
|
||||
flatpak install flathub org.musicbrainz.Picard
|
||||
|
||||
flatpak remote-add --user --if-not-exists sonuscape https://dl.sonuscape.net/flatpak/sonuscape.flatpakrepo
|
||||
flatpak install net.sonuscape.mouseless//preview
|
||||
|
||||
# Install devbox
|
||||
# https://www.jetify.com/docs/devbox/installing-devbox
|
||||
curl -fsSL https://get.jetify.com/devbox | bash
|
||||
|
||||
# Installing tmux plugins
|
||||
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
||||
main() {
|
||||
case "${1:-}" in
|
||||
desktop)
|
||||
install_common
|
||||
install_desktop
|
||||
;;
|
||||
server)
|
||||
install_common
|
||||
install_server
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 <desktop|server>" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
||||
Reference in New Issue
Block a user