「Xmonad」の版間の差分
Kusakata.bot (トーク | 投稿記録) 細 (文字列「http://steamcommunity.com/」を「https://steamcommunity.com/」に置換) |
(同期) |
||
22行目: | 22行目: | ||
==インストール== |
==インストール== |
||
− | {{Pkg|xmonad}} と {{Pkg|xmonad-contrib}} (サードパーティ製のタイリングアルゴリズムや設定スクリプトなどが入っています) |
+ | {{Pkg|xmonad}} と {{Pkg|xmonad-contrib}} (サードパーティ製のタイリングアルゴリズムや設定スクリプトなどが入っています) パッケージから利用可能です。 |
また、開発版の {{AUR|xmonad-git}} や {{AUR|xmonad-contrib-git}} をインストールすることもできます。 |
また、開発版の {{AUR|xmonad-git}} や {{AUR|xmonad-contrib-git}} をインストールすることもできます。 |
||
+ | {{Note| |
||
− | {{Note|[[ArchHaskell]] リポジトリを使うことを選んだ場合は、{{Pkg|xmonad}} の代わりに ''haskell-xmonad'' パッケージをインストールする必要があります (公式の community リポジトリにあるパッケージは依存パッケージが異なっています)。}} |
||
+ | * [[ArchHaskell]] リポジトリを使うことを選んだ場合は、{{Pkg|xmonad}} の代わりに ''haskell-xmonad'' パッケージをインストールする必要があります (公式の community リポジトリにあるパッケージは依存パッケージが異なっています)。 |
||
+ | * xmonad をアップグレードしたら {{ic|xmonad --recompile}} を忘れずに実行してください。次回起動時に共有ライブラリが見つからずに問題が発生する可能性があります。}} |
||
==Xmonad の起動== |
==Xmonad の起動== |
||
200行目: | 202行目: | ||
=== xmonad で xmobar を使う === |
=== xmonad で xmobar を使う === |
||
− | [[xmobar]] は xmonad で使うことを想定して作られた軽量でミニマル、テキストベースのバーです。xmonad で xmobar を使うには、{{Pkg|xmonad}} パッケージに加えて2つのパッケージが必要になります: |
+ | [[xmobar]] は xmonad で使うことを想定して作られた軽量でミニマル、テキストベースのバーです。xmonad で xmobar を使うには、{{Pkg|xmonad}} パッケージに加えて2つのパッケージが必要になります: {{Pkg|xmonad-contrib}} と {{Pkg|xmobar}} です。また、{{Pkg|xmobar}} パッケージの代わりに {{AUR|xmobar-git}} を使うこともできます。 |
ここでは xmonad の中から xmobar を起動して、xmonad をリロードしたときに xmobar もリロードします。 |
ここでは xmonad の中から xmobar を起動して、xmonad をリロードしたときに xmobar もリロードします。 |
||
210行目: | 212行目: | ||
{{Note|{{Pkg|xmobar}} の代わりに {{Pkg|dzen2}} を使うこともできます。}} |
{{Note|{{Pkg|xmobar}} の代わりに {{Pkg|dzen2}} を使うこともできます。}} |
||
+ | 一般的なインポート: |
||
− | Common imports: |
||
import XMonad |
import XMonad |
||
import XMonad.Hooks.DynamicLog |
import XMonad.Hooks.DynamicLog |
||
+ | xmobar を起動して[[#複雑な設定]]で説明しているオプションを全て含んだ設定を返す xmobar アクション: |
||
− | The xmobar action starts xmobar and returns a modified configuration that includes all of the options described in [[#More configurable]]. |
||
main = xmonad =<< xmobar defaultConfig { modMask = mod4Mask {- or any other configurations here ... -}} |
main = xmonad =<< xmobar defaultConfig { modMask = mod4Mask {- or any other configurations here ... -}} |
||
248行目: | 250行目: | ||
==== XMobar の設定を確認 ==== |
==== XMobar の設定を確認 ==== |
||
+ | テンプレート・デフォルトの xmobarrc に含まれています。 |
||
− | The template and default xmobarrc contains this. |
||
− | + | 最後に {{ic|~/.xmobarrc}} を開いて {{ic|StdinReader}} がテンプレートに含まれていてプラグインを実行することを確認してください: |
|
{{hc|~/.xmobarrc|<nowiki> |
{{hc|~/.xmobarrc|<nowiki> |
||
Config { ... |
Config { ... |
||
259行目: | 261行目: | ||
</nowiki>}} |
</nowiki>}} |
||
+ | 設定が完了したら xmonad を再起動してください。 |
||
− | Now, all you should have to do is either to start, or restart, xmonad. |
||
=== 外部スクリプトで xmonad を制御 === |
=== 外部スクリプトで xmonad を制御 === |
||
304行目: | 306行目: | ||
</nowiki>}} |
</nowiki>}} |
||
− | + | カンマを前または後に追加してパスを実際のスクリプトのパスに置き換えてください。{{ic|Mod+q}} (xmonad を再起動して設定をリロード) を押してから {{ic|Mod+Shift+o}} を押せば xmonad と同じウィンドウが開いた Openbox が実行されます。xmonad に戻したいときは Openbox を終了してください。詳しくは [http://www.haskell.org/haskellwiki/Xmonad/Config_archive/adamvo%27s_xmonad.hs Adamvo の xmonad.hs] を参照。 |
|
=== KDE と xmonad === |
=== KDE と xmonad === |
||
340行目: | 342行目: | ||
以下は xmonad ユーザーの設定例です。あなたの設定も自由に追加してください。 |
以下は xmonad ユーザーの設定例です。あなたの設定も自由に追加してください。 |
||
− | * brisbin33 :: simple, useful, readable :: [https://github.com/pbrisbin/xmonad-config |
+ | * brisbin33 :: simple, useful, readable :: [https://github.com/pbrisbin/xmonad-config 設定] [http://files.pbrisbin.com/screenshots/current_desktop.png スクリーンショット] |
* jelly :: Configuration with prompt, different layouts, twinview with xmobar :: [https://github.com/jelly/dotfiles/tree/master/.xmonad/xmonad.hs xmonad.hs] |
* jelly :: Configuration with prompt, different layouts, twinview with xmobar :: [https://github.com/jelly/dotfiles/tree/master/.xmonad/xmonad.hs xmonad.hs] |
||
− | * MrElendig :: |
+ | * MrElendig :: xmobar を使用するシンプルな設定 :: [https://github.com/MrElendig/dotfiles-alice/blob/master/.xmonad/xmonad.hs xmonad.hs], [https://github.com/MrElendig/dotfiles-alice/blob/master/.xmobarrc .xmobarrc], [http://arch.har-ikkje.net/gfx/ss/2010-09-05-163305_2960x1050_scrot.png スクリーンショット] |
− | * thayer :: |
+ | * thayer :: ネットブックにうってつけのミニマルなマウスフレンドリーな設定 :: [http://haskell.org/haskellwiki/Xmonad/Config_archive/Thayer_Williams%27_xmonad.hs 設定] [http://haskell.org/haskellwiki/Image:Thayer-xmonad-20110511.png スクリーンショット] |
− | * vicfryzel :: Beautiful and usable xmonad configuration, along with xmobar configuration, xinitrc, dmenu, and other scripts that make xmonad more usable. :: [https://github.com/vicfryzel/xmonad-config git |
+ | * vicfryzel :: Beautiful and usable xmonad configuration, along with xmobar configuration, xinitrc, dmenu, and other scripts that make xmonad more usable. :: [https://github.com/vicfryzel/xmonad-config git リポジトリ], [https://github.com/vicfryzel/xmonad-config/raw/master/screenshot.png スクリーンショット] |
* vogt :: Check out adamvo's config and many others in the official [http://haskell.org/haskellwiki/Xmonad/Config_archive Xmonad/Config archive] |
* vogt :: Check out adamvo's config and many others in the official [http://haskell.org/haskellwiki/Xmonad/Config_archive Xmonad/Config archive] |
||
− | * wulax :: Xfce の中で xmonad を使用するサンプル。GIMP 用の2つのレイアウト。 :: [https://gist.github.com/jsjolund/94f6821b248ff79586ba xmonad.hs], [https://i.imgur.com/at9AbOl.png |
+ | * wulax :: Xfce の中で xmonad を使用するサンプル。GIMP 用の2つのレイアウト。 :: [https://gist.github.com/jsjolund/94f6821b248ff79586ba xmonad.hs], [https://i.imgur.com/at9AbOl.png スクリーンショット] |
== トラブルシューティング == |
== トラブルシューティング == |
||
509行目: | 511行目: | ||
className =? "hl_linux" --> doFloat |
className =? "hl_linux" --> doFloat |
||
+ | |||
+ | === アップデート後に共有ライブラリが見つからない === |
||
+ | |||
+ | xmonad の実行ファイルは {{ic|~/.xmonad/}} に存在します。xmonad のアップグレード後、古い実行ファイルが残っている場合、削除することで xmonad は新しい実行ファイルをコンパイルします。もしくは {{ic|xmonad --recompile}} を使ってください。 |
||
+ | |||
+ | {{ic|xmonad --recompile}} で ({{ic|XMonad}} 自体も含む) モジュールが全く認識されない場合、パッケージのデータベースキャッシュを再生成してみてください: |
||
+ | |||
+ | # ghc-pkg recache |
||
== 参照 == |
== 参照 == |
2018年2月24日 (土) 22:21時点における版
xmonad は、X のタイル型ウィンドウマネージャです。画面を分割し、重なり合わないようにウィンドウを配置することで、画面を最大限に活用することができます。ウィンドウマネージャの機能はキーボードから利用することができます (マウスはオプションです)。
xmonad は Haskell で実装されており、設定や拡張も Haskell で書かれています。レイアウトやキーバインド、その他の設定はユーザーが設定ファイルに書き込むことで変更できます。
レイアウトは動的に適用され、各ワークスペース上で異なるレイアウトを使用することができます。Xinerama が完全にサポートされ、ウィンドウを複数のモニタで並べて表示することができます。
詳細は、xmonad のウェブサイトをご覧ください: http://xmonad.org/
目次
- 1 インストール
- 2 Xmonad の起動
- 3 設定
- 4 Xmonad の終了
- 5 ヒントとテクニック
- 6 トラブルシューティング
- 6.1 GNOME 3 と xmonad
- 6.2 Xfce 4 と xmonad
- 6.3 xmonad-i386-linux や xmonad-x86_64-linux が存在しない
- 6.4 Java アプリケーションの問題
- 6.5 gvim やターミナルの底部の空きスペース
- 6.6 Chromium/Chrome がフルスクリーンにならない
- 6.7 マルチタッチ / touchegg
- 6.8 azerty キーボードレイアウトのキーバインドの問題
- 6.9 GNOME 3 の mod4+p で dmenu が起動するかわりにディスプレイの設定が変更されてしまう
- 6.10 VirtualBox でフォーカスしたボーダーの問題
- 6.11 Steam のゲーム (Half-Life, Left 4 Dead, …) と xmonad
- 6.12 アップデート後に共有ライブラリが見つからない
- 7 参照
インストール
xmonad と xmonad-contrib (サードパーティ製のタイリングアルゴリズムや設定スクリプトなどが入っています) パッケージから利用可能です。
また、開発版の xmonad-gitAUR や xmonad-contrib-gitAUR をインストールすることもできます。
Xmonad の起動
Xmonad を自動起動するには、起動スクリプトに xmonad
コマンドを追加します (例えば、startx を使う場合 ~/.xinitrc
、XDM ログインマネージャを使う場合 ~/.xsession
)。GDM や KDM を使う場合は、新しいセッションファイルを作成し、セッションメニューから xmonad を選択します。
Xterm パッケージをインストールするか設定でターミナルエミュレータを変更しないと Xmonad の中で何もできなくなるので注意してください。
また、標準では US キーボードレイアウトなので、必要に応じて変更します。例えば日本語キーボードレイアウトは ~/.xinitrc
に以下を追加します。キーボードレイアウトの設定についてはここを参照してください。:
$ setxkbmap -layout jp
例 ~/.xinitrc
:
# set the cursor xsetroot -cursor_name left_ptr # set Japanese keyboard layout setxkbmap -layout jp # start xmonad exec xmonad
もし、起動しない場合はホームディレクトリに .xmonad
ディレクトリがあるか確認してください。もしない場合は作成します。
$ mkdir ~/.xmonad
詳細については、xinitrc を参照してください。
設定
Xmonad ユーザーは ~/.xmonad/xmonad.hs
を修正することで Xmonad をカスタマイズすることができます。再コンパイルは Mod+q
ショートカットでその場で自動的にされます。
ディレクトリ ~/.xmonad
がない場合は xmonad --recompile
を実行してディレクトリを作成します。
Xmonad のデフォルトの設定は非常に優秀で、xmonad.hs
がなくても実行することができます。そのため、xmonad --recompile
を実行したあとでも ~/.xmonad/xmonad.hs
は多分無いでしょう。あなたがそれをカスタマイズしたいのならば、ファイルを作成しそれを編集していきましょう。
Xmonad の設定ファイルは Haskell で書かれているため、プログラマーでないとなかなか設定が難しいと思われます。設定例や詳細方法は以下のページを参照して下さい:
- xmonad wiki
- xmonad config archive
- xmonad FAQ
- Arch Linux フォーラムスレッド
最善の方法は組み込みの関数 defaultConfig を使用し、必要なところを ~/.xmonad/xmonad.hs
で変更やカスタマイズをすることです。
次のように xmonad.hs
を書くことによって設定します:
import XMonad main = xmonad def { terminal = "urxvt" , modMask = mod4Mask , borderWidth = 3 }
デフォルトの設定に端末とボーダーの設定を上書きします (その他の設定は defaultConfig 関数から継承されます)。
より複雑になるにつれ、それぞれ別の関数で設定しメイン関数内でそれらの関数を呼び出したほうが便利です。これによって、大規模なカスタマイズをするときに保守が簡易になります。
上記の簡単な xmonad.hs
は次のように書くことができます:
import XMonad main = do xmonad $ defaultConfig { terminal = myTerminal , modMask = myModMask , borderWidth = myBorderWidth } myTerminal = "urxvt" myModMask = mod4Mask -- Win key or Super_L myBorderWidth = 3
また、Haskell では import が最初にあれば、関数や {} 内の順序は重要ではありません。
以下は この 設定ファイルの一部です。これは一般的な機能の一例です。
{ terminal = myTerminal, focusFollowsMouse = myFocusFollowsMouse, borderWidth = myBorderWidth, modMask = myModMask, -- numlockMask deprecated in 0.9.1 -- numlockMask = myNumlockMask, workspaces = myWorkspaces, normalBorderColor = myNormalBorderColor, focusedBorderColor = myFocusedBorderColor, -- key bindings keys = myKeys, mouseBindings = myMouseBindings, -- hooks, layouts layoutHook = myLayout, manageHook = myManageHook, handleEventHook = myEventHook, logHook = myLogHook, startupHook = myStartupHook }
パッケージにも xmonad.hs
が入っており、これは xmonad.hs
の最新の公式サンプルです。/usr/share/
の中にアーキテクチャとバージョン別に置かれています (例: find /usr/share -name xmonad.hs
)。
デスクトップ設定のベース
xmonad-contrib にはデスクトップとして使うためのデフォルト設定があります。Chromium など新しいプログラムで発生する問題を解決します。
以下のように追加してください:
import XMonad import XMonad.Config.Desktop main = xmonad desktopConfig { terminal = "urxvt" , modMask = mod4Mask }
Xmonad の終了
Mod+Shift+q
で xmonad を終了させることができます。Mod
はデフォルトでは Alt
になっています。
ヒントとテクニック
X-Selection-Paste
Xmonad でのキーボードによる操作は X-Selection-Paste のキーボードショートカットを使うことで更に良くなります。
また、XMonad.Util.Paste に存在する "pasteSelection" 関数を以下のようにキーにバインドすることもできます:
xmonad.hs
import XMonad.Util.Paste -- Remember to include this line -- X-selection-paste buffer , ((0, xK_Insert), pasteSelection)
"Insert" キーを押すとアクティブウィンドウにマウスバッファが貼り付けられるようになります。
ワークスペースの数を増やす
デフォルトでは、xmonad は9つのワークスペースを使います。以下のように拡張することでワークスペースの数を増やすことが可能です:
xmonad.hs
import XMonad import XMonad.Util.EZConfig (additionalKeys) main=do xmonad $ defaultConfig { ... , workspaces = myWorkspaces , ... } `additionalKeys` myAdditionalKeys myWorkspaces = ["1","2","3","4","5","6","7","8","9"] ++ (map snd myExtraWorkspaces) -- you can customize the names of the default workspaces by changing the list myExtraWorkspaces = [(xK_0, "0")] -- list of (key, name) myAdditionalKeys = [ -- ... your other hotkeys ... ] ++ [ ((myModMask, key), (windows $ W.greedyView ws)) | (key, ws) <- myExtraWorkspaces ] ++ [ ((myModMask .|. shiftMask, key), (windows $ W.shift ws)) | (key, ws) <- myExtraWorkspaces ]
Conky やトレイアプリのための空間を作る
ドックやパネル、トレイの空間を自動で調整するには XMonad.Hooks.ManageDocks の avoidStruts を使います:
import XMonad import XMonad.Hooks.ManageDocks main=do xmonad $ defaultConfig { ... , layoutHook=avoidStruts $ layoutHook defaultConfig , manageHook=manageHook defaultConfig <+> manageDocks , ... }
隙間を切り替えたい場合、以下のアクションをキーバインドに追加してください:
,((modMask x, xK_b ), sendMessage ToggleStruts)
xmonad で xmobar を使う
xmobar は xmonad で使うことを想定して作られた軽量でミニマル、テキストベースのバーです。xmonad で xmobar を使うには、xmonad パッケージに加えて2つのパッケージが必要になります: xmonad-contrib と xmobar です。また、xmobar パッケージの代わりに xmobar-gitAUR を使うこともできます。
ここでは xmonad の中から xmobar を起動して、xmonad をリロードしたときに xmobar もリロードします。
~/.xmonad/xmonad.hs
をお好きなエディタで開いて、以下のどちらかの設定を行なってください:
クイック設定
一般的なインポート:
import XMonad import XMonad.Hooks.DynamicLog
xmobar を起動して#複雑な設定で説明しているオプションを全て含んだ設定を返す xmobar アクション:
main = xmonad =<< xmobar defaultConfig { modMask = mod4Mask {- or any other configurations here ... -}}
複雑な設定
xmonad(-contrib) 0.9 現在、XMonad.Hooks.DynamicLog には新しい statusBar 関数が存在します。以下のような設定が可能です:
- バーを実行するのに使用するコマンド
- バーに書き込まれるものを決定する PP
- バーの隙間を切り替えるキーバインド
使用例:
~/.xmonad/xmonad.hs
-- Imports. import XMonad import XMonad.Hooks.DynamicLog -- The main function. main = xmonad =<< statusBar myBar myPP toggleStrutsKey myConfig -- Command to launch the bar. myBar = "xmobar" -- Custom PP, configure it as you like. It determines what is being written to the bar. myPP = xmobarPP { ppCurrent = xmobarColor "#429942" "" . wrap "<" ">" } -- Key binding to toggle the gap for the bar. toggleStrutsKey XConfig {XMonad.modMask = modMask} = (modMask, xK_b) -- Main configuration, override the defaults to your liking. myConfig = defaultConfig { modMask = mod4Mask }
XMobar の設定を確認
テンプレート・デフォルトの xmobarrc に含まれています。
最後に ~/.xmobarrc
を開いて StdinReader
がテンプレートに含まれていてプラグインを実行することを確認してください:
~/.xmobarrc
Config { ... , commands = [ Run StdinReader .... ] ... , template = " %StdinReader% ... " }
設定が完了したら xmonad を再起動してください。
外部スクリプトで xmonad を制御
複数の方法が存在します:
- xmonad の拡張 XMonad.Hooks.ServerMode を使用する。
- xdotool などのプログラムを使ってキーの押下をシミュレートする [1]。以下のコマンドは
Super+n
の押下をシミュレートします:
xdotool key Super+n
- desktopConfig や EwmhDesktops を設定している場合、使いやすいユーティリティとして wmctrl が存在します。
xmonad の中で他のウィンドウマネージャを起動
xmonad-gitAUR を使用している場合、xmonad の中から他のウィンドウマネージャを再起動することができます (2011年1月現在)。小さなスクリプトを書いて ~/.xmonad/xmonad.hs
に設定を追加するだけです。スクリプトは以下のようになります:
~/bin/obtoxmd
#!/bin/sh openbox xmonad
そして ~/.xmonad/xmonad.hs
に以下のような設定を追加してください:
~/.xmonad/xmonad.hs
import XMonad --You need to add this import import XMonad.Util.Replace main do -- And this "replace" replace xmonad $ defaultConfig { --Add the usual here }
以下のキーバインドも追加する必要があります:
~/xmonad/xmonad.hs
--Add a keybinding as follows: ((modm .|. shiftMask, xK_o ), restart "/home/abijr/bin/obtoxmd" True)
カンマを前または後に追加してパスを実際のスクリプトのパスに置き換えてください。Mod+q
(xmonad を再起動して設定をリロード) を押してから Mod+Shift+o
を押せば xmonad と同じウィンドウが開いた Openbox が実行されます。xmonad に戻したいときは Openbox を終了してください。詳しくは Adamvo の xmonad.hs を参照。
KDE と xmonad
xmonad の wiki には KDE で xmonad を実行 する方法が書かれています。
また、何らかの理由で xmonad が終了してしまったときのために、xmonad を起動するキーボードショートカットを KDE の中で設定しておくと良いでしょう。
plasmashell の無効化
デスクトップやタスクバー、トレイなどを管理する KDE5 の plasmashell を無効化すると良いでしょう:
$ cp /etc/xdg/autostart/plasmashell.desktop ~/.config/autostart/
以下のように ~/.config/autostart/plasmashell.desktop
を編集して Exec=plasmashell
を Exec=
に置き換えてください:
~/.config/autostart/plasmashell.desktop
[Desktop Entry] Exec= Name=Plasma Desktop Workspace ... # more stuff
Skype 用の IM レイアウト
新しいバージョンの Skype 用に IM レイアウトを作成するには、以下のコードを使用:
xmonad.hs
myIMLayout = withIM (1%7) skype Grid where skype = And (ClassName "Skype") (Role "")
設定例
以下は xmonad ユーザーの設定例です。あなたの設定も自由に追加してください。
- brisbin33 :: simple, useful, readable :: 設定 スクリーンショット
- jelly :: Configuration with prompt, different layouts, twinview with xmobar :: xmonad.hs
- MrElendig :: xmobar を使用するシンプルな設定 :: xmonad.hs, .xmobarrc, スクリーンショット
- thayer :: ネットブックにうってつけのミニマルなマウスフレンドリーな設定 :: 設定 スクリーンショット
- vicfryzel :: Beautiful and usable xmonad configuration, along with xmobar configuration, xinitrc, dmenu, and other scripts that make xmonad more usable. :: git リポジトリ, スクリーンショット
- vogt :: Check out adamvo's config and many others in the official Xmonad/Config archive
- wulax :: Xfce の中で xmonad を使用するサンプル。GIMP 用の2つのレイアウト。 :: xmonad.hs, スクリーンショット
トラブルシューティング
GNOME 3 と xmonad
GNOME 3 から、GNOME で xmonad を使うには設定を追加する必要があります。
AUR から xmonad-gnome3AUR[リンク切れ: アーカイブ: aur-mirror] をインストールするか、手動で設定してください:
gnome-session で使用するための xmonad のセッションファイルを追加 (/usr/share/gnome-session/sessions/xmonad.session
):
[GNOME Session] Name=Xmonad session RequiredComponents=gnome-panel;gnome-settings-daemon; RequiredProviders=windowmanager;notifications; DefaultProvider-windowmanager=xmonad DefaultProvider-notifications=notification-daemon
GDM のデスクトップファイルを作成 (/usr/share/xsessions/xmonad-gnome-session.desktop
):
[Desktop Entry] Name=Xmonad GNOME Comment=Tiling window manager TryExec=/usr/bin/gnome-session Exec=gnome-session --session=xmonad Type=XSession
以下のファイルを作成・編集 (/usr/share/applications/xmonad.desktop
):
[Desktop Entry] Type=Application Encoding=UTF-8 Name=Xmonad Exec=xmonad NoDisplay=true X-GNOME-WMName=Xmonad X-GNOME-Autostart-Phase=WindowManager X-GNOME-Provides=windowmanager X-GNOME-Autostart-Notify=false
最後に、xmonad-contrib をインストールして ~/.xmonad/xmonad.hs
を以下のように作成・編集:
import XMonad import XMonad.Config.Gnome main = xmonad gnomeConfig
これで GDM のセッションリストに Xmonad が表示され、gnome-session で扱えるようになります。
GNOME と Xmonad でコンポジット
コンポジットを有効にすることで一部のアプリケーション (例: GNOME Do) の見た目が良くなります。ただし Xmonad のデフォルト設定ではコンポジットが有効になっていません。有効にするには .desktop
ファイルを作成してください (/usr/share/xsessions/xmonad-gnome-session-composite.desktop
):
[Desktop Entry] Name=Xmonad GNOME (Composite) Comment=Tiling window manager TryExec=/usr/bin/gnome-session Exec=/usr/sbin/gnome-xmonad-composite Type=XSession
そして /usr/sbin/gnome-xmonad-composite
を作成して chmod +x /usr/sbin/gnome-xmonad-composite
を実行:
xcompmgr & gnome-session --session=xmonad
ログイン時のセッションリストから "Xmonad GNOME (Composite)" を選択するようにしてください。詳しくは xcompmgr(1) を参照。
Xfce 4 と xmonad
~/.xmonad/xmonad.hs
で XMonad.Config.Xfce
をインポートしたら defaultConfig
の代わりに xfceConfig
を使ってください:
import XMonad import XMonad.Config.Xfce main = xmonad xfceConfig { terminal = "urxvt" , modMask = mod4Mask }
また、Settings > Session and Startup > Application Autostart から xmonad --replace
を実行するエントリを追加してください。
xmonad-i386-linux や xmonad-x86_64-linux が存在しない
Xmonad は自動的に xmonad-i386-linux
ファイルを (~/.xmonad/
の中に) 作成します。作成されない場合、xmonad wiki から設定を入手するか 自分で 設定を書いてください。.hs
などのファイルを ~/.xmonad/
に配置したら、フォルダの中から以下のコマンドを実行:
xmonad --recompile
これでファイルが出来るはずです。
Java アプリケーションの問題
標準の Java GUI ツールキットは、ハードコーディングされた "non-reparenting" ウィンドウマネージャのリストを持っています。xmonad はそのリストに含まれておらず、稼働中にいくつかの問題が発生する Java アプリケーションがあります。最も一般的な問題の一つは、Java アプリケーションが GUI をレンダリングする代わりに無地で灰色の box をレンダリングする、"gray blobs" です。
これを解決できる方法はいくつかあります。
- jre7-openjdk や jre8-openjdk ならば、
/etc/profile.d/jre.sh
にexport _JAVA_AWT_WM_NONREPARENTING=1
を追記してください。そして、そのファイル/etc/profile.d/jre.sh
を source するか、再ログインしてください。 - Oracle の JRE/JDK ならば、SetWMName を使用してください。しかし、その効果は
XMonad.Hooks.EwmhDesktops
も使用すると打ち消されてしまうかもしれません。この場合は、
>> setWMName "LG3D"
を LogHook
に追記することで解決されるでしょう。
より多くの情報を得るためには、[2] を参照してください。
gvim やターミナルの底部の空きスペース
スペースを背景色と合わせる方法は Vim#gVim ウィンドウの底部の空きスペースを見てください。
rxvt-unicode の場合、rxvt-unicode-patchedAUR が使えます。
サイズヒントを使うように xmonad を設定することもできます。ただし隙間は残ります。詳しくは Xmonad.Layout.LayoutHints のドキュメント を参照してください。
Chromium/Chrome がフルスクリーンにならない
F11
を押したときに Chrome がフルスクリーンにならない場合、xmonad-contrib パッケージに含まれている XMonad.Hooks.EwmhDesktops 拡張を使ってください。~/.xmonad/xmonad.hs
に以下の import
文を追加するだけです:
import XMonad.Hooks.EwmhDesktops
それから適当な場所に handleEventHook = fullscreenEventHook
を追加してください。例:
... xmonad $ defaultConfig { modMask = mod4Mask , handleEventHook = fullscreenEventHook } ...
xmonad の再コンパイル・再起動後に、Chromium で F11
(fullscreen) が使えるようになるはずです。
マルチタッチ / touchegg
Touchégg はウィンドウマネージャから _NET_CLIENT_LIST
を定期的に取得します (マウスイベントを取得するウィンドウのリストを確認するため)。デフォルトでは xmonad はこのプロパティを提供していません。有効にするには、xmonad-contrib パッケージに含まれている XMonad.Hooks.EwmhDesktops 拡張を使ってください。
azerty キーボードレイアウトのキーバインドの問題
azerty レイアウトのキーボードを使っている場合、特定のキーバインドに問題が発生します。XMonad.Config.Azerty モジュールを使うことで問題は解決します。
gnome-control-center のディスプレイ設定を切り替える必要がない場合、ユーザーで以下を実行することで xrandr プラグインで Super+p を使用するのを止めさせることができます:
$ dconf write /org/gnome/settings-daemon/plugins/xrandr/active false
VirtualBox でフォーカスしたボーダーの問題
Virtualbox には既知の問題 (Ticket #6479) が存在し、フォーカスされたウィンドウのボーダーに問題が発生します。xcompmgr などのコンポジットマネージャをインストールして vboxvideo の挙動を上書きすることで解決できます。
Steam のゲーム (Half-Life, Left 4 Dead, …) と xmonad
Source エンジンを使っているゲーム (Half-Life など) で問題が発生することがあります。ゲームが起動しなかったり黒い画面から進まないときは、ウィンドウモードで起動してみてください: ライブラリのゲームを右クリックして、起動オプションに以下のように入力 ([3] を参照):
-windowed
manage フックを使用してゲームのウィンドウをフロートさせる方法もあります。例えば、Half-Life の場合なら以下の行を使います:
className =? "hl_linux" --> doFloat
アップデート後に共有ライブラリが見つからない
xmonad の実行ファイルは ~/.xmonad/
に存在します。xmonad のアップグレード後、古い実行ファイルが残っている場合、削除することで xmonad は新しい実行ファイルをコンパイルします。もしくは xmonad --recompile
を使ってください。
xmonad --recompile
で (XMonad
自体も含む) モジュールが全く認識されない場合、パッケージのデータベースキャッシュを再生成してみてください:
# ghc-pkg recache
参照
- xmonad - xmonad 公式ウェブサイト
- xmonad.hs - テンプレート xmonad.hs
- xmonad: a guided tour
- Share your xmonad desktop!
- xmonad hacking thread
- xmonad-log-applet - GNOME, MATE, Xfce パネルのアプレット