コンソールでモダンなウェブが閲覧できる Browsh を試す

browsh-header
最近HTML5, CSS3, JS, videoなども閲覧可能な端末上でブラウジング出来るBrowshというものを知りました.

BrowshのバックエンドはFirefoxで,その画面を変換して表示しているようです.キーボード,マウスで操作できます.

Firefox -> VNC -> Browsh -> Termina/http

各種環境の単一のバイナリ(別途Firefoxが必要)や,docker imageが提供されています.arm版も用意されていますが,Firefox 57移行が必要なのでRaspberry PiのRaspbianではひと工夫要りそうです.

また,sshで体験できるようにもなっています.まずはこれで体験してみるのがお手軽で良いと思います.

$ ssh brow.sh

しかし,今日試したところ混んでいるようで繋がりませんでした(◞‸◟)

All of Browsh's servers are currently busy. Please try again soon.
Shared connection to brow.sh closed.

導入

手元で試してみます.今回は Linux Static: x64 を試しました.ちなみにv1.2.3の時はうまく動作しませんでしたが,現在のv1.3.3では動作するようになりました :)

BroushにはFOrefox 57以降が必要です.もし導入していない場合はFirefoxを導入します.そして対応バイナリを入手してchecksumを確認,実行権を付与します.

$ sudo apt install firefox
$ wget https://github.com/browsh-org/browsh/releases/download/v1.3.3/browsh_1.3.3_linux_amd64 https://github.com/browsh-org/browsh/releases/download/v1.3.3/browsh_1.3.3_checksums.txt
$ sha256sum -c browsh_1.3.3_checksums.txt 2>/dev/null | grep -v 'FAILED open or read'
browsh_1.3.3_linux_amd64: OK
$ chmod u+x browsh_1.3.3_linux_amd64

実行(TTY)

端末上で実行します.ヘッドレスでFirefoxが起動してからBrowshが利用できるようになります.

$ ./browsh_1.3.3_linux_amd64

以下のショートカットとマウス操作が可能です.

  • キーボード・ショートカット
    F1 : ドキュメント( https://www.brow.sh/docs/introduction/ )の表示
    カーソルキー,PgUp/PgDn : 画面スクロール
    CTRL+q : Browshの終了
    CTRL+l : URLバーにフォーカス
    BACKSPACE : 前の画面に移動
    CTRL+r : ページ再読込
    CTRL+t : 新しいタブ
    CTRL+w : タブを閉じる
    CTRL+TAB : 次のタブに移動
    ALT+SHIFT+p : スクリーンショットの取得(動作しない?)
    ALT+m : モノクロモードトルグ
    ALT+u : ユーザエージェントデスクトップ,モバイル切り替え

マウス操作はリンククリックだけだと思います.リンククリックもキーボードで出来ると良いのですが今のところ出来ません.issueで上がっているので出来るようになるかもしれません,

以下は手元で動かした時の表示例です.表示が崩れる場合は端末ソフトを変えるとましになったりします.
手元ではsakuraはしましまになってしまいました.以下のスクリーンショットはgnome-terminalのものです.

20180714_21:07:42-1367220180714_21:07:50-13839

残念ながら現在日本語などのワイド文字には未対応です.Issueに上がっているのでそのうち直ると思います.

http-server機能を使う

-http-server オプションを使うとBrowshをhttp proxyのように他のウェブブラウザで表示結果を利用できます.この場合多少崩れますが日本語も表示できます.細い回線だけでなく古い機械のウェブブラウザや,性能の低いマシンでアクセスするのにも良さそうです.

$ ./browsh_1.3.3_linux_amd64 --help 2>&1 | grep http-server$ -A1
  -http-server
        Run as an HTTP service
$ ./browsh_1.3.3_linux_amd64 -http-server -http-server-bind 127.0.0.1

既定値では,4333ポートで利用できます.
http://127.0.0.1:4333/
任意のURLを開く場合はこのURLの後ろにアクセスしたいURLを付与します.
http://127.0.0.1:4333/https://duckduckgo.com/

Chromeでアクセス
20180714_21:07:35-18304
20180714_21:07:55-18562

w3mでアクセス
20180714_21:07:31-18905

2011年発売のAndroid端末のAndroidブラウザでアクセス
image%3A52713

ちょっと崩れるけどいい感じです :)
ただ,何故かGoogle+にアクセスするとBrowshのページになってしまいます(TTYだとOK)

