Arch Linux / Hyprlandの環境にNoctaliaを導入してみました。

環境

  • OS

    項目 内容
    ブートローダ grub
    ルートパーティション ext4
    ディストリビューション Arch Linux
    ディスプレイマネージャ GDM
    ウィンドウマネージャ Hyprland
    デスクトップシェル Noctalia
  • サービス

    項目 内容
    RDPサーバ hypr-rdp
    日本語入力 fcitx5
  • ツール

    項目 内容
    パッケージマネージャ paru
    Hyprland設定ツール HyprMod
  • ソフトウェア

    項目 内容
    シェル fish
    ファイルマネージャ Thunar
    ターミナル Kitty
    ブラウザ google-chrome
    IDE visual-studio-code-bin
    プログラミングフォント HackGen
    メディアプレイヤー Kodi

パッケージの設定

fastfetch

  • インストール
    paru -S fastfetch
  • シンプルなテーマ
    mkdir -p ~/.config/fastfetch
    cd ~/.config/fastfetch
    curl -O https://gist.githubusercontent.com/ktkr3d/40805f88c7c72e67d9da5e28d5118fa8/raw/283833287ef744be0bc0809825f972b59019aa51/config.jsonc

fish

  • プロンプトテーマをインストール
    paru -S fish-pure-prompt eza fastfetch
    set --universal pure_color_current_directory brcyan
  • 設定
    ~/.config/fish/config.fish
    if status is-interactive
    # Commands to run in interactive sessions can go here

    # function
    function fish_greeting
    fastfetch
    end

    function mkcd
    mkdir -p $argv
    and cd $argv[-1]
    end

    # alias
    alias ls='eza -al --color=always --group-directories-first --icons=always' # preferred listing
    alias la='eza -a --color=always --group-directories-first --icons=always' # all files and dirs
    alias ll='eza -l --color=always --group-directories-first --icons=always' # long format
    alias lt='eza -aT --color=always --group-directories-first --icons=always' # tree listing
    alias l.="eza -a | grep -e '^\.'" # show only dotfiles
    alias l='ls'

    # abbr
    abbr -a .. 'cd ..'
    abbr -a ... 'cd ../..'
    abbr -a c 'clear'
    abbr -a h 'history'
    abbr -a vcf 'vi ~/.config/fish/config.fish'

    end

fcitx5

  • インストール

    paru -S fcitx5-im fcitx5-mozc fcitx5-configtool
  • HyprModのAutoStartに追加

    fcitx5 -d
  • HyprModのEnv Variablesに追加

    Name Value
    XMODIFIERS @im=fcitx
    QT_IM_MODULE fcitx
    GTK_IM_MODULE fcitx

hyprpolkitagent

  • インストール
    paru -S hyprpolkitagent
  • HyprModのAutoStartに追加
    /usr/lib/hyprpolkitagent/hyprpolkitagent

hypr-rdp

  • インストール
    paru -S hypr-rdp
  • HyprModのAutoStartに追加
    hypr-rdp -u user -p pass --bind 0.0.0.0:13389
    3389/tcpはGDM/GNOME Shellで使っているので13389/tcpを利用

Kitty

  • インストール
    paru -S kitty ttf-hackgen
  • フォントHackgen Console NFを選択
    kitty +list-fonts

Thunar

  • インストール
    paru -S thunar gvfs-smb thunar-archive-plugin file-roller
  • 設定
    編集 > 設定 > カスタムウィンドウ装飾を使用する : オン
  • Thunarのダイアログをフロートにする
    HyprModのWindow Rulesメニューで以下のルールを追加
    hl.window_rule({
    match = {
    class = "^(thunar)$",
    title = "negative:.*Thunar$",
    },
    float = true,
    })

Noctalia

  • バーウィジェット

    位置 ウィジェット
    Start Launcher
    Center Workspaces
    End Notifications
    Tray
    Date
    Clock
    Battery
    Session
  • スクリプトランチャ

    mkdir -p $HOME/bin/scripts
    ~/.config/noctalia/config.toml
    [shell.launcher.dmenu.entry.run_scripts]
    prefix = "scripts"
    glyph = "file-code"
    command = "find $HOME/bin/scripts -maxdepth 1 -type f -executable -exec basename {} \\;"
    exec = "kitty \"$HOME/bin/scripts/{selection}\""
  • プラグイン

    • bookmarksが便利
      • コード
        https://noctalia.dev/plugins/community/bookmarks
        https://github.com/noctalia-dev/community-plugins/tree/main/bookmarks
      • ブックマークの編集、削除、並び替え
        目のアイコンで編集モードに切り替えます。
      • シェルを起動するターミナルアプリ
        環境変数TERMINALが優先されます。
        HyprMod等で指定します。
        TERMINAL=kitty
        TERM=linux
      • ブックマークを編集するコマンド
        ブックマークデータは以下に保存されます。
        ~/.local/state/noctalia/plugins/data/dunarand/bookmarks/data.json
        data.jsonを整形して編集します。
        TARGET_FILE="$HOME/.local/state/noctalia/plugins/data/dunarand/bookmarks/data.json" ; jq '.' "$TARGET_FILE" > tmp.json && mv tmp.json "$TARGET_FILE" && vim "$TARGET_FILE"
      • ブックマークアイコンの変更
        data.jsonでglyphを指定可能です。
        https://tabler.io/icons

HyprMod

設定ファイル

  • Hyprland
    ~/.config/hypr/hyprland.lua
    -- HyprMod managed settings
    require("hyprland-gui")
  • HyprMod
    ~/.config/hypr/hyprland-gui.lua
    -- Generated by HyprMod

Keybinds

  • 設定(⭐:よく使うもの)

    Mod + Key(s) 内容
    Super Enter kitty
    E⭐ thunar
    T⭐ kitty
    C code
    W⭐ google-chrome-stable
    Z⭐ noctalia settings
    X noctalia control-center
    Space⭐ launcher
    . launcher /emo
    L lock
    ALT+C session menu
    SHIFT+W wallpaper
    V⭐ clipboard
    A notifications
    Q⭐ close window
    ALT+Space floating
    D⭐ fullscreen (mode=1)
    F fullscreen
    J split
    SHIFT + S⭐ special workspace
    S⭐ scratchpad
    M⭐ hyprmod
    K⭐ launcher /scripts
    Print screenshot fullscreen
    - Print screenshot region

デュアルブートWindows

  • Windowsの時刻ずれ防止
    reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f