diff options
author | Jakub Trzeciak <jptrzy@gmail.com> | 2023-09-12 09:09:24 +0200 |
---|---|---|
committer | Jakub Trzeciak <jptrzy@gmail.com> | 2023-09-12 09:09:24 +0200 |
commit | afa8c3fba5ace65bee7a02024a136986341ad129 (patch) | |
tree | 3d6f711124789082300cb7f61227e0f44a3e9f2b /home-manager/sh | |
download | nixos-afa8c3fba5ace65bee7a02024a136986341ad129.tar.gz nixos-afa8c3fba5ace65bee7a02024a136986341ad129.tar.bz2 nixos-afa8c3fba5ace65bee7a02024a136986341ad129.zip |
Init
Diffstat (limited to 'home-manager/sh')
-rw-r--r-- | home-manager/sh/colors.nix | 18 | ||||
-rw-r--r-- | home-manager/sh/dmenu.nix | 15 | ||||
-rw-r--r-- | home-manager/sh/dwmblocks.nix | 12 | ||||
-rw-r--r-- | home-manager/sh/mpv.nix | 15 | ||||
-rw-r--r-- | home-manager/sh/screenshot.nix | 11 | ||||
-rw-r--r-- | home-manager/sh/wp.nix | 31 | ||||
-rw-r--r-- | home-manager/sh/yt.nix | 67 |
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 + ]; +} |