blue glass block

memo and etc...

Vimconf 2018 感想

Vimconf 2018 on 2018/11/24 (Sat)

楽しく興奮した時間は過ぎ去り、また、いつもの日常(月曜)がまた来てしまった…
そんな感慨を覚えながら、振り返ってみよう。
(本当は日曜に既に家族と過ごす日常は来ていたが…)

一言で言って

一言で言って最高だった(最高)

全体的な感想

昨年(Vimconf 2017)より、引き続き参加。
昨年よりは少し場慣れした感じもありつつ、少々の緊張もあった。
今年はやはり Bram さんが参加されるとのことも有ってか、昨年よりも海外から多くの方が来られてたようで、確実に国際色豊かになっていた。
通訳も、英語→日本語、日本語→英語ともにプロの人に、やってもらっていた。
昔、rebuild.fm で rubykaigi (だったかな?)で、通訳のプロ入れるのは金額的にもスピーカーの準備なども大変と聞いたことが有ったことを思い出し、おぉスゴイと思った。

タイムテーブル順にその感想

注意事項

これは個人の感想であり、主観であり、個人的なメモと記憶に基づくため、実際の発表の内容、又は本来の発表者の意図と異なる場合があります。

始まるまで

  • かなり、早く到着。
  • 通訳らしき方が到着してた。よって今年は ujihisa さんの通訳ではないと悟る。
  • 奥さんと携帯で連絡とり合ってたら、Bram さんが目の前を通り過ぎてた。
  • 受付が始まる。3番目位に並んだが、なぜか受付やノベルティーの受取が爆速で終わり、一番最初に入ったと思う。少し緊張して来た。
  • 始まる。各自、各々席に着き準備。
  • ノベルティ確認、鮭とばがある。

Reseption

  • @moppさん、今年も司会ぶりがすばらしい。かっこいい。
  • スポンサーの各社様、個人スポンサーの皆様、スタッフの皆様、ありがとうございます。
  • ノベルティーの紹介、やはり鮭とばがある。

Keynote - What is the next feature? by Yasuhiro Matsumoto

  • mattnさん緊張していたらしい
  • スライドの各ページのタイトルが Vim コマンドになっていて、かっこいい。
    • :echo $USER
    • :e ~/Books/Vim
  • vim-jp が出来た経緯、KoRoNさんとの馴れ初め、vim-jpが果たしてきた役割などの話。
  • New feature の話
    既に動くものを書いてる辺り mattn さんらしい。
    • Suggestion 1
      • Support DRCS Sixel on :terminal
    • Suggestion 2
      • ch_listen()
    • Suggestion 3
      • BLOB type

本当に vim-jp ができて vim の開発者コミュニティーがまとまる場ができたのは大きいと思う。

  • 昔から貢献している mattn さんや、KoRoN (kaoriya) さん
  • 今や patch 数も日本人最多、 vim の ticket 管理も任されている k-takata さん
  • 様々な bug / document fix や、新機能 clpum の作者の h-east さん
  • 細かい所に手が届く ichizok (Ozaki Kiichi) さん

などなど、その他ドキュメントの翻訳関係など含めも、いろいろな人の協力で改善されている。

Short break and スポンサーの atWare さんの発表 by @guyon

  • 面接で大半のVimの話
  • Google 「アットウェア v」で「アットウェア vim」とサジェストされる
  • プラチナスポンサーになるまでの流れ良い話だった

