Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

1,750 Commits

Folders and files

Repository files navigation

Quick Setup (Ubuntu)

Run as your normal user:

curl -fsSL https://raw.githubusercontent.com/AntoineGS/configurations/main/setup.sh | bash

See Ubuntu Server Installation for details and next steps.

sudo pacman -S texlive-basic texlive-xetex texlive-latexextra texlive-fontsextra texlive-fontsrecommended texlive-bin texlive-doc sudo pacman -S texlive-fontsrecommended texlive-latexextra texlive-fontsextra sudo pacman -S texlive-fontsextra sudo ln -s /usr/share/texmf-dist/fonts/opentype /usr/share/fonts/texmf-opentype; fc-cache -f

!! Add Everything config and MultiCommander config !! Add /etc/pam.d/system-local-login

Windows

Requirements

  • Nerdfonts
    • wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/JetBrainsMono.zip
    • Download and install with right click.

Nushell

  • winget install nushell
  • cargo install nu_plugin_semver nu_plugin_regex From Nushell:
  • plugin add ~\.cargo\bin\nu_plugin_regex.exe
  • plugin add ~\.cargo\bin\nu_plugin_semver.exe

File Indexing

  • Install Everything as a service:
    • https://www.voidtools.com/

Total Commander

https://www.ghisler.com/download.htm

  • Plugins: https://www.ghisler.ch/board/viewtopic.php?t=33740

Winaero Tweaker

ContextMenuManager

https://github.com/BluePointLilac/ContextMenuManager/releases

Linux

Ubuntu Server Installation

Download the bootstrap and preview it as your normal user:

curl -fsSL https://raw.githubusercontent.com/AntoineGS/configurations/main/setup.sh -o setup.sh
bash setup.sh --dry-run
bash setup.sh
export PATH="$HOME/.local/bin:$PATH"

setup.sh installs missing apt prerequisites, clones the two repositories into ~/gits/configurations and ~/gits/tidydots, and reuses existing checkouts without pulling or resetting them. It reads tidydots' minimum Go version from go.mod. When necessary, it downloads a stable Go release for amd64/arm64, verifies its published SHA-256, and installs it under ~/.local/share/go with commands in ~/.local/bin. It then builds ~/.local/bin/tidydots and runs tidydots init ~/gits/configurations.

Install Homebrew first, then start a new installation preview so tidydots can discover it. Review each preview before running the following apply command:

tidydots install homebrew -n
tidydots install homebrew
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
tidydots install -n
tidydots install
tidydots restore -n
tidydots restore

New Linux hostnames receive this terminal baseline:

  • Homebrew, Bash, Zsh, Starship, tmux, Neovim, Herdr.
  • fzf, zoxide, ripgrep, fd, bat, eza, jq.
  • Git, Git LFS, lazygit, delta, Yazi, btop, gdu.
  • Supporting Zsh plugins, Carapace, tpack, and Catppuccin bat/delta themes.

Ubuntu uses apt for system tools and Homebrew for current CLI versions (including Neovim, tmux and fzf). Homebrew's apt prerequisites include a C compiler/make; the bootstrap also installs Go for building tidydots. Language toolchains and coding agents are otherwise opt-in. The source-building tidydots updater and shell-picker are workstation-only; server shells use native fzf bindings. Herdr retains its SSH attachment and Vim navigation, with desktop notifications and workstation connection profiles restricted to workstations.

Adding an application to a server

Edit that application's when condition in tidydots.yaml to include the server hostname, preserving its existing workstation conditions. For example, to add gopls on ubuntu-server:

when: '{{ and (eq .OS "linux") (or (eq .Hostname "omarchbook") (eq .Hostname "antoinews") (eq .Hostname "antoinews-linux") (eq .Hostname "DESKTOP-E07VTRN") (eq .Hostname "ubuntu-server")) }}'

Also add an Ubuntu-compatible package mapping (for example, brew: gopls) and any required dependencies, then preview tidydots install gopls -n. Targeting an application by name does not bypass its condition. Add individual service entries rather than enabling the whole workstation service bundle.

The hostnames: list supplies TUI choices only. YAML anchors centralize the shared workstation conditions; expanding an anchor's host list opts that host into every application using it. The existing server hostname still has its explicit Tailscale installation, service and subnet-router configuration. Excluding an application skips future management; it does not uninstall previously installed packages or disable existing services.

