diff --git a/README.md b/README.md index 4ad8917..c12ec7c 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,10 @@ curl -fsSL https://gitea.oxpoe.qzz.io/oxpoe/temp-own/raw/branch/main/install.sh | mediainfo | metadata media (yazi) | repo distro | | ouch | arsip zip/tar/7z/… (yazi) | repo distro / release GitHub | +Paket dasar yang selalu dipasang: `curl`, `unzip`, `tar`, `gzip`, `bash`, `ca-certificates`, `ncurses`, `git` +(NCurses menyediakan `clear`, `tput`, dan utilitas terminal lain — tanpa itu `clear` tidak ada di image minimal. +`git` dibutuhkan `ya pkg add` untuk meng-clone plugin Yazi.) + Yang tak tersedia di repo distro dipasang ke `/usr/local/bin`. ## Yang diubah di sistem @@ -38,7 +42,7 @@ Yang tak tersedia di repo distro dipasang ke `/usr/local/bin`. `EDITOR`/`VISUAL=micro`, `starship init fish`, dan **greeting `fastfetch`**. - default shell user (SUDO_USER) & `root` → fish (`chsh`). - `~/.config/yazi/` (user + root) → `yazi.toml` (editor micro, previewer mediainfo/ouch, ekstrak ouch), `keymap.toml`, `init.lua` — file lama di-backup `.bak-`. -- Plugin Yazi: `full-border`, `smart-filter`, `chmod`, `ouch`, `mediainfo`, `fg`. +- Plugin Yazi: `full-border`, `smart-filter`, `chmod`, `ouch`, `mediainfo`, `fg` (`lpnh/fg`). ## Keybind Yazi diff --git a/install.sh b/install.sh index 7db5fd9..1a0954f 100644 --- a/install.sh +++ b/install.sh @@ -44,11 +44,11 @@ log "User=${TARGET_USER} Arch=${ARCH} PkgMgr=${PM:-none}" install_base() { case "$PM" in apt-get) DEBIAN_FRONTEND=noninteractive apt-get update -qq - DEBIAN_FRONTEND=noninteractive apt-get install -y -qq curl unzip tar gzip bash ca-certificates ;; - dnf) dnf install -y -q curl unzip tar gzip bash ca-certificates ;; - pacman) pacman -S --needed --noconfirm curl unzip tar gzip bash ca-certificates ;; - zypper) zypper --non-interactive install curl unzip tar gzip bash ca-certificates ;; - apk) apk add --no-cache curl unzip tar gzip bash ca-certificates ;; + DEBIAN_FRONTEND=noninteractive apt-get install -y -qq curl unzip tar gzip bash ca-certificates ncurses git ;; + dnf) dnf install -y -q curl unzip tar gzip bash ca-certificates ncurses git ;; + pacman) pacman -S --needed --noconfirm curl unzip tar gzip bash ca-certificates ncurses git ;; + zypper) zypper --non-interactive install curl unzip tar gzip bash ca-certificates ncurses git ;; + apk) apk add --no-cache curl unzip tar gzip bash ca-certificates ncurses git ;; *) warn "Paket manager tak dikenal — lewati paket dasar." ;; esac } @@ -157,9 +157,12 @@ has mediainfo || warn "mediainfo tak ada di repo distro (metadata media Yazi dil # ---------------------------------------------------------------- config yazi run_as_user() { # jalankan perintah sebagai user target (HOME-nya benar) + # Jangan sembunyikan stderr: dulu `2>/dev/null` membuat kegagalan `ya pkg add` + # (mis. git belum terpasang) tidak terlihat, lalu init.lua memanggil plugin yang + # tidak pernah ada -> "Lua runtime failed" saat yazi dibuka. local u="$1"; shift - if [ "$u" = root ]; then bash -lc "$*" 2>/dev/null - else su -l "$u" -c "$*" 2>/dev/null; fi + if [ "$u" = root ]; then bash -lc "$*" + else su -l "$u" -c "$*"; fi } write_yazi() { @@ -250,13 +253,12 @@ install_yazi_plugins() { local home="$1" user="$2" ya p cmd ya="$(command -v ya || command -v yazi || true)" [ -n "$ya" ] || { warn "ya/yazi tak ada — plugin Yazi dilewati"; return 0; } - for p in yazi-rs/plugins:full-border yazi-rs/plugins:smart-filter yazi-rs/plugins:chmod ndtoan96/ouch boydaihungst/mediainfo; do + # fg: pakai lpnh/fg (ada di GitHub). Repo DreamMaoMao/fg.yazi hanya ada di + # Gitee, jadi URL GitHub lama selalu 404 -> init.lua memanggil plugin yang + # tidak pernah ada -> "Lua runtime failed" tiap kali yazi dibuka. + for p in yazi-rs/plugins:full-border yazi-rs/plugins:smart-filter yazi-rs/plugins:chmod ndtoan96/ouch boydaihungst/mediainfo lpnh/fg; do run_as_user "$user" "'$ya' pkg add '$p'" || true done - # fg.yazi: nama tak kebab-case -> clone manual - if [ ! -d "$home/.config/yazi/plugins/fg.yazi" ]; then - run_as_user "$user" "git clone --depth 1 https://github.com/DreamMaoMao/fg.yazi.git '$home/.config/yazi/plugins/fg.yazi'" || true - fi } log "Config Yazi (editor=micro, metadata media, arsip) untuk $TARGET_USER"