4pkのLinuxメモ

Linux(主にGentoo Linux)に関するメモを書き残すブログです。

mikutterの通知プラグインの更新

しばらく何も進捗がなかったので,無理やり進捗を作りました。

通知プラグインを更新。

github.com

 

更新内容は,通知が発生したときに任意の回数重複させると言うておくれた機能を追加しただけです。

この機能を使うことで誰もが爆撃を受けたような体験をすることが出来ますので,ぜひためしておくれ。

MATE環境でデスクトップのスケーリングを変える方法

最近勢いで24インチと言うギリギリのサイズの4Kディスプレイを買いました。

 

https://social.mikutter.hachune.net/system/media_attachments/files/000/265/747/original/f15721354f46f8d8.jpg?1534938194

 

こんな感じのやつです。

このディスプレイそんなに良くなくて,古いグラボだと4Kにすると30Hzしか出なかったり,HDMIだと30Hzしか出なかったりするので気をつけてください。

 

当たり前のことですが普通に4Kにしたら文字等が小さくなってしまってかなり見にくい感じに。

解像度を落とすのもアレなので,スケーリングで調整しましたよと言う話です。

 

自分はGentooでMATE環境なのですが,設定にスケーリングが標準で入ってないようなので少し苦戦しましたのでやり方を書き残します。

 

・MATEのスケーリング(Gnome全般同じだと思う)

dconf-editor

とターミナルを叩く

/org/mate/desktop/font-rendering/dpi

のdpiをクリック

Use dafault value をオフにして

Custom value の数字を変えることで自由に設定出来ます。

/org/mate/panel/toplevels/top/size

で上部のパネルのアイコンの大きさも変えれます。(下部はbottom)

 

・mikutterのスケーリング

Desktop全体のスケーリングに追従するアプリや追従しないアプリがあります。

mikutterは追従しない(gtkに依存?)ので,また別のところで設定してやる必要があります。

フォントだけならmikutterの表示タブからフォントを変えて設定も出来ますが,小さいままで残るものもあるのでやはりgtk全体で設定を変える方が良さそうです。

現在,調べ中。(分かったら更新します)

とりあえず,私はフォントサイズを変えて対応しています。

 

通知の件と画像表示の件(追記)

Worldonを最新にすることでBTの通知が重複する問題は多分解決出来そうです。

最新にすると,TL上に画像表示をするプラグインが現在うまく機能しないようです。

現象は認知されているので,そのうち対応されると思いますがどうしても画像表示が必要な方はしばらくアプデをしない方が良さそうです。

上記件は,どちらも成立出来ないので自分はWorldonを最新にするのを優先しています。

 

2018/8/25 追記

画像の件もdevelopで対応済み

通知が4重になったときのログ