Keynote - Vim: From hjkl to a platform for plugins by Bram Moolenaar

  • 感極まる(感極まる)
  • タイトルが感慨深い
    vim が plugin の platform になったと言うのが Bram さん本人から発表されたのが大きい気がする
  • Vi に既に mapping は有った。
  • Vim では ver 4.0 で Autocommands、ver 5.0 で Vim script (syntax highlighting、ftplugin、indenting)、ver 6.0 で、 runtimepath の追加で plugin として管理できるようになって、いろいろ出来るようになった。
  • でも performance も問題に
    • profile (便利)
      • :profile file {pattern}
      • :profile func {pattern}
    • startup time (便利)
      • vim --startuptime {fname}
  • Get a faster computer! だけど…
  • plugin loading time に関しては
    • autoload が ver 7.0 で追加
    • ここでいきなりの
      Future: Multi-threading: load a plugin in a separate thread.
      というアイデア。出来ればスゴイけど Some day... とのこと。
  • plugin execution speed に関しては
    • python.pyc みたいに .vic として中間表現を作ろうとのこと!
    • これには、おおマジでか!?と大興奮!
      実装とかまだ全然みたいだけど、Bram さん本人にそう言う考えがあるとわかって興奮した。
  • plugin management の話
    • packadd が ver 8.0 で追加
    • その他、plugin manager plugin もいろいろある
    • でも dependencies の問題がまだあると (先進的な plugin manager は持ってたりすると思うけど)
      そこで Proposal だけど…
      • plugin 毎に dependencies.vim をもって PluginDepend() で依存性を定義。
      • plugin 本体で PluginLoad() する。
  • more plugin support
    • Jobs and channels が ver 8.0 で追加された
  • plugin support poll で、多かった下記の2つをサポートするには…
    • 193 Popup window to show hints/message and pick an item
    • 179 Store properties with text, used for highlighting et al.
  • text properties というアイデアがある…と話し始める
    これまた、おお!っと思わせる機能
    show hints/message 以外にも、実装次第ではあるものの、既存の正規表現ベースの syntax hilighting が高速化したり、
    さらにLSPと連携した高度なものなども、実現可能になる夢がある。

Lunch break

  • 2種類の弁当を選べたが、今年もつい今半のすき焼き弁当選んでしまった。
    去年と同様においしいかったが、ベジ弁当もおいしかったの報告を見て、そちらに挑戦しても良かったと悔やんだ。
  • Vim で何書いてるか? アンケートが実施されていた。

Migrating plugins to standard features by daisuzu

  • plugin じゃなくてもできるよ!というお話
    plugin を使おう! という話になりがちな中、良い。スパルタン Vim きっかけ。
  • De-neocomplete
    • built-in の補完便利だよね。
      行補完とか賢すぎる。補完候補を選択している最中にもう一度CTRL-X_CTRL-Lすると、選択している次の行が候補に出てくる。
    • 自分も De-neocomplete したなぁ。理由は以下の通り
      • 数日使っていると cache などの為にと思われるが memory の使用量が 200MB over とかになる。
      • buffer の補完も自前で cache しているためか、さっき書いたことが補完候補に出ない
        これについては、後日、vim script から buffer 内の補完候補を取得できる便利関数が無いということを知った…
      • 上記を理由に built-in の補完をうまく使いたい
      • ので、 vim-acf なるよく分からんモノを自作してしまった。
  • De-neobundle
    • vim-plug 使っているけど、なるべく本体にある機能の packadd 使いたいなぁ。
    • packadd 使っている k-takataさんの minpack が気になる。
  • De-unite
    • 昔使っていた。Grepの非同期読み込みなどが魅力だった。
    • 今は ag などで検索自体速いし quickfix windows 使って :cn とか :cp したくて、止めてしまった。
    • その後、MRU や buffer 移動には CtrlP 使うようになった。
  • De-vimfiler
    • よく使うツリー表示のためのだけの単体 plugin の tree.vim を作った。すばらしい。

Modes by Tatsuhiro Ujihisa

  • モードの話だけかと思いきや、Vim の Debug 方法を解説されており、良い。
  • vimtutor
    • 昔やった、懐かしい。
  • :help
    • 重要。今でも見る。
  • GDB
    • gdb --tui もいいけど、
    • 自分的には cgdb をよく使う
    • -ggdb3 重要 (macroを扱うときなど?)
  • termdebug.vim
    • 存在は知ってたけど、使ったことなかった。
    • 便利そうなのだけど、 vim で編集可能な状態だと直ぐにファイル書き換えてしまいそうで敬遠してた。
    • 昔、clewnとか有って試したけど、ちょっとしか使わなかった。 (懐かしい)

