danyspin97 / wpaperd

Modern wallpaper daemon for Wayland
GNU General Public License v3.0
312 stars 24 forks source link

feat: Added Nix Flake support #22

Closed nova-nowiz closed 6 months ago

nova-nowiz commented 1 year ago

Added Nix Flake support to this repository so that anyone using Nix can use this project. Tested on my own system, works really well, thanks for the tool, it's awesome!

oh, also, if it's were possible to own a cachix instance, it would mean that Nix results would be cached (and so the build would be done once only). I can take care of everything, or you can take the free instance for open source here, and I can take care of the GitHub Action setup. As you wish!

danyspin97 commented 1 year ago

Hello! Thanks for the PR and sorry for the delay. Adding Nix Flake support is a great idea, I am looking forward to merge this PR.

Wpaperd has gone through a refactoring, so the nix support should be updated as well. timer is not being used anymore and wpaperd is using a git version of smithay-client-toolkit. Can you please update it?

Regarding the cachix instance, I don't know much about nix, let me have a look so that I can give you a better answer :)

nova-nowiz commented 1 year ago

Hi! Thank you for your message. I'll change what you brought up

quantenzitrone commented 8 months ago

Hi, here is the fixed nix/default.nix:

{
  lib,
  pkgs,
  rustPlatform,
  version,
  pkg-config,
  wayland,
  glew-egl,
  ...
}:

rustPlatform.buildRustPackage rec {
  inherit version;
  pname = "wpaperd";

  src = lib.cleanSourceWith {
    filter =
      name: type:
      let
        baseName = baseNameOf (toString name);
      in
      !(lib.hasSuffix ".nix" baseName);
    src = lib.cleanSource ../.;
  };

  cargoLock = {
    lockFile = ../Cargo.lock;
  };

  nativeBuildInputs = [ pkg-config ];

  buildInputs = [
    wayland
    glew-egl
  ];

  meta = with lib; {
    homepage = "https://github.com/danyspin97/wpaperd";
    description = "Wallpaper daemon for Wayland";
    license = licenses.gpl3Plus;
    platforms = platforms.linux;
    mainProgram = "wpaperd";
  };
}

I did this because I wanted to try out the unreleased wpaperd features.

I'd also advise adding result to .gitignore so nix evaluation results are ignored.

yunfachi commented 7 months ago

Hi, here is the fixed nix/default.nix:

Unused lambda pattern: config

tbaumann commented 7 months ago

Perhaps drop a section in the Readme about flake usage.

PS: I thought I would figure it out. But environment.systemPackages = [inputs.wpaperd.pkgs.wpaperd]; doesn't work.

danyspin97 commented 6 months ago

Since this PR hasn't been updated, I am going to close it in favor of #52.