毎日、毎回、使う度に便利だと噛み締めている当者比で少しマイナーなもの紹介
KWC Advent Calendar 2022 の参加記事ですが、困りごとを解決した方はどなたでも教えてください
環境共通化
Ubuntu をメインとし、iOS、macOS、WSL、Windows、Android を利用しているため、共通した使い勝手を目指しています
- Homebrew ... 便利コマンド系は Ubuntu と WSL でも brew 優先。apt にはなかったり、古いことが多いため
- GNU/Linux 化 ... Mac は xargs や grep を GNU/Linux に
- Evernote ... オフラインと複数デバイスで使えるように課金済み。ここ数年重く UI やタスクが邪魔で Notion うろうろ中
- 使い捨てのメモやリマインダは Siri や Google アシスタントを音声で
- Authy ... 機種変更が楽
困りごと: Android のブラウザでワンタップで一番上に戻る方法がほしい。iPhone なら画面上部タップ、ブラウザは Vimium で gg
Windows 11 & macOS
Win + s に気づくまで Alfred 代替を探していた
Windows 11 | macOS | 備考 | |
---|---|---|---|
クリップボード履歴 | Win + v | Clipy | |
プレーンなペースト | Ctrl + Shift + v | Command + Shift + v | Mac 標準は Option + Shift + Command + v で指つるので Karabiner で変更 |
スクリーンショット | Shift + Win + s | Shift + Command + 4 | 指が覚えているのでこのまま。Shift + Command + 5 便利 |
スリープ | Win + x u s | Macbook 閉じる | |
Google 検索 | Win + s | Alfred | Windows は MSEdgeRedirect と Chrometana 導入 Chrome がアクティブなら Ctrl + l |
アプリ起動 | Win + s | Alfred | |
アプリ切り替え | Alt + Tab | AltTab | |
ウィンドウサイズ | Win + 矢印キー | ShiftIt | |
クイックルック | QuickLook | Preview | 困りごと: QuickLook 起動遅いときある |
解凍 | NanaZip | The Unarchiver | |
タスクバーを結合させない | ExplorerPatcher | ||
X-Mouse | X-Mouse Controls | 困りごと: Mac での実現。タップせず Chrome で Ctrl + l や Vimium で gi したい |
以前は Macbook に DisplayLink で複数ディスプレイにしていたけど、スリープからの復帰時にウィンドウ位置のずれや、ケーブルが邪魔なので今は barrier で Windows に繋げています
- 困りごと: Windows でスクリーンショット画像加工に Skitch 代替がほしい。要件は赤枠、矢印、テキスト、モザイクが簡単なこと。ペイント 3D 使っているけどモザイクが Skitch に比べて手間
- 困りごと: Windows でスクリーンショットしたら Snipping Tool ではなくペイント 3D 起動してほしい
- 困りごと: Google 日本語入力の辞書同期。ATOK かな
alias
環境を変更できない仕事サーバ先でも便利な alias が使いたい
cx, g, gv, pg, tf, v はよく使うし、いつか crontab -r する前に ce 必須
ということで .alias ファイルを用意し、接続先サーバで source .alias しています
自分の環境は .zshrc 内で source ~/.alias している
$ cat .alias
alias ..='cd ..'
alias ...='cd ../..'
alias api='sudo apt install -y'
alias aps='apt search --names-only'
alias bi='brew install'
alias bfo='brew info'
alias bs='brew search'
alias ce='crontab -e'
alias cl='crontab -l'
alias cx='chmod +x'
alias df='df -h'
alias g='grep --color=auto'
alias ga='git add'
alias gc='git commit -v'
alias gd='git diff'
alias gs='git status'
alias gv='grep -v --color=auto'
alias lS='\ls -lSr --color'
alias la='ls -al'
alias less='less -R'
alias lh='ls -lh'
alias ll='ls -l'
alias ls='ls -CF --color'
alias lt='\ls -ltr --color'
alias pg='\ps aux | grep'
alias sjis='nkf -s -Lw'
alias t='tail'
alias tf='tail -f'
alias tree='tree --charset=jis'
alias v='vim'
if [ "$USER" = 'oooooooo' ]; then
alias csvmd='csview --style markdown'
alias csv='csvlens'
alias cut='choose'
alias df='duf'
alias du='dust'
alias la='exa -Fl'
alias lh='exa -Flh'
alias ll='exa -Fl'
alias ls='exa -F'
# sudo chown -h root $(which mtr-packet)
# sudo chmod 4755 $(which mtr-packet)
alias ping='mtr'
alias ps='procs'
alias top='procs -w'
alias traceroute='asn'
alias v='nvim'
fi
if [[ -v ZSH_VERSION ]]; then
alias -g G='| grep --color=auto'
alias -g GV='| grep -v --color=auto'
alias -g L='| less -R'
fi
if [[ -v WSL_INTEROP ]]; then
alias open='explorer.exe'
alias pbcopy='clip.exe'
alias pbpaste='powershell.exe Get-Clipboard | sed "s/\r//"'
fi
Rust 製ツールが増えたな
top は htop や glances などあるけど、procs は CPU や MEM のソート方法が画面上部に出ているという理由で採択
困りごと: WSL も Mac みたいに open で関連付けたアプリを開きたい。とはいえ開く拡張子が csv や pdf などほぼ決まっているのでシェルスクリプト書くかな。現在は open . してエクスプローラ開いてダブルクリックしている
困りごと: bash 環境でパイプを入力するの面倒。仕事サーバの bash 環境でパイプ入れずに楽したい
# bash
g foo log |g bar |gv baz
# zsh
g foo log G bar GV baz
Shell
bat, fd, fzf, rg, skim は紹介するまでもないので割愛
- asdf
- 今まで pyenv や rbenv、n を使っていたけど asdf に統一
- 困りごと: asdf reshim を自動でやりたい
-
choose
- cut ではできない後ろから n 番目が choose -3:-1 と簡単
- UTF-8 の CSV は Windows の Excel で文字化けするけど、BOM 付き UTF-8 にすればよかった。Python なら utf_8_sig、Ruby なら \uFEFF を最初に付加。CP932 に変換していた。これで choose や csvlens が使える
- diff-so-fancy から delta に乗り換えた。diff-so-fancy って Perl 製だったんだね
- git では tig、gh も愛用
- diff でいうと vimdiff も好き
- jq ではなく gron だと多段 grep で絞り込めて頭使わなくてありがたい
- Chrome 拡張機能の JSON Viewer も便利
- ssh で ProxyCommand 使っているなら ProxyJump が簡単
- tldr ではなく tealdeer 利用
- 自分でページを作れるのと、tldr の既存ページに気軽に追記できる。以前は ~/.memo に書いてた
-
zoxide
- 長らく rupa/z を使っていたけど、zi で候補見られ、zr で path 削除できるのと、気持ち速いのがよい
- あらゆるものに lint
- eslint や rubocop、hadolint、textlint 以外に shellcheck、markdownlint 導入。昔書いたシェルスクリプトや Markdown がボコボコにされる
こんな function を用意してコマンドたちを更新している
update ()
{
sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove -y;
brew update && brew upgrade
asdf plugin update --all;
pip install --upgrade pip;
npm install -g npm@latest;
ncu -gu;
gem cleanup;
tldr --update;
cargo install-update -a
}
ディレクトリなら ls、ファイルなら less する l は便利。glob にも対応させたい
l ()
{
PAGER=${PAGER:=less};
if [ -z $1 ]; then
ls -CF --color --color=auto -CF;
else
if [ -d $1 ]; then
ls -CF --color --color=auto -CF $1;
else
$PAGER $1;
fi;
fi
}
Chrome 拡張機能
AutoPagerize、Bitwarden、Octotree、Vimium は今年も大変お世話になりましたが、紹介記事が多いので割愛。毎日多用しているけど周囲で利用者の少ない拡張機能はこちら
- Google Search by date - horizontal bar ... Google の検索結果を簡単に 1 時間以内、7 日以内、半年以内に絞り込める。古い情報をふるい落とせる
- Google Chromeのスーパードラッグ ... 検索したい単語を選択してちょっとドラッグするだけで Google してくれる
Lighthouse の Performance は Chrome 拡張機能があると正しく計測できない。のでボタン一つで全拡張機能を ON/OFF
Chrome サイト内検索
Google でウェブ全体を検索するとノイズが多いのでサイト内検索を活用しています
検索機能がある場合
Chrome のアドレスバーに gh と入力して TAB すると GitHub 内を検索できる仕組み
設定方法こちら
ドメイン全体検索
site:go.dev や、site:docs.ruby-lang.org/ja/latest/ と site:guides.rubyonrails.org をまとめて検索したい場合は Programmable Search Engine を使います
検索するサイトは *.go.dev/*
や *.qiita.com/*
しています
発行された URL に &q=%s すれば利用可能。Dash や Zeal の代わりに使っています
https://cse.google.com/cse?cx=xxxxxxxx&q=%s
Qiita と Zenn をまとめるのも便利
設定方法はこちら
Userscript
コピーを便利に。Violentmonkey 使ってる
- C-c でタイトルと URL をコピー
- Amazon の商品 URL はシンプルに変換
- C-m で Markdown 形式のリンクをコピー
- C-q で選択範囲を > で引用コピー
// ==UserScript==
// @name Swiss Army Copy
// @namespace https://oooooooo.example.com/
// @version 0.1
// @description All your text are belong to us
// @author oooooooo
// @match http://*/*
// @match https://*/*
// @grant none
// ==/UserScript==
(() => {
'use strict'
const copy = (text) => {
if (window.getSelection().toString() === '') {
const textarea = document.createElement('textarea')
document.body.appendChild(textarea)
textarea.value = text
textarea.select()
document.execCommand('copy')
textarea.style.display = 'none'
}
}
const quote = (selection) => {
let text = ''
selection.split('\n').forEach((line) => {
text = text + '> ' + line + '\n'
})
return text
}
window.addEventListener('keydown', (event) => {
// location.href を消す方式は Amazon Prime などで誤作動する
let url = ''
const match = document.URL.match(/(https:\/\/.+?amazon.+?\/).*?(dp\/[A-Z0-9]+)/)
if (match === null) {
url = document.URL
} else {
url = match[1] + match[2]
}
if (event.ctrlKey && event.key === 'c') {
copy(document.title + '\n' + url)
} else if (event.ctrlKey && event.key === 'm') {
copy('[' + document.title + '](' + url + ')')
} else if (event.ctrlKey && event.key === 'q') {
const selection = window.getSelection().toString()
window.getSelection().removeAllRanges()
copy(quote(selection))
}
})
})()
ガジェット
一日何度も使うものは値段を 365*2 日で割って価値あるか自分に問うて買っている
Windows Hello 対応カメラ Kaysuda CA20
顔認証で Windows ログインが便利すぎる
画質は悪い。以前はロジクールの C920n を使っていたけど、音声はそんなに悪くない模様
本当はエレコムの UCAM-CF20FBBK がほしかったけど、ずっと品切れ
画質が悪いので勧めづらいけど顔認証ログインは本当に快適
骨伝導マイク付き Shokz OpenComm
rebuild.fm で知って数年使っていた Aeropex をカバンに放り込んでいたら壊れてしまい、仕事 Zoom にも使おうとマイク付きを購入
マイクが耳に触れて不快で後悔。マイクはカメラでいいし
さらに追い打ちは OpenRun Pro ならアプリでデバイスを切り替えられること
困りごと: Macbook にペアリングした後に iPhone に切り替えたい場合は Macbook の bluetooth を切る、が必要。切り替え野良アプリとかないものか
YubiKey 5 NFC
Passkey が気になり購入
Chrome 108 から対応したし、不要になるかも
スマホが代替になるなら YubiKey の紛失・破損リスクを減らせる
HHKB の USB に繋げている。TOTP の面倒な PIN 入力が U2F ならタッチだけ。フィッシングの心配もない
とはいえ対応サイトが現状少なすぎる。今後期待
SlimBlade Trackball
ロジクール M570 → M575 と長く親指トラックボール派
無線は年に何度かある電池切れ時の動きの悪さが嫌で有線にしようと思う
前から気になっていた SlimBlade に
数ヶ月利用して theHunter を遊ぶくらいには慣れたけど
- 親指に比べてトラックボールが重い
- ホイールのキリキリ音が気になる
- ホイールやスクロールの加速が悪くて TrackballWorks で設定するけど、移動量がすぐにマックスになる。同じ症状の人がいてアンインストール
- ほこりが溜まったときの感触が気持ち悪い
- 横幅がでかい。その分、手のキーボードからの移動距離が遠い
- 初期不良かもだけど左上ボタンがプラスチック?をガリッと噛む
書き出すといろいろあるけど最後のガリッ以外は気にならなくなっている。だけど次回は親指トラックボールに戻りそう
Siri と Google アシスタント
- iPhone のサイドボタン長押しで Siri を呼び出して「○時○分にアラームを鳴らして」ではなく「☓☓で○時○分にアラームを鳴らして」とすると、アラームと一緒に「☓☓」が出る。なんの予定だっけ?がなくなった
- iPhone のリマインダーは 1 時間に 2 回以上の設定ができないけど、Google アシスタントならその制限がない
- Google アシスタントの設定から「メモとリスト」の保存場所を Keep に変更できる
困りごと: Google Discover に限らずアプリを開いたときに面白そうなニュースと思ったら秒で更新されて消えるのどうかならないか。すぐにクリックすれば見られるけど、二件名以降消えるのでタイトル覚えてググる運用やめたい
困りごと: Android は大丈夫だけど、iPhone の Google Discover は Brave で開き、戻ると必ず更新される。というか、最初から Brave で見たい
おわりに
年末年始にいろんなアドベントカレンダーを眺めるのが習慣になりました
KWC Advent Calendar 2022 を眺めると Preact をやめた理由(やめた理由ってすごく役立つ。もっと前向き失敗談記事増えてほしい)や Astro(結局 deno の lume にしたけど気になり続けている)、KeePassX(Bitwarden に課金を検討しているので)、それに明日は六曜!?など気になる記事がたくさん
知っている人は知っているけど、知らない人は知らない、そんな知見がどっと出るきっかけとしてアドベントカレンダーはいいですね