Short break

  • コーヒーと紅茶のおかわり到着

A day in the life of (ordinary) Vimmer by OKURA Masafumi

  • 一日の様子
  • 自分も、一年前は、毎日 git pull して、ビルドしてたなぁ…
    plugin もだいたい毎日 update してた。
  • 緊張のせいかtype missが、頑張ってと言う気持ち。
  • podacs ! podacs !
  • This is TDD.
  • aaccepts !
  • Agは quickfix に残るので良い。
  • fzf ちょっと良さそうな感じ。
  • viの alias いいかも

Modern editor-independent development environment for PHP by USAMI Kenta

  • 争い事よくない
  • 有用なエディタの機能は、他のエディタに移植されたりする、今年は Rainbow Brackets とか。
    こういうのは良い
  • 昔は IDE は使ってなかった
  • tag jumpは正義
  • 今は色々あるよ
    • PhpStorm
      • この様な popup window を vim でも表示できれば、やはり便利だよなぁ
        text properties の実装が本当に待たれる
    • Phan
    • PHPStan
  • ここで LSP の説明
    • Bram さんに伝わって欲しい…
  • Vim + ALE で、Vimでもいろいろ使えるよ
  • 唐突に Veonim 。
    • 面白そうな Neovim の frontend

Effective Modern Vim scripting by Alisue

  • Bramさんの前で Dark Vimmer の説明が始まる!!
  • 普通に良い plugin 作成チュートリアルな感じで参考になった。
    後で詳しく見たい。
  • Vital.vim 便利

Short break

  • Vim に期待する新しい機能は? アンケート

Oni - The GUI-fication of Neovim by Akin

  • Bram さん以外の海外 Speaker。
  • Neovim の GUI の frontend の Oni について。
  • Neovim の syntax highlight 使ってるの? 自前でやってるの?
    → based on Textmate らしい
  • この様な現代的でカッコイイGUI frontendは憧れる。
  • おこがましいけど、 Bram さんもこういうのを見て、何かしら刺激を受けるといいなぁと思っていた。
    便利なものなどは、やはり実際動作を見ないとわからない所あると思うし。

Vim ported to WebAssembly by rhysd

  • color schemespring-night でお世話になっている rhysd さんの発表。
    みんなも最高なので spring-night 使おう。
  • WASM にするところで表示はどうやっているのかと思っていたら、 gui_*.c を WASM 様に作成されたとのこと…なるほど。
  • しかも、だいたい8日間で動くものできたらしい。
  • tiny featureが便利
  • やっている事に対し、発表がサラリと話されている印象だった (すごい!)

Lightning Talks

A brief introduction to vim-orgmode by Takaaki ISHIKAWA

  • 第2の脳
  • WordにExport
  • tree 暗号化
  • なんかすごそう

Neovim as a web browser controller by notomo

  • terminal と browser との行き来、辛い。
  • ctrlb.nvim
  • Neovim からコントロールできる面白い
  • Browser による FizzBuzz 最高だった。

VimPhone 2018 by rattcv

  • Demo、Demo頑張って欲しい…
  • 時間切れかー。
  • 何かがすごかった。何かが。

Differences between Nvim and Vim in 5 minutes by Shougo

  • いろいろ違いがあるけど、LTだと駆け足。
  • もう少しじっくり聞きたかった感。

The vim-history repository by Ken Takata

  • 2004年に Vim 7.0 の開発が始まった。
  • 1991年に Vim 1.14 release されたらしい。
  • From v1.14 to v5.4 は tarball。
  • From v5.5 to v6.4 は CVS から
  • 今の git repository に過去のやつ持ってくるの面白いなぁ。

