https://github.com/thebrianbug/dotfiles
https://github.com/thebrianbug/dotfiles
Last synced: 12 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/thebrianbug/dotfiles
- Owner: thebrianbug
- License: mit
- Created: 2024-10-28T17:59:29.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-06-06T02:30:57.000Z (12 months ago)
- Last Synced: 2025-06-06T03:28:41.976Z (12 months ago)
- Language: Nix
- Size: 835 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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