2020年12月10日木曜日

2020年12月7日月曜日

kdialog フォント

KDEの kdialog fontに使えるっぽいもの。

Debian + KDE上の kdialog --msgbox で実験。
同じディレクトリの hisa0.gif という img も表示可能なようです。
(hisa0.gif は特に意味ありません。たんなる gif画像です。)

$ ./example.sh
表示結果

以下 example.sh の内容
---
#!/bin/bash
kdialog --msgbox \
"
<h1>Hello world!</h1>
<ol> 
<li><font style="color:red">KDialog</font></li> 
<li>How are you?</li> 
<li><b>Not so bad</b></li> 
<li><big>M&aacute;s y menos</big></li> 
</ol> 
<br><img src="./hisa0.gif" ><br> 
<ol type=a> 
<li><i>&iquest;Qu&eacute; tal?</i></li> 
<li><u>&iexcl;Muy bien!</u></li> 
</ol><br>
<b>ciao</b><br> 
<b><font style="color:green">auf Wiedersehen</font></b><br>
<font style="background-color:yellow">バイバイ</font><br> 
<h2>bye</h2> 
"
--- ここまで
以上、間違ってるかもの個人的メモ

2020年12月1日火曜日

ffmpeg の進捗率を pipe viewerで表示

[概要]
シェルスクリプトのクリックで起動。KDEのkdialogを使って、ディレクトリ/home/usr/Videoから mp2t/tsのファイルを表示。選んだファイル1個を ffmpegで 同名.mp4に変換する。入力ファイルのサイズが大きいとkdialogが固まったようにみえるので、KDE konsoleを表示して ffmpegの標準エラー出力と pv(pipe viwer)の進捗状況を表示。キャンセルで終了。

[材料]
KDE kdialog, konsole (Gnomeならgnome-terminal, zenity), pv, ffmpeg 

[ts2mp4.shの中身] 基本的なとこだけ
#! /bin/bash
while true
do
 infile=$(kdialog --title ts2mp4 --getopenfilename '/home/usr/Video/' 'video/mp2t   video/mpeg')
  if [ "$?" = "0" ]; then
    konsole -e $SHELL -c "pv '$infile' | ffmpeg -i pipe:0 -codec copy \"${infile%.*}.mp4\" ; echo \"...Finished\"; sleep 3"
#    trash-put "$infile"
  elif [ "$?" = "1" ]; then
    kdialog --title ts2mp4 --passivepopup "CANCEL" 3
    exit $?
  else
    kdialog --title ts2mp4 --error "ERROR";
    exit $?
  fi;
done

[説明]
・ffmpeg用のGUI メディアコンバーター: winff-qtをインストールすれば済む話。
・ディスクトップ環境KDEで、シェルスクリプトからGUIモドキが使える kdialogを使用。gnomeではZenityを使う。
・KDEのkonsoleは、xtermだと、xterm -e "pv $infile | ffmpeg -i pipe:0  -codec copy \"${infile%.*}.mp4\" ; echo \"...Finished\"; sleep 3" となる。
・pv はインストール要。
・ffmpegのオプション pipe:0 標準入力, 1:標準出力, 2:エラー出力, ":-"または ": " 自動判定。
・pv はあくまで目安程度。瞬間表示で見難いけどバーが伸びていって%表示や残り時間を表示。

・KDE:trash-cli をインストールすると、元ファイル.tsをゴミ箱に送れる $ trash-put "$infile"
・kdialog --progressbar ...は、awkの変数をシェルスクリプトにうまく渡せないのでヤメた。

環境は "2020年11月27日金曜日"の下の方
以上、素人の使い捨て道具

2020年11月27日金曜日

カササギ

 


ffmpeg の進捗率を awkで表示

[ 概要]
・例外処理やエラー対応なしの骨格のみ。gawk以外では動かんかも。
・ffmpegで、sample.tsを sample.mp4に変換する。
・ffmpeg の出力ストリームを awkで加工。再生時間 Durationと処理中 timeを秒換算して、進捗率(time/Duration*100)を表示。
・ffmpegは標準エラーにメッセージを流す。
・awkのレコードセパレータ RS(普通は改行)が \n \rと限らない。"frame="をRSとしてみる。
・リダイレクトで標準エラーを標準出力にし、パイプで awkに送る。

[ 用意するもの]
ffmpeg, gawk, awkスクリプトを書くテキストエディタ。テスト用の動画ファイル(ここでは ts→mp4)。

[ 使用例]
$ ffmpeg -i sample.ts -codec copy sample.mp4 2>&1 | awk -f ex01.awk
(出力例)
47 %
95 %
100 %
$

