「Awesome」の版間の差分
imported>Lahwaacz (replace old-style direct package links with Pkg/AUR templates) |
細 (1版 をインポートしました) |
(相違点なし)
|
2015年1月6日 (火) 21:23時点における版
awesome ウェブサイトより:
"awesome は高度に設定可能な、次世代の X フレームワークウィンドウマネージャです。高速に動作し、拡張しやすく、GNU GPLv2 ライセンスを使っています。
パワーユーザーや開発者など、日常的に PC を使い、きめ細かいグラフィカル環境を求めている全ての人をターゲットにしています。"
目次
- 1 インストール
- 2 awesome を起動
- 3 設定
- 4 テーマ
- 5 Tips & Tricks
- 5.1 awesome を GNOME のウィンドウマネージャとして使う
- 5.2 compiz のようなエフェクトを使う
- 5.3 awesome 3 で wibox を表示・隠す
- 5.4 printscreen を有効にする
- 5.5 動的タグ
- 5.6 スペースインベーダー
- 5.7 Naughty ポップアップ通知
- 5.8 ポップアップメニュー
- 5.9 awesome のウィジェット
- 5.10 透過
- 5.11 Autorun プログラム
- 5.12 テキストを awesome-client を使ってウィジェットに渡す
- 5.13 awesome のデフォルトと違うパネルを使う
- 5.14 Java の修正 (GUI がグレーになる)
- 5.15 Nautilus をデスクトップに表示しないようにする (Gnome3)
- 5.16 Gnome3 からの移行
- 5.17 マウススクロールがタグを変えるのを防ぐ
- 6 トラブルシューティング
- 7 外部リンク
インストール
プレリリース版を使うには、AUR の awesome-gitAUR を使って下さい。安定していないと考えられるバージョンで、設定構文が異なっているかもしれません。
awesome を起動
ログインマネージャを使わずに起動
ログインマネージャを使わずに awesome を起動するには、シンプルにスタートアップスクリプト (例: ~/.xinitrc) に exec awesome
を追加してください。
logind (または consolekit) セッションを維持する方法などについては xinitrc を見て下さい。
ログインさえせずに awesome を起動させることも可能です。Start X at Login を見て下さい。
ログインマネージャで起動
ログインマネージャから awesome を起動するには、この記事を見て下さい。
KDM
root で作成:
/usr/share/apps/kdm/sessions/awesome.desktop
[Desktop Entry] Name=Awesome Comment=Tiling Window Manager Type=Application Exec=/usr/bin/awesome TryExec=/usr/bin/awesome
設定
Awesome にはすぐに使えるデフォルト設定がありますが、遅かれ早かれあなたは設定を変更したくなるでしょう。lua ベースの設定ファイルが ~/.config/awesome/rc.lua
にあります。
設定ファイルを作成
まず、以下を実行して次のステップで必要なディレクトリを作成します:
$ mkdir -p ~/.config/awesome/
コンパイルした時はいつでも、awesome は ~/.config/awesome/rc.lua に含まれている全てのカスタム設定を使おうとします。デフォルトではこのファイルは作られないので、最初にテンプレートファイルからコピーしてくる必要があります:
$ cp /etc/xdg/awesome/rc.lua ~/.config/awesome/
awesome がアップデートされると設定ファイルのシンタックスはしばしば変更されます。よって、awesome に問題が起こったり、設定を変更しようとする時は、上のコマンドを繰り返すことを覚えておいて下さい。
awesome の設定について詳しくは、awesome wiki のコンフィグレーションページを見て下さい。
設定のサンプル
rc.lua のサンプルが以下にあります:
- http://git.sysphere.org/awesome-configs/tree/ - Adrian C の Awesome 3.4 設定集 (anrxc)
- http://pastebin.com/f6e4b064e - Darthlukan の awesome 3.4 設定
- http://www.ugolnik.info/downloads/awesome/rc.lua (screen) - 小さなタイトルバーとステータスバーが付いた Awesome 3
- https://github.com/setkeh/Awesome - Setkeh の 3.4 の設定
- https://github.com/setkeh/Awesome-Laptop-3.5 - Setkeh の 3.5 の設定
- ユーザによる設定ファイル http://awesome.naquadah.org/wiki/User_Configuration_Files
Xephyr を使って rc.lua をデバッグする
デスクトップを壊さずに rc.lua をデバッグする好ましい方法です。まず rc.lua をコピーして新しいファイル、rc.lua.new を作り、そのファイルに必要な修正を加えます。それから awesome の新しいインスタンスを rc.lua.new を設定ファイルとして Xephyr 内で実行します (X の中で他の X クライアントウィンドウを動かす):
$ Xephyr :1 -ac -br -noreset -screen 1152x720 & $ DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua.new
このアプローチの有利な点は、もし rc.lua.new を破壊したときでも、現在の awesome デスクトップを破壊しないということです(全ての X アプリがクラッシュし保存していないファイルが失われることがない)。設定に満足したら、rc.lua.new を rc.lua に変えて awesome を再起動します。
2011年7月現在、以上のことは awmttAUR でも可能です。
テーマ
Beautiful という lua ライブラリを使うことで awesome にテーマを適用するのに外部ファイルを使うことができるようになります。rc.lua
を修正せずに動的に awesome のカラーや壁紙を変更できるためとても便利です。
デフォルトのテーマは /usr/share/awesome/themes/default
です。これを ~/.config/awesome/themes/default
にコピーして rc.lua
の theme_path
を変更してください。
beautiful.init(awful.util.getdir("config") .. "/themes/default/theme.lua")
詳しい説明はこちら。
壁紙を設定する
Beautiful が壁紙を管理できるので、.xinitrc
や .xsession
などのファイルで壁紙を設定する必要はありません。またテーマごとに特定の壁紙を使うようにすることもできます。デフォルトのテーマファイルには wallpaper_cmd キーがあり、beautiful.init
("path_to_theme_file") が起動したときに与えられたコマンドが実行されます。Beautiful に壁紙について関わって欲しくない場合はコマンドを変えたりキーを削除してください。
例えば、awsetbg
を使って壁紙を設定するには、theme.lua
に選択したものを書きます:
theme.wallpaper_cmd = { "awsetbg -f .config/awesome/themes/awesome-wallpaper.png" }
ランダム壁紙画像
ランダムに壁紙をローテーションするには、wallpaper_cmd
を消去して、.xinitrc
に以下のスクリプトを追加してください:
while true; do awsetbg -r <path/to/the/directory/of/your/wallpapers> sleep 15m done &
Tips & Tricks
他の awesome ユーザーに役に立つと思われるものを自由に追加してください。
awesome を GNOME のウィンドウマネージャとして使う
GNOME には"すぐに使える"というアドバンテージがあります。awesome をビジュアルインターフェースとして使うために GNOME をセットアップすることもできますが、GNOME がバックグラウンドで動いているということはあなたのプレッシャーになるかもしれません。GNOME 3 を使っているならば、シンプルに awesome-gnomeAUR をインストールして、GDM でログインするときに "Awesome GNOME" セッションを選ぶということもできます。詳しくは awesome wiki を見て下さい。
compiz のようなエフェクトを使う
Revelation でクライアントの見た目を変えることができます; クライアントを左クリックすれば、表示されているクライアントの最初のタグが表示されクライアントが浮かび上がりフォーカスします。さらに Enter キーで現在フォーカスされているクライアントが表示され、Escape でアボートします。
http://awesome.naquadah.org/wiki/Revelation
awesome 3 で wibox を表示・隠す
Modkey-b でデフォルトステータスバーの表示を切り替えるようマップするには (awesome 2.3 でのデフォルト)、rc.lua の globalkeys に以下を追加してください:
awful.key({ modkey }, "b", function () mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible end),
printscreen を有効にする
awesome で PrtScr ボタンを有効にするにはスクリーンキャプチャプログラムが必要です。Arch リポジトリから簡単に使える Scrot がいいでしょう。
次を実行してください:
# pacman -S scrot
必要な依存ライブラリもインストールしてください。
次に PrtScr のキーの名前を調べます、ほとんど場合 "Print" ですが確認するに越したことはありません。
次を実行してください:
# xev
PrtScr ボタンを押すと、次のように出力されるはずです:
KeyPress event .... root 0x25c, subw 0x0, ... state 0x0, keycode 107 (keysym 0xff61, Print), same_screen YES, ....
上の場合、キーの名前は Print です。
さあ awesome の設定をしましょう!
globalkeys がある場所に次の Lua コードを加えて下さい:
awful.key({ }, "Print", function () awful.util.spawn("scrot -e 'mv $f ~/screenshots/ 2>/dev/null'") end),
また、上のコードでは ~/screenshots/ にスクリーンショットを保存します、あなたが保存したい場所に編集してください。
動的タグ
Eminent は小さな lua ライブラリで、wmii-スタイルの動的タグを簡単に使えるようにするためのモンキーパッチです。shifty とは違い、eminent は完全なタグシステムを提供することは目指しておらず、動的タグをできるだけシンプルに実装しています。実際、eminent ライブラリを使うのに、rc.lua を修正する必要は全くありません。eminent は自立して働きます。
Shifty は動的タグ機能の Awesome 3 拡張です。また、2つのシンプルな設定変数とキーバインドを設定するだけで、あなたをデスクトップのマスターたらしめる、設定に匹敵する素晴らしいクライアントを実装しています。
スペースインベーダー
Space Invaders は Awesome Lua API の可能性を示すためのデモです。
3.4-rc1 リリースからの Awesome パッケージには含まれていません。
Naughty ポップアップ通知
naughty についての awesome wiki ページを見て下さい。
ポップアップメニュー
awesome3 ではデフォルトでシンプルなメニューがありますが、メニューをカスタマイズすることも簡単にできます。ただし、あなたが 2.x の awesome を使っている場合は、awful.menu を見て下さい。
freedesktop.org メニューが作りたいのなら、awesome-freedesktop を見て下さい。
サンプル:
myawesomemenu = { { "lock", "xscreensaver-command -activate" }, { "manual", terminal .. " -e man awesome" }, { "edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" }, { "restart", awesome.restart }, { "quit", awesome.quit } } mycommons = { { "pidgin", "pidgin" }, { "OpenOffice", "soffice-dev" }, { "Graphic", "gimp" } } mymainmenu = awful.menu.new({ items = { { "terminal", terminal }, { "icecat", "icecat" }, { "Editor", "gvim" }, { "File Manager", "pcmanfm" }, { "VirtualBox", "VirtualBox" }, { "Common App", mycommons, beautiful.awesome_icon }, { "awesome", myawesomemenu, beautiful.awesome_icon } } })
awesome のウィジェット
awesome において、ウィジェットとはウィジェットボックス (ステータスバーやタイトルバー) に追加することができるオブジェクトのことであり、システムに関する様々な情報を表示できます。ウィンドウマネージャから情報を読むのに便利です。ウィジェットは簡単に使うことが可能でありながら柔軟性があります。 -- ソース Awesome Wiki: Widgets.
Wicked と呼ばれる広く使われているウィジェットライブラリがあり、MPD ウィジェット、CPU 使用量、メモリ使用量などの多くのウィジェットを提供します。詳しくは Wicked page を見て下さい。
awesome v3.4 で Wicked の代わりになるものとしては Vicious, Obvious, Bashets などがあります。vicious を使うのなら、vicious documentation も見るといいでしょう。
透過
Awesome は xcompmgr (xcompmgr-gitAUR) や compton(compton-gitAUR)、cairo-compmgr-gitAUR などのコンポジットマネージャを通して完全透過をサポートしています。git 版の xcompmgr を使いたいのなら、AUR にあります。
xcompmgr を使うには、次の一行を ~/.xinitrc に追加してください:
xcompmgr &
オプションについては man xcompmgr や xcompmgr を見て下さい。
awesome 3.4 では、ウィンドウ透過はシグナルを使って動的に設定することもできます。例えば、あなたの rc.lua に以下を加えることができます:
client.add_signal("focus", function(c) c.border_color = beautiful.border_focus c.opacity = 1 end) client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal c.opacity = 0.7 end)
add_signal のエラーが出た場合は、代わりに connect_signal を使って下さい。
conky を使っていて、デスクトップの代わりに conky にウィンドウを持たせたい場合、~/.conkyrc を次のように編集してください:
own_window yes own_window_transparent yes own_window_type desktop
Otherwise strange behavior may be observed, such as all windows becoming fully transparent. Note also that since conky will be creating a transparent window on your desktop, any actions defined in awesome's rc.lua for the desktop will not work where conky is.
Awesome 3.1 現在、wiboxes 用に擬似透過がビルドインされています。これを有効にするには、テーマファイルに (~/.config/awesome/themes/default, /usr/share/awesome/themes/default のコピー) 次のように色の部分に16進数の値を2つ加えて下さい:
bg_normal = #000000AA
"AA" が透明度になります。
Modkey + PageUp/PageDown によって選択されたウィンドウの透明度を変更するために、community パッケージリポジトリにある tansset-df を使って、以下のように rc.lua を修正することもできます:
globalkeys = awful.util.table.join( -- your keybindings [...] awful.key({ modkey }, "Next", function (c) awful.util.spawn("transset-df --actual --inc 0.1") end), awful.key({ modkey }, "Prior", function (c) awful.util.spawn("transset-df --actual --dec 0.1") end), -- Your other key bindings [...] )
ImageMagick
imagemagick の display コマンドで壁紙を設定すると問題が起こるかもしれません、xcompmgr との互換性に問題があるためです。awsetbg に display を使うのは他のオプションを設定していないときだけにしましょう。habak, feh, hsetroot などの代わりのプログラムをインストールしてください (grep -A 1 wpsetters /usr/bin/awsetbg で他のオプションが見れます)。
Autorun プログラム
Awesome wiki の Autostart ページも見て下さい。
GNOME や KDE とは異なり、awesome は Freedesktop の仕様による autostart にセットされたプログラムを起動しません。しかし、awesome にはプログラムを起動するための機能が (Lua の標準ライブラリの関数である os.execute
に加えて) 少しばかりあります。GNOME や KDE のようにスタートアップで同じプログラムを起動するには、AUR から dex をインストールして rc.lua から dex を実行してください:
os.execute"dex -a -e Awesome"
スタートアップ時に awesome が起動するアプリケーションのリストをセットアップすることもできます。全てのコマンドの表を作成して、spawn をループで回します:
do local cmds = { "swiftfox", "mutt", "consonance", "linux-fetion", "weechat-curses", --and so on... } for _,i in pairs(cmds) do awful.util.spawn(i) end end
(os.execute
コマンドに '&
' を付けて実行呼び出しをすることもできますが、ちゃんとした spawn 関数を使ったほうがおそらくベターでしょう。)
実行していないプログラムだけを走らせるには、pgrep
で実行中のプロセスに同じ名前がない見つからないときだけプログラムを走らせるシェルコマンドと spawn を使いましょう:
function run_once(prg) awful.util.spawn_with_shell("pgrep -u $USER -x " .. prg .. " || (" .. prg .. ")") end
例えば、parcellite
プロセスが実行中でないときだけ parcellite
を実行するには:
run_once("parcellite")
テキストを awesome-client を使ってウィジェットに渡す
簡単に awesome ウィジェットにテキストを送ることができます。次のように新しいウィジェットを作ります:
mywidget = widget({ type = "textbox", name = "mywidget" }) mywidget.text = "initial text"
外部ソースからテキストをアップデートするには、awesome-client を使います:
echo -e 'mywidget.text = "new text"' | awesome-client
ウィジェットを wibox に追加するのを忘れないで下さい。
awesome のデフォルトと違うパネルを使う
あなたが awesome の軽量性と機能性を買ってはいるがそのデフォルトのパネルの見た目が気に入らないときは、異なるパネルをインストールできます。xfce4-panel をインストールするには:
sudo pacman -S xfce4-panel
勿論、他のパネルも同じようにインストールできます。そして rc.lua の autorun セクションに追加してください(方法は割愛)。画面ごとに wibox を作成しているセクション ("mywibox[s] = awful.wibox({ position = "top", screen = s })" から始まっているところ) をコメントアウトすることもできますが、特にその必要はありません。ただし次を実行して rc.lua にエラーがないかチェックすることは忘れずに:
awesome -k rc.lua
また、ビルトインでないアプリケーションランチャー、Xfrun4 や bashrun などを起動するために、"modkey+R" キーバインドを変えておくべきでしょう。Openbox のページのアプリケーションランチャーのところに例が載っています。rc.lua に以下を追加するのを忘れないで下さい:
properties = { floating = true } }, { rule = { instance = "$yourapplicationlauncher" },
Java の修正 (GUI がグレーになる)
[1] からの手順。
- community から wmname をインストール
- 以下のコマンドを実行、もしくは
.xinitrc
に追加する:wmname LG3D
Nautilus をデスクトップに表示しないようにする (Gnome3)
dconf-editor を起動してください。org->gnome->desktop->background と辿り "draw-background" と "show-desktop-icons" のチェックを外して下さい。以上です!
他にも /usr/bin/nautilus を新しいロケーションに移動して 'nautilus --no-desktop' を実行するスクリプトで置き換えるという方法もあります。
#!/bin/sh /usr/bin/nautilus-real --no-desktop $@
Gnome3 からの移行
'gnome-session-properties' を起動しプログラム (例: Bluetooth Manager, Login Sounds, etc) を削除する以外に必要なことはありません。
If you'd like to get rid of GDM, make sure that your rc.conf DAEMONS list includes "dbus" (and "cupsd" if you have a printer). It's advisable to get a different login manager (like SLiM), but you can do things manually if you wish. That entails setting up your .xinitrc properly and installing something like devmon (AUR).
便利なシステムトレイアップレットや GTK テーマを残しておきたいのなら、rc.lua に以下を追加してください:
function start_daemon(dae) daeCheck = os.execute("ps -eF | grep -v grep | grep -w " .. dae) if (daeCheck ~= 0) then os.execute(dae .. " &") end end procs = {"gnome-settings-daemon", "nm-applet", "kupfer", "gnome-sound-applet", "gnome-power-manager"} for k = 1, #procs do start_daemon(procs[k]) end
マウススクロールがタグを変えるのを防ぐ
rc.lua の Mouse Bindings セクションを次のように変更してください:
-- {{{ Mouse bindings root.buttons(awful.util.table.join( awful.button({ }, 3, function () mymainmenu:toggle() end))) -- }}}
トラブルシューティング
LibreOffice
libreoffice の UI に問題がでる場合は libreoffice-gnome をインストールしてください。
Mod4 キー
デフォルトで Mod4 は Win キー です。何らかの理由でデフォルトでマップされていない場合、Mod4 キーのキーコードをチェックするには:
$ xev
左の Win キーは 115 のはずです。以下を ~/.xinitrc に追加してください
xmodmap -e "keycode 115 = Super_L" -e "add mod4 = Super_L" exec awesome
ここでの問題は xorg インストールによってキーコード 115 が、間違って 'Select' キーとして認識されていることです。上記のコマンドはキーコード 115 を正しい 'Super_L' キーにマップし直します。
Mod4 キー vs. IBM ThinkPad
IBM ThinkPad には Windows キーがありません (Lenovo は ThinkPad のこの伝統を変えたみたいですが)。これを書いている時点で、デフォルトの rc.lua では Alt キーはコマンドのコンビネーションとしては使われていません、したがって Alt キーを Super/Mod4/Win キーの代わりとして使うことができます。これをするには、rc.lua を編集して:
modkey = "Mod4"
を次のように変えて下さい:
modkey = "Mod1"
Note: Awesome には Mod4 とシングルレターを使うコマンドが少しだけあります。Mod4 を Mod1/Alt に変えるとキーコンビネーションが重複してしまうかもしれません。そうならないように rc.lua ファイルを修正する必要があるかもしれません。
awesome の標準を変えたくないならば、キーをリマップをするという方法もあります。例えば、caps lock キーをあまり使わないなら、以下を ~/.Xmodmap に加えます
clear lock add mod4 = Caps_Lock
そしてこのファイルを (リ)ロードしてください。 これで caps lock キーが mod4 キーになり、標準の awesome 設定でもうまく動くでしょう。さらに、他の X プログラムでも同じように mod4 キーが使えるはずです。
未確認ですが、最近の xorg のパッケージのアップデートで二行目のマッピングが破壊されるときは以下のように置き換えることができます (レフト Super キーのない DasKeyboard で検証):
keysym Caps_Lock = Super_L Caps_Lock
Eclipse: メインウィンドウをリサイズ・移動できない
(mod4 + 右・左クリックを使って)メインウィンドウが移動・リサイズできない場合、workbench.xml を編集して fullscreen/maximized を false に設定し、幅と高さの数字をデスクトップ画面の大きさよりも小さくしてください。
YouTube: フルスクリーンが裏に表示される
[2] フルスクリーンモードにするとビデオがウェブブラウザの下に表示される場合、rc.lua に以下を追加してください
{ rule = { instance = "plugin-container" }, properties = { floating = true } },
Chromium には
{ rule = { instance = "exe" }, properties = { floating = true } },
コンソールクライアントを起動する
GTK ターミナル (例: LXTerminal) から呼び出されたコンソールアプリケーションは動作しません。URxvt は動作します。
コンソール出力をファイルに書き出す
端末から GUI アプリケーションを起動すると、アプリケーションによっては端末に大変多くのデータを表示することがあります。結果として、Awesome から起動すると、全てを Awesome が起動している TTY に出力することになり、端末が汚くなることが多々あります。こういったゴミ・アウトプットを削除するには、リダイレクトさせなくてはなりません。しかし、公式 FAQ で書かれているように awful.util.spawn
はパイプとリダイレクトをあまりうまく扱えません。
例として、Luakit の出力をテンポラリファイルにリダイレクトしてみましょう:
awful.key({ modkey, }, "w", function () awful.util.spawn_with_shell("luakit 2>>/tmp/luakit.log") end),
外部リンク
- http://awesome.naquadah.org/wiki/FAQ - FAQ
- http://www.lua.org/pil/ - Programming in Lua (first edition)
- http://awesome.naquadah.org/ - The official awesome website
- http://awesome.naquadah.org/wiki/Main_Page - the awesome wiki
- http://www.penguinsightings.org/desktop/awesome/ - A review
- http://compsoc.tardis.ed.ac.uk/wiki/AwesomeWM_guide - Awesome guide
- https://bbs.archlinux.org/viewtopic.php?id=88926 - share your awesome!