awesome
awesome は、高度な設定が可能で、次世代の、X 向けの動的なウィンドウマネージャです。主なターゲットは、パワーユーザーや開発者、その他日常的にコンピュータを扱っていてGUI環境に細かい管理が欲しいと願うすべての人たちに設定されています。プログラミング言語 Lua を使って拡張されます。
前提条件
サービス
これらのうち1つだけを選択します:
- elogind: スタンドアロンな logind パッケージ。OpenRC またはその他の init システムとの併用のために、systemd プロジェクトから抽出されました。
- systemd: systemd のセッション追跡部分を利用します。systemd の利用者であればここで何らかの先陣に立ったりせずに済みます。
その他
- D-Bus: D-Bus メッセージバスシステムの使用を有効化します。
- polkit: システム全体のサービスへの権限を管理する polkit フレームワークを有功化します。
- udisks: ストレージ関係のいくつかのサービスのサポートを有効化します。
X サーバ
Xorg/Guide の指示に従って X 環境を構築してください。
X サーバを開始する
X を開始するためには、以下のいずれかの方法を利用することができます:
- ディスプレイマネージャ: ユーザにグラフィカルなログイン画面を提示します。
- ディスプレイマネージャを使わずに X を使う: シングルユーザシステムの場合、ディスプレイマネージャは不要な資源の浪費と思うことがあるかもしれません。
インストール
USE フラグ
USE flags for x11-wm/awesome Dynamic floating and tiling window manager
dbus
Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
doc
Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
gnome
Add GNOME support
test
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
Emerge
x11-wm/awesome のインストール:
root #emerge --ask x11-wm/awesome設定
起動
awesome を起動するには、X サーバを開始するの指示に従うか、または startx を利用します。
elogind サポートを使って startx を使うには、elogind を準備したうえで、以下のファイルを作成します:
~/.xinitrcexecdbus-launch--sh-syntax--exit-with-sessionawesome
設定ファイル
awesomeのデフォルトの設定ファイルは~/.config/awesome/rc.luaに置かれます。そのようなディレクトリファイルが存在しない場合は、自分で作成する必要があります。デフォルトの設定ファイルはawesomeといっしょに提供されていて、/etc/xdg/awesome/rc.luaにあります。この設定ファイルをユーザーのホームディレクトリにコピーしてください。
まずディレクトリawesome/を作成します:
user $mkdir -p ~/.config/awesome/次に設定ファイルrc.luaをコピーします:
user $cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.luaもしx11-terms/xterm がインストールされていないなら、それをインストールするか、デフォルトの端末エミュレータをシステムで利用可能な端末エミュレータに変更しましょう。デフォルトの端末エミュレータをkde-apps/konsole に含まれるkonsoleに設定するには、次のようにします:
~/.config/awesome/rc.lua-- This is used later as the default terminal and editor to run. terminal="konsole"
設定ファイルを変更した後には、設定ファイルにエラーが無いかチェックするといいでしょう:
user $awesome -k✔ Configuration file syntax OK
media-gfx/feh パッケージを通じた壁紙サポートを追加:
root #emerge --ask media-gfx/feh例えば、壁紙を設定するには、~/.config/awesome/theme/theme.lua を編集します:
~/.config/awesome/theme/theme.luawallpaper プロパティを使って背景を設定するtheme.wallpaper=".config/awesome/themes/awesome-wallpaper.png"
タグ
awesomeのタグとは、1個以上のアプリケーションが起動している仮想デスクトップに与えられる名前です。タグには好きな記号を付けることができます:
~/.config/awesome/rc.lua-- {{{ Tags tags={} fors=1,screen.count()do tags[s]=awful.tag({"➊","➋","➌","➍"},s,layouts[1]) end -- }}}
メニュー
以下はawesomeメニューのカスタマイズ例です:
~/.config/awesome/rc.lua-- {{{ Menu myawesomemenu={ {"manual",terminal.." -e man awesome"}, {"edit config",editor_cmd.." "..awesome.conffile}, {"reload",awesome.restart}, {"quit",awesome.quit}, {"reboot","reboot"}, {"shutdown","shutdown"} } appsmenu={ {"urxvt","urxvt"}, {"sakura","sakura"}, {"ncmpcpp",terminal.." -e ncmpcpp"}, {"luakit","luakit"}, {"uzbl","uzbl-browser"}, {"firefox","firefox"}, {"chromium","chromium"}, {"thunar","thunar"}, {"ranger",terminal.." -e ranger"}, {"gvim","gvim"}, {"leafpad","leafpad"}, {"htop",terminal.." -e htop"}, {"sysmonitor","gnome-system-monitor"} } gamesmenu={ {"warsow","warsow"}, {"nexuiz","nexuiz"}, {"xonotic","xonotic"}, {"openarena","openarena"}, {"alienarena","alienarena"}, {"teeworlds","teeworlds"}, {"frozen-bubble","frozen-bubble"}, {"warzone2100","warzone2100"}, {"wesnoth","wesnoth"}, {"supertuxkart","supertuxkart"}, {"xmoto","xmoto"}, {"flightgear","flightgear"}, {"snes9x","snes9x"} } mymainmenu=awful.menu({items={{"awesome",myawesomemenu}, {"apps",appsmenu}, {"games",gamesmenu}, {"terminal",terminal}, {"web browser",browser}, {"text editor",geditor} } }) mylauncher=awful.widget.launcher({image=image(beautiful.awesome_icon), menu=mymainmenu}) -- }}}
日時
以下は日時フォーマットのカスタマイズ例です。フォーマット構文は>%Y-%m-%d %H:%Mです。2番目のオプション 60 は更新間隔(秒)です。
~/.config/awesome/rc.luaテキスト時刻ウィジェットを作成する-- {{{ Wibox -- テキスト時刻ウィジェットを作成する mytextclock=wibox.widget.textclock(" %Y-%m-%d %H:%M ",60) -- }}}
フォーマットオプションについての詳しい情報はdate --helpを参照してください。
ボリューム制御
media-sound/volumeicon を使うと、自動で音量キーを扱うことができ、トレイ上のアイコンとして音量レベルを表示できます。
root #emerge --ask media-sound/volumeicon~/.xinitrcの中からvolumeiconを自動起動します:
~/.xinitrcX起動時にvolumeiconをバックグラウンドで起動するvolumeicon& exec[...]
他に軽量な方法として、ボリュームキーの処理を直接awesome設定ファイルに追加することもできます:
~/.config/awesome/rc.lua音量キーawful.key({},"XF86AudioLowerVolume",function()awful.util.spawn("amixer -q sset Master 5%-")end) awful.key({},"XF86AudioRaiseVolume",function()awful.util.spawn("amixer -q sset Master 5%+")end)
MPD マルチメディアキー
MPD 向けのマルチメディアキーバインディングを追加するためには media-sound/mpc をインストールします:
root #emerge --ask media-sound/mpc次に、マルチメディアキーを適切なコマンドに割り当てるために、awesomeの設定を更新します。
~/.config/awesome/rc.lua音量キーの割り当てawful.key({},"XF86AudioNext",function()awful.util.spawn("mpc next")end), awful.key({},"XF86AudioPrev",function()awful.util.spawn("mpc prev")end), awful.key({},"XF86AudioPlay",function()awful.util.spawn("mpc play")end), awful.key({},"XF86AudioStop",function()awful.util.spawn("mpc pause")end),
ウィンドウの隙間をなくす
ターミナルのウィンドウ間では特に、ウィンドウ間の隙間が見えることがあるでしょう。これらは次のように size_hints_honor = false プロパティを awful.rules.rules テーブルの中に挿入することで消すことができます:
~/.config/awesome/rc.luasize_hints_honor プロパティを設定するawful.rules.rules={ {rule={}, properties={size_hints_honor=false,-- Remove gaps border_width=beautiful.border_width, border_color=beautiful.border_normal, ...
Xephyr を使ってコンフィグをデバッグする
Xephyr は X サーバの実体をクライアントウィンドウの中に作成して、新しいコンフィグファイルをデバッグするのに有用なツールです。
user $Xephyr -ac -nolisten tcp -br -noreset -screen 800x600 :1このコマンドで 800x600 のウィンドウを開きます。awesome をこの中で動かすには、新しいターミナルで次のコマンドを実行します。
user $DISPLAY=:1.0 awesomeこれでウィンドウの中で awesome を起動できます。
キーボード・ショートカット
これらは最もよく使うデフォルトのキーボードショートカットです:
- Super+Mouse1 = マウスでクライアントを移動する
- Super+Mouse2 = マウスでクライアントをリサイズする
- Super+Enter = 端末を開く
- Super+r = コマンドを実行する
- Super+Shift+c = 終了
- Super+m = 最大化
- Super+n = 最小化
- Super+Ctrl+n = 最小化したクライアントを元に戻す
- Super+f = フルスクリーン
- Super+Tab = 前のクライアントに切り替える
- Super+Ctrl+space = フロート化
- Super+j = 左のクライアントをハイライト
- Super+k = 右のクライアントをハイライト
- Super+Shift+j = クライアントを右に動かす
- Super+Shift+k = クライアントを左に動かす
- Super+l = タイル型のクライアントをリサイズ
- Super+h = タイル型のクライアントをリサイズ
- Super+left / right = タグを切り替える
- Super+1-9 = タグを切り替える
- Super+Shift+1-9 = クライアントをタグへ移動
awesome をより使いやすくするため、Alt+Tab のようなカスタムキーバインディングを設定することもできます。例えば Alt+Tab で一つ前のウィンドウに切り替えられるようにする場合は次のようにします。
~/.config/awesome/rc.luaAlt-TAB キーバインディング-- {{{ Key bindings globalkeys=awful.util.table.join( ... -- alt + tab awful.key({"Mod1",},"Tab", function() awful.client.focus.history.previous() ifclient.focusthen client.focus:raise() end end), -- }}}
外部資料
- awesome wiki の User Configuration Files (web.archive.org)
- Desktop profile switching USE default to elogind