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.
- Host: GitHub
- URL: https://github.com/skvggor/linux-workstation-bootstrap
- Owner: skvggor
- License: gpl-3.0
- Created: 2024-07-06T02:37:18.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-04T02:17:36.000Z (12 months ago)
- Last Synced: 2025-02-14T15:13:19.244Z (11 months ago)
- Topics: apt, arch-linux, archlinux, debian, dnf, dotfiles, fedora, manjaro, manjaro-linux, nobara, pacman, rhel, ubuntu
- Language: Shell
- Homepage: https://skvggor.dev
- Size: 3.29 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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:

```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).