小さなtsファイルだと表示の間もない。大きなファイルだと少数切り捨てなので、1% 1% 1%...繰り返しのように見える。

[ ex01.awk スクリプト]
BEGIN{RS="frame="}
/Duration: /{
    match($0, /[0-2][0-3]:[0-5][0-9]:[0-5][0-9]/)
    TIME=substr($0, RSTART, RLENGTH)
    split(TIME, array, ":")
    Dura=array[1]*3600+array[2]*60+array[3]
}
/time=/{
    match($0, /[0-2][0-3]:[0-5][0-9]:[0-5][0-9]/)
    Now=substr($0, RSTART, RLENGTH)
    split(Now, array1, ":")
    Prog=array1[1]*3600+array1[2]*60+array1[3]
    Ratio=int(Prog/Dura*100)
    print Ratio " %"
}

この後、KDEのKdialogを使って、マウスだけでやるようにするつもり...以上。素人遊び。

[ 環境]
・Debian
$ uname -a
Linux debian 5.8.0-0.bpo.2-amd64 #1 SMP Debian 5.8.10-1~bpo10+1 (2020-09-26) x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster
・KDE
$ kf5-config --version
Qt: 5.11.3
KDE Frameworks: 5.54.0
kf5-config: 1.0
$ plasmashell --version
plasmashell 5.14.5
・awk
$ which awk
/usr/bin/awk
$ ls -l /usr/bin/awk
...略... /usr/bin/awk -> /etc/alternatives/awk
$ file /etc/alternatives/awk
/etc/alternatives/awk: symbolic link to /usr/bin/gawk
$ gawk -V
GNU Awk 4.2.1, API: 2.0 (GNU MPFR 4.0.2, GNU MP 6.1.2)

2020年11月16日月曜日

カササギ


この付近では、珍しいカチガラス。
鳴き声は聞こえて、姿も何度か目にしてるけれど、なかなか写せず、この程度。

2020年11月2日月曜日

VLCがメモリに残る

(Debian GNU/Linux 10 (Buster) + KDE plasma にて)
VLC media player 終ったように見えて、メモリ内に残っている。
 
[探す方法]
 
・Ksysguard プロセステーブルよりvlc検索


・KDEパネルの[Status & Notifications]
 終了したはずなのに残ってる

・KDEパネルの[Audio Volume] Applications
 消したはずのvlcが残っていくのがわかる
 
・ps と grep
$ ps aux | grep vlc

または、STAT表示を残してgrepコマンド自体を表示させない体裁
$ ps aux | grep -E 'STAT|vlc' | grep -v grep
 
・pgrep (procpsパッケージ要)
$ pgrep -a vlc
4271 /usr/bin/vlc --started-from-file /home/user/.....
5467 /usr/bin/vlc --started-from-file /home/user/.....
 
・ps と grep と watch
15秒毎にvlcが残っていないか見張る
$ watch -n15 "ps aux | grep -E 'STAT|vlc' | grep -v grep" 


[消す方法]

・Ksysguard プロセステーブル 検索して該当vlcを右クリック→シグナルを送る→割り込み(INT)

・kill 一つずつなので面倒
$ kill -s INT プロセス番号

・killall 一気に消せて一番便利
$ killall -s INT vlc

・pkill (
procpsパッケージ要) (-e:echoはなくてもいい)
$ pkill -INT -e vlc


備考
STAT
S    割り込み可能なスリープ状態 (イベントの完了を待っている)
l    マルチスレッド化されている (NPTL pthreads が行うように、CLONE_THREADが使われている)

SIGNAL
1     HUP     制御している端末/プロセスがハングアップした
2     INT     キーボードからの割り込み命令([Ctrl]+[C]キー)
3     QUIT     キーボードからの中止命令([Ctrl]+[\]キー)
9     KILL     プロセスの強制終了命令
15     TERM     プロセスの終了命令(デフォルト)
18     CONT     プロセスの再開命令
19     STOP     プロセスの停止命令([Ctrl]+[Z]キー)

2020年10月24日土曜日

Ksysguard

目的:
ハードディスクへのリアルタイムの書き込み状態を見たい。
環境は Debian GNU/Linux 10 (Buster) + KDE plasma


作業:
KDEのシステムモニタ Ksysguardを使用してみる。
$ sudo apt install ksysguard してインストールする。
[プロセステーブル] [システム負荷 (CPU, メモリ,ネットワーク)]の 2つのタブ。ハードディスクに関するものがない。