Closing by mopp

  • Vimconf 2018 良かった(良い)

懇親会 (After party)

今年は、話したい人に話せるようにという気持ちだけは持っていた。
そして話せた。これだけで本当に良かった。
Bram さんは雲の上過ぎてそこまで行けなかった…のと、
今年こそはと言う意気込みが先行し、まずは、去年、話せなかった人たちに話しに行っていた。

まずは始まってから少し経つと、中央の机に KoRoN (kaoriya) さんと、k-takataさんがいるではないか!
という事で、話しかけに行った。

KoRoN さんには、Windows時代に kaoriya の vim を使っていて、多分それがなければ vim 使ってなかっただろうなぁと思ったので、
いろいろな人に言われているだろうけども感謝を伝えたところ、自分のネームタグを見て、「あぁ、知ってますよ」的なこと言ってもらい、ちょっとうれしかった。
kaoriya vim の名残で、今も migemo patch を使わせてもらっているので、自分の vim :ver するとは +kaoriya+migemo がある。

k-takata さんにも imstyle の patch で、 ynkdir (中平) さんの作成されたGTKの over-the-spot patch を既存の on-the-spot を壊さないように、
つまり取り込まれやすい様に改良してもらい vim に入れて頂いた事について、感謝を伝えられた。
(その後、再度話す機会があり vim-hisotry の話も聞けた)

その後、ynkdir (中平) さんの話題になり、最近どうしているのだろうと話になった。たしかに、気になるなぁ…
個人的に google code にあった、日本語入力系の patch を使ったり、uim-ctlを使ったりしていたので、話せる機会があったら、話したいなぁと思っていた。

その後、 mattn さんにも話しかけた。
最近のやり取りさせてもらった issue の話と、直接 vim の話じゃないけど mattn/memo の話した。
mattn/memo から起動する editor は vim だしいいだろ的な感じだった(心の中で)。
この blog の下書きも mattn/memo で書いている。

更に、その後 h-east さんがいるっぽい話が聞こえてきたので、探して声をかけた。
もちろん clpum の件で、便利ですと伝えることができた。
本体に早く取り込んで欲しいですよと話せた。

懇親会も終わりかけというか、終わった直後に rhysd (Linda_pp) さんにも話しかけに行った。
spring-nightの件で、loadがめっちゃ速くなりましたよと言えてよかった。

その後

vimthon なるイベントがあったそう。
Bram さんと直接話せるのメリットしか無い。

今日は Vimconf 2018 でもその前に…

今日は、Vimconf 2018 があるわけですが、その前にblog更新しておかないと、 前回のblogが、Vimconf 2017の感想で、何か一年に一回しか更新してない状態になるので、 その前に、なんか更新しておきたい気持ちになったので、更新する。

というわけで、 Vimconf 2018 後は、vim活熱が爆上がりするはずなので、todo listを上げておいて、後でやる事にしよう。


追記:

大事な項目を忘れていた

  • Vimconf 2018の感想blogを書く

  • vim-jp#1130
    ドキュメント含め、パッチをまとめる。
  • GTK3のimsytle=1の時の、preeditウィンドウがGTKのスタイル(CSS)がちゃんと当たってない問題をissue登録する
  • imactivefuncが、8.1.0053から引数のタイプが変更されてしまっている問題をissue登録する
  • vim-jp#1190
    良い解決方法を探り、修正する。これのせいで lexima.vim を有効にしていると日本語入力のステートが元に戻らない…

以上

Vimconf 2017の感想

Vimconf 2017 on 2017/11/04 (Sat)

全体的な感想

Vimconf 2017へ行ってきました。 この様なソフトウェア・エンジニア向けのカンファレンスは初めてで緊張してました。

まず、普段、ノートPCは持ち歩かない人なので、ノートPC持って行くかどうか悩ましかった。所有しているPCも特段モバイル向けではないので (Thinkpad T440s)

