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

https://github.com/sethen/dotfiles

:computer: My personal dotfiles
https://github.com/sethen/dotfiles

dotfiles git linux manjaro ubuntu zsh

Last synced: 4 months ago
JSON representation

:computer: My personal dotfiles

Awesome Lists containing this project

README

          

# 🚀 Sethen's Dotfiles

> A comprehensive, cross-platform development environment setup powered by Fish shell scripts

These are my dotfiles for setting up my environment from nothing. Take and use anything you want.

# ✨ Features

- **🐟 Fish-Powered**: Modern shell scripting with Fish's clean syntax and powerful features
- **🌍 Cross-Platform**: Supports Omarchy (Hyprland), macOS (Darwin), and Ubuntu 24.10+
- **🎯 Modular Design**: Each script does one thing well - install Neovim, configure Git, set up tools, etc.
- **🚀 Interactive Launcher**: Beautiful gum-powered interface for selecting what to install
- **⚡ Idempotent**: Safe to run multiple times without breaking things
- **🛠️ Dev-Ready**: Comes pre-configured with Neovim, Tmux, Starship, Ghostty, and more

## 🖥️ Environment Showcase

### Ghostty + Starship + Fish
A modern terminal experience with a sleek prompt and powerful shell capabilities
![image](assets/images/terminal.png)

### Interactive Dot Launcher
Beautiful gum-powered interface for selecting exactly what to install. Run everything at once or pick individual components.

### Neovim Configuration
A fully configured Neovim setup with Lua, LSP, TreeSitter, and modern plugin management
![image](assets/images/neovim.png)

# 🚀 Quickstart

Get your development environment running in minutes:

```bash
# 1. Install Fish shell (choose your package manager)
# Arch/Manjaro: sudo pacman -S fish
# macOS: brew install fish
# Ubuntu: sudo apt install fish

# 2. Clone and navigate to the dotfiles
git clone ~/dotfiles
cd ~/dotfiles

# 3. Configure your git identity (important!)
git config user.name "Your Name"
git config user.email "your.email@example.com"

# 4. Run the interactive launcher 🎉
fish run.fish --launcher
```

> **Pro Tip**: Run `fish run.fish` directly for a full automated setup, or use `--launcher` for the interactive experience!

# 🌍 Supported Environments

| Platform | Status | Notes |
|----------|--------|-------|
| **Omarchy (Hyprland)** | ✅ Full Support | Modern Wayland compositor with sensible defaults |
| **macOS** | ✅ Full Support | Tested on latest macOS versions |
| **Ubuntu 24.10+** | ✅ Full Support | Works on recent Ubuntu releases |

## 📁 What Gets Installed?

### Core Development Tools
- **Neovim** - Modern Vim configuration with Lua, LSP, and plugins
- **Git** - Version control with sensible defaults
- **Tmux** - Terminal multiplexer for productivity
- **Mise** - Development tool version management
- **Ghostty** - Modern terminal emulator

### Shell Experience
- **Fish Shell** - Interactive shell with smart completions
- **Starship** - Minimal, fast, and customizable prompt
- **Custom Functions** - Git helpers, system utilities, and more

### Language Support (managed via mise)
- **DotNET** - .NET development
- **Go** - Go language toolchain
- **Java** - JVM development
- **Lua** - For Neovim configuration
- **Node.js & Bun** - Modern JavaScript/TypeScript runtimes
- **Python** - Python development with pip
- **Ruby** - Ruby on Rails development
- **Rust** - Systems programming with Cargo
- **SQL** - Database development with PostgreSQL/MySQL
- **Zig** - Modern systems programming

### Development Tools & Utilities
- **cmake** - Build system essentials
- **Docker & Docker Compose** - Container development
- **fd, ripgrep, fzf** - Modern CLI file tools
- **GitHub CLI (gh)** - GitHub command line tools
- **kubectl** - Kubernetes CLI
- **LazyGit & LazyDocker** - Terminal UIs for Git/Docker
- **Terraform** - Infrastructure as Code
- **zoxide** - Smart directory navigation