そこで、Ksysguardのメニューバーから ファイル→新しいタブをダウンロード。"システムモニタのアドオンインストーラ" を使って、アドオンの中からオールマイティ的な"System Load and Temps"(https://store.kde.org/p/1257867/)を試す。 

 
Ksysguard に[System Load 2]タブが追加され、CPU, メモリ, ネットワーク, Core Temperatures, Hard Disk Totalsが表示され、ハードディスクの read/writeもわかる。
必要が無くなったタブは"システムモニタのアドオンインストーラ"でアンインストールしてやればいい。

補:
・パネルのウィジェットに[ハードディスクi/Oモニタ]というのもある。lm-sensorsは必要ないがKsysguardが必須。
・KdiskMark というHDDベンチマークもあったけど、Debian Busterでは libgcc-s1自体が用意されてないのでインストール不可。https://github.com/JonMagon/KDiskMark
System Load and Tempsのダウンロードファイルは、SystemLoadMulti.sgrd。拡張子 sgrdは、ASCIIで書かれた KSysGuard用の記述プログラムで、<!DOCTYPE KSysGuardWorkSheet>となっている。関連ディレクトリ : .local/share/ksysguard/ , /usr/share/ksysguard/


2020年10月6日火曜日

lm-sensors 番外メモ

(説明上の想定環境) 
Debian/GNU Linux で、KDE plasma を使用。Debianなので、少し古めの各バージョン。

$ lsb_release -d
 Description:    Debian GNU/Linux 10 (buster)
$ uname -a
 Linux debian 4.19.0-11-amd64 #1 SMP Debian 4.19.146-1 (2020-09-17) x86_64 GNU/Linux
$ kf5-config -v
 Qt: 5.11.3
 KDE Frameworks: 5.54.0
 kf5-config: 1.0
$ plasmashell --version
 plasmashell 5.14.5

$ sensors -v lm-sensorsのバージョン
 sensors version 3.5.0 with libsensors version 3.5.0
[ インストール ]
$ sudo apt install lm-sensors 

本体 (lm-sensors はコマンドではない)
     /usr/bin/sensors

バージョン2からバージョン3へのconfの書き換え
     /usr/bin/sensors-conf-convert 

センサーチップを探して、必要ドライバの用意をする
     /usr/sbin/sensors-detect

難しそうで使わないので略
     /usr/sbin/isadump
     /usr/sbin/isaset

[ 関連ファイル ]
sensors-detect の検出内容を書き込む。
     /etc/modules

デフォルトで最初に読み込む設定ファイル。
     /etc/sensors3.conf 

通常は無い。sensors-conf-convertで使用。二番目に読み込むファイル。
     /etc/sensors.conf  

以上2つの次にユーザーが定義するファイルを置くディレクトリ。ファイル名は何でもいい。複数ある場合はアルファベット順に読み込まれる。不使用の場合ファイル名頭に .(ピリオド)をつける。記入規則は '$ man sensors.conf' 
     /etc/sensors.d/.......

[ 実行中のサービス ]
Debianでは、デーモンdaemon(sensord)を使っていない。systemdで動かしている。
動作中の確認例、
    $ systemctl status lm-sensors.service
    ...

[ 追記 ]
Gnomeではdebファイルinstallで、センサー表示が可能なアプレットがある。
KDE Plasma では、psensor, xsensors で表示。
ウィジェット widgetの 'Thermal Monitor'でパネル(普通は バー)に温度表示できるが、ファンの回転数も追加表示ができる。

例) マザーボードAsus z370系
lm-sensorsとThermal Monitorのインストールが前提。
テキストファイル
# test for Thermal monitor wedgit
chip "nct6793-*"
  label fan1 "CHA_FAN1 Header"
  label fan2 "CPU_FAN Header"
  label fan3 "CHA_FAN2 Header"
  label fan5 "AIO_PUMP Header"
  label fan6 "M_2_FAN Header"
これを
/etc/sensors.d/fan.conf として、置く。
("nct6793-*" は、$ sensors | more した時の1行目を参考にする。)


あとは、ログアウト/ログイン。 Thermal Monitorのconfigureで設定項目を探して追加表示してやる。あくまで温度表示用なので Fireマークの警告が出る・・・のは気にしない。

2020年9月19日土曜日

電線にミサゴ・・・

 大分県日田市を流れる三隈川で川面を睨むミサゴ


鷺がよってきて


鷺がたかってきて


鷺だらけで、ミサゴを威嚇?






2020年9月12日土曜日

イソヒヨドリ メス

今年もやってきました。イソヒヨドリ。

目立つ鳴き声ですぐわかる。