しかし、結果、メモを取るのにバリバリ必要だったし、vimの特定の機能の話で :help したり、GitHubでpatchの詳細を見たりと、やはり持っていって良かった。

そして、スピーカーの方々の発表はどれも大変に興味深く、面白く、とても良い体験ができた1日でした。

タイムテーブル順にその感想

  • 注意事項
    これは個人の感想であり、主観であり、個人的なメモと記憶に基づくため、実際の発表の内容、又は本来の発表者の意図と異なる場合があります。

Vim, Me and Community - haya14busa

  • haya14busaさんと vim との出会い、関わりの話
    • プログラミング初心者で EasyMotion 開発してたのすごい !
    • incsearch.vimvim-asteriskなど、標準機能のちょっと便利版みたいな plugin の思想が良いなと思った
  • vim-asterisk
    • 初期の頃に簡単なpr送った記憶
    • 検索Wordのposition覚えるやつ良さそう
  • その他にも、いろいろ作られているすごい (今更)
  • Lambda & Closure の話、すばらしい
  • incsearch.vim の機能が vim 本体に入った話。良い
  • incsearch.vim 使ってなかったけど is.vim 使ってみたい
  • 若い
  • Vim は pay する !
  • Community の diversity の話、おもしろかった
    • plugin 使ってる人 / 使ってない人
    • editor に囚われない (Emacs Evil、Atom, Neovim ...etc)
    • background も様々
  • And You
    • やれることをやろう

The Past and Future of Vim-go - fatih

  • 海外からのゲストスピーカー (さすが international vim conference)
  • ujihisaさんの通訳よい
  • Go について
  • vim-go
    • 2014 に official の repo から削除された
  • vim-go の話
    • 他に小さい plugin がいっぱいあった
    • 全部入れるの辛い
    • roadmap 重要
    • mattnさん、ちょいちょい出てくる
    • golang.vim じゃおかしいし、go.vim でもなく vim-go になった
      • 「ちなみに私は .vim と付くのも好き」 by ujihisa
    • vim の help 辛い
    • help の bannar 重要
    • Command prefix はあったほうが統一感あって良いよねぇ
    • Versioning も変わっていった
    • Kindle e-book donation
    • 読みきれないほど本もらったらしい (40以上)
    • License を追加
    • 2016
      • Neovim で、async できた
      • donation から Patron にした
      • donation 重要
      • Vim 8.0 で、vim でも async できるようになった
    • vim-go の New Logo 良い
    • vim-go-tutorial 良さそう
    • CI intgration 始めた
    • vim help lint 試してみたい
    • golang では Vim が一番良く使われている
    • Future の話
    • Debugging
      • mattnさんが動いてらしい
    • Future 2 の話
    • AST baset syntax hilighter
    • The bad
      • README.md と docs の話、面白い
        • 詳しいく知りたい人は doc みる
        • そうでもない人は README しか見ない
    • The good

昼食

  • すき焼き弁当おいしい
  • mattnさん、服着てる
  • koron (kaoriya)さん、k-takataさん、mattnさんが前で食べてる

Vim 鼎談 (Round Table Discussion) - mattn, k-takata and kaoriya

  • 「鼎談」は「ていだん」と読むよ
  • 「mattn」は「まっつん」と読むよ
  • k-takataさんの vim を使い始めた理由が git のコミットメッセージとは驚き
  • patch の話
  • minpack 試したい
  • k-takataさんは、lexima 使っているらしい。lexima 使ってる、良い
  • prabirshrestha/vim-lsp ちょっと使ったけど、良い
  • 確かに lsp client本体に組み込んでほしい (neovimはやってる ?)
  • vim-jp は偉大
  • k-takataさん vim/vim の member に ! ticket 閉じれる !!
  • 初心者でも真似できるお気に入りの技
    • g<C-a>の連番 by mattnさん
    • spell check by k-takataさん

