emacs org-mode用の画像貼り付るための設定

クリップボード画像を貼付けするための設定
利用環境は、windows10 + emacs 27.1

Take Screenshots Straight into Org Files in Emacs on Win10

上記を参考にして、若干手直し。
- 保存ファイル名の temp-filename は、\のエスケープを追加
- 保存ファイル名、パスに日本語が含まれるとエラーで画像の保存がNGとなる

;;
;; My Function for Screenshots
;;
(defun my-org-screenshot ()
  "Take a screenshot into a time stamped unique-named file in the
same directory as the org-buffer and insert a link to this file."
  (interactive)

  (setq temp-filename
    (concat
      (make-temp-name
        (concat "images\\"
          (file-name-sans-extension (buffer-name))
          "_"
          (format-time-string "%Y%m%d_%H%M%S_")) ) ".png"))

;;  (shell-command "snippingtool /clip") ;; 有効にするとツールで範囲指定した箇所を取り込みできる
  (shell-command (concat "powershell -command \"Add-Type -AssemblyName System.Windows.Forms;if ($([System.Windows.Forms.Clipboard]::ContainsImage())) {$image = [System.Windows.Forms.Clipboard]::GetImage();[System.Drawing.Bitmap]$image.Save('"temp-filename"',[System.Drawing.Imaging.ImageFormat]::Png); Write-Output 'clipboard content saved as file'} else {Write-Output 'clipboard does not contain image data'}\""))
  (insert (concat "[[file:" temp-filename "]]"))
  (org-display-inline-images))

(global-set-key "\C-cs" 'my-org-screenshot)

2022/6 までは、以下を利用。参考にしたリンクがあったはずだが見つからない。

;;
;; org-screenshot
;; orgファイルの保存場所にある images フォルダに orgファイル名+タイムスタンプ を保存
(defun org-screenshot ()
  (interactive)
  (setq tilde-buffer-filename
        (replace-regexp-in-string "/" "\\" (file-name-directory buffer-file-name) t t))
  (setq temp-filename
        (concat
         (make-temp-name
          (concat "images\\"
                  (file-name-sans-extension (buffer-name))
                  "_"
                  (format-time-string "%Y%m%d_%H%M%S_")) ) ".jpg"))
  (setq full-filename
        (concat tilde-buffer-filename temp-filename))

  ;; Windows: Irfanview
  (call-process "c:\\Program Files\\IrfanView\\i_view64.exe" nil nil nil (encode-coding-string (concat "/clippaste /convert=" full-filename ) 'sjis))
  (insert (concat "[[file:"  temp-filename "]]"))
  (org-display-inline-images))
(define-key ctl-x-map "p" 'org-screenshot)

qmkを自分でコンパイルする際のメモ

キーボード名/keymaps ディレクトに存在する via フォルダごとをコピー。
コピー先のkeymap.c を編集。以下は、私が追加した例

#include QMK_KEYBOARD_H

static uint32_t key_timer = 0;
static bool key_trigger = true;

// キーボード初期化後に呼ばれる関数
void keyboard_post_init_user(void) {
	//// LED発光を無効
	int i;
	for (i = 0; i <= 86; i++){
		rgblight_sethsv_at(HSV_BLACK, i);
	}
} 

// マクロキーコードの定義
enum custom_keycodes {
	HOGE = SAFE_RANGE,
	KEY_TIM,
};

// マクロ記述箇所
bool process_record_user(uint16_t keycode, keyrecord_t* record) {
	switch (keycode) {
		case HOGE:
			if (record->event.pressed) {
				// when keycode HOGE is pressed
				SEND_STRING("https://qmk.fm/\n");
				SEND_STRING(SS_TAP(X_ENTER));
			} else {
				// when keycode HOGE is released
			}
			break;
		case KEY_TIM:
			if (record->event.pressed) {
				key_trigger ^= true;
				// 機能のON/OFF LEDで表示
				if (key_trigger) {
					rgblight_sethsv_at(HSV_GREEN, 0);    
				}else{
					rgblight_sethsv_at(HSV_BLACK, 0);  
				}
            }
			break; 	
	}
	return true;
}

void matrix_scan_user(void) { 
	// スクリーンセーバ抑止
	if (timer_elapsed32(key_timer) > 30000) { // 30 seconds
		key_timer = timer_read32();  // resets timer
		if (key_trigger) {
			tap_code(KC_MS_UP);
			tap_code(KC_MS_DOWN);
			tap_code(KC_MS_LEFT);
			tap_code(KC_MS_RIGHT);
		}else{
		}
	}
}

以下からの情報を参考にさせていただきました。
サリチル酸⌨️自キ温泉ガイド on Twitter: "なんとなく用途は思い浮かばないけれど、2分に一回10ピクセルだけマウスカーソルが動くようにPro Microに教え込んだ。
なんとなく仕事用PCで検証してみようと思う。"

QMK Firmware
GitHub - DIYCharles/MouseJiggler: MouseJiggler using arduino pro-micro

Microsoft Teams 会議で録画したデータを編集する方法

概要

会議で録画した動画を編集して、h264なmp4動画で保存したい
環境は、Windows10(64bit)

事前準備

FFmpegインスト―ル

  1. FFmpegをダウンロードする
  2. ダウンロードしたファイルを適当なフォルダに解凍しておく

ダウンロード方法は、以下が参考になります。
【Windows】Windows10にffmpegをインストールする - ソースに絡まるエスカルゴ

Aviutlインストール

  1. Aviutlと拡張編集プラグインを導入
  2. プラグイン「L-SMASH Works」の導入
  3. プラグイン「かんたんMP4出力」の導入

導入方法と操作説明は、以下が参考になります。
AviUtl初心者が最初に読むべきページ【導入から使い方まで】 | AviUtlの易しい使い方

動画編集方法

  1. 動画音声のサンプリングレートをffmpegで変換する

    ffmpeg.exe -i input.mp4 -vcodec copy -ar 44100 output.mp4


  2. 変換後の動画ファイルをAviutlにて編集する
    右下に表示される発表者の画像は、[設定]-> [クリッピング&リサイズの設定]でカットすることが可能

  3. AviutlにてMP4出力する
    かんたんMP4出力を利用。スライド+音声のみなら、画質は40~程度で十分。

補足

録画したデータ音声のサンプリング周波数は、44.1kHzや48kHzではない。
そのためか、Aviutlでmp4動画出力する際に無音になってしまうため、
FFmpegで音声のサンプリングレートを変換しています。