Synergyクイック設定法
Synergyを使おうと思ったのだけれど、設定方法を忘れてしまい、かなり手間がかかってしまった。
過去にも同じことが何度かあったので、設定法をまとめておく。
必要なもの
- synergy
- avahi
- nss-mdns
設定手順
設定は、次の手順でおこなう。
また、特に明記しない限り、作業は、ホスト・クライアントの両方でおこなう。
設定
nsswitch.conf の書換え
まず、/etc/nsswitch.conf のバックアップを作成する。
次に、/etc/nsswitch.conf を以下のように書換える。
# cp /etc/nsswitch.conf /etc/nsswitch.conf.bak
$ diff nsswitch.conf nsswitch.conf.bak
9c9< hosts: files myhostname mdns_minimal [NOTFOUND=return] dns
-
- -
> hosts: files dns myhostname
synergy.conf の書換え
ホスト側で設定をおこなう。
まず、/etc/synergy.conf.example をコピーし、/etc/synergy.conf を作成する。
# cp /etc/synergy.conf.example /etc/synergy.conf
次に、/etc/synergy.conf を以下のように書換える。
$ diff /etc/synergy.conf /etc/synergy.conf.example
7,8c7,10< host:< client:
-
- -
> # three hosts named: moe, larry, and curly
> moe:
> larry:
> curly:
12,13c14,17< host:< down = client
-
- -
> # larry is to the right of moe and curly is above moe
> moe:
> right = larry
> up = curly
15,16c19,30< client:< up = host
-
- -
> # moe is to the left of larry and curly is above larry.
> # note that curly is above both moe and larry and moe
> # and larry have a symmetric connection (they're in
> # opposite directions of each other).
> larry:
> left = moe
> up = curly
>
> # larry is below curly. if you move up from moe and then
> # down, you'll end up on larry.
> curly:
> down = larry
19,22c33,37< #section: aliases< # client:< # snowleopard< #end
-
- -
> section: aliases
> # curly is also known as shemp
> curly:
> shemp
> end
復旧方法
まず、/etc/nsswitch.conf をバックアップファイルから復旧する。
# mv /etc/nsswitch.conf /etc/nsswitch.conf.old && mv /etc/nsswitch.conf.bak /etc/nsswitch.conf次に、avahiデーモンを停止する。
最後に、ホスト側で作成した /etc/synergy.conf を削除する。
# systemctl disable avahi-daemon.service
# !:s/disable/stop
# rm /etc/synergy.conf
雑記
- 細かい設定は後で考える
参考サイト
- Synergy - ArchWiki
https://wiki.archlinux.org/index.php/synergy - Avahi - ArchWiki
https://wiki.archlinux.org/index.php/Avahi
tmux使用時にmanページを新規ウィンドウ表示 & manページをカラー表示にする設定法のまとめ
tmux使用時、通常、manページは man
コマンドを実行したウィンドウに表示される。この状態では、manページを参照しながらコマンドを実行したい場合、不便である。
その解決策として、tmux使用時に、manページを新規ウィンドウで表示する方法をまとめる。
また、manページをカラー表示にし、読みやすくする方法もまとめる。
設定手順
設定は、以下の2つの手順に分けておこなう。
- 新規ウィンドウ表示の設定
- manページカラー表示の設定
上記2つの手順は、それぞれ独立しているため、どちらか1つの設定だけをおこなうことも可能。
新規ウィンドウ表示の設定
manページをtmux内の新規ウィンドウで表示するために、シェル関数を追加する。
設定手順
$HOME/.zshrc に、以下の関数を追加する。(スクリプト引用&改変元)
function man_tmux() {
if [ $# -le 1 ];
tmux new-window -n "man $@" "exec man $@"
else
man $@
fi
}
alias man=man_tmux
以下、コピペ用ワンライナー
$ echo -e 'function man_tmux() {\n\tif [ $# -le 1 ];\n\t\ttmux new-window -n "man $@" "exec man $@"\n\telse\n\t\tman $@\n\tfi\n}\nalias man=man_tmux' | sed -e 's/\t/ /g' >> ~/.zshrc
補足
上記関数の"new-window"を"split-window"にした場合、新規ウィンドウではなく分割ペインとしてmanページが表示される。
manページカラー表示の設定
manページをカラー表示にするには、大きく分けて次の2種類の方法がある。
- ページャでカラー表示できるように設定する
- ターミナルでカラー表示できるように設定する
ここでは、ページャはlv、less、mostの3つを、
ターミナルはevilvteを、合計4通りの設定方法を述べる。
lvでカラー表示 (上記4種類の中で、一番おすすめの方法)
設定手順
$HOME/.zshenv に、以下の内容を追加する。
MANPAGER="lv"
LV="-c -Sh1;36 -Su1;4;32 -Ss7;37;1;33"
以下、コピペ用ワンライナー
$ echo -e 'MANPAGER="lv"\nLV="-c -Sh1;36 -Su1;4;32 -Ss7;37;1;33"' >> ~/.zshenv
カラーコードは、こちらを参考に。
注意点として、lvのオプションでは、ANSIカラーコードとして正確に記述する必要はない。
数値とセミコロン';'だけで指定できる。
"tmux new-window"実行時には $HOME/.zshrc は読込まれないため、上記設定は $HOME/.zshenv に書かなければならない。
(以下、上記の問題の詳細が書いてあるサイト)
この方法の欠点
- (考えつく限りでは)無し
lessでカラー表示
環境変数"LESS_TERMCAP"を用いて設定をおこなう。
設定手順
1. $HOME/.zshenv に、以下の内容を追加する。
MANPAGER="less"
LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking
LESS_TERMCAP_md=$'\E[01;38;5;74m' # begin bold
LESS_TERMCAP_me=$'\E[0m' # end mode
LESS_TERMCAP_so=$'\E[38;5;246m' # begin standout-mode - info box
LESS_TERMCAP_se=$'\E[0m' # end standout-mode
LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
LESS_TERMCAP_ue=$'\E[0m' # end underline
2. 任意のANSIカラーコードを指定する。
この方法の欠点
- マルチバイト文字を表示する際、表示がおかしくなることがある
- マルチバイト文字の検索ができない
mostでカラー表示
mostは標準でmanページをカラー表示するため、インストールとmanページャの指定をするだけで良い。
設定手順
この方法の欠点
- キーバインドがlvやlessと大きく異なる
> less風のキーバインドに設定することは可能(参考: ArchWiki - man page)
ターミナル(evilvte)でカラー表示
evilvteの特定のテキストを色付けするオプションを有効にする。
設定手順
1. config.h を編集する。
の3行をコメントアウトし、それぞれ任意の色を指定する。
// #define COLOR_TEXT_BOLD "red"
// #define COLOR_TEXT_DIM "#FFFF00"
// #define COLOR_TEXT_HIGHLIGHTED "green"
2. make install する。
この方法の欠点
- manページ以外の表示にも、上記の色設定が適用されてしまう
参考サイト
- tmux内でコマンドを実行する際に新しいウィンドウやウィンドウを分割して実行する - うどん駆動開発
http://blog.repl.info/blog/2011/12/03/ssh-with-tmux-and-zsh/ - LV Homepage (in Japanese)
http://www.mt.cs.keio.ac.jp/person/narita/lv/index_ja.html - tmux new-windowで環境変数が読み込まれない件 | Proxima Fermata
http://blog.larus.jp/?p=583 - zsh: 5. Files
http://zsh.sourceforge.net/Doc/Release/Files.html#Startup_002fShutdown-Files - zshの設定ファイルの読み込み順番のメモ - 目の前には僕らの道がある
http://masasuzu.hatenablog.jp/entry/20120506/1336286016 - man page - ArchWiki
https://wiki.archlinux.org/index.php/man_page#Colored_man_pages
ALSA使用時のデフォルトサウンドカード設定法のまとめ(&同時再生問題の解決法)
ALSA使用時に、使用したいサウンドカードがデフォルトに設定されておらず、音声の再生や、alsamixierでのコントロールができないことがある。
この問題の解決法として、サウンドカードの読込み順を変更する方法をまとめる。
また、(設定ファイルの記述ミスで)同時再生ができなくなる問題が発生したため、その対策法もまとめる。
環境
- ハードウェア
解決法
/etc/modprobe.d/alsa-base.conf に、サウンドモジュールの読込み順を指定する設定を書込む。
また、同時再生問題を解決するために、$HOME/.asoundrc にソフトウェアミキシングを有効にする設定を書込む。
設定手順
設定は、以下の手順でおこなう。
- 読込み順の設定
1. サウンドモジュール一覧と読込み順の確認
2. 設定の記述
3. 再起動
- 同時再生問題の対策
1. 設定の記述
2. 再起動
読込み順の設定
ArchWikiのALSAのページの、Set the default sound cardを参考にして設定をおこなう。
まず、現在読込まれているサウンドモジュールの一覧と、モジュールの読込み順を確認する。
$ cat /proc/asound/modules
0 snd_hda_intel
1 snd_usb_audio
次に、/etc/modprobe.d/alsa-base.conf を編集し、以下の内容を追記する。
( /etc/modprobe.d/alsa-base.conf が存在しない場合は、新規に作成する)
# vim /etc/modprobe.d/alsa-base.conf
(中略)
$ cat /etc/modprobe.d/alsa-base.conf
options snd slots=snd_usb_audio,snd_hda_intel #snd_slots=以降に、'$ cat /proc/asound/modules'で表示されたモジュールを全て書く
options snd_usb_audio index=0 #一番目に読込むモジュールを書く
options snd_hda_intel index=1 #二番目に読込むモジュールを書く
最後に、再起動する。
同時再生問題の対策
ArchWikiのALSAのページの、Simultaneous_playback_problemsを参考にして設定をおこなう。
$HOME/.asoundrc に、以下の内容を追記し、ソフトウェアミキシングを有効にする。(.asoundrc が存在しない場合は、新規に作成する)
$ vim $HOME/.asoundrc
pcm.dmixer {
type dmix
ipc_key 1024
ipc_key_add_uid 0
ipc_perm 0660
}
pcm.dsp {
type plug
slave.pcm "dmix"
}
以下、コピペ用ワンライナー
$ echo -e 'pcm.dmixer {\n\ttype dmix\n\tipc_key 1024\n\tipc_key_add_uid 0\n\tipc_perm 0660\n}\npcm.dsp {\n\ttype plug\n\tslave.pcm "dmix"\n}\n' | sed -e 's/\t/ /g' >> ~/.asoundrc
.asoundrc に追記した後、再起動する。
復旧方法
読込み順の変更、同時再生問題の対策共に、追記した内容を削除する。
設定ファイルを新規に作成した場合は、こちらで。
# rm /etc/modprobe.d/alsa-base.conf
$ rm $HOME/.asoundrc
気になった点
> alsamixerでHDMIデバイスを選択しても、元から無効になっている。
- 設定の途中で、管理者権限が必要になる
> できれば、設定を.asoundrc の記述だけで完結したい
ArchWikiのALSAのページの、Alternative methodを参考にして、~/.asoundrc に
と書いて、サウンドカードの順番を変更した場合、ソフトウェアミキシングが効かなってしまった。
pcm.!default {
type hw
card 2
}ctl.!default {
type hw
card 2
}
詳しく調べてはいないが、原因はたぶんArchLinuxフォーラムの、Arch Linux Forums: [SOLVED] Software mixing with ALSAが参考になるはず。
brebs氏の発言、The reason is, your "default" pcm now goes straight to "hw" (hardware) without going through dmix first.の通りだと思う。
設定ファイルをうまく書けば、.asoundrc の記述だけで、読込み順を変更しつつ、ミキシングも有効にできる...はず。[ このあたりが関係しているのか? Disable ATI HDMI audio from snd_hda_intel (was Re: Disable PCI devices via systemd)参考サイト
- ArchWiki: Advanced Linux Sound Architecture
https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture- Disable ATI HDMI audio from snd_hda_intel (was Re: Disable PCI devices via systemd)
https://lists.fedoraproject.org/pipermail/users/2013-July/439078.html- Arch Linux Forums: [SOLVED] Software mixing with ALSA
https://bbs.archlinux.org/viewtopic.php?id=124868
Linux_Windowsデュアルブート環境時における時刻ずれの解決
LinuxとWindowsのデュアルブート環境において、各OSでの表示時刻がずれる現象が発生することがある。
この現象を解決する方法をまとめる。
環境
解決法
Windows側の時刻系を、UTCに設定する。-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
Linux側の時刻系を、localtimeにする解決法もある。
しかし、ハードウェアクロックがlocaltimeだと、サマータイムの切替時に時刻がおかしくなることがあるらしい。
そのため、時刻系は、UTCを用いるのが望ましいと思われる。
設定手順
設定は、以下の手順で行う。
Linux側で設定されている時刻系の確認
systemdでは、時刻系は、デフォルトでUTCに設定されている。従って、Linux側での設定は、基本的には必要無い。
念の為、Linux側の時刻系が、UTCに設定されているかどうかを確認しておく。
"RTC in local TZ: no"と表示されればOK。
$ timedatectl status | grep local
RTC in local TZ: no
もし、"RTC in local TZ: yes"と表示されたら、時刻系はlocaltimeに設定されている。
その場合は、以下のコマンドを用いて、時刻系をUTCに設定しておく。
$ timedatectl status | grep local
RTC in local TZ: yes
# timedatectl set-local-rtc false
$ !-2
RTC in local TZ: no
Windows側の時刻系の設定
レジストリの[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]キーに、"RealTimeIsUniversal"という名称の、16進数の'1'のDWORD値を追加する。-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
まず、管理者権限を持つユーザアカウントで、ログインをする。
次に、コマンドプロンプトを管理者で実行し、以下のコマンドを実行する。
最後に、再起動する。
> reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
復旧方法
Windows側の時刻系をlocaltimeに戻す手順をまとめる。
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
レジストリに追加した"RealTimeIsUniversal"を削除する。
まず、管理者権限を持つユーザアカウントでログインをする。
次に、コマンドプロンプトを管理者で実行し、以下のコマンドを実行する。
最後に、再起動する。
> reg delete HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /f
原因
Linux、WindowsのそれぞれのOSにおいて、異なる時刻系を使用していることが原因である。
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
コンピュータは、UTCとlocaltimeの2つの時刻系を用いて、時刻を管理している。
-
-
-
- -
-
-
どの時刻系を既定として用いるのかは、OSによって異なる。
MacOSではUTC、Windowsではlocaltime、Unix系では既定無し(UTCが使われることが多い)が、デフォルトとして設定されている。
OSは、起動時にCMOSからハードウェアクロックを読み出し、その時刻に設定された時刻系に基づいた修正を加え、システムクロックの時刻としている。
このとき、OSの時刻系がUTCであればロケールに基づいた時刻修正(Asia/Tokyoなら+0900)を行い、localtimeであれば修正を行わない。
また、OSは、シャットダウンする際に、現在のシステムクロックの時刻を、ハードウェアクロックとしてCMOSに書き込む。
したがって、OSの時刻系がUTCに設定されており、かつハードウェアクロックの時刻がlocaltimeの値である場合、時刻のずれが発生してしまう。
これは、タイムゾーンに基づいた時刻補正を既に行ったlocaltimeの値を、UTCと扱ってしまい、更に時刻補正を加えてしまうためである。
-
-
-
- -
-
-
Linux_Windowsのデュアルブート環境の場合、各OSの時刻系は、前述の通りデフォルトのままだと、Linux側はUTC、Windows側はlocaltimeを用いているケースが多い。
そのため、この状況で、Windows側で時刻同期を行うと、Linux起動時に時刻ずれが発生してしまう。
参考サイト
- ArchWiki: Time
https://wiki.archlinux.org/index.php/Time
- ko-jiya528: 時刻設定にUTCを使う
http://ja.528p.com/linux/client/CA010-timezone.html
- eのらぼらとり: パソコンの時計 ハードウェア クロックとシステム クロック
http://park12.wakwak.com/~eslab/pcmemo/clock/
雑感
WindowsでCaps_LockをCtrlに変更
Caps_LockをCtrlに変更するための、レジストリ操作コマンド。
唐突にWindows環境で作業することになった場合は、これをコピペして変更する。
(2014年 5月 3日 土曜日 22:40:20 JST 追記)
管理者権限がない場合、レジストリの書換えでの入替えはできない。
どうしても入替えたい場合は、AutoHotkeyなどのソフトウェアを使うか、HHKなどを使って物理的に入替えないと無理っぽい。
設定手順
管理者権限のあるユーザでログインし、コマンドプロンプトで以下のコマンドを実行する。再起動する。
> reg add "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v "Scancode Map" /t REG_BINARY /d 0000000000000000020000001d003a0000000000
復旧方法
管理者権限のあるユーザでログインし、コマンドプロンプトで以下のコマンドを実行する。再起動する。
> reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v "Scancode Map" /f
参考サイト
- tmytのらくがき: この世からCapslockを追放したい
Trimの有効
Arch LinuxでTrimを有効にする方法をまとめる。
環境

設定手順
まず、使用しているSSDがTRIMに対応しているかどうか確認する。
"Data Set Management TRIM supported"と表示されればOK。
(2014/02/15 時点、TRIMを利用できるのは、Kernel 2.6.28–25以降で、かつファイルシステムが、Ext4、Btrfs、JFS、XFSのいずれかの場合のみ、おそらく)
# hdparm -I /dev/sdx | grep TRIM
* Data Set Management TRIM supported (limit 8 blocks)
次に、/etc/fstabファイルの内、SSDファイルシステムのフラグオプションに、"discard"を追記する。
# vi /etc/fstab
/dev/sda1 / ext4 defaults,noatime,discard 0 1
/dev/sda2 /home ext4 defaults,noatime,discard 0 2
/dev/sdb1 /home/media ext4 defaults,notime 0 2
/dev/sdb2 none swap defaults 0 0
復旧方法
fstabに追記した"discard"フラグを削除する。
# sed -i.bak 's/discard,//' /etc/fstab
参考サイト
- ArchWiki: Solid_State_Drives
https://wiki.archlinux.org/index.php/Solid_State_Drives#TRIM
TODO
- 本当にTRIMが有効になっているかどうか確認する
ネットワークインタフェースの名称変更
Systemd v197からPredictable Network Interface Namesが導入された。それにより、セキュリティ上の理由から、ネットワークインタフェースの名称がudevによって自動的に生成されるようになった。
しかし、新しい名称では、今までに作成したスクリプトの動作に影響が出るため、udevが名称を自動生成しない設定法をまとめる。
環境
設定手順
空のシンボリックリンクを作成する。
# ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
復旧方法
作成したシンボリックリンクを削除する。
# rm /etc/udev/rules.d/80-net-name-slot.rules
参考サイト
- ArchWiki: Network_Configuration
https://wiki.archlinux.org/index.php/Network_Configuration#Network_Interfaces