Creating your lovely color scheme - cocopon

  • iceberg の作者さんだった !
    • spring-night の前に少し使ってた
  • 人生の 33 %は color scheme を見てる !
  • :hi
  • consept 重要 !
  • bg, fgを決めて、color パレットを決めるよ
  • :hi link
  • http://colorswat.ch/vim 素晴らしい !
    • モバイル対応 ! 通勤時に便利 !

vim-mode-plus: The most ambitious vim emulator in the world - t9md

  • 英語での発表素晴らしい !
  • 再び ujihisaさんの通訳
  • vim-mode-plus (vmp)
  • Operator + Target(Motion or TextObject)
    • 「テストに出ます !!」 by ujihisa
  • 「どこだどこだ」 by ujihisa
  • Mutation = Operator + Target(= Motion or TextObject) さっきも似た様なのが出たぞ
  • 「ここからは Demo なので、通訳がめっちゃ大変です」 by ujihisa
  • vmp の一瞬 flash なかなか、良さげ (haya14busaの発表で触れてたやつか)
  • vmp の f もかっこいいなー
  • vmp の EdgeMotion も目の付け所が面白い
  • 「ポッとなってパッとあれします」 by ujihisa
  • Atom と vmp でいい感じになっている
    • VS CodeVim 本体にも欲しい機能がいろいろあるなぁ
  • Edting = Operator + Target(= Motion or TextObject) 最後にもう一度出たぞ

Vim and Compatibility - senopen

  • 再び ujihisaさんの通訳
  • Updating vs. Keeping
  • vim は keeping にかなりを気を使ってるよあなぁ
  • 突然の Posix 原理主義 !
  • 古い vim に対応するには has()exist() を使う
  • UTF-8 の bom は Windows でややこしかったなぁ
  • fileencodings
  • 「うわぁ、水こぼした」 by ujihisa
  • posixism.org

neosnippet.vim + deoppet.nvim - ShougoMatsu

  • 個人的には neosnippet.vim を使用しているので、メンテされなくなるとつらみ
  • My icon is not zebla !
  • 「The dark powerd plugins」多いなー (すごい)
  • Note:No songs
  • neosnippet.vim は marker type な snippet plugin
  • 他には、以下のものがある
  • marker type とは ?
    • buffer 上に marker をおいて Jump する
  • nonーmarker type とは ?
    • 常に構文解釈する (?)
  • neosnippet.vim
    • conceal を使っている
    • すると conceal を使っている他の plugin とバッティングする
  • deoppet.nvim
    • snippet は neosnippet.vim と互換性がある
    • non-marker type
    • Extended Marks (neovimの機能) を使っている
    • よって、neovim 専用
    • current status
      • 簡単な neosinippet synatax parser は動く
      • jump back とかできる (けど試すのは大変だよ)
    • Demo
    • まだまだ user が試せる状態ではない
  • The extra thing
    • neocomplete.vim の開発が終わりました
    • deoplete.nvim supports vim8
    • プロセス間通信をしまくっているためか、windowsだと遅いらしい

How ordinary Vim user contributed to Vim - dice_zu

  • どうやったらコントリビュートできるかの話
  • 「passion」超重要!!
  • 運用でカバー
  • Episode of v8.0.0102
    • v8.0.0101 での辞書ファイルのパスチェックのバグ
    • vim-dev に test を送った
  • Episode of v8.0.0104
    • thesaurusファイルのパスチェックの追加
    • v8.0.0101 で忘れられた ?
    • github に p-r を送った
  • Episode of v8.0.0512
    • 挿入モードの補完候補が出るのが遅くなった問題
    • 同僚をコントリビューターにする計画だったが…
    • 自分でパッチを書くことに
  • Bug fixは早めに取り込まれる
  • 職場での vim talk 重要
    • 職場で vim talk できる相手がいない…
  • Debugging
  • Testing
    • make test で実行する
  • How to send a path
    • vim_dev
      • 承認制 (初めてのときは承認されるまで表示されないよ)
    • GitHub
      • p-r 送れる

