Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)

2,379 views

Published on

鹿児島らぐ 鹿児島Linux勉強会 -第09回- での発表スライド
http://kagolug.connpass.com/event/11078/

コミックマーケットの報告と
ターミナルマルチプレクサのGNU Screen/tmuxやヘルパーアプリのbyobu
タイル型ウィンドウマネージャのawesome の紹介です.

Published in: Technology
  • Be the first to comment

マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)

  1. 1. マウスを使わないでキーボードで快適に生活す る方法 KenichiroMATOHARA(@matoken) 鹿児島らぐ 鹿児島Linux勉強会 -第09回-
  2. 2. ● https://twitter.com/okano_t/status/54993421 2636082177
  3. 3. ● "小江戸らぐ関係者のコミケ87出展 - はと ちゃんの足跡 ~タイムマシンにお願い~" http://d.hatena.ne.jp/hatochan/20141230/142 0313283
  4. 4. コミケ行ってきました ● コミケ詳細については ● "知られざる“コミケ”の世界 - NHK" http://www4.nhk.or.jp/P3397/ ● 明日1/24(土)午前8時45分再々放送!
  5. 5. 同人誌売ってきました ● コミックマーケット3日目ジャンルは同人ソフト(240) ● Unix系や電子工作などの島 "UNIXユーザーのためのコミケット87情報ページ" http://linux.softwaresearch.jp/comiket/comike_list.php?comiket_nu m=87 ● RaspberryPiネタで54ページ(Markdownで書いてodtに落と して表紙,目次,奥付などを付けてpdfに) ● 半分ほどは河野総統の記事 ● 81部刷って見本紙や献本などで-5部(前日夜にKinko'sで出力 コピー代@6円で折&中とじ製本まで自動) ● 14:00過ぎ完売 ● 申込+印刷代を初めて賄える
  6. 6. 売り切れ対策 ● 増刷 ● 鹿児島でコピー本作るよりオンデマンドで出したほ うが安いのでオンデマンド印刷で増刷 ● "格安小冊子作成・冊子印刷・制作 ・印刷・印刷通販 【ちょこっと(ちょ古っ都)製本工房】" http://www.chokotto.jp/ ● Alice Book で委託予定(今日送付) http://alice-books.com/item/show/3584-1 ● 電書も考慮中
  7. 7. 次回のコミケ ● 夏コミ C88 ● 東京ビッグサイトで8/14(金)〜16(日) "コミックマーケット88のご案内" http://www.comiket.co.jp/info-a/C88/C88info.html ● 同人ソフト(240)は3日目の16日(日) "コミックマーケット88ジャンルコード一覧" http://www.comiket.co.jp/info-c/C88/C88genre.htm l
  8. 8. 出しませんか?
  9. 9. ● 本作って渡してもらえたら一緒に売ってきま す. ● 今回も委託2冊一緒に売っていました.
  10. 10. 問題? ● ネタが半年経つと陳腐化することが多い ->毎回新刊のみ or 改訂版 ● 一般的な漫画等だと多めに刷って次回移行期 間として頒布したり総集編が出せる
  11. 11. マウスを使わないでキーボードで快適に生活す る方法 (#wbkago 1月の集まりで聞かれたのでちょっと まとめてみました)
  12. 12. 端末を快適に! ● ターミナルマルチプレクサを利用 ● ログを遡ったりマルチタブ,マルチウィンドウ やコピー&ペースト,アタッチ,デタッチなど がキーボードのみでOK ● 代表的なツール ● GNU Screen http://www.gnu.org/software/screen/ – 以前はこれが主流だった ● tmux http://tmux.sourceforge.net/ – 新しく出てきた.これから始めるならこっち?
  13. 13. ヘルパーアプリ ● Byobu ● Ubuntu 9.04 で追加された.現在はいろいろな ディストリビューションにも採用されている ● tmux/GNU Screen のラッパーコマンド ● 当初はGNU Screen のみの対応だったが現在は tmux にも対応.規定値はtmux ● hardstatusなどを複雑怪奇な設定をせずともワン タッチで設定可能
  14. 14. tmuxを例に…と思っていましたが 今日はいつも使っているGNU Screenで
  15. 15. Debian/Ubuntuでの導入 ● 導入 $ sudo apt-get install byobu ● バックエンドの設定(規定値はtmux) $ byobu-select-backend ● 一時的に実行するだけであれば $ byobu-screen $ byobu-tmux ● 起動 $ byobu ● 設定 ● byobu 起動中に F9 若しくは $ byobu-config
  16. 16. 設定変更
  17. 17. Change escape sequence ● 操作するときのエスケープシーケンスが規定値では Ctrl+A 行頭移動でよく使うので変更する ● 結構当たるので利用するアプリケーションにより当 たらないキーを選ぶ ● 2種類くらいエスケープキーを決めておいて多段の場 合に使い分けると便利 ● 参考URL "screen's Wiki - エスケープキーの選択" http://wiki.fdiary.net/screen/?ChoosingEscapeKey
  18. 18. Toggle status notifications ● お好みで… ● EC2 cost とか面白い ● VPSに導入してみたり ● ちょっと面倒だけど自分で好きなステータス を作って追加することも出来る ● "東京電力の電力状況をscreen のステータスに表 示 - matoken’s meme -hatena-" http://d.hatena.ne.jp/matoken/20110624/1308929 712
  19. 19. 基本的な操作 ● Ctrl+A → c 新規端末 ● Ctrl+A → n 次の端末へ移動 ● Ctrl+A → p 前の端末へ移動 ● Ctrl+A → 数字(0-9) 該当端末へ移動 ● Ctrl+A → A 前に使っていた端末へ移動 ● Ctrl+A → | ウィンドウ縦分割 ● Ctrl+A → S ウィンドウ横分割 ● Ctrl+A → Tab 次のウィンドウへ移動 ● Ctrl+A → x ウィンドウの削除
  20. 20. 基本的な操作2 ● Ctrl+A → k 端末の破棄 ● Ctrl+A → esc スクロールバックモード ● h, l, j, k, Ctrl+u, Ctrl+b… カーソル移動(vimと一緒) ● /, ? 検索 ● Space 選択始端 ● Enter 選択終端&コピー ● Ctrl+A → Ctrl+] 貼り付け ● Ctrl+A → ? 簡易ヘルプ ● Ctrl+A → x 画面ロック(解除はbyobu起動ユーザのパスワード) ● Ctrl+A → d デタッチ ● $ byobu -r アタッチ
  21. 21. 設定ファイルをいじってみる ● 設定ファイル ~/.screenrc ● スクロールバッファの行数変更 defscrollback 10000 ● ワンタッチで端末のエンコードを切り替える設定例 bind ^U encoding utf8 bind ^E encoding euc ● ログの自動保存(たまに助けられるけどいつの間にかDiskを圧 迫してたりするので自動圧縮をcronで設定しておくといい) logfile /home/matohara/screen.log/screenlog.%n-%H-%y%m%d-%c: %s-%t log on deflog on 実際は1行
  22. 22. ● 以下の例では300秒でブランクになる idle 300 ● ブランク時に実行するプログラムを設定 fortuneとかnyancatとか :) blankerprg program名 ● 画面下部に起動ウィンドウ名を出す(zshでの 場合) shelltitle "$ |zsh"
  23. 23. Vimで編集中 w3m(テキストブラウザ) でブラウジング リモートのGNU Screen でアップデート
  24. 24. おまけ ● "Mosh: the mobile shell" https://mosh.mit.edu/ ● ssh代替を目指している ● モバイルシェルの名の通りモバイル環境などで付からを発揮 する ● 遅いネットワーク環境での遅延をechobackで吸収 ● 異なるネットワーク間でのローミング ● NotePCでMosh経由でリモートサーバで作業中にそのままサスペン ド,異なるネットワークでレジュームしても自動的にサーバに接続 してくれる ● 今のところ認証にsshを利用したり機能も少ないが便利 ● #セキュリティには注意
  25. 25. ● 端末作業時にとても便利なツール ● 説明だけ見てもよくわからないと思うのでぜひ触っ てみてください ● 指が操作を覚えると無くてはならないツールに! ● 端末のテキストでウィンドウ分割なども表現してい るので高速でログを流したりとかすると面倒なこと に分割状態で日本語を扱うと崩れることも.そうい う場合は次のタイル型ウィンドウマネージャを試し てみてください
  26. 26. ターミナル以外もキーボードで操作したい
  27. 27. タイル型ウィンドウマネージャ ● ウィンドウを被さらないように配置して狭い 画面や広い画面を効率的に利用したりキー ボードから手を離したりしないで操作が出来 る ● 軽い ● “日本タイル型ウィンドウマネージャ推進委 員会”http://jp.tilingwindowmanager.org/
  28. 28. タイル型ウィンドウマネージャの 色々 ● 色々ある ● 今回は触ったことのある awesome を例に (Kobo に入れたDebian は awesome )
  29. 29. 導入 ● 大抵パッケージがあるのでパッケージマネー ジャで ● Debian Jessie $ sudo apt install awesome ● 本来ならこれでDMからawesomeを選ぶだけ ● …ウィンドウマネージャのリストに出てこない? ● Bug>< – "#701514 - Awesome doesn't display on GDM - Debian Bug report logs" https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=7015 14
  30. 30. ● Patch diff --git a/awesome.desktop b/awesome.desktop index 1f7878c..6f830b9 100644 --- a/awesome.desktop +++ b/awesome.desktop @@ -2,7 +2,7 @@ Encoding=UTF-8 Name=awesome Comment=Highly configurable framework window manager -NoDisplay=true +NoDisplay=false TryExec=awesome Exec=awesome Type=Application
  31. 31. ● 該当ファイルの場所 $ dpkg -L awesome | grep awesome.desktop /usr/share/xsessions/awesome.desktop ● 書き換えたらDM 再起動してawesomeを選択 ● GDM3 の場合 $ /usr/sbin/service gdm3 restart
  32. 32. 設定ファイル ● 自分用の設定ファイル ( ~/.config/awesome/rc.lua )を用意する $ mkdir ~/.config/awesome/ $ cp /etc/xdg/awesome/rc.lua ~/.config/awesome/
  33. 33. 設定のカスタム ~/.config/awesome/rc.lua を編集する ● ターミナルを変更してみる $ diff -u /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua --- /etc/xdg/awesome/rc.lua 2012-07-16 20:57:34.000000000 +0900 +++ /home/mk/.config/awesome/rc.lua 2015-01-23 04:41:27.995000197 +0900 @@ -40,7 +40,7 @@ beautiful.init("/usr/share/awesome/themes/default/theme.lua") -- This is used later as the default terminal and editor to run. -terminal = "x-terminal-emulator" +terminal = "mate-terminal" editor = os.getenv("EDITOR") or "editor" editor_cmd = terminal .. " -e " .. editor
  34. 34. 設定の確認 ● 設定ファイルはLua Script ● 一部でも間違えると間違えた部分の設定だけで なく全て反映されない(規定値が反映される) ● Syntax check をしてみたり $ luac -p ~/.config/awesome/rc.lua ● 別のDISPLAYで動作確認をしてみたり $ Xephyr :1 -ac -br -noreset -screen 800x600 & $ DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua.new
  35. 35. 簡単な操作 ● Mod4+Enter ターミナルの起動 ● Mod4+r プログラムの起動 ● Mod4+c フォーカスウィンドウの終了 ● Mod4+j/k フォーカスの切り替え ● Mod4+shift+j/kフォーカスウィンドウの場所移動 ● Mod4+1-9 n番のタグへ移動 ● Mod4+h/l ウィンドウサイズを広げる ● Mod4+shift+h/l ウィンドウサイズを狭める ※Mod4はSuper(Windows)Key
  36. 36. ブラウザの操作もキーボードで ● Firefox ● "vimperator labs" http://www.vimperator.org/ ● Chromium ● "Vimium - Chrome ウェブストア" https://chrome.google.com/webstore/detail/vimi um/dbepggeogbaibhgnhhndojpepiihcmeb/related?ut m_source=chrome-ntp-icon どちらもVimライクに操作が可能になる
  37. 37. ブラウザでストリーミン グ動画再生 GNU Screen と違いログなどを catしても高速 ネットワークの設定のために nm-applet起動
  38. 38. おまけ ● Synergy http://synergy-project.org/ ● 端末を行ったり来たりしなくても1つのキーボードマウス で複数端末を操作出来る ● クリップボードの共有も可能 ● マルチプラットホーム :) ● 以前は設定ファイルを手で書いたりQuickSynergy を利用 したりだったが現在はGUIの設定ツールがセットになって 設定が便利に(暗号化も) ● 設定ファイルの規定値は ~/.config/Synergy/Synergy.conf だが synergys -c 設定ファイル で環境に合わせて指定が 可能
  39. 39. 少し試した感じ ● 1つのタグに2,3個のウィンドウまでにしてタ グを行き来するようにすると良さそう ● 軽いけれどそのままでは使い勝手が悪いので 用途によりネットワークマネージャ等の設定 をしておくのがおすすめ ● 慣れると便利そう(未だ数日目で手が覚えて ない><)

×