Files
niphas/flake.nix

117 lines
3.6 KiB
Nix
Raw Normal View History

2026-02-03 17:25:28 +01:00
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs";
2026-02-03 17:46:20 +01:00
wrappers.url = "github:Lassulus/wrappers";
wrappers.inputs.nixpkgs.follows = "nixpkgs";
2026-02-03 17:25:28 +01:00
treefmt-nix.url = "github:numtide/treefmt-nix";
treefmt-nix.inputs.nixpkgs.follows = "nixpkgs";
};
outputs =
inputs:
let
lib = inputs.nixpkgs.lib;
eachSupportedSystem = lib.genAttrs lib.systems.flakeExposed;
treefmtEval = eachSupportedSystem (
system:
inputs.treefmt-nix.lib.evalModule inputs.nixpkgs.legacyPackages.${system} (
{ pkgs, ... }:
{
projectRootFile = "flake.nix";
programs.nixfmt.enable = true;
}
)
);
in
{
nixosModules = {
2026-02-04 08:00:56 +01:00
editor = modules/editor.nix;
2026-02-03 17:46:20 +01:00
git = modules/git.nix;
2026-02-03 18:10:27 +01:00
udiskie = modules/udiskie.nix;
2026-02-04 08:30:19 +01:00
desktop = modules/desktop.nix;
2026-02-03 22:42:31 +01:00
nix = modules/nix.nix;
2026-02-04 08:30:19 +01:00
shell = modules/shell;
2026-02-03 17:25:28 +01:00
};
overlays.default = final: prev: {
2026-02-04 07:59:49 +01:00
niphas-terminal = prev.alacritty;
niphas-web-browser = prev.qutebrowser;
niphas-file-browser = prev.pcmanfm;
niphas-runner = prev.writers.writeDashBin "niphas-runner" "${prev.lib.getExe prev.rofi} -show run";
niphas-locker = prev.swaylock;
2026-02-10 21:51:28 +01:00
niphas-screenshot = prev.writers.writeDashBin "niphas-screenshot" ''
${prev.lib.getExe prev.grim} -g "$(${prev.lib.getExe prev.slurp})" - | ${prev.lib.getExe prev.satty} -f -
'';
2026-02-04 07:59:49 +01:00
2026-02-06 23:28:55 +01:00
niphas-editor = prev.lib.makeOverridable (prev.callPackage packages/vim) { };
2026-02-04 08:25:14 +01:00
niphas-bar = import packages/ashell.nix {
2026-02-03 21:23:26 +01:00
inherit (inputs) wrappers;
pkgs = prev;
};
2026-02-04 07:59:49 +01:00
niphas-git = import packages/git.nix {
2026-02-03 17:46:20 +01:00
inherit (inputs) wrappers;
pkgs = prev;
};
2026-02-04 08:43:55 +01:00
niphas-niri = import packages/niri.nix {
2026-02-03 21:23:26 +01:00
inherit (inputs) wrappers;
pkgs = final;
};
2026-02-04 07:59:49 +01:00
niphas-wallpaper =
prev.runCommand "niphas-wallpaper.png"
{
buildInputs = [ prev.imagemagick ];
}
''
# solid white
convert -size 1920x1080 xc:white $out
'';
2026-02-04 08:43:55 +01:00
niphas-set-wallpaper = prev.writers.writeDashBin "niphas-set-wallpaper" ''
2026-02-04 08:47:11 +01:00
exec ${lib.getExe prev.swaybg} --mode fill --image ${toString final.niphas-wallpaper}
2026-02-04 08:43:55 +01:00
'';
2026-02-20 16:27:54 +01:00
niphas-clipboard-watcher = prev.writers.writeDashBin "niphas-clipboard-watcher" ''
exec ${prev.getExe' prev.wl-clipboard "wl-paste"} -t text --watch ${lib.getExe prev.clipman} store
'';
niphas-redshift =
let
geolocation = [
52.5244
13.4105
];
latitude = builtins.elemAt geolocation 0;
longitude = builtins.elemAt geolocation 1;
in
prev.writers.writeDashBin "niphas-redshift" ''
exec ${prev.getExe prev.wlsunset} -l ${toString latitude} -L ${toString longitude}
'';
2026-02-04 07:59:49 +01:00
vimv = prev.callPackage packages/vimv.nix { };
2026-02-03 17:25:28 +01:00
};
packages = eachSupportedSystem (
system:
let
pkgs = import inputs.nixpkgs {
inherit system;
overlays = [ inputs.self.overlays.default ];
};
in
{
2026-02-03 22:28:09 +01:00
inherit (pkgs)
2026-02-04 08:25:14 +01:00
niphas-bar
2026-02-04 07:59:49 +01:00
niphas-git
niphas-niri
2026-02-04 08:00:56 +01:00
niphas-editor
2026-02-03 22:28:09 +01:00
vimv
;
2026-02-03 17:25:28 +01:00
}
);
formatter = eachSupportedSystem (system: treefmtEval.${system}.config.build.wrapper);
checks = eachSupportedSystem (system: {
formatting = treefmtEval.${system}.config.build.check inputs.self;
});
};
}