先日の鹿児島Linux勉強会のアフターでコンビニエンスストアのセブンイレブンの多くの店舗でアップル製品やANKER製品の取り扱いがあると聞いたので覗いてきました.
カテゴリー: 未分類
Barrierで装飾キーがロックされるのを解除する
Barrierというマルチプラットホームのキーボードマウス共有ソフトを常用しています.1台の端末のキーボードマウスで複数のマシンを操れます.Synergyのフォークです.
最近1台の端末をDebian Bullseye + i3wm にしてみたのですが,どうもキーボードがおかしくなります.CtrlやSuperが押しっぱなしになります.
以前から別のマシンでこの症状は出ていましたが今回は頻度がとても多くまともに動くことのほうが少ないです.これまでXorgを再起動して解決していましたが面倒すぎます.
ISSUEを探すと出てきました.未解決のようです(◞‸◟)
でもワークアラウンドがあったので試してみました.
Nextcloudでurl共有したpdfをwebに埋め込みたい
スライドやドキュメントを共有するのにSpeakerDeckやedockrを使っています.(SlideShareは無料アカウントで再アップロードができなくなってしまってから使わなくなりました.)
SpeakerDeckの無料での制限で100アップロードまででそろそろいっぱい,edockrはしばらくしたら消えてしまうということを最近知りました.
@edocr Uploaded documents are disappearing by themselves. Is this a specification of the Free plan?https://t.co/3X6WwOYcID
— matoken (@matoken1) March 5, 2021
Yes, sorta. There are 3 parts of the edocr service: Sharing, SEO indexing & Storage. Sharing is free. So, inactive documents in free accounts are deleted over time by our algorithms. The cost of Premium is so low we assume if people cared they would sign up. <9 cents/doc/year.
— edocr (@edocr) March 5, 2021
pdfファイルを共有するだけならNextcloudでのURL共有を使えばいいのですが,webに埋め込むことが出来ません.Nextcloudの機能やアプリにそういったものがあるといいのですが,セキュリティの問題から実装されていません.
とりあえず雑な方法ですが,こんな感じで実現してみました.
Nextcloud URL共有リンクからpdfファイルを出力する
Nextcloudの公開URLの内容をpdfとして出力します.実行権を付けてcgiとして設定します.
#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
use IO::Handle;
STDOUT->autoflush(1);
$ARGV[0] = "" unless defined $ARGV[0];
my $url = $ARGV[0];
if( $url !~ /\/download$/ ){
$url = $url . "/download";
}
print "Content-Type: application/pdf\n\n";
getprint($url);とりあえずこんな感じでcgiの後ろにNextcloud公開URLを付けてアクセスするとブラウザでpdfを見ることができるようになりました.
embedタグでwebに埋め込む
上で作ったcgiをobjectタグで埋め込んでみるととりあえず埋め込みが出来ました.このとき height は % を指定してもサイズが変わらないようでした.(Debian sid amd64 の chromium 88.0.4324.146-1, firefox 86.0.1-1 で確認)
<embed src="http://cgi.example.com/pdf.cgi?http://nextcloud.example.com/index.php/s/XXXXXXXXXXXXXXX" type="application/pdf" width="640px" height="480px">
とりあえずそれっぽいことは出来ましたが,この方法ではpdfを読まなくてもページ読み込み時にpdfを全部読み込んでしまうようなのであまりよろしくない感じです.このあたりはSpeakerdeckなどはちゃんとしてていいですね.
とりあえずはリンクで共有かな?
HAPPY MOO YEAR
$ echo && figlet ' 2 0 2 1' | lolcat && apt --color moo moo 2>/dev/null | sed -e 's/Have you mooed today?/Happy MOO Year!/' && echov4l2loopbackモジュールで作られるビデオデバイスへの名前の付け方
v4l2loopback moduleを利用して仮想カメラなどを利用しています.
このモジュールを呼び出すときにオプションを指定して複数のデバイスにしたり,それぞれにデバイスに名前をつけたり出来ます.
If you need several independent loopback devices, you can pass the “devices” option, when loading the module; e.g.
# modprobe v4l2loopback devices=4
Will give you 4 loopback devices (e.g. /dev/video1 … /dev/video5)You can also specify the device IDs manually; e.g.
# modprobe v4l2loopback video_nr=3,4,7
Will create 3 devices (/dev/video3, /dev/video4 & /dev/video7)# modprobe v4l2loopback video_nr=3,4,7 card_label=”device number 3″,”the number four”,”the last one”
Will create 3 devices with the card names passed as the second parameter:/dev/video3 → device number 3
/dev/video4 → the number four
/dev/video7 → the last one
お手本通りモジュールを呼び出すと,
$ sudo modprobe v4l2loopback video_nr=3,4,7 card_label="device number 3","the number four","the last one"
想定通りに設定されました.(最後のIntegrated Cameraは内蔵カメラでこのモジュールとは無関係)
$ v4l2-ctl --list-devices
device number 3" (platform:v4l2loopback-000):
/dev/video3
"the number four" (platform:v4l2loopback-001):
/dev/video4
"the last one (platform:v4l2loopback-002):
/dev/video7
Integrated Camera: Integrated C (usb-0000:00:1a.0-1.6):
/dev/video0
/dev/video1
/dev/media0しかしこの設定を永続化しようと,
/etc/modprobe.d/v4l2loopback.conf
というファイルを用意してこの設定を書いて呼び出すとおかしなことになります.
$ sudo rmmod v4l2loopback (1)
$ echo 'options v4l2loopback video_nr=3,4,7 card_label="device number 3","the number four","the last one"' | sudo tee /etc/modprobe.d/v4l2loopback.conf (2)
options v4l2loopback video_nr=3,4,7 card_label="device number 3","the number four","the last one"
$ sudo modprobe -v v4l2loopback (3)
insmod /lib/modules/5.10.0-1-amd64/updates/dkms/v4l2loopback.ko video_nr=3,4,7 card_label="device number 3","the number four","the last one"
$ v4l2-ctl --list-devices | grep v4l2loopback -A1 (4)
device number 3" (platform:v4l2loopback-000):
/dev/video3
--
"the number four" (platform:v4l2loopback-001):
/dev/video4
--
"the last one (platform:v4l2loopback-002):
/dev/video7- モジュールのアンロード
- 設定ファイルへ書き込み
- モジュールの再読込
- デバイス名の確認
ダブルクオーテーションの扱いが変わってしまうようです.更に名前自体にダブルクオーテーションが含まれてしまいます.
とりあえず全体を1セットのダブルクオーテーションで囲むと大丈夫なようです.
$ echo 'options v4l2loopback video_nr=3,4,7 card_label="device number 3,the number four,the last one"' | sudo tee /etc/modprobe.d/v4l2loopback.conf
options v4l2loopback video_nr=3,4,7 card_label="device number 3,the number four,the last one"
$ sudo modprobe -v v4l2loopback
insmod /lib/modules/5.10.0-1-amd64/updates/dkms/v4l2loopback.ko video_nr=3,4,7 card_label="device number 3,the number four,the last one"
$ v4l2-ctl --list-devices | grep v4l2loopback -A1
device number 3 (platform:v4l2loopback-000):
/dev/video3
--
the number four (platform:v4l2loopback-001):
/dev/video4
--
the last one (platform:v4l2loopback-002):
/dev/video7ちなみにダブルクオーテーションなしだとこうなりました.
$ sudo modprobe -v v4l2loopback
insmod /lib/modules/5.10.0-1-amd64/updates/dkms/v4l2loopback.ko video_nr=3,4,7 card_label=device number 3,the number four,the last one
$ v4l2-ctl --list-devices | grep v4l2loopback -A1
device (platform:v4l2loopback-000):
/dev/video3
--
Dummy video device (0x0001) (platform:v4l2loopback-001):
/dev/video4
--
Dummy video device (0x0002) (platform:v4l2loopback-002):
/dev/video7最近リリースされた OBS Studio 26.1でLinux版, macOS版にも仮想カメラ機能が入りました.
これも v4l2loopback を利用しているのですが,ダブルクオーテーションが含まれる場合うまく動かないようです.
$ dpkg-query -W v4l2loopback-* v4l-utils v4l-utils 1.20.0-2 v4l2loopback-dkms 0.12.5-1 v4l2loopback-modules v4l2loopback-utils 0.12.5-1 $ lsb_release -dr Description: Debian GNU/Linux bullseye/sid Release: unstable $ uname -mv #1 SMP Debian 5.10.4-1 (2020-12-31) x86_64
Byobu tmuxでファンクションキーを無効にする
アドホックに切り替える
Ctrl+b shift + F12 でトルグ
設定ファイルに設定する
~/.byobu/keybindings.tmux の1行目に
source /usr/share/byobu/keybindings/f-keys.tmux.disable を追記.
Byobu tmuxを起動し直すか,Ctrl+b : :source-file ~/.byobu/keybindings.tmux で反映する.
Byobu GNU screenの場合はこちら
$ dpkg-query -W byobu tmux byobu 5.133-1 tmux 3.1b-1 $ lsb_release -dr Description: Debian GNU/Linux bullseye/sid Release: unstable $ uname -m x86_64
SteamのOSごとのアプリケーション数を確認してみる
あるPodcastでSteamのLinuxアプリは1割位ではという話があったのですが,そんなに少なくないだろうでもどのくらいだろう?と実際のところ知らなかったので確認してみました.
確認にはSteam検索の検索結果を使いました.
https://store.steampowered.com/search/
こんな感じのscriptを用意して,
#!/bin/bash
# Steam検索
# https://store.steampowered.com/search/
# ignore_preferences=1 個人設定に基づいたタイトルの除外の無効化
# https://store.steampowered.com/search/?ignore_preferences=1
# Windowsの検索
# https://store.steampowered.com/search/?ignore_preferences=1&os=win
# Mac OS Xの検索
# https://store.steampowered.com/search/?ignore_preferences=1&os=mac
# SteamOS + Linuxの検索
# https://store.steampowered.com/search/?ignore_preferences=1&os=linux
SERCH="https://store.steampowered.com/search/?ignore_preferences=1&os="
OSTYPE=("all" "win" "mac" "linux")
MATCH="results match your search."
declare -A COUNT
for OS in "${OSTYPE[@]}"
do
COUNT[$OS]=$(LC_ALL=en_US.UTF-8 w3m -dump "$SERCH$OS" | grep "$MATCH" | cut -f1 -d' ' | tr -d ,)
echo $OS,${COUNT[$OS]},$(awk "BEGIN { print ${COUNT[$OS]}/${COUNT[all]}*100 }")%
done実行します.
$ bash ~/src/steamcount.bash
all,79831,100%
win,79654,99.7783%
mac,25443,31.8711%
linux,15673,19.6327%Linuxの検索結果は15673本で,全体の19.6%でした.もっと多いと思いましたが案外少ないですね.
恐らく検索する範囲を近年にしたり,Windows用のアプリケーションをLinux環境で動かすProtonに対応したアプリケーションも入れるともっと多くなるのではないかと思うのですが,Steam検索ではその検索方法がわかりませんでした.
ちなみに以下は2015年3月の記事ですが,この記事によると2013年には50本,2014年に500本,(恐らく)2015年3月には1004本.このときに比べると現在の15673本というのはすごく増えている感じです.
SteamがこのLinuxベースのゲームOSをローンチしたのは2013年で、そのときはわずか50のゲームがあり、1年後には500タイトルに達した。今現在、ゲーム数は1004で、DLCなどのダウンロードするコンテンツや拡張パックも含めると1835になる。
新しいゲームならLinux対応が多いと思いリリースが新しい順にソートしてみるとWindowsのみ対応のアプリが多いですね.今見ると最新から14本はWindowsのみ対応.15本目にやっとWindows/Mac/Linuxに対応したゲームがでてきました.
Windows専用アプリケーションでもLinux版SteamのProtonで動かせたり,Protonで動かないのもでも別途Wine経由で動かせるものもあります(Lutrisを使うと便利).
関連記事
Speaker Deckのスライドが全て非公開になって困る
Speaker Deckというスライド共有サービスがあります.日本ではSlideShareの次くらいによく使われていそうなサービスです.ここでトラブルがあったので健忘録としてメモしておきます.
このサービスにスライドを登録しようとアップロードしたところ変換に失敗してしまいます.スライドのデータが悪いのかな?と他のものも試すとやはり駄目です.
よく見ると5月以降に登録したスライドはアクセスが0です.なにかおかしい.
ログアウトした状態で見るとスライドが1つも見えなくなってしまっています.
既存のスライドを公開(publish)し直しても公開されません.
全てのスライドが非公開になっている,ログインしたら見えるけど公開できない,新しいスライドの登録は失敗する……という状態です.
DMCAとか著作権違反とかが報告されてロックされていそうな感じがします(心当たりはないけど他のサービスもそれでBANされた前科あり).メールを探しますが特にそれらしいものは見当たりません.
ちょっと自分ではどうしようもなさそうだとSpeaker Deckの「Feedback」リンクからメールで問い合わせてみました.しかし反応がありません.
ダメ元でTwitterのSpeaker Deckアカウントである@speakerdeckにmentionを投げてみると数時間で復旧していました.
スライドはちゃんと公開され,新しいスライドのアップロードも出来ました.ということでよくわかりませんがシステムの不具合だったのかな?
やっぱり人任せにするのは怖いですね.自分でコントロールできるところでもまとめておこうと思います.
Lutrisを使ってLinuxでもEpic Gamesで遊ぶ
Epic Games というゲームプラットホームがあります.定期的にゲームを無料配布してくれるのでたまに貰っています.
しかしこのプラットホームは Stream や itch などと違い PC/Mac のみの対応で Linux には対応していません.
Epic Games Storeはどのプラットフォームに対応していますか?
Epic Games Storeは、現在PCとMacに対応しています。各タイトルのプラットフォームとの互換性については、製品ページの「ゲームについて」で確認することができます。
無料で貰っても遊ばないと意味がないです.
そういえば Lutris 経由で動かないかな?と思いつきました.Lutris はLinux 環境で各種プラットホームのゲーム環境を管理できて,複数のWine 環境を簡単に導入設定できたりして便利です.ここで貰ったゲームが出てきたらお手軽に遊べそうです.
Lutris についての詳細は以下のスライドもどうぞ.
ゲームの前に Lutris で Epic Games で検索すると Epic Games が出てきました.「Install」ボタンを押してウィザードに従うだけで簡単に導入できました.
後は Epic Games でゲームをインストールしてみると起動しました :)
思ったより手軽に遊べそうです.
しかし暖かくなって排熱が追いつかない感じでちょっと辛い今日この頃です.
Epic Gamesでたまに無料ゲーム貰ったりしてるけどそもそもLinux版clientが無いんですよね……
てことでLutris見たらEpicあったので動かしてみる
簡単に動いてゲームも動いたけどPCがプアなので重かったLutrisの紹介はこのあたりを
“ゲーミングプラットホームのLutris紹介” https://t.co/1STVioY7CP pic.twitter.com/kQN7vfskmp— matoken (@matoken1) June 5, 2020
//
$ apt show lutris Package: lutris Version: 0.5.6 Priority: optional Section: games Maintainer: Mathieu Comandon <strider@strycore.com> Installed-Size: 4,035 kB Depends: python3-evdev, python3-gi, python3-requests, python3-yaml, python3:any, python3-pil, python3-setproctitle, python3-distro, gir1.2-gtk-3.0, gir1.2-gnomedesktop-3.0, gir1 .2-webkit2-4.0, gir1.2-notify-0.7, psmisc, cabextract, unzip, p7zip, curl, fluid-soundfont-gs, x11-xserver-utils, mesa-utils Recommends: gvfs-backends, libwine-development, winetricks, libc6-i386, lib32gcc1 Suggests: gamemode Homepage: https://lutris.net Download-Size: 1,690 kB APT-Manual-Installed: yes APT-Sources: http://download.opensuse.org/repositories/home:/strycore/Debian_Unstable Packages Description: open source gaming platform Lutris goal is to make gaming on Linux as easy as possible by taking care of installing and setting up the game for the user. The only thing you have to do is play the game. It aims to support every game that is playable on Linux. $ lsb_release -dr Description: Debian GNU/Linux bullseye/sid Release: unstable $ uname -m x86_64
Devuan Ascii から Beowulf にアップグレード
祝Devuan Beowulf 3.0.0 released.
ということで,Debian BusterベースのDevuan Beowulf がリリースされました.
Devuan はDebian ベースの脱Systemd なディストリビューションです.Debianでも今の所Systemd を避けることは出来ると思いますが既定値はSystemd です.
手元のi686マシンにDevuan 1 JessieからDevuan 2 Ascii にしたマシンがあるのでこれをBeowulf にアップグレードしてみました.
アップグレードにはDebianの以下の文章を参考にしました.以下はi386版の文章なので自分のArchtecture の文章を見るといいと思います.
先ずはパッケージを最新にします.
こんな感じで apt update で最新になったのを確認します. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ sudo apt update
$ sudo apt upgradeあとで何をしたのか何が起こったのか確認出来るようログを撮っておきます.もし,sshなどのリモート経由で実行するのであればGNU screen やtmux などのターミナルマルチプレクサも起動してそこで作業を行うと回線が切断されてしまっても復帰できるのでおすすめです.
$ script -t 2>~/upgrade-beowulfstep.time -a ~/upgrade-beowulfstep.script/etc/apt/sources.list を書き換えます.
/etc/apt/sources.list.d/* もある場合はそちらも書き換えます.
$ sudo apt edit-sourcesパッケージ情報を更新します.
$ sudo apt updateアップグレードに必要な容量があるか確認します.2GB程容量が増えるようです.
$ sudo apt -o APT::Get::Trivial-Only=true full-upgrade
:
1636 upgraded, 556 newly installed, 34 to remove and 3 not upgraded.
Need to get 1,613 MB of archives.
After this operation, 2,071 MB of additional disk space will be used.
E: Trivial Only specified but this is not a trivial operation.最小アップグレードを行います.……しばらく掛かるので何か他のことでもして待ちます.
apt-listchanges をざっくり流し見してパッケージの展開に移ります.1.8インチHDDなのでこれも時間がかかります.
$ sudo apt-get upgradeシステムのアップグレードを行います.しばらく待ちます…….しばらく待ちます…….apt-listchanges が表示されて確認後展開.いくつかの確認メッセージが出たります.
Directory not empty な警告もいくつか.設定ファイルの修正も出てきますがダウンタイムが発生してよければ後回しにしても大丈夫.例えば既存の設定を残すよう指示すると, 設定ファイル名.ucf-dist というファイルが作成されるのであとでゆっくり比較しながら設定できます.本番環境だったら前もって新環境の設定を用意しておくといいですね.
$ sudo apt full-upgradeどうにか終わったのですが,使われていないパッケージが大量に残っているのでこれを削除します.沢山あるのでこれも時間がかかりました.
$ sudo apt autoremoveここで再起動.アイコンや壁紙が名前変わったらしくブランクになったりしています.それを置き換えたりしてとりあえずOKそうになりました.
標準壁紙は /usr/share/images/desktop-base/ にありました.赤い.
起動時のメモリ利用量が100MB程増えているようです.100MBだとそう大きく感じませんが1.5倍と考えるとかなりの増加量.プロセスをメモリ利用順に並べてみるとデスクトップに使っているLxQt 関連が消費しているようです.しばらく使って問題なようなら別のものに変えるかもしれません.
$ lsb_release -dr
Description: Devuan GNU/Linux 3 (beowulf)
Release: 3
$ uname -m
i686