Fedora41 Sway Atomic設定メモ

ウインドウマネージャーのSwayが面白そうだなってFedora Spinで入れてみたらAtomicデスクトップ版の方いれちゃってあれ？ってなったんだけど、Atomicデスクトップはこれはこれで面白い構想だなっておもってそのまま使うことにしました。

使い方が全然違うので、入れ直したときのために使い方をちょっとずつメモしていこうと思います。

https://fedoraproject.org/atomic-desktops/sway/

# VSCodeでMarkdownをかけることを目指そう

NotePCだとやっぱり画面が狭くて通常のウインドウマネージャーだと画面が狭いので、タイル型のSwayでちょっとでも快適に作業ができないかな？って思ったのが出発点。

ライブラリ本体はやっぱり大画面ｘ２が付いてるデスクトップでの開発効率に負けるので、おふとぅん(‘､3[___]上のNotePCでREADME.md書くとかマニュアル書く系の作業が快適にできるようにというのを目標にしました。

というわけでVSCodeで日本語入力が快適にできれば一旦ＯＫ。

## まずはSwayの最低限操作

初めてのSwayだとまずはここから戸惑います😇

|キー|動作|
|-|-|
|Win+Enter|ターミナル(foot)を開く|
|Win+Shift+Q|アクティブなウインドウを閉じる|
|Win+D|ランチャーを開く|
|Win+カーソルキー|アクティブなウインドウを変更|
|Win+Shift+カーソルキー|ウインドウの並べ替え(アクティブなウインドウを移動)|
|Win+F|フルスクリーン化トグル|
|Win+数字<br>(テンキーはダメ)|仮想デスクトップの切り替え(Swayの左上に1,2って数字があるやつ)|
|Win+Shift+数字<br>(テンキーはダメ)|アクティブなウインドウを別の仮想デスクトップへ移動|
|(ウインドウがない状態で)<br>Win+Shift+C|Swayをリロードしてコンフィグ設定を反映|

ターミナル(foot)でのコピペ<br>(Webブラウザでコピーした内容をCtrl+Vで貼り付けられず焦った…)
|||
|-|-|
|Ctrl+Shift+C|コピー|
|Ctrl+Shift+V|貼り付け|

## 中央に丸い円？

真ん中にVerifyingと書かれた丸い円がでてる状態になって、キーを打つとWrongって怒られてなんだろこれ？って思ったらスクリーンロックでした。

キー入力中もずっとチェックしててWrongってなって焦りますが、ログインパスワードを打ち終わるとちゃんとデスクトップ画面に戻れました。

## キーボード配列が英語_(:3」∠)_

さてここから初期設定、まずはキーボード配列を直します。
普通にインストール時にロケール設定あったと思うんですけどね……

私もvim使いなんですがviは記号部分を結構使うので、設定が終わるまではnanoオススメ。

コチラの記事で直し方を知りました。
https://zenn.dev/yurarin/articles/1b0e39dacb65fb

```
$ nano /etc/sway/config
input * {
    xkb_layout "jp"
    xkb_variant ","
}
```

いきなり記号が結構出てきちゃうのでUS配列キーボードを使い慣れてない人はここから大変😇

配置が違う部分の変換表おいておきますね

|||||||||||||||||
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
|打ちたいUS配列|@|^|&|*|(|)|_|+|[|]|{|}|'|:|"|
|日本語キー|"|&|'|(|)|(Shift+0)|=|~|@|[|`|{|:|+|*|

先ほどのconfigを日本語キーボードで打とうとすると次のようになります。

```
input ( `
    xkb_layout *jp*
    xkb_variant *,*
{
```

viだとさらにこの後:wqって打とうとすると:が+なので……ってなるので、この設定が終わるまでnanoを使ってCtrl+w,Ctrl+xで保存してしまった方が無難だと思います。

設定が終わったらWin+Shift+Cで設定のリロードをすればすぐに反映されますし、書式にミスがあればちゃんとエラーを出して教えてくれます。

## ターミナル(foot)の文字が小さい(＊ω＊)

NotePCだと文字が小さ……デフォルト8だと？

見やすさ優先で16まで大きくしました。

```
$ mkdir ~/.config/foot
$ cp /etc/xdg/foot/foot.ini ~/.config/foot/foot.ini
$ vi ~/.config/foot/foot.ini
// font=みたいな行がコメントアウトされているのでコメントを外してサイズを変更
font=monospace:size=16
```
## パッケージを入れる

欲しいパッケージを順次いれていきます。Atomicデスクトップはパッケージを追加するごとにOSがバージョン管理されたレイヤになるって構造のようです。

パッケージ管理とOS管理が結びついていて、dnfのような従来のパッケージマネージャーはOS管理には使いません。OSとOS周りのパッケージ管理にはrpm-ostreeというコマンドを使います。

```
// OSの更新
$ rpm-ostree update

// OSレイヤ(≒入ってるパッケージ)の確認
$ rpm-ostree status

// パッケージのインストール(OSの再起動が必要)
$ rpm-ostree install パッケージ名(.rpmもイケる)

// パッケージのアンインストール(OSの再起動が必要)
$ rpm-ostree uninstall パッケージ名
```

OSの更新は最初にやっておきましょう。あといつもの。
```
$ rpm-ostree update
$ LANG=C xdg-user-dirs-update --force
```

デスクトップフォルダの日本語表記(最近のWindowsは見た目だけなのでいいんだけどLinuxは未だ本当に日本語ディレクトリにしちゃうのがダメよね)と表計算のオートコレクト(特に”)は絶滅して欲しい……

アプリケーションはflatpakを使いますが、初期状態だとfedoraのリポジトリしか見ておらずアプリケーションが少ないのでflathubを見るようにするのがオススメです。

https://flathub.org/setup/Fedora

```
$ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
```

ベースはFedoraなので基本的なOS管理ツールはだいたい入ってます。

追加で入れたのは次の通り。

```
$ rpm-ostree install vim
$ rpm-ostree install fctix5-mozc
$ flatpak install org.keepassxc.KeePassXC
// (ここでflatpakでVSCodeを入れてはイケナイ！)
// [おまけ]
$ flatpak install com.valvesoftware.Steam
```

日本語IMはfctix5系でないとまともに動きません。でもfcitx5でmozcが動いてくれるので普段使いは問題無い感じです。fcitx5-skkも普通に動いたし楽しかったけど今回はパスで😇ﾑｽﾞｲ


flatpakで入れたアプリは次のように長いコマンドが必要になります。


```
$ flatpak run com.valvesoftware.Steam
```


面倒なので.bashrcあたりにaliasを書いておくといいと思います。ついでにコマンドの最後に&をつけてバックグラウンド実行するようにしておくと便利です。


flatpackでinstallしたものは大抵ランチャー(Win+D)に自動で登録されるので、コマンドだとメンドクサイしランチャーで起動するのがオススメです。

## fcitx5-mozcの設定

コンフィグを開いてmozcを有効にします。

```
$ fcitx5-configtool
```

右上のペインにあるmozcを左側に持って行ってApplyすれば、いつもの半角／全角キーで日本語切り替えができます。

fcitx5はinstallしただけだと自動起動しないので、sway起動時に一緒に起動するようにしておきましょう。

```
$ mkdir -p ~/.config/sway/config.d
$ vi ~/.config/sway/config.d/fcitx5.conf
exec fcitx5 -r -d
```

## VSCodeを入れる

flatpakにあるVSCodeを入れると日本語が入力できませんので、本家が配っているrpmパッケージをDLしてインストールします。

```
// VSCodeのサイトから拾ってくる
$ firefox &
$ rpm-ostree install code-1.96.0-1733888253.el8.x86_64.rpm
```

LocalPackageという形でインストールされます。

## 完了！

firefoxやgitは最初から入っているし、NASアクセスもsmbclientがあるのでOK。

最近のVSCodeは最初からCtrl+K VでMarkdownPreviewが出てくるので(でも拡張入れた方が快適)、後は日本語入力さえちゃんと動けばMarkdownをガシガシ書くだけです。

Happy sway life!

# システムの設定

## スクリーンロックまでの時間を長くする

Discordでミーティングする機会があったのですが人の話を聞いていると頻繁にスクリーンロックが('A`)

初期値が300秒みたいです。プログラムを書いているときは自分が操作しているので問題になりませんがミーティングとかの手を動かさない状況では時間が短すぎますね。

```~/.config/swayidle/config
timeout 1800 swaylock -f
```

後はOSを再起動すれば反映されます。

※コンフィグ再読み込みでは反映されませんでした

# 作業環境を作る

最近のプログラム言語はパッケージマネージャーがついてることが当たり前になっていて、システムグローバルにライブラリを追加する方法に加えプロジェクトローカルでライブラリを追加したりバージョン管理したりできるようになっています。

が、システム自体が個別であればグローバルで入れてもいいじゃない。
そう、コンテナならね！

という感じのコンセプトっぽいAtomicデスクトップの肝心要、toolboxによる作業環境管理です。

## toolbox

基本的にはDockerと同じような使い方みたいで-itやattachの代わりにenterを使う感じですね。追加でディレクトリバインドをいい感じにやってくれるみたいです。

作業環境の中では普通にdnfも使えるので、作業環境の中でゴリゴリシステムを汚しながら環境を作って、作業が終わったり失敗したらrmでポイする運用です。

```
// 作業環境を作る
// rlease等を設定しなければシステムと同じバージョンのFedoraイメージが使われる
$ toolbox create <name> [--release <release> --distro <distro> --image <image>]

// createした作業環境一覧
$ toolbox list

// 作業環境に入る
$ toolbox enter <name>
(作業環境を抜けるには、中のシェルでexitコマンドかCtrl+D)

// 作業環境を削除する
$ toolbox rm <name>

// DLしてキャッシュされているcreateに使われるイメージを削除する
$ toolbox rmi <name>
```