Arch Installation

  • Follow the reproducible Arch installation guide for the ISO workflow.
  • After reboot, run Linux/install/bootstrap as the sole post-reboot setup entry point.
  • Run Linux/install/bootstrap --dry-run before applying changes. If tidydots is unavailable, the command reports an incomplete preview with exit status 4, explicitly skips its package and configuration phases, and must be rerun after installing the prerequisite.

Package Profiles

tidydots.yaml is desired package state. pkglist-pacman-<hostname>.txt and pkglist-aur-<hostname>.txt are generated audit snapshots.

  • Graphical packages/configs and shared system services target omarchbook, antoinews-linux, and DESKTOP-E07VTRN on non-WSL Linux. Hostname selection works over SSH and does not depend on an active display or forwarded X11.
  • Extra terminal/development tools target known workstations, including antoinews; other Linux hosts receive the server baseline above.
  • Pacman maintenance and boot/snapshot packages additionally require Arch. Hardware and machine policy use exact hostname conditions. antoinews-linux is the Intel desktop profile.

Focused previews such as tidydots --dir "$REPO_DIR" install hyprland -n are intentionally limited to that application and may install only its package. The canonical complete bootstrap package preview is the unscoped command: tidydots --dir "$REPO_DIR" install -n.

Review only the relevant profile with a worktree-scoped dry-run. Set REPO_DIR to the checkout being reviewed; every command below is non-mutating:

REPO_DIR=/path/to/configurations

# Shared desktop baseline
tidydots --dir "$REPO_DIR" install hyprland -n
tidydots --dir "$REPO_DIR" install pipewire-audio -n
tidydots --dir "$REPO_DIR" install linux-services-packages -n

# Intel desktop profile
tidydots --dir "$REPO_DIR" install antoinews-linux-intel -n

# Network stack
tidydots --dir "$REPO_DIR" install antoinews-linux-network -n
tidydots --dir "$REPO_DIR" restore antoinews-linux-network -n

# Limine and Snapper
tidydots --dir "$REPO_DIR" install limine -n
tidydots --dir "$REPO_DIR" install limine-snapper-sync -n
tidydots --dir "$REPO_DIR" restore limine-config -n
tidydots --dir "$REPO_DIR" install snapper -n
tidydots --dir "$REPO_DIR" restore snapper -n

Hostname-gated previews can report a condition mismatch when intentionally run on another host; that is the expected exclusion behavior.

Tailmix

DESKTOP-E07VTRN and omarchbook use the host-scoped tailmix application for a work SOCKS proxy alongside the existing personal Tailscale client. See setup, login, and connection instructions.

Systemd Units Backup

Daily timer to backup enabled services and timers to Linux/systemd/units-enabled.txt:

sudo systemctl daemon-reload
sudo systemctl enable --now units-backup.timer

Hyprland

  • systemctl --user daemon-reload; systemctl --user enable --now watch-rustdesk-submap.service
  • sudo chmod +x ~/.config/hypr/rustdesk-submap-watch.sh

SSH Agent

Systemd socket-activated ssh-agent with 4-hour key lifetime. Keys are automatically added on first use via AddKeysToAgent yes in ~/.ssh/config.

systemctl --user daemon-reload
systemctl --user enable --now ssh-agent.socket

Log out and back in (or export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket" in the current session) for the environment variable to take effect.

Requirements

  • NodeJS
    • sudo npm install -g shelljs typescript
  • Nerdfonts
    • Go in a temp directory
    • wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/JetBrainsMono.zip
    • unzip JetBrainsMono.zip
    • rm JetBrainsMono.zip
    • sudo mv JetBrainsMono* /usr/share/fonts/
    • fc-cache -f -v

Homebrew

  • Bash
    • /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    • echo >> ~/.bashrc
    • echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc

Ghostty

  • xdg-mime default com.mitchellh.ghostty.desktop x-scheme-handler/terminal

Neovim

  • sudo update-alternatives --install /usr/bin/editor editor /home/linuxbrew/.linuxbrew/bin/nvim 1 && \ sudo update-alternatives --set editor /home/linuxbrew/.linuxbrew/bin/nvim
  • If error when copying to "+ then:
    • sudo apt install xclip
    • Through ssh it is said to install lemonade

Starship

  • Install Nerd Fonts (JetBrains Mono Nerd Font)
  • brew install starship

Nushell

  • which nu | sudo tee -a /etc/shells
  • chsh -s "$(which nu)" From Nushell, most likely not needed:

Yazi

  • brew install yazi ffmpegthumbnailer sevenzip jq poppler fd ripgrep fzf zoxide imagemagick

TODO

  • Add nushell LSP/Formatter
  • Add pwsh Formatter

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages