summaryrefslogtreecommitdiff
path: root/home-manager/sh
diff options
context:
space:
mode:
authorJakub Trzeciak <jptrzy@gmail.com>2023-09-12 09:09:24 +0200
committerJakub Trzeciak <jptrzy@gmail.com>2023-09-12 09:09:24 +0200
commitafa8c3fba5ace65bee7a02024a136986341ad129 (patch)
tree3d6f711124789082300cb7f61227e0f44a3e9f2b /home-manager/sh
downloadnixos-afa8c3fba5ace65bee7a02024a136986341ad129.tar.gz
nixos-afa8c3fba5ace65bee7a02024a136986341ad129.tar.bz2
nixos-afa8c3fba5ace65bee7a02024a136986341ad129.zip
Init
Diffstat (limited to 'home-manager/sh')
-rw-r--r--home-manager/sh/colors.nix18
-rw-r--r--home-manager/sh/dmenu.nix15
-rw-r--r--home-manager/sh/dwmblocks.nix12
-rw-r--r--home-manager/sh/mpv.nix15
-rw-r--r--home-manager/sh/screenshot.nix11
-rw-r--r--home-manager/sh/wp.nix31
-rw-r--r--home-manager/sh/yt.nix67
7 files changed, 169 insertions, 0 deletions
diff --git a/home-manager/sh/colors.nix b/home-manager/sh/colors.nix
new file mode 100644
index 0000000..f25a02f
--- /dev/null
+++ b/home-manager/sh/colors.nix
@@ -0,0 +1,18 @@
+{ pkgs }:
+
+pkgs.writeShellScriptBin "colors" ''
+ space=" "
+
+ output=""
+
+ for l in $(printf "40\n100"); do
+
+ for i in $(seq $l $((l + 9))); do
+ output="$output\033[0;''${i}m$space"
+ done
+
+ output="$output\033[0m\n"
+ done
+
+ printf "$output"
+''
diff --git a/home-manager/sh/dmenu.nix b/home-manager/sh/dmenu.nix
new file mode 100644
index 0000000..40c6c77
--- /dev/null
+++ b/home-manager/sh/dmenu.nix
@@ -0,0 +1,15 @@
+{ pkgs }:
+
+let
+ mpv-camera = pkgs.writeShellScriptBin "mpv-camera" ''
+ ${pkgs.mpv}/bin/mpv /dev/video0 \
+ osc=no --input-vo-keyboard=no --player-operation-mode=pseudo-gui \
+ no-cache --untimed --no-demuxer-thread \
+ --video-sync=audio --vd-lavc-threads=1 --vf=hflip
+ '';
+in pkgs.symlinkJoin {
+ name = "mpv";
+ paths = [
+ mpv-camera
+ ];
+}
diff --git a/home-manager/sh/dwmblocks.nix b/home-manager/sh/dwmblocks.nix
new file mode 100644
index 0000000..22db512
--- /dev/null
+++ b/home-manager/sh/dwmblocks.nix
@@ -0,0 +1,12 @@
+{ pkgs }:
+
+let
+ clock = pkgs.writeShellScriptBin "wp" ''
+
+ '';
+in pkgs.symlinkJoin {
+ name = "simplebar";
+ paths = [
+ pkgs.dwmblocks
+ ];
+}
diff --git a/home-manager/sh/mpv.nix b/home-manager/sh/mpv.nix
new file mode 100644
index 0000000..40c6c77
--- /dev/null
+++ b/home-manager/sh/mpv.nix
@@ -0,0 +1,15 @@
+{ pkgs }:
+
+let
+ mpv-camera = pkgs.writeShellScriptBin "mpv-camera" ''
+ ${pkgs.mpv}/bin/mpv /dev/video0 \
+ osc=no --input-vo-keyboard=no --player-operation-mode=pseudo-gui \
+ no-cache --untimed --no-demuxer-thread \
+ --video-sync=audio --vd-lavc-threads=1 --vf=hflip
+ '';
+in pkgs.symlinkJoin {
+ name = "mpv";
+ paths = [
+ mpv-camera
+ ];
+}
diff --git a/home-manager/sh/screenshot.nix b/home-manager/sh/screenshot.nix
new file mode 100644
index 0000000..9ebf716
--- /dev/null
+++ b/home-manager/sh/screenshot.nix
@@ -0,0 +1,11 @@
+{ pkgs }:
+
+pkgs.writeShellScriptBin "screenshot" ''
+ path="$HOME/Pictures/Screenshot"
+ mkdir -p "$path"
+
+ path="$path/$(date +%s_%N).jpg"
+
+ slop=$(${pkgs.slop}/bin/slop -f "%g") || exit 1
+ ${pkgs.imagemagick}/bin/import -window root -crop "$slop" "$path"
+''
diff --git a/home-manager/sh/wp.nix b/home-manager/sh/wp.nix
new file mode 100644
index 0000000..37fefb2
--- /dev/null
+++ b/home-manager/sh/wp.nix
@@ -0,0 +1,31 @@
+{ pkgs }:
+
+let
+ wp-set = pkgs.writeShellScriptBin "wp-set" ''
+ if [ -n "$1" ] && [ -e "$1" ]; then
+ rm "$HOME/.config/wallpaper."*
+
+ cp "$1" "$HOME/.config/wallpaper.''${1##*.}"
+ fi
+
+ ${pkgs.xwallpaper}/bin/xwallpaper --zoom "$HOME/.config/wallpaper."*
+ '';
+
+ wp-rand = pkgs.writeShellScriptBin "wp-rand" ''
+ ${wp-set}/bin/wp-set $(ls -1Ad "$HOME/Pictures/Wallpapers/"* | shuf | head -n 1)
+ '';
+
+ wp = pkgs.writeShellScriptBin "wp" ''
+ nsxiv="${pkgs.nsxiv}/bin/nsxiv"
+ wpset="${wp-set}/bin/wp-set"
+
+ $wpset "$($nsxiv -bfort "$HOME/Pictures/Wallpapers" | sed 1q)"
+ '';
+in pkgs.symlinkJoin {
+ name = "wp";
+ paths = [
+ wp
+ wp-rand
+ wp-set
+ ];
+}
diff --git a/home-manager/sh/yt.nix b/home-manager/sh/yt.nix
new file mode 100644
index 0000000..836798a
--- /dev/null
+++ b/home-manager/sh/yt.nix
@@ -0,0 +1,67 @@
+{ pkgs }:
+
+let
+
+ yt = pkgs.writeShellScriptBin "yt" ''
+ jq="${pkgs.jq}/bin/jq"
+
+ VIDEO_PATH="$HOME/Videos/Random"
+
+ mkdir -p "$VIDEO_PATH"
+
+ json="$(${pkgs.ytfzf}/bin/ytfzf -t --type=video --thumbnail-quality=medium -I vj)"
+
+ title="$(echo "$json" | jq .[0].title -r)"
+ channel="$(echo "$json" | jq .[0].channel -r)"
+ url="$(echo "$json" | jq .[0].url -r)"
+
+ cd "$VIDEO_PATH" || exit 1
+
+ ${pkgs.yt-dlp}/bin/yt-dlp --write-subs --sub-langs "en.*" --embed-chapters --embed-subs -f "bv*[height<=480]+ba/b[height<=480] / wv*+ba/w" -o "$channel - $title.%(ext)s" "$url"
+
+ ${pkgs.mpv}/bin/mpv "$channel - $title."*
+ '';
+
+ yt-hugger = pkgs.writeShellScriptBin "yt-hugger" ''
+ #
+ # This script download all videos from youtube channels specified in .channels
+ # file into path specified in VIDEOS.
+ #
+ # Channel File Format:
+ # <name> <url>
+ # <name> <url>
+ # # Comment
+ # <name> <url>
+ # ...
+ #
+
+ VIDEOS="$HOME/Videos/Channel"
+
+ mkdir -p "$VIDEOS"
+ touch "$VIDEOS/.channels"
+
+ channels="$(cat "$VIDEOS/.channels" | sed "/^#/d")"
+
+ [ -z "$channels" ] && echo "Channels file is empty" && exit 1
+
+ for entry in "$channels"; do
+ name="''${entry% *}"
+ url="''${entry##* }"
+
+ ${pkgs.yt-dlp}/bin/yt-dlp \
+ -f 'bv*[height>=720]+ba' \
+ --sub-langs "en.*" --embed-subs \
+ --embed-chapters --embed-thumbnail --embed-metadata \
+ --download-archive "$name/.archive" \
+ -o "$name/%(channel)s - %(title)s.%(ext)s" \
+ "$url"
+ done
+ '';
+
+in pkgs.symlinkJoin {
+ name = "yt";
+ paths = [
+ yt
+ yt-hugger
+ ];
+}
Software created with 💖