テキストブラウザはelinksやw3mなどありますが,最近のリッチな環境には追従できていません(JavaScript機能の入ったw3mは以前あった).フューチャーフォン時代はそちらのページを利用したりしていましたが最近はスマートフォン対応でそういったページも無くなってきています.ということでBroushのこれからに期待です.

余録

仕組みなどがやはり端末でリモートデスクトップが利用できるtexttopに似ているなと思ってGitHubにアクセスしてみるとBroushに転送されました.同じ人が作ったもので途中からBrowshに変わったようです.

環境

Browsh : Linux Static: x64 v1.3.3

$ lsb_release -d
Description:    Debian GNU/Linux unstable (sid)
$ uname -m
x86_64
$ dpkg-query -W firefox
firefox    61.0-2

マルチUSB書き込みツールのPopsicle

USBメモリなどにOSイメージなどを書き込む時GUIだとEtcherやUNetBootinなどのツールを使ったりしますが,同時に複数の媒体への書き込みに対応していません.同時に書き込みたい場合私はteeコマンドとddコマンドを利用したりしていましたが,PodsicleというツールがGUI/CUIで同時書き込みに対応しているようなので試してみました.Rust製MITライセンスです.

導入

$ git clone https://github.com/pop-os/popsicle
$ cd popsicle
$ make
$ sudo make install

make installだとGUT/CUIの療法が導入されます.make install-gtkだとGTK(GUI)のみ,make install-cliだとCLIのみです.

GUI利用

popsicle-gtkを起動すると書き込みイメージの選択画面になります.ここでイメージを指定すると読み込みチェックが走りしばらく待たされます.(CUIではチェックしないことも出来る)
20180708_08:07:50-31395

