README_JA.md
August 26, 2025 · View on GitHub
SwitchShuttle
ð ã°ããŒãã«ãããããŒä»ãã¯ãã¹ãã©ãããã©ãŒã ã¿ãŒããã«ã³ãã³ããããŒãžã£ãŒ
âš SwitchShuttleãšã¯ïŒ
SwitchShuttleã¯ãã¿ãŒããã«ã³ãã³ãã®ç®¡çãšå®è¡æ¹æ³ã驿°ãã匷åãªã¯ãã¹ãã©ãããã©ãŒã ã·ã¹ãã ãã¬ã€ã¢ããªã±ãŒã·ã§ã³ã§ããææ°æè¡ïŒRust + Tauri + Vue.jsïŒã§æ§ç¯ãããæãé »ç¹ã«äœ¿çšããã¿ãŒããã«æäœã®æŽçãã«ã¹ã¿ãã€ãºãè¿ éãªã¢ã¯ã»ã¹ã®ããã®ãšã¬ã¬ã³ããªã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããŸãã
ð¯ äž»ãªæ©èœ
- ð¥ïž ãã«ããã©ãããã©ãŒã ãµããŒã - macOSãWindowsãLinuxã§ã·ãŒã ã¬ã¹ã«åäœ
- â¡ ã°ããŒãã«ãããã㌠- ããŒããŒãã·ã§ãŒãã«ããã§ã©ãããã§ãå³åº§ã«ã³ãã³ããå®è¡
- ðš è€æ°ã¿ãŒããã«ãµããŒã - iTermãTerminalãWarpãAlacrittyãHyperãªã©
- ð ã¹ããŒããªæŽç - ã³ãã³ãã®æŽçã®ããã®ãã¹ããããµãã¡ãã¥ãŒãäœæ
- ð§ åçå ¥å - ãŠãŒã¶ãŒå ¥åãå¿ èŠãªã³ãã³ãã®ããã®ã€ã³ã¿ã©ã¯ãã£ããªããã³ãã
- ð è€æ°ã®å®è¡ã¢ãŒã - çŸåšã®ãŠã£ã³ããŠãæ°ããã¿ãããŸãã¯æ°ãããŠã£ã³ããŠã§å®è¡
- ð èªåèµ·å - ã·ã¹ãã èµ·åæã«èµ·åããŠå³åº§ã«ã¢ã¯ã»ã¹å¯èœ
- ðš ã¢ãã³UI - Vue.jsã§æ§ç¯ãããçŸããçŽæçãªã€ã³ã¿ãŒãã§ãŒã¹
- ð» ã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ãŒã¹ - CLIã§ã¿ãŒããã«ããçŽæ¥ã³ãã³ããå®è¡
- âïž èšå®ç®¡ç - åé€ããã«èšå®ãæå¹/ç¡å¹ã«ãã
- ð ã¹ã€ããã³ãã³ã - ããã¯ã°ã©ãŠã³ãå®è¡ã§ã·ã¹ãã æ©èœãåãæ¿ã
- ð ã¢ãã¿ãŒã³ãã³ã - èŠèŠçã€ã³ãžã±ãŒã¿ãŒä»ãã®ãªã¢ã«ã¿ã€ã ã·ã¹ãã ãªãœãŒã¹ç£èŠ
- ð ã¹ã±ãžã¥ãŒã«ã³ãã³ã - cronåŒã«ããã¿ã¹ã¯ã®èªåå
- ð¯ ãã³ãã¬ãŒãã·ã¹ãã - äžè¬çãªã¯ãŒã¯ãããŒçšã®äºåæ§ç¯ãããã³ãã³ããã³ãã¬ãŒã
ð¥ïž ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹æŠèŠ
SwitchShuttleã¯ãããã€ãã®äž»èŠã³ã³ããŒãã³ããæã€çŸä»£çãªçŽæçãªã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããŸãïŒ
ðïž ã¡ã€ã³ã€ã³ã¿ãŒãã§ãŒã¹ã³ã³ããŒãã³ã
1. èšå®ãšãã£ã¿ãŒ
- ããžã¥ã¢ã«JSONãšãã£ã¿ãŒ - ã·ã³ã¿ãã¯ã¹ãã€ã©ã€ããšããªããŒã·ã§ã³ä»ãã®èšå®ç·šé
- ãã³ãã¬ãŒãã·ã¹ãã - äžè¬çãªã¯ãŒã¯ãããŒçšã®äºåæ§ç¯ãããã³ãã³ããã³ãã¬ãŒãã®ã€ã³ããŒã
- ãªã¢ã«ã¿ã€ã ããªããŒã·ã§ã³ - èšå®ãšã©ãŒã®å³åº§ã®ãã£ãŒãããã¯
- èªåä¿å - å ¥åæã«å€æŽãèªåçã«ä¿åããã
- èšå®ç®¡ç - åé€ããã«èšå®ãæå¹/ç¡å¹ã«ãã
- æ€çŽ¢ãšãã£ã«ã¿ãŒ - ç¹å®ã®èšå®ãçŽ æ©ãèŠã€ãã
- èšå®ã®è€è£œ - ãã¹ãçšã«æ¢åã®èšå®ã®ã³ããŒãäœæ
2. ã³ãã³ã管ç
- ã³ãã³ããã«ã㌠- ããžã¥ã¢ã«ãã©ãŒã ã€ã³ã¿ãŒãã§ãŒã¹ã§ã®ã³ãã³ãäœæ
- ãããããŒèšå® - å³åº§ã®ã³ãã³ãå®è¡ã®ããã®ã°ããŒãã«ã·ã§ãŒãã«ããèšå®
- ã¢ã€ã³ã³éžæ - ããè¯ãèŠèŠçæŽçã®ããã®çµµæåã¢ã€ã³ã³éžæ
- å ¥åãã£ãŒã«ã - ã€ã³ã¿ã©ã¯ãã£ãã³ãã³ãçšã®åçå ¥åããã³ããèšå®
- ãã¹ããããµãã¡ãã¥ãŒ - éå±€çæ§é ã§ã®ã³ãã³ãæŽç
- ã³ãã³ãããªããŒã·ã§ã³ - ã³ãã³ãã·ã³ã¿ãã¯ã¹ã®ãªã¢ã«ã¿ã€ã ããªããŒã·ã§ã³
3. èšå®ããã«
- ã¿ãŒããã«éžæ - ã奜ã¿ã®ã¿ãŒããã«ã¢ããªã±ãŒã·ã§ã³ã®éžæ
- èµ·åã¢ãŒã - ã³ãã³ãå®è¡æ¹æ³ã®èšå®ïŒçŸåš/æ°ããã¿ã/æ°ãããŠã£ã³ããŠïŒ
- ããŒãèšå® - ã¢ããªã±ãŒã·ã§ã³å€èгã®ã«ã¹ã¿ãã€ãº
- èªåèµ·åèšå® - ã·ã¹ãã èµ·åæã®æå¹/ç¡å¹èšå®
- ã°ããŒãã«ãããããŒèšå® - ã¡ãã¥ãŒã¢ã¯ã»ã¹çšã®ã·ã¹ãã å šäœã·ã§ãŒãã«ããèšå®
4. ã·ã¹ãã ãã¬ã€ã¡ãã¥ãŒ
- ã¯ã€ãã¯ã¢ã¯ã»ã¹ - å³åº§ã®ã³ãã³ãã¢ã¯ã»ã¹ã®ããã®ãã¬ã€ã¢ã€ã³ã³ã®å³ã¯ãªãã¯
- ã¹ããŒã¿ã¹ã€ã³ãžã±ãŒã¿ãŒ - ã¹ã€ããã³ãã³ããšã¢ãã¿ãªã³ã°ã®èŠèŠçãã£ãŒãããã¯
- ãã¹ãããã¡ãã¥ãŒ - ç°¡åãªããã²ãŒã·ã§ã³ã®ããã®æŽçãããã³ãã³ãéå±€
- ã°ããŒãã«ãããã㌠- å³åº§ã®ã³ãã³ãå®è¡ã®ããã®ããŒããŒãã·ã§ãŒãã«ãã
- ãªã¢ã«ã¿ã€ã ã¢ãã¿ãªã³ã° - ã©ã€ãã·ã¹ãã ãªãœãŒã¹ã€ã³ãžã±ãŒã¿ãŒ
ðš ã€ã³ã¿ãŒãã§ãŒã¹æ©èœ
ããžã¥ã¢ã«ã³ãã³ããã«ããŒ
{
"name": "ð éçºãµãŒããŒãèµ·å",
"command": "npm run dev",
"hotkey": "Ctrl+Shift+D",
"icon": "ð",
"background": false,
"inputs": {
"port": "3000",
"host": "localhost"
}
}
ãã³ãã¬ãŒãã·ã¹ãã
SwitchShuttleã«ã¯äžè¬çãªéçºã¯ãŒã¯ãããŒçšã®äºåæ§ç¯ããããã³ãã¬ãŒããå«ãŸããŠããŸãïŒ
- éçº - Gitæäœããã«ãããŒã«ããã¹ã
- DevOps - DockerãKubernetesããµãŒããŒç®¡ç
- ããŒã¿ããŒã¹ - MySQLãPostgreSQLãMongoDBæäœ
- ã¯ã©ãŠã - AWSãAzureãGoogle Cloudã³ãã³ã
- ã»ãã¥ãªã㣠- ãããã¯ãŒã¯ã¹ãã£ã³ãè匱æ§è©äŸ¡
- ã¢ãã¿ãªã³ã° - ã·ã¹ãã ãªãœãŒã¹ããã°ãã¡ããªã¯ã¹
- ãŠãŒãã£ãªã㣠- ãã¡ã€ã«æäœãã·ã¹ãã ããŒã«
- ã¹ã±ãžã¥ãŒã©ãŒ - Cronãžã§ããšèªååã¿ã¹ã¯
ã¹ããŒããªæŽç
- ãã¹ããããµãã¡ãã¥ãŒ - è«ççãªã°ã«ãŒãã§ã®ã³ãã³ãæŽç
- ã¢ã€ã³ã³ãµããŒã - çµµæåã¢ã€ã³ã³ã«ããèŠèŠçèå¥
- ãããããŒç®¡ç - å³åº§ã®ã¢ã¯ã»ã¹ã®ããã®ã°ããŒãã«ã·ã§ãŒãã«ãã
- ã¹ããŒã¿ã¹ã€ã³ãžã±ãŒã¿ãŒ - ã¹ã€ããã³ãã³ãã®ãªã¢ã«ã¿ã€ã ãã£ãŒãããã¯
- æ€çŽ¢æ©èœ - ã³ãã³ãã®è¿ éãªçºèŠ
ð ã»ãã¥ãªãã£ãããŒãžã£ãŒ
SwitchShuttleã«ã¯ãæœåšçã«æå®³ãªã³ãã³ãããã·ã¹ãã ãä¿è·ããã³ãã³ãå®è¡ã现ããå¶åŸ¡ã§ããå æ¬çãªã»ãã¥ãªãã£ãããŒãžã£ãŒãå«ãŸããŠããŸãã
ð¡ïž ã»ãã¥ãªãã£æ©èœ
ã³ãã³ãæ€èšŒ
- é·ãå¶é: æå€§ã³ãã³ãé·ïŒ1000æåïŒãšå ¥åé·ïŒ500æåïŒã§ãé·ãããã³ãã³ãã鲿¢
- ãããã¯ãããã³ãã³ã: å®è¡ããŠã¯ãããªãå±éºãªã³ãã³ãã®ãªã¹ããå®çŸ©
- çããããã¿ãŒã³: æœåšçã«æå®³ãªã³ãã³ããã¿ãŒã³ãæ€åºã»ãããã¯ããããã®æ£èŠè¡šçŸãã¿ãŒã³ã䜿çš
- ãªã¢ã«ã¿ã€ã æ€èšŒ: ã³ãã³ãã¯ç·šéæã«æ€èšŒãããå®å šæ§ã確ä¿
ã»ãã¥ãªãã£èšå®
- ã»ãã¥ãªãã£ã®æå¹/ç¡å¹: å¿ èŠã«å¿ããŠã»ãã¥ãªãã£æ©èœãåãæ¿ã
- ã«ã¹ã¿ã ãããã¯ãªã¹ã: ãããã¯ãããã³ãã³ããªã¹ãã«ç¹å®ã®ã³ãã³ãã远å
- ãã¿ãŒã³ãããã³ã°: çãããã³ãã³ãæ§é ãæ€åºããããã®æ£èŠè¡šçŸãã¿ãŒã³ãå®çŸ©
- é·ãå¶é: ã³ãã³ããšãŠãŒã¶ãŒå ¥åã®æå€§é·ãèšå®
åäœåç
- ãšãã£ã¿ãŒæ€èšŒ: SecurityManagerãèšå®ãšãã£ã¿ãŒã§ã³ãã³ããä¿ååã«æ€èšŒ
- ãã¿ãŒã³ãããã³ã°: ã³ãã³ãããããã¯ããããã¿ãŒã³ãšçãããæ£èŠè¡šçŸãã¿ãŒã³ã«å¯ŸããŠãã§ãã¯
- é·ãæ€èšŒ: ã³ãã³ããšå ¥åãæå€§é·å¶éã«å¯ŸããŠæ€èšŒ
- ãããã¯ãªã¹ããã§ãã¯: ã³ãã³ãããŠãŒã¶ãŒå®çŸ©ã®ãããã¯ãããã³ãã³ããªã¹ããšæ¯èŒ
- å®å šãªèšå®: æ€èšŒãããèšå®ã®ã¿ãä¿åãšäœ¿çšãèš±å¯
ð ã¯ã€ãã¯ã¹ã¿ãŒã
ããŠã³ããŒããšã€ã³ã¹ããŒã«
ãªãã·ã§ã³1: Homebrew (macOS - æšå¥š)
# Homebrewçµç±ã§ã€ã³ã¹ããŒã«
brew tap s00d/switchshuttle
brew install --cask switchshuttle
ãªãã·ã§ã³2: æåããŠã³ããŒã
- ããŠã³ããŒã GitHub Releasesããã䜿ãã®ãã©ãããã©ãŒã çšã®ææ°ãªãªãŒã¹ãããŠã³ããŒã
- ã€ã³ã¹ããŒã« ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«
- èµ·å SwitchShuttleãèµ·å - ã·ã¹ãã ãã¬ã€ã«è¡šç€ºãããŸã
- å³ã¯ãªã㯠ãã¬ã€ã¢ã€ã³ã³ãå³ã¯ãªãã¯ããŠã¡ãã¥ãŒã«ã¢ã¯ã»ã¹
åæèšå®
- èšå®ãšãã£ã¿ãŒãéã - ã·ã¹ãã ãã¬ã€ã¡ãã¥ãŒã®ãèšå®ãç·šéããã¯ãªãã¯
- ã¿ãŒããã«ãéžæ - ã奜ã¿ã®ã¿ãŒããã«ã¢ããªã±ãŒã·ã§ã³ãéžæ
- ã³ãã³ãã远å - ããžã¥ã¢ã«ãšãã£ã¿ãŒã䜿çšããããã³ãã¬ãŒããã€ã³ããŒã
- ãããããŒãèšå® - ã¯ã€ãã¯ã¢ã¯ã»ã¹ã®ããã®ã°ããŒãã«ã·ã§ãŒãã«ãããèšå®
- ä¿åããŠåèµ·å - ã³ãã³ãããã¬ã€ã¡ãã¥ãŒã§å©çšå¯èœã«ãªããŸã
ã€ã³ã¿ãŒãã§ãŒã¹ã®ã¹ããããã€ã¹ãããã¬ã€ã
ã¹ããã1: èšå®ãšãã£ã¿ãŒ
- SwitchShuttleãéãããšãã£ã¿ãŒãã¿ãã«ç§»å
- ã¿ãŒããã«ã¢ããªã±ãŒã·ã§ã³ãéžæïŒiTermãTerminalãWarpãªã©ïŒ
- èµ·åã¢ãŒããèšå®ïŒçŸåšã®ãŠã£ã³ããŠãæ°ããã¿ãããŸãã¯æ°ãããŠã£ã³ããŠïŒ
- ã¡ãã¥ãŒã¢ã¯ã»ã¹çšã®ã°ããŒãã«ãããããŒãèšå®
ã¹ããã2: ã³ãã³ãã®è¿œå
- ãã³ãã³ãã远å ããã¯ãªãã¯ããŠæ°ããã³ãã³ããäœæ
- ã³ãã³ãã®è©³çްãå
¥åïŒ
- åå: ã³ãã³ãã®è¡šç€ºå
- ã³ãã³ã: å®è¡ããå®éã®ã¿ãŒããã«ã³ãã³ã
- ãããããŒ: ã°ããŒãã«ã·ã§ãŒãã«ããïŒãªãã·ã§ã³ïŒ
- ã¢ã€ã³ã³: èŠèŠçèå¥ã®ããã®çµµæåã¢ã€ã³ã³
- ããã¯ã°ã©ãŠã³ã: ããã¯ã°ã©ãŠã³ãã§å®è¡ãããã©ãã
- å ¥å: ã€ã³ã¿ã©ã¯ãã£ãã³ãã³ãçšã®åçå ¥åãã£ãŒã«ã
ã¹ããã3: ãã³ãã¬ãŒãã®äœ¿çš
- ããã³ãã¬ãŒããã€ã³ããŒãããã¯ãªãã¯ããŠäºåæ§ç¯ãããã³ãã³ãã³ã¬ã¯ã·ã§ã³ã«ã¢ã¯ã»ã¹
- éçºãDevOpsãããŒã¿ããŒã¹ãªã©ã®ã«ããŽãªãé²èЧ
- å¿ èŠãªãã³ãã¬ãŒããéžæããŠã€ã³ããŒã
- å¿ èŠã«å¿ããŠã€ã³ããŒããããã³ãã³ããã«ã¹ã¿ãã€ãº
ã¹ããã4: ã·ã¹ãã ãã¬ã€ã¢ã¯ã»ã¹
- SwitchShuttleãã¬ã€ã¢ã€ã³ã³ãå³ã¯ãªãã¯
- æŽçãããã³ãã³ãã¡ãã¥ãŒãé²èЧ
- å³åº§ã®ã³ãã³ãå®è¡ã®ããã®ã°ããŒãã«ãããããŒã䜿çš
- ãªã¢ã«ã¿ã€ã ã€ã³ãžã±ãŒã¿ãŒã§ã·ã¹ãã ã¹ããŒã¿ã¹ãç£èŠ
ã¹ããã5: é«åºŠãªæ©èœ
- ã¹ã€ããã³ãã³ã: èŠèŠçã¹ããŒã¿ã¹ã€ã³ãžã±ãŒã¿ãŒä»ãã®ã·ã¹ãã æ©èœåãæ¿ã
- ã¢ãã¿ãŒã³ãã³ã: ã·ã¹ãã ãªãœãŒã¹ã®ãªã¢ã«ã¿ã€ã ç£èŠ
- ã¹ã±ãžã¥ãŒã«ã³ãã³ã: cronåŒã«ããã¿ã¹ã¯ã®èªåå
- ãã¹ãããã¡ãã¥ãŒ: éå±€çæ§é ã§ã®ã³ãã³ãæŽç
ð» ã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ãŒã¹ïŒCLIïŒ
SwitchShuttleã¯ãGUIãéããã«ã³ãã³ããè¿ éã«å®è¡ããããã®åŒ·åãªã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããŸãã
CLIã®äœ¿çš
ã³ãã³ãã®å®è¡
# ã³ãã³ãIDã§å®è¡
switch-shuttle cmd_8
# ã³ãã³ãåã§å®è¡ïŒå€§æåå°æåãåºå¥ããªãïŒ
switch-shuttle "äŸã®ã³ãã³ã"
ãã¹ãŠã®ã³ãã³ãããªã¹ã
# IDä»ãã§å©çšå¯èœãªãã¹ãŠã®ã³ãã³ãã衚瀺
switch-shuttle --list
# ãŸãã¯
switch-shuttle -l
ã³ãã³ãã®æ€çŽ¢
# ç¹å®ã®ããã¹ããå«ãã³ãã³ããæ€çŽ¢
switch-shuttle --search "git"
# ãŸãã¯
switch-shuttle -s "docker"
ç°ãªããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ã®CLIå®è¡
macOS
# Homebrewçµç±ã§ã€ã³ã¹ããŒã«ããå Žå
switch-shuttle --list
# æåã§ã€ã³ã¹ããŒã«ããå Žå
/Applications/switch-shuttle.app/Contents/MacOS/SwitchShuttle --list
# ããç°¡åãªã¢ã¯ã»ã¹ã®ããã®ãšã€ãªã¢ã¹ãäœæ
echo 'alias switch-shuttle="/Applications/switch-shuttle.app/Contents/MacOS/SwitchShuttle"' >> ~/.zshrc
source ~/.zshrc
Windows
# ã€ã³ã¹ããŒã©ãŒçµç±ã§ã€ã³ã¹ããŒã«ããå Žå
"C:\Program Files\SwitchShuttle\switch-shuttle.exe" --list
# wingetãŸãã¯chocolateyçµç±ã§ã€ã³ã¹ããŒã«ããå Žå
switch-shuttle --list
# ããç°¡åãªã¢ã¯ã»ã¹ã®ããã«PATHã«è¿œå
# ã·ã¹ãã PATHã«"C:\Program Files\SwitchShuttle"ã远å
Linux
# ããã±ãŒãžãããŒãžã£ãŒçµç±ã§ã€ã³ã¹ããŒã«ããå Žå
switch-shuttle --list
# æåã§ã€ã³ã¹ããŒã«ããå Žå
./switch-shuttle --list
# å®è¡å¯èœã«ããŠPATHã«è¿œå
chmod +x switch-shuttle
sudo mv switch-shuttle /usr/local/bin/
CLIã®äŸ
# ã¯ã€ãã¯Gitæäœ
switch-shuttle "git status"
switch-shuttle "git pull"
# éçºã¯ãŒã¯ãããŒ
switch-shuttle "npm run dev"
switch-shuttle "docker-compose up"
# å©çšå¯èœãªãã¹ãŠã®ã³ãã³ãããªã¹ã
switch-shuttle --list
# ããŒã¿ããŒã¹é¢é£ã®ã³ãã³ããæ€çŽ¢
switch-shuttle --search "database"
CLIæ©èœ
- ð é«éå®è¡ - ã¿ãŒããã«ããå³åº§ã«ã³ãã³ããå®è¡
- ð ã¹ããŒãæ€çŽ¢ - IDãŸãã¯ååã§ã³ãã³ããæ€çŽ¢
- ð ã³ãã³ããªã¹ã - å©çšå¯èœãªãã¹ãŠã®ã³ãã³ãã衚瀺
- â¡ GUIäžèŠ - èªååãšã¹ã¯ãªããã«æé©
- ð å®è¡åŸçµäº - ã¯ãªãŒã³ãªã¿ãŒããã«äœéš
ð èšå®ã¬ã€ã
åºæ¬æ§é
SwitchShuttleã¯JSONèšå®ãã¡ã€ã«ã䜿çšãã以äžã«ä¿åãããŸãïŒ
- macOS/Linux:
~/.config/switch-shuttle/ - Windows:
C:\Users\<ãŠãŒã¶ãŒå>\AppData\Roaming\switch-shuttle\
ç°¡åãªäŸ
{
"terminal": "iterm",
"launch_in": "new_tab",
"title": "ç§ã®ã³ãã³ã",
"commands": [
{
"name": "ð éçºãµãŒããŒãèµ·å",
"command": "npm run dev",
"hotkey": "Ctrl+Shift+D"
},
{
"name": "ðŠ äŸåé¢ä¿ãã€ã³ã¹ããŒã«",
"command": "npm install",
"hotkey": "Ctrl+Shift+I"
},
{
"name": "ð§ éçºããŒã«",
"submenu": [
{
"name": "𧪠ãã¹ããå®è¡",
"command": "npm test",
"hotkey": "Ctrl+Shift+T"
},
{
"name": "ð ãããžã§ã¯ãããã«ã",
"command": "npm run build",
"hotkey": "Ctrl+Shift+B"
}
]
}
]
}
é«åºŠãªæ©èœ
ð§ åçå ¥å
ãŠãŒã¶ãŒå ¥åãå¿ èŠãªã€ã³ã¿ã©ã¯ãã£ããªã³ãã³ããäœæïŒ
{
"name": "ð æ°ããã³ã³ããŒãã³ããäœæ",
"inputs": {
"componentName": "MyComponent",
"componentType": "functional"
},
"commands": [
"mkdir -p src/components/[componentName]",
"touch src/components/[componentName]/index.tsx",
"echo 'import React from \"react\";' > src/components/[componentName]/index.tsx",
"echo 'export const [componentName] = () => <div>[componentName]</div>;' >> src/components/[componentName]/index.tsx"
],
"hotkey": "Ctrl+Shift+N"
}
ð è€æ°ã³ãã³ã
ã³ãã³ãã·ãŒã±ã³ã¹ãå®è¡ïŒ
{
"name": "ð å®å
šãªéçºãµã€ã¯ã«",
"commands": [
"git pull origin main",
"npm install",
"npm run lint",
"npm run test",
"npm run build"
],
"background": true,
"hotkey": "Ctrl+Shift+F"
}
â° ã¹ã±ãžã¥ãŒã«ã³ãã³ãïŒCronïŒ
cronåŒã䜿çšããŠã³ãã³ããèªåå®è¡ããããã«ã¹ã±ãžã¥ãŒã«ïŒ
{
"name": "ð èªåããã¯ã¢ãã",
"commands": [
"rsync -av /source/ /backup/"
],
"scheduler": "0 2 * * *",
"background": true,
"hotkey": "Ctrl+Shift+B"
}
CronåŒãã©ãŒããã:
ã¹ã±ãžã¥ãŒã©ãŒã¯6ãã£ãŒã«ãã®æšæºcronåŒã䜿çšïŒç§ å æ æ¥ æ ææ¥
äžè¬çãªCronäŸ:
"0 0 * * * *"- æ¯æ0å"0 0 2 * * *"- æ¯æ¥åå2æ"0 30 9 * * 1-5"- å¹³æ¥åå9æ30å"0 0 12 * * 1"- æ¯é±æææ¥æ£å"0 0 0 1 * *"- æ¯æ1æ¥"0 */15 * * * *"- 15åããš"0 0 0 * * 0"- æ¯é±æ¥ææ¥æ·±å€
ã¹ã±ãžã¥ãŒã©ãŒæ©èœ:
- ããã¯ã°ã©ãŠã³ãå®è¡ - ã¿ãŒããã«ãéããã«ã³ãã³ããéãã«å®è¡
- CronãµããŒã - å®å šãªcronåŒããŒã¹ãšå®è¡
- ãšã©ãŒãã³ããªã³ã° - cronããŒã¹ãšã©ãŒæã®é©åãªãã©ãŒã«ããã¯
- ã¯ãã¹ãã©ãããã©ãŒã - macOSãWindowsãLinuxã§åäœ
ð¥ïž ããã¯ã°ã©ãŠã³ãå®è¡
ã³ãã³ãã®å®è¡æ¹æ³ãå¶åŸ¡ - ConsolePoolã䜿çšããããã¯ã°ã©ãŠã³ããŸãã¯éåžžã®ã¿ãŒããã«å®è¡ïŒ
{
"name": "ð ãµãŒããŒãèµ·å",
"commands": [
"npm run dev"
],
"background": true,
"hotkey": "Ctrl+Shift+S"
}
ããã¯ã°ã©ãŠã³ãå®è¡ãªãã·ã§ã³:
"background": true- ConsolePoolã䜿çšããå®è¡ïŒããã¯ã°ã©ãŠã³ãïŒ"background": false- éåžžã®ã¿ãŒããã«å®è¡"background": nullãŸãã¯çç¥ - ã³ãã³ãã¿ã€ãã«åºã¥ãèªåæ€åº
ð ãã¹ããããµãã¡ãã¥ãŒ
éå±€çã¡ãã¥ãŒã§ã³ãã³ããæŽçïŒ
{
"name": "ð³ Dockeræäœ",
"submenu": [
{
"name": "ð ãµãŒãã¹ãèµ·å",
"submenu": [
{
"name": "ðïž éçº",
"command": "docker-compose -f docker-compose.dev.yml up -d"
},
{
"name": "ð æ¬çª",
"command": "docker-compose -f docker-compose.prod.yml up -d"
}
]
},
{
"name": "ð ãã¹ãŠåæ¢",
"command": "docker-compose down"
}
]
}
ð ã¹ã€ããã³ãã³ã
ããã¯ã°ã©ãŠã³ãå®è¡ã§ã·ã¹ãã æ©èœãåãæ¿ãïŒ
{
"name": "ð§ ã·ã¹ãã å¶åŸ¡",
"submenu": [
{
"name": "ð¶ WiFiãåãæ¿ã",
"command": "networksetup -setairportpower en0 toggle",
"switch": "networksetup -getairportpower en0 | grep -q 'On' && echo 'true' || echo 'false'"
},
{
"name": "ð Bluetoothãåãæ¿ã",
"command": "blueutil -p toggle",
"switch": "blueutil -p | grep -q '1' && echo 'true' || echo 'false'"
},
{
"name": "ð ããŒã¯ã¢ãŒããåãæ¿ã",
"command": "osascript -e 'tell app \"System Events\" to tell appearance preferences to set dark mode to not dark mode'",
"switch": "osascript -e 'tell app \"System Events\" to tell appearance preferences to get dark mode'"
}
]
}
ã¹ã€ããã³ãã³ãæ©èœ:
- ããã¯ã°ã©ãŠã³ãå®è¡ - ã¿ãŒããã«ãéããã«ã³ãã³ããéãã«å®è¡
- ã¹ããŒã¿ã¹ãã§ã㯠- çŸåšã®ç¶æ ãèªåçã«æ€åº
- èŠèŠçãã£ãŒããã㯠- ã¡ãã¥ãŒã§æå¹/ç¡å¹ã¹ããŒã¿ã¹ã衚瀺
- ã¯ãã¹ãã©ãããã©ãŒã - macOSãWindowsãLinuxã§åäœ
ð ã¢ãã¿ãŒã³ãã³ã
ãªã¢ã«ã¿ã€ã æ å ±ã§ã·ã¹ãã ãªãœãŒã¹ãšãµãŒãã¹ãç£èŠïŒ
{
"name": "ð ã·ã¹ãã ç£èŠ",
"submenu": [
{
"name": "ðŸ ã¡ã¢ãªäœ¿çšé",
"command": "top -l 1 | head -n 10",
"monitor": "memory",
"icon": "ð§ "
},
{
"name": "ð» CPUè² è·",
"command": "top -l 1 | grep 'CPU usage'",
"monitor": "cpu",
"icon": "â¡"
},
{
"name": "ðŸ ãã£ã¹ã¯å®¹é",
"command": "df -h | grep '/dev/'",
"monitor": "disk",
"icon": "ðŸ"
},
{
"name": "ð ãããã¯ãŒã¯ã¹ããŒã¿ã¹",
"command": "ifconfig | grep -E 'inet |status:'",
"monitor": "network",
"icon": "ð"
}
]
}
ã¢ãã¿ãŒã³ãã³ãæ©èœ:
- ã¡ãã¥ãŒçµ±å - ã·ã¹ãã ãã¬ã€ã¡ãã¥ãŒã«ç£èŠãã¿ã³ã远å
- ã³ãã³ãå®è¡ - ã¡ãã¥ãŒãéãããšãã«ç£èŠã³ãã³ããå®è¡
- ããŒã¿è¡šç€º - ã¡ãã¥ãŒã€ã³ã¿ãŒãã§ãŒã¹ã§ã³ãã³ãåºåãçŽæ¥è¡šç€º
- èŠèŠçã€ã³ãžã±ãŒã¿ãŒ - ã¡ãã¥ãŒã®ã¢ã€ã³ã³ãšã¹ããŒã¿ã¹ã€ã³ãžã±ãŒã¿ãŒ
- ã¯ãã¹ãã©ãããã©ãŒã - macOSãWindowsãLinuxã§åäœ
âïž èšå®ãªãã¡ã¬ã³ã¹
ã¡ã€ã³èšå®
| ãã©ã¡ãŒã¿ | ã¿ã€ã | 説æ | ããã©ã«ã |
|---|---|---|---|
terminal | String | 䜿çšããã¿ãŒããã«ã¢ããªã±ãŒã·ã§ã³ | "terminal" |
launch_in | String | ã³ãã³ããèµ·åããå Žæ | "current" |
theme | String | ã¿ãŒããã«ããŒãïŒãµããŒããããŠããå ŽåïŒ | - |
title | String | ãŠã£ã³ããŠ/ã¿ãã¿ã€ãã« | - |
menu_hotkey | String | ã¡ãã¥ãŒãéãã°ããŒãã«ãããã㌠| - |
commands | Array | ã³ãã³ãèšå®ã®ãªã¹ã | [] |
enabled | Boolean | ãã®èšå®ãèªã¿èŸŒããã©ãã | true |
ã¿ãŒããã«ãªãã·ã§ã³
| ã¿ãŒããã« | macOS | Windows | Linux |
|---|---|---|---|
iterm | â | â | â |
terminal | â | â | â |
warp | â | â | â |
alacritty | â | â | â |
hyper | â | â | â |
èµ·åã¢ãŒã
| ã¢ãŒã | 説æ |
|---|---|
current | çŸåšã®ã¿ãŒããã«ãŠã£ã³ããŠã§å®è¡ |
new_tab | æ°ããã¿ããéããŠå®è¡ |
new_window | æ°ãããŠã£ã³ããŠãéããŠå®è¡ |
ã³ãã³ãèšå®
| ãã©ã¡ãŒã¿ | ã¿ã€ã | å¿ é | 説æ |
|---|---|---|---|
name | String | â | ã³ãã³ãã®è¡šç€ºå |
commands | Array | â | å®è¡ããè€æ°ã®ã³ãã³ã |
submenu | Array | â | ãã¹ããããµãã³ãã³ã |
switch | String | â | ã¹ã€ããç¶æ ããã§ãã¯ããã³ãã³ãïŒtrue/falseãè¿ãïŒ |
monitor | String | â | ç£èŠçšã®è¡šç€ºå€ãååŸããã³ãã³ã |
inputs | Object | â | åçå ¥åãã£ãŒã«ã |
hotkey | String | â | ã°ããŒãã«ãããããŒã·ã§ãŒãã«ãã |
icon | String | â | èŠèŠçèå¥ã®ããã®çµµæåã¢ã€ã³ã³ |
background | Boolean | â | ããã¯ã°ã©ãŠã³ãã§å®è¡ïŒConsolePoolïŒãŸãã¯éåžžã®ã¿ãŒããã« |
scheduler | String | â | ã¹ã±ãžã¥ãŒã«å®è¡ã®ããã®cronåŒ |
èšå®ç®¡ç
èšå®ã®æå¹/ç¡å¹
åå¥ã®èšå®ãã¡ã€ã«ãæå¹ãŸãã¯ç¡å¹ã«ããŠãã·ã¹ãã ãã¬ã€ã¡ãã¥ãŒã§å©çšå¯èœãªã³ãã³ããå¶åŸ¡ã§ããŸããããã¯ä»¥äžã«åœ¹ç«ã¡ãŸãïŒ
- äžæçãªç¡å¹å - åé€ããã«èšå®ãç¡å¹å
- ãã¹ã - éçºäžã®èšå®ã®æå¹/ç¡å¹å
- æŽç - è€æ°ã®èšå®ãä¿æããç¹å®ã®ãã®ã®ã¿äœ¿çš
ããžã¥ã¢ã«ãšãã£ã¿ãŒã§:
- èšå®ãšãã£ã¿ãŒãéã
- ãèšå®ã¹ããŒã¿ã¹ãã»ã¯ã·ã§ã³ã®ãã°ã«ã¹ã€ããã䜿çš
- æå¹ãªèšå®ã¯èªã¿èŸŒãŸããã¡ãã¥ãŒã§å©çšå¯èœ
- ç¡å¹ãªèšå®ã¯ç¡èŠããã
JSONèšå®ã§:
{
"terminal": "iterm",
"launch_in": "current",
"title": "ç§ã®ã³ãã³ã",
"enabled": true,
"commands": [
{
"name": "äŸã®ã³ãã³ã",
"command": "echo Hello World"
}
]
}
| ãã©ã¡ãŒã¿ | ã¿ã€ã | ããã©ã«ã | 説æ |
|---|---|---|---|
enabled | Boolean | true | ãã®èšå®ãèªã¿èŸŒã¿ãã¡ãã¥ãŒã§å©çšå¯èœã«ãããã©ãã |
泚æ: enabledãfalseã«èšå®ãããŠãããçç¥ãããŠããå Žåãèšå®ã¯ç¡èŠããããã®ã³ãã³ãã¯ã·ã¹ãã ãã¬ã€ã¡ãã¥ãŒã«è¡šç€ºãããŸããã
ð¯ ãŠãŒã¹ã±ãŒã¹
ðšâð» éçºè
- ã¯ã€ãã¯ãããžã§ã¯ãããã²ãŒã·ã§ã³ - ç°ãªããããžã§ã¯ãã«å³åº§ã«ãžã£ã³ã
- ãã«ããšãã¹ãã¯ãŒã¯ãã㌠- ã¯ã³ã¯ãªãã¯éçºãµã€ã¯ã«
- Docker管ç - ãããããŒã§ã³ã³ããã®éå§/忢
- Gitæäœ - æå ã®äžè¬çãªgitã³ãã³ã
- éçºãµãŒããŒç®¡ç - éçºãµãŒããŒã®éå§/忢
- ã³ãŒãå質ããŒã« - ãªã³ã¿ãŒããã©ãŒããã¿ãŒããã¹ãã®å®è¡
ð ïž DevOpsãšã³ãžãã¢
- ãµãŒããŒç®¡ç - SSHæ¥ç¶ãšãµãŒããŒã³ãã³ã
- ç£èŠããŒã« - ãã°ãšã¡ããªã¯ã¹ãžã®ã¯ã€ãã¯ã¢ã¯ã»ã¹
- ãããã€ã¡ã³ãã¹ã¯ãªãã - èªååããããããã€ã¡ã³ãã¯ãŒã¯ãããŒ
- ããŒã¿ããŒã¹æäœ - äžè¬çãªããŒã¿ããŒã¹ã³ãã³ã
- ã³ã³ãããªãŒã±ã¹ãã¬ãŒã·ã§ã³ - DockerãšKubernetes管ç
- ã€ã³ãã©ç£èŠ - ã·ã¹ãã ãªãœãŒã¹ãã©ããã³ã°
ðš ãã¶ã€ããŒ
- ã¢ã»ããæé©å - ç»ååŠçãšæé©å
- ãã¶ã€ã³ã·ã¹ãã ããŒã« - ã³ã³ããŒãã³ãçæãšæŽæ°
- ãããã¿ã€ããµãŒã㌠- ã¯ã€ãã¯ãã¶ã€ã³ãµãŒããŒèµ·å
- ãã¶ã€ã³ããŒã«èªåå - ãããåŠçãšã¯ãŒã¯ãããŒ
ð§ ã·ã¹ãã 管çè
- ã·ã¹ãã ç£èŠ - ãªã¢ã«ã¿ã€ã ãªãœãŒã¹ç£èŠ
- ãµãŒãã¹ç®¡ç - ã·ã¹ãã ãµãŒãã¹ã®éå§/忢
- ããã¯ã¢ããèªåå - ã¹ã±ãžã¥ãŒã«ãããããã¯ã¢ããæäœ
- ãããã¯ãŒã¯ããŒã« - ãããã¯ãŒã¯èšºæãšèšå®
- ã»ãã¥ãªãã£ããŒã« - è匱æ§ã¹ãã£ã³ãšè©äŸ¡
- ã¡ã³ããã³ã¹ã¿ã¹ã¯ - ã·ã¹ãã ã¯ãªãŒã³ã¢ãããšæé©å
ð§ ãœãŒã¹ããã®ãã«ã
åææ¡ä»¶
- Rust (ææ°ã®å®å®ç)
- Node.js (v16以äž)
- pnpm (æšå¥šããã±ãŒãžãããŒãžã£ãŒ)
- Tauri CLI
ãã«ãæé
# ãªããžããªãã¯ããŒã³
git clone https://github.com/s00d/switchshuttle.git
cd switchshuttle
# äŸåé¢ä¿ãã€ã³ã¹ããŒã«
pnpm install
# éçºã¢ãŒã
pnpm run tauri dev
# æ¬çªçšãã«ã
pnpm run tauri build
ãã©ãããã©ãŒã åºæã®æ³šæäºé
macOS
# 眲åã®åé¡ãçºçããå Žå
chmod +x /Applications/switch-shuttle.app
xattr -cr /Applications/switch-shuttle.app
codesign --force --deep --sign - /Applications/switch-shuttle.app
Windows
# RustãšNode.jsãã€ã³ã¹ããŒã«
# äžèšã®ãã«ãæé ã«åŸã
Linux
# ã·ã¹ãã äŸåé¢ä¿ãã€ã³ã¹ããŒã«
sudo apt-get update
sudo apt-get install libwebkit2gtk-4.0-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev
# äžèšã®ãã«ãæé ã«åŸã
ð€ è²¢ç®
è²¢ç®ãæè¿ããŸãïŒä»¥äžã®æ¹æ³ã§ãæäŒãã§ããŸãïŒ
- ãã©ãŒã¯ ãªããžããªããã©ãŒã¯
- äœæ æ©èœãã©ã³ããäœæ (
git checkout -b feature/amazing-feature) - ã³ããã 倿Žãã³ããã (
git commit -m 'Add amazing feature') - ããã·ã¥ ãã©ã³ãã«ããã·ã¥ (
git push origin feature/amazing-feature) - ãªãŒãã³ ãã«ãªã¯ãšã¹ããéã
éçºã¬ã€ãã©ã€ã³
- æ¢åã®ã³ãŒãã¹ã¿ã€ã«ã«åŸã
- æ°æ©èœã®ãã¹ãã远å
- å¿ èŠã«å¿ããŠããã¥ã¡ã³ããæŽæ°
- ã¯ãã¹ãã©ãããã©ãŒã äºææ§ã確ä¿
- ããã±ãŒãžç®¡çã«pnpmã䜿çš
éçºã»ããã¢ãã
# äŸåé¢ä¿ãã€ã³ã¹ããŒã«
pnpm install
# éçºãµãŒããŒãèµ·å
pnpm run tauri dev
# åãã§ãã¯ãå®è¡
pnpm run type-check
# æ¬çªçšãã«ã
pnpm run tauri build
ð ã©ã€ã»ã³ã¹
ãã®ãããžã§ã¯ãã¯MITã©ã€ã»ã³ã¹ã®äžã§ã©ã€ã»ã³ã¹ãããŠããŸã - 詳现ã¯LICENSEãã¡ã€ã«ãåç §ããŠãã ããã
ð è¬èŸ
- å ã®Shuttleãããžã§ã¯ãã«è§Šçº
- ã¯ãã¹ãã©ãããã©ãŒã ãã¹ã¯ãããã¢ããªçšã«Tauriã§æ§ç¯
- UI powered by Vue.js
- Tailwind CSSã§ã¹ã¿ã€ãªã³ã°
ð ãµããŒã
- Issues: GitHub Issues
- Releases: GitHub Releases
- Documentation: GitHub Wiki
SwitchShuttleã³ãã¥ããã£ã«ãã£ãŠâ€ïžã§äœæ
â ãã®ãªããžããªã圹ç«ã€ãšæã£ããæãã€ããŠãã ããïŒ