/nix-stefano-m-nix-overlays

Collection of Nix overlays

Primary LanguageNixMIT LicenseMIT

Custom Nixpkgs Overlays

This is a collection of packages to add to the Nix Packages Collection for use with Nix and/or NixOS.

Local Installation

  1. Download or clone this repository
  2. Create the folder ~/.config/nixpkgs/overlays
  3. Add a symbolic link to the created folder

Alternatively, run install.sh that will do the above steps for you.

Once the overlays are installed, they can be used with nix.

To uninstall, do the above steps backwards, or simply run the uninstall.sh script.

NixOS Installation

For NixOS to be able to see these overlays, you can use the nixpkgs.overlays attribute. For example, you can fetch the git repository directly from the network for more information, see the official documentation about builtins.fetchGit.

nixpkgs.overlays = with builtins; [
  (
    import (fetchGit {
      url = <repo URL>;
      rev = <git revision>;
      ref = <git ref>;
    })
  )
];

Using the overlays in NixOS with awesomewm

Most of the Lua overlays are actually useful in conjunction with the Awesome Window Manager which must be built with GTK support.

In this case, your NixOS configuration should look something like:

# /etc/nixos/configuration.nix
nixpkgs.overlays = with builtins; [

    (self: super: { awesome = super.awesome.override { gtk3Support = true; }; })

    (
      import (fetchGit {
        url = "https://github.com/stefano-m/nix-stefano-m-nix-overlays.git";
        rev = "0000000000000000000000000000000000000000";  # git revision heere
      })
    )

];

services.xserver.windowManager.windowManager = {
   awesome = {
     enable = true;
     luaModules = with pkgs.extraLuaPackages; [ # need overalys for this to work!
       connman_dbus
       connman_widget
       dbus_proxy
       enum
       media_player
       power_widget
       pulseaudio_dbus
       pulseaudio_widget
       upower_dbus
     ];
   };

Building locally

The build.sh script is a simple wrapper around nix-build to build the packages from the git repository. This is mostly useful for testing new changes.

For example:

./build.sh extraLuaPackages.connman_dbus