mirror of
https://github.com/Noratrieb/clippyboard.git
synced 2026-01-14 18:05:04 +01:00
47 lines
1.5 KiB
Nix
47 lines
1.5 KiB
Nix
# warning: this flake is probably terrible, whatever
|
|
{
|
|
description = "clippyboard: a clipboard manager";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
};
|
|
|
|
outputs = { nixpkgs, ... }:
|
|
|
|
let
|
|
lib = nixpkgs.lib;
|
|
clippyboard-package = ./default.nix;
|
|
systems = lib.intersectLists lib.systems.flakeExposed lib.platforms.linux;
|
|
forAllSystems = lib.genAttrs systems;
|
|
in
|
|
{
|
|
packages = forAllSystems (system: { default = nixpkgs.${system}.callPackage clippyboard-package { }; });
|
|
nixosModules.default = { lib, config, pkgs, ... }:
|
|
let
|
|
cfg = config.services.clippyboard;
|
|
clippyboard = pkgs.callPackage clippyboard-package { };
|
|
in
|
|
{
|
|
options.services.clippyboard = {
|
|
enable = lib.mkEnableOption "Enable the clippyboard daemon and clippyboard program";
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
nixpkgs.overlays = [
|
|
(final: prev: {
|
|
clipboard = clippyboard;
|
|
})
|
|
];
|
|
systemd.user.services.clippyboard = {
|
|
description = "a clipboard manager";
|
|
wantedBy = [ "graphical-session.target" ];
|
|
after = [ "graphical-session.target" ];
|
|
serviceConfig = {
|
|
ExecStart = lib.getExe' clippyboard "clippyboard-daemon";
|
|
};
|
|
};
|
|
environment.systemPackages = [ clippyboard ];
|
|
};
|
|
};
|
|
};
|
|
}
|