Skip to content

Instantly share code, notes, and snippets.

View buzztaiki's full-sized avatar

Taiki Sugawara buzztaiki

View GitHub Profile

package-install で入れたパッケージの require が flymake で赤くならないようにする

elisp-flymake-byte-compile でチェックしてくれるが、batch-byte-compile するため、package-install 入れたものが見つからずに赤くなる。 flycheck の場合は flycheck-emacs-lisp-initialize-packages を設定してあげればよいのだけど、flymake には存在しない。

elisp-flymake-byte-compile にいい感じでひっかける場所が存在しなかったから、以下のように make-process に無理矢理ひっかける事にした。

(defun advices/elisp-flymake-package-initialize (fn &rest args)
    (when (string= (plist-get args :name) "elisp-flymake-byte-compile")

WaylandとPipeWireとEasyEffectsでノイズ除去する

Linux のノイズ除去まわりメモ の Wayland 版。Wayland の場合画面共有とかの都合上 PipeWire を使っているだろうから、それを前提にする。試してないけど X11 + PipeWire でも同じ設定で動きそうではある。

音声フィルタには EasyEffectslibrnnoise を使う。PipeWire でも一部の PulseAudio のフィルタは使えるけど、EasyEffects の方が色々できて良さそう。また、NoiseTorch とかより素性よさそう (個人の感想)。また、普通に GUI から設定できるので、画面ポチポチしてるだけもわりと何とか使えそう。

2022-04-22 追記

原因はよく分からないけど、再起動した後とか EasyEffects の Souce と各アプリがうまく繋がってくれない事がままあって、ノイズ除去に EasyEffects を使うのはやめた。PipeWire#音声のポストプロセッシング - ArchWiki に従って、NoiseTorch か Noise suppression for voice を使うのが良いと思う。実際 Noise suppression for voice を使うようにしたらわりと安定した (気がする)

みんな名前違って毎回わすれる

名前

  • アノテーション (Annotation): Java, Scala, Kotlin
  • デコレータ (Decorator): Python, JS, TS
  • 属性 (Attribute): C#, Rust, PHP

使われかた

  • Java の仲間のアノテーションは Annotation Processor でコード生成したり、リフレクションしたり、バイトコード変換したりする。
  • Pytohn, JS, TS のデコレータの実態は高階関数。対象の関数やクラスを引数に適用してから名前を付ける。

Linuxでカメラを無効にする

なんかこう、絶対に映りたくないなってときに。 こんな感じで、uvcvideo を無効にすればよい。どこで見たんだったかな。

/etc/modprobe.d/uvcvideo.conf

# disable webcam
blacklist uvcvideo
@buzztaiki
buzztaiki / read_qrcode_from_file.md
Created February 4, 2022 15:32
LinuxでファイルからQRコードを読み取る

LinuxでファイルからQRコードを読み取る

https://github.com/mchehab/zbar を使う。

$ zbarimg -q --raw qrcode.png
$ cat qrcode.png  | zbarimg -q --raw -

Linux って書いたけど MacOS でも Windows でも動くらしい。

@buzztaiki
buzztaiki / kensington_expert_mouse_wireless_silent_micro_switch.md
Last active December 9, 2023 09:03
Kensington Expert Mouse Wireless のボタンを静音化する

Kensington Expert Mouse Wireless のボタンを静音化する

↓こいつのスイッチを静音化する。

https://www.kensington.com/ja-jp/p/製品/コントロール/トラックボール/エキスパートマウス-ワイヤレストラックボール/

元々のスイッチは D2F-01F 互換っぽい形をした Kailh のスイッチ。Redditのスレッド によると KH-PS1704-42 との事。

電子工作は子供の頃にやった以来ほとんどしてない素人で色々あれかもしれないけど、一応成功している。

@buzztaiki
buzztaiki / umask_with_direnv.md
Created December 17, 2021 07:46
direnvを使って特定のディレクトリに新しく作ったファイルの権限を強制する

特定のディレクトリに新しく作ったファイルの権限を強制する

例えば、とあるディレクトリでは git pull したときに他のユーザーは見えないようにしたい場合とか。気休め程度ではあるけれど。

基本的には direnv/direnv#509 のアイディアそのまま使う。

新しいファイルの権限は umask で決まるんだけど、ディレクトリ毎に設定する事はできない。そこで以下のようにしてこれを解決する

  • direnv で環境変数を設定して
  • PROMPT_COMMAND を使ってその環境変数で umask を実行する
// see https://gitlab.gnome.org/GNOME/gjs/blob/master/doc/Modules.md#signals
const Signals = imports.signals;
class MyJSClass {
testSignalEmission () {
this.emit("example-signal", "moo", 42);
}
}
Signals.addSignalMethods(MyJSClass.prototype);
@buzztaiki
buzztaiki / libskk_hack_memo.md
Last active January 14, 2022 07:00
libskk hack memo

libskk hack memo

build

autotool とか久しぶり。

$ ./autogen.sh
$ make
$ make check