{"id":13679390,"url":"https://github.com/khaneliman/khanelinix","last_synced_at":"2025-04-05T06:05:58.092Z","repository":{"id":164085897,"uuid":"639539282","full_name":"khaneliman/khanelinix","owner":"khaneliman","description":"Nix configuration for my systems supporting macOS, NixOS, and WSL. ","archived":false,"fork":false,"pushed_at":"2024-10-24T05:03:02.000Z","size":11079,"stargazers_count":137,"open_issues_count":5,"forks_count":11,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-24T10:24:49.649Z","etag":null,"topics":["astronvim","flake","flakes","hyprland","neovim","nixos","nixos-config","nixos-configuration","nixos-dotfiles","snowfall","swayidle","swaylock","unstable","waybar"],"latest_commit_sha":null,"homepage":"","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/khaneliman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-11T17:01:36.000Z","updated_at":"2024-10-24T07:23:10.000Z","dependencies_parsed_at":"2024-05-21T01:26:47.899Z","dependency_job_id":"8699932e-56ca-4c12-adfd-58ef553566c4","html_url":"https://github.com/khaneliman/khanelinix","commit_stats":null,"previous_names":["khaneliman/khanelinix"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khaneliman%2Fkhanelinix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khaneliman%2Fkhanelinix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khaneliman%2Fkhanelinix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khaneliman%2Fkhanelinix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/khaneliman","download_url":"https://codeload.github.com/khaneliman/khanelinix/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247294537,"owners_count":20915340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["astronvim","flake","flakes","hyprland","neovim","nixos","nixos-config","nixos-configuration","nixos-dotfiles","snowfall","swayidle","swaylock","unstable","waybar"],"created_at":"2024-08-02T13:01:05.053Z","updated_at":"2025-04-05T06:05:58.075Z","avatar_url":"https://github.com/khaneliman.png","language":"Nix","funding_links":[],"categories":["Uncategorized","Nix"],"sub_categories":[],"readme":"\u003ch3 align=\"center\"\u003e\n \u003cimg src=\"https://avatars.githubusercontent.com/u/1778670?v=4\" width=\"100\" alt=\"Logo\"/\u003e\u003cbr/\u003e\n \u003cimg src=\"https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png\" height=\"30\" width=\"0px\"/\u003e\n \u003cimg src=\"https://nixos.org/logo/nixos-logo-only-hires.png\" height=\"20\" /\u003e NixOS Config for \u003ca href=\"https://github.com/khaneliman\"\u003eKhaneliman\u003c/a\u003e\n \u003cimg src=\"https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png\" height=\"30\" width=\"0px\"/\u003e\n\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n \u003ca href=\"https://github.com/khaneliman/khanelinix/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/khaneliman/khanelinix?colorA=363a4f\u0026colorB=b7bdf8\u0026style=for-the-badge\"\u003e\u003c/a\u003e\n \u003ca href=\"https://github.com/khaneliman/khanelinix/commits\"\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/khaneliman/khanelinix?colorA=363a4f\u0026colorB=f5a97f\u0026style=for-the-badge\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://wiki.nixos.org/wiki/Flakes\" target=\"_blank\"\u003e\n \u003cimg alt=\"Nix Flakes Ready\" src=\"https://img.shields.io/static/v1?logo=nixos\u0026logoColor=d8dee9\u0026label=Nix%20Flakes\u0026labelColor=5e81ac\u0026message=Ready\u0026color=d8dee9\u0026style=for-the-badge\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/snowfallorg/lib\" target=\"_blank\"\u003e\n \u003cimg alt=\"Built With Snowfall\" src=\"https://img.shields.io/static/v1?logoColor=d8dee9\u0026label=Built%20With\u0026labelColor=5e81ac\u0026message=Snowfall\u0026color=d8dee9\u0026style=for-the-badge\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\nWelcome to khanelinix, a personal Nix configuration repository. This repository\ncontains my NixOS and Nixpkgs configurations, along with various tools and\ncustomizations to enhance the Nix experience.\n\n## Table of Contents\n\n1. [Getting Started](#getting-started)\n2. [Features](#features)\n3. [Customization](#customization)\n4. [Exported Packages](#exported-packages)\n5. [Screenshots](#screenshots)\n6. [Resources](#resources)\n\n## Getting Started\n\nBefore diving in, ensure that you have Nix installed on your system. If not, you\ncan download and install it from the official\n[Nix website](https://nixos.org/download.html) or from the\n[Determinate Systems installer](https://github.com/DeterminateSystems/nix-installer).\nIf running on macOS, you need to have Nix-Darwin installed, as well. You can\nfollow the installation instruction on\n[GitHub](https://github.com/LnL7/nix-darwin?tab=readme-ov-file#flakes).\n\n### Clone this repository to your local machine\n\n```bash\n# New machine without git\nnix-shell -p git\n\n# Clone \ngit clone https://github.com/khaneliman/khanelinix.git\ncd khanelinix\n\n# Linux\nsudo nixos-rebuild switch --flake .\n\n# MacOS\n# First run without nix-darwin:\nnix run github:lnl7/nix-darwin#darwin-rebuild -- switch --flake github:khaneliman/khanelinix\n\ndarwin-rebuild switch --flake .\n\n # Direnv\nflake switch\n```\n\n## Features\n\nHere's an overview of what my Nix configuration offers:\n\n- **External Dependency Integrations**:\n  - [Nixvim](https://github.com/nix-community/nixvim) neovim configuration.\n  - Access the Nix User Repository (NUR) for additional packages and\n    enhancements.\n  - Incorporate Nixpkgs-Wayland to provide an up-to-date Wayland package\n    repository.\n\n- **macOS Support**: Seamlessly configure and manage Nix on macOS using the\n  power of [Nix-darwin](https://github.com/LnL7/nix-darwin), also leveraging\n  homebrew for GUI applications.\n\n- **Home Manager**: Manage your dotfiles, home environment, and user-specific\n  configurations with\n  [Home Manager](https://github.com/nix-community/home-manager).\n\n- **DevShell Support**: The flake provides a development shell (`devShell`) to\n  support maintaining this flake. You can use the devShell for convenient\n  development and maintenance of your Nix environment.\n\n- **CI with Cachix**: The configuration includes continuous integration (CI)\n  that pushes built artifacts to [Cachix](https://github.com/cachix/cachix).\n  This ensures efficient builds and reduces the need to build dependencies on\n  your local machine.\n\n- **Utilize sops-nix**: Secret management with\n  [sops-nix](https://github.com/Mic92/sops-nix) for secure and encrypted\n  handling of sensitive information.\n\n## Customization\n\nMy Nix configuration, based on the\n[SnowfallOrg lib](https://github.com/snowfallorg/lib) structure, provides a\nflexible and organized approach to managing your Nix environment. Here's how it\nworks:\n\n- **Custom Library**: An optional custom library in the `lib/` directory\n  contains a Nix function called with `inputs`, `snowfall-inputs`, and `lib`.\n  The function should return an attribute set to merge with `lib`.\n\n- **Modular Directory Structure**: You can create any (nestable) directory\n  structure within `lib/`, `packages/`, `modules/`, `overlays/`, `systems/`, and\n  `homes/`. Each directory should contain a Nix function that returns an\n  attribute set to merge with the corresponding section.\n\n- **Package Overlays**: The `packages/` directory includes an optional set of\n  packages to export. Each package is instantiated with `callPackage`, and the\n  files should contain functions that take an attribute set of packages and the\n  required `lib` to return a derivation.\n\n- **Modules for Configuration**: In the `modules/` directory, you can define\n  NixOS modules for various platforms, such as `nixos`, `darwin`, and `home`.\n  This modular approach simplifies system configuration management.\n\n- **Custom Overlays**: The `overlays/` directory is for optional custom\n  overlays. Each overlay file should contain a function that takes three\n  arguments: an attribute set of your flake's inputs and a `channels` attribute\n  containing all available channels, the final set of `pkgs`, and the previous\n  set of `pkgs`. This allows you to customize package sets effectively.\n\n- **System Configurations**: The `systems/` directory organizes system\n  configurations based on architecture and format. You can create configurations\n  for different architectures and formats, such as `x86_64-linux`,\n  `aarch64-darwin`, and more.\n\n- **Home Configurations**: Similar to system configurations, the `homes/`\n  directory organizes home configurations based on architecture and format. This\n  is especially useful if you want to manage home environments with Nix.\n\nThis structured approach to Nix configuration makes it easier to manage and\ncustomize your Nix environment while maintaining flexibility and modularity.\n\n# Exported packages\n\nRun packages directly with:\n\n```console\nnix run --extra-experimental-features 'nix-command flakes' github:khaneliman/khanelinix#packageName\n```\n\nOr install from the `packages` output. For example:\n\n```nix\n# flake.nix\n{\n  inputs.khanelinix = {\n    url = \"github:khaneliman/khanelinix\";\n    inputs.nixpkgs.follows = \"nixpkgs\";\n  };\n}\n\n# configuration.nix\n{pkgs, inputs, system, ...}: {\n  environment.systemPackages = [\n    inputs.khanelinix.packages.\"${system}\".packageName\n  ];\n}\n```\n\n# Screenshots\n\n## MacOS\n\n\u003cimg width=\"1512\" alt=\"image\" src=\"https://github.com/khaneliman/khanelinix/assets/1778670/abbd501e-60c4-46c3-927d-12890dadd811\"\u003e\n\n## NixOS\n\n![image](https://github.com/khaneliman/khanelinix/assets/1778670/34aebc9c-b053-4ccf-9540-6da5e93a77d5)\n\n# Resources\n\nOther configurations from where I learned and copied:\n\n- [JakeHamilton/config](https://github.com/jakehamilton/config) *Main\n  inspiration and started with\n- [FelixKrats/dotfiles](https://github.com/FelixKratz/dotfiles) *Sketchybar\n  design and implementation\n- [Fufexan/dotfiles](https://github.com/fufexan/dotfiles)\n- [NotAShelf/nyx](https://github.com/NotAShelf/nyx)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhaneliman%2Fkhanelinix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkhaneliman%2Fkhanelinix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhaneliman%2Fkhanelinix/lists"}