Linuxデスクトップ環境Tips(NixOS with Hyprland)
以下のスクラップと同様の理由でクローズする。
これは何?
Linuxディストリビューション | NixOS |
デスクトップ環境 | Wayland |
ウィンドウマネージャ | Hyprland(タイル型) |
という、特殊極まるLinuxデスクトップ環境で生活するためのTips
[Wayland] IMEが動作しない
問題
Wayland環境下で、chromium系アプリケーション(諸々のブラウザ、VS Code等)でIME(fcitx5)が動作しない。
解決策
$ 起動したいアプリケーション --enable-features=UseOzonePlatfor --ozone-platform=x11
Chromiumには、Chromium flagsという起動オプションがあり、様々な設定を行える(flags一覧)。
ブラウザであればchrome://flagsにアクセスして設定することも可能。
home-managerとChromium系ブラウザの場合
{
# programs.<アプリケーション名>のところには、
# chromium, google-chrome, google-chrome-beta, google-chrome-dev, brave, vivaldi
# を渡せる
programs.chromium = {
enable = true;
commandLineArgs = ["--enable-features=UseOzonePlatfor" "--ozone-platform=x11"];
};
}
- 起動時にChromium flagsを自動で渡してくれるようになる
- programs.<アプリケーション名>のところには、
chromium
google-chrome
google-chrome-beta
google-chrome-dev
brave
vivaldi
を指定できる
[home-manager] Discordの自動アップデート無効化 / 開発者ツール有効化 / フォント変更
home-manager
{
home.file.".config/discord/settings.json".text = ''
{
"SKIP_HOST_UPDATE": true,
"DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING": true
}
'';
programs.discocss = {
enable = true;
css = ''
* {
font-family: "Migu 1P" !important;
-webkit-font-smoothing: subpixel-antialiased;
}
'';
};
}
Discordは~/.config/discord
下にsettings.json
を置くことで諸々の設定を行える。注意点として、settings.jsonの最後にvalueの末尾に,
を付けると、Pythonのライブラリがエラーを起こして起動できない(マジで?)。
discocss
はDiscordにCSSを注入できるツール。Migu 1P
となっているところは、適宜好きなフォントに変えてください。home-managerのprograms.discocss
はデフォルトでdiscordAlias = true;
となっており、勝手にDiscordのパッケージも一緒にインストールしてくる。home.packages
にpkgs.discordが含まれていると、$ home-manager switch
時にエラーを吐く。
[NixOS] Steam
NixOS modules
{
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
};
}
nixos-rebuild
後、Steam Play設定からProtonを有効化するとWindows向けのゲームが遊べる。Protonはすごいので、Windowsとほとんど遜色ないパフォーマンスが出る。
最近EasyAntiCheatシステムがProtonに対応したため、Apex Legendsなども普通に遊べる。
アジア系フォント
wqy_zenhei
というフォントをインストールするとSteamクライアント上で正しく日本語が表示される(ただし中華フォント)。
が、NixOS(というかLinux)でフォント設定を上手くやる方法が分からないため、現在私のsystem-uiの日本語表示がコイツに乗っ取られている。
解決
以下の設定を追加して解決した。システムのデフォルトフォントはNoto Sans CJK JPだが、Steamクライアント(steamwebhelper)だけMigu 1Pというフォントを適用している。
{pkgs, ...}: {
# Fonts
fonts = {
fonts = with pkgs; [
noto-fonts-cjk-serif
noto-fonts-cjk-sans
migu
nerdfonts
twemoji-color-font
];
fontDir.enable = true;
fontconfig = {
defaultFonts = {
serif = [
"Noto Serif CJK JP"
"Twitter Color Emoji"
];
sansSerif = [
"Noto Sans CJK JP"
"Twitter Color Emoji"
];
monospace = [
"JetBrainsMono Nerd Font"
"Twitter Color Emoji"
];
emoji = ["Twitter Color Emoji"];
};
localConf = ''
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<description>Change default fonts for Steam client</description>
<match>
<test name="prgname">
<string>steamwebhelper</string>
</test>
<test name="family" qual="any">
<string>sans-serif</string>
</test>
<edit mode="prepend" name="family">
<string>Migu 1P</string>
</edit>
</match>
</fontconfig>
'';
};
};
}
[Linux] Microsoft Teamsとタイル型ウィンドウマネージャ
問題
DiscordやSlackと同じElectron製アプリケーションの1つでありながら、Microsoftの素晴らしい独自実装によって、タイル型ウィンドウマネージャ上で制御が効かないことが多数報告されている。
解決策
- 代わりに
teams-for-linux
を入れる
非公式クライアントだが、UIは本家Teamsと全く同じなので純粋な代替である。