スキップしてメイン コンテンツに移動

Thunar からパスワード付きアーカイブを文字化け回避しつつ展開したい

使うのは unar とzenity。
パスワードの文字列を渡すには、外部の力を借りるしかないため、zenity を使う。……if ときたら fi と書いて動かないんだなぁ。
下記のシェルスクリプトを、カスタムアクションに追加。

Thunar カスタムアクション

/home/fuga/script/unar_crypto.sh %f
>

unar_crypto.sh

#!/usr/bin/env fish
# 引数(ファイルパス)を取得
set FILE_PATH $argv

# 1. 渡されたファイルパスが空エラー処理
if test -z "$FILE_PATH"
    zenity --error --title="エラー" --text="展開するファイルが見つからん。"
    exit 1
end

while true
    # 2. パスワード入力ダイアログを表示
    set PASSWORD (zenity --entry --title="パスワード付きアーカイブの展開" --text="パスワードを入力してください:\n(ファイル: "(basename "$FILE_PATH")")")
    
    # キャンセルボタンが押された場合は終了
    if test $status -ne 0
        exit 0
    end

    # 3. 進捗バー
    zenity --progress --title="展開中" --text="ファイルを展開しています、しばらくお待ちください..." --pulsate --auto-close --no-cancel &
    set ZENITY_PID $last_pid

    # 4. unarを実行
    set OUTPUT (unar -p "$PASSWORD" "$FILE_PATH" 2>&1)
    set UNAR_STATUS $status

    # 5. 進捗バーがまだ残っていれば強制終了
    if ps -p $ZENITY_PID > /dev/null
        kill $ZENITY_PID
    end

    # 6. 実行結果の成否チェック
    if test $UNAR_STATUS -eq 0
        zenity --info --title="成功しました" --text="展開完了。" --timeout=2
        exit 0
    else
        zenity --error --title="エラー" --text="パスワードが正しくないか、展開に失敗しました。"
    end
end

コメント

人気の投稿

ドコモマーケットからdメニューへ

何処に何があるのかさっぱりで、ユーザから好評だったドコモマーケットがdメニューへリニューアルされました。 自分が見つけることが出来なかったのかもしれませんが、 お客様サポートからspモード決済や月額課金状況のページへ辿ることが出来なくなってませんか? どうしてこういう事をするのかなぁ? spモード決済の履歴をたどるメニューは、マイメニューから入っていくようになっています。 dメニュートップページ 「マイメニュー」を選択すると このページへ飛んで、継続課金一覧や履歴を確認できるリンクがでる マイメニューに、何が表示されるのか知らされていないのに、こんな項目を置かれても。役割や名称を見ても、普通はお客様サポートへアクセスするでしょうに。 ……ただ理解できないのが、継続課金一覧等からログインして表示されるページから、用意されている「戻る」をタップすると、お客様サポートのページに戻るんですよね。なぜこのページをお客様サポートから確認できるページにしなかったのだろう?コンテンツ作るのに、失敗してるのかしらん? わかりやすくしたつもりなのかもしれません。 ただ、エンドユーザが迷うようなサポートページを提供してどうする。 身も蓋もないことですが、そもそもspモードで接続している場合はマイメニューこそトップページにすべきでしょう。dメニューはマイメニューから見たい人だけ行けばいい。

Edge 入れたくないでござる

PowerShell によるアンインストールも塞がれ、遂に消す方法がなくなってしまった。勝手に入るし。だから要らんのだ。 Windows10 22H2 に、Edge を入れたくないでござる、絶対に Edge を入れたくないでござる! なので。昔ながらの古典的な方法で、二度と勝手に入らないようにした。 まず削除だが、C:\Program Files (x86)\Microsoft にある、Edge、EdgeCore、EdgeWebView の3つのフォルダを削除。 アンインストーラが機能しないんだから、フォルダごとバッサリやってもいいよね? Microsoft365Apps で使う? いらねーよあんなゴミ。 他にインストールしてあるブラウザ上で開けばいい。PWA として動かすにしても、勝手にインストールしやがる EdgeWebView 上で動かす必要はない。 Windows10 22h2 なら、EdgeWebView を消しても、Microsoft Store は動く。Windows 11 は知らん。いつになったら安定するんだ、Windows11 は。23/11 現在、まだ使いもんにならん。 Win+x キーを押して、WindowsPowerShell(管理者)を開き、次の3行を入力。 echo "" >"C:\Program Files (x86)\Microsoft\Edge" echo "" >"C:\Program Files (x86)\Microsoft\EdgeCore" echo "" >"C:\Program Files (x86)\Microsoft\EdgeWebView" ファイル置いとけば中身入れらんないから、インストールもされまい理論。 タスクスケジューラには何もなかったが、サービスに、 MicrosoftEdgeElevationService っていうクソがいたので無効に。しつけーわ、ほんと。 追記: 11 でも一応可能。MicrosoftStore も問題はないが、EdgeWebView を内蔵せずに利用するアプリは動作しなくなる(Microsoft PC Manager とか。PDF24 はE...