From cc09b607330385d6d81b9c47cf64a2442432e93f Mon Sep 17 00:00:00 2001 From: Soispha Date: Tue, 20 Feb 2024 16:35:15 +0100 Subject: refactor(treewide): Add a `.sh` extension to shell scripts --- hm/soispha/conf/firefox/scripts/update_extensions | 22 -- .../conf/firefox/scripts/update_extensions.sh | 22 ++ hm/soispha/conf/git/default.nix | 2 +- hm/soispha/conf/git/scripts/commit | 19 -- hm/soispha/conf/git/scripts/commit.sh | 19 ++ hm/soispha/conf/gpg/agent-program | 2 - hm/soispha/conf/gpg/agent-program.sh | 2 + hm/soispha/conf/gpg/default.nix | 2 +- hm/soispha/conf/lf/commands/default.nix | 73 ++++--- hm/soispha/conf/lf/commands/scripts/archive | 54 ----- hm/soispha/conf/lf/commands/scripts/archive.sh | 54 +++++ hm/soispha/conf/lf/commands/scripts/broot_jump | 16 -- hm/soispha/conf/lf/commands/scripts/broot_jump.sh | 16 ++ hm/soispha/conf/lf/commands/scripts/chmod | 13 -- hm/soispha/conf/lf/commands/scripts/chmod.sh | 13 ++ hm/soispha/conf/lf/commands/scripts/clear_trash | 8 - hm/soispha/conf/lf/commands/scripts/clear_trash.sh | 8 + hm/soispha/conf/lf/commands/scripts/cow_cp | 96 --------- hm/soispha/conf/lf/commands/scripts/cow_cp.sh | 96 +++++++++ hm/soispha/conf/lf/commands/scripts/dl_file | 33 --- hm/soispha/conf/lf/commands/scripts/dl_file.sh | 33 +++ hm/soispha/conf/lf/commands/scripts/dragon | 11 - hm/soispha/conf/lf/commands/scripts/dragon.sh | 11 + .../conf/lf/commands/scripts/dragon_individual | 11 - .../conf/lf/commands/scripts/dragon_individual.sh | 11 + hm/soispha/conf/lf/commands/scripts/dragon_stay | 11 - hm/soispha/conf/lf/commands/scripts/dragon_stay.sh | 11 + hm/soispha/conf/lf/commands/scripts/fzf_jump | 16 -- hm/soispha/conf/lf/commands/scripts/fzf_jump.sh | 16 ++ .../conf/lf/commands/scripts/go_project_root | 13 -- .../conf/lf/commands/scripts/go_project_root.sh | 13 ++ hm/soispha/conf/lf/commands/scripts/mk_dir | 24 --- hm/soispha/conf/lf/commands/scripts/mk_dir.sh | 24 +++ hm/soispha/conf/lf/commands/scripts/mk_file | 24 --- hm/soispha/conf/lf/commands/scripts/mk_file.sh | 24 +++ .../conf/lf/commands/scripts/mk_file_and_edit | 25 --- .../conf/lf/commands/scripts/mk_file_and_edit.sh | 25 +++ hm/soispha/conf/lf/commands/scripts/mk_ln | 36 ---- hm/soispha/conf/lf/commands/scripts/mk_ln.sh | 36 ++++ hm/soispha/conf/lf/commands/scripts/mk_scr_default | 31 --- .../conf/lf/commands/scripts/mk_scr_default.sh | 31 +++ hm/soispha/conf/lf/commands/scripts/mk_scr_temp | 32 --- hm/soispha/conf/lf/commands/scripts/mk_scr_temp.sh | 32 +++ hm/soispha/conf/lf/commands/scripts/open | 11 - hm/soispha/conf/lf/commands/scripts/open.sh | 11 + hm/soispha/conf/lf/commands/scripts/open_config | 7 - hm/soispha/conf/lf/commands/scripts/open_config.sh | 7 + hm/soispha/conf/lf/commands/scripts/restore_trash | 7 - .../conf/lf/commands/scripts/restore_trash.sh | 7 + hm/soispha/conf/lf/commands/scripts/set_wall_paper | 10 - .../conf/lf/commands/scripts/set_wall_paper.sh | 10 + hm/soispha/conf/lf/commands/scripts/stripspace | 31 --- hm/soispha/conf/lf/commands/scripts/stripspace.sh | 31 +++ hm/soispha/conf/lf/commands/scripts/trash | 28 --- hm/soispha/conf/lf/commands/scripts/trash.sh | 28 +++ hm/soispha/conf/lf/commands/scripts/unarchive | 22 -- hm/soispha/conf/lf/commands/scripts/unarchive.sh | 22 ++ hm/soispha/conf/xdg/default.nix | 2 +- hm/soispha/conf/xdg/url_handler | 20 -- hm/soispha/conf/xdg/url_handler.sh | 20 ++ hm/soispha/conf/yambar/default.nix | 16 +- hm/soispha/conf/yambar/scripts/disk | 22 -- hm/soispha/conf/yambar/scripts/disk.sh | 22 ++ hm/soispha/conf/yambar/scripts/grades-average | 15 -- hm/soispha/conf/yambar/scripts/grades-average.sh | 15 ++ hm/soispha/conf/yambar/scripts/mpd_song_name | 22 -- hm/soispha/conf/yambar/scripts/mpd_song_name.sh | 22 ++ hm/soispha/conf/yambar/scripts/network | 47 ---- hm/soispha/conf/yambar/scripts/network.sh | 47 ++++ hm/soispha/conf/yambar/scripts/old/amixer-monitor | 24 --- .../conf/yambar/scripts/old/amixer-monitor.sh | 24 +++ hm/soispha/conf/yambar/scripts/old/cpu | 126 ----------- hm/soispha/conf/yambar/scripts/old/cpu.sh | 126 +++++++++++ hm/soispha/conf/yambar/scripts/old/dfspace | 23 -- hm/soispha/conf/yambar/scripts/old/dfspace.sh | 23 ++ hm/soispha/conf/yambar/scripts/old/grades-average | 12 -- .../conf/yambar/scripts/old/grades-average.sh | 12 ++ hm/soispha/conf/yambar/scripts/old/meminfo | 37 ---- hm/soispha/conf/yambar/scripts/old/meminfo.sh | 37 ++++ hm/soispha/conf/yambar/scripts/old/nmclitest | 23 -- hm/soispha/conf/yambar/scripts/old/nmclitest.sh | 23 ++ hm/soispha/conf/yambar/scripts/old/pingtest | 28 --- hm/soispha/conf/yambar/scripts/old/pingtest.sh | 28 +++ hm/soispha/conf/yambar/scripts/old/yambar-tray | 27 --- .../conf/yambar/scripts/old/yambar-tray-width | 28 --- .../conf/yambar/scripts/old/yambar-tray-width.sh | 28 +++ hm/soispha/conf/yambar/scripts/old/yambar-tray.sh | 27 +++ hm/soispha/conf/yambar/scripts/sound-volume | 20 -- hm/soispha/conf/yambar/scripts/sound-volume.sh | 20 ++ hm/soispha/conf/zsh/default.nix | 6 +- hm/soispha/pkgs/scripts.nix | 8 +- hm/soispha/pkgs/scripts/apps/aumo | 54 ----- hm/soispha/pkgs/scripts/apps/aumo.sh | 54 +++++ hm/soispha/pkgs/scripts/apps/con2pdf | 237 --------------------- hm/soispha/pkgs/scripts/apps/con2pdf.sh | 237 +++++++++++++++++++++ hm/soispha/pkgs/scripts/apps/fupdate | 167 --------------- hm/soispha/pkgs/scripts/apps/fupdate.sh | 167 +++++++++++++++ hm/soispha/pkgs/scripts/small_functions/nato | 106 --------- hm/soispha/pkgs/scripts/small_functions/nato.py | 106 +++++++++ .../scripts/small_functions/screenshot_persistent | 25 --- .../small_functions/screenshot_persistent.sh | 25 +++ .../scripts/small_functions/screenshot_temporary | 8 - .../small_functions/screenshot_temporary.sh | 8 + hm/soispha/pkgs/scripts/small_functions/update-sys | 78 ------- .../pkgs/scripts/small_functions/update-sys.sh | 78 +++++++ .../pkgs/scripts/specific/neorg/sh/functions/add | 23 -- .../scripts/specific/neorg/sh/functions/add.sh | 23 ++ .../scripts/specific/neorg/sh/functions/context | 43 ---- .../scripts/specific/neorg/sh/functions/context.sh | 43 ++++ .../pkgs/scripts/specific/neorg/sh/functions/dmenu | 12 -- .../scripts/specific/neorg/sh/functions/dmenu.sh | 12 ++ .../scripts/specific/neorg/sh/functions/f_start | 7 - .../scripts/specific/neorg/sh/functions/f_start.sh | 7 + .../scripts/specific/neorg/sh/functions/f_stop | 7 - .../scripts/specific/neorg/sh/functions/f_stop.sh | 7 + .../pkgs/scripts/specific/neorg/sh/functions/list | 8 - .../scripts/specific/neorg/sh/functions/list.sh | 8 + .../scripts/specific/neorg/sh/functions/project | 42 ---- .../scripts/specific/neorg/sh/functions/project.sh | 42 ++++ .../pkgs/scripts/specific/neorg/sh/functions/utils | 40 ---- .../scripts/specific/neorg/sh/functions/utils.sh | 40 ++++ .../scripts/specific/neorg/sh/functions/workspace | 9 - .../specific/neorg/sh/functions/workspace.sh | 9 + hm/soispha/pkgs/scripts/specific/neorg/sh/main | 156 -------------- hm/soispha/pkgs/scripts/specific/neorg/sh/main.sh | 156 ++++++++++++++ hm/soispha/pkgs/scripts/specific/ytcc/description | 8 - .../pkgs/scripts/specific/ytcc/description.sh | 8 + hm/soispha/pkgs/scripts/wrappers/hibernate | 16 -- hm/soispha/pkgs/scripts/wrappers/hibernate.sh | 16 ++ hm/soispha/pkgs/scripts/wrappers/ll | 14 -- hm/soispha/pkgs/scripts/wrappers/ll.sh | 14 ++ hm/soispha/pkgs/scripts/wrappers/lock | 19 -- hm/soispha/pkgs/scripts/wrappers/lock.sh | 19 ++ hm/soispha/pkgs/scripts/wrappers/lyrics | 11 - hm/soispha/pkgs/scripts/wrappers/lyrics.sh | 11 + hm/soispha/pkgs/scripts/wrappers/mpc-fav | 15 -- hm/soispha/pkgs/scripts/wrappers/mpc-fav.sh | 15 ++ hm/soispha/pkgs/scripts/wrappers/mpc-rm | 14 -- hm/soispha/pkgs/scripts/wrappers/mpc-rm.sh | 14 ++ hm/soispha/pkgs/scripts/wrappers/show | 9 - hm/soispha/pkgs/scripts/wrappers/show.sh | 9 + hm/soispha/pkgs/scripts/wrappers/sort_song | 33 --- hm/soispha/pkgs/scripts/wrappers/sort_song.sh | 33 +++ hm/soispha/pkgs/scripts/wrappers/spodi | 58 ----- hm/soispha/pkgs/scripts/wrappers/spodi.sh | 58 +++++ hm/soispha/pkgs/scripts/wrappers/virsh-del | 10 - hm/soispha/pkgs/scripts/wrappers/virsh-del.sh | 10 + hm/soispha/pkgs/scripts/wrappers/yti | 34 --- hm/soispha/pkgs/scripts/wrappers/yti.sh | 34 +++ hm/soispha/wms/river/default.nix | 2 +- hm/soispha/wms/river/init | 81 ------- hm/soispha/wms/river/init.sh | 81 +++++++ hm/soispha/wms/river/res/safe_init | 160 -------------- hm/soispha/wms/river/res/safe_init.sh | 160 ++++++++++++++ 154 files changed, 2646 insertions(+), 2647 deletions(-) delete mode 100755 hm/soispha/conf/firefox/scripts/update_extensions create mode 100755 hm/soispha/conf/firefox/scripts/update_extensions.sh delete mode 100755 hm/soispha/conf/git/scripts/commit create mode 100755 hm/soispha/conf/git/scripts/commit.sh delete mode 100755 hm/soispha/conf/gpg/agent-program create mode 100755 hm/soispha/conf/gpg/agent-program.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/archive create mode 100755 hm/soispha/conf/lf/commands/scripts/archive.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/broot_jump create mode 100755 hm/soispha/conf/lf/commands/scripts/broot_jump.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/chmod create mode 100755 hm/soispha/conf/lf/commands/scripts/chmod.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/clear_trash create mode 100755 hm/soispha/conf/lf/commands/scripts/clear_trash.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/cow_cp create mode 100755 hm/soispha/conf/lf/commands/scripts/cow_cp.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/dl_file create mode 100755 hm/soispha/conf/lf/commands/scripts/dl_file.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/dragon create mode 100755 hm/soispha/conf/lf/commands/scripts/dragon.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/dragon_individual create mode 100755 hm/soispha/conf/lf/commands/scripts/dragon_individual.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/dragon_stay create mode 100755 hm/soispha/conf/lf/commands/scripts/dragon_stay.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/fzf_jump create mode 100755 hm/soispha/conf/lf/commands/scripts/fzf_jump.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/go_project_root create mode 100755 hm/soispha/conf/lf/commands/scripts/go_project_root.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/mk_dir create mode 100755 hm/soispha/conf/lf/commands/scripts/mk_dir.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/mk_file create mode 100755 hm/soispha/conf/lf/commands/scripts/mk_file.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/mk_file_and_edit create mode 100755 hm/soispha/conf/lf/commands/scripts/mk_file_and_edit.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/mk_ln create mode 100755 hm/soispha/conf/lf/commands/scripts/mk_ln.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/mk_scr_default create mode 100755 hm/soispha/conf/lf/commands/scripts/mk_scr_default.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/mk_scr_temp create mode 100755 hm/soispha/conf/lf/commands/scripts/mk_scr_temp.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/open create mode 100755 hm/soispha/conf/lf/commands/scripts/open.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/open_config create mode 100755 hm/soispha/conf/lf/commands/scripts/open_config.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/restore_trash create mode 100755 hm/soispha/conf/lf/commands/scripts/restore_trash.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/set_wall_paper create mode 100755 hm/soispha/conf/lf/commands/scripts/set_wall_paper.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/stripspace create mode 100755 hm/soispha/conf/lf/commands/scripts/stripspace.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/trash create mode 100755 hm/soispha/conf/lf/commands/scripts/trash.sh delete mode 100755 hm/soispha/conf/lf/commands/scripts/unarchive create mode 100755 hm/soispha/conf/lf/commands/scripts/unarchive.sh delete mode 100755 hm/soispha/conf/xdg/url_handler create mode 100755 hm/soispha/conf/xdg/url_handler.sh delete mode 100755 hm/soispha/conf/yambar/scripts/disk create mode 100755 hm/soispha/conf/yambar/scripts/disk.sh delete mode 100755 hm/soispha/conf/yambar/scripts/grades-average create mode 100755 hm/soispha/conf/yambar/scripts/grades-average.sh delete mode 100755 hm/soispha/conf/yambar/scripts/mpd_song_name create mode 100755 hm/soispha/conf/yambar/scripts/mpd_song_name.sh delete mode 100755 hm/soispha/conf/yambar/scripts/network create mode 100755 hm/soispha/conf/yambar/scripts/network.sh delete mode 100755 hm/soispha/conf/yambar/scripts/old/amixer-monitor create mode 100755 hm/soispha/conf/yambar/scripts/old/amixer-monitor.sh delete mode 100755 hm/soispha/conf/yambar/scripts/old/cpu create mode 100755 hm/soispha/conf/yambar/scripts/old/cpu.sh delete mode 100755 hm/soispha/conf/yambar/scripts/old/dfspace create mode 100755 hm/soispha/conf/yambar/scripts/old/dfspace.sh delete mode 100755 hm/soispha/conf/yambar/scripts/old/grades-average create mode 100755 hm/soispha/conf/yambar/scripts/old/grades-average.sh delete mode 100755 hm/soispha/conf/yambar/scripts/old/meminfo create mode 100755 hm/soispha/conf/yambar/scripts/old/meminfo.sh delete mode 100755 hm/soispha/conf/yambar/scripts/old/nmclitest create mode 100755 hm/soispha/conf/yambar/scripts/old/nmclitest.sh delete mode 100755 hm/soispha/conf/yambar/scripts/old/pingtest create mode 100755 hm/soispha/conf/yambar/scripts/old/pingtest.sh delete mode 100755 hm/soispha/conf/yambar/scripts/old/yambar-tray delete mode 100755 hm/soispha/conf/yambar/scripts/old/yambar-tray-width create mode 100755 hm/soispha/conf/yambar/scripts/old/yambar-tray-width.sh create mode 100755 hm/soispha/conf/yambar/scripts/old/yambar-tray.sh delete mode 100755 hm/soispha/conf/yambar/scripts/sound-volume create mode 100755 hm/soispha/conf/yambar/scripts/sound-volume.sh delete mode 100755 hm/soispha/pkgs/scripts/apps/aumo create mode 100755 hm/soispha/pkgs/scripts/apps/aumo.sh delete mode 100644 hm/soispha/pkgs/scripts/apps/con2pdf create mode 100755 hm/soispha/pkgs/scripts/apps/con2pdf.sh delete mode 100644 hm/soispha/pkgs/scripts/apps/fupdate create mode 100755 hm/soispha/pkgs/scripts/apps/fupdate.sh delete mode 100755 hm/soispha/pkgs/scripts/small_functions/nato create mode 100755 hm/soispha/pkgs/scripts/small_functions/nato.py delete mode 100755 hm/soispha/pkgs/scripts/small_functions/screenshot_persistent create mode 100755 hm/soispha/pkgs/scripts/small_functions/screenshot_persistent.sh delete mode 100755 hm/soispha/pkgs/scripts/small_functions/screenshot_temporary create mode 100755 hm/soispha/pkgs/scripts/small_functions/screenshot_temporary.sh delete mode 100755 hm/soispha/pkgs/scripts/small_functions/update-sys create mode 100755 hm/soispha/pkgs/scripts/small_functions/update-sys.sh delete mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/add create mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/add.sh delete mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/context create mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/context.sh delete mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/dmenu create mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/dmenu.sh delete mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_start create mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_start.sh delete mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_stop create mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_stop.sh delete mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/list create mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/list.sh delete mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/project create mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/project.sh delete mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/utils create mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/utils.sh delete mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/workspace create mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/functions/workspace.sh delete mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/main create mode 100755 hm/soispha/pkgs/scripts/specific/neorg/sh/main.sh delete mode 100755 hm/soispha/pkgs/scripts/specific/ytcc/description create mode 100755 hm/soispha/pkgs/scripts/specific/ytcc/description.sh delete mode 100755 hm/soispha/pkgs/scripts/wrappers/hibernate create mode 100755 hm/soispha/pkgs/scripts/wrappers/hibernate.sh delete mode 100755 hm/soispha/pkgs/scripts/wrappers/ll create mode 100755 hm/soispha/pkgs/scripts/wrappers/ll.sh delete mode 100755 hm/soispha/pkgs/scripts/wrappers/lock create mode 100755 hm/soispha/pkgs/scripts/wrappers/lock.sh delete mode 100755 hm/soispha/pkgs/scripts/wrappers/lyrics create mode 100755 hm/soispha/pkgs/scripts/wrappers/lyrics.sh delete mode 100755 hm/soispha/pkgs/scripts/wrappers/mpc-fav create mode 100755 hm/soispha/pkgs/scripts/wrappers/mpc-fav.sh delete mode 100755 hm/soispha/pkgs/scripts/wrappers/mpc-rm create mode 100755 hm/soispha/pkgs/scripts/wrappers/mpc-rm.sh delete mode 100755 hm/soispha/pkgs/scripts/wrappers/show create mode 100755 hm/soispha/pkgs/scripts/wrappers/show.sh delete mode 100755 hm/soispha/pkgs/scripts/wrappers/sort_song create mode 100755 hm/soispha/pkgs/scripts/wrappers/sort_song.sh delete mode 100755 hm/soispha/pkgs/scripts/wrappers/spodi create mode 100755 hm/soispha/pkgs/scripts/wrappers/spodi.sh delete mode 100755 hm/soispha/pkgs/scripts/wrappers/virsh-del create mode 100755 hm/soispha/pkgs/scripts/wrappers/virsh-del.sh delete mode 100755 hm/soispha/pkgs/scripts/wrappers/yti create mode 100755 hm/soispha/pkgs/scripts/wrappers/yti.sh delete mode 100755 hm/soispha/wms/river/init create mode 100755 hm/soispha/wms/river/init.sh delete mode 100755 hm/soispha/wms/river/res/safe_init create mode 100755 hm/soispha/wms/river/res/safe_init.sh (limited to 'hm') diff --git a/hm/soispha/conf/firefox/scripts/update_extensions b/hm/soispha/conf/firefox/scripts/update_extensions deleted file mode 100755 index f8ed3a9a..00000000 --- a/hm/soispha/conf/firefox/scripts/update_extensions +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - - -tmp=$(mktemp) -cat << EOF > "$tmp" - darkreader:navbar - keepassxc-browser:navbar - vhack-libredirect:navbar - torproject-snowflake:navbar - tridactyl-vim:menupanel - ublock-origin:menupanel - video-pause:menupanel -EOF - -# The bin is provided in the devshell; -# The cat execution should be unquoted; -# shellcheck disable=SC2046 -generate_extensions $(cat "$tmp") > "$(dirname "$0")"/../config/extensions/extensions.json - - - -rm "$tmp"; diff --git a/hm/soispha/conf/firefox/scripts/update_extensions.sh b/hm/soispha/conf/firefox/scripts/update_extensions.sh new file mode 100755 index 00000000..f8ed3a9a --- /dev/null +++ b/hm/soispha/conf/firefox/scripts/update_extensions.sh @@ -0,0 +1,22 @@ +#!/bin/sh + + +tmp=$(mktemp) +cat << EOF > "$tmp" + darkreader:navbar + keepassxc-browser:navbar + vhack-libredirect:navbar + torproject-snowflake:navbar + tridactyl-vim:menupanel + ublock-origin:menupanel + video-pause:menupanel +EOF + +# The bin is provided in the devshell; +# The cat execution should be unquoted; +# shellcheck disable=SC2046 +generate_extensions $(cat "$tmp") > "$(dirname "$0")"/../config/extensions/extensions.json + + + +rm "$tmp"; diff --git a/hm/soispha/conf/git/default.nix b/hm/soispha/conf/git/default.nix index 098f38f5..d7b78fec 100644 --- a/hm/soispha/conf/git/default.nix +++ b/hm/soispha/conf/git/default.nix @@ -10,7 +10,7 @@ gitTemplateFile = ./git_template.git; commit = sysLib.writeShellScript { name = "commit"; - src = ./scripts/commit; + src = ./scripts/commit.sh; keepPath = true; dependencies = with pkgs; [ git diff --git a/hm/soispha/conf/git/scripts/commit b/hm/soispha/conf/git/scripts/commit deleted file mode 100755 index 9baf93bb..00000000 --- a/hm/soispha/conf/git/scripts/commit +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -ROOT="$(git rev-parse --show-toplevel)"; - -# Take first line from previous commit -if [ -f "$ROOT/.git/COMMIT_EDITMSG" ]; then - sed '1s/\(.*\)\((.*)\)\?\(:.*\)/\1\2: /;1p;d' "$ROOT/.git/COMMIT_EDITMSG" > "$ROOT/.git/COMMIT_TEMPLATE" -else - printf "\n" > "$ROOT/.git/COMMIT_TEMPLATE" -fi -sed '1d' "$(git config commit.template)" >> "$ROOT/.git/COMMIT_TEMPLATE" - -git commit --template "$ROOT/.git/COMMIT_TEMPLATE" --verbose "$@" - - -# vim: ft=sh diff --git a/hm/soispha/conf/git/scripts/commit.sh b/hm/soispha/conf/git/scripts/commit.sh new file mode 100755 index 00000000..9baf93bb --- /dev/null +++ b/hm/soispha/conf/git/scripts/commit.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +ROOT="$(git rev-parse --show-toplevel)"; + +# Take first line from previous commit +if [ -f "$ROOT/.git/COMMIT_EDITMSG" ]; then + sed '1s/\(.*\)\((.*)\)\?\(:.*\)/\1\2: /;1p;d' "$ROOT/.git/COMMIT_EDITMSG" > "$ROOT/.git/COMMIT_TEMPLATE" +else + printf "\n" > "$ROOT/.git/COMMIT_TEMPLATE" +fi +sed '1d' "$(git config commit.template)" >> "$ROOT/.git/COMMIT_TEMPLATE" + +git commit --template "$ROOT/.git/COMMIT_TEMPLATE" --verbose "$@" + + +# vim: ft=sh diff --git a/hm/soispha/conf/gpg/agent-program b/hm/soispha/conf/gpg/agent-program deleted file mode 100755 index e6917db0..00000000 --- a/hm/soispha/conf/gpg/agent-program +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -onlykey-gpg-agent -v --skey-slot=ECC32 --dkey-slot=ECC32 "$@" diff --git a/hm/soispha/conf/gpg/agent-program.sh b/hm/soispha/conf/gpg/agent-program.sh new file mode 100755 index 00000000..e6917db0 --- /dev/null +++ b/hm/soispha/conf/gpg/agent-program.sh @@ -0,0 +1,2 @@ +#!/bin/sh +onlykey-gpg-agent -v --skey-slot=ECC32 --dkey-slot=ECC32 "$@" diff --git a/hm/soispha/conf/gpg/default.nix b/hm/soispha/conf/gpg/default.nix index ab1440c5..d0cc33a2 100644 --- a/hm/soispha/conf/gpg/default.nix +++ b/hm/soispha/conf/gpg/default.nix @@ -7,7 +7,7 @@ }: let agent-program = sysLib.writeShellScript { name = "onlykey-gpg-agent"; - src = ./agent-program; + src = ./agent-program.sh; dependencies = with pkgs; [ python3 onlykey-agent diff --git a/hm/soispha/conf/lf/commands/default.nix b/hm/soispha/conf/lf/commands/default.nix index 14a160c6..1cb6996a 100644 --- a/hm/soispha/conf/lf/commands/default.nix +++ b/hm/soispha/conf/lf/commands/default.nix @@ -3,67 +3,66 @@ sysLib, shell_library, system, - lf_rename, ... }: let functionCall = { - file, + name, dependencies, replacementStrings, ... }: sysLib.writeShellScript { - name = "${builtins.baseNameOf file}"; - src = file; + inherit name; + src = ./scripts/${name}.sh; keepPath = true; dependencies = dependencies ++ (builtins.attrValues {inherit (pkgs) dash coreutils;}); inherit replacementStrings; } - + "/bin/${builtins.baseNameOf file}"; + + "/bin/${name}.sh"; shell = { - file, + name, dependencies, replacementStrings ? null, ... }: '' ''${{ - ${functionCall {inherit file dependencies replacementStrings;}} + ${functionCall {inherit name dependencies replacementStrings;}} }} ''; # closes the lf tui pipe = { - file, + name, dependencies, replacementStrings ? null, ... }: '' %{{ - ${functionCall {inherit file dependencies replacementStrings;}} + ${functionCall {inherit name dependencies replacementStrings;}} }} ''; # runs the command in the ui/term bar async = { - file, + name, dependencies, replacementStrings ? null, ... }: '' &{{ - ${functionCall {inherit file dependencies replacementStrings;}} + ${functionCall {inherit name dependencies replacementStrings;}} }} ''; # runs the command in the background wait = { - file, + name, dependencies, replacementStrings ? null, ... }: '' !{{ - ${functionCall {inherit file dependencies replacementStrings;}} + ${functionCall {inherit name dependencies replacementStrings;}} }} ''; # adds a prompt after the command has run in { archive = shell { - file = ./scripts/archive; + name = "archive"; dependencies = builtins.attrValues { inherit (pkgs) @@ -76,17 +75,17 @@ in { }; }; broot_jump = shell { - file = ./scripts/broot_jump; + name = "broot_jump"; dependencies = builtins.attrValues { inherit (pkgs) broot; }; }; chmod = pipe { - file = ./scripts/chmod; + name = "chmod"; dependencies = []; }; clear_trash = shell { - file = ./scripts/clear_trash; + name = "clear_trash"; dependencies = builtins.attrValues { inherit (pkgs) @@ -96,7 +95,7 @@ in { }; }; dl_file = pipe { - file = ./scripts/dl_file; + name = "dl_file"; dependencies = builtins.attrValues { inherit (pkgs) @@ -106,7 +105,7 @@ in { }; }; dragon = pipe { - file = ./scripts/dragon; + name = "dragon"; dependencies = builtins.attrValues { inherit (pkgs) @@ -115,7 +114,7 @@ in { }; }; dragon_individual = pipe { - file = ./scripts/dragon_individual; + name = "dragon_individual"; dependencies = builtins.attrValues { inherit (pkgs) @@ -124,7 +123,7 @@ in { }; }; dragon_stay = pipe { - file = ./scripts/dragon_stay; + name = "dragon_stay"; dependencies = builtins.attrValues { inherit (pkgs) @@ -133,36 +132,36 @@ in { }; }; fzf_jump = shell { - file = ./scripts/fzf_jump; + name = "fzf_jump"; dependencies = builtins.attrValues { inherit (pkgs) fzf lf gnused; }; }; mk_dir = pipe { - file = ./scripts/mk_dir; + name = "mk_dir"; dependencies = []; }; mk_file = shell { - file = ./scripts/mk_file; + name = "mk_file"; dependencies = []; }; mk_file_and_edit = shell { - file = ./scripts/mk_file_and_edit; + name = "mk_file_and_edit"; dependencies = []; }; mk_ln = pipe { - file = ./scripts/mk_ln; + name = "mk_ln"; dependencies = []; }; mk_scr_default = shell { - file = ./scripts/mk_scr_default; + name = "mk_scr_default"; dependencies = builtins.attrValues {}; replacementStrings = { SHELL_LIBRARY_TEMPLATE = "${shell_library.rawTemplate."${system}"}"; }; }; mk_scr_temp = shell { - file = ./scripts/mk_scr_temp; + name = "mk_scr_temp"; dependencies = builtins.attrValues {}; replacementStrings = { SHELL_LIBRARY_TEMPLATE = "${shell_library.rawTemplate."${system}"}"; @@ -170,15 +169,15 @@ in { }; }; open = shell { - file = ./scripts/open; + name = "open"; dependencies = builtins.attrValues {inherit (pkgs) file xdg-utils;}; }; go_project_base_directory = async { - file = ./scripts/go_project_root; + name = "go_project_root"; dependencies = []; }; open_config = shell { - file = ./scripts/open_config; + name = "open_config"; dependencies = builtins.attrValues { #inherit #(pkgs) @@ -189,7 +188,7 @@ in { }; }; restore_trash = shell { - file = ./scripts/restore_trash; + name = "restore_trash"; dependencies = builtins.attrValues { inherit (pkgs) @@ -199,7 +198,7 @@ in { }; }; set_wall_paper = pipe { - file = ./scripts/set_wall_paper; + name = "set_wall_paper"; dependencies = []; }; /* @@ -212,11 +211,11 @@ in { ''; */ stripspace = pipe { - file = ./scripts/stripspace; + name = "stripspace"; dependencies = []; }; trash = pipe { - file = ./scripts/trash; + name = "trash"; dependencies = builtins.attrValues { inherit (pkgs) @@ -227,14 +226,14 @@ in { }; }; unarchive = pipe { - file = ./scripts/unarchive; + name = "unarchive"; dependencies = builtins.attrValues { inherit (pkgs) gnutar unzip # TODO: this is unfree! unrar - + p7zip ; }; diff --git a/hm/soispha/conf/lf/commands/scripts/archive b/hm/soispha/conf/lf/commands/scripts/archive deleted file mode 100755 index 5f4e3792..00000000 --- a/hm/soispha/conf/lf/commands/scripts/archive +++ /dev/null @@ -1,54 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -# Option '-f' disables pathname expansion which can be useful when $f, $fs, and -# $fx variables contain names with '*' or '?' characters. However, this option -# is used selectively within individual commands as it can be limiting at -# times. -set -f - -archivers="$(tmp echo gzip xz 7z zip)"; - -prompt "Archive name: " -name="" -while [ -z "$name" ] || [ -e "$name" ] -do - read -r name - if [ -e "$name" ]; then - prompt "Archive already exists, overwrite [y|N]: " - read -r ans - - if [ "$ans" = "y" ]; then - break - else - prompt "Archive name: " - fi - fi -done - -root="$(if [ "$(pwd)" = "/" ]; then pwd; else echo "$(pwd)/";fi)"; - -# fx contains all selected file name separated by a newline -while read -r raw_file; do - file="$(echo "$raw_file" | sed "s|$root||")"; - set -- "$@" "$file"; -done < "$(tmp echo "$fx")"; - -case "$(awk '{for (i=1; i<=NF; i++) print $i}' "$archivers" | fzf)" in - "gzip") - tar -czf "$name".tar.gz "$@" - ;; - "xz") - tar -cf "$name".tar "$@" - xz -z -9 -e -T0 "$name".tar - ;; - "7z") - 7z a "$name".7z "$@" - ;; - "zip") - zip --symlinks -r "$name".zip "$@" - ;; -esac -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/archive.sh b/hm/soispha/conf/lf/commands/scripts/archive.sh new file mode 100755 index 00000000..5f4e3792 --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/archive.sh @@ -0,0 +1,54 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +# Option '-f' disables pathname expansion which can be useful when $f, $fs, and +# $fx variables contain names with '*' or '?' characters. However, this option +# is used selectively within individual commands as it can be limiting at +# times. +set -f + +archivers="$(tmp echo gzip xz 7z zip)"; + +prompt "Archive name: " +name="" +while [ -z "$name" ] || [ -e "$name" ] +do + read -r name + if [ -e "$name" ]; then + prompt "Archive already exists, overwrite [y|N]: " + read -r ans + + if [ "$ans" = "y" ]; then + break + else + prompt "Archive name: " + fi + fi +done + +root="$(if [ "$(pwd)" = "/" ]; then pwd; else echo "$(pwd)/";fi)"; + +# fx contains all selected file name separated by a newline +while read -r raw_file; do + file="$(echo "$raw_file" | sed "s|$root||")"; + set -- "$@" "$file"; +done < "$(tmp echo "$fx")"; + +case "$(awk '{for (i=1; i<=NF; i++) print $i}' "$archivers" | fzf)" in + "gzip") + tar -czf "$name".tar.gz "$@" + ;; + "xz") + tar -cf "$name".tar "$@" + xz -z -9 -e -T0 "$name".tar + ;; + "7z") + 7z a "$name".7z "$@" + ;; + "zip") + zip --symlinks -r "$name".zip "$@" + ;; +esac +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/broot_jump b/hm/soispha/conf/lf/commands/scripts/broot_jump deleted file mode 100755 index 0feb5daf..00000000 --- a/hm/soispha/conf/lf/commands/scripts/broot_jump +++ /dev/null @@ -1,16 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -tmp=$(mktmp) -res="$(broot --outcmd "$tmp" && sed 's/cd //' "$tmp")" - -if [ -f "$res" ]; then - cmd="select" -elif [ -d "$res" ]; then - cmd="cd" -fi - -lf -remote "send '$id' '$cmd' '$res'" -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/broot_jump.sh b/hm/soispha/conf/lf/commands/scripts/broot_jump.sh new file mode 100755 index 00000000..0feb5daf --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/broot_jump.sh @@ -0,0 +1,16 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +tmp=$(mktmp) +res="$(broot --outcmd "$tmp" && sed 's/cd //' "$tmp")" + +if [ -f "$res" ]; then + cmd="select" +elif [ -d "$res" ]; then + cmd="cd" +fi + +lf -remote "send '$id' '$cmd' '$res'" +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/chmod b/hm/soispha/conf/lf/commands/scripts/chmod deleted file mode 100755 index f2cc0dc8..00000000 --- a/hm/soispha/conf/lf/commands/scripts/chmod +++ /dev/null @@ -1,13 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -readp "Mode bits: " bits - -while read -r file; do - chmod "$bits" "$file" -done < "$(tmp echo "$fx")" - -lf -remote 'send reload' -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/chmod.sh b/hm/soispha/conf/lf/commands/scripts/chmod.sh new file mode 100755 index 00000000..f2cc0dc8 --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/chmod.sh @@ -0,0 +1,13 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +readp "Mode bits: " bits + +while read -r file; do + chmod "$bits" "$file" +done < "$(tmp echo "$fx")" + +lf -remote 'send reload' +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/clear_trash b/hm/soispha/conf/lf/commands/scripts/clear_trash deleted file mode 100755 index f2ec5c5e..00000000 --- a/hm/soispha/conf/lf/commands/scripts/clear_trash +++ /dev/null @@ -1,8 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -# could also use --force, for instand removal -trash list | fzf --multi | awk '{print $NF}' | xargs trash empty --match=exact -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/clear_trash.sh b/hm/soispha/conf/lf/commands/scripts/clear_trash.sh new file mode 100755 index 00000000..f2ec5c5e --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/clear_trash.sh @@ -0,0 +1,8 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +# could also use --force, for instand removal +trash list | fzf --multi | awk '{print $NF}' | xargs trash empty --match=exact +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/cow_cp b/hm/soispha/conf/lf/commands/scripts/cow_cp deleted file mode 100755 index 85fd3431..00000000 --- a/hm/soispha/conf/lf/commands/scripts/cow_cp +++ /dev/null @@ -1,96 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -# source: https://github.com/gokcehan/lf/wiki/Tips#use-copy-on-write-when-possible -# -# # FIXME: Add this. The hardest part is in checking, if a file can be reflinked, as fuse and bind mount are hard to -# backtrack <2023-08-29> - -# # This was very helpful for debugging: -# log_file="$HOME/lf-reflink-log-$(date +'%Y-%m-%d_%H-%M-%S')" -# [ -f "$log_file" ] || touch "$log_file" -# exec 1>> $log_file 2>&1 -# set -x - -# In theory, this may fail, -# but I tested it on selection with 10k files - everything worked (bash) -# FIXME: This will very likely fail on dash, when the file number > 255 <2023-08-29> -set -- "$(cat ~/.local/share/lf/files)" - -mode="$1" -shift - -if [ "$mode" = 'copy' ]; then - # Reflink if all items of selection and the destination are on the - # same mount point and it is CoW fs. - # (to make sure reflink never fails in first place, so we don't have to - # clean up) - - src_targets="$(df --output=target -- "$@" | sed '1d' | sort -u)" - - if [ "$(df --output=target -- "$PWD" | tail -n 1)" = \ - "$(echo "$src_targets" | tail -n 1)" ] && \ - (( "$(echo "$src_targets" | wc -l)" == 1 )) && \ - [[ "$(df --output=fstype -- "$PWD" | tail -n 1)" =~ ^(btrfs|xfs|zfs)$ ]]; then - - echo 'selected copy and cp reflink paste' - - start=$(date '+%s') - - # Handle same names in dst - # TODO parallelism, idk - but exit/return/break won't stop the loop from subshell... - for i in "$@"; do - name="${i##*/}" - original="$name" - - count=0 - while [ -w "$PWD/$name" ]; do - count=$((count+1)) - name="$original.~$count~" - done - - set +e - cp_out="$(cp -rn --reflink=always -- "$i" "$PWD/$name" 2>&1)" - set -e - - if [ ! -z "$cp_out" ]; then - lf -remote "send $id echoerr $cp_out" - exit 0 - fi - done - - finish=$(( $(date '+%s') - $start )) - t='' - if (( $finish > 2 )); then - t="${finish}s" - fi - - # Or just skip a file when names are the same. - # (A LOT faster if you e.g. pasting selection of 10k files) - # cp -rn --reflink=always -- "$@" . - - lf -remote "send clear" - - green=$'\u001b[32m' - reset=$'\u001b[0m' - lf -remote "send $id echo ${green}reflinked!${reset} $t" - else - echo 'selected copy and lf native paste' - lf -remote "send $id paste" - lf -remote "send clear" - fi - - elif [ $mode = 'move' ]; then - echo 'selected move and lf native paste' - lf -remote "send $id paste" - lf -remote "send clear" - fi - -# # for debug -# set +x - -lf -remote "send load" - -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/cow_cp.sh b/hm/soispha/conf/lf/commands/scripts/cow_cp.sh new file mode 100755 index 00000000..85fd3431 --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/cow_cp.sh @@ -0,0 +1,96 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +# source: https://github.com/gokcehan/lf/wiki/Tips#use-copy-on-write-when-possible +# +# # FIXME: Add this. The hardest part is in checking, if a file can be reflinked, as fuse and bind mount are hard to +# backtrack <2023-08-29> + +# # This was very helpful for debugging: +# log_file="$HOME/lf-reflink-log-$(date +'%Y-%m-%d_%H-%M-%S')" +# [ -f "$log_file" ] || touch "$log_file" +# exec 1>> $log_file 2>&1 +# set -x + +# In theory, this may fail, +# but I tested it on selection with 10k files - everything worked (bash) +# FIXME: This will very likely fail on dash, when the file number > 255 <2023-08-29> +set -- "$(cat ~/.local/share/lf/files)" + +mode="$1" +shift + +if [ "$mode" = 'copy' ]; then + # Reflink if all items of selection and the destination are on the + # same mount point and it is CoW fs. + # (to make sure reflink never fails in first place, so we don't have to + # clean up) + + src_targets="$(df --output=target -- "$@" | sed '1d' | sort -u)" + + if [ "$(df --output=target -- "$PWD" | tail -n 1)" = \ + "$(echo "$src_targets" | tail -n 1)" ] && \ + (( "$(echo "$src_targets" | wc -l)" == 1 )) && \ + [[ "$(df --output=fstype -- "$PWD" | tail -n 1)" =~ ^(btrfs|xfs|zfs)$ ]]; then + + echo 'selected copy and cp reflink paste' + + start=$(date '+%s') + + # Handle same names in dst + # TODO parallelism, idk - but exit/return/break won't stop the loop from subshell... + for i in "$@"; do + name="${i##*/}" + original="$name" + + count=0 + while [ -w "$PWD/$name" ]; do + count=$((count+1)) + name="$original.~$count~" + done + + set +e + cp_out="$(cp -rn --reflink=always -- "$i" "$PWD/$name" 2>&1)" + set -e + + if [ ! -z "$cp_out" ]; then + lf -remote "send $id echoerr $cp_out" + exit 0 + fi + done + + finish=$(( $(date '+%s') - $start )) + t='' + if (( $finish > 2 )); then + t="${finish}s" + fi + + # Or just skip a file when names are the same. + # (A LOT faster if you e.g. pasting selection of 10k files) + # cp -rn --reflink=always -- "$@" . + + lf -remote "send clear" + + green=$'\u001b[32m' + reset=$'\u001b[0m' + lf -remote "send $id echo ${green}reflinked!${reset} $t" + else + echo 'selected copy and lf native paste' + lf -remote "send $id paste" + lf -remote "send clear" + fi + + elif [ $mode = 'move' ]; then + echo 'selected move and lf native paste' + lf -remote "send $id paste" + lf -remote "send clear" + fi + +# # for debug +# set +x + +lf -remote "send load" + +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/dl_file b/hm/soispha/conf/lf/commands/scripts/dl_file deleted file mode 100755 index 5092174f..00000000 --- a/hm/soispha/conf/lf/commands/scripts/dl_file +++ /dev/null @@ -1,33 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -# Provides the ability to download a file by dropping it into a window - -url="$(dragon -t -x)" - -if [ -n "$url" ]; then - prompt "File Name: " - name="" - while [ -z "$name" ] || [ -e "$name" ] - do - read -r name - if [ -e "$name" ]; then - prompt "File already exists, overwrite [y|N]: " - read -r ans - - if [ "$ans" = "y" ]; then - break - else - prompt "File Name: " - fi - fi - done - - # Download the file with curl - [ -n "$name" ] && curl -o "$name" "$url" || die "curl failed" -else - die "URL is null!" -fi -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/dl_file.sh b/hm/soispha/conf/lf/commands/scripts/dl_file.sh new file mode 100755 index 00000000..5092174f --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/dl_file.sh @@ -0,0 +1,33 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +# Provides the ability to download a file by dropping it into a window + +url="$(dragon -t -x)" + +if [ -n "$url" ]; then + prompt "File Name: " + name="" + while [ -z "$name" ] || [ -e "$name" ] + do + read -r name + if [ -e "$name" ]; then + prompt "File already exists, overwrite [y|N]: " + read -r ans + + if [ "$ans" = "y" ]; then + break + else + prompt "File Name: " + fi + fi + done + + # Download the file with curl + [ -n "$name" ] && curl -o "$name" "$url" || die "curl failed" +else + die "URL is null!" +fi +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/dragon b/hm/soispha/conf/lf/commands/scripts/dragon deleted file mode 100755 index 59a50920..00000000 --- a/hm/soispha/conf/lf/commands/scripts/dragon +++ /dev/null @@ -1,11 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -while read -r file; do - set -- "$@" "$file" -done < "$(tmp echo "$fx")" - -dragon -a -x "$@" -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/dragon.sh b/hm/soispha/conf/lf/commands/scripts/dragon.sh new file mode 100755 index 00000000..59a50920 --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/dragon.sh @@ -0,0 +1,11 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +while read -r file; do + set -- "$@" "$file" +done < "$(tmp echo "$fx")" + +dragon -a -x "$@" +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/dragon_individual b/hm/soispha/conf/lf/commands/scripts/dragon_individual deleted file mode 100755 index 051537f9..00000000 --- a/hm/soispha/conf/lf/commands/scripts/dragon_individual +++ /dev/null @@ -1,11 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -while read -r file; do - set -- "$@" "$file" -done < "$(tmp echo "$fx")" - -dragon "$@" -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/dragon_individual.sh b/hm/soispha/conf/lf/commands/scripts/dragon_individual.sh new file mode 100755 index 00000000..051537f9 --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/dragon_individual.sh @@ -0,0 +1,11 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +while read -r file; do + set -- "$@" "$file" +done < "$(tmp echo "$fx")" + +dragon "$@" +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/dragon_stay b/hm/soispha/conf/lf/commands/scripts/dragon_stay deleted file mode 100755 index 8f880848..00000000 --- a/hm/soispha/conf/lf/commands/scripts/dragon_stay +++ /dev/null @@ -1,11 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -while read -r file; do - set -- "$@" "$file"; -done < "$(tmp echo "$fx")" - -dragon -a "$@" -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/dragon_stay.sh b/hm/soispha/conf/lf/commands/scripts/dragon_stay.sh new file mode 100755 index 00000000..8f880848 --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/dragon_stay.sh @@ -0,0 +1,11 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +while read -r file; do + set -- "$@" "$file"; +done < "$(tmp echo "$fx")" + +dragon -a "$@" +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/fzf_jump b/hm/soispha/conf/lf/commands/scripts/fzf_jump deleted file mode 100755 index 172c44d3..00000000 --- a/hm/soispha/conf/lf/commands/scripts/fzf_jump +++ /dev/null @@ -1,16 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -res="$(fd . --maxdepth 3 | fzf --header='Jump to location')" - -if [ -f "$res" ]; then - cmd="select" -elif [ -d "$res" ]; then - cmd="cd" -fi - - -lf -remote "send $id $cmd \"$res\"" -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/fzf_jump.sh b/hm/soispha/conf/lf/commands/scripts/fzf_jump.sh new file mode 100755 index 00000000..172c44d3 --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/fzf_jump.sh @@ -0,0 +1,16 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +res="$(fd . --maxdepth 3 | fzf --header='Jump to location')" + +if [ -f "$res" ]; then + cmd="select" +elif [ -d "$res" ]; then + cmd="cd" +fi + + +lf -remote "send $id $cmd \"$res\"" +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/go_project_root b/hm/soispha/conf/lf/commands/scripts/go_project_root deleted file mode 100755 index 9ed9f7ad..00000000 --- a/hm/soispha/conf/lf/commands/scripts/go_project_root +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -flake_base_dir="$(search_flake_base_dir)"; -if [ "$flake_base_dir" ]; then - lf -remote "send $id cd $flake_base_dir" || die "Bug: No base dir ($flake_base_dir)" -else - die "Unable to locate base dir"; -fi - -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/go_project_root.sh b/hm/soispha/conf/lf/commands/scripts/go_project_root.sh new file mode 100755 index 00000000..9ed9f7ad --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/go_project_root.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +flake_base_dir="$(search_flake_base_dir)"; +if [ "$flake_base_dir" ]; then + lf -remote "send $id cd $flake_base_dir" || die "Bug: No base dir ($flake_base_dir)" +else + die "Unable to locate base dir"; +fi + +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/mk_dir b/hm/soispha/conf/lf/commands/scripts/mk_dir deleted file mode 100755 index adf60d99..00000000 --- a/hm/soispha/conf/lf/commands/scripts/mk_dir +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -prompt "Directory Name: " -name="" -while [ -z "$name" ] || [ -e "$name" ] -do - read -r name - if [ -e "$name" ]; then - prompt "Directory already exists, overwrite [y|N]: " - read -r ans - - if [ "$ans" = "y" ]; then - break - else - prompt "Directory Name: " - fi - fi -done - -mkdir "$name" -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/mk_dir.sh b/hm/soispha/conf/lf/commands/scripts/mk_dir.sh new file mode 100755 index 00000000..adf60d99 --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/mk_dir.sh @@ -0,0 +1,24 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +prompt "Directory Name: " +name="" +while [ -z "$name" ] || [ -e "$name" ] +do + read -r name + if [ -e "$name" ]; then + prompt "Directory already exists, overwrite [y|N]: " + read -r ans + + if [ "$ans" = "y" ]; then + break + else + prompt "Directory Name: " + fi + fi +done + +mkdir "$name" +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/mk_file b/hm/soispha/conf/lf/commands/scripts/mk_file deleted file mode 100755 index cdef38a0..00000000 --- a/hm/soispha/conf/lf/commands/scripts/mk_file +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -prompt "File name: " -name="" -while [ -z "$name" ] || [ -e "$name" ] -do - read -r name - if [ -e "$name" ]; then - prompt "File already exists, overwrite [y|N]: " - read -r ans - - if [ "$ans" = "y" ]; then - break - else - prompt "File name: " - fi - fi -done - -touch "$name" -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/mk_file.sh b/hm/soispha/conf/lf/commands/scripts/mk_file.sh new file mode 100755 index 00000000..cdef38a0 --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/mk_file.sh @@ -0,0 +1,24 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +prompt "File name: " +name="" +while [ -z "$name" ] || [ -e "$name" ] +do + read -r name + if [ -e "$name" ]; then + prompt "File already exists, overwrite [y|N]: " + read -r ans + + if [ "$ans" = "y" ]; then + break + else + prompt "File name: " + fi + fi +done + +touch "$name" +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/mk_file_and_edit b/hm/soispha/conf/lf/commands/scripts/mk_file_and_edit deleted file mode 100755 index 662b29ac..00000000 --- a/hm/soispha/conf/lf/commands/scripts/mk_file_and_edit +++ /dev/null @@ -1,25 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -prompt "File name: " -name="" -while [ -z "$name" ] || [ -e "$name" ] -do - read -r name - if [ -e "$name" ]; then - prompt "File already exists, overwrite [y|N]: " - read -r ans - - if [ "$ans" = "y" ]; then - break - else - prompt "File name: " - fi - fi -done - -touch "$name" -"$EDITOR" "$name" -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/mk_file_and_edit.sh b/hm/soispha/conf/lf/commands/scripts/mk_file_and_edit.sh new file mode 100755 index 00000000..662b29ac --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/mk_file_and_edit.sh @@ -0,0 +1,25 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +prompt "File name: " +name="" +while [ -z "$name" ] || [ -e "$name" ] +do + read -r name + if [ -e "$name" ]; then + prompt "File already exists, overwrite [y|N]: " + read -r ans + + if [ "$ans" = "y" ]; then + break + else + prompt "File name: " + fi + fi +done + +touch "$name" +"$EDITOR" "$name" +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/mk_ln b/hm/soispha/conf/lf/commands/scripts/mk_ln deleted file mode 100755 index f5dcd395..00000000 --- a/hm/soispha/conf/lf/commands/scripts/mk_ln +++ /dev/null @@ -1,36 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -while IFS= read -r i;do - set -- "$@" "$i" -done < "$HOME"/.local/share/lf/files - -mode="$1" -shift - -if [ "$#" -eq 0 ]; then - msg "no files to link" - exit 0 -fi - -case "$mode" in - copy) - while [ "$#" -gt 0 ]; do - file="$1" - ans="$(basename "$file")" - - while [ -e "$ans" ];do - prompt "$ans already exists, new name for link: " - read -r ans - done - - ln -s "$file" "$(pwd)/$ans" - shift - done - ;; -esac -rm ~/.local/share/lf/files -# lf -remote "send clear" -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/mk_ln.sh b/hm/soispha/conf/lf/commands/scripts/mk_ln.sh new file mode 100755 index 00000000..f5dcd395 --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/mk_ln.sh @@ -0,0 +1,36 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +while IFS= read -r i;do + set -- "$@" "$i" +done < "$HOME"/.local/share/lf/files + +mode="$1" +shift + +if [ "$#" -eq 0 ]; then + msg "no files to link" + exit 0 +fi + +case "$mode" in + copy) + while [ "$#" -gt 0 ]; do + file="$1" + ans="$(basename "$file")" + + while [ -e "$ans" ];do + prompt "$ans already exists, new name for link: " + read -r ans + done + + ln -s "$file" "$(pwd)/$ans" + shift + done + ;; +esac +rm ~/.local/share/lf/files +# lf -remote "send clear" +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/mk_scr_default b/hm/soispha/conf/lf/commands/scripts/mk_scr_default deleted file mode 100755 index 6e69fc4f..00000000 --- a/hm/soispha/conf/lf/commands/scripts/mk_scr_default +++ /dev/null @@ -1,31 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - - -prompt "Script name: " -name="" -while [ -z "$name" ] || [ -e "$name" ] -do - read -r name - if [ -e "$name" ]; then - prompt "Script already exists, overwrite [y|N]: " - read -r ans - - if [ "$ans" = "y" ]; then - break - else - prompt "Script Name: " - fi - fi -done - -script="$(pwd)"/"$name" - -cat "%SHELL_LIBRARY_TEMPLATE" > "$script" -chmod +x "$script" -"$VISUAL" "$script" - - -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/mk_scr_default.sh b/hm/soispha/conf/lf/commands/scripts/mk_scr_default.sh new file mode 100755 index 00000000..6e69fc4f --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/mk_scr_default.sh @@ -0,0 +1,31 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + + +prompt "Script name: " +name="" +while [ -z "$name" ] || [ -e "$name" ] +do + read -r name + if [ -e "$name" ]; then + prompt "Script already exists, overwrite [y|N]: " + read -r ans + + if [ "$ans" = "y" ]; then + break + else + prompt "Script Name: " + fi + fi +done + +script="$(pwd)"/"$name" + +cat "%SHELL_LIBRARY_TEMPLATE" > "$script" +chmod +x "$script" +"$VISUAL" "$script" + + +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/mk_scr_temp b/hm/soispha/conf/lf/commands/scripts/mk_scr_temp deleted file mode 100755 index 612ff19d..00000000 --- a/hm/soispha/conf/lf/commands/scripts/mk_scr_temp +++ /dev/null @@ -1,32 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - - -prompt "Script name: " -name="" -while [ -z "$name" ] || [ -e "$name" ] -do - read -r name - if [ -e "$name" ]; then - prompt "Script already exists, overwrite [y|N]: " - read -r ans - - if [ "$ans" = "y" ]; then - break - else - prompt "Script Name: " - fi - fi -done - -script="$(pwd)"/"$name" - -sed 's|%TO_BE_SHELL_LIBRARY_PATH|%SHELL_LIBRARY_PATH|' "%SHELL_LIBRARY_TEMPLATE" > "$script" -sed -i 's|dash|sh|' "$script" -chmod +x "$script" -"$VISUAL" "$script" - - -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/mk_scr_temp.sh b/hm/soispha/conf/lf/commands/scripts/mk_scr_temp.sh new file mode 100755 index 00000000..612ff19d --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/mk_scr_temp.sh @@ -0,0 +1,32 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + + +prompt "Script name: " +name="" +while [ -z "$name" ] || [ -e "$name" ] +do + read -r name + if [ -e "$name" ]; then + prompt "Script already exists, overwrite [y|N]: " + read -r ans + + if [ "$ans" = "y" ]; then + break + else + prompt "Script Name: " + fi + fi +done + +script="$(pwd)"/"$name" + +sed 's|%TO_BE_SHELL_LIBRARY_PATH|%SHELL_LIBRARY_PATH|' "%SHELL_LIBRARY_TEMPLATE" > "$script" +sed -i 's|dash|sh|' "$script" +chmod +x "$script" +"$VISUAL" "$script" + + +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/open b/hm/soispha/conf/lf/commands/scripts/open deleted file mode 100755 index 3dd8f485..00000000 --- a/hm/soispha/conf/lf/commands/scripts/open +++ /dev/null @@ -1,11 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -case $(file --mime-type "$f" -bL) in - text/*|application/json|application/vnd.hp-HPGL) "$EDITOR" "$f";; - image/*) "$IVIEWER" "$f";; - *) xdg-open "$f";; -esac -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/open.sh b/hm/soispha/conf/lf/commands/scripts/open.sh new file mode 100755 index 00000000..3dd8f485 --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/open.sh @@ -0,0 +1,11 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +case $(file --mime-type "$f" -bL) in + text/*|application/json|application/vnd.hp-HPGL) "$EDITOR" "$f";; + image/*) "$IVIEWER" "$f";; + *) xdg-open "$f";; +esac +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/open_config b/hm/soispha/conf/lf/commands/scripts/open_config deleted file mode 100755 index 4054abdd..00000000 --- a/hm/soispha/conf/lf/commands/scripts/open_config +++ /dev/null @@ -1,7 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -"$EDITOR" "$(bookmenu -b ~/.config/bookmenu/configs -f fzf -o)" # TODO: implement this -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/open_config.sh b/hm/soispha/conf/lf/commands/scripts/open_config.sh new file mode 100755 index 00000000..4054abdd --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/open_config.sh @@ -0,0 +1,7 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +"$EDITOR" "$(bookmenu -b ~/.config/bookmenu/configs -f fzf -o)" # TODO: implement this +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/restore_trash b/hm/soispha/conf/lf/commands/scripts/restore_trash deleted file mode 100755 index 94d26a26..00000000 --- a/hm/soispha/conf/lf/commands/scripts/restore_trash +++ /dev/null @@ -1,7 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -trash list | fzf --multi | awk '{print $NF}' | xargs trash restore --match=exact -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/restore_trash.sh b/hm/soispha/conf/lf/commands/scripts/restore_trash.sh new file mode 100755 index 00000000..94d26a26 --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/restore_trash.sh @@ -0,0 +1,7 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +trash list | fzf --multi | awk '{print $NF}' | xargs trash restore --match=exact +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/set_wall_paper b/hm/soispha/conf/lf/commands/scripts/set_wall_paper deleted file mode 100755 index f7714880..00000000 --- a/hm/soispha/conf/lf/commands/scripts/set_wall_paper +++ /dev/null @@ -1,10 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -die "No yet implemented" # TODO: do what the 'die' says -#sed -i "s,export AWMWALLPAPER='.*',export AWMWALLPAPER='${f}'," ${ZDOTDIR}/.zshenv -#nohub swaybg -i "$f" -#feh --bg-max --no-fehbg "$f" -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/set_wall_paper.sh b/hm/soispha/conf/lf/commands/scripts/set_wall_paper.sh new file mode 100755 index 00000000..f7714880 --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/set_wall_paper.sh @@ -0,0 +1,10 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +die "No yet implemented" # TODO: do what the 'die' says +#sed -i "s,export AWMWALLPAPER='.*',export AWMWALLPAPER='${f}'," ${ZDOTDIR}/.zshenv +#nohub swaybg -i "$f" +#feh --bg-max --no-fehbg "$f" +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/stripspace b/hm/soispha/conf/lf/commands/scripts/stripspace deleted file mode 100755 index c8781a60..00000000 --- a/hm/soispha/conf/lf/commands/scripts/stripspace +++ /dev/null @@ -1,31 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -files=$(mktmp); -echo "$fx" > "$files"; - -awk_source=$(mktmp); -cat << OFT > "$awk_source" -BEGIN {FS=" "} -{for (i=1; i != NF + 1; i++) - if (i == NF) { - parts[i]=tolower(\$i); - } else { - parts[i]=tolower(\$i"_"); - } -} -END {for (i in parts) printf parts[i]} -OFT - -while read -r file; do - dirty_name=$(mktmp) - basename "$file" > "$dirty_name"; - clean_name=$(awk -f "$awk_source" "$dirty_name"); - - [ -e "$clean_name" ] && die "file \"$clean_name\" already exists!"; - mv "$(cat "$dirty_name")" "$clean_name" || die "Move failed"; - lf -remote 'send reload' -done < "$files"; -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/stripspace.sh b/hm/soispha/conf/lf/commands/scripts/stripspace.sh new file mode 100755 index 00000000..c8781a60 --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/stripspace.sh @@ -0,0 +1,31 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +files=$(mktmp); +echo "$fx" > "$files"; + +awk_source=$(mktmp); +cat << OFT > "$awk_source" +BEGIN {FS=" "} +{for (i=1; i != NF + 1; i++) + if (i == NF) { + parts[i]=tolower(\$i); + } else { + parts[i]=tolower(\$i"_"); + } +} +END {for (i in parts) printf parts[i]} +OFT + +while read -r file; do + dirty_name=$(mktmp) + basename "$file" > "$dirty_name"; + clean_name=$(awk -f "$awk_source" "$dirty_name"); + + [ -e "$clean_name" ] && die "file \"$clean_name\" already exists!"; + mv "$(cat "$dirty_name")" "$clean_name" || die "Move failed"; + lf -remote 'send reload' +done < "$files"; +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/trash b/hm/soispha/conf/lf/commands/scripts/trash deleted file mode 100755 index 4da188e5..00000000 --- a/hm/soispha/conf/lf/commands/scripts/trash +++ /dev/null @@ -1,28 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -trash_output=$(mktmp); -expected_error_output=$(mktmp); - -while read -r file; do - set -- "$@" "$file" -done < "$(tmp echo "$fx")" - -# TODO: why are we using trashy at all, when trash-cli can do everything? -# -# try trashy first, through nix because both trashy and trash-cli provide a trash command, which conflicts -nix run nixpkgs#trashy -- put "$@" 2> "$trash_output"; - -# FIXME: Find a way, that does not depend on parsing an error message <2023-08-29> -cat << EOF > "$expected_error_output"; -error: Error during a \`trash\` operation: Unknown { description: "Path: '\"/.Trash-1000\"'. Message: Permission denied (os error 13)" } -EOF - -if [ "$(cat "$expected_error_output")" = "$(cat "$trash_output")" ];then - warning "Deleting with trash-cli to the /.Trash folder"; - # this file could not be trashed because it is on the tempfs volume, trash-cli can do this this - trash-put "$@"; -fi -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/trash.sh b/hm/soispha/conf/lf/commands/scripts/trash.sh new file mode 100755 index 00000000..4da188e5 --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/trash.sh @@ -0,0 +1,28 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +trash_output=$(mktmp); +expected_error_output=$(mktmp); + +while read -r file; do + set -- "$@" "$file" +done < "$(tmp echo "$fx")" + +# TODO: why are we using trashy at all, when trash-cli can do everything? +# +# try trashy first, through nix because both trashy and trash-cli provide a trash command, which conflicts +nix run nixpkgs#trashy -- put "$@" 2> "$trash_output"; + +# FIXME: Find a way, that does not depend on parsing an error message <2023-08-29> +cat << EOF > "$expected_error_output"; +error: Error during a \`trash\` operation: Unknown { description: "Path: '\"/.Trash-1000\"'. Message: Permission denied (os error 13)" } +EOF + +if [ "$(cat "$expected_error_output")" = "$(cat "$trash_output")" ];then + warning "Deleting with trash-cli to the /.Trash folder"; + # this file could not be trashed because it is on the tempfs volume, trash-cli can do this this + trash-put "$@"; +fi +# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/unarchive b/hm/soispha/conf/lf/commands/scripts/unarchive deleted file mode 100755 index 1ecc702b..00000000 --- a/hm/soispha/conf/lf/commands/scripts/unarchive +++ /dev/null @@ -1,22 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -# extract the current file with the right command -# (xkcd link: https://xkcd.com/1168/) -set -f -# TODO: add support for multiple files at once -case "$f" in - *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf "$f";; - *.tar.gz|*.tgz) tar xzvf "$f";; - *.tar.xz|*.txz) tar xJvf "$f";; - *.zip) unzip "$f";; - *.rar) - die "rar is a unfree format!" - #unrar x $f - ;; - *.7z) 7z x "$f";; - *) die "Unsupported format" ;; -esac -# vim: ft=sh diff --git a/hm/soispha/conf/lf/commands/scripts/unarchive.sh b/hm/soispha/conf/lf/commands/scripts/unarchive.sh new file mode 100755 index 00000000..1ecc702b --- /dev/null +++ b/hm/soispha/conf/lf/commands/scripts/unarchive.sh @@ -0,0 +1,22 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +# extract the current file with the right command +# (xkcd link: https://xkcd.com/1168/) +set -f +# TODO: add support for multiple files at once +case "$f" in + *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf "$f";; + *.tar.gz|*.tgz) tar xzvf "$f";; + *.tar.xz|*.txz) tar xJvf "$f";; + *.zip) unzip "$f";; + *.rar) + die "rar is a unfree format!" + #unrar x $f + ;; + *.7z) 7z x "$f";; + *) die "Unsupported format" ;; +esac +# vim: ft=sh diff --git a/hm/soispha/conf/xdg/default.nix b/hm/soispha/conf/xdg/default.nix index be85f330..8327ea6e 100644 --- a/hm/soispha/conf/xdg/default.nix +++ b/hm/soispha/conf/xdg/default.nix @@ -6,7 +6,7 @@ }: let url_handler = sysLib.writeShellScript { name = "url_handler"; - src = ./url_handler; + src = ./url_handler.sh; keepPath = true; # Naming dependencies for this will be difficult, as it depend on overridden packages. dependencies = with pkgs; [ diff --git a/hm/soispha/conf/xdg/url_handler b/hm/soispha/conf/xdg/url_handler deleted file mode 100755 index 9cca2fc0..00000000 --- a/hm/soispha/conf/xdg/url_handler +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - - -project="$(echo "%ALL_PROJECTS_PIPE|nvim|zathura|" | rofi -sep "|" -dmenu)"; - -if [ "$project" = "nvim" ]; then - "$TERMINAL" -e nvim "$1" -elif [ "$project" = "zathura" ]; then - zathura "$1" -elif [ "$project" ]; then - firefox -P "$project" "$1"; -else - notify-send "(URL HANDLER) No project selected" && exit 1 -fi - - -# vim: ft=sh diff --git a/hm/soispha/conf/xdg/url_handler.sh b/hm/soispha/conf/xdg/url_handler.sh new file mode 100755 index 00000000..9cca2fc0 --- /dev/null +++ b/hm/soispha/conf/xdg/url_handler.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + + +project="$(echo "%ALL_PROJECTS_PIPE|nvim|zathura|" | rofi -sep "|" -dmenu)"; + +if [ "$project" = "nvim" ]; then + "$TERMINAL" -e nvim "$1" +elif [ "$project" = "zathura" ]; then + zathura "$1" +elif [ "$project" ]; then + firefox -P "$project" "$1"; +else + notify-send "(URL HANDLER) No project selected" && exit 1 +fi + + +# vim: ft=sh diff --git a/hm/soispha/conf/yambar/default.nix b/hm/soispha/conf/yambar/default.nix index abc0c85e..f732e1d8 100644 --- a/hm/soispha/conf/yambar/default.nix +++ b/hm/soispha/conf/yambar/default.nix @@ -8,16 +8,16 @@ ... }: let makeScript = { - file, + name, dependencies, ... }: sysLib.writeShellScript { - name = "${builtins.baseNameOf file}"; - src = file; + inherit name; + src = ./scripts/${name}.sh; dependencies = dependencies ++ (builtins.attrValues {inherit (pkgs) dash;}); } - + "/bin/${builtins.baseNameOf file}"; + + "/bin/${name}"; in { xdg.configFile."yambar/config.yml".source = pkgs.substituteAll { src = @@ -32,12 +32,12 @@ in { mpd_song_name_script = makeScript { dependencies = builtins.attrValues {inherit (pkgs) mpc-cli;}; - file = ./scripts/mpd_song_name; + name = "mpd_song_name"; }; volume_script = makeScript { dependencies = builtins.attrValues {inherit (pkgs) pulseaudio gawk coreutils;}; - file = ./scripts/sound-volume; + name = "sound-volume"; }; # grade_average_script = makeScript { @@ -46,7 +46,7 @@ in { # grades.outputs.packages.${system}.default # ] # ++ (builtins.attrValues {inherit (pkgs) coreutils gawk;}); - # file = ./scripts/grades-average; + # name = "grades-average"; # }; cpu_script = yambar_cpu.app.${system}.default.program; @@ -55,7 +55,7 @@ in { disk_script = makeScript { dependencies = builtins.attrValues {inherit (pkgs) gawk btrfs-progs coreutils;}; - file = ./scripts/disk; + name = "disk"; }; }; } diff --git a/hm/soispha/conf/yambar/scripts/disk b/hm/soispha/conf/yambar/scripts/disk deleted file mode 100755 index 003455ab..00000000 --- a/hm/soispha/conf/yambar/scripts/disk +++ /dev/null @@ -1,22 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -# Main loop -while true; do - # vars - used_space=$(btrfs filesystem usage /srv 2> /dev/null | awk '{if ( /Used:/ ) { print $2 } } ' | head -n1) - all_space=$(btrfs filesystem usage /srv 2> /dev/null | awk '{if ( /Device size:/ ) { print $3 } } ' | head -n1 | tr -d "GiB") - - - # Check space available (4) and percentage used (5) - spaceperc=$(echo "$(echo "$used_space" | tr -d "GiB" )" "$all_space" | awk '{div=$1/$2;div *= 100; printf"%2d%%\n",div }') - - echo "diskspace|string|$used_space" - echo "diskperc|string|$spaceperc" - echo "" - sleep 1 -done - -# vim: ft=sh diff --git a/hm/soispha/conf/yambar/scripts/disk.sh b/hm/soispha/conf/yambar/scripts/disk.sh new file mode 100755 index 00000000..003455ab --- /dev/null +++ b/hm/soispha/conf/yambar/scripts/disk.sh @@ -0,0 +1,22 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +# Main loop +while true; do + # vars + used_space=$(btrfs filesystem usage /srv 2> /dev/null | awk '{if ( /Used:/ ) { print $2 } } ' | head -n1) + all_space=$(btrfs filesystem usage /srv 2> /dev/null | awk '{if ( /Device size:/ ) { print $3 } } ' | head -n1 | tr -d "GiB") + + + # Check space available (4) and percentage used (5) + spaceperc=$(echo "$(echo "$used_space" | tr -d "GiB" )" "$all_space" | awk '{div=$1/$2;div *= 100; printf"%2d%%\n",div }') + + echo "diskspace|string|$used_space" + echo "diskperc|string|$spaceperc" + echo "" + sleep 1 +done + +# vim: ft=sh diff --git a/hm/soispha/conf/yambar/scripts/grades-average b/hm/soispha/conf/yambar/scripts/grades-average deleted file mode 100755 index 8c1900cf..00000000 --- a/hm/soispha/conf/yambar/scripts/grades-average +++ /dev/null @@ -1,15 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -while true; do - grade="$(grades list average | awk '{print $2}')"; - - echo "grade|string|$grade"; - echo ""; - - sleep 1; -done - -# vim: ft=sh diff --git a/hm/soispha/conf/yambar/scripts/grades-average.sh b/hm/soispha/conf/yambar/scripts/grades-average.sh new file mode 100755 index 00000000..8c1900cf --- /dev/null +++ b/hm/soispha/conf/yambar/scripts/grades-average.sh @@ -0,0 +1,15 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +while true; do + grade="$(grades list average | awk '{print $2}')"; + + echo "grade|string|$grade"; + echo ""; + + sleep 1; +done + +# vim: ft=sh diff --git a/hm/soispha/conf/yambar/scripts/mpd_song_name b/hm/soispha/conf/yambar/scripts/mpd_song_name deleted file mode 100755 index b778afbc..00000000 --- a/hm/soispha/conf/yambar/scripts/mpd_song_name +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - - -while true; do - state="$(mpc status '%state%')"; - - if [ "$state" = "playing" ]; then - song="$(mpc --format '[[%artist% - ]%title%]|[%file%]' current)"; - echo "playing|bool|true" - echo "song|string|$song" - else - echo "playing|bool|false" - fi - echo "" # commit - - sleep 2; -done - -# vim: ft=sh diff --git a/hm/soispha/conf/yambar/scripts/mpd_song_name.sh b/hm/soispha/conf/yambar/scripts/mpd_song_name.sh new file mode 100755 index 00000000..b778afbc --- /dev/null +++ b/hm/soispha/conf/yambar/scripts/mpd_song_name.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + + +while true; do + state="$(mpc status '%state%')"; + + if [ "$state" = "playing" ]; then + song="$(mpc --format '[[%artist% - ]%title%]|[%file%]' current)"; + echo "playing|bool|true" + echo "song|string|$song" + else + echo "playing|bool|false" + fi + echo "" # commit + + sleep 2; +done + +# vim: ft=sh diff --git a/hm/soispha/conf/yambar/scripts/network b/hm/soispha/conf/yambar/scripts/network deleted file mode 100755 index 717ea6be..00000000 --- a/hm/soispha/conf/yambar/scripts/network +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -retest=120 -retest_if_con_fails=10 -backend=nmcli - -case "$backend" in - "nmcli") # Test for connectivity with nmcli - while true; do - connection_status=$(nmcli networking connectivity) - if [ "$connection_status" = "full" ]; then - echo "internet|string|Connected" - echo "" - sleep $retest - else - echo "internet|string|Disconnected" - echo "" - sleep $retest_if_con_fails - fi - done - ;; - "ping") # Test for connectivity with ping - ip_address='8.8.8.8' - ping_number=3 - - while true; do - - ping_result=$(mktmp) - ping $ip_address -c $ping_number -q | awk 'BEGIN {FS="/"} END {print $5}' > "$ping_result" - - if [ "$(cat "$ping_result" | wc -l)" -eq 0 ]; then - echo "med|string|No connection" - echo "" - sleep $retest_if_con_fails - else - echo "med|string|$(cat "$ping_result") ms" - echo "" - sleep $retest - fi - done - ;; -esac - -# vim: ft=sh diff --git a/hm/soispha/conf/yambar/scripts/network.sh b/hm/soispha/conf/yambar/scripts/network.sh new file mode 100755 index 00000000..717ea6be --- /dev/null +++ b/hm/soispha/conf/yambar/scripts/network.sh @@ -0,0 +1,47 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +retest=120 +retest_if_con_fails=10 +backend=nmcli + +case "$backend" in + "nmcli") # Test for connectivity with nmcli + while true; do + connection_status=$(nmcli networking connectivity) + if [ "$connection_status" = "full" ]; then + echo "internet|string|Connected" + echo "" + sleep $retest + else + echo "internet|string|Disconnected" + echo "" + sleep $retest_if_con_fails + fi + done + ;; + "ping") # Test for connectivity with ping + ip_address='8.8.8.8' + ping_number=3 + + while true; do + + ping_result=$(mktmp) + ping $ip_address -c $ping_number -q | awk 'BEGIN {FS="/"} END {print $5}' > "$ping_result" + + if [ "$(cat "$ping_result" | wc -l)" -eq 0 ]; then + echo "med|string|No connection" + echo "" + sleep $retest_if_con_fails + else + echo "med|string|$(cat "$ping_result") ms" + echo "" + sleep $retest + fi + done + ;; +esac + +# vim: ft=sh diff --git a/hm/soispha/conf/yambar/scripts/old/amixer-monitor b/hm/soispha/conf/yambar/scripts/old/amixer-monitor deleted file mode 100755 index 9e75acfa..00000000 --- a/hm/soispha/conf/yambar/scripts/old/amixer-monitor +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -# An improved amixer script that actually detects volume beyond 100% - - -SLEEPTIME=1 - - -while true; do - - volume=$(pactl get-sink-volume 0 | awk 'BEGIN { FS="/"} {print $2 }' | tr -d "%" | tr -d ' ') - - if [ "$volume" -eq 0 ]; then - echo "muted|bool|true" - - else - # Read sink volume in percentages - echo "volume|string|$volume" - echo "muted|bool|false" - fi - - echo "" - sleep "$SLEEPTIME" - -done diff --git a/hm/soispha/conf/yambar/scripts/old/amixer-monitor.sh b/hm/soispha/conf/yambar/scripts/old/amixer-monitor.sh new file mode 100755 index 00000000..9e75acfa --- /dev/null +++ b/hm/soispha/conf/yambar/scripts/old/amixer-monitor.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# An improved amixer script that actually detects volume beyond 100% + + +SLEEPTIME=1 + + +while true; do + + volume=$(pactl get-sink-volume 0 | awk 'BEGIN { FS="/"} {print $2 }' | tr -d "%" | tr -d ' ') + + if [ "$volume" -eq 0 ]; then + echo "muted|bool|true" + + else + # Read sink volume in percentages + echo "volume|string|$volume" + echo "muted|bool|false" + fi + + echo "" + sleep "$SLEEPTIME" + +done diff --git a/hm/soispha/conf/yambar/scripts/old/cpu b/hm/soispha/conf/yambar/scripts/old/cpu deleted file mode 100755 index bae820d0..00000000 --- a/hm/soispha/conf/yambar/scripts/old/cpu +++ /dev/null @@ -1,126 +0,0 @@ -#!/bin/bash -# I didn't write this script; this is almost directly copied from the dnkl/yambar github. - - -# cpu.sh - measures CPU usage at a configurable sample interval -# -# Usage: cpu.sh INTERVAL_IN_SECONDS -# -# This script will emit the following tags on stdout (N is the number -# of logical CPUs): -# -# Name Type -# -------------------- -# cpu range 0-100 -# cpu0 range 0-100 -# cpu1 range 0-100 -# ... -# cpuN-1 range 0-100 -# -# I.e. ‘cpu’ is the average (or aggregated) CPU usage, while cpuX is a -# specific CPU’s usage. -# -# Example configuration (update every second): -# -# - script: -# path: /path/to/cpu.sh -# args: [1] -# content: {string: {text: "{cpu}%"}} -# - -interval=2 - -case ${interval} in - ''|*[!0-9]*) - echo "interval must be an integer" - exit 1 - ;; - *) - ;; -esac - -# Get number of CPUs, by reading /proc/stat -# The output looks like: -# -# cpu A B C D ... -# cpu0 A B C D ... -# cpu1 A B C D ... -# cpuN A B C D ... -# -# The first line is a summary line, accounting *all* CPUs -IFS=$'\n' readarray -t all_cpu_stats < <(grep -e "^cpu" /proc/stat) -cpu_count=$((${#all_cpu_stats[@]} - 1)) - -# Arrays of ‘previous’ idle and total stats, needed to calculate the -# difference between each sample. -prev_idle=() -prev_total=() -for i in $(seq ${cpu_count}); do - prev_idle+=(0) - prev_total+=(0) -done - -prev_average_idle=0 -prev_average_total=0 - -while true; do - IFS=$'\n' readarray -t all_cpu_stats < <(grep -e "^cpu" /proc/stat) - - usage=() # CPU usage in percent, 0 <= x <= 100 - - average_idle=0 # All CPUs idle time since boot - average_total=0 # All CPUs total time since boot - - for i in $(seq 0 $((cpu_count - 1))); do - # Split this CPUs stats into an array - stats=($(echo "${all_cpu_stats[$((i + 1))]}")) - - # man procfs(5) - user=${stats[1]} - nice=${stats[2]} - system=${stats[3]} - idle=${stats[4]} - iowait=${stats[5]} - irq=${stats[6]} - softirq=${stats[7]} - steal=${stats[8]} - guest=${stats[9]} - guestnice=${stats[10]} - - # Guest time already accounted for in user - user=$((user - guest)) - nice=$((nice - guestnice)) - - idle=$((idle + iowait)) - - total=$((user + nice + system + irq + softirq + idle + steal + guest + guestnice)) - - average_idle=$((average_idle + idle)) - average_total=$((average_total + total)) - - # Diff since last sample - diff_idle=$((idle - prev_idle[i])) - diff_total=$((total - prev_total[i])) - - usage[i]=$((100 * (diff_total - diff_idle) / diff_total)) - - prev_idle[i]=${idle} - prev_total[i]=${total} - done - - diff_average_idle=$((average_idle - prev_average_idle)) - diff_average_total=$((average_total - prev_average_total)) - - average_usage=$((100 * (diff_average_total - diff_average_idle) / diff_average_total)) - - prev_average_idle=${average_idle} - prev_average_total=${average_total} - - echo "cpu|range:0-100|${average_usage}" - for i in $(seq 0 $((cpu_count - 1))); do - echo "cpu${i}|range:0-100|${usage[i]}" - done - - echo "" - sleep "${interval}" -done diff --git a/hm/soispha/conf/yambar/scripts/old/cpu.sh b/hm/soispha/conf/yambar/scripts/old/cpu.sh new file mode 100755 index 00000000..bae820d0 --- /dev/null +++ b/hm/soispha/conf/yambar/scripts/old/cpu.sh @@ -0,0 +1,126 @@ +#!/bin/bash +# I didn't write this script; this is almost directly copied from the dnkl/yambar github. + + +# cpu.sh - measures CPU usage at a configurable sample interval +# +# Usage: cpu.sh INTERVAL_IN_SECONDS +# +# This script will emit the following tags on stdout (N is the number +# of logical CPUs): +# +# Name Type +# -------------------- +# cpu range 0-100 +# cpu0 range 0-100 +# cpu1 range 0-100 +# ... +# cpuN-1 range 0-100 +# +# I.e. ‘cpu’ is the average (or aggregated) CPU usage, while cpuX is a +# specific CPU’s usage. +# +# Example configuration (update every second): +# +# - script: +# path: /path/to/cpu.sh +# args: [1] +# content: {string: {text: "{cpu}%"}} +# + +interval=2 + +case ${interval} in + ''|*[!0-9]*) + echo "interval must be an integer" + exit 1 + ;; + *) + ;; +esac + +# Get number of CPUs, by reading /proc/stat +# The output looks like: +# +# cpu A B C D ... +# cpu0 A B C D ... +# cpu1 A B C D ... +# cpuN A B C D ... +# +# The first line is a summary line, accounting *all* CPUs +IFS=$'\n' readarray -t all_cpu_stats < <(grep -e "^cpu" /proc/stat) +cpu_count=$((${#all_cpu_stats[@]} - 1)) + +# Arrays of ‘previous’ idle and total stats, needed to calculate the +# difference between each sample. +prev_idle=() +prev_total=() +for i in $(seq ${cpu_count}); do + prev_idle+=(0) + prev_total+=(0) +done + +prev_average_idle=0 +prev_average_total=0 + +while true; do + IFS=$'\n' readarray -t all_cpu_stats < <(grep -e "^cpu" /proc/stat) + + usage=() # CPU usage in percent, 0 <= x <= 100 + + average_idle=0 # All CPUs idle time since boot + average_total=0 # All CPUs total time since boot + + for i in $(seq 0 $((cpu_count - 1))); do + # Split this CPUs stats into an array + stats=($(echo "${all_cpu_stats[$((i + 1))]}")) + + # man procfs(5) + user=${stats[1]} + nice=${stats[2]} + system=${stats[3]} + idle=${stats[4]} + iowait=${stats[5]} + irq=${stats[6]} + softirq=${stats[7]} + steal=${stats[8]} + guest=${stats[9]} + guestnice=${stats[10]} + + # Guest time already accounted for in user + user=$((user - guest)) + nice=$((nice - guestnice)) + + idle=$((idle + iowait)) + + total=$((user + nice + system + irq + softirq + idle + steal + guest + guestnice)) + + average_idle=$((average_idle + idle)) + average_total=$((average_total + total)) + + # Diff since last sample + diff_idle=$((idle - prev_idle[i])) + diff_total=$((total - prev_total[i])) + + usage[i]=$((100 * (diff_total - diff_idle) / diff_total)) + + prev_idle[i]=${idle} + prev_total[i]=${total} + done + + diff_average_idle=$((average_idle - prev_average_idle)) + diff_average_total=$((average_total - prev_average_total)) + + average_usage=$((100 * (diff_average_total - diff_average_idle) / diff_average_total)) + + prev_average_idle=${average_idle} + prev_average_total=${average_total} + + echo "cpu|range:0-100|${average_usage}" + for i in $(seq 0 $((cpu_count - 1))); do + echo "cpu${i}|range:0-100|${usage[i]}" + done + + echo "" + sleep "${interval}" +done diff --git a/hm/soispha/conf/yambar/scripts/old/dfspace b/hm/soispha/conf/yambar/scripts/old/dfspace deleted file mode 100755 index 0b262481..00000000 --- a/hm/soispha/conf/yambar/scripts/old/dfspace +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# Sleep seconds -timer="60" - -# Main loop -while true; do - - # vars - used_space=$(btrfs filesystem usage / 2> /dev/null | awk '{if ( /Used:/ ) { print $2 } } ' | head -n1) - all_space=$(btrfs filesystem usage / 2> /dev/null | awk '{if ( /Device size:/ ) { print $3 } } ' | head -n1 | tr -d "GiB") - - - # Check space available (4) and percentage used (5) - spaceperc=$(echo "$(echo "$used_space" | tr -d "GiB" )" "$all_space" | awk '{div=$1/$2;div *= 100; printf"%2d%%\n",div }') - - echo "diskspace|string|$used_space" - echo "diskperc|string|$spaceperc" - echo "" - sleep $timer - -done - diff --git a/hm/soispha/conf/yambar/scripts/old/dfspace.sh b/hm/soispha/conf/yambar/scripts/old/dfspace.sh new file mode 100755 index 00000000..0b262481 --- /dev/null +++ b/hm/soispha/conf/yambar/scripts/old/dfspace.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +# Sleep seconds +timer="60" + +# Main loop +while true; do + + # vars + used_space=$(btrfs filesystem usage / 2> /dev/null | awk '{if ( /Used:/ ) { print $2 } } ' | head -n1) + all_space=$(btrfs filesystem usage / 2> /dev/null | awk '{if ( /Device size:/ ) { print $3 } } ' | head -n1 | tr -d "GiB") + + + # Check space available (4) and percentage used (5) + spaceperc=$(echo "$(echo "$used_space" | tr -d "GiB" )" "$all_space" | awk '{div=$1/$2;div *= 100; printf"%2d%%\n",div }') + + echo "diskspace|string|$used_space" + echo "diskperc|string|$spaceperc" + echo "" + sleep $timer + +done + diff --git a/hm/soispha/conf/yambar/scripts/old/grades-average b/hm/soispha/conf/yambar/scripts/old/grades-average deleted file mode 100755 index a04b958c..00000000 --- a/hm/soispha/conf/yambar/scripts/old/grades-average +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# shellcheck disable=SC2086 -# shellcheck source=/dev/null -. ~/.local/lib/shell/lib - -grade=$(grades list average | awk '{print $2}'); - -echo "grade|string|$grade"; -echo ""; - - -if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi diff --git a/hm/soispha/conf/yambar/scripts/old/grades-average.sh b/hm/soispha/conf/yambar/scripts/old/grades-average.sh new file mode 100755 index 00000000..a04b958c --- /dev/null +++ b/hm/soispha/conf/yambar/scripts/old/grades-average.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# shellcheck disable=SC2086 +# shellcheck source=/dev/null +. ~/.local/lib/shell/lib + +grade=$(grades list average | awk '{print $2}'); + +echo "grade|string|$grade"; +echo ""; + + +if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi diff --git a/hm/soispha/conf/yambar/scripts/old/meminfo b/hm/soispha/conf/yambar/scripts/old/meminfo deleted file mode 100755 index 0156e94c..00000000 --- a/hm/soispha/conf/yambar/scripts/old/meminfo +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -# Checks memory usage - -# Number of seconds to retest -timer=5 - -# Main loop -while true; do - - mem_total=$(LANG=C free -b|awk '/^Mem:/{print $2}') - mem_used=$(LANG=C free -b|awk '/^Mem:/{print $3}') - swap_total=$(LANG=C free -b|awk '/^Swap:/{print $2}') - swap_used=$(LANG=C free -b|awk '/^Swap:/{print $3}') - - - memperc=$(echo "$mem_used" "$mem_total" | awk '{ div = 100 * ($1 / $2)} { printf "%.0f ", div }' | tr -d ' ' ) - swapperc=$(echo "$swap_used" "$swap_total" | awk '{ - if ( $1 == 0 || $2 == 0 ) { - print "%" - } else { - div = 100 * ($1 / $2); - printf "%.0f ", div -} -}' | tr -d ' ' ) - - -echo "memperc|string|$memperc" -if [ "$swapperc" = "%" ];then - echo "swapstate|bool|false" -else - echo "swapperc|string|$swapperc" - echo "swapstate|bool|true" -fi -echo "" -sleep "$timer" - -done diff --git a/hm/soispha/conf/yambar/scripts/old/meminfo.sh b/hm/soispha/conf/yambar/scripts/old/meminfo.sh new file mode 100755 index 00000000..0156e94c --- /dev/null +++ b/hm/soispha/conf/yambar/scripts/old/meminfo.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# Checks memory usage + +# Number of seconds to retest +timer=5 + +# Main loop +while true; do + + mem_total=$(LANG=C free -b|awk '/^Mem:/{print $2}') + mem_used=$(LANG=C free -b|awk '/^Mem:/{print $3}') + swap_total=$(LANG=C free -b|awk '/^Swap:/{print $2}') + swap_used=$(LANG=C free -b|awk '/^Swap:/{print $3}') + + + memperc=$(echo "$mem_used" "$mem_total" | awk '{ div = 100 * ($1 / $2)} { printf "%.0f ", div }' | tr -d ' ' ) + swapperc=$(echo "$swap_used" "$swap_total" | awk '{ + if ( $1 == 0 || $2 == 0 ) { + print "%" + } else { + div = 100 * ($1 / $2); + printf "%.0f ", div +} +}' | tr -d ' ' ) + + +echo "memperc|string|$memperc" +if [ "$swapperc" = "%" ];then + echo "swapstate|bool|false" +else + echo "swapperc|string|$swapperc" + echo "swapstate|bool|true" +fi +echo "" +sleep "$timer" + +done diff --git a/hm/soispha/conf/yambar/scripts/old/nmclitest b/hm/soispha/conf/yambar/scripts/old/nmclitest deleted file mode 100755 index 3e8bc73a..00000000 --- a/hm/soispha/conf/yambar/scripts/old/nmclitest +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# Test for connectivity with nmcli - -Timer=${1:-120} # Number of seconds to retest -Timer2=${2:-10} # Number of seconds to retest if connection fails - -# Main loop -while true; do - - CONN=$(nmcli networking connectivity) - - if [[ "$CONN" == "full" ]]; then - echo "internet|string|Connected" - echo "" - sleep $Timer - else - echo "internet|string|Disconnected" - echo "" - sleep $Timer2 - fi - -done - diff --git a/hm/soispha/conf/yambar/scripts/old/nmclitest.sh b/hm/soispha/conf/yambar/scripts/old/nmclitest.sh new file mode 100755 index 00000000..3e8bc73a --- /dev/null +++ b/hm/soispha/conf/yambar/scripts/old/nmclitest.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# Test for connectivity with nmcli + +Timer=${1:-120} # Number of seconds to retest +Timer2=${2:-10} # Number of seconds to retest if connection fails + +# Main loop +while true; do + + CONN=$(nmcli networking connectivity) + + if [[ "$CONN" == "full" ]]; then + echo "internet|string|Connected" + echo "" + sleep $Timer + else + echo "internet|string|Disconnected" + echo "" + sleep $Timer2 + fi + +done + diff --git a/hm/soispha/conf/yambar/scripts/old/pingtest b/hm/soispha/conf/yambar/scripts/old/pingtest deleted file mode 100755 index 2b5f9998..00000000 --- a/hm/soispha/conf/yambar/scripts/old/pingtest +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -# Test for connectivity with ping - -Timer=${1:-120} # Number of seconds to retest -Timer2=${2:-10} # Number of seconds to retest if connection fails -IP=${3:-'8.8.8.8'} # IP address to test, defaults to Google -PCount=${4:-3} # Number of pings to send - -# Main loop -while true; do - - # Pings the IP address for five times - PINGSTR=$(ping $IP -c $PCount -q) - # Use text formatting to get min/max ms delays - MED=$(echo $PINGSTR | sed 's/min\/avg\/max\/mdev = /\n/g' | tail -n 1 | sed 's/\//\t/g' | cut -f2) - - if [[ "$MED" == "" ]]; then - echo "med|string|No connection" - echo "" - sleep $Timer2 - else - echo "med|string|$MED ms" - echo "" - sleep $Timer - fi - -done - diff --git a/hm/soispha/conf/yambar/scripts/old/pingtest.sh b/hm/soispha/conf/yambar/scripts/old/pingtest.sh new file mode 100755 index 00000000..2b5f9998 --- /dev/null +++ b/hm/soispha/conf/yambar/scripts/old/pingtest.sh @@ -0,0 +1,28 @@ +#!/bin/sh +# Test for connectivity with ping + +Timer=${1:-120} # Number of seconds to retest +Timer2=${2:-10} # Number of seconds to retest if connection fails +IP=${3:-'8.8.8.8'} # IP address to test, defaults to Google +PCount=${4:-3} # Number of pings to send + +# Main loop +while true; do + + # Pings the IP address for five times + PINGSTR=$(ping $IP -c $PCount -q) + # Use text formatting to get min/max ms delays + MED=$(echo $PINGSTR | sed 's/min\/avg\/max\/mdev = /\n/g' | tail -n 1 | sed 's/\//\t/g' | cut -f2) + + if [[ "$MED" == "" ]]; then + echo "med|string|No connection" + echo "" + sleep $Timer2 + else + echo "med|string|$MED ms" + echo "" + sleep $Timer + fi + +done + diff --git a/hm/soispha/conf/yambar/scripts/old/yambar-tray b/hm/soispha/conf/yambar/scripts/old/yambar-tray deleted file mode 100755 index 1704c6dd..00000000 --- a/hm/soispha/conf/yambar/scripts/old/yambar-tray +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - - -pkill stalonetray -pkill trayer - -# launch a tray. -echo - -sleep 0.1 # make sure yambar starts first so we can draw on tpo of it - -# trayer-srg fork! -trayer \ - --edge top \ - --tint 0x24242400 \ - --align right \ - --height 20 \ - --expand false \ - --transparent true \ - --alpha 0 \ - --width 20 \ - --monitor primary \ - --widthtype request - # &>/dev/null - - - diff --git a/hm/soispha/conf/yambar/scripts/old/yambar-tray-width b/hm/soispha/conf/yambar/scripts/old/yambar-tray-width deleted file mode 100755 index 00544e70..00000000 --- a/hm/soispha/conf/yambar/scripts/old/yambar-tray-width +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -# shellcheck disable=SC2086 -# shellcheck source=/dev/null -. ~/.local/lib/shell/lib - - -CHARWIDTH=8 # i guess? - -tray_width_px() { - xwininfo -name panel | # trayer names its window "panel" - grep -i width: | - awk '{print $2}' -} - -px_to_spaces() { - spaces="$((1 + ${1:-0} / $CHARWIDTH))" - printf "% *s\n" $spaces -} - -sleep 0.2 # be sure trayer is already up - -output="$(px_to_spaces `tray_width_px`)" -echo "padding|string|$output" -echo "" - - - -if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi diff --git a/hm/soispha/conf/yambar/scripts/old/yambar-tray-width.sh b/hm/soispha/conf/yambar/scripts/old/yambar-tray-width.sh new file mode 100755 index 00000000..00544e70 --- /dev/null +++ b/hm/soispha/conf/yambar/scripts/old/yambar-tray-width.sh @@ -0,0 +1,28 @@ +#!/bin/sh +# shellcheck disable=SC2086 +# shellcheck source=/dev/null +. ~/.local/lib/shell/lib + + +CHARWIDTH=8 # i guess? + +tray_width_px() { + xwininfo -name panel | # trayer names its window "panel" + grep -i width: | + awk '{print $2}' +} + +px_to_spaces() { + spaces="$((1 + ${1:-0} / $CHARWIDTH))" + printf "% *s\n" $spaces +} + +sleep 0.2 # be sure trayer is already up + +output="$(px_to_spaces `tray_width_px`)" +echo "padding|string|$output" +echo "" + + + +if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi diff --git a/hm/soispha/conf/yambar/scripts/old/yambar-tray.sh b/hm/soispha/conf/yambar/scripts/old/yambar-tray.sh new file mode 100755 index 00000000..1704c6dd --- /dev/null +++ b/hm/soispha/conf/yambar/scripts/old/yambar-tray.sh @@ -0,0 +1,27 @@ +#!/bin/sh + + +pkill stalonetray +pkill trayer + +# launch a tray. +echo + +sleep 0.1 # make sure yambar starts first so we can draw on tpo of it + +# trayer-srg fork! +trayer \ + --edge top \ + --tint 0x24242400 \ + --align right \ + --height 20 \ + --expand false \ + --transparent true \ + --alpha 0 \ + --width 20 \ + --monitor primary \ + --widthtype request + # &>/dev/null + + + diff --git a/hm/soispha/conf/yambar/scripts/sound-volume b/hm/soispha/conf/yambar/scripts/sound-volume deleted file mode 100755 index 721d51bf..00000000 --- a/hm/soispha/conf/yambar/scripts/sound-volume +++ /dev/null @@ -1,20 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -while true; do - volume="$(pactl get-sink-volume 0 | awk 'BEGIN { FS="/" } {gsub("%","",$2); gsub(" ","",$2)} {printf $2}')" - - if [ "$volume" -eq 0 ]; then - echo "muted|bool|true" - else - echo "volume|string|$volume" - echo "muted|bool|false" - fi - echo "" - - sleep 3; -done - -# vim: ft=sh diff --git a/hm/soispha/conf/yambar/scripts/sound-volume.sh b/hm/soispha/conf/yambar/scripts/sound-volume.sh new file mode 100755 index 00000000..721d51bf --- /dev/null +++ b/hm/soispha/conf/yambar/scripts/sound-volume.sh @@ -0,0 +1,20 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +while true; do + volume="$(pactl get-sink-volume 0 | awk 'BEGIN { FS="/" } {gsub("%","",$2); gsub(" ","",$2)} {printf $2}')" + + if [ "$volume" -eq 0 ]; then + echo "muted|bool|true" + else + echo "volume|string|$volume" + echo "muted|bool|false" + fi + echo "" + + sleep 3; +done + +# vim: ft=sh diff --git a/hm/soispha/conf/zsh/default.nix b/hm/soispha/conf/zsh/default.nix index 715c0f87..f7493e5e 100644 --- a/hm/soispha/conf/zsh/default.nix +++ b/hm/soispha/conf/zsh/default.nix @@ -66,10 +66,10 @@ ]; initExtraFirst = - builtins.readFile ./config/zsh-init.sh + builtins.readFile ./config/zsh-init.zsh # + builtins.readFile ./config/zsh-prompt.sh - + builtins.readFile ./config/command_not_found_insult.zsh - + builtins.readFile ./config/custom_cursor.sh + + builtins.readFile ./config/command_not_found_insult.sh + + builtins.readFile ./config/custom_cursor.zsh + builtins.readFile "${pkgs.fzf}/share/fzf/key-bindings.zsh" + ''SHELL_LIBRARY_VERSION="2.0.13" source ${shell_library.rawLib.${system}}''; diff --git a/hm/soispha/pkgs/scripts.nix b/hm/soispha/pkgs/scripts.nix index 57aff326..a1603656 100644 --- a/hm/soispha/pkgs/scripts.nix +++ b/hm/soispha/pkgs/scripts.nix @@ -14,7 +14,7 @@ }: sysLib.writeShellScript { inherit name keepPath; - src = ./scripts/${path}/${name}; + src = ./scripts/${path}/${name}.sh; dependencies = dependencies ++ [pkgs.dash]; generateCompletions = completions; }; @@ -25,7 +25,7 @@ dependencies_python ? _: [], keepPath ? false, }: let - src = ./scripts/${path}/${name}; + src = ./scripts/${path}/${name}.py; dependencies = [(pkgs.python3.withPackages dependencies_python)] ++ dependencies_system; @@ -53,7 +53,7 @@ con2pdf-scr = sysLib.writeShellScript { name = "con2pdf"; - src = ./scripts/apps/con2pdf; + src = ./scripts/apps/con2pdf.sh; dependencies = builtins.attrValues {inherit (pkgs) sane-backends imagemagick coreutils fd;}; generateCompletions = true; replacementStrings = { @@ -113,7 +113,7 @@ ll-scr = sysLib.writeShellScript { name = "ll"; - src = ./scripts/wrappers/ll; + src = ./scripts/wrappers/ll.sh; wrap = false; }; diff --git a/hm/soispha/pkgs/scripts/apps/aumo b/hm/soispha/pkgs/scripts/apps/aumo deleted file mode 100755 index b5840fc3..00000000 --- a/hm/soispha/pkgs/scripts/apps/aumo +++ /dev/null @@ -1,54 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -# TODO: rewrite this - -if [ "$1" = "-u" ];then udisksctl unmount -b "$(cat "$HOME/.cache/aumo/mnt_disk")"; exit 0; fi -all_available_disks=$(mktemp) -awk '{print $4}' /proc/partitions | sed '1 s|.*||' > "$all_available_disks" - -mounted_disk=$(mktemp) -awk '{print $1}' /proc/mounts > "$mounted_disk" - -unmounted_disks=$(mktemp) - -for i in $(cat $all_available_disks);do - if ! grep -qw "/dev/$i" $mounted_disk && ! ls /sys/block/$i/*/partition > /dev/null 2> /dev/null;then echo $i >> $unmounted_disks;fi -done - - -u=1 -disk=-1 -while [ $disk -lt 0 ] || [ $disk -gt $(wc -l $unmounted_disks | awk '{print $1}') ];do - - [ "$1" = "-v" ] && for i in $(cat $unmounted_disks);do - sudo fdisk -l "/dev/$i" - done - - for i in $(cat $unmounted_disks);do - printf "%4s) %s\n" "$u" "$i" - u=$(( u + 1 )) - done - - printf "%4s) Exit\n" "0" - printf "Input number: " - read -r disk - - [ $disk -lt 0 ] || [ $disk -gt $(wc -l $unmounted_disks | awk '{print $1}') ] && printf "Wrong number. Please retry\n" - [ $disk -eq 0 ] && exit 0 -done - -mnt_disk="/dev/$(awk -v n=$disk 'NR==n' $unmounted_disks)" - -if ! [ "$1" = "-v" ] && [ -n "$1" ];then sudo mount "$mnt_disk" "$1" && exit 0;fi -[ -n "$2" ] && sudo mount "$mnt_disk" "$1" && exit 0 -if mount | grep -q ~/mnt ;then dien "Something is mounted at ~/mnt";else udisksctl mount -b "$mnt_disk";fi - -[ -e $HOME/.cache/aumo/mnt_disk ] || mkdir -p $HOME/.cache/aumo -echo $mnt_disk >> $HOME/.cache/aumo/mnt_disk -rm $all_available_disks -rm $mounted_disk -rm $unmounted_disks -[ -d /tmp/LIB_FILE_TEMP_DIR/ ] && rm -r /tmp/LIB_FILE_TEMP_DIR/ diff --git a/hm/soispha/pkgs/scripts/apps/aumo.sh b/hm/soispha/pkgs/scripts/apps/aumo.sh new file mode 100755 index 00000000..b5840fc3 --- /dev/null +++ b/hm/soispha/pkgs/scripts/apps/aumo.sh @@ -0,0 +1,54 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +# TODO: rewrite this + +if [ "$1" = "-u" ];then udisksctl unmount -b "$(cat "$HOME/.cache/aumo/mnt_disk")"; exit 0; fi +all_available_disks=$(mktemp) +awk '{print $4}' /proc/partitions | sed '1 s|.*||' > "$all_available_disks" + +mounted_disk=$(mktemp) +awk '{print $1}' /proc/mounts > "$mounted_disk" + +unmounted_disks=$(mktemp) + +for i in $(cat $all_available_disks);do + if ! grep -qw "/dev/$i" $mounted_disk && ! ls /sys/block/$i/*/partition > /dev/null 2> /dev/null;then echo $i >> $unmounted_disks;fi +done + + +u=1 +disk=-1 +while [ $disk -lt 0 ] || [ $disk -gt $(wc -l $unmounted_disks | awk '{print $1}') ];do + + [ "$1" = "-v" ] && for i in $(cat $unmounted_disks);do + sudo fdisk -l "/dev/$i" + done + + for i in $(cat $unmounted_disks);do + printf "%4s) %s\n" "$u" "$i" + u=$(( u + 1 )) + done + + printf "%4s) Exit\n" "0" + printf "Input number: " + read -r disk + + [ $disk -lt 0 ] || [ $disk -gt $(wc -l $unmounted_disks | awk '{print $1}') ] && printf "Wrong number. Please retry\n" + [ $disk -eq 0 ] && exit 0 +done + +mnt_disk="/dev/$(awk -v n=$disk 'NR==n' $unmounted_disks)" + +if ! [ "$1" = "-v" ] && [ -n "$1" ];then sudo mount "$mnt_disk" "$1" && exit 0;fi +[ -n "$2" ] && sudo mount "$mnt_disk" "$1" && exit 0 +if mount | grep -q ~/mnt ;then dien "Something is mounted at ~/mnt";else udisksctl mount -b "$mnt_disk";fi + +[ -e $HOME/.cache/aumo/mnt_disk ] || mkdir -p $HOME/.cache/aumo +echo $mnt_disk >> $HOME/.cache/aumo/mnt_disk +rm $all_available_disks +rm $mounted_disk +rm $unmounted_disks +[ -d /tmp/LIB_FILE_TEMP_DIR/ ] && rm -r /tmp/LIB_FILE_TEMP_DIR/ diff --git a/hm/soispha/pkgs/scripts/apps/con2pdf b/hm/soispha/pkgs/scripts/apps/con2pdf deleted file mode 100644 index be8810bb..00000000 --- a/hm/soispha/pkgs/scripts/apps/con2pdf +++ /dev/null @@ -1,237 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - - -# needed for help() and version -# shellcheck disable=2034 -AUTHORS="Soispha"; -# shellcheck disable=2034 -YEARS="2023"; -# shellcheck disable=2034 -VERSION="1.0.0"; - -help() { -cat << EOF -Scan images and turn them into a pdf. - -Usage: - $NAME [OPTIONS] --name --device - -OPTIONS: - --out-dir | -o [FILE] - Path to place the generated pdf files (default: ./pdf). - - --name | -n NAME - Name for the pdf files (e.g. _1.pdf). - - --num-pages | -p NUM - Number of pages to merge into one pdf (default: 1). - - --device | -d DEVICE - Device used for scanning. - - --method | -m METHOD - Method to use for scanning (default: ADF). - - --help | -h - Display this help and exit. - - --version | -v - Display version and copyright information and exit. -ARGUMENTS: - FILE := [[fd . --max-depth 3]] - A name of a file to store, default is: ./pdf - - NAME | * := [[fd . --max-depth 3]] - The basename of the generated files - - NUM | *([0-9]) := 0 | 1 | 2 | 3 | 4 - Possible numbers of pages, can be more than 4 - - DEVICE := [[$(cat %DEVICE_FUNCTION)]] - Possible scanner names - - METHOD := ADF | Flatbed - The scanning method to use, not all scanners support both of - these. The default is ADF -EOF -} - -scan_adf() { - device="$1"; - sides_per_page="$2"; - method="ADF"; - for i in $(seq "$sides_per_page");do - do_until_success \ - "scanimage --format=tiff --progress --source='$method' --device='$device' --batch=%d.tif --batch-increment='$sides_per_page' --batch-start='$i'" \ - "warn 'Retrying scan, as we assume a network error!'" - - - if [ "$sides_per_page" -ne 1 ];then - msg "Finished turn, please change side!"; - readp "Press enter to continue" noop - fi - done -} -process_images_adf() { - tiff_temp_path="$1"; - output_directory="$2"; - name="$3"; - - counter=0; - pdf_counter=0; - image_cache="$(mktmp)" - while read -r scanned_image; do - dbg "$scanned_image (scanned_image) at $counter (counter)"; - echo "$scanned_image" >> "$image_cache" - : $((counter += 1)) - if [ "$counter" = "$number_of_pages" ]; then - dbg "$counter == $number_of_pages" - counter=0; - convert_images "$image_cache" "${name}_$pdf_counter" "$output_directory" - : $((pdf_counter += 1)) - printf "" > "$image_cache" - fi - done < "$(tmp_pipe fd . "$tiff_temp_path" "|" sort -V)" -} - -scan_flatbed() { - device="$1"; - number_of_pages"$2"; - method="Flatbed"; - for i in $(seq "$number_of_pages"); do - do_until_success \ - "scanimage --format=tiff --progress --source='$method' --device='$device' --output-file=$i.tiff" \ - "warn 'Retrying scan, as we assume a network error!'" - if [ "$number_of_pages" -ne 1 ];then - msg "Finished turn, please change side!"; - readp "Press enter to continue" noop - fi - done -} -process_images_flatbed() { - tiff_temp_path="$1"; - output_directory="$2"; - name="$3"; - - counter=0; - image_cache="$(mktmp)" - while read -r scanned_image; do - echo "$scanned_image" >> "$image_cache" - : $((counter += 1)) - if [ "$counter" = "$number_of_pages" ]; then - counter=0; - convert_images "$image_cache" "$name" "$output_directory" - printf "" > "$image_cache" - fi - done < "$(tmp_pipe fd . "$tiff_temp_path" "|" sort -V)" -} -convert_images() { - image_cache="$1"; - pdf_name="$2"; - output_dir="$3"; - - set -- - while read -r image; do - dbg "setting image: $image"; - set -- "$@" "$image" - done < "$image_cache" - - while [ -e "$output_dir/${pdf_name}.pdf" ]; do - pdf_name="${pdf_name}_$(tr -dc 'A-Za-z0-9' _1.pdf). + + --num-pages | -p NUM + Number of pages to merge into one pdf (default: 1). + + --device | -d DEVICE + Device used for scanning. + + --method | -m METHOD + Method to use for scanning (default: ADF). + + --help | -h + Display this help and exit. + + --version | -v + Display version and copyright information and exit. +ARGUMENTS: + FILE := [[fd . --max-depth 3]] + A name of a file to store, default is: ./pdf + + NAME | * := [[fd . --max-depth 3]] + The basename of the generated files + + NUM | *([0-9]) := 0 | 1 | 2 | 3 | 4 + Possible numbers of pages, can be more than 4 + + DEVICE := [[$(cat %DEVICE_FUNCTION)]] + Possible scanner names + + METHOD := ADF | Flatbed + The scanning method to use, not all scanners support both of + these. The default is ADF +EOF +} + +scan_adf() { + device="$1"; + sides_per_page="$2"; + method="ADF"; + for i in $(seq "$sides_per_page");do + do_until_success \ + "scanimage --format=tiff --progress --source='$method' --device='$device' --batch=%d.tif --batch-increment='$sides_per_page' --batch-start='$i'" \ + "warn 'Retrying scan, as we assume a network error!'" + + + if [ "$sides_per_page" -ne 1 ];then + msg "Finished turn, please change side!"; + readp "Press enter to continue" noop + fi + done +} +process_images_adf() { + tiff_temp_path="$1"; + output_directory="$2"; + name="$3"; + + counter=0; + pdf_counter=0; + image_cache="$(mktmp)" + while read -r scanned_image; do + dbg "$scanned_image (scanned_image) at $counter (counter)"; + echo "$scanned_image" >> "$image_cache" + : $((counter += 1)) + if [ "$counter" = "$number_of_pages" ]; then + dbg "$counter == $number_of_pages" + counter=0; + convert_images "$image_cache" "${name}_$pdf_counter" "$output_directory" + : $((pdf_counter += 1)) + printf "" > "$image_cache" + fi + done < "$(tmp_pipe fd . "$tiff_temp_path" "|" sort -V)" +} + +scan_flatbed() { + device="$1"; + number_of_pages"$2"; + method="Flatbed"; + for i in $(seq "$number_of_pages"); do + do_until_success \ + "scanimage --format=tiff --progress --source='$method' --device='$device' --output-file=$i.tiff" \ + "warn 'Retrying scan, as we assume a network error!'" + if [ "$number_of_pages" -ne 1 ];then + msg "Finished turn, please change side!"; + readp "Press enter to continue" noop + fi + done +} +process_images_flatbed() { + tiff_temp_path="$1"; + output_directory="$2"; + name="$3"; + + counter=0; + image_cache="$(mktmp)" + while read -r scanned_image; do + echo "$scanned_image" >> "$image_cache" + : $((counter += 1)) + if [ "$counter" = "$number_of_pages" ]; then + counter=0; + convert_images "$image_cache" "$name" "$output_directory" + printf "" > "$image_cache" + fi + done < "$(tmp_pipe fd . "$tiff_temp_path" "|" sort -V)" +} +convert_images() { + image_cache="$1"; + pdf_name="$2"; + output_dir="$3"; + + set -- + while read -r image; do + dbg "setting image: $image"; + set -- "$@" "$image" + done < "$image_cache" + + while [ -e "$output_dir/${pdf_name}.pdf" ]; do + pdf_name="${pdf_name}_$(tr -dc 'A-Za-z0-9' "$config_path"; - ;; - *) - UPDATE_SCRIPT_NOT_ALLOWED=true; - ;; - esac -} - -# Runs the provided script and continues to update the nix flake -# Takes the path to the script and the directory to the flake as arguments -# If the path to the update script is empty, it will be ignored -update(){ - update_script="$1"; - flake_base_dir="$2"; - - [ "$update_script" = "" ] || "$update_script"; - dbg "changed directory to: $flake_base_dir"; - cd "$flake_base_dir" || die "Provided dir \'$flake_base_dir\' can not be accessed"; - - nix flake update - if grep '[^0-9]_[0-9]' flake.lock > /dev/null; then - batgrep '[^0-9]_[0-9]' flake.lock; - die "Your flake.nix contains duplicate inputs!"; - fi -} - -help() { -cat << EOF -This is a Nix flake update manager. - -Usage: - $NAME [--help] - -Options: - --help | -h - Display this help and exit. - --version | -v - Display version and copyright information and exit. - -Commands: - flake - update the flake project - - runs a executable called "update-", if it exists -EOF -} - -main() { - if ! [ "$UPDATE_SCRIPT_NOT_ALLOWED" = true ]; then - update_script="$(check_for_update_script)"; - flake_base_dir="$(search_flake_base_dir)"; # Assume, that the update script is in the base dir - dbg "update_script is: $update_script"; - dbg "flake_base_dir is: $flake_base_dir"; - - if [ "$update_script" = "" ]; then - update "" "$flake_base_dir"; - elif check_for_allowed_update_script "$update_script" && ! [ "$update_script" = "" ]; then - update "$update_script" "$flake_base_dir"; - else - ask_to_allow_update_script "$update_script"; - main; - fi - fi -} - -if [ "$#" -eq 0 ]; then - main; -fi - -for input in "$@"; do - case "$input" in - "--help" | "-h") - help; - exit 0; - ;; - "--version" | "-v") - version; - exit 0; - ;; - "--") - end_of_cli_options=true; - ;; - esac - [ "$end_of_cli_options" = "true" ] && break -done - -while [ "$#" -ne 0 ]; do - case "$1" in - "flake") - main; - shift 1; - ;; - *) - command="$1"; - shift 1; - [ "$1" = "--" ] && shift 1 - if which update-"$command" > /dev/null 2>&1;then - if [ "$end_of_cli_options" = "true" ]; then - update-"$command" "$@"; - else - update-"$command"; - fi - else - die "command \"update-$command\" is not executable, or does not exist"; - fi - ;; - esac - [ "$end_of_cli_options" = "true" ] && break -done diff --git a/hm/soispha/pkgs/scripts/apps/fupdate.sh b/hm/soispha/pkgs/scripts/apps/fupdate.sh new file mode 100755 index 00000000..7722c070 --- /dev/null +++ b/hm/soispha/pkgs/scripts/apps/fupdate.sh @@ -0,0 +1,167 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + + +UPDATE_SCRIPT_NAME="update.sh"; +CONFIG_DIRECTORY_PATH="$HOME/.local/share/flake-update"; + +AUTHORS="Soispha" +YEARS="2023" + +# Searches upward for a `UPDATE_SCRIPT_NAME` script +# Returns a path to the script if it exists, otherwise nothing is returned +check_for_update_script() { + dirname="$(search_upward_files "$UPDATE_SCRIPT_NAME")" + if [ "$dirname" ]; then + printf "%s/%s" "$dirname" "$UPDATE_SCRIPT_NAME" + fi +} + +# Checks if a given path to the update script is allowed. +# Takes the path as input +# Return 0, if allowed, 1 if not. +check_for_allowed_update_script(){ + update_script="$1"; + config_path="${CONFIG_DIRECTORY_PATH}${update_script}"; + update_script_hash="$(sha256sum "$update_script")"; + if [ -f "$config_path" ]; then + if [ "$(cat "$config_path")" = "$update_script_hash" ];then + dbg "Recorded hash matches"; + return 0; + else + dbg "Recorded hash \'$(cat "$config_path")\' does not match real hash \'$update_script_hash\', assuming not allowed"; + return 1; + fi + else + dbg "Path \'$config_path\' does not exist, assuming not allowed"; + return 1; + fi +} + + +# Asks the user if they want to allow a given script. +# Takes the path as input +ask_to_allow_update_script(){ + update_script="$1"; + config_path="${CONFIG_DIRECTORY_PATH}${update_script}"; + update_script_hash="$(sha256sum "$update_script")"; + println "\033[2J"; # clear the screen + cat "$update_script"; + readp "Do you want to allow this script?[N/y]: " allow; + dbg "allow is: $allow"; + case "$allow" in + [yY]) + dbg "allowed script"; + dbg "storing contents in: $config_path"; + mkdir --parents "$(dirname "$config_path")"; + print "$update_script_hash" > "$config_path"; + ;; + *) + UPDATE_SCRIPT_NOT_ALLOWED=true; + ;; + esac +} + +# Runs the provided script and continues to update the nix flake +# Takes the path to the script and the directory to the flake as arguments +# If the path to the update script is empty, it will be ignored +update(){ + update_script="$1"; + flake_base_dir="$2"; + + [ "$update_script" = "" ] || "$update_script"; + dbg "changed directory to: $flake_base_dir"; + cd "$flake_base_dir" || die "Provided dir \'$flake_base_dir\' can not be accessed"; + + nix flake update + if grep '[^0-9]_[0-9]' flake.lock > /dev/null; then + batgrep '[^0-9]_[0-9]' flake.lock; + die "Your flake.nix contains duplicate inputs!"; + fi +} + +help() { +cat << EOF +This is a Nix flake update manager. + +Usage: + $NAME [--help] + +Options: + --help | -h + Display this help and exit. + --version | -v + Display version and copyright information and exit. + +Commands: + flake + update the flake project + + runs a executable called "update-", if it exists +EOF +} + +main() { + if ! [ "$UPDATE_SCRIPT_NOT_ALLOWED" = true ]; then + update_script="$(check_for_update_script)"; + flake_base_dir="$(search_flake_base_dir)"; # Assume, that the update script is in the base dir + dbg "update_script is: $update_script"; + dbg "flake_base_dir is: $flake_base_dir"; + + if [ "$update_script" = "" ]; then + update "" "$flake_base_dir"; + elif check_for_allowed_update_script "$update_script" && ! [ "$update_script" = "" ]; then + update "$update_script" "$flake_base_dir"; + else + ask_to_allow_update_script "$update_script"; + main; + fi + fi +} + +if [ "$#" -eq 0 ]; then + main; +fi + +for input in "$@"; do + case "$input" in + "--help" | "-h") + help; + exit 0; + ;; + "--version" | "-v") + version; + exit 0; + ;; + "--") + end_of_cli_options=true; + ;; + esac + [ "$end_of_cli_options" = "true" ] && break +done + +while [ "$#" -ne 0 ]; do + case "$1" in + "flake") + main; + shift 1; + ;; + *) + command="$1"; + shift 1; + [ "$1" = "--" ] && shift 1 + if which update-"$command" > /dev/null 2>&1;then + if [ "$end_of_cli_options" = "true" ]; then + update-"$command" "$@"; + else + update-"$command"; + fi + else + die "command \"update-$command\" is not executable, or does not exist"; + fi + ;; + esac + [ "$end_of_cli_options" = "true" ] && break +done diff --git a/hm/soispha/pkgs/scripts/small_functions/nato b/hm/soispha/pkgs/scripts/small_functions/nato deleted file mode 100755 index e9d15f56..00000000 --- a/hm/soispha/pkgs/scripts/small_functions/nato +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/env python3 -# originally from here: https://cgit.pacien.net/desktop-utilities/ - -import sys - -alphabet = { - "nato": { - "A": "Alfa", # No idea why this is not just 'Alpha' .. - "B": "Bravo", - "C": "Charlie", - "D": "Delta", - "E": "Echo", - "F": "Foxtrot", - "G": "Golf", - "H": "Hotel", - "I": "India", - "J": "Juliett", - "K": "Kilo", - "L": "Lima", - "M": "Mike", - "N": "November", - "O": "Oscar", - "P": "Papa", - "Q": "Quebec", - "R": "Romeo", - "S": "Sierra", - "T": "Tango", - "U": "Uniform", - "V": "Victor", - "W": "Whiskey", - "X": "X-ray", - "Y": "Yankee", - "Z": "Zulu", - "0": "Nadazero", - "1": "Unaone", - "2": "Bissotwo", - "3": "Terrathree", - "4": "Kartefour", - "5": "Pantafive", - "6": "Soxisix", - "7": "Setteseven", - "8": "Oktoeight", - "9": "Novenine", - ",": "Comma", - "/": "Forward slash", - ".": "Stop/Decimal", - }, - "german": { - "A": "Aachen", - "Ä": "Umlaut Aachen", - "B": "Berlin", - "C": "Chemnitz", - "D": "Düsseldorf", - "E": "Essen", - "F": "Frankfurt", - "G": "Goslar", - "H": "Hamburg", - "I": "Ingelheim", - "J": "Jena", - "K": "Köln", - "L": "Leipzig", - "M": "München", - "N": "Nürnberg", - "O": "Offenbach", - "Ö": "Umlaut Offenbach", - "P": "Potsdam", - "Q": "Quickborn", - "R": "Rostock", - "S": "Salzwedel", - "ẞ": "Eszett", - "T": "Tübingen", - "U": "Unna", - "Ü": "Umlaut Unna", - "V": "Völklingen", - "W": "Wuppertal", - "X": "Xanten", - "Y": "Ypsilon", - "Z": "Zwickau", - }, -} - - -def str_to_telephony(phrase, language): - language_alphabet = alphabet[language] - - return [ - language_alphabet[c] if c in language_alphabet else c for c in phrase.upper() - ] - - -language = sys.argv[1] -if language not in ["nato", "german"]: - print( - f"Langugae '{language}' is not a valid language, only 'nato' and 'german' are!", - file=sys.stderr, - ) - exit(1) - -print( - "\n".join( - str_to_telephony( - " ".join(sys.argv[2:]), - language, - ) - ) -) diff --git a/hm/soispha/pkgs/scripts/small_functions/nato.py b/hm/soispha/pkgs/scripts/small_functions/nato.py new file mode 100755 index 00000000..e9d15f56 --- /dev/null +++ b/hm/soispha/pkgs/scripts/small_functions/nato.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 +# originally from here: https://cgit.pacien.net/desktop-utilities/ + +import sys + +alphabet = { + "nato": { + "A": "Alfa", # No idea why this is not just 'Alpha' .. + "B": "Bravo", + "C": "Charlie", + "D": "Delta", + "E": "Echo", + "F": "Foxtrot", + "G": "Golf", + "H": "Hotel", + "I": "India", + "J": "Juliett", + "K": "Kilo", + "L": "Lima", + "M": "Mike", + "N": "November", + "O": "Oscar", + "P": "Papa", + "Q": "Quebec", + "R": "Romeo", + "S": "Sierra", + "T": "Tango", + "U": "Uniform", + "V": "Victor", + "W": "Whiskey", + "X": "X-ray", + "Y": "Yankee", + "Z": "Zulu", + "0": "Nadazero", + "1": "Unaone", + "2": "Bissotwo", + "3": "Terrathree", + "4": "Kartefour", + "5": "Pantafive", + "6": "Soxisix", + "7": "Setteseven", + "8": "Oktoeight", + "9": "Novenine", + ",": "Comma", + "/": "Forward slash", + ".": "Stop/Decimal", + }, + "german": { + "A": "Aachen", + "Ä": "Umlaut Aachen", + "B": "Berlin", + "C": "Chemnitz", + "D": "Düsseldorf", + "E": "Essen", + "F": "Frankfurt", + "G": "Goslar", + "H": "Hamburg", + "I": "Ingelheim", + "J": "Jena", + "K": "Köln", + "L": "Leipzig", + "M": "München", + "N": "Nürnberg", + "O": "Offenbach", + "Ö": "Umlaut Offenbach", + "P": "Potsdam", + "Q": "Quickborn", + "R": "Rostock", + "S": "Salzwedel", + "ẞ": "Eszett", + "T": "Tübingen", + "U": "Unna", + "Ü": "Umlaut Unna", + "V": "Völklingen", + "W": "Wuppertal", + "X": "Xanten", + "Y": "Ypsilon", + "Z": "Zwickau", + }, +} + + +def str_to_telephony(phrase, language): + language_alphabet = alphabet[language] + + return [ + language_alphabet[c] if c in language_alphabet else c for c in phrase.upper() + ] + + +language = sys.argv[1] +if language not in ["nato", "german"]: + print( + f"Langugae '{language}' is not a valid language, only 'nato' and 'german' are!", + file=sys.stderr, + ) + exit(1) + +print( + "\n".join( + str_to_telephony( + " ".join(sys.argv[2:]), + language, + ) + ) +) diff --git a/hm/soispha/pkgs/scripts/small_functions/screenshot_persistent b/hm/soispha/pkgs/scripts/small_functions/screenshot_persistent deleted file mode 100755 index 9e73bed3..00000000 --- a/hm/soispha/pkgs/scripts/small_functions/screenshot_persistent +++ /dev/null @@ -1,25 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -# only generate a path (this could lead to a time-of-check/time-of-use bug) -tmp="$(mktmp --dry-run)" - -if grim -g "$(slurp)" "$tmp" -then - name="$(rofi -dmenu -p "Name of screenshot: " -l 0)"; - screen_shot_path="$HOME/media/pictures/screenshots/$name.png"; - while [ -f "$screen_shot_path" ] - do - notify-send "Warning" 'Screenshot name already in use!' - name="$(rofi -dmenu -p "New name of screenshot: " -l 0)"; - screen_shot_path="$HOME/media/pictures/screenshots/$name.png"; - done - - mv "$tmp" "$screen_shot_path"; - alacritty -e lf -command ":{{ set sortby atime; set reverse!; }}"; -fi - - -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/small_functions/screenshot_persistent.sh b/hm/soispha/pkgs/scripts/small_functions/screenshot_persistent.sh new file mode 100755 index 00000000..9e73bed3 --- /dev/null +++ b/hm/soispha/pkgs/scripts/small_functions/screenshot_persistent.sh @@ -0,0 +1,25 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +# only generate a path (this could lead to a time-of-check/time-of-use bug) +tmp="$(mktmp --dry-run)" + +if grim -g "$(slurp)" "$tmp" +then + name="$(rofi -dmenu -p "Name of screenshot: " -l 0)"; + screen_shot_path="$HOME/media/pictures/screenshots/$name.png"; + while [ -f "$screen_shot_path" ] + do + notify-send "Warning" 'Screenshot name already in use!' + name="$(rofi -dmenu -p "New name of screenshot: " -l 0)"; + screen_shot_path="$HOME/media/pictures/screenshots/$name.png"; + done + + mv "$tmp" "$screen_shot_path"; + alacritty -e lf -command ":{{ set sortby atime; set reverse!; }}"; +fi + + +# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/small_functions/screenshot_temporary b/hm/soispha/pkgs/scripts/small_functions/screenshot_temporary deleted file mode 100755 index e411340d..00000000 --- a/hm/soispha/pkgs/scripts/small_functions/screenshot_temporary +++ /dev/null @@ -1,8 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -grim -g "$(slurp)" | wl-copy - -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/small_functions/screenshot_temporary.sh b/hm/soispha/pkgs/scripts/small_functions/screenshot_temporary.sh new file mode 100755 index 00000000..e411340d --- /dev/null +++ b/hm/soispha/pkgs/scripts/small_functions/screenshot_temporary.sh @@ -0,0 +1,8 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +grim -g "$(slurp)" | wl-copy + +# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/small_functions/update-sys b/hm/soispha/pkgs/scripts/small_functions/update-sys deleted file mode 100755 index 20e38841..00000000 --- a/hm/soispha/pkgs/scripts/small_functions/update-sys +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -help() { - cat << EOF -This is a NixOS System flake update manager. - -Usage: - $NAME [--branch ] [--help] - -Options: - --branch | -b BRANCHNAME - select a branch to update from. - --mode | -m MODE - select a mode to update with - --help | -h - output this help. -EOF - exit "$1"; -} -default_branch=$(mktmp); -BRANCH=""; - -while [ "$#" -gt 0 ];do - case "$1" in - "--help" | "-h") - help 0; - ;; - "--branch" | "-b") - if [ -n "$2" ];then - BRANCH="$2"; - else - error "$1 requires an argument"; - help 1; - fi - shift 2; - ;; - "--mode" | "-m") - if [ -n "$2" ];then - MODE="$2"; - else - error "$1 requires an argument"; - help 1; - fi - shift 2; - ;; - *) - error "the option $1 does not exist!"; - help 1; - ;; - esac -done - - -cd /etc/nixos || die "No /etc/nixos"; -msg "Starting system update..."; -git remote update origin --prune > /dev/null 2>&1; -if ! [ "$BRANCH" = "" ];then - git switch "$BRANCH" > /dev/null 2>&1 && msg2 "Switched to branch '$BRANCH'"; -fi -msg2 "Updating git repository..."; -git pull --rebase; - -git remote show origin | grep 'HEAD' | cut -d':' -f2 | sed -e 's/^ *//g' -e 's/ *$//g' > "$default_branch" & - -msg2 "Updating system..."; -if [ -n "$MODE" ]; then - nixos-rebuild "$MODE"; -else - nixos-rebuild switch; -fi - -git switch "$(cat "$default_branch")" > /dev/null 2>&1 && msg2 "Switched to branch '$(cat "$default_branch")'"; -msg "Finished Update!"; - -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/small_functions/update-sys.sh b/hm/soispha/pkgs/scripts/small_functions/update-sys.sh new file mode 100755 index 00000000..20e38841 --- /dev/null +++ b/hm/soispha/pkgs/scripts/small_functions/update-sys.sh @@ -0,0 +1,78 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +help() { + cat << EOF +This is a NixOS System flake update manager. + +Usage: + $NAME [--branch ] [--help] + +Options: + --branch | -b BRANCHNAME + select a branch to update from. + --mode | -m MODE + select a mode to update with + --help | -h + output this help. +EOF + exit "$1"; +} +default_branch=$(mktmp); +BRANCH=""; + +while [ "$#" -gt 0 ];do + case "$1" in + "--help" | "-h") + help 0; + ;; + "--branch" | "-b") + if [ -n "$2" ];then + BRANCH="$2"; + else + error "$1 requires an argument"; + help 1; + fi + shift 2; + ;; + "--mode" | "-m") + if [ -n "$2" ];then + MODE="$2"; + else + error "$1 requires an argument"; + help 1; + fi + shift 2; + ;; + *) + error "the option $1 does not exist!"; + help 1; + ;; + esac +done + + +cd /etc/nixos || die "No /etc/nixos"; +msg "Starting system update..."; +git remote update origin --prune > /dev/null 2>&1; +if ! [ "$BRANCH" = "" ];then + git switch "$BRANCH" > /dev/null 2>&1 && msg2 "Switched to branch '$BRANCH'"; +fi +msg2 "Updating git repository..."; +git pull --rebase; + +git remote show origin | grep 'HEAD' | cut -d':' -f2 | sed -e 's/^ *//g' -e 's/ *$//g' > "$default_branch" & + +msg2 "Updating system..."; +if [ -n "$MODE" ]; then + nixos-rebuild "$MODE"; +else + nixos-rebuild switch; +fi + +git switch "$(cat "$default_branch")" > /dev/null 2>&1 && msg2 "Switched to branch '$(cat "$default_branch")'"; +msg "Finished Update!"; + +# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/add b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/add deleted file mode 100755 index bd700775..00000000 --- a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/add +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env dash - -add0open_taskwarrior_project_file() { - task_project_file="%TASK_PROJECT_FILE"; - - cd "$(dirname $task_project_file)" || die "BUG: task_project_file ('$task_project_file') can't be accessed" - - git_dir="$(search_flake_base_dir)"; - [ "$git_dir" ] || die "(BUG): No git directory?" - cd "$git_dir" || die "Unreachable, this MUST exists" - - nvim "$task_project_file"; - git add "$task_project_file"; - - base_task_project_file_path="$(awk "{ gsub(\"$git_dir/\", \"\", \$0); print }" "$(ptmp "$task_project_file")")" - git add $task_project_file; - - # Check that only the project file has been added (and that our file is actually - # modified) - if git status --porcelain=v2 | awk -v path="$base_task_project_file_path" 'BEGIN { hit = 0 } { if ($2 ~ /A./ || $2 ~ /M./) { if ($NF ~ path) { hit = 1 } else { hit = 0; exit 1 } } } END { if (hit == 1) { exit 0 } else { exit 1 } }'; then - git commit --verbose --message="chore($(dirname "$base_task_project_file_path")): Update" - fi -} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/add.sh b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/add.sh new file mode 100755 index 00000000..bd700775 --- /dev/null +++ b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/add.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env dash + +add0open_taskwarrior_project_file() { + task_project_file="%TASK_PROJECT_FILE"; + + cd "$(dirname $task_project_file)" || die "BUG: task_project_file ('$task_project_file') can't be accessed" + + git_dir="$(search_flake_base_dir)"; + [ "$git_dir" ] || die "(BUG): No git directory?" + cd "$git_dir" || die "Unreachable, this MUST exists" + + nvim "$task_project_file"; + git add "$task_project_file"; + + base_task_project_file_path="$(awk "{ gsub(\"$git_dir/\", \"\", \$0); print }" "$(ptmp "$task_project_file")")" + git add $task_project_file; + + # Check that only the project file has been added (and that our file is actually + # modified) + if git status --porcelain=v2 | awk -v path="$base_task_project_file_path" 'BEGIN { hit = 0 } { if ($2 ~ /A./ || $2 ~ /M./) { if ($NF ~ path) { hit = 1 } else { hit = 0; exit 1 } } } END { if (hit == 1) { exit 0 } else { exit 1 } }'; then + git commit --verbose --message="chore($(dirname "$base_task_project_file_path")): Update" + fi +} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/context b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/context deleted file mode 100755 index b9ae4463..00000000 --- a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/context +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env dash - -context0open_current_task_context() { - current_context="$(utils0get_current_context)" - - if [ "$current_context" ]; then - context_path="$(utils0get_current_context_path "$current_context")"; - - extended_neorg_project_dir="$(utils0get_neorg_project_dir)"; - cd "$extended_neorg_project_dir" || die "(BUG?): Can not access the project dir: $extended_neorg_project_dir"; - - nvim "$extended_neorg_project_dir/$context_path"; - - git add .; - git commit --message="chore($(dirname "$context_path")): Update" --no-gpg-sign - else - warn "No context active"; - fi -} - -context0open_current_task_context_at_task_id() { - task_id="$1"; - current_context="$(utils0get_current_context)" - - if [ "$current_context" ]; then - context_path="$(utils0get_current_context_path "$current_context")"; - extended_neorg_project_dir="$(utils0get_neorg_project_dir)"; - task_uuid="$(task "$task_id" uuids)" - - cd "$extended_neorg_project_dir" || die "(BUG?): Can not access the project dir: $extended_neorg_project_dir"; - - if ! grep -q "% $task_uuid" "$extended_neorg_project_dir/$context_path"; then - echo "* TITLE (% $task_uuid)" >> "$extended_neorg_project_dir/$context_path" - fi - - nvim "$extended_neorg_project_dir/$context_path" -c "/% $task_uuid"; - - git add .; - git commit --message="chore($(dirname "$context_path")): Update" --no-gpg-sign - else - warn "No context active"; - fi -} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/context.sh b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/context.sh new file mode 100755 index 00000000..b9ae4463 --- /dev/null +++ b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/context.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env dash + +context0open_current_task_context() { + current_context="$(utils0get_current_context)" + + if [ "$current_context" ]; then + context_path="$(utils0get_current_context_path "$current_context")"; + + extended_neorg_project_dir="$(utils0get_neorg_project_dir)"; + cd "$extended_neorg_project_dir" || die "(BUG?): Can not access the project dir: $extended_neorg_project_dir"; + + nvim "$extended_neorg_project_dir/$context_path"; + + git add .; + git commit --message="chore($(dirname "$context_path")): Update" --no-gpg-sign + else + warn "No context active"; + fi +} + +context0open_current_task_context_at_task_id() { + task_id="$1"; + current_context="$(utils0get_current_context)" + + if [ "$current_context" ]; then + context_path="$(utils0get_current_context_path "$current_context")"; + extended_neorg_project_dir="$(utils0get_neorg_project_dir)"; + task_uuid="$(task "$task_id" uuids)" + + cd "$extended_neorg_project_dir" || die "(BUG?): Can not access the project dir: $extended_neorg_project_dir"; + + if ! grep -q "% $task_uuid" "$extended_neorg_project_dir/$context_path"; then + echo "* TITLE (% $task_uuid)" >> "$extended_neorg_project_dir/$context_path" + fi + + nvim "$extended_neorg_project_dir/$context_path" -c "/% $task_uuid"; + + git add .; + git commit --message="chore($(dirname "$context_path")): Update" --no-gpg-sign + else + warn "No context active"; + fi +} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/dmenu b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/dmenu deleted file mode 100755 index 36133004..00000000 --- a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/dmenu +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env dash - -dmenu0open_context_in_browser() { - project="$(echo "%ALL_PROJECTS_PIPE" | rofi -sep "|" -dmenu)"; - - if [ "$project" ]; then - project0open_project_in_browser "$project"; - else - notify-send "(neorg/dmenu) No project selected"; - exit 1 - fi -} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/dmenu.sh b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/dmenu.sh new file mode 100755 index 00000000..36133004 --- /dev/null +++ b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/dmenu.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env dash + +dmenu0open_context_in_browser() { + project="$(echo "%ALL_PROJECTS_PIPE" | rofi -sep "|" -dmenu)"; + + if [ "$project" ]; then + project0open_project_in_browser "$project"; + else + notify-send "(neorg/dmenu) No project selected"; + exit 1 + fi +} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_start b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_start deleted file mode 100755 index c75986a7..00000000 --- a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_start +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env dash - -fstart0start_new_task() { - task_id="$1"; - fstop0stop_current_task; - task start "$task_id" -} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_start.sh b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_start.sh new file mode 100755 index 00000000..c75986a7 --- /dev/null +++ b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_start.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env dash + +fstart0start_new_task() { + task_id="$1"; + fstop0stop_current_task; + task start "$task_id" +} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_stop b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_stop deleted file mode 100755 index d60cb46f..00000000 --- a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_stop +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env dash - -fstop0stop_current_task() { - # we ensured that only one task may be active - active="$(task +ACTIVE _ids)"; - [ "$active" ] && task stop "$active"; -} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_stop.sh b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_stop.sh new file mode 100755 index 00000000..d60cb46f --- /dev/null +++ b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/f_stop.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env dash + +fstop0stop_current_task() { + # we ensured that only one task may be active + active="$(task +ACTIVE _ids)"; + [ "$active" ] && task stop "$active"; +} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/list b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/list deleted file mode 100755 index 10659457..00000000 --- a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/list +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env dash - -list0list_all_contexts_newline() { - print "%ALL_PROJECTS_NEWLINE" -} -list0list_all_contexts_comma() { - print "%ALL_PROJECTS_COMMA" -} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/list.sh b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/list.sh new file mode 100755 index 00000000..10659457 --- /dev/null +++ b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/list.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env dash + +list0list_all_contexts_newline() { + print "%ALL_PROJECTS_NEWLINE" +} +list0list_all_contexts_comma() { + print "%ALL_PROJECTS_COMMA" +} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/project b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/project deleted file mode 100755 index 8def0930..00000000 --- a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/project +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env dash - -project0open_current_context_in_browser() { - current_context="$(utils0get_current_context)"; - [ "$current_context" ] || die "No current context to use"; - project0open_context_in_browser "$(utils0context2project "$current_context")"; -} - -project0open_project_in_browser() { - project="$1"; - [ "$project" ] || die "BUG: No context supplied to project0open_context_in_browser" - - old_context="$(utils0get_current_context)"; - # We have ensured that only one task may be active - old_started_task="$(task +ACTIVE _ids)"; - - tracking="$(mktmp)"; - task "project:$project" _ids | xargs --no-run-if-empty task _zshids > "$tracking"; - task context "$(utils0project2context "$project")" - - while read -r description; do - desc="$(echo "$description" | awk -F: '{print $2}' )"; - if [ "$desc" = "tracking" ]; then - task_id="$(echo "$description" | awk -F: '{print $1}' )"; - notify-send "(Neorg)" "Starting task $project -> $desc"; - task start "$task_id" - break - fi - done < "$tracking" - - - firefox -P "$project" - - task stop "$task_id" - [ "$old_started_task" ] && task start "$old_started_task" - - if [ "$old_context" ]; then - task context "$old_context" - else - task context none - fi -} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/project.sh b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/project.sh new file mode 100755 index 00000000..8def0930 --- /dev/null +++ b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/project.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env dash + +project0open_current_context_in_browser() { + current_context="$(utils0get_current_context)"; + [ "$current_context" ] || die "No current context to use"; + project0open_context_in_browser "$(utils0context2project "$current_context")"; +} + +project0open_project_in_browser() { + project="$1"; + [ "$project" ] || die "BUG: No context supplied to project0open_context_in_browser" + + old_context="$(utils0get_current_context)"; + # We have ensured that only one task may be active + old_started_task="$(task +ACTIVE _ids)"; + + tracking="$(mktmp)"; + task "project:$project" _ids | xargs --no-run-if-empty task _zshids > "$tracking"; + task context "$(utils0project2context "$project")" + + while read -r description; do + desc="$(echo "$description" | awk -F: '{print $2}' )"; + if [ "$desc" = "tracking" ]; then + task_id="$(echo "$description" | awk -F: '{print $1}' )"; + notify-send "(Neorg)" "Starting task $project -> $desc"; + task start "$task_id" + break + fi + done < "$tracking" + + + firefox -P "$project" + + task stop "$task_id" + [ "$old_started_task" ] && task start "$old_started_task" + + if [ "$old_context" ]; then + task context "$old_context" + else + task context none + fi +} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/utils b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/utils deleted file mode 100755 index 91da811a..00000000 --- a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/utils +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env dash - -# Runs it's first argument and then the second, regardless if the first failed or -# succeeded -utils0chain() { - eval "$1"; eval "$2" -} - -utils0get_current_context() { - current_context="$(task _get rc.context)"; - printf "%s\n" "$current_context"; -} - -utils0get_current_context_path() { - current_context="$1"; - context_path="$(task _get rc.context."$current_context".rc.neorg_path 2>/dev/null)"; - if ! [ "$context_path" ]; then - context_path="$(grep "context.$current_context.rc.neorg_path" "%HOME_TASKRC" | awk 'BEGIN {FS="="} {print $2}')"; - [ "$context_path" ] || die "All contexts should have a 'neorg_path' set!" - fi - printf "%s\n" "$context_path" -} - -utils0get_neorg_project_dir() { - # Perform shell expansion of Tilde - neorg_project_dir="$(sed "s|^~|$HOME|" "$(ptmp "%DEFAULT_NEORG_PROJECT_DIR")")"; - printf "%s\n" "$neorg_project_dir" -} - - -utils0project2context() { - project="$1"; - context="$(sed 's|\.|_|g' "$(ptmp "$project")")"; - printf "%s\n" "$context"; -} -utils0context2project() { - context="$1"; - project="$(sed 's|_|\.|g' "$(ptmp "$context")")"; - printf "%s\n" "$project"; -} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/utils.sh b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/utils.sh new file mode 100755 index 00000000..91da811a --- /dev/null +++ b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/utils.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env dash + +# Runs it's first argument and then the second, regardless if the first failed or +# succeeded +utils0chain() { + eval "$1"; eval "$2" +} + +utils0get_current_context() { + current_context="$(task _get rc.context)"; + printf "%s\n" "$current_context"; +} + +utils0get_current_context_path() { + current_context="$1"; + context_path="$(task _get rc.context."$current_context".rc.neorg_path 2>/dev/null)"; + if ! [ "$context_path" ]; then + context_path="$(grep "context.$current_context.rc.neorg_path" "%HOME_TASKRC" | awk 'BEGIN {FS="="} {print $2}')"; + [ "$context_path" ] || die "All contexts should have a 'neorg_path' set!" + fi + printf "%s\n" "$context_path" +} + +utils0get_neorg_project_dir() { + # Perform shell expansion of Tilde + neorg_project_dir="$(sed "s|^~|$HOME|" "$(ptmp "%DEFAULT_NEORG_PROJECT_DIR")")"; + printf "%s\n" "$neorg_project_dir" +} + + +utils0project2context() { + project="$1"; + context="$(sed 's|\.|_|g' "$(ptmp "$project")")"; + printf "%s\n" "$context"; +} +utils0context2project() { + context="$1"; + project="$(sed 's|_|\.|g' "$(ptmp "$context")")"; + printf "%s\n" "$project"; +} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/workspace b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/workspace deleted file mode 100755 index d5eb2fca..00000000 --- a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/workspace +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env dash - -workspace0open_neorg_workspace() { - workspace="$1" - nvim -c "NeorgStart" -s "$(ptmp ":Neorg workspace $workspace\n")" -} -workspace0open_neorg_workspace_prompt() { - nvim -c "NeorgStart" -s "$(ptmp ":Neorg workspace ")" -} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/workspace.sh b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/workspace.sh new file mode 100755 index 00000000..d5eb2fca --- /dev/null +++ b/hm/soispha/pkgs/scripts/specific/neorg/sh/functions/workspace.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env dash + +workspace0open_neorg_workspace() { + workspace="$1" + nvim -c "NeorgStart" -s "$(ptmp ":Neorg workspace $workspace\n")" +} +workspace0open_neorg_workspace_prompt() { + nvim -c "NeorgStart" -s "$(ptmp ":Neorg workspace ")" +} diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/main b/hm/soispha/pkgs/scripts/specific/neorg/sh/main deleted file mode 100755 index 25b434fc..00000000 --- a/hm/soispha/pkgs/scripts/specific/neorg/sh/main +++ /dev/null @@ -1,156 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -# load dependencies -. ./functions/add -. ./functions/context -. ./functions/dmenu -. ./functions/f_start -. ./functions/f_stop -. ./functions/list -. ./functions/project -. ./functions/utils -. ./functions/workspace - - -# these are used in version() -# shellcheck disable=2034 -AUTHORS="Soispha" -# shellcheck disable=2034 -YEARS="2023" - -NAME="neorg" - -help() { -cat << EOF -This is the core interface to the system-integrated task management - -USAGE: - $NAME [OPTIONS] [COMMAND] - -OPTIONS: - --help | -h - Display this help and exit. - - --version | -v - Display version and copyright information and exit. -COMMANDS: - task [ID] - Open the neorg context associated with the current context and - the uuid of the task with id ID. Without ID, it'll open the - current context's norg file. - If no context is set, drops you to the selection prompt - - dmenu - Select a project in dmenu mode. This will give you all projects - and exectute the selected one as in 'neorg projects ' - - workspace [WS] - The neorg workspace (WS) to open at startup, an empty value drops - you at a prompt to enter the workspace yourself. - - project [P] - Opens the webbrowser with either the context (P) or - the current active context as argument if no context is supplied - - list - Lists all available contexts - - add - Allows you to quickly add projects - - fstart ID - Starts the task (ID) but only after it stooped - the previous active task, if it existed. - - fstop - Stops the current active task -ARGUMENTS: - ID | *([0-9]) := [[%ID_GENERATION_FUNCTION]] - The function displays all possible IDs of the eligable tasks. - - WS := %ALL_WORKSPACES - All possible workspaces - - P := %ALL_PROJECTS_PIPE - The possible project - -EOF -} - -for arg in "$@"; do - case "$arg" in - "--help" | "-h") - help; - exit 0; - ;; - "--version" | "-v") - version; - exit 0; - ;; - esac -done - -while [ "$#" -ne 0 ]; do - case "$1" in - "t"*) # task - shift 1; - task_id="$1"; - [ "$task_id" ] || utils0chain context0open_current_task_context "exit 0" - context0open_current_task_context_at_task_id "$task_id"; - exit 0; - ;; - "w"*) # workspace - shift 1; - workspace_to_open="$1"; - # TODO: Exit with 1 on error, instead of the 0 <2023-10-20> - [ "$workspace_to_open" ] || utils0chain workspace0open_neorg_workspace_prompt "exit 0"; - workspace0open_neorg_workspace "$workspace_to_open"; - exit 0; - ;; - "p"*) # project - shift 1; - project_to_open="$1"; - # TODO: Exit with 1 on error, instead of the 0 <2023-10-20> - [ "$project_to_open" ] || utils0chain project0open_current_context_in_browser "exit 0"; - if ! grep -q "$project_to_open" "$(ptmp "%ALL_PROJECTS_NEWLINE")"; then - die "Your project ('$project_to_open') is not in the list of available projects: -%ALL_PROJECTS_COMMA"; - fi - project0open_project_in_browser "$project_to_open"; - exit 0; - ;; - "l"*) # list - list0list_all_contexts_newline; - exit 0 - ;; - "a"*) # add-project - add0open_taskwarrior_project_file; - exit 0 - ;; - "d"*) # dmenu - dmenu0open_context_in_browser; - exit 0 - ;; - "fsta"*) # fstart - shift 1; - task_id="$1"; - [ "$task_id" ] || die "No task id provided to fstart"; - fstart0start_new_task "$task_id"; - exit 0 - ;; - "fsto"*) # fstop - fstop0stop_current_task; - exit 0 - ;; - *) - die "Command '$1' does not exist! Please look at:\n $NAME --help"; - exit 0; - ;; - esac -done - -context0open_current_task_context; -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/main.sh b/hm/soispha/pkgs/scripts/specific/neorg/sh/main.sh new file mode 100755 index 00000000..25b434fc --- /dev/null +++ b/hm/soispha/pkgs/scripts/specific/neorg/sh/main.sh @@ -0,0 +1,156 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +# load dependencies +. ./functions/add +. ./functions/context +. ./functions/dmenu +. ./functions/f_start +. ./functions/f_stop +. ./functions/list +. ./functions/project +. ./functions/utils +. ./functions/workspace + + +# these are used in version() +# shellcheck disable=2034 +AUTHORS="Soispha" +# shellcheck disable=2034 +YEARS="2023" + +NAME="neorg" + +help() { +cat << EOF +This is the core interface to the system-integrated task management + +USAGE: + $NAME [OPTIONS] [COMMAND] + +OPTIONS: + --help | -h + Display this help and exit. + + --version | -v + Display version and copyright information and exit. +COMMANDS: + task [ID] + Open the neorg context associated with the current context and + the uuid of the task with id ID. Without ID, it'll open the + current context's norg file. + If no context is set, drops you to the selection prompt + + dmenu + Select a project in dmenu mode. This will give you all projects + and exectute the selected one as in 'neorg projects ' + + workspace [WS] + The neorg workspace (WS) to open at startup, an empty value drops + you at a prompt to enter the workspace yourself. + + project [P] + Opens the webbrowser with either the context (P) or + the current active context as argument if no context is supplied + + list + Lists all available contexts + + add + Allows you to quickly add projects + + fstart ID + Starts the task (ID) but only after it stooped + the previous active task, if it existed. + + fstop + Stops the current active task +ARGUMENTS: + ID | *([0-9]) := [[%ID_GENERATION_FUNCTION]] + The function displays all possible IDs of the eligable tasks. + + WS := %ALL_WORKSPACES + All possible workspaces + + P := %ALL_PROJECTS_PIPE + The possible project + +EOF +} + +for arg in "$@"; do + case "$arg" in + "--help" | "-h") + help; + exit 0; + ;; + "--version" | "-v") + version; + exit 0; + ;; + esac +done + +while [ "$#" -ne 0 ]; do + case "$1" in + "t"*) # task + shift 1; + task_id="$1"; + [ "$task_id" ] || utils0chain context0open_current_task_context "exit 0" + context0open_current_task_context_at_task_id "$task_id"; + exit 0; + ;; + "w"*) # workspace + shift 1; + workspace_to_open="$1"; + # TODO: Exit with 1 on error, instead of the 0 <2023-10-20> + [ "$workspace_to_open" ] || utils0chain workspace0open_neorg_workspace_prompt "exit 0"; + workspace0open_neorg_workspace "$workspace_to_open"; + exit 0; + ;; + "p"*) # project + shift 1; + project_to_open="$1"; + # TODO: Exit with 1 on error, instead of the 0 <2023-10-20> + [ "$project_to_open" ] || utils0chain project0open_current_context_in_browser "exit 0"; + if ! grep -q "$project_to_open" "$(ptmp "%ALL_PROJECTS_NEWLINE")"; then + die "Your project ('$project_to_open') is not in the list of available projects: +%ALL_PROJECTS_COMMA"; + fi + project0open_project_in_browser "$project_to_open"; + exit 0; + ;; + "l"*) # list + list0list_all_contexts_newline; + exit 0 + ;; + "a"*) # add-project + add0open_taskwarrior_project_file; + exit 0 + ;; + "d"*) # dmenu + dmenu0open_context_in_browser; + exit 0 + ;; + "fsta"*) # fstart + shift 1; + task_id="$1"; + [ "$task_id" ] || die "No task id provided to fstart"; + fstart0start_new_task "$task_id"; + exit 0 + ;; + "fsto"*) # fstop + fstop0stop_current_task; + exit 0 + ;; + *) + die "Command '$1' does not exist! Please look at:\n $NAME --help"; + exit 0; + ;; + esac +done + +context0open_current_task_context; +# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/specific/ytcc/description b/hm/soispha/pkgs/scripts/specific/ytcc/description deleted file mode 100755 index e2a1afaa..00000000 --- a/hm/soispha/pkgs/scripts/specific/ytcc/description +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -jq --raw-output '.description' "$XDG_RUNTIME_DIR/ytcc/running" | fmt -u -s | less - -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/specific/ytcc/description.sh b/hm/soispha/pkgs/scripts/specific/ytcc/description.sh new file mode 100755 index 00000000..e2a1afaa --- /dev/null +++ b/hm/soispha/pkgs/scripts/specific/ytcc/description.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +jq --raw-output '.description' "$XDG_RUNTIME_DIR/ytcc/running" | fmt -u -s | less + +# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/hibernate b/hm/soispha/pkgs/scripts/wrappers/hibernate deleted file mode 100755 index 96170bcb..00000000 --- a/hm/soispha/pkgs/scripts/wrappers/hibernate +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -context="$(task _get rc.context)"; -[ "$context" ] && task context none - -# We have ensured that only one task is active -active="$(task +ACTIVE _ids)"; -[ "$active" ] && task stop "$active" - -systemctl hibernate "$@" - - -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/hibernate.sh b/hm/soispha/pkgs/scripts/wrappers/hibernate.sh new file mode 100755 index 00000000..96170bcb --- /dev/null +++ b/hm/soispha/pkgs/scripts/wrappers/hibernate.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +context="$(task _get rc.context)"; +[ "$context" ] && task context none + +# We have ensured that only one task is active +active="$(task +ACTIVE _ids)"; +[ "$active" ] && task stop "$active" + +systemctl hibernate "$@" + + +# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/ll b/hm/soispha/pkgs/scripts/wrappers/ll deleted file mode 100755 index 2a65d0a6..00000000 --- a/hm/soispha/pkgs/scripts/wrappers/ll +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -last_directory="$(mktemp)" - -command lf -last-dir-path="$last_directory" "$@" - -dir="$(cat "$last_directory")" -cd "$dir" || die "$dir does not exist!" -rm "$last_directory" - -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/ll.sh b/hm/soispha/pkgs/scripts/wrappers/ll.sh new file mode 100755 index 00000000..2a65d0a6 --- /dev/null +++ b/hm/soispha/pkgs/scripts/wrappers/ll.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +last_directory="$(mktemp)" + +command lf -last-dir-path="$last_directory" "$@" + +dir="$(cat "$last_directory")" +cd "$dir" || die "$dir does not exist!" +rm "$last_directory" + +# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/lock b/hm/soispha/pkgs/scripts/wrappers/lock deleted file mode 100755 index 376773c6..00000000 --- a/hm/soispha/pkgs/scripts/wrappers/lock +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - - -context="$(task _get rc.context)"; -[ "$context" ] && task context none - -# We have ensured that only one task is active -active="$(task +ACTIVE _ids)"; -[ "$active" ] && task stop "$active" - -swaylock - -[ "$active" ] && task start "$active" - -[ "$context" ] && task context "$context" -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/lock.sh b/hm/soispha/pkgs/scripts/wrappers/lock.sh new file mode 100755 index 00000000..376773c6 --- /dev/null +++ b/hm/soispha/pkgs/scripts/wrappers/lock.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + + +context="$(task _get rc.context)"; +[ "$context" ] && task context none + +# We have ensured that only one task is active +active="$(task +ACTIVE _ids)"; +[ "$active" ] && task stop "$active" + +swaylock + +[ "$active" ] && task start "$active" + +[ "$context" ] && task context "$context" +# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/lyrics b/hm/soispha/pkgs/scripts/wrappers/lyrics deleted file mode 100755 index 83a01083..00000000 --- a/hm/soispha/pkgs/scripts/wrappers/lyrics +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -( - cd "$XDG_MUSIC_DIR" || die "No music dir!" - exiftool "$(mpc --format '%file%' current)" -json | jq '.[0].Lyrics' -r | less -) - -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/lyrics.sh b/hm/soispha/pkgs/scripts/wrappers/lyrics.sh new file mode 100755 index 00000000..83a01083 --- /dev/null +++ b/hm/soispha/pkgs/scripts/wrappers/lyrics.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +( + cd "$XDG_MUSIC_DIR" || die "No music dir!" + exiftool "$(mpc --format '%file%' current)" -json | jq '.[0].Lyrics' -r | less +) + +# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/mpc-fav b/hm/soispha/pkgs/scripts/wrappers/mpc-fav deleted file mode 100755 index f9107ff6..00000000 --- a/hm/soispha/pkgs/scripts/wrappers/mpc-fav +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -FAV_DIR="$XDG_MUSIC_DIR/playlists/favourites"; - -cd "$XDG_MUSIC_DIR" || die "No music dir!"; - -[ -d "$FAV_DIR" ] || mkdir --parents "$FAV_DIR"; - -ln -sr "$(mpc --format '%file%' current)" "$FAV_DIR/" || die "Link failed!"; - - -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/mpc-fav.sh b/hm/soispha/pkgs/scripts/wrappers/mpc-fav.sh new file mode 100755 index 00000000..f9107ff6 --- /dev/null +++ b/hm/soispha/pkgs/scripts/wrappers/mpc-fav.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +FAV_DIR="$XDG_MUSIC_DIR/playlists/favourites"; + +cd "$XDG_MUSIC_DIR" || die "No music dir!"; + +[ -d "$FAV_DIR" ] || mkdir --parents "$FAV_DIR"; + +ln -sr "$(mpc --format '%file%' current)" "$FAV_DIR/" || die "Link failed!"; + + +# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/mpc-rm b/hm/soispha/pkgs/scripts/wrappers/mpc-rm deleted file mode 100755 index cc01c322..00000000 --- a/hm/soispha/pkgs/scripts/wrappers/mpc-rm +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - - -cd "$XDG_MUSIC_DIR" || die "No music dir!" -trash-put "$(mpc --format '%file%' current)"; -mpc del 0; - - - - -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/mpc-rm.sh b/hm/soispha/pkgs/scripts/wrappers/mpc-rm.sh new file mode 100755 index 00000000..cc01c322 --- /dev/null +++ b/hm/soispha/pkgs/scripts/wrappers/mpc-rm.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + + +cd "$XDG_MUSIC_DIR" || die "No music dir!" +trash-put "$(mpc --format '%file%' current)"; +mpc del 0; + + + + +# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/show b/hm/soispha/pkgs/scripts/wrappers/show deleted file mode 100755 index 95afb16c..00000000 --- a/hm/soispha/pkgs/scripts/wrappers/show +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -# Maybe add `--quit-if-one-screen` -less --redraw-on-quit "$@" - -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/show.sh b/hm/soispha/pkgs/scripts/wrappers/show.sh new file mode 100755 index 00000000..95afb16c --- /dev/null +++ b/hm/soispha/pkgs/scripts/wrappers/show.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +# Maybe add `--quit-if-one-screen` +less --redraw-on-quit "$@" + +# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/sort_song b/hm/soispha/pkgs/scripts/wrappers/sort_song deleted file mode 100755 index f539cf15..00000000 --- a/hm/soispha/pkgs/scripts/wrappers/sort_song +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -case "$("$1" | tr '[:upper:]' '[:lower:]')" in - "lyrics") - filter="LYRICS"; - directory="lyrics"; - ;; - "instrumental") - filter="INSTRUMENTAL"; - directory="instrumental"; - ;; - *) - die "Expected 'instrumental|lyrics' but got '$1'"; -esac - -process() { - mediainfo --Output=JSON "$1" | jq '.media.track | map(.Lyrics) | join("")' -}; - -mkdir "../$directory"; - -fd . --extension=opus | while read -r file; do - if [ "$(process "$file")" = '""' ] || [ "$(process "$file")" = '"Instrumental"' ] || [ "$(process "$file")" = '"instrumental"' ]; then - echo "INSTRUMENTAL::$file"; - else - echo "LYRICS::$file"; - fi; - done | grep "$filter" | awk 'BEGIN {FS="::"}{print $2}' | while read -r file; do ln -s "../all/$file" "../$directory/$file"; done - -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/sort_song.sh b/hm/soispha/pkgs/scripts/wrappers/sort_song.sh new file mode 100755 index 00000000..f539cf15 --- /dev/null +++ b/hm/soispha/pkgs/scripts/wrappers/sort_song.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +case "$("$1" | tr '[:upper:]' '[:lower:]')" in + "lyrics") + filter="LYRICS"; + directory="lyrics"; + ;; + "instrumental") + filter="INSTRUMENTAL"; + directory="instrumental"; + ;; + *) + die "Expected 'instrumental|lyrics' but got '$1'"; +esac + +process() { + mediainfo --Output=JSON "$1" | jq '.media.track | map(.Lyrics) | join("")' +}; + +mkdir "../$directory"; + +fd . --extension=opus | while read -r file; do + if [ "$(process "$file")" = '""' ] || [ "$(process "$file")" = '"Instrumental"' ] || [ "$(process "$file")" = '"instrumental"' ]; then + echo "INSTRUMENTAL::$file"; + else + echo "LYRICS::$file"; + fi; + done | grep "$filter" | awk 'BEGIN {FS="::"}{print $2}' | while read -r file; do ln -s "../all/$file" "../$directory/$file"; done + +# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/spodi b/hm/soispha/pkgs/scripts/wrappers/spodi deleted file mode 100755 index f8bc5337..00000000 --- a/hm/soispha/pkgs/scripts/wrappers/spodi +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -# This path must not contain spaces -DOWN_DIR="/home/soispha/media/music/down/spotify"; - -download_url="$1"; - - - -already_downloaded_files="$(mktmp)" -fd . "$DOWN_DIR" --exclude spotdl.log --exclude spotdl-errors.log > "$already_downloaded_files"; - -config="$(mktmp)" -cat << EOF | clean > "$config" -# Main options ---audio slider-kz bandcamp youtube-music piped youtube soundcloud ---lyrics genius musixmatch azlyrics synced - -# FFmpeg options ---ffmpeg ffmpeg ---threads 16 ---bitrate 256k - -# Spotify options ---cache-path /home/soispha/.cache/spotdl/.spotipy - -# Output options ---preload ---format opus ---output {artists}_-_{title} ---print-errors ---save-errors $DOWN_DIR/spotdl-errors.log -# TODO: Reactive whence spotdl support for these has improved <2023-12-19> -# --generate-lrc ---overwrite skip - -# Misc options ---log-level INFO -EOF - -if [ -z "$NO_CHECK" ] && [ "$(wc -l < "$already_downloaded_files" )" -ne 0 ];then - die "something is already downloaded" -fi - -rm "$DOWN_DIR/spotdl.log" -cd "$DOWN_DIR" || die "BUG: no $DOWN_DIR" -touch "$DOWN_DIR/spotdl-errors.log" - - -# The sub shell needs to be unquoted, as the arguments may not be treated as one. -# shellcheck disable=2046 -unbuffer spotdl $(cat "$config") download "$download_url" | tee "$DOWN_DIR/spotdl.log" - -[ -d ~/.spotdl ] && rm -r ~/.spotdl -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/spodi.sh b/hm/soispha/pkgs/scripts/wrappers/spodi.sh new file mode 100755 index 00000000..f8bc5337 --- /dev/null +++ b/hm/soispha/pkgs/scripts/wrappers/spodi.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +# This path must not contain spaces +DOWN_DIR="/home/soispha/media/music/down/spotify"; + +download_url="$1"; + + + +already_downloaded_files="$(mktmp)" +fd . "$DOWN_DIR" --exclude spotdl.log --exclude spotdl-errors.log > "$already_downloaded_files"; + +config="$(mktmp)" +cat << EOF | clean > "$config" +# Main options +--audio slider-kz bandcamp youtube-music piped youtube soundcloud +--lyrics genius musixmatch azlyrics synced + +# FFmpeg options +--ffmpeg ffmpeg +--threads 16 +--bitrate 256k + +# Spotify options +--cache-path /home/soispha/.cache/spotdl/.spotipy + +# Output options +--preload +--format opus +--output {artists}_-_{title} +--print-errors +--save-errors $DOWN_DIR/spotdl-errors.log +# TODO: Reactive whence spotdl support for these has improved <2023-12-19> +# --generate-lrc +--overwrite skip + +# Misc options +--log-level INFO +EOF + +if [ -z "$NO_CHECK" ] && [ "$(wc -l < "$already_downloaded_files" )" -ne 0 ];then + die "something is already downloaded" +fi + +rm "$DOWN_DIR/spotdl.log" +cd "$DOWN_DIR" || die "BUG: no $DOWN_DIR" +touch "$DOWN_DIR/spotdl-errors.log" + + +# The sub shell needs to be unquoted, as the arguments may not be treated as one. +# shellcheck disable=2046 +unbuffer spotdl $(cat "$config") download "$download_url" | tee "$DOWN_DIR/spotdl.log" + +[ -d ~/.spotdl ] && rm -r ~/.spotdl +# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/virsh-del b/hm/soispha/pkgs/scripts/wrappers/virsh-del deleted file mode 100755 index 96a9404d..00000000 --- a/hm/soispha/pkgs/scripts/wrappers/virsh-del +++ /dev/null @@ -1,10 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -virsh destroy "$1" -virsh undefine "$1" --nvram -virsh vol-delete --pool default "$1".qcow2 - -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/virsh-del.sh b/hm/soispha/pkgs/scripts/wrappers/virsh-del.sh new file mode 100755 index 00000000..96a9404d --- /dev/null +++ b/hm/soispha/pkgs/scripts/wrappers/virsh-del.sh @@ -0,0 +1,10 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +virsh destroy "$1" +virsh undefine "$1" --nvram +virsh vol-delete --pool default "$1".qcow2 + +# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/yti b/hm/soispha/pkgs/scripts/wrappers/yti deleted file mode 100755 index c07f6665..00000000 --- a/hm/soispha/pkgs/scripts/wrappers/yti +++ /dev/null @@ -1,34 +0,0 @@ -#! /usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -DOWN_DIR=/home/soispha/media/music/down/youtube - -tmp=$(mktmp) -config=$(mktmp) - -for e in "$DOWN_DIR"/*.opus;do echo "$e" >> "$tmp";done -[ "$(wc -l "$tmp" | awk '{print $1}')" -gt 2 ] && die "something is already downloaded" - -cat << EO > "$config" ---paths home:"$DOWN_DIR" -#--output %(fulltitle) ---restrict-filenames ---no-overwrites ---no-write-info-json ---clean-info-json ---prefer-free-formats -#--format mp3 ---extract-audio ---audio-quality 0 ---audio-format best -EO - - -rm "$DOWN_DIR/yt-dlp.log" -cd "$DOWN_DIR" || die "BUG: no $DOWN_DIR" - -unbuffer yt-dlp --config-location "$config" "$1" | tee "$DOWN_DIR/yt-dlp.log" - -# vim: ft=sh diff --git a/hm/soispha/pkgs/scripts/wrappers/yti.sh b/hm/soispha/pkgs/scripts/wrappers/yti.sh new file mode 100755 index 00000000..c07f6665 --- /dev/null +++ b/hm/soispha/pkgs/scripts/wrappers/yti.sh @@ -0,0 +1,34 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +DOWN_DIR=/home/soispha/media/music/down/youtube + +tmp=$(mktmp) +config=$(mktmp) + +for e in "$DOWN_DIR"/*.opus;do echo "$e" >> "$tmp";done +[ "$(wc -l "$tmp" | awk '{print $1}')" -gt 2 ] && die "something is already downloaded" + +cat << EO > "$config" +--paths home:"$DOWN_DIR" +#--output %(fulltitle) +--restrict-filenames +--no-overwrites +--no-write-info-json +--clean-info-json +--prefer-free-formats +#--format mp3 +--extract-audio +--audio-quality 0 +--audio-format best +EO + + +rm "$DOWN_DIR/yt-dlp.log" +cd "$DOWN_DIR" || die "BUG: no $DOWN_DIR" + +unbuffer yt-dlp --config-location "$config" "$1" | tee "$DOWN_DIR/yt-dlp.log" + +# vim: ft=sh diff --git a/hm/soispha/wms/river/default.nix b/hm/soispha/wms/river/default.nix index 3abe3753..36a9ca74 100644 --- a/hm/soispha/wms/river/default.nix +++ b/hm/soispha/wms/river/default.nix @@ -37,7 +37,7 @@ else builtins.throw "Host not covered in river screen setup"; env_vars = "XDG_CURRENT_DESKTOP=river DESKTOP_SESSION=river"; init_scr = pkgs.substituteAll { - src = ./init; + src = ./init.sh; inherit mappings screen_setup env_vars; }; in { diff --git a/hm/soispha/wms/river/init b/hm/soispha/wms/river/init deleted file mode 100755 index 7286318e..00000000 --- a/hm/soispha/wms/river/init +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/env bash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH - -err_fail() { - if ! "$@";then - warning "\"$*\" failed!\n" >> ~/river_log - # msg "Executing the safe init!" - # exec ~/.config/river/res/safe_init - fi -} -err_fail rm ~/river_log -exec 1>> "$HOME"/river_log -exec 2>> "$HOME"/river_log - -#trap err_fail ERR - -#Setup of environment variables {{{ -err_fail riverctl spawn "exec dbus-update-activation-environment --systemd SEATD_SOCK DISPLAY WAYLAND_DISPLAY DESKTOP_SESSION=river XDG_CURRENT_DESKTOP=river" -export @env_vars@ -#}}} - -# Setup of mappings {{{ -@mappings@ -# }}} - -# Setup of Rules {{{ -err_fail riverctl float-filter-add app-id float -err_fail riverctl float-filter-add app-id mpv -err_fail riverctl float-filter-add app-id ModernGL -err_fail riverctl float-filter-add title "Manim Slides" -err_fail riverctl float-filter-add title 'floating please' - -err_fail riverctl csd-filter-add app-id firefox -# }}} - -# Set riverctl settings {{{ -# background -err_fail riverctl background-color 0x002b36 -err_fail riverctl border-color-focused 0x93a1a1 -err_fail riverctl border-color-unfocused 0x586e75 - -# keyboard repeat rate -err_fail riverctl set-repeat 50 300 - -# Cursor -err_fail riverctl focus-follows-cursor normal -#riverctl hide-cursor timeout 2000 -err_fail riverctl hide-cursor when-typing enabled -err_fail riverctl set-cursor-warp on-output-change -err_fail riverctl xcursor-theme Nordzy-cursors 24 - -err_fail riverctl input pointer-1133-49970-Logitech_Gaming_Mouse_G502 pointer-accel 0 -err_fail riverctl input pointer-1133-49970-Logitech_Gaming_Mouse_G502 accel-profile none - -err_fail riverctl input pointer-12951-6505-ZSA_Technology_Labs_Moonlander_Mark_I pointer-accel 0 -err_fail riverctl input pointer-12951-6505-ZSA_Technology_Labs_Moonlander_Mark_I accel-profile none -# }}} - -# Setup of general apps {{{ -@screen_setup@ - -err_fail yambar & - -err_fail mako & -err_fail swaybg -i "$WALLPAPER" & -err_fail swayidle & -err_fail alacritty & -# }}} - - - -# Setup of layout [acts as exec!] {{{ -err_fail riverctl default-layout rivertile -@env_vars@ rivertile -main-ratio 0.5 -view-padding 1 -outer-padding 0 - -#riverctl default-layout luatile -#river-luatile -# }}} -# vim: ft=sh diff --git a/hm/soispha/wms/river/init.sh b/hm/soispha/wms/river/init.sh new file mode 100755 index 00000000..07b30732 --- /dev/null +++ b/hm/soispha/wms/river/init.sh @@ -0,0 +1,81 @@ +#!/usr/bin/env bash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH + +err_fail() { + if ! "$@";then + warning "\"$*\" failed!\n" >> ~/river_log + # msg "Executing the safe init!" + # exec ~/.config/river/res/safe_init.sh + fi +} +err_fail rm ~/river_log +exec 1>> "$HOME"/river_log +exec 2>> "$HOME"/river_log + +#trap err_fail ERR + +#Setup of environment variables {{{ +err_fail riverctl spawn "exec dbus-update-activation-environment --systemd SEATD_SOCK DISPLAY WAYLAND_DISPLAY DESKTOP_SESSION=river XDG_CURRENT_DESKTOP=river" +export @env_vars@ +#}}} + +# Setup of mappings {{{ +@mappings@ +# }}} + +# Setup of Rules {{{ +err_fail riverctl float-filter-add app-id float +err_fail riverctl float-filter-add app-id mpv +err_fail riverctl float-filter-add app-id ModernGL +err_fail riverctl float-filter-add title "Manim Slides" +err_fail riverctl float-filter-add title 'floating please' + +err_fail riverctl csd-filter-add app-id firefox +# }}} + +# Set riverctl settings {{{ +# background +err_fail riverctl background-color 0x002b36 +err_fail riverctl border-color-focused 0x93a1a1 +err_fail riverctl border-color-unfocused 0x586e75 + +# keyboard repeat rate +err_fail riverctl set-repeat 50 300 + +# Cursor +err_fail riverctl focus-follows-cursor normal +#riverctl hide-cursor timeout 2000 +err_fail riverctl hide-cursor when-typing enabled +err_fail riverctl set-cursor-warp on-output-change +err_fail riverctl xcursor-theme Nordzy-cursors 24 + +err_fail riverctl input pointer-1133-49970-Logitech_Gaming_Mouse_G502 pointer-accel 0 +err_fail riverctl input pointer-1133-49970-Logitech_Gaming_Mouse_G502 accel-profile none + +err_fail riverctl input pointer-12951-6505-ZSA_Technology_Labs_Moonlander_Mark_I pointer-accel 0 +err_fail riverctl input pointer-12951-6505-ZSA_Technology_Labs_Moonlander_Mark_I accel-profile none +# }}} + +# Setup of general apps {{{ +@screen_setup@ + +err_fail yambar & + +err_fail mako & +err_fail swaybg -i "$WALLPAPER" & +err_fail swayidle & +err_fail alacritty & +# }}} + + + +# Setup of layout [acts as exec!] {{{ +err_fail riverctl default-layout rivertile +@env_vars@ rivertile -main-ratio 0.5 -view-padding 1 -outer-padding 0 + +#riverctl default-layout luatile +#river-luatile +# }}} +# vim: ft=sh diff --git a/hm/soispha/wms/river/res/safe_init b/hm/soispha/wms/river/res/safe_init deleted file mode 100755 index 8e80026a..00000000 --- a/hm/soispha/wms/river/res/safe_init +++ /dev/null @@ -1,160 +0,0 @@ -#!/bin/sh - -# This is the example configuration file for river. -# -# If you wish to edit this, you will probably want to copy it to -# $XDG_CONFIG_HOME/river/init or $HOME/.config/river/init first. -# -# See the river(1), riverctl(1), and rivertile(1) man pages for complete -# documentation. - -# Note: the "Super" modifier is also known as Logo, GUI, Windows, Mod4, etc. - -# Super+Shift+Return to start an instance of foot (https://codeberg.org/dnkl/foot) -riverctl map normal Super Return spawn alacritty - -# Super+Q to close the focused view -riverctl map normal Super Q close - -# Super+Shift+E to exit river -riverctl map normal Super+Shift Q exit - -# Super+J and Super+K to focus the next/previous view in the layout stack -riverctl map normal Super J focus-view next -riverctl map normal Super K focus-view previous - -# Super+Shift+J and Super+Shift+K to swap the focused view with the next/previous -# view in the layout stack -riverctl map normal Super+Shift J swap next -riverctl map normal Super+Shift K swap previous - -# Super+Period and Super+Comma to focus the next/previous output -riverctl map normal Super Period focus-output next -riverctl map normal Super Comma focus-output previous - -# Super+Shift+{Period,Comma} to send the focused view to the next/previous output -riverctl map normal Super+Shift Period send-to-output next -riverctl map normal Super+Shift Comma send-to-output previous - -# Super+Return to bump the focused view to the top of the layout stack -riverctl map normal Super Return zoom - -# Super+H and Super+L to decrease/increase the main ratio of rivertile(1) -riverctl map normal Super H send-layout-cmd rivertile "main-ratio -0.05" -riverctl map normal Super L send-layout-cmd rivertile "main-ratio +0.05" - -# Super+Shift+H and Super+Shift+L to increment/decrement the main count of rivertile(1) -riverctl map normal Super+Shift H send-layout-cmd rivertile "main-count +1" -riverctl map normal Super+Shift L send-layout-cmd rivertile "main-count -1" - -# Super+Alt+{H,J,K,L} to move views -riverctl map normal Super+Alt H move left 100 -riverctl map normal Super+Alt J move down 100 -riverctl map normal Super+Alt K move up 100 -riverctl map normal Super+Alt L move right 100 - -# Super+Alt+Control+{H,J,K,L} to snap views to screen edges -riverctl map normal Super+Alt+Control H snap left -riverctl map normal Super+Alt+Control J snap down -riverctl map normal Super+Alt+Control K snap up -riverctl map normal Super+Alt+Control L snap right - -# Super+Alt+Shift+{H,J,K,L} to resize views -riverctl map normal Super+Alt+Shift H resize horizontal -100 -riverctl map normal Super+Alt+Shift J resize vertical 100 -riverctl map normal Super+Alt+Shift K resize vertical -100 -riverctl map normal Super+Alt+Shift L resize horizontal 100 - -# Super + Left Mouse Button to move views -riverctl map-pointer normal Super BTN_LEFT move-view - -# Super + Right Mouse Button to resize views -riverctl map-pointer normal Super BTN_RIGHT resize-view - -for i in $(seq 1 9) -do - tags=$((1 << ($i - 1))) - - # Super+[1-9] to focus tag [0-8] - riverctl map normal Super $i set-focused-tags $tags - - # Super+Shift+[1-9] to tag focused view with tag [0-8] - riverctl map normal Super+Shift $i set-view-tags $tags - - # Super+Ctrl+[1-9] to toggle focus of tag [0-8] - riverctl map normal Super+Control $i toggle-focused-tags $tags - - # Super+Shift+Ctrl+[1-9] to toggle tag [0-8] of focused view - riverctl map normal Super+Shift+Control $i toggle-view-tags $tags -done - -# Super+0 to focus all tags -# Super+Shift+0 to tag focused view with all tags -all_tags=$(((1 << 32) - 1)) -riverctl map normal Super 0 set-focused-tags $all_tags -riverctl map normal Super+Shift 0 set-view-tags $all_tags - -# Super+Space to toggle float -riverctl map normal Super Space toggle-float - -# Super+F to toggle fullscreen -riverctl map normal Super F toggle-fullscreen - -# Super+{Up,Right,Down,Left} to change layout orientation -riverctl map normal Super Up send-layout-cmd rivertile "main-location top" -riverctl map normal Super Right send-layout-cmd rivertile "main-location right" -riverctl map normal Super Down send-layout-cmd rivertile "main-location bottom" -riverctl map normal Super Left send-layout-cmd rivertile "main-location left" - -# Declare a passthrough mode. This mode has only a single mapping to return to -# normal mode. This makes it useful for testing a nested wayland compositor -riverctl declare-mode passthrough - -# Super+F11 to enter passthrough mode -riverctl map normal Super F11 enter-mode passthrough - -# Super+F11 to return to normal mode -riverctl map passthrough Super F11 enter-mode normal - -# Various media key mapping examples for both normal and locked mode which do -# not have a modifier -for mode in normal locked -do - # Eject the optical drive (well if you still have one that is) - riverctl map $mode None XF86Eject spawn 'eject -T' - - # Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer) - riverctl map $mode None XF86AudioRaiseVolume spawn 'pamixer -i 5' - riverctl map $mode None XF86AudioLowerVolume spawn 'pamixer -d 5' - riverctl map $mode None XF86AudioMute spawn 'pamixer --toggle-mute' - - # Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl) - riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause' - riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause' - riverctl map $mode None XF86AudioPrev spawn 'playerctl previous' - riverctl map $mode None XF86AudioNext spawn 'playerctl next' - - # Control screen backlight brightness with light (https://github.com/haikarainen/light) - riverctl map $mode None XF86MonBrightnessUp spawn 'light -A 5' - riverctl map $mode None XF86MonBrightnessDown spawn 'light -U 5' -done - -# Set background and border color -riverctl background-color 0x002b36 -riverctl border-color-focused 0x93a1a1 -riverctl border-color-unfocused 0x586e75 - -# Set keyboard repeat rate -riverctl set-repeat 50 300 - -# Make certain views start floating -riverctl float-filter-add app-id float -riverctl float-filter-add title "popup title with spaces" - -# Set app-ids and titles of views which should use client side decorations -riverctl csd-filter-add app-id "gedit" - -# Set the default layout generator to be rivertile and start it. -# River will send the process group of the init executable SIGTERM on exit. -riverctl default-layout rivertile -rivertile -view-padding 6 -outer-padding 6 diff --git a/hm/soispha/wms/river/res/safe_init.sh b/hm/soispha/wms/river/res/safe_init.sh new file mode 100755 index 00000000..8e80026a --- /dev/null +++ b/hm/soispha/wms/river/res/safe_init.sh @@ -0,0 +1,160 @@ +#!/bin/sh + +# This is the example configuration file for river. +# +# If you wish to edit this, you will probably want to copy it to +# $XDG_CONFIG_HOME/river/init or $HOME/.config/river/init first. +# +# See the river(1), riverctl(1), and rivertile(1) man pages for complete +# documentation. + +# Note: the "Super" modifier is also known as Logo, GUI, Windows, Mod4, etc. + +# Super+Shift+Return to start an instance of foot (https://codeberg.org/dnkl/foot) +riverctl map normal Super Return spawn alacritty + +# Super+Q to close the focused view +riverctl map normal Super Q close + +# Super+Shift+E to exit river +riverctl map normal Super+Shift Q exit + +# Super+J and Super+K to focus the next/previous view in the layout stack +riverctl map normal Super J focus-view next +riverctl map normal Super K focus-view previous + +# Super+Shift+J and Super+Shift+K to swap the focused view with the next/previous +# view in the layout stack +riverctl map normal Super+Shift J swap next +riverctl map normal Super+Shift K swap previous + +# Super+Period and Super+Comma to focus the next/previous output +riverctl map normal Super Period focus-output next +riverctl map normal Super Comma focus-output previous + +# Super+Shift+{Period,Comma} to send the focused view to the next/previous output +riverctl map normal Super+Shift Period send-to-output next +riverctl map normal Super+Shift Comma send-to-output previous + +# Super+Return to bump the focused view to the top of the layout stack +riverctl map normal Super Return zoom + +# Super+H and Super+L to decrease/increase the main ratio of rivertile(1) +riverctl map normal Super H send-layout-cmd rivertile "main-ratio -0.05" +riverctl map normal Super L send-layout-cmd rivertile "main-ratio +0.05" + +# Super+Shift+H and Super+Shift+L to increment/decrement the main count of rivertile(1) +riverctl map normal Super+Shift H send-layout-cmd rivertile "main-count +1" +riverctl map normal Super+Shift L send-layout-cmd rivertile "main-count -1" + +# Super+Alt+{H,J,K,L} to move views +riverctl map normal Super+Alt H move left 100 +riverctl map normal Super+Alt J move down 100 +riverctl map normal Super+Alt K move up 100 +riverctl map normal Super+Alt L move right 100 + +# Super+Alt+Control+{H,J,K,L} to snap views to screen edges +riverctl map normal Super+Alt+Control H snap left +riverctl map normal Super+Alt+Control J snap down +riverctl map normal Super+Alt+Control K snap up +riverctl map normal Super+Alt+Control L snap right + +# Super+Alt+Shift+{H,J,K,L} to resize views +riverctl map normal Super+Alt+Shift H resize horizontal -100 +riverctl map normal Super+Alt+Shift J resize vertical 100 +riverctl map normal Super+Alt+Shift K resize vertical -100 +riverctl map normal Super+Alt+Shift L resize horizontal 100 + +# Super + Left Mouse Button to move views +riverctl map-pointer normal Super BTN_LEFT move-view + +# Super + Right Mouse Button to resize views +riverctl map-pointer normal Super BTN_RIGHT resize-view + +for i in $(seq 1 9) +do + tags=$((1 << ($i - 1))) + + # Super+[1-9] to focus tag [0-8] + riverctl map normal Super $i set-focused-tags $tags + + # Super+Shift+[1-9] to tag focused view with tag [0-8] + riverctl map normal Super+Shift $i set-view-tags $tags + + # Super+Ctrl+[1-9] to toggle focus of tag [0-8] + riverctl map normal Super+Control $i toggle-focused-tags $tags + + # Super+Shift+Ctrl+[1-9] to toggle tag [0-8] of focused view + riverctl map normal Super+Shift+Control $i toggle-view-tags $tags +done + +# Super+0 to focus all tags +# Super+Shift+0 to tag focused view with all tags +all_tags=$(((1 << 32) - 1)) +riverctl map normal Super 0 set-focused-tags $all_tags +riverctl map normal Super+Shift 0 set-view-tags $all_tags + +# Super+Space to toggle float +riverctl map normal Super Space toggle-float + +# Super+F to toggle fullscreen +riverctl map normal Super F toggle-fullscreen + +# Super+{Up,Right,Down,Left} to change layout orientation +riverctl map normal Super Up send-layout-cmd rivertile "main-location top" +riverctl map normal Super Right send-layout-cmd rivertile "main-location right" +riverctl map normal Super Down send-layout-cmd rivertile "main-location bottom" +riverctl map normal Super Left send-layout-cmd rivertile "main-location left" + +# Declare a passthrough mode. This mode has only a single mapping to return to +# normal mode. This makes it useful for testing a nested wayland compositor +riverctl declare-mode passthrough + +# Super+F11 to enter passthrough mode +riverctl map normal Super F11 enter-mode passthrough + +# Super+F11 to return to normal mode +riverctl map passthrough Super F11 enter-mode normal + +# Various media key mapping examples for both normal and locked mode which do +# not have a modifier +for mode in normal locked +do + # Eject the optical drive (well if you still have one that is) + riverctl map $mode None XF86Eject spawn 'eject -T' + + # Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer) + riverctl map $mode None XF86AudioRaiseVolume spawn 'pamixer -i 5' + riverctl map $mode None XF86AudioLowerVolume spawn 'pamixer -d 5' + riverctl map $mode None XF86AudioMute spawn 'pamixer --toggle-mute' + + # Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl) + riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause' + riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause' + riverctl map $mode None XF86AudioPrev spawn 'playerctl previous' + riverctl map $mode None XF86AudioNext spawn 'playerctl next' + + # Control screen backlight brightness with light (https://github.com/haikarainen/light) + riverctl map $mode None XF86MonBrightnessUp spawn 'light -A 5' + riverctl map $mode None XF86MonBrightnessDown spawn 'light -U 5' +done + +# Set background and border color +riverctl background-color 0x002b36 +riverctl border-color-focused 0x93a1a1 +riverctl border-color-unfocused 0x586e75 + +# Set keyboard repeat rate +riverctl set-repeat 50 300 + +# Make certain views start floating +riverctl float-filter-add app-id float +riverctl float-filter-add title "popup title with spaces" + +# Set app-ids and titles of views which should use client side decorations +riverctl csd-filter-add app-id "gedit" + +# Set the default layout generator to be rivertile and start it. +# River will send the process group of the init executable SIGTERM on exit. +riverctl default-layout rivertile +rivertile -view-padding 6 -outer-padding 6 -- cgit 1.4.1