An open API service indexing awesome lists of open source software.

https://github.com/skvggor/linux-workstation-bootstrap

A collection of system configuration and package installation scripts for various Linux distributions, including Debian-like, Arch-based and RHEL-like.
https://github.com/skvggor/linux-workstation-bootstrap

apt arch-linux archlinux debian dnf dotfiles fedora manjaro manjaro-linux nobara pacman rhel ubuntu

Last synced: 25 days ago
JSON representation

A collection of system configuration and package installation scripts for various Linux distributions, including Debian-like, Arch-based and RHEL-like.

Awesome Lists containing this project

README

          

# Linux Workstation Bootstrap

A collection of **system configuration** and **package installation** scripts for various Linux distributions.

| Distribution | Tested On |
|--------------|-----------|
| **Ubuntu/Debian-like** (apt) | Ubuntu Desktop 24.04.3 LTS |
| **Arch-based** (pacman + yay + aur) | Omarchy 3.2.0 (Hyprland) |
| **Fedora/Nobara/RHEL-like** (dnf) | Fedora 43 Workstation |

## Overview

This project provides a modular installation script that automatically detects your distribution and sets up a complete development and multimedia environment. It handles:

- **System Essentials**: Basic tools (curl, git, unzip) and shell setup (Fish).
- **Languages**: Go, Rust (via rustup), and Node.js (via nvm).
- **CLI Tools**: Starship, Atuin, Nitch, Bat, Zellij, Zoxide.
- **Apps**: VS Code Insiders, Chrome, Edge, Docker, DBeaver, and design tools.
- **Fonts**: Optimized installation of specific Nerd Fonts and Monaspace.
- **Configs**: Automatic dotfiles linking for Alacritty, Fish, Starship, etc.

## Prerequisites

- A supported Linux distribution.

## How to Use

1. **Download** this repository:

Click the green "Code" button and select "Download ZIP", or clone it using Git:

![Download](assets/download.gif)

```bash
git clone https://github.com/yourusername/linux-systems-configs.git
cd linux-systems-configs
```

2. **Run the installation script**:
```bash
bash install.sh
```

3. **Follow the prompts** (you will need to enter your sudo password).

4. **Restart your computer** or log out/in to apply all changes (especially for group changes like Docker and shell changes).

## Project Structure

The installation logic is modularized in the `scripts/` directory:

- `install.sh`: Main entry point and orchestrator.
- `scripts/system.sh`: Base system packages and directories.
- `scripts/languages.sh`: Programming language environments (Go, Rust, Node/NVM).
- `scripts/cli_tools.sh`: Terminal utilities and shell prompts.
- `scripts/apps.sh`: GUI applications and Docker.
- `scripts/fonts.sh`: Font installation (downloads only specific fonts to save bandwidth).
- `scripts/configs.sh`: Dotfiles management.
- `scripts/utils.sh`: Helper functions and package manager detection.

## Included Software

### Development
- **Languages**: Go, Rust, Node.js (LTS via NVM)
- **Editors**: VS Code Insiders, Micro
- **Terminal**: Ghostty, Alacritty, Konsole
- **Shell**: Fish (default), Starship (prompt)
- **Tools**: Docker, Docker Compose, DBeaver CE, Insomnia, Git, JQ, Net-tools
- **NPM Global**: gtop, localtunnel, svgo, vercel

### CLI Utilities
- **Atuin**: Shell history sync
- **Bat**: Better `cat`
- **LSD**: Better `ls`
- **Nitch**: System fetch
- **Zellij**: Terminal multiplexer
- **Zoxide**: Smarter `cd`
- **cmatrix**: Matrix-style animation

### Hyprland (Arch Linux only)
- **Hyprmon**: System monitor and resource manager for Hyprland (installed automatically when Hyprland is detected)

### Multimedia & Design
- **Apps**: OBS Studio, Krita, Inkscape, Gimp, Darktable, VLC, Cheese
- **Browsers**: Google Chrome, Microsoft Edge

### Utilities
- **Flameshot**: Screenshot tool
- **Solaar**: Logitech device manager
- **xclip**: Clipboard utility

### Fonts
- **Nerd Fonts**: JetBrainsMono, FiraCode, Hack, Meslo, GeistMono, Iosevka
- **Monaspace**: GitHub's new font family

## Contributing

1. **Fork** the repository.
2. Create a **feature branch**.
3. Modify the relevant scripts in `scripts/`.
4. Open a **pull request**.

## License

This project is licensed under the [GNU General Public License v3.0](LICENSE).