mirror of
https://git.pumpin.online/funkpower/menologion.git
synced 2026-10-22 18:57:14 +00:00
The install line still said pipx, which stopped being true when the engine was rewritten. It is one static binary with the calendar compiled in, so there is no runtime to install and no data file to find. Also points a Byzantine Catholic at --typikon while they are setting a default, since the flag is the one most of them will want, and notes that anything the widget does not set follows what typikon remembered, so a widget and a terminal on the same machine agree.
113 lines
3.0 KiB
Bash
Executable File
113 lines
3.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Link the front ends into place. Nothing is copied, so a `git pull` updates
|
|
# what you are running.
|
|
set -euo pipefail
|
|
|
|
src="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
config="${XDG_CONFIG_HOME:-$HOME/.config}"
|
|
binhome="${HOME}/.local/bin"
|
|
|
|
usage() {
|
|
cat <<USAGE
|
|
menologion-install [quickshell|waybar|eww|bin|all]
|
|
|
|
quickshell link quickshell/ into a quickshell config as menologion/
|
|
waybar link the bar script and print the module to merge
|
|
eww link eww/ into your eww config
|
|
bin link menologion-waybar into ~/.local/bin
|
|
all bin + whichever of the three are already configured
|
|
|
|
USAGE
|
|
}
|
|
|
|
# Set when something was skipped, so the run can report it in its exit status
|
|
# without `set -e` tearing the rest of the install down.
|
|
skipped=0
|
|
|
|
link() {
|
|
local from="$1" to="$2"
|
|
mkdir -p "$(dirname "$to")"
|
|
if [ -e "$to" ] && [ ! -L "$to" ]; then
|
|
echo " ! $to exists and is not a link — leaving it alone" >&2
|
|
skipped=1
|
|
return 0
|
|
fi
|
|
ln -sfn "$from" "$to"
|
|
echo " $to -> $from"
|
|
}
|
|
|
|
do_bin() {
|
|
link "$src/bin/menologion-waybar" "$binhome/menologion-waybar"
|
|
case ":$PATH:" in
|
|
*":$binhome:"*) ;;
|
|
*) echo " note: $binhome is not on your PATH" >&2 ;;
|
|
esac
|
|
}
|
|
|
|
do_quickshell() {
|
|
link "$src/quickshell" "$config/quickshell/menologion"
|
|
cat <<'NOTE'
|
|
|
|
Add to your shell.qml:
|
|
|
|
import qs.menologion.modules
|
|
...
|
|
Menologion {}
|
|
|
|
Or run it on its own:
|
|
|
|
quickshell -p ~/.config/quickshell/menologion/shell.qml
|
|
NOTE
|
|
}
|
|
|
|
do_waybar() {
|
|
link "$src/waybar/style.css" "$config/waybar/menologion.css"
|
|
cat <<'NOTE'
|
|
|
|
Add "custom/typikon" to a modules list, merge waybar/config.jsonc into
|
|
your config, and @import "menologion.css" from your style.css.
|
|
NOTE
|
|
}
|
|
|
|
do_eww() {
|
|
link "$src/eww" "$config/eww/menologion"
|
|
cat <<'NOTE'
|
|
|
|
Add to your eww.yuck: (include "menologion/menologion.yuck")
|
|
Add to your eww.scss: @import "menologion/menologion.scss";
|
|
Then put (menologion) in a window, or (menologion-bar) in a bar.
|
|
NOTE
|
|
}
|
|
|
|
require_typikon() {
|
|
command -v typikon >/dev/null 2>&1 && return 0
|
|
echo "menologion: typikon is not on PATH." >&2
|
|
echo " cargo install --git https://git.pumpin.online/funkpower/typikon" >&2
|
|
exit 1
|
|
}
|
|
|
|
# --help must not be gated behind the dependency it tells you about.
|
|
case "${1:-all}" in
|
|
-h|--help|help) usage; exit 0 ;;
|
|
esac
|
|
require_typikon
|
|
|
|
case "${1:-all}" in
|
|
quickshell) do_bin; do_quickshell ;;
|
|
waybar) do_bin; do_waybar ;;
|
|
eww) do_bin; do_eww ;;
|
|
bin) do_bin ;;
|
|
all)
|
|
do_bin
|
|
# `[ -d x ] && f` as the last statement of the script would make a
|
|
# perfectly good run exit 1 under `set -e` whenever the directory is
|
|
# absent. Hence the `|| true`, and the explicit exit below.
|
|
[ -d "$config/quickshell" ] && do_quickshell || true
|
|
[ -d "$config/waybar" ] && do_waybar || true
|
|
[ -d "$config/eww" ] && do_eww || true
|
|
;;
|
|
*) usage; exit 2 ;;
|
|
esac
|
|
|
|
exit "$skipped"
|