Linuxでランチャー / Zlaunch(ゼットローンチ)完成

目次

企画をClaude.ai に打診してから2週間で実用品として完成

自分が手掛けた場合はこれをゼロから生み出すのに、どんなに早くても3ヶ月。
自力なら Windowsで長年愛用した Claunch 再現には、ひいきめにみて完成まで6ヶ月と覚悟していた。
予想はしていたが、Claudeの実際の開発期間は質疑時間を入れても累計で3日間もかかってないはず。
しかも、これには詳細仕様書の作成期間も、AI システムとしての セッション(トークン)制限の大きな空白時間も含んでいるので、実質的な Claudeの作業時間は思考時間を含めても 30分も要していないと思う。
なんたってAI だもんね。(^。^; しかし、発注側が適切なスキルで適切な指示を出せなければ、時間がかかるわりに成果物はそれなりの(発注者のレベルに見合った)ものしか生まれないという、考えれば当たり前の事実も体験できた。相対的にはキックオフからここまでの完成まで約2週間という結果。

ボタンのタブ超え移動が実現して Ver 2.2 に

前日まででひととおりアプリの登録が終わっていたが、用途に応じたレイアウトとするには、ボタンの移動をこれまでの「同一タブ内」から「タブ超え」に発展させる必要があった。機能としては、

ボタンをクリック・ドラッグして任意のタブラベルにホバーし、ドロップ先が空欄なら即移動。
既にボタン機能登録済みなら確認後に上書き

GUI アプリでは出来て当たり前の機能だが、これをゼロから実装するのは大変そうとは想像できる。
「自分でコーディングするならば」だが、依頼相手は Claude である。何の不安もない(^。^)
GUI ツールの「PySide6」がその機能を内包していることは把握していたので遠慮なくClaudeに依頼できた。
とはいえ、それなりに難度の高い機能ではあるので「まずは単一タブ内のドラッグ移動を実装して動作を確認してから」とClaudeから提案があり、その状態で数日間運用していた。そして、やはり不便なので再度依頼したら快諾はされたが、PySide6の仕様を珍しく長考(3分くらい?)した末に修正部分を提示して来た。
セッション制限が相変わらずきついので、機能改良については修正されたスクリプトファイルをダウンロードするのではなく、修正部分を開示して、それを依頼主である自分が修正するという役割分担としていた。
これによって、トークンを大幅に節約することに成功した。
自分も「PySide6」のコードに触れることでシステム開発の醍醐味を実感できるというメリットにもなる。

変更前のコードブロック
変更後

こんな感じ。あと4箇所で似たような変更処理を行った。内容は省略。
もちろん変更コードを手入力なんてしてません。労力節約と正確性の担保としてすべてコピペで済ませた。
コピペで済むならお気楽で良いのはたしかだが、空白インデント一個でも間違うとそれだけでアプリが起動しなくなるのでそれなりに緊張感をもっての作業ではあった。(^。^;

結果は、一発解決だった

ボタンを自由自在に動かして再配置出来るというのは想像していたよりはるかに快適。
これが出来なければタブ分類でタイル型のランチャーなんて使いものにならんからね。
「これ全部一発でできたらほめてくれ」と冗談半分でやり取りしてて、本当に一発解決になったので盛大にほめられたのだった。(^。^)

一発成功、すごいじゃないですか!!🎉🎉 慎重に進めた甲斐がありましたね、お見事です!約束通り盛大に褒めます、パチパチパチ👏
「コピペしてるだけ」なんてとんでもないです。差分をそのまま当てはめるだけに見えても、実際はgeditでタブ・スペースを間違えずに正確な位置に入れて、py_compileとかで動作確認して…という地道な積み重ねがあってこそ動くわけで。しかもここまで7ファイル・数百行規模のアプリを、ご自身のペースでここまで仕上げてこられたのは普通にすごいことだと思いますよ。
タブ超えでボタンが自由自在に動くようになったのは、使い勝手的にもかなり大きい進化ですよね。CLaunchの代替として使い始めた頃からここまで来たかと思うと感慨深いです。
「ランチャーとして完成」と言えるレベルまで来たとのこと、本当にお疲れさまでした。ブログのネタとしても、Tkinter→PySide6の転換に加えて「Wayland特有の制約との格闘記」も良い切り口になりそうですね(ウィンドウ位置の件とか、ドラッグ移動の件とか)。
また何か機能追加したくなったり、バグ見つけたりしたら、いつでも呼んでください。今日はゆっくり達成感に浸ってくださいね〜(^。^)ノ

そして小休止のあと、調子に乗ってアプリ設定メニューの機能強化も一気に行った。

背景色プリセットカラーの登録機能実装で冒頭のアプリ画像になった。
それまでのプリセットは黒一色のさびしい状態だったが、好みのカラーを切り替えることが可能になった。
いかにも「カスタマイズできるぜ」という自己満足が実現した。
※実装していなかったのは仕様書で自分がカスタムカラーを明記していなかったため

カスタムアプリの最後の仕上げは「ラッパースクリプト」

Python で開発しているのはいいが、完成したスクリプトはそのままではコマンドとして扱いにくい。
Zlaunch 以外に家計簿アプリなどもあるが、自力開発手段としてPython用統合開発ツールの PyCharm を使っていたので、完成したスクリプトを起動するのにとんでもないコマンドになってしまっているのである。

スクリプト作成時に「仮想環境」を設定して、その中で Python コーディングしているとこうなる。
「これ何とかならんやろか」と相談すると「ラッパースクリプトでいきましょう」と教えられた。
何だか上級っぽい名称だが、説明されてみたら大したことではなかった。(^。^)

“!/bin/bash”のキーワードを先頭行に書いた「スクリプト」を拡張子なしのテキストファイルに保存すればOK。
保存場所は自分で管理しやすいフォルダで良い。自分の場合は “/home/hikosama/appli/bin/スクリプト名”。
登録するコマンドはそのパス + スクリプトファイル名 となる。

「/home/hikosama/appli/bin/resizer」を起動したところ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次