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

https://github.com/thebrianbug/dotfiles


https://github.com/thebrianbug/dotfiles

Last synced: 12 months ago
JSON representation

Awesome Lists containing this project

README

          

# Dotfiles

Personal system configuration using [Home Manager](https://nix-community.github.io/home-manager/) and [Nix](https://nixos.org/) for Fedora 41 with GNOME on Wayland.

## Features

- **Package Management**: Declarative system package installation
- **Program Configurations**:
- VSCodium with extensions
- Git configuration
- Neovim setup
- Bash configuration
- **Desktop Environment**: GNOME configuration with custom preferences
- **Development Tools**: Node.js, Python, and container management tools
- **System Tools**: Various utility programs and applications

## System Requirements

- Fedora 41 or later
- GNOME Desktop Environment
- Wayland display server

## Prerequisites

- Nix package manager
- Home Manager

## Nix Flakes

This configuration uses [Nix Flakes](https://nixos.wiki/wiki/Flakes), a feature that provides:

- **Reproducible Builds**: Exact dependency versions are locked and tracked
- **Composable**: Easy to combine multiple configurations
- **Hermetic**: Builds are isolated and deterministic
- **Fast**: Efficient dependency resolution and caching
- **Version Control**: Direct integration with Git for managing configurations

To enable flakes support, ensure you have the following in your Nix configuration:
```nix
{
nix.settings.experimental-features = [ "nix-command" "flakes" ];
}
```

## Installation

1. Clone this repository:
```bash
git clone https://github.com/thebrianbug/dotfiles.git
cd dotfiles
```

2. Apply the configuration:
```bash
home-manager switch --flake .
```

## Updating

To update your system packages and configurations:

1. Update flake inputs (nixpkgs, home-manager, etc.):
```bash
nix flake update # Updates all inputs
# OR
nix flake lock --update-input nixpkgs # Update specific input
```

2. Apply the updates:
```bash
home-manager switch --flake .
```

3. To see what packages will be updated before applying:
```bash
nix flake check # Verify flake integrity
home-manager build --flake . # Build without applying
```

## Structure

- `flake.nix`: Nix flake configuration
- `home-manager/`: Home Manager configuration files
- `desktop/`: Desktop environment configurations
- `programs/`: Program-specific configurations
- `session.nix`: Session and Wayland variables
- `shell/`: Shell configurations
- `home.nix`: Main Home Manager configuration