Code Monkey home page Code Monkey logo

nixing's Introduction

NixOS home-manager cachix

Nixing

A place to collect things about Nix, it is also where to keep my dotfiles1.

Overview

This project offers Nix packages maintained by myself and their Nixpkgs overlays, extended NixOS modules and Home Manager modules.

Additionally, this project retains my NixOS host configuration, Home Manager user configuration, disk layout configuration with disko, and deployment configuration with colmena.

I use std and hive to support the continuous growth of the code in this repository. All packages, modules, and overlays keep across different subdirectories (called cell) under the nix directory (called cellBlock). You can read the paisano documentation to understand the details and principles of code organization.

Nixpkgs overlays

This repository provides the following overlays.

  • emacs, offers my portable GNU Emacs configurations.
  • proprius-fonts, offers some proprietary fonts.
  • unfree, provides some non-free software.

NixOS modules

This repository provides the following NixOS modules.

  • fonts, helps generate optimized fontconfig for languages, currently including English, Chinese, Japanese, and Korean.
  • my-emacs, provides customized support for my portable GNU Emacs configurations on NixOS.
  • tsangertype-fonts, Supports the installation of all TsangerType fonts or a subset of them.

Home Manager modules

Currently, the Home Manager modules provided by this repository align in functionality and naming with the NixOS modules.

Getting Started

I recommend use Nix Flake to import my packages, modules, and overlays, as I have not tested other methods.

Firstly, add my repository to inputs.

{
  inputs.nixpkgs.url = "github:NixOS/nixpkgs/unstable";

  inputs.brsvh.url = "github:brsvh/nixing";
  inputs.brsvh.inputs.nixpkgs.follows = "nixpkgs";

  # OPTIONAL use my cachix binary cache.
  nixConfig.extra-substituters = [ "https://brsvh.cachix.org" ];
  nixConfig.extra-trusted-public-keys = [ "brsvh.cachix.org-1:DqtlvqnpP9g39l8Eo74AXRftGx1KJLid/ViADTNgDNE="];
}

Then, import and use anything what you need.

{
  outputs.nixosConfiguraitons.YOUR-CONFIGURATION = inputs.nixpkgs.lib.nixosSystem {
    system = "x86_64-linux";
    modules = [
      brsvh.nixosModules.fonts
      brsvh.nixosModules.tsangertype-fonts
      (
        { pkgs, ... }:
        {
          nixpkgs.config.allowUnfree = true;
          nixpkgs.overlays = [
              brsvh.overlays.emacs
              brsvh.overlays.proprius-fonts
              brsvh.overlays.unfree
            ];

          environment.systemPackageswith = with pkgs; [ wemeet ];

	  # This option from `brsvh.nixosModules.fonts`.
	  fonts.fontconfig.chinese.enable = true;

	  # This option from `brsvh.nixosModules.tsangertype-fonts`.
	  fonts.tsangertype-fonts.enable = true;
        }
      )
    ];
  };
}

License

Unless otherwise specified, all work is free. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, as published by Sam Hocevar. You should have received a copy of it, see the COPYING file for more details. If you did not recive it, see http://www.wtfpl.net for more details.

Thanks

Thanks to these software in the Nix ecosystem.

disko Hive NixOS hardware Standard

colmena

Footnotes

  1. What is dotfiles, https://dotfiles.github.io โ†ฉ

nixing's People

Contributors

brsvh avatar

Stargazers

 avatar  avatar  avatar

Watchers

 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.