常にxdg-openをプライベートウインドウのfirefoxで開く方法

ディレクトリ作成

mkdir -p ~/.local/share/applications

雛形をコピー

cd ~/.local/share/applications
cp /usr/share/applications/firefox.desktop firefox-private.desktop

このように編集

f:id:u0_a266:20210629195013p:plain

vim ~/.local/share/applications/firefox-private.desktop

xdg-open時のブラウザをfirefox-private.desktopに設定

xdg-settings set default-web-browser firefox-private.desktop

i3wmは楽しいぞ!

i3wmとはタイリングウィンドウマネージャの一種です

$mod(prefixキー)+Enterでターミナルが起動, $mod+Shift+qでソフト終了, $mod+Shift+rでi3wmを再起動などできます

これはデフォルトですがカスタムキーバインドが自由に設定できます

他のタイリングウィンドウマネージャと違うのはフローティングウィンドウができます

フローティングウィンドウにするには$mod+Shift+spaceでできます

r/unixp*rnでおしゃれなデスクトップが上がってたので興味湧いて使っていましたが他フローティングウィンドウマネージャが触るのがめんどくさくなりました

キーボードで操作できるのがいいですね。ノートパソコンに向いてると思います

i3-gapsのはなし

i3-gapsというforkがあります

Window間の幅が空けられます

幅が開けられて見やすいのでこれがおすすめです

私はこれを使ってます

ArchLinuxならビルドぜずcommunityから入ります!(笑)

debianならRegolith PPAから入ります

sudo add-apt-repository ppa:regolith-linux/release

おすすめパッケージ

  • alacritty: ターミナル, 設定ファイルがyml
  • kitty: ターミナル
  • feh: 壁紙設定
  • nitrogen: 壁紙設定
  • flameshot: スクリーンショット
  • scrot: コマンドラインからスクリーンショット, シンプル
  • gammastep: 画面を暖色にして目に優しく, waylandでも使える
  • redshift:画面を暖色にして目に優しく, X11のみ使える
  • gpicview: 画像ビューア
  • gvfs-mtp: mtpデバイスをファイルマネージャーで操作, Androidなど
  • thunar, pcmanfm, nemo: ファイルマネージャー
  • i3lock: i3wmのためのロック画面
  • betterlockscreen: i3lockよりきれいなロック画面, aurにある
  • i3status: アプレットなどを表示するバー
  • kvantum-qt5: qt5のテーマ群, adaptaなどに似たテーマが入っていた
  • qt5ct: qt5のテーマ設定

QT_QPA_PLATFORMTHEME変数をqt5ctに設定する必要がある

~/.xprofileなどに追記

export QT_QPA_PLATFORMTHEME=qt5ct
  • lxappearance: gtkの設定
  • parcellite: クリップボードマネージャー
  • pavucontrol: pulseaudioをguiで調整
  • picom: コンポジター, ウィンドウ透過が設定できる, これ動かさないと画面がまともに動かないので推奨
  • rofi: dmenuの替え, テーマが豊富なのでカスタマイズがやりやすい
  • rofimoji: rofiで絵文字が打てます, 絵文字フォントが必要だと思われる
  • xfce4-notifyd: xfce4通知デーモン, これがgtkの設定尊重してくれてきれい
  • dunst: 通知デーモン, こっちのほうがシンプルかも
  • xss-lock: 画面の電源が切れた際とsuspendした際にロックしてくれる
  • light: バックライト調整
  • playerctl: 音楽コントロール

設定

ユーザーの設定は~/.config/i3/configです

起動するとウィザードが設定を生成してくれます

最初に$modキーを何にするか聞かれるのでお好みの方を選んでください

おすすめの設定について書きます

altキー

set $alt Mod1

set VAR KEY で変数定義できます

ここでは$altを定義してます

ソフト終了

bindsym $mod+q kill

bindsym KEY BEHAVIORキーバインド設定できます

bindsym KEY exec COMMAND で任意のコマンドをキー割当します

$mod+Shift+qはきついので$mod+qでソフト終了できるようにします

h, j, k, lでウィンドウ移動をできるようにする

bindsym $mod+l focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+h focus right
bindsym $mod+l focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right

垂直分割のキーバインドが衝突するので変更

bindsym $mod+b split h

