Skip to content

c4software/dotarchy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotarchy

This repository contains installation and configuration scripts for Arch Linux and macOS. The goal is to automate the setup of applications, fonts, development tools, and user configurations.

Screenshot

⚠️ The Hyprland setup is massively extracted/inspired from the excellent Omarchy project by @dhh. Hyprland Keybindings reference

Documentation

Prerequisites

  • Sudo access on the machine.
  • Internet connection.

Usage

  1. Clone the repository:
clear
echo -e "\nCloning dotarchy repository..."
git clone https://github.com/c4software/dotarchy.git ~/dotarchy
cd ~/dotarchy

./setup.sh

This script detects your distribution (pacman → Arch, $OSTYPE == darwin → macOS) and launches the appropriate setup process.

Update configuration files only

To update only the configuration files without installing packages, you can run update.sh:

./update.sh

⚠️ This will overwrite your existing configuration files. Make sure to back up any important configurations before running this command. ⚠️ This will not update all common configuration files, only those related to Hyprland. To update all configuration files, please use update.sh --all.

Dotarchy doctor

You can run ./dotarchy-doctor.sh to check if your current setup is correct and if all necessary components are installed.

Keybindings reference

Keybindings reference

Main Structure

  • setup.sh: Entry script that loads the common bootstrap and selects the distribution.
  • macos/: Scripts and subfolders for macOS.
  • archlinux/: Scripts and subfolders for Arch Linux.
  • common/: Shared scripts (e.g., webapp installation, config bootstrap).
  • Each distribution contains an install/ folder with:
    • apps/: CLI applications and tools installation.
    • desktop/: Desktop environment apps and fonts.
    • hyprland/, config/, etc. depending on the distribution.

Customization

  • Add or edit scripts in install/apps/ or install/desktop/ to extend the configuration.
  • User configuration files are copied from ../config/ by the bootstrap — modify these sources to change deployed configs.
  • Provided binaries/scripts are copied to ~/.local/bin via common/install/bootstrap.sh.

Installed Software

Terminal Applications

  • btop: A resource monitor that shows usage and stats for processors, memory, disks, network, and processes.
  • htop: An interactive process viewer for Unix systems.
  • fastfetch: A tool for fetching system information and displaying it in a pretty way.
  • fd: A simple, fast, and user-friendly alternative to find.
  • fzf: A command-line fuzzy finder.
  • ripgrep: A line-oriented search tool that recursively searches the current directory for a regex pattern.
  • zoxide: A smarter cd command that learns your habits.
  • eza: A modern replacement for ls written in Rust.
  • bat: A cat clone with syntax highlighting and Git integration.
  • jq: A lightweight and flexible command-line JSON processor.
  • xmlstarlet: A command-line XML toolkit.
  • zip/unzip: Utilities for compressing and decompressing files.
  • curl/wget: Tools for transferring data from or to a server.
  • unrar: A utility for extracting files from RAR archives.
  • lazygit: A simple terminal UI for git commands.
  • lazydocker: A simple terminal UI for docker and docker-compose.
  • gum: A tool for glamorous shell scripts.
  • ncdu: A disk usage analyzer with an ncurses interface.
  • Starship: A minimal, blazing-fast, and extremely customizable prompt for any shell. https://starship.rs/

Desktop Applications

  • Neovim: A hyper-extensible, Vim-based text editor. It is configured with LazyVim.
  • Visual Studio Code: A source-code editor developed by Microsoft.
  • Docker: A platform for developing, shipping, and running applications in containers.
  • Google Chrome: A cross-platform web browser.
  • k9s: A terminal-based UI to manage Kubernetes clusters.
  • ProtonVPN: A VPN service.
  • Jetbrains Toolbox: A control panel for JetBrains tools.
  • Signal: A cross-platform centralized encrypted messaging service.
  • Ghostty: A terminal-based UI.
  • Snapper: A tool for managing Btrfs snapshots.
  • CUPS: A printing system for Unix-like operating systems.

Development Tools

  • Mise: A tool for managing multiple runtime versions.
  • luarocks: A package manager for Lua modules.
  • tree-sitter-cli: A command-line tool for parsing source code.

Fonts

  • Font Awesome
  • Cascadia Code
  • iA Writer
  • Google Noto Fonts (Sans, Emoji, CJK, and Extra)
  • JetBrains Mono

Contributing

  • Add your script to the relevant distribution folder.
  • Open a pull request with a clear description of what your script installs and why.

About

An minimal opinionated Linux box configuration + Arch Hyprland Setup

Resources

Stars

Watchers

Forks

Packages

No packages published