From 2b3e4661b3a92260e2a45090b84f94e9056efcc2 Mon Sep 17 00:00:00 2001 From: tux Date: Thu, 17 Sep 2026 21:24:52 +0530 Subject: [PATCH] feat(packages): add omasnap --- modules/flake/overlays.nix | 9 ++++- modules/hm/desktop/hyprland.nix | 1 + packages/omasnap.nix | 68 +++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 packages/omasnap.nix diff --git a/modules/flake/overlays.nix b/modules/flake/overlays.nix index 9678956..f41114f 100644 --- a/modules/flake/overlays.nix +++ b/modules/flake/overlays.nix @@ -1,6 +1,7 @@ {inputs, ...}: { flake.overlays = { modifications = final: prev: { + omasnap = prev.callPackage ../../packages/omasnap.nix {}; tnvim = inputs.tnvim.packages.${prev.stdenv.hostPlatform.system}.default; tshell = inputs.tshell.packages.${prev.stdenv.hostPlatform.system}.default; trok = inputs.trok.packages.${prev.stdenv.hostPlatform.system}.default; @@ -27,10 +28,14 @@ copyparty = inputs.copyparty.overlays.default; }; - perSystem = {system, ...}: { - _module.args.pkgs = import inputs.nixpkgs { + perSystem = {system, ...}: let + pkgs = import inputs.nixpkgs { inherit system; overlays = builtins.attrValues inputs.self.overlays; }; + in { + _module.args.pkgs = pkgs; + + packages.omasnap = pkgs.omasnap; }; } diff --git a/modules/hm/desktop/hyprland.nix b/modules/hm/desktop/hyprland.nix index 4ba4cf0..23f5485 100644 --- a/modules/hm/desktop/hyprland.nix +++ b/modules/hm/desktop/hyprland.nix @@ -30,6 +30,7 @@ hyprshot wl-clipboard wl-screenrec + omasnap (writeShellScriptBin "hypr-screenshot" '' hyprshot -m region -r ppm - | satty --filename - '') diff --git a/packages/omasnap.nix b/packages/omasnap.nix new file mode 100644 index 0000000..9ab473c --- /dev/null +++ b/packages/omasnap.nix @@ -0,0 +1,68 @@ +{ + lib, + stdenv, + cmake, + fetchFromGitHub, + hyprland, + kdePackages, + ninja, + pkg-config, + tesseract, + wayland, + wayland-protocols, + wayland-scanner, + wl-clipboard, +}: +stdenv.mkDerivation { + pname = "omasnap"; + version = "v1.20.1"; + + src = fetchFromGitHub { + owner = "omacom"; + repo = "omasnap"; + rev = "d339588f3aba554f314d6233da2dddc98f83de55"; + hash = "sha256-90p1lZDj4cksAAhpbJMQwN6cMqqcZyRVESMLpjmw294="; + }; + + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace-fail "/usr/share/wayland-protocols" \ + "${wayland-protocols}/share/wayland-protocols" + ''; + + nativeBuildInputs = [ + cmake + kdePackages.wrapQtAppsHook + ninja + pkg-config + wayland-scanner + ]; + + buildInputs = [ + kdePackages.layer-shell-qt + kdePackages.qtbase + wayland + wayland-protocols + ]; + + cmakeFlags = [(lib.cmakeBool "BUILD_TESTING" false)]; + + qtWrapperArgs = [ + "--prefix" + "PATH" + ":" + (lib.makeBinPath [ + hyprland + tesseract + wl-clipboard + ]) + ]; + + meta = { + description = "Fast Wayland screenshot and annotation overlay for Hyprland"; + homepage = "https://github.com/omacom/omasnap"; + license = lib.licenses.mit; + mainProgram = "omasnap"; + platforms = lib.platforms.linux; + }; +}