The new syntax highlighter for Vim - p_ck_

  • sushibar.vim の人だ !
  • curret syntax highlighter
    • :help syntax
    • 問題もある
      • parse が重いので synmaxcol とかで highlight を制限する
      • 正規表現ベースが重い
      • 正しく highlight できない問題もある
  • sideCI の宣伝
  • new syntax highlighter
    • iro.vim
    • matchaddpos() を使うアイデアが良さげ
    • ruby 以外でも適用できそうだけど…
      • if_ruby で実装されているのかな ?
    • bad news
      • performance の問題もある
    • good news
      • ボトルネックは parse じゃない
      • matchaddpos() が遅いらしい
        • vim 本体の改善で速くできるのかな ?
    • Current status of iro.vim
      • まだ開発中
      • 対応言語が少ない

You've been Super Viman. After this talk, you could say you are Super Viman 2 -- Life with gina.vim - lambdalisue

  • 再び ujihisaさんの通訳
  • Vimmer がいるよ
  • Viman もいるよ
  • Super Viman の為の talk だよ
  • Super Viman 2 の為ではない
  • Super Viman 3 の為ではない
  • Super Viman God の為ではない
  • gina.vim
    • git to :Gina
    • 人は忘れる
    • gina.vim では覚えることが少なくてすむよ
    • Action promptで Tab で補完できるよ
    • で map カスタマイズできるよ
  • gina.vim 良さそう
  • gina.vim を使い始めると git を使う為に vim を起動する事になる

懇親会

序盤では持ち前の人見知りを発揮してしまい、ぼっちだったけど、近くの人が声をかけてくれて少し話せてよかった。
LT (Lightning Talk) が始まり、いろいろおもしろかった。
特に thincaさんの発表は、 :term を vimshell っぽくできそうで面白かった

Xubuntu 17.04 で 自動 lock後、自動 suspend する

経緯

個人的に laptop を使うことが多いので、一定時間アイドルになると自動的に lock し、 更にアイドル時間が続いたら自動的に suspend して欲しい。その時 lock は早めにして欲しいけど、 suspend はもう少し後でして欲しい。と、思うのは自分だけだろうか。

しかし、XubuntuXfce + lightdm + lightlock では、 lock後、うまく自動 suspend できなかった。Xubuntu 14.04で、色々試行錯誤し、解決した方法を、17.04に移行した機に再度、まとめるために blog として残す。

以前使っていた Ubuntu 12.04 の頃の Gnome だと gnome-screensaver がユーザーセッションで起動し、自身で設定した時間経過後に lock 、またその後に suspend と、設定さえすれば、何も気にせずに自動 lock しその後に自動 suspend できていた。*1

解決方法

org.freedesktop.login1.policy を編集

xubunt 17.04 では、 /usr/share/polkit-1/actions/org.freedesktop.login1.policy にある

diff

--- org.freedesktop.login1.policy.bak
+++ org.freedesktop.login1.policy
@@ -1142,11 +1142,11 @@
                 <message xml:lang="uk">Засвідчення потрібно, щоб призупинити систему.</message>
                 <message xml:lang="zh_CN">挂起系统需要认证。</message>
                 <message xml:lang="zh_TW">暫停系統需要驗證。</message>
                 <defaults>
                         <allow_any>auth_admin_keep</allow_any>
-                        <allow_inactive>auth_admin_keep</allow_inactive>
+                        <allow_inactive>yes</allow_inactive>
                         <allow_active>yes</allow_active>
                 </defaults>
         </action>
 
         <action id="org.freedesktop.login1.suspend-multiple-sessions">
@@ -1200,11 +1200,11 @@
                 <message xml:lang="uk">Засвідчення потрібно, щоб призупинити систему, коли інші користувачі в ній.</message>
                 <message xml:lang="zh_CN">存在其他已登录用户时挂起系统需要认证。</message>
                 <message xml:lang="zh_TW">在有其他使用者登入時暫停系統需要驗證。</message>
                 <defaults>
                         <allow_any>auth_admin_keep</allow_any>