fehで壁紙を設定

feh --bg-scale ~/Pictures/wallpaper.jpg

で壁紙を設定できます

画像ファイルのパスは書き換えてください

exec --no-startup-id ~/.fehbg

exec --no-startup-id COMMAND自動起動ができます

これをi3/configに書けば永続化できます

ワークスペースを移動

https://raw.githubusercontent.com/benkaiser/i3-wm-config/master/workspace_controller.py

これを~/.config/i3/workspace_controller.pyにダウンロード&配置

$mod+tabで次のワークスペース

$alt+tabで前のワークスペースに移動できます

set $controlw ~/.config/i3/workspace_controller.py
bindsym $mod+Tab exec $controlw next go
bindsym $alt+Tab exec $controlw prev go

/etc/xdg/autostartまたは~/.config/autostartのプログラムが自動起動しない

i3wmは~/.config/autostartの.desktopファイルを自動起動してくれませんので

~/.config/i3/autostart.shに書いて自動起動します

実行権限をつけてあげてください

これはi3/configから起動する必要があります

exec --no-startup-id ~/.config/i3/autostart.sh

私のautostart.shは github.com です

blueberry-tray &bluetoothのトレイを立ち上げています

/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &gnome-polkitを立ち上げています。これがないとgpartedが権限要求できません

/usr/lib/xfce4/notifyd/xfce4-notifyd &はxfce4通知デーモンを起動してます

キーボードで音楽コントロール

bindsym XF86AudioPlay exec playerctl play-pause    
bindsym XF86AudioNext exec playerctl next    
bindsym XF86AudioPrev exec playerctl previous

キーボードでバックライトコントロール

bindsym XF86MonBrightnessUp exec light -A 5        
bindsym XF86MonBrightnessDown exec light -U 5

フローティングウィンドウ

for_window [class="Lxappearance"] floating enable
for_window [class="GParted"] floating enable
for_window [class="Pavucontrol"] floating enable
for_window [class="fcitx5-config-qt"] floating enable
for_window [class="mpv"] floating enable resize set 1000 800
for_window [class="Gnome-system-monitor"] floating enable
for_window [class="Gpicview"] floating enable
for_window [class="Xarchiver"] floating enable

以下のコマンドでWindow classを取得できます

xprop | grep WM_CLASS

i3-gaps独自の設定

gaps inner 14
gaps outer 7
smart_gaps on
for_window [class="^.*"] border pixel 2
focus_follows_mouse no

gaps inner num, gaps outer numでWindowの幅を調整できます

for_window [class="^.*"] border pixel 2はWindowタイトルを消せます

モニター電源が切れた, サスペンドした際にロック

xss-lockはdpmsとsystemd eventに反応してロックプログラムを起動してくれます

~/.config/i3/xss-lock.sh

#!/usr/bin/env sh
xss-lock -n dim-screen.sh -- i3lock -f -c 000000 -n

これも同じく実行権限つけてあげてください

~/.xprofile

xset s 180 120

dpmsの設定ですarchwiki

exec --no-startup-id ~/.config/i3/xss-lock.sh

最後に起動するためにi3/configに追加します

おすすめソフトの設定はこっちに書いてることあるので見てください

u0-a266.hatenablog.com

僕のdotfilesリポジトリです

github.com

君もSwayを使わないか?

と言いながらi3wmから書いてます(笑)

Swayとはwaylandのタイリングウィンドウマネージャです

ja.wikipedia.org

waylandの場合~/.xprofileは読み込まれません

lightdmを使うと読み込まれます

waylandで変数定義するには~/.pam_environmentを使ってください

必要なパッケージ(archlinux)は sway, xorg-xwayland, swayidle, swaylock(locker), grim, slurp, mako, gammastepです

設定は~/.config/sway/configです

i3wmのconfigをコピーしてエラーログ見ながら修正すると楽です

サンプル設定はarchlinuxの場合/etc/sway/configにありますコピーして使ってください

ブラウザはchromiumは推奨されませんfirefoxを使いましょう

i3wm(X11)からソフトウェアの代替

https://github.com/swaywm/sway/wiki/i3-Migration-Guide

