ManjaroLinux-KDEのメモ-1

初めに

もし、VirtualBoxでやる場合は、ディスプレイのグラフィックスコントローラーをVboxVGA(5系以前のやつ)にすると画面のリサイズを行ってくれるようになると思います。(自分の設定ミスかもしれませんが)
あと、ArchLinuxとは違いPamacというGUIインストーラーがあることを覚えておくことをお勧めします。Pacmanコマンドは非常に優秀ですが、Pamacの場合、ビルド日等のパッケージ情報をわかりやすく確認できます。

目次

インストール後の設定

時刻設定

KDE

KDEだと時刻設定が自動化されていないので自動にする。
f:id:No000:20200428165213p:plain

圧縮をマルチコアへ

sudo nano /etc/makepkg.conf

COMPRESSXZを以下に変更

COMPRESSXZ=(xz -c -z - --threads=0)

ミラーサーバの調整

sudo pacman-mirrors --fasttrack

Pamacの設定からでもできます。その際は、使用するミラーサーバをJapanにする

Trim機能の有効化

SSDを使用している実機のみです

sudo systemctl enable fstrim.timer
sudo systemctl start fstrim.timer

IMEの導入

Ubuntuのようにjaエディションはないので、自分で入れる必要があります。

sudo pacman -S fcitx-im fcitx-configtool fcitx-mozc

Manjaroで公開されているGUIインストーラーであるPamacの場合だと、Fcitx・Fcitx設定・fcitx-qt5・fcitx-configtool・zinnia・fcitx-mozcがインストールされていました。

f:id:No000:20200421162251p:plain

次に設定を行います。

nano .xprofile

で以下をコピペする

export LANG="ja_JP.UTF-8"
export XMODIFIERS="@im=fcitx"
export XMODIFIER="@im=fcitx"
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export DefaultIMModule=fcitx

次に

nano .bashrc

以下をコピペ

# fcitx
export GTK_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx

ログアウトして再ログインかsourceコマンド(未確認)で設定を反映させれると思います。

KDEシステム設定からFcitxを扱えるようにする

kcm-fcitxをインストール
f:id:No000:20200908161628p:plain

ディレクトリを英語にする

xdg-user-dirs-gtkパッケージをインストールする。

次に、以下のコマンドを実行する

LANG=C xdg-user-dirs-gtk-update

