Skip to content

My dotfiles across different machines and setups.

Notifications You must be signed in to change notification settings

nil-omen/dotfiles

Repository files navigation

My Dotfiles

Welcome to my dotfiles repository! This repository contains personal configuration files and scripts for setting up a development environment on NixOS or traditional Linux distributions.

Table of Contents

Introduction

This repository provides configuration for:

  • NixOS: Declarative system configuration using Nix Flakes
  • Traditional Linux (CachyOS, Arch, Ubuntu, Debian, etc.): Configuration management via GNU Stow

Choose the setup method that matches your system.

NixOS Setup

If you're using NixOS, see the comprehensive guide in nixos/README.md.

Quick start:

git clone https://github.com/your-username/dotfiles.git ~/dotfiles
cd ~/dotfiles
sudo nixos-rebuild switch --flake .#nixos

The nixos/ directory contains:

  • flake.nix - Flake configuration (entry point)
  • hosts/default/configuration.nix - System-wide settings
  • hosts/default/home.nix - User configuration (Home Manager)
  • hosts/default/hardware-configuration.nix - Hardware settings

For detailed instructions, troubleshooting, and advanced configurations, see nixos/README.md.

Niri and Noctalia Shell

The configuration now includes Niri (Scrollable Tiling Compositor) and Noctalia Shell.

To disable Niri/Noctalia and revert to pure Gnome:

  1. System Config: Comment out ../../modules/system/niri.nix in nixos/hosts/default/configuration.nix.
  2. Home Config: Comment out ../../modules/home/niri.nix and ../../modules/home/noctalia.nix in nixos/hosts/default/home.nix.
  3. Flake Input (Optional): Remove noctalia input from nixos/flake.nix if you want to remove the dependency entirely (requires removing arguments from specialArgs too).

To disable Gnome and use only Niri:

  1. Comment out ../../modules/system/gnome.nix in nixos/hosts/default/configuration.nix.
  2. Comment out ../../modules/home/gnome.nix in nixos/hosts/default/home.nix. Note: GDM (Login Manager) is enabled by niri.nix, so disabling Gnome modules will not break login.

Traditional Linux Setup (GNU Stow)

For non-NixOS systems, use GNU Stow to manage configuration files.

Prerequisites:

# Install GNU Stow
sudo pacman -S stow        # Arch/CachyOS
sudo apt-get install stow  # Debian/Ubuntu

Installation:

  1. Clone the repository:

    git clone https://github.com/your-username/dotfiles.git ~/.dotfiles
    cd ~/.dotfiles
  2. Stow individual directories:

    stow alacritty fish git helix starship vim zed

    Or stow all at once:

    for dir in */; do stow "$dir"; done
  3. Backup existing configs first to avoid conflicts.

Available configurations:

  • alacritty/ - Terminal emulator
  • fish/ - Fish shell configuration
  • git/ - Git global config
  • helix/ - Helix editor with language servers
  • kitty/ - Kitty terminal emulator
  • starship/ - Starship prompt
  • vim/ - Vim configuration
  • zed/ - Zed editor

Scripts

This repository includes utility scripts for system setup.

Install Tools (CachyOS)

Automates installation of development tools on CachyOS:

chmod +x scripts/install_tools-CachyOS.sh
./scripts/install_tools-CachyOS.sh

Features:

  • Installs packages from official and AUR repositories
  • Configures Docker (adds user to docker group)
  • Installs Rust toolchain
  • Sets up firewall rules for LocalSend

Available options:

./scripts/install_tools-CachyOS.sh --list              # List packages
./scripts/install_tools-CachyOS.sh --skip-confirmation # Skip prompt

See the script source for customization.

Nerd Fonts Install

Automates Nerd Fonts installation with interactive selection:

chmod +x scripts/nerd-fonts-install.sh
./scripts/nerd-fonts-install.sh

Features:

  • Downloads Nerd Fonts from GitHub
  • Interactive font selection
  • Local or global installation support
  • Automatic font cache update

Directory Structure

dotfiles/
├── alacritty/          # Alacritty terminal config
├── fish/               # Fish shell config
├── git/                # Git configuration
├── helix/              # Helix editor config
├── kitty/              # Kitty terminal config
├── nixos/              # NixOS configuration (see nixos/README.md)
├── scripts/            # Utility scripts
├── starship/           # Starship prompt config
├── vim/                # Vim configuration
├── zed/                # Zed editor config
└── README.md           # This file

Editor Configurations

Helix

Helix is configured with language servers for Go, Rust, Python, YAML, Bash, and TOML.

Installation (Traditional Linux):

sudo pacman -S helix
stow helix

Installation (NixOS): See nixos/README.md — Helix is included in the Home Manager configuration.

Verify language servers:

hx --health

Contributing

Feel free to fork and customize for your own setup. Some tips:

  • Backup your existing dotfiles before stowing
  • On NixOS, never use stow — use the flake configuration instead
  • Test configuration changes before committing to git

License

These dotfiles are provided as-is for personal use.

About

My dotfiles across different machines and setups.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published