A collection of various nix utilities packaged as Nix flakes with configurable modules for NixOS, nix-darwin, and Home Manager.
| Package | Description | Type |
|---|---|---|
| opsops | SOPS but easy with 1Password integration | Rust binary |
| ndcli | Command line interface for DIM (DNS and IP Management) | Python CLI |
| dimclient | Python client for DIM (dependency of ndcli) | Python package |
| defaultbrowser | Utility to set the default browser on macOS | C binary |
Add it to your flake.nix inputs:
nixkit = {
url = "github:frostplexx/nixkit";
# or for local development:
# url = "path:/path/to/nixkit";
};Add the home manager module:
home-manager = {
sharedModules = [
inputs.nixkit.homeModules.default
];
};Add the nix module:
On NixOS:
modules = [
inputs.nixkit.nixosModules.default
];On macOS:
modules = [
inputs.nixkit.darwinModules.default
];{
nixpkgs.overlays = [ nixkit.overlays.default ];
# Now packages are available as pkgs.opsops, pkgs.ndcli, etc.
environment.systemPackages = with pkgs; [
opsops
ndcli
];
}# Install individual packages
nix profile install github:frostplexx/nixkit#opsops
nix profile install github:frostplexx/nixkit#ndcli
# Or run directly
nix run github:frostplexx/nixkit#opsopsTo set the default browser on macOS and Linux use the following:
# Enable and configure the default browser
programs.default-browser = {
enable = true;
browser = "firefox"; # Or any other browser name
};A service that lets you swipe on your trackpad to move between aerosapce spaces
# Enable and configure the default browser
programs.aerospace-swipe = {
enable = true;
haptic = false;
natural_swipe = false;
wrap_around = true;
skip_empty = true;
fingers = 3;
};{
programs.ndcli = {
enable = true;
username = "johndoe"; # Your Dim username
};
}Source: https://github.com/ionos-cloud/dim/tree/master/ndcli
You can configure custom icons on macOS using the following snippet:
environment.customIcons = {
enable = true;
icons = [
{
path = "/Applications/Notion.app";
icon = ./icons/notion.icns;
}
];
};Source: https://github.com/ryanccn/nix-darwin-custom-icons
SOPS but easy and with 1Password integration:
programs = {
opsops.enable = true;
};Source: https://github.com/frostplexx/opsops
Enter the development shell with all necessary tools:
direnv allow# Build individual packages
nix build .#opsops
# Test the built packages
./result/bin/opsops --helpThis repository uses nix-update for automated package updates:
# Update individual packages
nix-update opsops --build --commit (--version 1.2.3)
nix-update ndcli --build --commit
# Update all packages
./scripts/update.shAutomated Updates:
- GitHub Actions runs daily at 6 AM Berlin time
- Creates individual PRs for each package update
- Automatically builds and tests packages before creating PRs
nixkit/
├── packages/ # Package definitions (nix-update compatible)
│ ├── default.nix # Package set entry point
│ ├── opsops/
│ ├── ndcli/
│ ├── dimclient/
│ └── defaultbrowser/
│
├── modules/
│ ├── home/ # Home Manager modules
│ │ ├── default-browser.nix
│ │ ├── ndcli.nix
│ │ └── default.nix
│ ├── shared/ # Shared NixOS/Darwin modules
│ │ ├── opsops.nix
│ │ └── default.nix
│ ├── nixos/ # NixOS-specific modules
│ │ └── default.nix
│ └── darwin/ # Darwin-specific modules
│ └── default.nix
├── flake.nix # Flake definition
├── overlay.nix # Package overlay
├── default.nix # Legacy Nix compatibility
└── update.sh # Package update script
- Nix with flakes enabled
- For Home Manager modules: Home Manager
- For NixOS modules: NixOS system
- For Darwin modules: nix-darwin
The repository includes automated package updates via GitHub Actions:
- Schedule: Daily at 6 AM Berlin time
- Process: Creates individual PRs for each package update
- Safety: Builds and tests packages before creating PRs
- Manual trigger: Available via GitHub Actions interface
Personal use repository.
- Add new packages to
packages/ - Create corresponding modules in
modules/home/,modules/shared/, or platform-specific directories - Update
packages/default.nixandflake.nix - Test with
nix build .#package-name - Verify
nix-update package-nameworks for automated updates