-                        <allow_inactive>auth_admin_keep</allow_inactive>
+                        <allow_inactive>yes</allow_inactive>
                         <allow_active>yes</allow_active>
                 </defaults>
                 <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.suspend</annotate>
         </action>

詳細

<action id="org.freedesktop.login1.suspend"> タグ内の
<allow_inactive>auth_admin_keep</allow_inactive><allow_inactive>yes</allow_inactive> とする。

<action id="org.freedesktop.login1.suspend-multiple-sessions"> も、同様に編集しているが、必要があるのか、詳細については調べていない。

xfce4-power-manager の設定

アイドル時に実行するモードを suspend にする。

コマンド

$ xfconf-query --create -t int -c xfce4-power-manager -p /xfce4-power-manager/inactivity-sleep-mode-on-battery -s 1
$ xfconf-query --create -t int -c xfce4-power-manager -p /xfce4-power-manager/inactivity-sleep-mode-on-ac -s 1

詳細

デフォルトでは hibernation に設定されている(?)。さらに、 Xubuntu(というかUbuntu)では、デフォルトで hibernation は無効にされている(?)。この状態では xfce4-power-manager の GUI から設定を変更できなかったので、 xfconf-query で直接設定する。

課題

このままでも、大抵の場合うまく行くのだが、D-Busorg.freedesktop.Powermangement.Inhibit 経由で、suspend をブロックするアプリ*2が、 lock 後の自動 suspend する時間までに起動していると、 suspend がブロックされ、再度 suspend を実行されないようだ(Xubuntu 14.04時に確認)。

誰か、うまくいく方法知っていないだろうか? xfce4-power-manager でリトライさせればいいのだろうか?…

その他、 Ubuntu 18.04 からは、また GDM に戻るようだ。 Xubuntu ではどうなるんだろう?
今回の様に対策が必要ないのか、また別の方法が必要なのかはわからない。

余談

以下、余談。

自動 lock や、suspend を一時的に無効にする方法

プレゼンテーションモードを使用する

  • xfce4-panel に電源管理プラグインを追加して表示されたアイコンを左クリック → プレゼンテーションモード
  • xfce4-panel に通知エリアプラグインを追加後に、 xfce4-power-manager の Show system tray icon を 選択して表示されたアイコンを右クリック → プレゼンテーションモード

しかし、プレゼンテーションモードだと自動 lock はされない。名前の通り、プレゼンなどする時に使用するもののため、これは想定通りの動きと思われます。

Caffeine を使用する

$ sudo apt install caffeine

と、思ったけど、Xubuntu 14.04を使用していたときも、caffeine 2.6.2に独自パッチを当てていたため、これだけでは、普通に suspend されてしまった。 これについてまたの機会に…

Gnome の親切設計について

Gnome で suspend させる時は、 D-Bus 経由で suspend などをブロックしているアプリがあると、ちゃんと「このアプリが動いてるけど、本当に suspend していいのか?」と言った、ダイアログが表示される。親切。
Xfce の xfce4-session-logout では、問答無用に suspend してしまう。

*1:最近はGDMとGNOME Shellで実現されているらしいので、詳細はわからない - https://en.wikipedia.org/wiki/GNOME_Screensaver

*2:update-manager など?

hello hateta blog

以前、某 blog で blog を始めたが、全く続かなかった。
今回はどうなるだろうか?

思うがままに、また、何かを書いていきたいと思う。

以下、デザイン選定のためテスト。


見出し1

本文1

見出し2

本文2

  • リスト1
    • リスト1-2
code
  • リスト2

見出し3

本文3

code
  1. 番号付きリスト1
code
code
  1. 番号付きリスト2

見出し4

本文4

見出し5

本文5