• Linux初心者講座

    :dromedary_camel: @hiroget9 さん

    SAVE QUEUEやADD STREAMなど、普段使わないメニューがあれば"active":"no",で無効にしていただくと、メニューがスッキリすると思います。

  • @パパリウス さん、アドバイスありがとうございます。
    確かにめったに使わないメニューは無効にしておいた方が使いやすいですね。
    しばらく、プラグインをカスタマイズしてから、取捨選択していきますね。

  • @hiroget9 さん

    ランダム再生を私はよく使うので、この情報はありがたいです!
    さっそく

    nano /home/pi/plugins/.plugin.json
    

    でこうしてみました。

    {
      "menu"   :"<script>$.getScript('/plugins/demo/user.js');</script>",
      "active" :"yes",
      "icon"   :"",
      "success":"",
      "error"  :""
    } ,
     {
      "menu" :"<span id=repeat-state>Repeat</span>",
      "active" :"no",
      "icon" :"repeat",
      "form" :"",
      "command":"mpc repeat",
      "output" :"",
      "success":"success!",
      "error" :"error!"
    },
    {
      "menu" :"<span id=random-state>Random</span>",
      "active" :"yes",
      "icon" :"random",
      "form" :"",
      "command":"mpc random",
      "output" :"",
      "success":"success!",
      "error" :"error!"
    },
    

    (リピートは使わないので、リピートのプラグインの“active” :“no”,にしてあります)
    実際にやってみて「分かってないとはまるかも」と思ったのは、/home/pi/plugins/.plugin.jsonの頭にあるこの部分ですね。

    {
        "menu"   :"<script>$.getScript('/plugins/demo/user.js');</script>",
        "active" :"yes",
        "icon"   :"",
        "success":"",
        "error"  :""
      } ,
    

    このプラグインが"active" :"yes",になっていないと、/home/pi/plugins/demo/user.jsが読み込まれず、肝心の“ON/OFF”表示ができません。
    なので、このプラグインの“active” :“yes”,になっていることがマストな使い方ですね。


    私の場合、

    nano /home/pi/plugins/demo/user.js
    

    ではこんな感じにしてみました。

    /* hide menu icon (Do not edit) */
    $('.glyphicon-').parent().hide().parent().prev().hide();
    
    
    /* your script (modify it as you see fit) */
    
    // example1: append label
    $('.navbar-brand').append(" <b>msBerryDAC</b> " );
    
    // example2: append version
     $.getJSON( "/.version.json?t=" + Date.now(), function( data ) {
      $('.navbar-brand').append("<small class='text-muted'> " + data.major + "." + data.minor + "." + data.revision + "</smal$
    });
    
    $('.dropdown-toggle').on('click', function (e) {
      if ($('#btnrepeat').hasClass("active")) {
        $('#repeat-state').text("Repeat OFF");
      } else {
        $('#repeat-state').text("Repeat ON");
      }
    });
    
    $('.dropdown-toggle').on('click', function (e) {
    if ($('#btnrandom').hasClass("active")) {
    $('#random-state').text("Random OFF");
    } else {
    $('#random-state').text("Random ON");
    }
    });
    
    

    以前、パパリウスさんから「ユーザーが任意の機能を追加できますよ」と案内があったのは、こういうことだったのですね!
    これは便利ですねぇ。
    おかげでこうできました。

    oppemd_label_02.png


    UIの頭の文字列が不必要な場合は、該当記述の行頭に“//”を追加してコメントアウトすれば、簡単に無効にすることもできるということでしょうか。

    /* hide menu icon (Do not edit) */
    $('.glyphicon-').parent().hide().parent().prev().hide();
    
    
    /* your script (modify it as you see fit) */
    
    // example1: append label
    //$('.navbar-brand').append(" <b>msBerryDAC</b> " );
    
    // example2: append version
    // $.getJSON( "/.version.json?t=" + Date.now(), function( data ) {
    //  $('.navbar-brand').append("<small class='text-muted'> " + data.major + "." + data.minor + "." + data.revision + "</smal$
    //});
    
    $('.dropdown-toggle').on('click', function (e) {
      if ($('#btnrepeat').hasClass("active")) {
        $('#repeat-state').text("Repeat OFF");
      } else {
        $('#repeat-state').text("Repeat ON");
      }
    });
    
    $('.dropdown-toggle').on('click', function (e) {
    if ($('#btnrandom').hasClass("active")) {
    $('#random-state').text("Random OFF");
    } else {
    $('#random-state').text("Random ON");
    }
    });
    

    oppend_label_4.png
    色々と勉強になりました:yum:

  • @ジャイアン さん

    ご指摘ありがとうございます。
    昨日のコマンドを修正しました。

    /home/pi/plugins
    の位置で

    ls -a -l
    

    もしくは

    ll
    

    (sunatomoさんにお教えいただきました。こちらの方が断然楽ですね!(追加修正です))
    としますと、隠しファイルのplugin.jsonも表示されます。
    pi@smpd:~/plugins $ ls -a -l
    drwxr-xr-x 2 pi pi 4096 Oct 19 16:15 demo

    -rw-r--r-- 1 pi pi 6144 Oct 26 18:04 .plugin.json

    drwxr-xr-x 2 pi pi 4096 Oct 19 16:15 sampling_rate_Setting
    drwxr-xr-x 2 pi pi 4096 Oct 19 16:15 sb32
    drwxr-xr-x 2 pi pi 4096 Oct 19 16:15 tb2

    -rw-r--r-- 1 pi pi 572 Oct 26 16:38 user.js

    /home/pi/pluginsの下にuser.jsと.plugin.jsonが2つともあるということですね。
    (これは、私が ./demo 配下のuser.jsを一つ上のディレクトリに持ってきていた場合の例です。)

    nano /home/pi/plugins/.plugin.json
    の

    /.plugin.json

    となっているのは、隠しファイルを書き換えるためですね。

    sshからのコピーを間違えていたようです。失礼いたしました。

    コマンドはそれぞれ次のようになります。

    nano /home/pi/plugins/.plugin.json
    
    nano /home/pi/plugins/demo/user.js
    

    ボーッとコマンドを打っていましたが、ご指摘のおかげで隠しファイルの表示の仕方がわかりましたし、書き換え方法もシックリしました。
    重ねてお礼申し上げます。

    追記
    /home/pi/plugins/demo/user.js
    はサンプルのようですね。こちらは触っていませんでしたし、あるのも知りませんでした(-_-;)

  • 参考です。
    /home/pi/.bashrcにはコマンドのエイリアスが入っていて、
    ls -alh はllコマンドで代用出来ます。(パパリウスさまはもちろんよくご存知でしょうが)

  • @hiroget9 さん

    v0.9.xをインストール直後は、
    /home/pi/plugins/.plugin.json
    /home/pi/plugins/demo/user.js
    にファイルを置いてあります。


    user.js(Web UIカスタマイズプラグイン)は、.plugin.jsonの中で

    menu"   :"<script>$.getScript('/plugins/demo/user.js');</script>",
    

    というように、demoの下にあるuser.jsを読み込むように設定してあります。


    user.jsを/home/pi/plugins直下にコピーしてお使いなのであれば、

    menu"   :"<script>$.getScript('/plugins/user.js');</script>",
    

    と読み込み先が指定されていれば問題ありません。

  • @sunatomo さん、ありがとうございます。

    ii
    

    は使ったことがありませんでした。

  • @パパリウス さん、重ね重ねありがとうございます。

    これで交通整理できました。
    ジャイアンさんのご指摘の方が正しかったのですね。

    ジャイアンさん、混乱させてしまって申し訳ありませんでしたm(__)m

  • ジャイアンさん、またまたお邪魔します。
    先日のプラグインの表示切替は、どうやら
    /var/lib/mpd/stateを見にいっているのではないかと思います。
    中身には

    sw_volume: 100
    random: 0
    repeat: 1
    single: 0
    consume: 0
    crossfade: 0
    

    と書き込まれていますね(/var/lib/mpd/stateの抜粋です)。
    そうならば、singleも使えるということで、おまけです。
    1曲だけのリピートをプラグインに追加してみました。
    あまり需要はないかもしれませんが、ちょっと実験してみたかったんです。
    同じようなネタ続きでごめんなさい。

    Single On ⇔ Single Off の切り替え表示です。

    nano /home/pi/plugins/.plugin.json
    

    で以下を追加

    
    {
    "menu" :"<span id=single-state>Single</span>",
    "active" :"yes",
    "icon" :"play-circle",
    "form" :"",
    "command":"mpc single",
    "output" :"",
    "success":"success!",
    "error" :"error!"
    },
    
    nano /home/pi/plugins/demo/user.js
    

    で以下を追加

    $('.dropdown-toggle').on('click', function (e) {
    if ($('#btnsingle').hasClass("active")) {
    $('#single-state').text("Single OFF");
    } else {
    $('#single-state').text("Single ON");
    }
    });
    

    追加した結果です。プラグインが多過ぎですね(-_-;)
    今回のは、カバーアートが大きく表示される画面のハートマークと同じ機能です。
    SCREENSHOT SINGLE.jpg

    htmlなんかも使ってみたいとは思うのですが、私にはまだまだ勉強不足です。

  • @hiroget9 さん

    有益で面白い情報をありがとうございます!

    実は私、個人的にランダム再生の時にconsumeをよく併用するのですが、いちいちsettingパネルを開かなきゃ設定できないことに面倒くささを感じていました。しかもconsumeがONなのかOFFなのか、UIからは確認できません。

    しかしhiroget9さんの探究心のおかげで、consumeもプラグイン化できることが分かりましたので、さっそくこうしてみました。

    nano /home/pi/plugins/.plugin.json
    

    を実行して、以下の内容を追加。

    {
      "menu" :"<span id=consume-state>Consume</span>",
      "active" :"yes",
      "icon" :"fire",
      "form" :"",
      "command":"mpc consume",
      "output" :"",
      "success":"success!",
      "error" :"error!"
    },
    

    続いて

    nano /home/pi/plugins/demo/user.js
    

    を実行して、以下の内容を追加。

    $('.dropdown-toggle').on('click', function (e) {
      if ($('#btnconsume').hasClass("active")) {
        $('#consume-state').text("Consume OFF");
      } else {
        $('#consume-state').text("Consume ON");
      }
    });
    

    おかげでconsume機能のON/OFFとその可視化もできるようになりました!

    consume.png

    hiroget9さんの探究心に感謝です!

  • @ジャイアン さん、これでUIからほぼ操作できるようになりましたね!
    少しはお役に立てたようで良かったです。

    次はジャイアンさんのブログを拝見して、他の事にも挑戦してみようと思います。

    ところで、日本のアニメは作りが良いですね。アニソンもしっかり作り込んでありますし。ジャイアンさんがお好きなのが納得できます(^^♪

  • @hiroget9 さん

    追記です。

    hiroget9さんのプラグインメニューを見ると“UPDTATE THIS FOLDER”がありますが、現行の“UPDATE LIBRARY”機能があれば必要ない(削除しても問題ない)プラグインと思われます。
    現行では、NASの任意のディレクトリを選択した上で“UPDATE LIBRARY”を実行すれば...

    UPDATE_THIS_FOLDER.png

    となり、実質的に“UPDTATE THIS FOLDER”を実行したことになりますから。

  • @ジャイアン さん、確かに音源を追加したフォルダーだけアップデートすれば一瞬ですもんね。
    私のNASには1.5TBぐらい音源が入っているので、UPDATE LIBRARYで全体ををなめると10分ぐらいかかってしまいます。
    使わないプラグインは消していきますね。

    懐かしやABBAですね♬

  • プラグインのネタ続きで失礼します。
    私の場合、プラグインがまだ整理できてなくて、もっと減らさなければ使いづらいのですが、特定のプラグインを目立たせる方法がありました。
    簡単ですが、あまり役に立たないかも・・・

    nano /home/pi/plugins/.plugin.json
    

    を実行して、 "menu" の部分を・・・で挟み込んでやると太文字になります。
    SHUTDOWNを太文字にする一例です。お好きなようにカスタマイズしてみてください。

      {
        "menu" :"<b>SHUTDOWN</b>",
        "active" :"yes",
        "icon" :"off",
        "form" :"/plugins/demo/are_you_sure.html",
        "command":"systemd-run poweroff",
        "output" :"",
        "success":"shutting down!",
        "error" :"error!"
      } ,
    

    プラグイン太文字.jpg

  • 先日の応用で、少し使いやすくしてみました。
    ちょっとカラフルでいいかも。

    color.jpg