投稿

[無変換]を[Ctrl]にしたい(Kubuntu24.04)

イメージ
無変換キーは使いもしないのに "よい場所、取りすぎ問題" を解決しましょう! まあ、やることは簡単でした! xkbの設定を書き換えれば解決できます! キーコードと設定のシンボル名の対応は Honmushi blog さん が教えてくれています。 大変助かりました。 xev コマンドでキーコードを調べて、/usr/share/X11/xkb/keycodes/evdev  を見ればよいようですね。 無変換キーのシンボルを調べる $ xev|grep keycode state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES, state 0x0, keycode 102 (keysym 0xff22, Muhenkan), same_screen YES, state 0x0, keycode 102 (keysym 0xff22, Muhenkan), same_screen YES, $ grep 102 /usr/share/X11/xkb/keycodes/evdev <MUHE> = 102; // Muhenkan ここから、 無変換 キーはキーコードが 102 で、シンボルは <MUHE> だと言うことがわかります。 私の場合、自分でしかこのPCは使わないので、グローバル設定を書き換えることにします。 設定ファイルは /usr/share/X11/xkb/symbols/jp です。 まあ、バックアップをとってからいじりましょうね。 /usr/share/X11/xkb/symbols/jp ... xkb_symbols "common" { ... key <MUHE> {[ Control_R ]}; }; ... 設定を反映させる $ setxkbmap -layout jp <MUHE> を Control_R として設定するだけです! 本来は Control_L でもいいはずなのですが、私の環境ではうまく動作しませんでした!! なので、 Control_R にしたら、めでたく、[Ctrl]キーとして動...

親指シフト入力をサービスで使いたい!(oyainput / Kubuntu24.04)

イメージ
キー入力で親指シフト入力を使い始めて、2年目になりました。 ただ、あまり日本語入力をしないので、全く上達しませんが(笑) といっても、最近はローマ字入力より手が勝手に親指シフトにシフトしています。 つまり、ローマ字入力は遅くなったとも言える…… それはともかく、Linuxでは素敵な親指シフト入力ソフトがあります! INWORKSさんが公開してくれている oyainput(おやいんぷっと) です。 とてもありがたいことですな★(感謝) fcitx5-mozcを使っているなら、 KDEシステム設定 > 地域の設定 > 入力メソッド  で mozc を追加しましょう! oyainputはターミナル上で実行するだけで、親指シフト入力モードになってくれます。 これをサービスに登録して、ログイン毎にいちいち実行しなくてもいいようにしましょう! ただし、 現在はIMEがfcitxから、fcitx5に変わった ため、うまく動作しなくなっています。 ソースがgithubで公開されている ので一部を直せば動作できると burao mimaさんが修正 してくれています。 で、これを利用してしばらく使っていたのですが!!! なんと、IMEがONのままでロック画面になった時!大変なことに! oyainputはキー入力を横取りして、ローマ字出力に変えてくれるのですが、 パスワード入力画面でこれが有効のままだったため、パスワードが入力不可に! という悲惨な事故に会いました。 実は、oyainputには[PAUSE]キーでこのローマ字変換モードを一時停止できるのですが、今どきのキーボードにはそのようなキーがないのがほとんどです! と、いうわけで、 [PAUSE]でなく[CapsLock]を一時停止キーに変更してみました。 するとどうでしょう!快適です! mozcのキー設定で[CapsLock]を押すと、英数入力モードに切り替わるので親指シフト入力中にローマ字変換が停止され英数入力がスムーズに出来るようになりました。 パッチを作ってみたので、以下の手順を実行してね。 oyainput.patch ソースのコンパイル # コンパイル環境と日本語入力環境のインストール $ sudo apt-get install -y git gcc make fcitx5 fcitx5-...

TrackPoint Keyboard (トラックポイント キーボード)の中ボタンを無効化する

