
Cachy OS のデスクトップとして COSMIC を使用しているが、発展途上ということもあり機能不足。 スクリーンショットツールで設定できる保存先が、クリップボードかドキュメントか画像しかない。 もちろん他のスクショツールを使うのも手だが、せっかくCOSMICなので工夫して頑張ってみることにした
## 結論 現状だと、かなり手間なのでオススメしない。 素直にほかのスクショツールを使うのがオススメ。
## かえる ### 仕様 実は保存先を自由に変えられないのはGUIの制約らしく、CLIのCOSMIC Screenshotは引数で保存先を設定できる。 ``` cosmic-screenshot --save-dir ~/保存先 ``` これだと結局GUIが出てきてしまい、結局GUIで指定した保存先 (3つの選択肢のどれか) に保存されてしまう。
なので、GUIを非表示にしてスクショを取る。 ``` cosmic-screenshot --interactive=false --save-dir ~/保存先 ``` 保存先は指定できるが、今度はGUIが出ないので、当然範囲選択やウィンドウ指定はできず全体スクショしかできない。
だめじゃん!!!😭
### ゴリ押し ありえないゴリ押しで解決してみる。 そこまでしてCOSMIC Screenshotを使いたいわけではないが、Claudeの提案が面白そうなのでやってみる。 inotifyでスクショが保存される場所を監視し、保存され次第すきな場所に転送する。
inotifyを入れる ``` sudo pacman -S inotify-tools ```
スクリプトをつくる ``` mkdir -p ~/.local/bin nano ~/.local/bin/screenshot-mover.sh ``` 中身 ``` #!/bin/bash SOURCE_DIR="$HOME/画像/Screenshots" TARGET_DIR="$HOME/ダウンロード" inotifywait -m "$SOURCE_DIR" -e create -e moved_to --format '%f' | while read file; do [[ "$file" == *.png ]] && mv "$SOURCE_DIR/$file" "$TARGET_DIR/$file" done ``` SOURCE_DIR= がスクショのデフォルト保存先、TARGET_DIR= が移動先にしたいディレクトリ (とりあえずダウンロード)。
実行権限をあげる ``` chmod +x ~/.local/bin/screenshot-mover.sh ```
systemdユーザーサービスの作成 ``` mkdir -p ~/.config/systemd/user nano ~/.config/systemd/user/screenshot-mover.service ``` 中身 ``` [Unit] Description=Screenshot auto-mover [Service] ExecStart=%h/.local/bin/screenshot-mover.sh Restart=on-failure [Install] WantedBy=default.target ```
サービスの有効化・起動 ``` systemctl --user daemon-reload systemctl --user enable --now screenshot-mover.service ``` 起動したか確認 ``` systemctl --user status screenshot-mover.service ``` active (running) が出ればOK。 スクショを撮ってみたら、ダウンロードに移動してるはず。 できたが、明らかにベストプラクティスではない。