summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2022-03-17 15:05:49 -0600
committerAlejandro Soto <alejandro@34project.org>2022-03-17 15:36:21 -0600
commitca6b10ffb7795fd3431a55b9c546f6b127ac04a5 (patch)
tree2597b790d958f42659e06a5961053929f80f388d
parent82c53e2c5c23ccd4fb2c24511084f7a828a20731 (diff)
pkgs: add clip
Diffstat (limited to '')
-rw-r--r--home/path.nix6
-rw-r--r--pkgs/default.nix7
-rw-r--r--pkgs/scripts/clip.nix35
-rw-r--r--pkgs/scripts/default.nix8
4 files changed, 53 insertions, 3 deletions
diff --git a/home/path.nix b/home/path.nix
index 320c125..5a9d28e 100644
--- a/home/path.nix
+++ b/home/path.nix
@@ -5,18 +5,22 @@ in [
pkgs.cloc
pkgs.file
pkgs.gcc
+ pkgs.gnome.gnome-screenshot
+ pkgs.gpicview
pkgs.hack-font
pkgs.i3-gaps
py.ipython
pkgs.jq
pkgs.keepassxc
pkgs.killall
- pkgs.libsForQt5.okular
+ pkgs.libreoffice-fresh
pkgs.man-pages
pkgs.man-pages-posix
+ pkgs.libsForQt5.okular
pkgs.pavucontrol
py.python
pkgs.rustup
+ pkgs.local.scripts
pkgs.signal-desktop
pkgs.tdesktop
pkgs.local.tmux-lift
diff --git a/pkgs/default.nix b/pkgs/default.nix
index 1a7f6ac..600bf7e 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -1,7 +1,10 @@
-{ pkgs, util }: {
+{ pkgs, util }: let
+ inherit (pkgs) callPackage;
+in {
shenvs = let
env = name: env: pkgs.buildEnv (env pkgs // { name = "shenv-${name}"; });
in pkgs.lib.mapAttrs env (util.importAll { root = ../shenvs; });
- tmux-lift = pkgs.callPackage ./tmux-lift {};
+ scripts = callPackage ./scripts {};
+ tmux-lift = callPackage ./tmux-lift {};
}
diff --git a/pkgs/scripts/clip.nix b/pkgs/scripts/clip.nix
new file mode 100644
index 0000000..862d82e
--- /dev/null
+++ b/pkgs/scripts/clip.nix
@@ -0,0 +1,35 @@
+{ lib ,writeShellScriptBin, gnome, xclip
+, file, imagemagick, toPDF, ... }:
+with lib; let
+ name = if toPDF then "clip-pdf" else "clip";
+
+ pdfCmdline = optionalString toPDF ''
+ if [ $# -lt 1 ]; then
+ echo "Usage: $0 <out.pdf> [opts...]" >&2
+ exit 1
+ fi
+
+ OUT="$1"
+ shift
+ '';
+
+ copyOut = if toPDF then ''
+ ${imagemagick}/bin/convert "$CLIP" "$OUT"
+ '' else ''
+ ${xclip}/bin/xclip -selection clipboard \
+ -t $(${file}/bin/file -b --mime-type $CLIP) <"$CLIP"
+ '';
+in writeShellScriptBin name ''
+ ${pdfCmdline}
+
+ OPTIONS=-a
+ if [ "x$@" != "x" ]; then
+ OPTIONS="$@"
+ fi
+
+ CLIP="$HOME/vtmp/$$.png"
+ ${gnome.gnome-screenshot}/bin/gnome-screenshot "$OPTIONS" -f "$CLIP"
+ ${copyOut}
+
+ rm "$CLIP"
+''
diff --git a/pkgs/scripts/default.nix b/pkgs/scripts/default.nix
new file mode 100644
index 0000000..dc37056
--- /dev/null
+++ b/pkgs/scripts/default.nix
@@ -0,0 +1,8 @@
+{ callPackage, symlinkJoin, ... }:
+symlinkJoin {
+ name = "scripts";
+ paths = [
+ (callPackage ./clip.nix { toPDF = false; })
+ (callPackage ./clip.nix { toPDF = true; })
+ ];
+}