イメージ
分割キーボードなどの自作キーボード界隈にちょっと足を踏み入れたのですが、結局TrackPoint Keyboardを買ってしまいました。 とはいえ、無線ではなくUSBです! どうせ、デスクトップで使うし、無線はバッテリー 切れとか面倒くさいので…… Kubuntu24.04で利用し始めたのですが! スクロールする時に 例の 中ボタンでのペースト 機能がタイミングによっては働いてしまうことがあるのです。 で、 ノートパソコンと同様にxinputで、無効に しようとデバイスリストを表示させたら! なんと!  " Lenovo ThinkPad Compact USB Keyboard with TrackPoint " という同一デバイス名が4つもあるではないですか! 同一デバイス名が4つ $ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ oyainput id=14 [slave pointer (2)] ⎜ ↳ Lenovo ThinkPad Compact USB Keyboard with TrackPoint id=12 [slave pointer (2)] ⎜ ↳ ELECOM ELECOM BlueLED Mouse id=7 [slave pointer (2)] ⎜ ↳ Lenovo ThinkPad Compact USB Keyboard with TrackPoint id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard ...

Python venvで、pythonのバージョンを指定したい

Python3.3以降、仮想環境のvenvが導入 されています。 以前は virtualenv を使ってましたが、もうPython2とかを開発することはないので・・・ venvを使っていこうと心に決めました(笑) で、仮想環境を作ろうと思い次のようにコマンドを入れました。 仮想環境を作る $ python -m venv project $ cd project $ . bin/activate (project) $ python -V Python 3.10.12 もちろんうまく行きますよね!現在の環境はPython3.10.12ですから、これで正解です。 そんでもって、違うプロジェクトで、 Python3.4環境が必要 となりまして、 Python3.4をインストール後以下のコマンドを叩いてみると!! Python3.4の仮想環境を作る(失敗) $ python -m venv -p python3.4 project3.4 usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] [--upgrade] [--without-pip] [--prompt PROMPT] [--upgrade-deps] ENV_DIR [ENV_DIR ...] venv: error: unrecognized arguments: -p はい、エラーがでました!! ん?なんで、virtualenv時代はこれで良かったのに!! -p オプションがない なんて!! 使えないなぁ・・・virtualenvでは使えたのに・・・ なんて思った 私のほうが使えないやつ でした(笑) 年取ると頭が固くなるのだよ! よ〜く考えたら、-p オプションなんていらないのでした! だって、今は venvをモジュールから実行している のだから・・・ そう、ここでの python コマンドは python3.10.12 へのシンボリックリンクじゃん。 つまり、Python3.4環境が欲しければ、 python3.4上でモジュールを実行するだけだった のです!! 自分の頭の固さが嫌になりますな☆ Python3.4の仮想環境を作る(...

ファイルに行番号を付けて表示したい

行番号を付けてテキストを表示したいと思った! 特に意味はない。思いついただけ・・・ で調べてみると・・・ sed コマンドを使って出来るようです。 もっと調べたら、 cat コマンドに -n オプションをつければいいらしい・・・おわり。 で、これでは楽しくないので、車輪の再発明になるが、 sed コマンドを使ってやってみようと思います。 以下のファイルに行番号を付けてみる感じで・・・ 内容は気にしないことに。 test.txt [My favorite video games] * "Super Mario Bros." * "Legend of Zelda" * "Metroid" * "Castlevania" * "ASSASSIN'S CREED" * "Horizon Zero Dawn" * "Horizon Forbidden West" * "Ghost of Tsushima" * "Rise of the Ronin" * "WILD HEARTS" まずは、sed を使ってみる。    sedで行番号表示 $ cat test.txt|sed = 1 [My favorite video games] 2 * "Super Mario Bros." 3 * "Legend of Zelda" 4 * "Metroid" 5 * "Castlevania" 6 * "ASSASSIN'S CREED" 7 * "Horizon Zero Dawn" 8 * "Horizon Forbidden West" 9 * "Ghost of Tsushima" 10 * "Rise of the Ronin" 11 * "WILD HEARTS" 確かに表示できる! でも、行番号で改行されちゃう・・・ なので、sed のサブコマンド ...

調子にノって、gitを使う・・・(ブランチ名を表示したい)

今更ながら、gitですよ! 大昔にちょっと使ったんですが、一人で作って一人で遊ぶ分には、 バージョン管理いらないかなと思ってしまって・・・バカでした (笑) 結局、 OLDみたいなサフィックスがついたファイルが大量に作られていく。。。 この管理のほうが面倒になってきてしまった。 んで、やっぱり、要りますなバージョン管理・・・ というわけで、お家サーバにgitのリモートリポジトリを設定することにしました! GitHubじゃないところはご愛嬌☆ すっかり、コマンド等も忘れてしまい、この機会にうろ覚えだったgitの仕組みも勉強しようかと・・・ で、実際にシェルで作業していると、ブランチ名が表示されていると嬉しいなと・・・ まあ、世の中にはそんな人は居ることは百も承知ですが・・・ かる〜く調べてみると Ubuntuとかでgitをインストールすればbash用の__git_ps1関数も一緒に付いてくる らしいです。 でもこの関数は、ちょとリッチすぎました!書式を指定できたり、云々・・・ そんなに機能はいらないし・・・ まあ、なんだかんだで、 車輪の再発明をしようではないですか!! 勉強がてら・・・ gitのブランチ名を取得する まずは、gitのブランチ名を取得したいと思います! gitのbranchコマンドを叩けば、ブランチの一覧が表示され、カレントのブランチ名の前には'*'が付加されています。 ここを取り出したいので、ここは、sedコマンドに登場していただきます・・・ ブランチ名の取得 $ git branch --list dev * master $ git branch --list|sed -ne 's/^\*\s*\(\.*\)/\1/p' master めでたく、取り出せました! まあ、'\s'のあとの'*'は冗長かもしれませんが・・・ bashに設置する bashに設置しようしとして、初めはsedの出力をそのまま使ってみたのですが・・・ そりゃそうでしょ、という結果に・・・ .bashrc(失敗) branch=$(git branch --list | sed -ne 's/^\*\s*\(\.*\)/\1/p') PS1='\u@\h{$branch}...

Raspberry Pi Pico互換ボード - YD-RP2040

イメージ
とってもお安いRaspberry Pi Picoの互換ボードを買ったので、ここに記しておくこととする。 Aliexpressのセールで、YD-RP2040が250円で買えたよ! ラッキー! しかも、 Flashメモリが16MB版 ですぜ! 前に買ったときは、4MB版で330円でした! 今はドル高だから、Raspberry Pi Picoが800円ぐらいするからな・・・ Pico互換ボードなので、ピン互換性は完全ではありません!   Pin35 : ADC_Vref ⇒ GP29   Pin37 : 3V3_EN   ⇒ GP23 と、変更されてます。 あと、 USERスイッチ が GP24 に、 WS2812 (LED)が GP23 に割り当てられていて、GPIOが余すところ無く、全て使われています。 はっきり言って、Picoより使いやすい!! それと、デバッグポートに3V3が来ているのも非常によい★ すべてのピン配列は、 Googleでどうぞ ! WS2812はPin37とGP23を共用しているので、 WS2812を使うときは WS2812の右上の R7をジャンパ しましょう。(ロットによっては表記がR7じゃなく、RGBなものもある) まあ、互換性についてはPicoを買う予定はないので、気にしな〜い・・・ しかし、『 Raspberry Pi Pico 』って名称は何とかならなかったのかね〜 Raspberry Pi がかぶってて、検索しづらいって・・・ Raspberry Pico でよかったよなぁ〜絶対に・・・ では、PlatformIOでこのボードを使っていこうと思いますが、 それはまたのお話で・・・ おしまい