Git Product home page Git Product logo

beansnix's Introduction

NixOS Config for FrankelJb

Nix Flakes Ready Built With Snowfall

Welcome to BeansNix, a personal Nix configuration repository. This repository contains my NixOS and Nixpkgs configurations, along with various tools and customizations to enhance the Nix experience.

Features

Here's an overview of what my Nix configuration offers:

  • External Dependency Integrations:

    • Easily integrate Astronvim and my personal Astronvim config.
    • Access the Nix User Repository (NUR) for additional packages and enhancements.
    • Incorporate Nixpkgs-Wayland to provide an up-to-date Wayland package repository.
  • macOS Support: Seamlessly configure and manage Nix on macOS using the power of Nix-darwin, also leveraging homebrew for GUI applications.

  • Home Manager: Manage your dotfiles, home environment, and user-specific configurations with Home Manager.

  • DevShell Support: The flake provides a development shell (devShell) to support maintaining this flake. You can use the devShell for convenient development and maintenance of your Nix environment.

  • CI with Cachix: The configuration includes continuous integration (CI) that pushes built artifacts to Cachix. This ensures efficient builds and reduces the need to build dependencies on your local machine.

  • Utilize sops-nix: Secret management with sops-nix for secure and encrypted handling of sensitive information.

Customization

My Nix configuration, based on the SnowfallOrg lib structure, provides a flexible and organized approach to managing your Nix environment. Here's how it works:

  • Custom Library: An optional custom library in the lib/ directory contains a Nix function called with inputs, snowfall-inputs, and lib. The function should return an attribute set to merge with lib.

  • Modular Directory Structure: You can create any (nestable) directory structure within lib/, packages/, modules/, overlays/, systems/, and homes/. Each directory should contain a Nix function that returns an attribute set to merge with the corresponding section.

  • Package Overlays: The packages/ directory includes an optional set of packages to export. Each package is instantiated with callPackage, and the files should contain functions that take an attribute set of packages and the required lib to return a derivation.

  • Modules for Configuration: In the modules/ directory, you can define NixOS modules for various platforms, such as nixos, darwin, and home. This modular approach simplifies system configuration management.

  • Custom Overlays: The overlays/ directory is for optional custom overlays. Each overlay file should contain a function that takes three arguments: an attribute set of your flake's inputs and a channels attribute containing all available channels, the final set of pkgs, and the previous set of pkgs. This allows you to customize package sets effectively.

  • System Configurations: The systems/ directory organizes system configurations based on architecture and format. You can create configurations for different architectures and formats, such as x86_64-linux, aarch64-darwin, and more.

  • Home Configurations: Similar to system configurations, the homes/ directory organizes home configurations based on architecture and format. This is especially useful if you want to manage home environments with Nix.

This structured approach to Nix configuration makes it easier to manage and customize your Nix environment while maintaining flexibility and modularity.

Credits

Thanks to the monumental effort from pioneers like Khaneliman, fufexan and the other hyprland and nixos community members.

beansnix's People

Contributors

dependabot[bot] avatar github-actions[bot] avatar jonfrankel-google avatar khaneliman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.