次に書き込み先のデバイス選択です.書き込みたいデバイスをチェックします.この画面になってからUSBメモリの抜き差しをしても反映されるので便利です.ちなみに内蔵SD cardの/dev/mmcblk0`はここにはでてきませんでした(CUIでは利用できます).
#SD-USB変換でUSB経由だとSD card書き込み可能です.

20180708_09:07:39-21924

書き込み中画面です.複数デバイスの場合はそれぞれプログレスが表示されます.

20180708_09:07:54-30224

書き込み完了.

20180708_09:07:17-32223

CUI利用

CUIはpopsicleコマンドです.

$ popsicle -h
popsicle_cli 0.1.5
USB Flasher
 
USAGE:
    popsicle [FLAGS] <IMAGE> [DISKS]...
 
FLAGS:
    -a, --all        Flash all detected USB drives
    -c, --check      Check written image matches read image
    -h, --help       Prints help information
    -u, --unmount    Unmount mounted devices
    -V, --version    Prints version information
    -y, --yes        Continue without confirmation
 
ARGS:
    <IMAGE>       Input image file
    <DISKS>...    Output disk devices

イメージファイルと書き込み先のデバイスを指定して実行すると書き込めます.GUIでは/dev/mmcblk0は出てきませんでしたが,CUIでは書き込めました.

$ sudo popsicle ~/Downloads/2018-06-27-raspbian-stretch.img /dev/sdc /dev/sdd /dev/mmcblk0

ちなみにddで書き込む時は圧縮イメージファイルを展開しながら書き込むことが多い(zcat image.gz|pv|sudo dd of=/dev/sdz bs=4M)のですが,そういったことは出来なさそうです.

$ zcat ~/Downloads/2018-06-27-raspbian-stretch.zip | popsicle -u - /dev/mmcblk0 
popsicle: error with image at '-': image could not be opened: No such file or directory (os error 2)
$ zcat ~/Downloads/2018-06-27-raspbian-stretch.zip | popsicle -u /dev/stdin /dev/mmcblk0 
popsicle: error with image at '/dev/stdin': image was not a file
$ mkfifo zip.img
$ zcat ~/Downloads/2018-06-27-raspbian-stretch.zip > ./zip.img  &
$ sudo popsicle ./zip.img /dev/mmcblk0
popsicle: error with image at './zip.img': image was not a file

関連

端末上で遊べる障害物避けゲームのascii runner

端末上で遊ぶ障害物をスペースバーでジャンプして避けるゲーム.自キャラの4本足の生き物の動きがコミカルです.でも案外難しい.
macOS/Linux のamd64 だったらバイナリやパッケージがあるのでそれを使うのが良いです.
buildする場合はこんな感じで(結構時間掛かった)

$ sudo apt install haskell-stack $ git clone https://github.com/smallhadroncollider/ascii-runner $ cd ascii-runner $ stack build $ stack install $ runner 

端末での操作をSVG形式で記録する termtosvg

ttyrec/playみたいに端末操作を録画出来るアプリケーション.再生はウェブブラウザなどでできます.

導入はpipで

$ pip3 install termtosvg
$ termtosvg -h
usage: termtosvg [output_file] [--font FONT] [--theme THEME] [--help] [--verbose]
Record a terminal session and render an SVG animation on the fly

positional arguments:
  output_file    optional filename of the SVG animation; if missing, a random
                 filename will be automatically generated

optional arguments:
  -h, --help     show this help message and exit
  --font FONT    font to specify in the CSS portion of the SVG animation
                 (DejaVu Sans Mono, Monaco...). If the font is not installed
                 on the viewer's machine, the browser will display a default
                 monospaced font instead.
  --theme THEME  color theme used to render the terminal session (circus,
                 classic-dark, classic-light, dracula, isotope, marrakesh,
                 material, monokai, solarized-dark, solarized-light, zenburn)
  -v, --verbose  increase log messages verbosity

See also 'termtosvg record --help' and 'termtosvg render --help'

導入後実行するとそのまま端末に戻ってexitするまでの操作を記録してくれる.exitするとSVGを書き出してそのファイル名を教えてくれる.

mk@T430s:~ (551)$ termtosvg
Recording started, enter "exit" command or Control-D to end
mk@T430s:~ (554)$ cowsay -f duck "hello termtosvg!"
 __________________
< hello termtosvg! >
 ------------------
 \
  \
   \ >()_
      (__)__ _
mk@T430s:~ (555)$ cowsay -f duck "hello termtosvg!"|lolcat
 __________________
< hello termtosvg! >
 ------------------
 \
  \
   \ >()_
      (__)__ _
mk@T430s:~ (556)$ exit
Recording ended, SVG animation is /tmp/termtosvg_vpd7hh0z.svg

出来上がったファイルはSVGなので中を見てコピペとか出来なくはない.

$ xmllint --format /tmp/termtosvg_vpd7hh0z.svg|head
<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="full" height="408" version="1.1" width="640">
  <defs>
    <style type="text/css"><![CDATA[* {font-family: "DejaVu Sans Mono", monospace; font-style: normal; font-size: 14px}
text {dominant-baseline: text-before-edge}
.bold {font-weight: bold}
.background {fill: #002b36}]]></style>
    <g id="1">
      <text fill="#93a1a1" lengthAdjust="spacingAndGlyphs" textLength="144" x="0">mk@T430s:~ (554)$ </text>
      <text fill="#002b36" lengthAdjust="spacingAndGlyphs" textLength="8" x="144"> </text>

以下にexampleがある

サーバにアップロードして共有だとasciinemaが便利だけどこれはこれでファイル一個なので便利そうです.
Python製でライセンスはBSD 3-Clause Licenseです.

Bittorrentでダウンロードしたファイルのハッシュ値が一致しなくて困る

Raspbianの新しいバージョンがリリースされていた(2018-06-27)ので,Bittorentファイルを入手してTransmission-gtkでダウンロードしました.

2018-06-27:
  * New first-boot configuration wizard added
  * Recommended Software installer added
  * Bluej, Greenfoot, NodeRED, Claws Mail, VNC Viewer removed from image - can now be installed from Recommended Applications
  * Qpdfview PDF viewer installed instead of Xpdf
  * Version 65.0 of Chromium browser included, with latest Flash player
  * Volume up / down keys now change by 5% increments and affect currently-selected output device rather than internal device only
  * Network plugin now remembers previously-entered WiFi network passwords when prompting for reconnection
  * Serial port and serial console can now be switched separately in Raspberry Pi Configuration
  * Lxkeymap keyboard language setting application removed - replaced with dialog within Raspberry Pi Configuration
  * Wifi country and keyboard language setting dialogs in Raspberry Pi Configuration now callable from other applications
  * New version of Piboto font included to render with correct weight under some rogue applications
  * Reconnection to Bluetooth audio devices on reboot improved
  * Disable click-to-rename behaviour in file manager if single-click selection enabled
  * Appearance Settings dialog makes config changes to some Qt files to match selected theme
  * MIME file type associations improved
  * Multiple desktop management options removed from mouse middle-click menu
  * Menu shortcuts to Raspberry Pi website amended
  * Python 2 IDLE menu link removed
  * Sample Magpi PDF installed in /home/pi/MagPi
  * Various minor tweaks, bug fixes and appearance changes
  * Bluetooth updates
    - Firmware with Bluetooth 4.2 features
    - SCO profile suppot added via bthelper.service
  * Linux kernel 4.14.50+
  * Raspberry Pi firmware 748fb17992426bb29d99224b93cb962fefbdc833  

一晩経って確認するとダウンロードが終わっていたので念の為ハッシュ値を確認すると合いません.

$ ls -l ./2018-06-27-raspbian-stretch-lite.zip
-rw-r--r-- 1 mk mk 366870528 6月 30 03:02 ./2018-06-27-raspbian-stretch-lite.zip
$ sha256sum 2018-06-27-raspbian-stretch-lite.zip
ce2d2babed81d5b2d6b919dc8dc92bc915a7d89f09f3aaad1d9ae01f2471eb25 2018-06-27-raspbian-stretch-lite.zip
$ echo 3271b244734286d99aeba8fa043b6634cad488d211583814a2018fc14fdca313
3271b244734286d99aeba8fa043b6634cad488d211583814a2018fc14fdca313

Transmission-gtk の該当Torrentで右クリックし,「ローカルデータを検証」を行うとダウンロードファイルが99%になりました.この状態でしばらく放置すると再度100%になり,今度はハッシュ値が合致しました.なぜこういう動きになったのかは謎です…….

shutter_18-06-30_06:29:30_001

環境

$ dpkg-query -W transmission-gtk
transmission-gtk        2.94-1+b1
$ dpkg-query -W transmission-common
transmission-common     2.94-1
$ lsb_release -d
Description:    Debian GNU/Linux unstable (sid)
$ uname -m
x86_64

JOSMで360度カメラ写真が利用できるようになるMapillaryプラグインを試してみる

をちょっと試してみました.
試した環境はDebian sid amd64,で,Pluginの場所は~/.local/share/JOSM/plugins/でした.(~/.josm/pluginsを作るとそちらの設定が優先で全部そっちに取られて初期状態になる)
ダウンロードしたプラグインをここに置いてJOSMを起動して有効にするとオリジナル版?をダウンロードして上書きしてしまうようなので,オリジナル版を有効にした後上書きしました.

  • JOSMを起動して,Mapillaryプラグインを導入
    20180626_05:06:07-21756
    20180626_05:06:46-20695
    20180626_05:06:54-28585
  • JOSMを終了して三浦さん版Mapillaryプラグインで上書き
$ wget -O ~/.local/share/JOSM/plugins/Mapillary.jar 'https://bintray.com/osmfj/JOSM/download_file?file_path=Mapillary.jar'
$ sha256sum /home/mk/.local/share/JOSM/plugins/Mapillary.jar
e6961ceb8381ea3eddec7c457edfe5a2bcea593f43ce9a9b75a9214396be5ac8  /home/mk/.local/share/JOSM/plugins/Mapillary.jar
  • JOSMを起動してshift+,してMapillaryレイヤーを有効にして適当な場所で360度カメラ画像を探す.今回は横浜のシルクセンター前辺り.
    • (エラーが出たら無視して強行)
  • 見やすくするためにMapillary窓の📍をクリックして別ウィンドウにする
  • 初期は歪んだ画像だが,クリックすると補正される
  • クリックした場所がセンターになる
  • 360度回転できる画像と端で止まる画像がある?

out.resized

いい感じですね.360度カメラや180度カメラ,せめてアクションカムが欲しいところです…….



#そういえば先日Googleから180度カメラのビデオ変換アプリケーションが出ました.macOS/Linux対応.(WIndows非対応!) -> VR180 Apps

試した環境

$ java -jar ~/bin/josm-latest.jar --version
JOSM/1.5 (13974 ja) Linux Debian GNU/Linux unstable (sid)
$ java -version
openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Debian-4)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Debian-4, mixed mode)
$ dpkg-query -W openjdk-10-jre
openjdk-10-jre:amd64    10.0.1+10-4
$ lsb_release -d
Description:    Debian GNU/Linux unstable (sid)
$ uname -m
x86_64

Windows用Notepad++をsnapパッケージでLinuxに導入

WindowsアプリケーションのNotepad++がWineとセットでsnapパッケージにされているらしいです.但し非公式.
winepackはFactpak化だったのでそれのsnap版みたいな感じですね.(こっちは単一のアプリケーションだけだけど)

snapなので試すのは簡単です.

$ sudo snap remove notepad-plus-plus

試しに動かすと日本語は豆腐になってしまいます.多分フォントを入れれば解決する?

20180624_05:06:09-22454

~/snap/notepad-plus-plus/common/.wineにwineの設定があるのでその下のdrive_c/windows/Fontsを覗いたらhostのsystemのfont全てにシンボリックリンク貼ってあったのでフォントは入ってそうです.
Notepad++の設定で適当なフォントを指定したら豆腐直りました.
設定は,「setting」->「preference」「日本語」を指定,「設定」->「スタイル設定」で適当な日本語対応フォントを指定.ここで「Global style : Default style」のフォントを指定でとりあえずデフォルトの画面での豆腐は直りましたが,沢山スタイルあるのでこれ設定するの面倒そうです.(常用するならシステムのフォントも変えたほうが見やすくなりそうですね)

20180624_06:06:52-32246

20180624_06:06:55-8334

そしてちょっと使ってやっぱりXのバッファが使えないのが辛いので消しました><

$ sudo snap remove notepad-plus-plus

Windowsでこのアプリケーションを利用している人にはお手軽に導入できて良さそうです.

Flickrにコマンドラインから画像をアップロードするFlickr-Uploadを試す

何時もはflickcurlを利用しているのですが,複数のアカウントに対応していないようなので別のツールを探してFlickr-Uploadを見つけました.

const char* config_filename = ".flickcurl.conf";

Install

$ sudo apt install libflickr-upload-perl

認証

  • URLを開くと認証画面になるので許可する
  • リダイレクトでダミーURLに飛ばされるのでそのURLをURL:のところに貼り付ける
$ flickr_upload --oauth
Please open this URL in your browser and follow the instructions:

https://api.flickr.com/services/oauth/authorize?oauth_token=72157697799378834-ad02ea9a475eac80&perms=write

When you authorize this app, you'll be directed to a dummy URL
that contains a confirmation code. Paste that URL here.

URL: https://127.0.0.1/?oauth_token=999999999999999999-deadbeefdeadbeef&oauth_verifier=123456bdeadbeef
Saving OAuth credentials to /home/mk/.flickroauth.st
Uploading /home/mk/.flickrrc...Can't read photo '/home/mk/.flickrrc' at /usr/share/perl5/Flickr/Upload.pm line 128, <STDIN> line 1.
  • ~/.flickroauth.st に認証ファイルが作られる
$ ls -l /home/mk/.flickroauth.st
-rw-r--r-- 1 mk mk 673  6月 24 08:47 /home/mk/.flickroauth.st

アップロード

$ flickr_upload --public 1 ~/Pictures/20180624_06:06:55-8334.jpg
Uploading /home/mk/Pictures/20180624_06:06:55-8334.jpg...
Waiting for upload results (ctrl-C if you don't care)...
/home/mk/Pictures/20180624_06:06:55-8334.jpg is at https://www.flickr.com/tools/uploader_edit.gne?ids=12345678902

10分毎に自動アップロード

2,12,22,32,42,52 * * * *    D=`date +\%m\%d\%H\%M.\%S` ; find ~/Pictures -newer ${HOME}/Pictures/.flickr_time \( -iname "*.jpg" -o -iname "*.png" \) -type f -print0 | xargs -0 -r -n1 flickr_upload --public 0 --tag 'autoupload' && touch -t ${D} ${HOME}/Pictures/.flickr_time

*/10+2とかできればいいのに

環境

$ dpkg-query -W libflickr-upload-perl
libflickr-upload-perl   1.60-1
$ lsb_release -d
Description:    Debian GNU/Linux unstable (sid)
$ uname -m
x86_64

Mountainから山が消えて困る

Steamは今日からサマーセールですが,なんとなく久々にSteamのMountainを起動すると山が居ません.

20180622_02:06:49-1858

本来なら宇宙の中にこの靄に囲まれた山があるはずなんですが居ません.キーを叩くとピアノが弾けるはずなのですがこれも無反応..で山の意思は聞こえます.

コミニュティガイドを見ながら以下のあたりを試そうとするもピアノが弾けないせいか反応がありません.

リセット : SBN,ASSSS
山を作り直す。(今の山は消滅する。)

隠しメニュー : FS,N,SFS,N,S,
山の年齢や木の数などが見られる。
LOADで事前にセーブした時点の山まで戻ることができる。
REGENは山を作り直す。

多分データがおかしくなったのだろうとアンインストールしてインストールし直しても駄目です.Windows/Macでは以下のような情報が.

データの初期化方法
山がバグってどうしようもなくなった人が居たので(山を破壊するコマンドも無意味だった)データ初期化の方法を記しておきます。

Windows: C:\Users\USERNAME\AppData\LocalLow\Trash\Mountain
Mac:   Users\Library\Caches\Unity.Trash.Mountain

にあるファイルを削除すれば初期化することができます。

findコマンドの-mmin~/.steam, ~/.config辺りを探してみるとそれらしいディレクトリを発見.
'~/.config/unity3d/David OReilly' このディレクトリを退避してみましたが変化はありません.

SteamのMountainのプロパティを見てみると,「アップデート」タブに「Steam クラウド」という項目がありました.

20180622_01:06:30-22237

このチェックを外して,'~/.config/unity3d/David OReilly'を削除してみたところ初期状態になりました!

20180622_02:06:24-2233

そして新しい山が作れました :)

20180622_02:06:12-2785

てことで山を眺めることが出来るようになりました.

20180622_02:06:27-2930

Mountainが気になる人は7/6迄サマーセール49% offで50円なので気になる方は買ってみてはどうでしょう.操作はコミニュティガイドの日本語を読むと良いです.Linux版もあるのでWineSteamとかを挟まなくても遊べます.

ところで先日移動中にMauntainのような桜島を見かけました.
IMGP5151IMGP5160IMGP5162IMGP5164

Google Photos の PWA版を試す

鹿児島らぐの「鹿児島Linux勉強会 2018.06」の帰りにだべっていたときにGoogle Photos の PWA版がリリースされているという話を聞きました.これまでLinux版のアプリはなかったと思うので便利かも?と試してみました.

Google Chromeの設定

Google Chrome で chrome://flags/#enable-desktop-pwas にアクセスしてPWAをEnabled(有効)にします.Google Chromeを再起動すると反映されます.

20180610_19:06:14-7169

 

Google Photosページから導入

Google ChromeでGoogle Photosのページ( https://photos.google.com/ )にアクセスし,ログインします.

右上の「︙」マークの設定に「「Google Photos」をインストールしています︙」という項目が現れるのでこれをクリックすると「アプリをインストールしますか?」と聞かれるので「インストール」ボタンをクリックしてインストールします.(「インストールしています」というメッセージなので待っていたのですがいつまで経ってもインストールが始まりません……)

shutter_18-06-10_19:49:15_001

shutter_18-06-11_02:34:35_001

「インストール」ボタンを押すとポコッとGoogle ChromeからGoogle Photoアプリが分離します.

20180611_02:06:13-10426

これがPWA版のGoogle Photoのようです.

デスクトップアイコンの有効化

デスクトップ上に謎の「~/Desktop/chrome-ncmjhecbjeaamljdfahankockkkdmedg-Default.desktop」というファイルが現れました.中見はGoogle Chromeのアプリを呼ぶもののようでそれっぽいです.

$ cat ~/Desktop/chrome-ncmjhecbjeaamljdfahankockkkdmedg-Default.desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Google Photos
Exec=/opt/google/chrome/google-chrome --profile-directory=Default --app-id=ncmjhecbjeaamljdfahankockkkdmedg
Icon=chrome-ncmjhecbjeaamljdfahankockkkdmedg-Default
StartupWMClass=crx_ncmjhecbjeaamljdfahankockkkdmedg

#この後Chromiumでも試してみたところファイルは上書きされ,Execのgoogle-chromeがchromiumに変わりました.

このファイルを開くと警告が表示され,「信頼して起動(L)」ボタンを押すことでGoogle PhotosのPWA版が起動しました.

20180611_02:06:49-10049

「信頼して起動(L) 」ボタンを押したタイミングで,デスクトップの「chrome-ncmjhecbjeaamljdfahankockkkdmedg-Default.desktop」は「Google Photos」という名称とアイコンに代りました.実体は変わっていないようでshellでlsなどをすると以前の名前のままです.

20180611_02:06:21-10504

 

まだリリースされたばかりのせいか機能はWeb版と同じように見えます.メニューには「アプリのダウンロード」がありますし,まだこれからという感じです.

でも切り替わる頃にはフル機能になるでしょうしそうなるとLinuxでも現在のデスクトップ版と同様の機能が使えるようになるのではないかと期待しています.

ちなみに現在の画像ファイルのGoogle Photosへの自動アップロードは ~/Pictures 以下をcrontabでGoogleCLのgoogleコマンドを叩いてアップロードするようにしています.

$ crontab -l|grep google
*/10 * * * *  D=`date +\%m\%d\%H\%M.\%S` ; find ~/Pictures -newer ${HOME}/Pictures/.picasa_time -type f -print0 | xargs -0 -r -n1 google -v picasa post 'Instant Upload' && touch -t ${D} ${HOME}/Pictures/.picasa_time

しかしGoogleCLはオリジナルは認証関連でだいぶん前に動かなくなってフォーク版を使っていたり,PicasaのAPIだったりといつ動かなくなるか不安だったりします.動かなくなる前にPWA版の機能が充実してくれるといいですね.

環境

$ dpkg-query -W google-chrome-stable
google-chrome-stable    67.0.3396.79-1
$ dpkg-query -W chromium
chromium        67.0.3396.62-1
$ uname -m
x86_64
$ lsb_release -d
Description:    Debian GNU/Linux unstable (sid)