notice: /home/seibe/.mikutter/plugin/worldon/api.rb:122:in `call': Worldon::API.call post https://social.mikutter.hachune.net/api/v1/statuses "Authorization", "Bearer fa785c12e761ee5c1c93bec57b734d0bf39d0ab824e45546729d93f540e36772" [["mediaiolist", nil], ["sensitive", false], ["status", "今出てきたログ見てるからふぁぼらないで"]]
notice: /home/seibe/.mikutter/plugin/worldon/api.rb:122:in `call': Worldon::API.call get https://social.mikutter.hachune.net/api/v1/statuses/
warning: /home/seibe/.mikutter/plugin/worldon/api.rb:137:in `call': API.call did'nt return 200 Success
["https://social.mikutter.hachune.net/api/v1/statuses/",
,
nil,
,
#<HTTP::Message:0x0000562226f309a0
@http_body=
#<HTTP::Message::Body:0x0000562226f30900
@body="",
@chunk_size=nil,
@positions=nil,
@size=0>,
@http_header=
#<HTTP::Message::Headers:0x0000562226f30978
@body_charset=nil,
@body_date=nil,
@body_encoding=#<Encoding:ASCII-8BIT>,
@body_size=0,
@body_type=nil,
@chunked=false,
@dumped=false,
@header_item=
[["Date", "Mon, 20 Aug 2018 13:23:30 GMT"],
["Content-Type", "*/*"],
["Transfer-Encoding", "chunked"],
["Connection", "keep-alive"],
["Server", "Mastodon"],
["X-Frame-Options", "DENY"],
["X-Content-Type-Options", "nosniff"],
["X-XSS-Protection", "1; mode=block"],
["Vary", "Accept-Encoding, Origin"],
["Cache-Control", "no-cache"],
["X-Request-Id", "5f9bf402-8842-4f14-86ae-29f8f6288d73"],
["X-Runtime", "0.002553"]],
@http_version="1.1",
@is_request=false,
@reason_phrase="Not Found",
@request_absolute_uri=nil,
@request_method="GET",
@request_query=,
@request_uri=
#<Addressable::URI:0x2b1113798bc4 URI:https://social.mikutter.hachune.net/api/v1/statuses/>,
@status_code=404>,
@peer_cert=
#<OpenSSL::X509::Certificate
subject=#<OpenSSL::X509::Name CN=social.mikutter.hachune.net>,
issuer=#<OpenSSL::X509::Name CN=Let's Encrypt Authority X3,O=Let's Encrypt,C=US>,
serial=#<OpenSSL::BN 280872629281245487751331636465356944935591>,
not_before=2018-07-19 08:41:52 UTC,
not_after=2018-10-17 08:41:52 UTC>,
@previous=nil>]
notice: {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:67:in `block (2 levels) in start': retry wait 0, fail_count 0
notice: /home/seibe/.mikutter/plugin/worldon/api.rb:122:in `call': Worldon::API.call get https://social.mikutter.hachune.net/api/v1/accounts/18047/statuses [["Authorization", "Bearer fa785c12e761ee5c1c93bec57b734d0bf39d0ab824e45546729d93f540e36772"]]

notice: /home/seibe/.mikutter/plugin/worldon/api.rb:122:in `call': Worldon::API.call get https://social.mikutter.hachune.net/api/v1/accounts/18047/statuses [["Authorization", "Bearer fa785c12e761ee5c1c93bec57b734d0bf39d0ab824e45546729d93f540e36772"]]
notice: /home/seibe/.mikutter/plugin/worldon/api.rb:122:in `call': Worldon::API.call get https://social.mikutter.hachune.net/api/v1/accounts/18047/statuses [["Authorization", "Bearer fa785c12e761ee5c1c93bec57b734d0bf39d0ab824e45546729d93f540e36772"]]

notice: /home/seibe/.mikutter/plugin/worldon/api.rb:122:in `call': Worldon::API.call get https://social.mikutter.hachune.net/api/v1/accounts/18047/statuses [["Authorization", "Bearer fa785c12e761ee5c1c93bec57b734d0bf39d0ab824e45546729d93f540e36772"]]
notice: /home/seibe/.mikutter/plugin/worldon/api.rb:122:in `call': Worldon::API.call get https://social.mikutter.hachune.net/api/v1/statuses/100582779660198791
[]

今後の活動

しばらくこの界隈から離れていましたが,6月頃からOSS関連のイベントに積極的に参加しています。

先日参加したLILO&東海道らぐで色々話を聞いて,やる気があるなら自分でイベントを企画した方がいいよなど言って頂いたりもしました。

つついさんからも次はどないすんねんと脅され,そもそも自分のしたいことは何なんだろうと言うかそういう感じのことを昨日夜にぼーっと考え直したのでざっと書きなぐります。

 

・今更自己紹介的な

私は他のOSSの界隈の多くの人達と異なり,大学の専攻が情報系でなく(機械工学)仕事もあまり関係ないようなことをしています。

元々Linuxに興味はあったのですが,ある日突然普通のWinマシンにGentooをインストールされてから徐々にLinuxを使うようになったぐらいで何かを創作する能力があるわけでなく,単にツールを扱ってるだけの人間です。

大学のときにCやfortranを扱うことはあったので,微分方程式を解いたりなどは出来ますがグラフィカルなアプリケーションだったりそんなものとは程遠いところにいました。

前の部署のときに会社の研修の一環で一度VB.NETの講座を受けたことがありますが,そのときに初めてGUIをベースとしたような開発環境を触りました。

せっかく講座を受けたので,自分でアプリを使ってみたりもしました。

当時はパズドラにハマっていたので,パズドラのダンジョン周回時間を記録して集計したり,ダンジョンのクリアタイムを競うのに使えるタイマーの機能を持ったものをVBで作りました。

Windows向けの高性能なタイマーアプリはあるのですが,設定がかなり複雑で作成者が海外の方のため日本語化も十分にできておらず誰でも簡単に使えるようなタイマーがないような状態でした。(多分今も)

そういう欲しいけどないからと言うモチベーションで一応使えるようなものを作ったことはあるので,そういう気持ちが創作の原動力になるのはすごくよくわかります。

皆さんと肩を並べて何かを作ったりして行きたいと言う気持ちだけではあるのですが,能力に不安があったりします。そして,一番問題なのはじゃあ何をするん?って言うのがあまり定まってないところです。

 

・自分のやりたいこと

@naota344と言う人からGentooを与えられてからGentooが好きでずっと使っていますが,Gentooを使って何かをすると言う目的があるわけでもないです。

ただうっすらと思ってるのは,Gentooと言う自由に選択の出来るOSで自分にとって最も扱いやすいデスクトップ環境を作ってみたいと言うのがあります。

デスクトップ環境と言う時点でGentooじゃなくてよくね感があり,自分でもなんでこう思うのか分からないですが,でもGentooでやりたいと言う純粋なGentooに対する愛着のみがあります。

現状では,Gentooを把握しきれておらず手元のGentooラップトップもうまく設定出来てない箇所がたくさんあり,課題に溢れています。

Gentooを把握してないと言うよりは,Linuxのベース的な部分なのかもしれなくそもそも全部理解するのは簡単に出来るものではないかもしれません。

ただ,周りの方と比べると明らかに知識で劣っているのでまずはその差を埋めたいと思ったり。

今は自分から立ち上げる勇気もないので,他のイベントに参加していますが,やはり目的が異なるとかそもそも自分のレベルが低いので話を半分も理解出来ないことがほとんどです。

そういう意味で先日は自分で企画した方がいいよと言ってくれたんだと思います。

仮に自分で企画するとしたら何がベストなんだろうと考えたときに上記のことが一番強く出ました。

自分のレベルに合わせないと結局自分がついていけないだけであると。

という事でもし自分が何かを企画するとしたら,ベースは自分にとって話が分かるを重視する必要があると思いました。

自分のやりたいことは自分にとってどのOSよりも使いやすいデスクトップ環境を作ることなので,そのために必要なことを共有するような集まりが出来るのが一番良いなと判断しています。

 

・仮案

最近マストドンで定期的にGentooで検索をするのですが。

挑戦して成功する人もいれば,大きな傷を負って散っていく人もいるようです。見つけた人をフォローして交流が持てたり持てなかったりと少しずつ幅を広げてはいます。

デスクトップ環境にたどり着くまでにまずは#gentooinstallbattleからする必要があり,自分にとってはもう何度もしてきたことで大したことないことであると思っていますが全部中身を理解できてるわけではありません。

以上のことから,1回目としては参加者みんなで#gentooinsallbattleをするようなのが出来ればいいなと思ってます。

昔こういう企画あった気がするけどね。

行う上で問題なのは,

1. 参加する人がいるのか

2. 解説が出来るのか(人がいるのか)

3. 時間内に終わるのか

どの問題もかなり重要と言うか全てクリア出来ないといけないレベルなので,本来はもっと掘り下げた問題を気にしないといけないかもしれませんが。

少なくとも自分のレベルアップをしないとしんどいのかなぁと思いました。

そう思い今日は,今のラップトップであんまりよく分かってない部分を理解するために最寄りのコメダに行き作業をしているのですが,電池があと10%ぐらいになりもう残された時間があまりないです。

 

・まとめ

話はそれましたが,回数を追うごとに自分がステップアップ出来るのを目的にしつつ,色んな人と交流を持てるようなイベントを開催出来たら一番良いと思ってます。

ここで書いただけで本当に実行出来るかも分からないですが,私1人の力ではそもそもどうにもならん話なのでこれを読んだり読まなかったりした人達が助けてくれたら上に書いたようなことが実現出来るのかもしれません。

 

なぐり書きですが,最後まで読んでくれた人ありがとうございます。

ただの妄想で終わるか何かするかは分かりませんが,今後ともよろしくお願いします。

 

LILO&東海道らぐに参加しました

近くだったので行ってきました。

しゃべる練習も兼ねてちょっとだけ発表もしてきました。

話した内容は主に1つ前の記事について

 

mikutter4pk.hatenablog.com

 

結構自分らのTwitterMastodonを常用する世代と年齢差がある感じだったので,もっとちゃんと説明しないとダメな感じでした。

でも,10分ぐらいにはおさめようと思っていたのであれ以上掘り下げるのも時間的に厳しかった。

恥ずかしいのでスライドの公開とかはすることありませんが,同じ話をまたするとしてももっとブラッシュアップしないとダメですね。

当日の雰囲気を見て臨機応変に修正する余裕もなく,予定通りの話をして終わり。

予定通りと言うのも若干嘘で1つ話が抜けました。

スライド増やすと長引くからと思って作るのサボったけど,やっぱりちゃんと作らないと分かりにくいよなぁとかリアルタイムで思いながらしゃべったりと完全に修行不足でした。

しゃべってる途中で某氏にふぁぼ爆撃されたりと内容はともかくmikutterユーザーグループらしさを出すことは出来たので,満点は遠くても最低限味を出すことは出来たような気がします。

 

帰ってからつついさんに次のお題を早々に決めましょうと言われ,ちょっと考えました。

すでにある程度固まってきた状態です。

どこまで構想通り出来るかわからないけど,次は今回よりも自分で納得出来るような話が出来ればと思います。

 

今後は積極的に活動していきますので,よろしくお願いします。

 

mikutterによる通知関係の話

しばらく間が空きました。

何もいじってなかったわけじゃないですが,Linuxの課題を解決出来ない状態が続いたりで更新出来るようなネタがありませんでした。

今回は,mikutterの話で,今後標準機能として搭載されるだろう話なのであまりここでまとめる意味はないのですが,mikutterから携帯などへ送れる通知についての話を書きます。

 

・mikutterからの通知の意味

mikutterはTwitterクライアントとして立ち上がりましたが,現在はマストドンプラグインがあったりと複数のワールドをまとめて管理することが出来ます。

したがって,発生する通知もまとめて送ることが出来ます。

携帯のクライアントにだいたい通知機能もあるので,それでええやないかと言う考え方も出来ますが,通知機能自体が微妙なクライアントもあるし通知機能は良いけど使い勝手が良くないクライアントもあったりで両方の条件を満足するのはなかなか難しいと思っています。

そこで,普段家にいるときも外にいるときもmikutterで通知を飛ばして,全ての通知をmikutterでやってしまおうと言うことを思いつきました。

 

・既存のプラグイン

yuzumoneさんが以前に作成していたプラグインがすでにありました。

時系順ではないですが,紹介していきます。

下に行くほど運用が良いものだと思っています。

 

①pushbullet

github.com

 

mikutter_pushbulletはmikutterで発生した通知をpushbulletを通してpushbulletの通知アプリなどのある他のデバイスへ通知することが出来るプラグインです。

通知アプリはアンドロイドもiPhoneもちゃんと存在します。

更新頻度はあまり良くないようで2016年頃から止まっていて,通知アプリとしての品質は何とも言えない状況です。

これにより,ふぁぼやリプライやRT(BT)を携帯などに送ることが出来ます。

ただし,pushbulletは全てが無料で使えるサービスではなくて,無料で使える範囲は一ヶ月で500通知までになっています。

有料で使う場合は一ヶ月で5ドル,年契約だと一ヶ月あたり4ドルぐらいお金がかかりめっちゃ金かかる。

通知の数がそんなに多くない人にはおすすめですが,複数のワールドをまとめて通知という事でそういう目的にはちょっとコストが高いかなと言う問題があります。

 

②pushover

これもyuzumoneさん作成のものです。

github.com

作成された時系列としては,pushbulletよりこちらが先ですが,結果的にはpushoverの方が運用上は上という事で2番目に紹介します。

pushbulletと異なる点は,通知アプリがちゃんと更新されていて中身もしっかりしている,無料で使う場合8日間しか使えないが有料で使用する場合1デバイスにつき5ドル払えば一ヶ月間の通知が7500まで使える。

結局通知の量に制限はありますが,600円ぐらい払えばほぼ自由に使えるので実運用上は問題なく使えています。(実際に使ってました)

大元の品質や通知アプリの品質的にもpushoverの方が上だと判断しています。

ただし,無料で使う場合は8日間までしか使えないので,有料で使いたいと思う気持ちがないと使えません。

お金を払う価値があるかどうかは8日間ぐらいで判断出来ると思うので,とりあえず試す価値はあると思います。

 

・新しく出来たプラグイン

③fcm

これもまたyuzumoneさんが作成してくれたプラグインによるものです。

プラグイン本体

github.com

通知アプリ(現在アンドロイド向けしかありません)

github.com

 

上記2つと異なり,仲介業者を経ずに通知を送ることが出来ます。

fcmと言うGoogleが提供してくれるサービスを直接使うことが出来るプラグインです。

上記2つのアプリもfcmなどを使って通知をしているわけですが,いったんpushbulletなどを経由してユーザーに送られるので比較すると全然通知の速度が違います。

また,このfcmはリアルタイム通知などにも用いられるものらしいので,弊環境ではmikutterからGnomeなどのnotifyに送られるよりもfcmによる携帯の通知の方が早いことがあるぐらい早いです。

現在, Googleからの制限もないため通知の制限もなく,無料で自由に扱うことが出来ます。

つまり,最強です。優勝しました。

 

上記プラグインはfcmを利用するための仕組みだけで具体的な通知が実装されていないため,pushbulletなどと同じ通知を扱うプラグインを作成してみました。

 

github.com

 

今後,アクティビティメニューからどれを通知するかを選べるようにするのを標準で実装するかもしれないということなので,そのうち死にゆくプラグインになるかもしれません。

まあでも,いつ実装出来るのかというのもあるのでそれまで使えるのと,ほぼコピペで作ったプラグインなので修正箇所だったり改善箇所があれば色々ご教示いただけると嬉しいです。(mikutterなんもわからん)

 

yuzumoneさんはあえて具体的なものではなく,色々拡張出来るベースとなるものを作ってくれたおかげで,通知アプリだったり,通知をどう飛ばすかだったりを他の人が自由に作ることが出来ます。

ちなみにiOS向けのfcm通知アプリ自体がstoreに存在しないようなので,iOS版を作ることにはかなり意味があるかもしれない。

アンドロイド版は色々他にもあるようですが,他のアプリを試していないので普通に使えるかどうかはわかりません。

 

本来寝る前に書く予定の記事でしたが,寝落ちしてしまったため変な時間になりました。