{
"description": "Send the cmd-space when the left cmd key is tapped",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "left_command",
"modifiers": { "optional": ["any"] }
},
"to": [
{
"key_code": "left_command"
}
],
"to_if_alone": [{
"key_code": "spacebar",
"modifiers": ["left_command"]
}],
"parameters": { "basic.to_if_alone_timeout_milliseconds": 200 }
}
]
}
2025年12月3日水曜日
karabiner element でcmd-key tapでIMEを切り替える
キーボード側でタップ時のイベントを改変したりしていたのだけど、karabinえr elementだけでできる。
とりあえず快適に動いている。様子を見よう。もっと早くやるべきだった。
2024年6月7日金曜日
Pythonでunicodeで変なエラーがでたとき
UnicodeEncodeError: 'ascii' codec can't encode character '\u2026' in position 45: ordinal not in range(128)が出たときに下のように書いたら治った。
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
2024年2月11日日曜日
marp をvs code で使う
marpはmarkdownでスライドを作るツール。
- plugin Map for VS Code をいれる
- Cmd + , で呼び出すセッティングから、プラグインの設定。 Enable HTML とThemes beamer.css などを加える。
2023年12月11日月曜日
mac のコマンドラインでpdfからsvgへ変換
調べると、inkscape を使う方法や、imagemagick のconvert を使う方法が出てくるのだが、今ひとつうまくいかない。popplerのpdftocairoを使ったらうまくいった。
> pdftocairo -svg file.pdf file.svgなぜcairoなのかよくわからない。。 ちなみに、ディレクトリにあるpdfを一括で変換するには
> foreach f in *.pdf ; do pdftocairo -svg $f $f:r.svg ; doneとすればいい。
2023年11月14日火曜日
docker のコンテナからホストのssh-agentを使う
docker を開発環境として使う場合、内部からsshにアクセスしたくなるが .ssh をbindマウントしたり、コピーしたりするのも面倒。
どうするのが正解なのかと思っていたら普通にホストのssh-agentを使う機能が用意されていた。すごいな。
version: '3'
services:
ubuntu:
build:
context: .
dockerfile: Dockerfile
container_name: ubuntu-test
stdin_open: true # docker run -i
tty: true # docker run -t
platform: linux/amd64
entrypoint: bin/bash
volumes:
- "/run/host-services/ssh-auth.sock:/tmp/ssh-agent.sock"
environment:
SSH_AUTH_SOCK: "/tmp/ssh-agent.sock"
最後のvolumeとenvironment がポイント。これはmacでのやり方なので、
linuxだとまた違うようだ。
2023年4月19日水曜日
seleniumでasciidocファイルをPDFに変換
これには
- selenium に asciidoctor extension を入れる
- PDFを指定して印刷する
Selenium に extensionを入れる
これには、- extensionのcrxファイルを入手する
- crxファイルを指定してドライバをつくる
crxファイルの入手
crxファイルを入手する方法は このブログ に書かれている。ダウンロードをやってくれるサイトがあるらしいのだが、ドメインが切れたらしく 怪しいことになっていたので、再パッケージする方法を使う。 基本的には、chromeのextension のページで、pack extension ボタンで、導入されているextensionのパスを指定すれば いいのだが、そのパスがわからない。そんなときは、 chrome://version のProfilePathを見ればわかる。この下のExtensions以下にIDのディレクトリがある。 ディレクトリ名はIDだが、個々のExtensionのIDはchromeのextensionsのページ chrome://extensions/ を見ればわかる。 manifest.jsonにも アプリ名が入っているはずなのだが、メッセージファイルを参照している場合もあるようで、grepしてもわからない。ドライバをつくる
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options=Options()
options.add_extension(pathToExtension)
driver = webdriver.Chrome("./chromedriver", options=options)
PDFを指定して印刷
こちらのサイトに書いてある。 しかしこれどうやって調べたんだろう。どこに書いてあるのかなあ。。注意点としては、savefile.default_directory の指定はどうも絶対パスでないといけないようなので、 Pathを使って作ってやる必要がある。
pathToExtension="2.7.0_0.crx"
def optionsSetUp():
#印刷としてPDF保存する設定
options=Options()
appState = {
"recentDestinations": [
{
"id": "Save as PDF",
"origin": "local",
"account":""
}
],
"selectedDestinationId": "Save as PDF",
"version": 2,
"isLandscapeEnabled": False, #印刷の向きを指定 tureで横向き、falseで縦向き。
"pageSize": 'A4', #用紙タイプ(A3、A4、A5、Legal、 Letter、Tabloidなど)
"isHeaderFooterEnabled": False, #ヘッダーとフッター
"isCssBackgroundEnabled": True, #背景のグラフィック
"isCollateEnabled": True #部単位で印刷
}
prefs = {'printing.print_preview_sticky_settings.appState':
json.dumps(appState),
"savefile.default_directory": str(Path('../rendered').resolve())
} #appState --> pref
options.add_experimental_option('prefs', prefs)
options.add_argument('--kiosk-printing')
options.add_extension(pathToExtension)
return options
driver = webdriver.Chrome("./chromedriver", options=options)
driver.get(URL)
time.sleep(2) # ページが確実にレンダリングされるのを待つ
driver.execute_script('window.print();')
登録:
コメント (Atom)