From 55041ff1225f09e22393d1cdc5853745b5ac414b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Mon, 26 Aug 2019 16:40:52 +0200 Subject: [PATCH] feat(packages): package tolino-screensaver, fzf-wrappers, dirmir --- configs/default.nix | 4 +++- configs/packages/default.nix | 4 +++- packages/_todo/dirmir.sh | 22 --------------------- packages/_todo/fe | 3 --- packages/_todo/fkill | 12 ----------- packages/_todo/fo | 7 ------- packages/_todo/tolino-screensaver | 10 ---------- packages/_todo/vg | 7 ------- packages/dirmir.nix | 27 +++++++++++++++++++++++++ packages/fzf-wrappers.nix | 33 +++++++++++++++++++++++++++++++ packages/man-pdf.nix | 21 +++++++++++++++----- packages/tolino-screensaver.nix | 11 +++++++++++ todo.txt | 12 ++++++----- 13 files changed, 100 insertions(+), 73 deletions(-) delete mode 100644 packages/_todo/dirmir.sh delete mode 100755 packages/_todo/fe delete mode 100755 packages/_todo/fkill delete mode 100755 packages/_todo/fo delete mode 100755 packages/_todo/tolino-screensaver delete mode 100755 packages/_todo/vg create mode 100644 packages/dirmir.nix create mode 100644 packages/fzf-wrappers.nix create mode 100644 packages/tolino-screensaver.nix diff --git a/configs/default.nix b/configs/default.nix index 343f11f..afb2919 100644 --- a/configs/default.nix +++ b/configs/default.nix @@ -106,7 +106,9 @@ odyssey = pkgs.callPackage {}; wttr = pkgs.callPackage {}; nav = pkgs.callPackage {}; - man-pdf = pkgs.callPackage {}; + dirmir = pkgs.callPackage {}; + tolino-screensaver = pkgs.callPackage {}; + # fzf-wrappers = pkgs.callPackage {}; (broken) slide = let slide-package = pkgs.fetchFromGitHub { owner = "kmein"; diff --git a/configs/packages/default.nix b/configs/packages/default.nix index d25be01..32781e7 100644 --- a/configs/packages/default.nix +++ b/configs/packages/default.nix @@ -88,7 +88,9 @@ kmein.bvg kmein.daybook kmein.depp + kmein.dirmir kmein.font-size + # kmein.fzf-wrappers (broken) kmein.genius kmein.instaget kmein.literature-quote @@ -96,7 +98,7 @@ kmein.odyssey kmein.wttr kmein.slide - kmein.man-pdf + kmein.tolino-screensaver memo nix-git par diff --git a/packages/_todo/dirmir.sh b/packages/_todo/dirmir.sh deleted file mode 100644 index e764fb8..0000000 --- a/packages/_todo/dirmir.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -SOURCE="$1" -TARGET="$2" - -if [ ! -d "$SOURCE" ] || [ $# -ne 2 ]; then - echo >/dev/stderr "Usage: $1 SOURCE TARGET" - exit 1 -fi - -if [ -e "$TARGET" ]; then - echo >/dev/stderr "$TARGET" already exists. Please use a different name. - exit 1 -fi - -for entry in $(find "$SOURCE"); do - if [ -d "$entry" ]; then - mkdir -p "$TARGET/$entry" - else - # create a file with the same permissions as $entry - install -m "$(stat -c %a "$entry")" /dev/null "$TARGET/$entry" - fi -done diff --git a/packages/_todo/fe b/packages/_todo/fe deleted file mode 100755 index 85201f0..0000000 --- a/packages/_todo/fe +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash -IFS=$'\n' files=($(fzf-tmux --query="$1" --multi --select-1 --exit-0)) -[[ -n "$files" ]] && ${EDITOR:-vim} "${files[@]}" diff --git a/packages/_todo/fkill b/packages/_todo/fkill deleted file mode 100755 index 5ad1f86..0000000 --- a/packages/_todo/fkill +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -if [ "$UID" != "0" ]; then - pid=$(ps -f -u $UID | sed 1d | fzf -m | awk '{print $2}') -else - pid=$(ps -ef | sed 1d | fzf -m | awk '{print $2}') -fi - -if [ "x$pid" != "x" ] -then - echo $pid | xargs kill -${1:-9} -fi diff --git a/packages/_todo/fo b/packages/_todo/fo deleted file mode 100755 index d7d6754..0000000 --- a/packages/_todo/fo +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash -IFS=$'\n' out=("$(fzf-tmux --query="$1" --exit-0 --expect=ctrl-o,ctrl-e)") -key=$(head -1 <<< "$out") -file=$(head -2 <<< "$out" | tail -1) -if [ -n "$file" ]; then - [ "$key" = ctrl-o ] && open "$file" || ${EDITOR:-vim} "$file" -fi diff --git a/packages/_todo/tolino-screensaver b/packages/_todo/tolino-screensaver deleted file mode 100755 index 1187fd5..0000000 --- a/packages/_todo/tolino-screensaver +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -source_image="$1" - -if [ -e "$source_image" ]; then - convert -type Grayscale -resize 758x1024 "$source_image" "suspend.jpg" -else - echo >/dev/stderr "$1 must exist." - exit 1 -fi diff --git a/packages/_todo/vg b/packages/_todo/vg deleted file mode 100755 index 256bdf4..0000000 --- a/packages/_todo/vg +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash -file="$(rg $@ | fzf -0 -1 | awk -F: '{print $1}')" - -if [[ -n $file ]] -then - vim $file -fi diff --git a/packages/dirmir.nix b/packages/dirmir.nix new file mode 100644 index 0000000..0a8f446 --- /dev/null +++ b/packages/dirmir.nix @@ -0,0 +1,27 @@ +{ writers, coreutils, findutils }: +let name = "dirmir"; +in writers.writeDashBin name '' + export PATH=$PATH:${coreutils}/bin:${findutils}/bin + + SOURCE="$1" + TARGET="$2" + + if [ ! -d "$SOURCE" ] || [ $# -ne 2 ]; then + echo >/dev/stderr "Usage: ${name} SOURCE TARGET" + exit 1 + fi + + if [ -e "$TARGET" ]; then + echo >/dev/stderr "$TARGET" already exists. Please use a different name. + exit 1 + fi + + for entry in $(find "$SOURCE"); do + if [ -d "$entry" ]; then + mkdir -p "$TARGET/$entry" + else + # create a file with the same permissions as $entry + install -m "$(stat -c %a "$entry")" /dev/null "$TARGET/$entry" + fi + done +'' diff --git a/packages/fzf-wrappers.nix b/packages/fzf-wrappers.nix new file mode 100644 index 0000000..07e35f7 --- /dev/null +++ b/packages/fzf-wrappers.nix @@ -0,0 +1,33 @@ +{ write, lib, fzf, writers, findutils, procps, gnused, gawk, ripgrep }: +let + wrappers.fe = writers.writeBash "fe" '' + export PATH=$PATH:${fzf}/bin + + IFS=$'\n' files=($(fzf-tmux --query="$1" --multi --select-1 --exit-0)) + [[ -n "$files" ]] && ''${EDITOR:-vim} "''${files[@]}" + ''; + wrappers.fkill = writers.writeDash "fkill" '' + export PATH=$PATH:${procps}/bin:${gawk}/bin:${gnused}/bin:${fzf}/bin:${findutils}/bin + + if [ "$UID" != "0" ]; then + pid=$(ps -f -u $UID | sed 1d | fzf -m | awk '{print $2}') + else + pid=$(ps -ef | sed 1d | fzf -m | awk '{print $2}') + fi + + if [ "x$pid" != "x" ] + then + echo $pid | xargs kill -''${1:-9} + fi + ''; + wrappers.vg = writers.writeBash "vg" '' + export PATH=$PATH:${ripgrep}/bin:${fzf}/bin:${gawk}/bin + + file="$(rg "$@" | fzf -0 -1 | awk -F: '{print $1}')" + + if [[ -n $file ]] + then + ''${EDITOR:-vim} "$file" + fi + ''; +in write "fzf-wrappers" (lib.mapAttrs' (name: link: lib.nameValuePair "/bin/${name}" {inherit link;}) wrappers) diff --git a/packages/man-pdf.nix b/packages/man-pdf.nix index e9493d4..b7b578e 100644 --- a/packages/man-pdf.nix +++ b/packages/man-pdf.nix @@ -1,6 +1,17 @@ -{ writeShellScriptBin, texlive }: -writeShellScriptBin "man-pdf" '' - for program in "$@"; do - man -t "$program" | ${texlive.combined.scheme-basic}/bin/ps2pdf - done +{ writeShellScriptBin, ghostscript, man }: +let + name = "man-pdf"; +in writeShellScriptBin name '' + if [ $# -eq 1 ]; then + man_entry="$1" + elif [ $# -eq 2 ]; then + man_page="$1" + man_entry="$2" + else + echo >/dev/stderr "Usage: ${name} [MAN-PAGE] ENTRY" + exit 1 + fi + + echo "${man}/bin/man "''${man_page:-}" "$man_entry" | ${ghostscript}/bin/ps2pdf - "$man_entry.pdf"" + ${man}/bin/man "''${man_page:-}" "$man_entry" | ${ghostscript}/bin/ps2pdf - "$man_entry.pdf" '' diff --git a/packages/tolino-screensaver.nix b/packages/tolino-screensaver.nix new file mode 100644 index 0000000..0b4606f --- /dev/null +++ b/packages/tolino-screensaver.nix @@ -0,0 +1,11 @@ +{ writers, imagemagick }: +writers.writeDashBin "tolino-screensaver" '' + source_image="$1" + + if [ -e "$source_image" ]; then + ${imagemagick}/bin/convert -type Grayscale -resize 758x1024 "$source_image" "suspend.jpg" + else + echo >/dev/stderr "$1 must exist." + exit 1 + fi +'' diff --git a/todo.txt b/todo.txt index 141ce97..0fa9897 100644 --- a/todo.txt +++ b/todo.txt @@ -1,7 +1,9 @@ -2019-07-09 fzf wrappers @package +2019-07-09 @package fzf wrappers +x 2019-08-26 2019-08-24 @package dirmir 2019-08-25 environment.etc."sshd/banner-line".text = config.networking.hostName; 2019-08-25 fix man-pdf: man-pdf 1p env, man-pdf env: man $options -t $command | ps2pdf - $command.pdf -2019-08-25 tolino-screensaver @package -2019-08-25 wallpapers @package -2019-08-26 create guest user (gnome, firefox with plugins and prefs, libreoffice) @homeros +GuestUser -2019-08-26 move gui stuff out of systemPackages and into users.me +GuestUser +x 2019-08-26 2019-08-25 @package tolino-screensaver +2019-08-25 @package wallpapers +2019-08-26 create +guest_user (gnome, firefox with plugins and prefs, libreoffice) @homeros +2019-08-26 move gui stuff out of systemPackages and into users.me +guest_user +2019-08-26 environment.shellAliases.cat = "bat --style=plain"