Don`t ask again.にクリックを入れ、update namesを押す

コンソール上での文字化けを防ぐ処理

Ctrl + Alt + F1~nで表示できるコンソールを文字化けしないように、英語表示に変換するようにする設定。
以下を~/.bashrcに記載

case $TERM in  
    linux) LANG=C ;;  
    *) LANG=ja_JP.UTF-8  
esac

KDE

KDEのDolphinのドキュメントとダウンロードが参照できなくなるので、右クリックから再設定してあげてください

言語パッケージをインストールする。

Manjaro setting managerから言語マネージャーを選択し、パッケージのインストールを選択する f:id:No000:20200428165226p:plain これで、libreoffice等が日本語化していると思う。

PamacをAURで使用できるようにする

これに関しては慎重に考えてから実行すること。なぜかはManjaroWikiで説明されているので確認すること

Arch User Repository - Manjaro

Pamacを開き、右上の設定を選択します
f:id:No000:20200421163842p:plain

AURの項目を開きます
f:id:No000:20200421163925p:plain

AURを有効にし、任意の項目をチェックします(項目の選択は自己責任で…)
f:id:No000:20200421164037p:plain

Snapやミラーサーバの設定も行えるようですね。

VScodeのインストール

PamacにおいてAURを有効にした大きな理由です。AURではVScodeの公式パッケージをサポートしています。(Archの公式リポジトリの方はOSSをビルドしたやつです)

f:id:No000:20200421164514p:plain

ここから選択しビルドすればできます。

後は、自由に設定を

VScodeのGit機能を同期する時にエラーがでる問題

f:id:No000:20200812162237p:plain

まずgnome-keyringの導入を行う

f:id:No000:20200812161351p:plain

おそらくこのまま使用するとgnome-keyringのキーリングパスワードを聞かれうっとしいと思われるので、いかの処置を行う。(この時点ではパスワード設定しないこと)
以下のWikiのディスプレイマネージャーを使用するを参照する

GNOME/Keyring - ArchWiki

ManjaroLInux-KDEのデフォルトのマネージャーはSDDMなため以下の場所を使用

ArchWiki:アーカイブ - ArchWiki

こちらの設定の/etc/pam.d/kdeを/etc/pam.d/sddmに読み替えて設定を行う。
以下の画像の選択した部分である。場所は厳密に指定されているため、ArchWikiを読むこと
f:id:No000:20200812162342p:plain f:id:No000:20200812162406p:plain

参照

github.com

github.com

Chrome

AURに公式バイナリがあります。
f:id:No000:20200421165122p:plain

デフォルトのアプリケーションをChromeに変更する際の注意

KDEシステム設定のデフォルトのアプリケーションを変更するだけだと、Chromeの方でデフォルトではないですと言われ続けます。
f:id:No000:20200831113343p:plain

そこで、ファイルの関連付けも変更する必要があるとのこと
以下の場所へ行く
f:id:No000:20200831113510p:plain

以下の設定を f:id:No000:20200831113556p:plain

以下のように変更する
f:id:No000:20200831113631p:plain

参考

gato.intaa.net

Qemu

GNOMEで検証

ArchWikiの説明どうりにインストールすれば問題ない。
f:id:No000:20200422161544p:plain

KDEで検証

対応アーキテクチャを増やすための拡張パック
f:id:No000:20200429012901p:plain

OVMF

GNOMEKDEで検証

Qemu用のUEFIとなる。

/usr/share/ovmf/

の以下に32ビットや64ビット版とわかれて管理されている。

VirtualBox

VMwareは、パッケージだとライセンスキーが必要っぽかったので。
PamacでVirtualBoxと調べると出てくる。
f:id:No000:20200428132841p:plain

オプション
f:id:No000:20200428152404p:plain

その後、使用しているカーネル(uname --allかカーネル設定を見ればわかると思う)に対応したモジュールを選択。
f:id:No000:20200428152535p:plain

その後、リブートするかsudo vboxreloadを実行し、モジュールを読み込む

最後に、Vboxuseraグループにユーザーを追加

sudo gpasswd -a $USER vboxusers

VirtualBox拡張パックに関して

AURにあるので、Pamacでvirtualbox-ext-oracleと検索すればある。
f:id:No000:20200428154320p:plain

以下の表示があればインストール成功
f:id:No000:20200428154353p:plain

参考

以下のページが参考となります。

VirtualBox - Manjaro

VirtualBox - ArchWiki

Clang+lldのインストール

UEFIアプリケーションへのクロスコンパイル用のmingwのインストールがめたっくそめんどくさい上に大変そう(個人的感覚)なので、Clangで代替えをします。

インストール

Pamacで
clang
f:id:No000:20200503173126p:plain

ldd
f:id:No000:20200503173146p:plain

をインストールします。

コンパイルオプション

UEFIアプリケーションのコンパイルは(あくまでも参考文献からの引用なので、しっかり調べた方がよき?)

clang -target x86_64-pc-win32-coff -fno-stack-protector -fshort-wchar -mno-red-zone -nostdlibinc -Wall -Wpedantic -c -o efimain.o main.c

リンク

lld-link  -subsystem:efi_application -nodefaultlib -dll -entry:efi_main efimain.o -out:BOOTX64.EFi

で行けました。
f:id:No000:20200503173426p:plain

参考+引用文献

docs.google.com

SDDMにKDEのカラーテーマやマウステーマを反映させる方法

まずカラーテーマ等一式を設定する。

直観的にわかると思う。

KDE設定からSDDMで検索をかける。

以下の中で同期をするを選択する。
f:id:No000:20200723110051p:plain

GIMPのインストール

Pamacより
f:id:No000:20200803223856p:plain
インストール後、言語パッケージを上の方で述べたように記入を行えばできる。

Krita

AURや公式リポジトリにないので、Flatpakからインストールを行う
まず以下の場所をONにして、パッケージマネージャが使えるようにする。
f:id:No000:20200803224616p:plain

あったわ...
f:id:No000:20200803224834p:plain
以下のようにインストールできます。
f:id:No000:20200803225228p:plain

gdbのインストール

Pamacからインストール
f:id:No000:20200813010703p:plain

gdb-pedaのインストール

二種類方法がある。個人的にはgit cloneしたものを使った方がいいかも

git clone

ページ先のインストール方法に従えばいい

github.com

AURから

Manjaroの公式リポジトリはエラーが多発したためAURから(しかしAURも最終更新が2016年なので、わからん...) f:id:No000:20200813010957p:plain

その後.gdbinitに以下を記載

source /usr/share/peda.py

Python関連でエラーをはかれた場合

Python2をインストールすれば治るかもしれない
f:id:No000:20200813011652p:plain

Yakuakeのショートカット

タブを増やす・・・Shift+Cttl+T
タブを消す・・・Shift+Ctrl+W
タブを移動・・・Shift+<矢印キー>

Bash

プロンプト

以下のように設定した
GIt status用関数(プロンプトを定義する前に必須)

function parse_git_branch {
   git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}

通常ユーザー

export PS1='\[\e[0;1;3;38;5;77m\]\u\[\e[0m\]:\[\e[0;1;2;4;53;38;5;32m\]\A\[\e[0m\][\[\e[0;1;38;5;133m\]\w\[\e[0m\]]\[\e[m\]\n\[\e[0;1;33m\]$(parse_git_branch)\[\e[0;5;38;5;160m\]\$\[\e[0m\]>\[\e0'

ルートユーザー

PS1='\[\e[0;1;3;91m\]\u\[\e[0m\]:\[\e[0;1;4;53;95m\]\A\[\e[0m\][\[\e[0;1;92m\]\w\[\e[0m\]]\[\e[m\]\n\[\e[0;5;91;102m\]\$\[\e[0m\]>\[\e0

Halloween Bash Profile Generator

fzf

あいまい検索用のツール。これを利用することで、altcdや履歴検索、ファイルサーチに役立つ。それだけでなく、自前で関数を用意すればいろんなことができる。
f:id:No000:20200912222529p:plain カスタマイズする上で追加したアプリケーション

  • ripgrep
  • exa

.bashrcに以下を追記

# fzf
source /usr/share/fzf/completion.bash && source /usr/share/fzf/key-bindings.bash
export FZF_ALT_C_OPTS="--preview 'exa -T {} | head -200' --bind alt-j:preview-down,alt-k:preview-up"
export FZF_DEFAULT_COMMAND='rg --files --hidden --glob "!.git/*"'
export FZF_CTRL_T_COMMAND='rg --hidden --no-ignore --files --glob "!.git/*"'        # Ctrl-tのコマンド上書き
export FZF_CTRL_T_OPTS='--bind ctrl-t:down,space:toggle'

zsh

プロンプト

Zsh Prompt Generator

KDEのカレンダーをGoogleカレンダーと同期

まず初めにKOrganizer をインストール
f:id:No000:20200917122436p:plain optionの方もとりあえずインストール

Dolphinのショートカット

KDEのファイルマネージャー

キー 内容
Shift + F4 ターミナルを開く
F10 フォルダの新規作成

ターミナルのショートカットキー

キー 内容
Ctrl + u 行頭まで削除
Ctrl + k 行末まで削除
ctrl + w ワード単位で行頭方向の文字列を削除
Ctrl + r コマンド履歴の検索

Krunnerの起動方法

アプリケーションの検索を早くできる。
起動

Alt+Space

閉じる

Esc

Kwinの便利なショートカット

タイル化・・・Meta+<方向キー>
ウィンドウを最大化・・・Meta+W

ティアリングが発生した場合の修正

コンポジタの拡大方法を鮮明に変更したら治りました。謎...
f:id:No000:20200805203606p:plain なんか再起動すると少し不安定になったので、正確に選択してから鮮明に戻すと治りました。(時間経過?偶然?設定ファイルの読み直し?)
ここの「コンポジタを起動時に有効にする」をしたらティアリングがほぼ解消した。

ウィンドウキャプチャソフト

vokoscreenNGというソフトウェアにしました。Pamacで公式リポジトリにvokoscreenとしてあります。
f:id:No000:20200807031439p:plain

システムがクラッシュした際

難解だけどここを参照するのがいいかも!

システムメンテナンス - ArchWiki

セキュリティ

gufwのインストール

xfce

既にインストールされています

KDE

Pamacでgufwって調べれば出る

Statusをポチッと押せば起動する
詳しくは、ArchWikiを...
ファイアウォール - ArchWiki

Uncomplicated Firewall - ArchWiki

ufw

Pamacでインストール
f:id:No000:20200907164037p:plain

インストール後サービスを有効化する

sudo systemctl start ufw
sudo systemctl enable ufw

初期設定

ufw default deny incoming
ufw default allow outgoing

その後ログをオフにするために

ufw logging off

設定が終わったので、ufwを有効にする

sudo ufw enable

KDEconnectへの対応

以下のコマンドでポート開放をする

ufw allow 1714:1764/udp
ufw allow 1714:1764/tcp
ufw reload

clamAV

フリーのアンチウイルスソフト
Pamacより以下をインストール
f:id:No000:20200917115905p:plain

まず、データベースの更新を行う。その際にWarrningが出るが無視(正常な反応だが、先にデータベースを更新しないと不具合が発生するそうなので)

sudo freshclam

次に、各種デーモンの立ち上げを行う。

sudo systemctl enable --now clamav-daemon
sudo systemctl enable --now clamav-freshclam

デーモンのステータスの確認

sudo systemctl status clamav-daemon && sudo systemctl status clamav-freshclam

あとはウイルス定義データベースの確認

freshclam -V

スキャン方法

homeディレクトリをスキャンするには

clamscan --infected --recursive /home

30GBで11分くらいでした。 他にも、スキャンのファイルサイズの上限指定、特定ディレクトリの除外、ウイルスを発見時の挙動をオプションで設定できるので

man clamscan

した方がいいかも?

参考

ClamAV - Manjaro

ClamAV - ArchWiki

小ネタという便利なものまとめ

ネットワークの通信を確認

ssコマンドを使用する。netstatコマンドの後継のような存在。 TCPの場合

ss -npt

UDPの場合

ss -npu

プロセスIDの確認

ps -p <psid>

実行されているサービスの確認

sudo systemctl list-unit-files --type=service

特定のサービスを探したいときは

sudo systemctl list-unit-files --type=service | grep <サービス名>

Windowの左上にある四角いやつ

すべてのデスクトップに共有される。
外付けディスプレイで発表とかで、瞬時に表示できて役に立ちそう?

トラブルシューティング

pamacでAURのビルドに失敗する場合

ビルド中に中止をしてダウンロードしたファイルがあるけど、削除されてない可能性がある。
以下の右下のビルドファイルを空にするを行う。
f:id:No000:20200919111629p:plain

emacsemacs-mozcにする

そのままだとmozcと競合するので以下にPKGBLDファイルを変更する

このビルドファイルはあっている保障はないので自己責任で。

# Maintainer: ponsfoot <cabezon dot hashimoto at gmail dot com>

## If you will be using mozc.el on Emacs, uncomment below.
_emacs_mozc="yes"

## If you will not be using ibus (only use uim), comment out below.
#_ibus_mozc="yes"

## If you do not want to add Japanese zip code into dictionary,
## comment out below.
_zipcode="yes"

## Mozc compile option
_bldtype=Release
#_bldtype=Debug

#*************************************************************
# Upstreams:
#
# mozc
# http://code.google.com/p/mozc/
#
# Japanese zip code data by Japan Post (Public Domain)
# http://www.post.japanpost.jp/zipcode/download.html
#
# Modified Japanese zip code data by Ibs (Public Domain)
# http://zipcloud.ibsnet.co.jp/
#*************************************************************

_zipcoderel=201811
_mozcrev=afb03ddfe72dde4cf2409863a3bfea160f7a66d8

pkgbase=mozc
pkgname=my-mozc
true && pkgname=('my-mozc')
pkgver=2.23.2815.102
pkgrel=3
arch=('i686' 'x86_64')
url="http://code.google.com/p/mozc/"
license=('BSD' 'custom')
makedepends=('python2' 'git' 'ninja' 'clang' 'qt5-base')
#source=("${_svndir}/${_svnmod}::svn+${_svntrunk}"
source=(
  mozc::git+https://github.com/google/mozc.git#commit=${_mozcrev}
  https://osdn.net/projects/ponsfoot-aur/storage/mozc/x-ken-all-${_zipcoderel}.zip
  https://osdn.net/projects/ponsfoot-aur/storage/mozc/jigyosyo-${_zipcoderel}.zip
  https://gist.githubusercontent.com/MightyPork/6b93f56b404e526268ac133f1a783afd/raw/40b3b9569d4b0741d78c511b247b26d2b1e7a2ae/mozc.patch
)
sha1sums=('SKIP'
          'c274abcc6d259dae8dae121408c25fff19052585'
          '6187d52063d5ddf8cb7ed060cfff03cf91ed45cf'
          'a366077418ae6f235aecf374256354a40dc5b37a')


if [[ "$_emacs_mozc" == "yes" ]]; then
  true && pkgname+=('emacs-mozc')
  makedepends+=('emacs')
fi

if [[ "$_ibus_mozc" == "yes" ]]; then
  true && pkgname+=('ibus-mozc')
fi


pkgver() {
  . "${srcdir}/${pkgbase}/src/data/version/mozc_version_template.bzl"
  printf "%s.%s.%s.%s" $MAJOR $MINOR $BUILD $REVISION
}


prepare() {
  ln -sf `which python2` "${srcdir}/python"

  cd "${srcdir}/${pkgbase}/"

  git submodule update --init --recursive

  cd "${srcdir}/${pkgbase}/src/"

  # Generate zip code dictionary seed
  if [[ "$_zipcode" == "yes" ]]; then
    msg "Generating zip code dict seed..."
    cd "$srcdir"
    PYTHONPATH="${PYTHONPATH}:${srcdir}/${pkgbase}/src/" \
              python2 mozc/src/dictionary/gen_zip_code_seed.py \
              --zip_code=x-ken-all.csv \
              --jigyosyo=JIGYOSYO.CSV \
              >> "${srcdir}/${pkgbase}/src/data/dictionary_oss/dictionary09.txt"
    msg "Done."
  fi

  patch -Np0 -i "${srcdir}/mozc.patch"

}


build() {
  msg2 '====================================================='
  msg2 '               *** Build Info ***'
  msg2 ' The following package files will be generated:'
  for _p in ${pkgname[@]}
  do
    msg2 "  * ${_p}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}"
  done
  msg2 '====================================================='

  PATH="${srcdir}:${PATH}"

  cd "${srcdir}/${pkgbase}/src"

  msg "Starting make..."

  _targets="server/server.gyp:mozc_server gui/gui.gyp:mozc_tool "
  [[ "$_emacs_mozc" == "yes" ]] && _targets+="unix/emacs/emacs.gyp:mozc_emacs_helper "
  [[ "$_ibus_mozc" == "yes" ]] && _targets+="unix/ibus/ibus.gyp:ibus_mozc renderer/renderer.gyp:mozc_renderer "

  unset CC CC_host CC_target CXX CXX_host CXX_target LINK AR AR_host AR_target \
        NM NM_host NM_target READELF READELF_host READELF_target
  GYP_DEFINES="document_dir=/usr/share/licenses/${pkgbase}" \
    python2 build_mozc.py gyp --target_platform=Linux
  python2 build_mozc.py build -c $_bldtype $_targets

  if [[ "$_ibus_mozc" == "yes" ]]; then
      sed -i 's|/usr/libexec/|/usr/lib/ibus-mozc/|g' \
          out_linux/${_bldtype}/gen/unix/ibus/mozc.xml
  fi

}

package_my-mozc() {
  pkgdesc="A Japanese Input Method for Chromium OS, Windows, Mac and Linux (the Open Source Edition of Google Japanese Input)"
  arch=('i686' 'x86_64')
  groups=('mozc-im')
  # depends=('qt5-base' 'zinnia')
  # replaces=('mozc-server' 'mozc-utils-gui')
  # conflicts=('mozc-server' 'mozc-utils-gui')
  optdepends=('tegaki-models-zinnia-japanese: hand-writing recognition support')

  #cd "${srcdir}/${pkgbase}/"
  #install -D -m 755 src/out_linux/${_bldtype}/mozc_server "${pkgdir}/usr/lib/mozc/mozc_server"
  #install    -m 755 src/out_linux/${_bldtype}/mozc_tool   "${pkgdir}/usr/lib/mozc/mozc_tool"

  #install -d "${pkgdir}/usr/share/licenses/mozc/"
  #install -m 644 LICENSE src/data/installer/*.html "${pkgdir}/usr/share/licenses/mozc/"
}

package_ibus-mozc() {
  pkgdesc="IBus engine module for Mozc"
  arch=('i686' 'x86_64')
  groups=('mozc-im')
  depends=("mozc=${pkgver}" 'ibus>=1.4.1')

  cd "${srcdir}/${pkgbase}/src"
  install -D -m 755 out_linux/${_bldtype}/ibus_mozc       "${pkgdir}/usr/lib/ibus-mozc/ibus-engine-mozc"
  install -D -m 644 out_linux/${_bldtype}/gen/unix/ibus/mozc.xml "${pkgdir}/usr/share/ibus/component/mozc.xml"
  install -D -m 644 data/images/unix/ime_product_icon_opensource-32.png "${pkgdir}/usr/share/ibus-mozc/product_icon.png"
  install    -m 644 data/images/unix/ui-tool.png          "${pkgdir}/usr/share/ibus-mozc/tool.png"
  install    -m 644 data/images/unix/ui-properties.png    "${pkgdir}/usr/share/ibus-mozc/properties.png"
  install    -m 644 data/images/unix/ui-dictionary.png    "${pkgdir}/usr/share/ibus-mozc/dictionary.png"
  install    -m 644 data/images/unix/ui-direct.png        "${pkgdir}/usr/share/ibus-mozc/direct.png"
  install    -m 644 data/images/unix/ui-hiragana.png      "${pkgdir}/usr/share/ibus-mozc/hiragana.png"
  install    -m 644 data/images/unix/ui-katakana_half.png "${pkgdir}/usr/share/ibus-mozc/katakana_half.png"
  install    -m 644 data/images/unix/ui-katakana_full.png "${pkgdir}/usr/share/ibus-mozc/katakana_full.png"
  install    -m 644 data/images/unix/ui-alpha_half.png    "${pkgdir}/usr/share/ibus-mozc/alpha_half.png"
  install    -m 644 data/images/unix/ui-alpha_full.png    "${pkgdir}/usr/share/ibus-mozc/alpha_full.png"

  install -D -m 755 out_linux/${_bldtype}/mozc_renderer "${pkgdir}/usr/lib/mozc/mozc_renderer"
}

package_emacs-mozc() {
  pkgdesc="Mozc for Emacs"
  arch=('i686' 'x86_64')
  groups=('mozc-im')
  depends=( 'emacs') # del "mozc=${pkgver}"
  replaces=('emacs-mozc-bin')
  conflicts=('emacs-mozc-bin')
  install=emacs-mozc.install

  cd "${srcdir}/${pkgbase}/src"
  install -D -m 755 out_linux/${_bldtype}/mozc_emacs_helper "${pkgdir}/usr/bin/mozc_emacs_helper"
  install -d "${pkgdir}/usr/share/emacs/site-lisp/emacs-mozc/"
  install -m 644 unix/emacs/mozc.el "${pkgdir}/usr/share/emacs/site-lisp/emacs-mozc"
}

# Global pkgdesc and depends are here so that they will be picked up by AUR
pkgdesc="A Japanese Input Method for Chromium OS, Windows, Mac and Linux (the Open Source Edition of Google Japanese Input)"
# depends=('qt5-base' 'ibus>=1.4.1' 'zinnia')

参考

in-my-mind.hatenablog.jp