に書いてますが実際移行したものを書いていきます

  • light(i3wm) → light(sway) lightくんX11でもwaylandでもバックライト調整できます万能です !

  • xfce4-notifyd(i3wm) → mako

  • feh(i3wm) → sway-output

output * bg ~/Pictures/wallpaper.jpg fill

~/Pictures/wallpaper.jpgに壁紙に設定したい画像があると仮定してます

適当にファイルのパスを書き換えてください

設定に書くと壁紙が設定できます

bindsym $mod+Print exec "slurp | grim -g - ~/ss/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')"

この場合$mod+prtscで選択した範囲のスクリーンショット~/ss/screenshot.pngに保存されます

  • picom / compton / xcompmgr → 入れる必要なし

  • rofi(i3wm) → wofi(sway) ※wofi入れました(2021/5/21)

set $menu "wofi --show drun --allow-images"

デフォルトでdmenuが使われてます

rofi likeなランチャーが使いたいならset $menu ...の部分を変更してください

サンプル設定(https://gitlab.com/chinstrap/gammastep/-/raw/master/gammastep.conf.sample)を~/.config/gammastep/config.iniwget/curl

メソッドをwaylandに変えてください

< adjustment-method=randr
---
> adjustment-method=wayland

設定ファイル形式はredshiftと一緒です.

redshiftの設定コピーしてmethod変えたら動きます

redshiftの設定はhttps://wiki.archlinux.jp/index.php/Redshiftを見てやってください

  • i3status-rust waylandで動くステータスバー, 公式ドキュメントが充実してて設定が楽

サスペンドした際にロック

exec swayidle before-sleep 'swaylock -f -c 000000; swaymsg "output * dpms off"' after-resume 'swaymsg "output * dpms on"'

systemdサポートでビルドされた際に使えます

この例はswaylockを使ってますがお好みのスクリーンセーバーを使ってください

モニターの電源(dpms)も切ってくれます

マシンに触らなかった場合自動でロック

exec swayidle -w \
          timeout 300 'swaylock -f -c 000000' \
          timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' 

この場合5分でロックされ、その後10分後dpmsがオフになります

firefoxを動かす

MOZ_ENABLE_WAYLAND=1 firefox

で起動しますが

~/.pam_environmentに書いて永続化します

echo MOZ_ENABLE_WAYLAND=1 >> ~/.pam_environment

alacrittyで日本語が打てない

qiita.com

に書いてましたありがたいです

xdg-desktop-portal-gtkの起動が失敗する

Home · swaywm/sway Wiki · GitHub

exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK
exec hash dbus-update-activation-environment 2>/dev/null && \
   dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK

gtkテーマが適用されない

#!/bin/sh

# usage: import-gsettings
config="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-3.0/settings.ini"
if [ ! -f "$config" ]; then exit 1; fi

gnome_schema="org.gnome.desktop.interface"
gtk_theme="$(grep 'gtk-theme-name' "$config" | cut -d'=' -f2)"
icon_theme="$(grep 'gtk-icon-theme-name' "$config" | cut -d'=' -f2)"
cursor_theme="$(grep 'gtk-cursor-theme-name' "$config" | cut -d'=' -f2)"
font_name="$(grep 'gtk-font-name' "$config" | cut -d'=' -f2)"
gsettings set "$gnome_schema" gtk-theme "$gtk_theme"
gsettings set "$gnome_schema" icon-theme "$icon_theme"
gsettings set "$gnome_schema" cursor-theme "$cursor_theme"
gsettings set "$gnome_schema" font-name "$font_name"

$PATHの通ったところに置いてください

実行権限も必要です

GTK 3 settings on Wayland · swaywm/sway Wiki · GitHub

exec_always import-gsettings

kdeconnectdが起動に失敗する

~/.config/systemd/user/kdeconnectd.service

[Unit]
Description=Connect your computer to your smartphone or tablet

[Service]
ExecStart=/usr/lib/kdeconnectd
ExecStop=/usr/bin/kquitapp5 kdeconnectd
BusName=org.kde.kdeconnect
Environment=QT_QPA_PLATFORM=offscreen

[Install]
WantedBy=default.target
systemctl --user enable kdeconnectd

floating windowが機能しない

i3wmからswayになってWM_CLASSではなくapp_idを使うようになったようです

for_window [app_id="gpartedbin"] floating enable

例です

swaymsg -t get_tree | grep "app_id"

で起動しているwindowのapp_idが取得できます

xwaylandで起動してるソフトがnullになってたんですが

xprop | grep WM_CLASS

で取得して

for_window [class="Lxappearance"] floating enable

でできました

gpartedが動かない

polkitの権限要求が何故かxwaylandで動かないようです

xhostをインストールして再起動すると動きます

archlinuxではパッケージ名はxorg-xhostです

sudo -E gparted

でも動きます

私の設定はhttps://github.com/u0a266/config/tree/master/dotfiles/.config/swayにあります

僕のdotfilesリポジトリです

github.com

Intel GVT-g

前提条件

linux >= 4.16

qemu >= 2.12

設定

/etc/modprobe.d/i915.conf

options i915 ... enable_gvt=1 ...

/etc/modules-load.d/intel_gvt-g.conf

kvmgt
vfio-iommu-type1
vfio-mdev

/etc/default/grub

GRUB_CMDLINE_LINUX="... intel_iommu=on i915.enable_guc=0 i915.enable_gvt=1 ..."

i915.enable_gvt=1がないと仮想gpuが作成できませんでした(2021/5/14)

grub-mkconfig -o /boot/grub/grub.cfg
reboot
lspci -Dnn|grep VGA
GVT_PCI=0000\:00\:02.0
ls /sys/bus/pci/devices/$GVT_PCI/mdev_supported_types/
GVT_GUID=$(uuidgen)
GVT_PCI=0000\:00\:02.0
GVT_TYPE=i915-GVTg_V5_4
echo "$GVT_GUID"|sudo tee "/sys/bus/pci/devices/$GVT_PCI/mdev_supported_types/$GVT_TYPE/create"
qemu-system-x86_64 \
  -device vfio-pci,sysfsdev=/sys/bus/mdev/devices/$GVT_GUID

 # 参考

kagasu.hatenablog.com

wiki.archlinux.org

Arch LinuxにManjaroのリポジトリを移植

リポジトリをバックアップ

mkdir ~/tmp
cd ~/tmp
cp /etc/pacman.d/mirrorlist .

キャッシュを削除

yes|sudo pacman -Scc

必要パッケージを適当なミラーから落としてインストール

wget http://ftp.riken.jp/Linux/manjaro/stable/community/x86_64/python-npyscreen-4.10.5-5-any.pkg.tar.zst
wget http://ftp.riken.jp/Linux/manjaro/stable/core/x86_64/pacman-mirrors-4.21.0-1-any.pkg.tar.zst
wget http://ftp.riken.jp/Linux/manjaro/stable/core/x86_64/manjaro-keyring-20201216-1-any.pkg.tar.zst
sudo pacman -U *.pkg.tar.zst

バージョンが更新されると404になるので適当にurl置き換えてください

manjaroのミラーリストを生成

sudo pacman-mirrors --country Japan && sudo pacman -Syyu

パッケージのダウングレード

sudo pacman -Qnq|sudo pacman -S - --needed

適当にインストール済みのパッケージ(linux,linux-lts)をmanjaroリポジトリに変えてください

参考リンク

https://blog.fascode.net/2021/01/20/archlinux-move-to-manjaro/

ありがとうございました

ArchLinuxでlibvirtdエラートラブルシューティング

Internal error:Failed to initialize a valid firewall backend

というエラーで仮想NATが起動しませんでした

前まではebtablesを入れることで治りましたが

最近公式リポジトリからebtablesが消滅したのでiptables-nftを入れてください

sudo pacman -S --needed iptables-nft dnsmasq

libvirtdを再起動してください

sudo systemctl restart libvirtd

https://superuser.com/questions/1063240/libvirt-failed-to-initialize-a-valid-firewall-backend

flatpakのフォントが汚かったので変更方法

fontconfig(https://wiki.archlinux.org/index.php/Font_configuration)の設定ファイルをコピーするだけです

~/.var/app/Application ID/config/fontconfig/ # ~/.var/app/us.zoom.Zoom/config/fontconfig/

Application IDはflatpak listで確認できます

私はnoto-cjkの設定ファイルをコピーしてみました

archlinuxの場合は/usr/share/fontconfig/conf.avail/70-noto-cjk.confにあります