2. インストール
いつまでも、使えねぇものを残しておいても仕方ないので、削除します。
6月にインストールしたときは、「FreeBSD 11.4 RELEASE」でインストールしたのと同じバージョンだったのですが。
2020年7月9日には変わっておる。
「hs-xmonad-contrib」は、なくなったようです。
変わって「hs-cabal-install」というのをインストールせねばならぬようで。
pkg install -y xorg numlockx ja-font-migmix
pkg install -y sddm sddm-freebsd-black-theme hal cursor-neutral-white-theme
pkg install -y hs-xmonad hs-xmobar hs-cabal-install hs-stack pkgconf
「pkgconf」は、いれておかないと、後で、「xmonad」の環境を作成するときに
cabal: The program 'pkg-config' version >=0.9.0 is required but it could not
と言われちゃうのです。
2020年7月9日時点で、下記のバージョンへ変わっております。
$ pkg info hs-xmonad
hs-xmonad-0.15_4
Name : hs-xmonad
Version : 0.15_4
Installed on : Thu Jul 9 10:31:59 2020 JST
Origin : x11-wm/hs-xmonad
Architecture : FreeBSD:11:amd64
Prefix : /usr/local
Categories : haskell x11-wm
Licenses : BSD3CLAUSE
Maintainer : haskell@FreeBSD.org
WWW : https://xmonad.org/
Comment : Tiling window manager
Options :
EXAMPLES : on
Shared Libs required:
libXrandr.so.2
libXext.so.6
libcharset.so.1
libiconv.so.2
libgmp.so.10
libXss.so.1
libXinerama.so.1
libffi.so.6
libX11.so.6
Annotations :
FreeBSD_version: 1103000
repo_type : binary
repository : FreeBSD
Flat size : 2.65MiB
Description :
xmonad is a tiling window manager for X. Windows are arranged
automatically to tile the screen without gaps or overlap, maximising
screen use. All features of the window manager are accessible from the
keyboard: a mouse is strictly optional. xmonad is written and
extensible in Haskell. Custom layout algorithms, and other extensions,
may be written by the user in config files. Layouts are applied
dynamically, and different layouts may be used on each workspace.
Xinerama is fully supported, allowing windows to be tiled on several
screens.
WWW: https://xmonad.org/
少しつらくは、ありますが、開発が停滞していないということで、喜んでおきましょう。
3. SDDM カスタマイズ
ログイン画面の解像度を「1366x768」とし、キーボードレイアウトを「jp.106」にします。
「root」ユーザで
cat << EOF >> /usr/local/share/sddm/scripts/Xsetup
xrandr --output VGA-0 --mode 1366x768 --rate 60
setxkbmap -layout jp
EOF
ログイン画面のテーマとカーソルを変更します。
「root」ユーザのまま
sddm --example-config > /usr/local/etc/sddm.conf
vi /usr/local/etc/sddm.conf
[Theme]
# Current theme name
Current=breeze
# Cursor theme used in the greeter
CursorTheme=breeze_cursors
を下記へ変更します。
[Theme]
# Current theme name
Current=sddm-freebsd-black-theme
# Cursor theme used in the greeter
CursorTheme=Neutral++_White
4. .desktop ファイルの作成
ログイン時に有効となるよう、「.desktop」ファイルを作成します。
「root」ユーザで
mkdir -pv /usr/local/share/xsessions
cat << EOF >> /usr/local/share/xsessions/xmonad.desktop
[Desktop Entry]
Name=xmonad
Comment=A lightweight window manager for the X Windowing System
Exec=xmonad
Terminal=false
TryExec=xmonad
Type=Application
EOF
5. ユーザ用初期化ファイルの作成
「root」ユーザで
cat << EOF >> /usr/share/skel/dot.xsession
#!/bin/sh
# set locale
export LC_ALL=ja_JP.UTF-8
export LANGUAGE=ja_JP.UTF-8
export LANG=ja_JP.UTF-8
#
setxkbmap -layout jp
numlockx &
xsetroot -cursor_name left_ptr
EOF
chmod +x /usr/share/skel/dot.xsession
既存のログインユーザで、まず、セッション開始の手順をスケルトンよりコピー。
(新規ユーザ用は、今のところ(2020年7月16日)無理があるので、既存ユーザでの作業しかできません)
cp /usr/share/skel/dot.xsession ~/.xsession
まずは、最低限の「xmonad」の環境を作成
mkdir -pv ~/.xmonad
cp /usr/local/share/examples/xmonad/build ~/.xmonad/build
cp /usr/local/share/examples/xmonad/xmonad-config.cabal ~/.xmonad/xmonad-config.cabal
vi ~/.xmonad/xmonad-config.cabal
短いので、全行記述しますが(わはは、「cabal」というファイルタイプのシンタックスハイライトはできない)
name: xmonad-config
version: 0.0
synopsis: XMonad Config File
homepage: http://xmonad.org
license: BSD2
license-file: LICENSE
author: Peter Jones <pjones@devalot.com>
maintainer: Peter Jones <pjones@devalot.com>
copyright: Copyright (c) 2016,2017 Peter J. Jones
category: Graphics
build-type: Simple
cabal-version: >=1.8
executable xmonad-config
main-is: config.hs
build-depends: base, xmonad, xmonad-contrib
最終行だけ、変更します。
executable xmonad-config
main-is: config.hs
build-depends: base, xmonad, xmonad-contrib, containers
これ、一回こっきりしかチャンスないので間違えないように、ご注意ください。
以降の処理で「~/.xmonad/xmonad-config.cabal」は、変わってしまいます。
変更したいときは、ここまで戻って、「~/.xmonad/」配下を全部削除して、一から作り直さなければなりません。
vi ~/.xmonad/config.hs
これが、カスタマイズ用ファイルです。
今んとこ(2020年7月16日)、最低限のカスタマイズなので、いつかきちんと書き直す予定です。
import XMonad
import Data.Monoid
import System.Exit
import qualified XMonad.StackSet as W
import qualified Data.Map as M
import XMonad.Hooks.ManageHelpers(doFullFloat, doCenterFloat, isFullscreen, isDialog)
myTerminal = "xterm"
myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
[
((modm , xK_Return), spawn $ XMonad.terminal conf) -- 端末を開く
, ((modm , xK_q ), io (exitWith ExitSuccess)) -- ログアウト
]
myModMask = mod4Mask
main = xmonad defaults
defaults = def {
terminal = myTerminal
,modMask = myModMask
,keys = myKeys
}
「--」以降以外は、スペースはきちんとスペースをいれます。
タブで飛ばすと、山ほど、ワーニングが出力されます。
上記のファイルを作成後
cabal new-update
~/.xmonad/build
xmonad --recompile
この一連の手順で
~/.xmonad/xmonad-x86_64-freebsd
というカスタマイズされた実行ファイルができます。
カスタマイズしていない場合は、端末を開くのが Alt+Shift+Enter で、ログアウトが Alt+Shift+q になります。
他は、下記のファイルの
/usr/local/share/examples/xmonad/xmonad.hs
60~61行を読むしかない・・・。
Alt+Shift+/ で、表示することができるはずの、キーバインドのヘルプ画面も開かない・・・。
6. /etc/rc.conf 編集
前項までインストール・設定したものを有効にします。
「root」ユーザで
cat - << EOF >> /etc/rc.conf
polkitd_enable="YES"
dbus_enable="YES"
hald_enable="YES"
sddm_enable="YES"
EOF
7. ログインマネージャ起動
「root」ユーザで
service dbus start
service hald start
service sddm start
うまく設定できていれば、ログイン画面が表示されます。
ユーザ名・パスワードを入力してログインします。