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
- Host: GitHub
- URL: https://github.com/sethen/dotfiles
- Owner: sethen
- Created: 2018-07-12T01:08:03.000Z (almost 8 years ago)
- Default Branch: develop
- Last Pushed: 2024-11-06T19:07:48.000Z (over 1 year ago)
- Last Synced: 2024-11-06T20:20:11.935Z (over 1 year ago)
- Topics: dotfiles, git, linux, manjaro, ubuntu, zsh
- Language: Lua
- Size: 8.7 MB
- Stars: 8
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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

### 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

# 🚀 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)**