Debian testing stretch に cowsay が降りてきたので久々に実行して遊んでみました.せっかくなので全部表示してみる.
実行は,% ls -1 /usr/share/cowsay/cows | xargs -n1 -I{} cowsay -f {} {} | xclip
な感じで.
Homepage が webarchive だ!
追記)xcowsay
も存在するのですね.
新しい kernel が降りてきたので再起動したのですが,Ctrl + a の行頭移動や,Ctrl + e の行末移動が使えず ^A^E
と表示されるようになってしまいました.Ctrl + U など利用できるものもある.環境は以下のような感じです.
GNU Screen を抜けると問題はありません.
最近 GNU Screen のアップデートがあった気がしたので,GNU Screen のせいかな?と思い以前野良ビルドした GNU Screen や Tmux で起動してみましたがこちらでも同じ現象が置きました.
% screen bash
の様にして bash を起動すると問題ありません.
GNU Screen 起動後でも bindkey
で以下のように設定すると動作します.
bindkey
のリストを確認すると GNU Screen 起動前 120行,GNU Screen 起動後では 34行と大分少なくなってしまっています.
とりあえず GNU Screen 起動前に ~/.zshrc
の precmd()
の中に bindkey -L
の結果を vim で :r!bindkey -L | sed -e 's/^/ /'
な感じで貼ってひとまず反映させました.
切り分けのために新しくユーザを作って chsh -s /bin/zsh
してまっさらな状態から試すと ~/.zshrc
を cp すると現象が起こりました.更に切り分けていくと .zshrc の中の export EDITOR=vim
でした.
% EDITOR=vim screen
で発症する.% EDITOR=emacs screen
はok…….その他 vi NG / jed, nano は ok と vi/vim を指定すると起きるよう.
検索するとこんなページが見つかりました.
環境変数 EDITOR
が vi/vim だと Zsh のキーバインドが vim モードになるということのようです.Esc -> 0
で行頭移動,Esc -> Shift+a
で行末に.確かに vim モードのようです.ということで ~/.zshrc
で emacs モードに設定することで解決しました.(上の方で設定した bindkey の設定は消しました)
腑に落ちないのは GNU Screen / Tmux 起動時には起こるけど普通の Zsh
起動時は起きないところ…….
の続きです.このシリーズは興味ある人ほとんど居ない気もしてますが…….
ボリュームコントロール用の script を書いていい感じでボリュームコントロールが使えている気がしていたのですが,いくつか不具合が見つかったので改良しました.
ミュート時に Master をミュートして,同様にアンミュート時に Master をアンミュートするのですが,ヘッドホン利用時にはヘッドホンがミュートされたままになってしまいます.
amixer -c 0 get Headphone
とかして確認すると,off のままです.
Headphone に対して unmute すると音が出るようになりました.
ということでアンミュート時に Master だけでなく Headphone
/ Speaker
もアンミュートするようにしました.Headphone
/ Speaker
は両方 on にしても排他利用になるようで両方 on にしても問題ないようです.
amixer -q -c 0 set Master unmute
これでヘッドホンやスピーカーを切り替えてもちゃんと切り替わるようになりました.
Master や Beep を mute しても beep音が出てしまいます.amixer でボリュームを 0% にしても音が出てしまいます.
ALSA ではなく基本の? xset で有効,無効にしたら効いたのでこれを設定しました.
xset -b
xset b
ボリュームUp / Down ボタンを押した時のメッセージがミュート状態にかかわらず同じものを表示していたので音量が小さくて聞こえないのかミュート状態だから音が出ていないのかわかりませんでした.
ミュート状態によりアイコンを変更するようにしました.ついでに Up/Down の矢印も表示するようにしました.
ということでそれぞれを反映してこんな感じになりました.
#!/bin/bashMUTE=`amixer -c 0 get Master|tail -1|cut -d '[' -f 4|sed s/\]//`
今のところ満足 :-)
の続きです.このシリーズは興味ある人ほとんど居ない気もしてますが…….
ボリュームコントロール用の script を書いていい感じでボリュームコントロールが使えている気がしていたのですが,いくつか不具合が見つかったので改良しました.
ミュート時に Master をミュートして,同様にアンミュート時に Master をアンミュートするのですが,ヘッドホン利用時にはヘッドホンがミュートされたままになってしまいます.
amixer -c 0 get Headphone
とかして確認すると,off のままです.
Headphone に対して unmute すると音が出るようになりました.
ということでアンミュート時に Master だけでなく Headphone
/ Speaker
もアンミュートするようにしました.Headphone
/ Speaker
は両方 on にしても排他利用になるようで両方 on にしても問題ないようです.
amixer -q -c 0 set Master unmute
これでヘッドホンやスピーカーを切り替えてもちゃんと切り替わるようになりました.
Master や Beep を mute しても beep音が出てしまいます.amixer でボリュームを 0% にしても音が出てしまいます.
ALSA ではなく基本の? xset で有効,無効にしたら効いたのでこれを設定しました.
xset -b
xset b
ボリュームUp / Down ボタンを押した時のメッセージがミュート状態にかかわらず同じものを表示していたので音量が小さくて聞こえないのかミュート状態だから音が出ていないのかわかりませんでした.
ミュート状態によりアイコンを変更するようにしました.ついでに Up/Down の矢印も表示するようにしました.
ということでそれぞれを反映してこんな感じになりました.
#!/bin/bashMUTE=`amixer -c 0 get Master|tail -1|cut -d '[' -f 4|sed s/\]//`
今のところ満足 :-)
Gnome Shell や XFce4 などでは NotePC の音量コントロールボタンで音量のUp/Down 及びミュートが操作出来ましたが, Awesome ではそのままでは動作しないようです.ということで設定してみました.
(以下の時の設定では unmute がうまく行っていなかった & 解りやすく修正.)
まずはボタンのキーコードを調べました.xev
コマンドを実行しながら該当ボタンを押して調べます.手元のマシンでは以下のようになりました.
ThinkPad X201s のボリュームキー情報(xev で確認)
KeyRelease event, serial 33, synthetic NO, window 0x1800001,root 0x98, subw 0x0, time 74266491, , root:,state 0x0, keycode 123 , same_screen YES,XLookupString gives 0 bytes:XFilterEvent returns: False
KeyRelease event, serial 33, synthetic NO, window 0x1800001,root 0x98, subw 0x0, time 74268735, , root:,state 0x0, keycode 122 , same_screen YES,XLookupString gives 0 bytes:XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3e00001,root 0x98, subw 0x0, time 107269062, , root:,state 0x0, keycode 121 , same_screen YES,XLookupString gives 0 bytes:XmbLookupString gives 0 bytes:XFilterEvent returns: False
ということでこうなりました.
alsa の操作をコマンドで実行できる amixer
で操作するサウンドカードなどを確認します.amixer
でサウンドカードを確認して,amixer -c 0
などとしてサウンドカードの内訳を確認したり出来ます.-c 0
は0番目のカードという意味になります.2枚目のカードは,-c 1
というオプションで指定できます.
今回は sound card 0 の Master を操作します.以下のコマンドで情報の表示や操作ができます.
sound card 0 の Master の状態確認
% amixer -c 0 get MasterSimple mixer control 'Master',0Capabilities: pvolume pvolume-joined pswitch pswitch-joinedPlayback channels: MonoLimits: Playback 0 - 74Mono: Playback 58 [78%] [-16.00dB] [off]
sound card 0 の Master を無音に
% amixer -c 0 set Master muteSimple mixer control 'Master',0Capabilities: pvolume pvolume-joined pswitch pswitch-joinedPlayback channels: MonoLimits: Playback 0 - 74Mono: Playback 58 [78%] [-16.00dB] [off]
sound card 0 の Master の音を有効に
% amixer -c 0 set Master unmuteSimple mixer control 'Master',0Capabilities: pvolume pvolume-joined pswitch pswitch-joinedPlayback channels: MonoLimits: Playback 0 - 74Mono: Playback 58 [78%] [-16.00dB] [on]
Master の unmute だけだとスピーカーがミュートになったままなのでスピーカーも unmute します.
sound card 0 の Speaker の音を有効に
sound card 0 の Master の音量を 2dB 上げる
% amixer -c 0 set Master 2dB+Simple mixer control 'Master',0Capabilities: pvolume pvolume-joined pswitch pswitch-joinedPlayback channels: MonoLimits: Playback 0 - 74Mono: Playback 60 [81%] [-14.00dB] [off]
sound card 0 の Master の音量を 2dB 下げる
% amixer -c 0 set Master 2dB-Simple mixer control 'Master',0Capabilities: pvolume pvolume-joined pswitch pswitch-joinedPlayback channels: MonoLimits: Playback 0 - 74Mono: Playback 58 [78%] [-16.00dB] [off]
~/script/awesome-audio.bash
という名前のscript にしました.引数にキーコードを渡して実行すると,ミュートボタンを押すとミュート状態ならミュートを解除,そうでないならミュートに,音量ボタンで 2dB ずつUp/Down するようになっています.
それだけだと状態がわかりにくかったので,notify-send
コマンドでアイコンとメッセージを表示するようにしました.
メッセージの表示は awesome 的には naughty.notify
で行うのが正しいと思うのですが,使い方がよく解らずorz
まあ notify-send
なら awesome 以外の環境でも動くのでいいかなと.
#!/bin/bashamixer -c 0 get Master | tail -1 | cut -d '[' -f 2 | sed s/\]//
以下のように実行して動作確認しておきます.
notify-send
でデスクトップには以下のような通知が表示されます.
音量コントロールボタンで script を呼ぶように awesome の設定ファイル ~/.config/awesome/rc.lua
に以下の設定を追記します.追記場所は `-- Standard program
の後ろ辺りでok です.
-- Audio Controleawful.key({ }, "XF86AudioMute", function () awful.util.spawn("/home/mk/script/awesome-audio.bash XF86AudioMute",false) end),awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("/home/mk/script/awesome-audio.bash XF86AudioRaiseVolume",false) end),awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("/home/mk/script/awesome-audio.bash XF86AudioLowerVolume",false) end),
ここまで設定できたら awesome を restart します.
>
メニュー -> awesome -> restart
音量コントロールボタンで操作ができるようになったら出来上がりです :)
ということでマルチアカウント対応とか便利そう!ってことで試してみました.
何時もはディストリビューションで提供されているパッケージを利用しています.今回導入は ownCloud 自体が公開している OBS のリポジトリから apt で導入しました.
クライアントの 一般
タブの アカウントを追加
ボタンで普通に追加できます.
同期複数アカウントの場合は明示的にローカルフォルダを指定しないといけません.
同期フォルダが選択できるようになってるのも便利ですね.これまでは除外フォルダとして指定していました.
自宅サーバで低速だけど大容量のサーバ.VPS で高速な出先でアクセスするサーバとか,プライベートや仕事用アカウントやサーバを分けて使うといったことがお手軽にできるようになりました :-)
(プライベートと仕事は端末やアカウントを分けたほうが良いだろうけど.)
ownCLoud どんどん便利になっていきますねー.例えば Raspberry Pi の Rasbian でもパッケージで提供されているので,apt 一発で導入でき省電力ファイルサーバが簡単に作れたりもします.お勧めです.
ReText がなんか寂しい.よく見るとツールバーのアイコンが無いです.見えないけどボタンは動作します.
検索してみると以下のようなエントリを発見.
真似をして以下のようにして修正しました.
gconftool-2 –get /desktop/gnome/interface/icon_theme
か gsettings get org.gnome.desktop.interface icon-theme
で icon_theme を調べる.上のエントリでは前者で表示されていましたが,手元の環境では後者でしか表示されませんでした.
~/.config/ReText\ project/ReText.conf
の [General]
セクションに iconTheme=上で調べたテーマ名
を指定します.今回は iconTheme=gnome
この状態で ReText を起動するとアイコンが表示されるようになりました :)
GitHub 開発の OSS なテキストエディタ.Node.js や Chromium やらで出来ているということで重そうだなぁと敬遠していたのですが少し試してみました.試した環境は Debian stretch amd64 です.
ということで,とりあえず導入.
Edit
-> Prefarence
-> Editor Settings
-> Font Family
or
~/.atom/config.cson
の editor:
内の fontFamily:
に日本語フォントを指定
~/.atom/config.cson は今こんな感じ
Markdown preview は Ctrl + Shift + m
で表示できるのですが,こちらも日本語が豆腐になってしまいます.
を参考に ~/.atom/styles.less
を新規作成.
japanese-wrap
導入とりあえずこれで行けるかな?この文章は Atom で書いてみました.Markdown preview で右クリック -> Copy As HTML で HTML をクリップボードに書き出して貼り付けてみました.
今のところ気になるところとしてはプレビューが追従しないのがちょっとという感じですかね.
後,書いている途中に一度フリーズしました><
暫く試してみようと思います.
Debian stretch amd64 で haroopad が起動しなくなった.libudev.so.0
から libudev.so.1
にリンクを張って動くようになった.
% haroopad
/usr/share/haroopad/haroopad: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory
% sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
Debian wheesy あたりから dist-upgrade を繰り返してるのでその時作られていたリンクが昨日の記事の /lib
が飛んでしまって作りなおした時に消えて動かなくなったのかな?
(若しくは覚えてないけど手動でリンク貼っていたのが消えたか)
ところで Haroopad は結構バグがあるのですが最近開発停滞しているのかバージョン上がらないですね.他に良い Markdown Editor がないかな…….
今のところウェブベースの wri.pe がいい感じなのですがオフラインでは使えない.
ReText も最近は Webkitレンダラーを有効にすると大分 Markdown 対応が増えた感じですが未だ足りない感じ.
Atom Editor はちょっと重そうで敬遠しているのですが試してみようかな.
何気に適当なエディタで Markdown を書いて Pandoc でリアルタイム変換&ブラウザでプレビューとか設定するとかのほうが良いのかもしれない…….
lxc-creates して失敗してから bash も他のアプリも起動しなくなってしまった.どうにか復旧できたのでメモ.
bash も ls も全部コマンドがないと言われる.すでに起動していた zsh では tab 補完で見つからなかったコマンドは出てくる.この状態で再起動すると recovary mode でも kernel panick に.SSD が死んだ?と戦々恐々としながら BIOS で USB 起動を有効にして USBメモリの Linux から起動して対象Disk を mount( LUKS + LVM + ext4 ) chroot しようとすると bash がないと言われる.ls すると矢張りちゃんとある.ldd ./bin/bash
して ライブラリを確認しようとすると chroot 先の /lib
が空!
lxc-create が host の /lib 消しちゃったぽい?
とりあえずこの状態で差分バックアップを取っておく. /home, /etc, /var, /opt あたり.バックアップログを見た感じこの辺は特に消えたりとかはしていないようだった.
多分 /lib が復活すれば治ると思う.ということで,前もって取ってあった dpkg --get-selections "*"
のパッケージリストから /lib
を含むパッケージを抜き出して apt-get download
して,dpkg -x
して出てきた ./lib
を /lib
にcp してどうにか OS が起動するように.
その後 dpkg --configure -a
とか apt-get install -f
してパッケージ状態を正常な状態に.
そんなこんなでどうにか復旧しました.
思ったより時間かかってしまった.Debian Installer で起動して上書きインストールして dpkg --set-selections
とかしたほうが速かったかもしれない.
多分 lxc-create
でおかしくなった気がするのでこの辺ちゃんと調べたいところ.
% sudo lxc-create -t /usr/share/lxc/templates/lxc-busybox -n busybox01
lxc_container: No such file or directory - Failed to make / rslave to run template
lxc_container: Continuing...
warning : busybox is not statically linked.
warning : The template script may not correctly
warning : setup the container environment.
chmod: `/usr/local/var/lib/lxc/busybox01/rootfs/bin/passwd'
setting root password to "root"
Failed to change root password
lxc_container: unknown key lxc.haltsignal
lxc_container: Failed to parse config: lxc.haltsignal = SIGUSR1
lxc_container: _recursive_rmdir_onedev: failed to delete /usr/local/var/lib/lxc/busybox01/rootfs/lib
lxc_container: _recursive_rmdir_onedev: failed to delete /usr/local/var/lib/lxc/busybox01/rootfs
lxc_container: Error destroying rootfs for busybox01
lxc_container: Error creating container busybox01
precmd:2: command not found: basename