From 261eac2d36e8eaf2a93f5543440dbf679e723b18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Czy=C5=BC?= Date: Fri, 27 Dec 2024 17:04:25 +0100 Subject: [PATCH] feat: nixified --- .envrc | 1 + .gitignore | 1 + default.nix | 21 --------------------- flake.lock | 23 +++++++++++++++++++++++ flake.nix | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 71 insertions(+), 21 deletions(-) create mode 100644 .envrc delete mode 100644 default.nix create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore index 8723b9e..a77eaef 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ dwm-msg config.h patches.h .legacy/ +.direnv/ diff --git a/default.nix b/default.nix deleted file mode 100644 index 88cef4f..0000000 --- a/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ stdenv, fetchurl, libX11, libXft, libXinerama }: - -stdenv.mkDerivation { - name = "dwm-HEAD"; - - src = builtins.filterSource - (path: type: (toString path) != (toString ./.git)) ./.; - - buildInputs = [ libX11 libXft libXinerama ]; - - prePatch = '' - substituteInPlace config.mk --replace '/usr/local' $out - ''; - - meta = with stdenv.lib; { - description = "Dynamic window manager for X"; - homepage = http://dwm.suckless.org/; - license = licenses.mit; - platforms = platforms.all; - }; -} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..d6aeab8 --- /dev/null +++ b/flake.lock @@ -0,0 +1,23 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 0, + "narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=", + "path": "/nix/store/8fwsiv0hd7nw1brkvka0jf1frk3m7qkr-source", + "type": "path" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..8a2ebbf --- /dev/null +++ b/flake.nix @@ -0,0 +1,46 @@ +{ + outputs = { self, nixpkgs }: let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in { + packages.${system}.dwm = pkgs.stdenv.mkDerivation rec { + pname = "dwm"; + version = "custom"; + src = ./.; + + buildInputs = with pkgs; [ + xorg.libX11 + xorg.libXft + xorg.libXinerama + ]; + + makeFlags = [ "CC=${pkgs.gcc}/bin/gcc" ]; + + installPhase = '' + mkdir -p $out/bin + cp dwm $out/bin/ + ''; + + meta = with pkgs.lib; { + description = "Dynamic Window Manager"; + license = licenses.mit; + maintainers = [ ]; + }; + }; + + devShells.${system}.default = pkgs.mkShell { + buildInputs = with pkgs; [ + gnumake + gcc + xorg.libX11 + xorg.libX11.dev + xorg.libXft + xorg.libXinerama + ]; + + shellHook = '' + echo "Development shell for dwm ready." + ''; + }; + }; +}