### LSP & Language Servers
- **Global LSPs**: bash, typescript, yaml via bun
- **Mason-managed**: Docker, Go, HTML/CSS, JSON, Python, Ruby, Rust, SQL, Tailwind

### Desktop Applications & System Components

## **Omarchy (Hyprland)**
**Window Manager:** Hyprland with Omarchy configuration

Omarchy provides a pre-configured Hyprland Wayland setup with sensible defaults. The dotfiles integrate with Omarchy for:
- **Window Management**: Smart window rules, gaps, borders, and animations
- **Bar**: Waybar with system info, workspaces, and status
- **Terminal**: Ghostty configuration with custom theming
- **Launcher**: Walker - fuzzy app launcher
- **Notifications**: Mako - lightweight notification daemon
- **Lock Screen**: swaylock-effects with blur and effects
- **Themes**: Consistent GTK, Qt, and icon theming
- **Keybindings**: Full keyboard-driven workflow

## **Darwin/macOS**
**Package Manager:** Homebrew (formulae + casks)

**CLI Tools:**
- **curl** - Data transfer utility
- **gh** - GitHub CLI
- **git** - Version control
- **gnupg** - Encryption tools
- **libyaml** - YAML parsing library
- **nginx** - Web server

**GUI Applications:**
- **brave-browser** - Privacy-focused browser
- **ghostty** - Modern terminal
- **spotify** - Music streaming
- **virtualbox** - Virtualization

## **Ubuntu**
**Package Manager:** APT + Snap + Flatpak + custom .deb

**APT Packages:**
- **autoconf & bison** - Build tools
- **brave-browser** - Privacy-focused browser
- **build-essential** - Development tools
- **ca-certificates** - SSL certificates
- **curl** - Data transfer utility
- **font-manager** - Font management
- **fortune-mod** - Random fortunes
- **gh** - GitHub CLI
- **git** - Version control
- **gnome-software-plugin-flatpak** - Flatpak support
- **gnome-tweaks** - GNOME customization
- **gnupg** - Encryption tools
- **gparted** - Partition editor
- **gpick** - Color picker
- **lsb-release** - System info
- **mdadm** - Software RAID tools
- **nginx** - Web server
- **postgresql** - PostgreSQL database
- **virtualbox** - Virtualization
- **vlc** - Media player

**Snap Packages:**
- **discord** - Communication platform
- **spotify** - Music streaming

**Flatpak Packages:**
- **app.zen_browser.zen** - Zen Browser (privacy-focused)
- **flatpak** - Flatpak framework

**Custom Installations:**
- **ghostty** - Modern terminal (via .deb)
- **White Sur icon theme** - GNOME customization

## 🛠️ Advanced Usage

### Run Individual Components
```bash
# Run specific setup phases
fish -c "source run.fish; run-omarchy-pre" # Pre-installation setup
fish -c "source run.fish; run-omarchy-main" # Main installations
fish -c "source run.fish; run-omarchy-post" # Post-configuration
```

### Update Existing Setup
```bash
fish run.fish --update # Update all installed packages
```

### Reboot After Setup
```bash
fish run.fish --reboot # Automatically reboot when done
```

## 📖 Project Structure

```
dotfiles/
├── run.fish # Main entry point - detects OS and launches setup
├── fish/functions/ # Reusable Fish shell functions
├── os/
│ ├── omarchy/ # Omarchy/Hyprland specific scripts
│ ├── darwin/ # macOS specific scripts
│ ├── ubuntu/ # Ubuntu specific scripts
│ └── common/ # Cross-platform utilities
├── nvim/ # Neovim configuration (Lua)
├── mise/ # Development tool versions
├── starship/ # Shell prompt configuration
├── ghostty/ # Terminal emulator settings
├── tmux/ # Terminal multiplexer configuration
└── sesh/ # Tmux session manager configuration
```

## 🤝 Contributing

Found an issue or have an improvement? Feel free to:
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Test thoroughly on your target platform
5. Submit a pull request

---

**Made with ❤️ by [Sethen](https://github.com/sethen)**