LoginSignup
0
0

More than 1 year has passed since last update.

Sway on Ubuntu 22.04

Last updated at Posted at 2022-05-21

背景

Ubuntu 22.04もリリースされてそろそろ1ヶ月立ちますし、22.04版のSway構築手順を確認しておこうと思います。

そもそも Ubuntuのインストールの変更

20.04と比べて、パット見で気になった変更点は以下でしょうか。

  • インストール時に、最新のインストーラを確認して、該当があったらgitからダウンロードしてきてそれを実行する
  • インストール構成で「minimum」が選べる

他、設定投入画面が省略されているものがあった気がしますが、詳細は追ってません。

minimum構成

サーバを建てる際は可能な限り最小パッケージで組みたくなるものなのですが、、
ざっと無印構成とminimum構成のパッケージ数を比較すると、無印が606で、minimumが420。

で、minimumは何を削っているかというと、、、

apt-utils/jammy,now 2.4.5 amd64 [installed,automatic]	      
bash-completion/jammy,now 1:2.11-5ubuntu1 all [installed,auto 
bc/jammy,now 1.07.1-3build1 amd64 [installed,automatic]	      
bind9-dnsutils/jammy-updates,jammy-security,now 1:9.18.1-1ubu 
bind9-host/jammy-updates,jammy-security,now 1:9.18.1-1ubuntu1 
bind9-libs/jammy-updates,jammy-security,now 1:9.18.1-1ubuntu1 
bolt/jammy,now 0.9.2-1 amd64 [installed,automatic]	      
bsdextrautils/jammy,now 2.37.2-4ubuntu3 amd64 [installed,auto 
busybox-static/jammy,now 1:1.30.1-7ubuntu3 amd64 [installed,a 
byobu/jammy,now 5.133-1 all [installed,automatic]	      
cloud-initramfs-copymods/jammy,now 0.47ubuntu1 all [installed 
cloud-initramfs-dyn-netconf/jammy,now 0.47ubuntu1 all [instal 
command-not-found/jammy,now 22.04.0 all [installed,automatic] 
cron/jammy,now 3.0pl1-137ubuntu3 amd64 [installed,automatic]  
debconf-i18n/jammy,now 1.5.79ubuntu1 all [installed,automatic 
distro-info/jammy,now 1.1build1 amd64 [installed,automatic]   
dmidecode/jammy,now 3.3-3 amd64 [installed,automatic]	      
dosfstools/jammy,now 4.2-1build3 amd64 [installed,automatic]  
ed/jammy,now 1.18-1 amd64 [installed,automatic]		      
eject/jammy,now 2.37.2-4ubuntu3 amd64 [installed,automatic]   
ethtool/jammy,now 1:5.16-1 amd64 [installed,automatic]	      
file/jammy,now 1:5.41-3 amd64 [installed,automatic]	      
fonts-ubuntu-console/jammy,now 0.83-6ubuntu1 all [installed,a 
friendly-recovery/jammy,now 0.2.42 all [installed,automatic]  
ftp/jammy,now 20210827-4build1 all [installed,automatic]      
fwupd-signed/jammy,now 1.44+1.2-3 amd64 [installed,automatic] 
fwupd/jammy,now 1.7.5-3 amd64 [installed,automatic]	      
git-man/jammy-updates,jammy-security,now 1:2.34.1-1ubuntu1.2  
git/jammy-updates,jammy-security,now 1:2.34.1-1ubuntu1.2 amd6 
hdparm/jammy,now 9.60+ds-1build3 amd64 [installed,automatic]  
htop/jammy,now 3.0.5-7build2 amd64 [installed,automatic]      
info/jammy,now 6.8-4build1 amd64 [installed,automatic]	      
init/jammy,now 1.62 amd64 [installed]			      
install-info/jammy,now 6.8-4build1 amd64 [installed,automatic 
iptables/jammy,now 1.8.7-1ubuntu5 amd64 [installed,automatic] 
iputils-ping/jammy,now 3:20211215-1 amd64 [installed,automati 
iputils-tracepath/jammy,now 3:20211215-1 amd64 [installed,aut 
irqbalance/jammy,now 1.8.0-1build1 amd64 [installed,automatic 
landscape-common/jammy,now 19.12-0ubuntu13 amd64 [installed,a 
less/jammy,now 590-1build1 amd64 [installed,automatic]	      
libarchive13/jammy,now 3.6.0-1ubuntu1 amd64 [installed,automa 
libatasmart4/jammy,now 0.19-5build2 amd64 [installed,automati 
libblockdev-crypto2/jammy,now 2.26-1 amd64 [installed,automat 
libblockdev-fs2/jammy,now 2.26-1 amd64 [installed,automatic]  
libblockdev-loop2/jammy,now 2.26-1 amd64 [installed,automatic 
libblockdev-part-err2/jammy,now 2.26-1 amd64 [installed,autom 
libblockdev-part2/jammy,now 2.26-1 amd64 [installed,automatic 
libblockdev-swap2/jammy,now 2.26-1 amd64 [installed,automatic 
libblockdev-utils2/jammy,now 2.26-1 amd64 [installed,automati 
libblockdev2/jammy,now 2.26-1 amd64 [installed,automatic]     
liberror-perl/jammy,now 0.17029-1 all [installed,automatic]   
libestr0/jammy,now 0.1.10-2.1build3 amd64 [installed,automati 
libevent-core-2.1-7/jammy,now 2.1.12-stable-1build3 amd64 [in 
libfastjson4/jammy,now 0.99.9-1build2 amd64 [installed,automa 
libflashrom1/jammy,now 1.2-5build1 amd64 [installed,automatic 
libfribidi0/jammy-updates,jammy-security,now 1.0.8-2ubuntu3.1 
libftdi1-2/jammy,now 1.5-5build3 amd64 [installed,automatic]  
libfwupd2/jammy,now 1.7.5-3 amd64 [installed,automatic]	      
libfwupdplugin5/jammy,now 1.7.5-3 amd64 [installed,automatic] 
libgcab-1.0-0/jammy,now 1.4-3build2 amd64 [installed,automati 
libgpgme11/jammy,now 1.16.0-1.2ubuntu4 amd64 [installed,autom 
libgpm2/jammy,now 1.20.7-10build1 amd64 [installed,automatic] 
libgusb2/jammy,now 0.3.10-1 amd64 [installed,automatic]	      
libip6tc2/jammy,now 1.8.7-1ubuntu5 amd64 [installed,automatic 
libjansson4/jammy,now 2.13.1-1.1build3 amd64 [installed,autom 
libjcat1/jammy,now 0.1.9-1 amd64 [installed,automatic]	      
libjson-glib-1.0-0/jammy,now 1.6.6-1build1 amd64 [installed,a 
libjson-glib-1.0-common/jammy,now 1.6.6-1build1 all [installe 
liblmdb0/jammy,now 0.9.24-1build2 amd64 [installed,automatic] 
libmagic-mgc/jammy,now 1:5.41-3 amd64 [installed,automatic]   
libmagic1/jammy,now 1:5.41-3 amd64 [installed,automatic]      
libmaxminddb0/jammy,now 1.5.2-1build2 amd64 [installed,automa 
libmbim-glib4/jammy,now 1.26.2-1build1 amd64 [installed,autom 
libmbim-proxy/jammy,now 1.26.2-1build1 amd64 [installed,autom 
libmm-glib0/jammy,now 1.18.6-1 amd64 [installed,automatic]    
libmspack0/jammy,now 0.10.1-2build2 amd64 [installed,automati 
libnetfilter-conntrack3/jammy,now 1.0.9-1 amd64 [installed,au 
libnewt0.52/jammy,now 0.52.21-5ubuntu2 amd64 [installed,autom 
libnfnetlink0/jammy,now 1.0.1-3build3 amd64 [installed,automa 
libnftables1/jammy,now 1.0.2-1ubuntu2 amd64 [installed,automa 
libnftnl11/jammy,now 1.2.1-1build1 amd64 [installed,automatic 
libnl-3-200/jammy,now 3.5.0-0.1 amd64 [installed,automatic]   
libnl-genl-3-200/jammy,now 3.5.0-0.1 amd64 [installed,automat 
libnspr4/jammy,now 2:4.32-3build1 amd64 [installed,automatic] 
libnss3/jammy,now 2:3.68.2-0ubuntu1 amd64 [installed,automati 
libnuma1/jammy,now 2.0.14-3ubuntu2 amd64 [installed,automatic 
libparted-fs-resize0/jammy,now 3.4-2build1 amd64 [installed,a 
libparted2/jammy,now 3.4-2build1 amd64 [installed,automatic]  
libpcap0.8/jammy,now 1.10.1-4build1 amd64 [installed,automati 
libpipeline1/jammy,now 1.5.5-1 amd64 [installed,automatic]    
libpython3.10/jammy,now 3.10.4-3 amd64 [installed,automatic]  
libqmi-glib5/jammy,now 1.30.4-1 amd64 [installed,automatic]   
libqmi-proxy/jammy,now 1.30.4-1 amd64 [installed,automatic]   
libslang2/jammy,now 2.3.2-5build4 amd64 [installed,automatic] 
libsmbios-c2/jammy,now 2.4.3-1build1 amd64 [installed,automat 
libsodium23/jammy,now 1.0.18-1build2 amd64 [installed,automat 
libtcl8.6/jammy,now 8.6.12+dfsg-1build1 amd64 [installed,auto 
libtext-charwidth-perl/jammy,now 0.04-10build3 amd64 [install 
libtext-iconv-perl/jammy,now 1.7-7build3 amd64 [installed,aut 
libtext-wrapi18n-perl/jammy,now 0.06-9 all [installed,automat 
libtss2-esys-3.0.2-0/jammy,now 3.2.0-1ubuntu1 amd64 [installe 
libtss2-mu0/jammy,now 3.2.0-1ubuntu1 amd64 [installed,automat 
libtss2-sys1/jammy,now 3.2.0-1ubuntu1 amd64 [installed,automa 
libtss2-tcti-cmd0/jammy,now 3.2.0-1ubuntu1 amd64 [installed,a 
libtss2-tcti-device0/jammy,now 3.2.0-1ubuntu1 amd64 [installe 
libtss2-tcti-mssim0/jammy,now 3.2.0-1ubuntu1 amd64 [installed 
libtss2-tcti-swtpm0/jammy,now 3.2.0-1ubuntu1 amd64 [installed 
libudisks2-0/jammy,now 2.9.4-1ubuntu2 amd64 [installed,automa 
libutempter0/jammy,now 1.2.1-2build2 amd64 [installed,automat 
libuv1/jammy,now 1.43.0-1 amd64 [installed,automatic]	      
libvolume-key1/jammy,now 0.3.12-3.1build3 amd64 [installed,au 
libxmlsec1-openssl/jammy,now 1.2.33-1build2 amd64 [installed, 
libxmlsec1/jammy,now 1.2.33-1build2 amd64 [installed,automati 
libxslt1.1/jammy,now 1.1.34-4build2 amd64 [installed,automati 
locales/jammy,now 2.35-0ubuntu3 all [installed,automatic]     
logrotate/jammy,now 3.19.0-1ubuntu1 amd64 [installed,automati 
lshw/jammy,now 02.19.git.2021.06.19.996aaad9c7-2build1 amd64  
lsof/jammy,now 4.93.2+dfsg-1.1build2 amd64 [installed,automat 
manpages/jammy,now 5.10-1ubuntu1 all [installed,automatic]    
mawk/jammy,now 1.3.4.20200120-3 amd64 [installed,automatic]   
modemmanager/jammy,now 1.18.6-1 amd64 [installed,automatic]   
motd-news-config/jammy,now 12ubuntu4 all [installed,upgradabl 
mtr-tiny/jammy,now 0.95-1 amd64 [installed,automatic]	      
nano/jammy,now 6.2-1 amd64 [installed,automatic]	      
netcat-openbsd/jammy,now 1.218-4ubuntu1 amd64 [installed,auto 
nftables/jammy,now 1.0.2-1ubuntu2 amd64 [installed,automatic] 
open-vm-tools/jammy,now 2:11.3.5-1ubuntu4 amd64 [installed,au 
overlayroot/jammy,now 0.47ubuntu1 all [installed,automatic]   
parted/jammy,now 3.4-2build1 amd64 [installed,automatic]      
pastebinit/jammy,now 1.5.1-1ubuntu1 all [installed,automatic] 
patch/jammy,now 2.7.6-7build2 amd64 [installed,automatic]     
powermgmt-base/jammy,now 1.36 all [installed,automatic]	      
psmisc/jammy,now 23.4-2build3 amd64 [installed,automatic]     
python3-automat/jammy,now 20.2.0-1 all [installed,automatic]  
python3-bcrypt/jammy,now 3.2.0-1build1 amd64 [installed,autom 
python3-commandnotfound/jammy,now 22.04.0 all [installed,auto 
python3-constantly/jammy,now 15.1.0-2 all [installed,automati 
python3-debconf/jammy,now 1.5.79ubuntu1 all [installed,automa 
python3-debian/jammy,now 0.1.43ubuntu1 all [installed,automat 
python3-gdbm/jammy,now 3.10.4-0ubuntu1 amd64 [installed,autom 
python3-hamcrest/jammy,now 2.0.2-2 all [installed,automatic]  
python3-hyperlink/jammy,now 21.0.0-3 all [installed,automatic 
python3-incremental/jammy,now 21.3.0-1 all [installed,automat 
python3-newt/jammy,now 0.52.21-5ubuntu2 amd64 [installed,auto 
python3-openssl/jammy,now 21.0.0-1 all [installed,automatic]  
python3-pexpect/jammy,now 4.8.0-2ubuntu1 all [installed,autom 
python3-ptyprocess/jammy,now 0.7.0-3 all [installed,automatic 
python3-pyasn1-modules/jammy,now 0.2.1-1 all [installed,autom 
python3-pyasn1/jammy,now 0.4.8-1 all [installed,automatic]    
python3-service-identity/jammy,now 18.1.0-6 all [installed,au 
python3-twisted/jammy-updates,jammy-security,now 22.1.0-2ubun 
python3-zope.interface/jammy,now 5.4.0-1build1 amd64 [install 
rsync/jammy,now 3.2.3-8ubuntu3 amd64 [installed,automatic]    
rsyslog/jammy-updates,jammy-security,now 8.2112.0-2ubuntu2.2  
run-one/jammy,now 1.17-0ubuntu1 all [installed,automatic]     
sbsigntool/jammy,now 0.9.4-2ubuntu2 amd64 [installed,automati 
screen/jammy,now 4.9.0-1 amd64 [installed,automatic]	      
secureboot-db/jammy,now 1.8 amd64 [installed,automatic]	      
sosreport/jammy,now 4.3-1ubuntu2 amd64 [installed,automatic]  
strace/jammy,now 5.16-0ubuntu3 amd64 [installed,automatic]    
tcl8.6/jammy,now 8.6.12+dfsg-1build1 amd64 [installed,automat 
tcl/jammy,now 8.6.11+1build2 amd64 [installed,automatic]      
tcpdump/jammy,now 4.99.1-3build2 amd64 [installed,automatic]  
telnet/jammy,now 0.17-44build1 amd64 [installed,automatic]    
time/jammy,now 1.9-0.1build2 amd64 [installed,automatic]      
tmux/jammy,now 3.2a-4build1 amd64 [installed,automatic]	      
tnftp/jammy,now 20210827-4build1 amd64 [installed,automatic]  
tpm-udev/jammy,now 0.6 all [installed,automatic]	      
ubuntu-advantage-tools/jammy,now 27.7~22.04.1 amd64 [installe 
ubuntu-minimal/jammy,now 1.481 amd64 [installed]	      
ubuntu-server/jammy,now 1.481 amd64 [installed]		      
ubuntu-standard/jammy,now 1.481 amd64 [installed]	      
udisks2/jammy,now 2.9.4-1ubuntu2 amd64 [installed,automatic]  
ufw/jammy,now 0.36.1-4build1 all [installed,automatic]	      
update-manager-core/jammy,now 1:22.04.9 all [installed,automa 
update-notifier-common/jammy,now 3.192.54 all [installed,auto 
usb-modeswitch-data/jammy,now 20191128-4 all [installed,autom 
usb-modeswitch/jammy,now 2.6.1-3ubuntu2 amd64 [installed,auto 
usb.ids/jammy,now 2022.04.02-1 all [installed,automatic]      
uuid-runtime/jammy,now 2.37.2-4ubuntu3 amd64 [installed,autom 
vim-common/jammy,now 2:8.2.3995-1ubuntu2 all [installed,autom 
vim-runtime/jammy,now 2:8.2.3995-1ubuntu2 all [installed,auto 
vim-tiny/jammy,now 2:8.2.3995-1ubuntu2 amd64 [installed,autom 
vim/jammy,now 2:8.2.3995-1ubuntu2 amd64 [installed,automatic] 
whiptail/jammy,now 0.52.21-5ubuntu2 amd64 [installed,automati 
zerofree/jammy,now 1.1.1-1build3 amd64 [installed,automatic]  

気になるところとしては、以下でしょうか。

  • viがない。というか、nanoも入っていない。
  • lessも入ってない。
  • nftables, iptables, ufwが入っていない、、
  • cromもrsyslogもufwも入ってない、、、

サーバ用途で考えるとminimumベースでnftablesやcrom/rsyslogなどの最小限のものを追加導入する方式おありえますが、自分の普段使いとしては、あえてminimumにはしなくていいかな、、という感じですね。

Ubuntu 22.04にSwayを導入する

実機に導入する前に、VirtualBoxの仮想マシンで手順を整理したいと思います。
まずはVirtualBoxにUbuntu 22.04をインストール。
上記のとおり、minimumにはしません。

で、swayを導入。

# apt install --no-install-recommends sway

依存関係でxwaylandなどの導入は行われません。
パット見、依存関係は結構スッキリしたような。

Swayの初回起動まで

で、起動、、、しません。

$ sway > ./sway.log

症状としては、上記の表示のまま画面がフリーズしてしまう感じ。
ログの方はちゃんと出力されていて、内容をみてみると、、

$ head ./sway.log  
VMware: No 3D enabled (0, Success).
libEGL warning: DRI2: failed to create dri screen
00:00:00.314 [ERROR] [wlr] [EGL] command: eglInitialize, error: EGL_NOT_INITIALIZED (0x3001), message: "DRI2: failed to create screen"
VMware: No 3D enabled (0, Success).
libEGL warning: DRI2: failed to create dri screen
00:00:00.334 [ERROR] [wlr] [EGL] command: eglInitialize, error: EGL_NOT_INITIALIZED (0x3001), message: "DRI2: failed to create screen"
00:00:00.334 [ERROR] [wlr] [EGL] command: eglInitialize, error: EGL_NOT_INITIALIZED (0x3001), message: "eglInitialize"
00:00:00.334 [ERROR] [wlr] [render/egl.c:242] Failed to initialize EGL
00:00:00.334 [ERROR] [wlr] [render/egl.c:521] Failed to initialize EGL context
00:00:00.334 [ERROR] [wlr] [render/gles2/renderer.c:698] Could not initialize EGL

一番上に気になる記載が、、
以下のチェックがディフォルトだと外れていたのですが、これにチェック入れたら起動しました。
21.04では気にした記憶がないのですが。。まぁ解決したので深追いはしてないです。

20220521_13h08m00s_grim.png

さておき。あらためて、起動。しました。

20220521_13h37m50s_grim.png

。。。て、、ん?
マウスカーソルが表示されていない、、

調べたら、ドンピシャのがありました。
仮想マシン環境で実行するときは以下の環境変数を入れないとカーソルが出ないことがあるんだそうです。
https://wiki.archlinux.jp/index.php/Sway#.E3.83.9E.E3.82.A6.E3.82.B9.E3.82.AB.E3.83.BC.E3.82.BD.E3.83.AB.E3.81.8C.E8.A1.A8.E7.A4.BA.E3.81.95.E3.82.8C.E3.81.AA.E3.81.84

$ export WLR_NO_HARDWARE_CURSORS=1

.bashrcあたりに仕込むかな。

最小限の設定いろいろ

では改めて、色々設定していきます。

マルチディスプレイ

実機に導入するときに試すので、今回はパス。

menu

標準だとdmenuが入っているので、waylandネイティブでできるものに切り替えます。
archではbmenuを使っていましたが、ubuntuのパッケージにはbmenuがないんでしたね。。
自分でmakeするのもなぁ、、
https://github.com/Cloudef/bemenu

以前調べた以下の方法の設定をswayのコンフィグに追記する形で凌ぐことにします。
まず、fzfのパッケージが必要なので追加。

# apt install fzf

合わせて、swayのコンフィグもローカルに持ってきておきます。

$ mkdir -p ~/.local/sway
$ cp /etc/sway/config ~/.local/sway/

で、以下をswayコンフィグに追加。

set $menu foot -T menu bash -c 'compgen -c | sort -u | fzf | xargs swaymsg exec --'
for_window [app_id="foot" title="menu"] {
  floating enable
  resize set width 25 ppt height 20 ppt
  move position 0 px 0 px
}

ブラウザ

firefoxを入れます。
22.04ではsnapでの導入になったとき来ましたが、とりあえずaptで実行するとsnapを呼び出してインストールしてくれるみたいですね。

# apt install firefox

21.04に下調べしたときの手順に従って日本語表示用のfonts-nanoを、、入りません。
微妙に名前変わったみたいです。

# apt install fonts-noto-cjk

chromiumも入れておきます。

# apt install chromium-browser

chromium-browserで起動するとXを使おうとして失敗するので、waylandを使うように引数を加えてやります。

$ chromium-browser --enable-features=UseOzonePlatform --ozone-platform=wayland

ディフォルトでwaylandを使ってくれないかなーと期待していたのですが、だめでしたね。。

日本語入力

# apt install --no-install-recommends fcitx5-mozc fcitx5-config-qt qtwayland5 mozc-utils-gui
# apt install --no-install-recommends fcitx5-module-wayland fcitx5-module-xorg fcitx5-frontend-gtk3
# echo -e "export GTK_IM_MODULE=fcitx\nexport QT_IM_MODULE=fcitx\nexport XMODIFIERS=@im=fcitx" >> /etc/environment
$ echo "exec fcitx5" >> ~/.config/sway/config

fictx5-configtoolでmozcの設定を入れて一旦終了。
firefoxは、これで問題なく日本語入力が可能になります。

chromeはNG。
試しに、それらしいプラグインも入力してみましたが、だめ。。
https://www.google.com/intl/ja/inputtools/chrome/
導入も有効化もできるのですが、いざ入力しても日本語に変換されません。。
westonの事例ですが、--enable-wayland-imeをつける例があったので試したのですが、それもダメ。
うーん、、依然chromeはダメかぁ、、

スピーカーの設定

# apt install alsa-base pulseaudio

.config/sway/configに追記

# Sound
    bindsym $mod+t exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') -5%
    bindsym $mod+y exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') +5%

exec pulseaudio --start --log-target=syslog --daemonize+no

これは問題なし。

#まとめ
archlinux構成の際のトラブルが一気に解決したら、、と思ったのですが、状況変わらずでした。
もしかするとドライバ周りが安定していて、現状のsway環境でちょこちょこ発生しているnouveau(Nvidiaドライバらしい)のエラーを出してswayが異常終了する事象が解決したりする、、、かもしれないので、ubuntu構成のswayも併用して試してみようと思います。
なんとも。。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0