Belajar AutoHotKey dengan Mencuri Skrip Saya
(hillelwayne.com)- AutoHotKey adalah alat otomasi Windows yang kuat, tetapi terasa memberatkan untuk mulai dipakai, jadi kumpulan skrip pribadi yang benar-benar digunakan dibagikan sebagai materi belajar
- Materi ini terdiri dari total 14 file, berfokus pada contoh otomasi yang bisa langsung dicoba seperti membuka folder, menyisipkan teks, dan memperluas shortcut per aplikasi
- Isinya mencakup input cepat untuk tanggal saat ini, em dash,
¯\_(ツ)_/¯, hingga sistem shortcut modal untuk pengguna vim dan demo GUI sederhana - Ada juga skrip yang mengubah stempel waktu menjadi UTC dan waktu lokal, sehingga terlihat otomasi alur kerja praktis yang melampaui sekadar shortcut
- Setiap file berisi komentar tentang apa yang dilakukan kodenya, dan sebagian juga menjelaskan mengapa implementasinya dibuat seperti itu, sehingga enak dibaca sebagai codebase edukatif
Kumpulan contoh AutoHotKey yang dekat dengan pekerjaan nyata
- Untuk pengguna yang merasa AutoHotKey](https://www.autohotkey.com/) sulit dipelajari, sebagian besar skrip pribadi yang digunakan sehari-hari dibagikan beserta penjelasannya
- Seluruh kode dapat dilihat di repositori GitHub dan terdiri dari total 14 file
- Contoh utamanya adalah sebagai berikut
Cara membacanya sebagai codebase edukatif
- Repositori ini adalah contoh codebase edukatif yang dibuat agar orang bisa belajar dengan membaca kodenya
- Setiap file berisi banyak komentar tentang apa yang dilakukan kode tersebut, dan beberapa implementasi juga menjelaskan alasan memilih pendekatan tertentu
- Penjelasan terpisah tentang codebase edukatif dilanjutkan dalam artikel newsletter
- Bagian yang masih memerlukan penjelasan lebih lanjut dapat diminta melalui GitHub Issues
1 komentar
Opini di Hacker News
Rasanya ini pertama kalinya saya bisa menambahkan sesuatu yang berguna dalam diskusi terkait kode. Sebagai penulis, saya membuat skrip AutoHotkey untuk cepat membuka notepad.exe kosong kapan saja; saat tombol
~ditekan, ia terbuka, lalu saat ditekan lagi ia tertutup, dan jika ada isi, dialog simpan akan munculItu saja yang dilakukan AHK saya
Saat ingin berpindah cepat ke jendela sebelumnya tanpa menutup atau meminimalkan jendela, shortcut bawaan Windows Alt + Escape berguna. Tidak seperti Alt+Tab, ia langsung berpindah ke jendela yang terakhir mendapat fokus tanpa menampilkan overview jendela
Di AutoHotkey v1, Anda bisa membuat boilerplate switcher/launcher yang mencari potongan judul jendela untuk mengaktifkannya; jika sudah aktif, kembali dengan
send, !{escape}; dan jika tidak ada, menjalankannya. Jika tidak ingin mengacaukan taskbar, Anda juga bisa memakaiWinHide/WinShow, tetapi pada beberapa jendela ini kurang cocok, dan untuk deteksi jendela kadangahk_exeatauahk_classlebih tepatWinActive("Untitled - Notepad")danWinExist("*Untitled - Notepad")untuk menutup atau mengaktifkannya, dan jika tidak ada, menjalankanRun "Notepad"WinActive()atauWinExist(), beberapa kondisi judul bisa digabung denganor, dan jika perlu, kondisi ahk_class juga bisa disertakan seperti"Untitled - Notepad ahk_class Notepad"AutoHotkey memang hebat, tetapi saya berharap bahasanya sedikit lebih normal. Saya sempat kesulitan saat mencoba membuat versi rasio emas dari Aero Snap yang stabil; rasanya tidak ada alasan mengapa menangani banyak monitor dan ukuran harus sesulit ini, tetapi sintaks
Loopyang aneh atau kegagalan diam-diam akibat kesalahan sederhana membuatnya tidak menyenangkan dan akhirnya saya menyerahSaya juga menemukan modul ahk untuk Python, tetapi saat digabung dengan modul
keyboard, ia tidak bekerja sebaik AutoHotkey sebagai listener shortcuthttps://github.com/idbrii/daveconfig/blob/main/win/autohotke...
https://pypi.org/project/ahk/
Saat pernikahan, saya membuat photobooth dengan AutoHotKey. Saya memakai software sederhana untuk mengendalikan Nikon milik tunangan saya lewat USB, bersama IrfanView di laptop; IrfanView disetel untuk memantau folder agar selalu menampilkan foto terbaru
Dengan AutoHotKey saya membuat GUI sederhana berisi tombol Preview, Autofocus, dan “SNAP”; saat SNAP ditekan, setelah hitung mundur besar, foto diambil, software kamera diminimalkan, lalu IrfanView ditampilkan. Beberapa detik kemudian kembali lagi ke GUI tombol, para tamu menyukainya, dan kami menghemat ratusan euro biaya sewa photobooth sekaligus mendapat foto-foto bagus
Skrip AutoHotKey ini mengubah segalanya bagi saya. Saya memetakan Ctrl + Shift + V menjadi paste tanpa format, sehingga clipboard diubah menjadi teks, ditempelkan, menunggu sebentar, lalu clipboard asli dipulihkan
https://learn.microsoft.com/en-us/windows/powertoys/
https://stevemiller.net/puretext/
Akan bagus juga kalau ada clipboard multi-nilai seperti 5 klip terakhir, tetapi mungkin itu permintaan yang terlalu besar
AHK adalah salah satu aplikasi yang saya pasang erat di Windows. Saya memakainya untuk menambahkan karakter seperti äöüß dan áóúñ ke keyboard, mengontrol tingkat kecerahan lampu kamar dan apartemen, memasukkan timestamp seperti
08:39 –,2023-08-22 08:39:46,2023-08-22 — Tuesdaydengan satu atau dua tombol, serta menyalakan dan mematikan daya monitor lewat stopkontak berdukungan Tasmota saat tombol Pause di-toggleHanya saja, saya berharap ada fitur untuk memakai keyboard kedua seperti button pad sambil menelan input tombolnya. Jadi, untuk mendapat lebih banyak tombol, saya sedang memakai keyboard Bluetooth kecil yang dihubungkan ke Raspberry Pi Zero
https://www.hammerspoon.org/
https://miquelvir.medium.com/secondkeyboard-1c39e52e023b
Ada juga yang ini: https://github.com/evilC/AutoHotInterception
https://github.com/autokey/autokey
Saya juga selalu memakai AutoHotKey. Saya memasukkan 6 jenis shortcut stempel tanggal/waktu, launcher PuTTY/SSH untuk host dan port serial yang sering dipakai, launcher berbasis status untuk lebih dari 10 aplikasi seperti Outlook, Windows Terminal, dan Total Commander, paste tanpa format di mana saja, paste dengan penghapusan line break, layer input AltGr untuk karakter khusus dan emoji, sampai shortcut media/volume
https://gist.github.com/raveren/bac5196d2063665d2154
Di laptop Linux pribadi, saya menukar Caps Lock dan Escape, dan sekarang sudah terbiasa. Saat dual boot ke Windows, saya memakai Powertoys untuk pengaturan yang sama, tetapi di kantor saya tidak bisa memasang Powertoys atau Uncap, jadi satu-satunya pilihan adalah AutoHotKey
Setelah mengikuti jawaban StackOverflow, Caps Lock dan Escape malah sama-sama mengirim kedua tombol sekaligus, sehingga kadang merusak pesan Teams saya
https://github.com/microsoft/PowerToys
https://github.com/susam/uncap
https://stackoverflow.com/questions/38558376/how-to-map-caps...
https://github.com/jtroo/kanata
Misalnya, https://github.com/evilC/TapHoldManager mengimplementasikan ini di AHK. Jika Shift/Ctrl/Win/Alt ditempatkan di bawah
fdsadanjkl;, penggunaan jari kelingking berkurang dan jari bisa lebih lama berada di home rowCapsLock::Esc,Esc::CapsLockSaya juga merangkum quick win AHK lain seperti menjalankan program dengan shortcut global: https://nickjanetakis.com/blog/remap-and-set-global-hotkeys-...
https://superuser.com/questions/550679/where-can-i-find-wind...
https://github.com/hwalinga/dotfiles/blob/master/CapsLockCtr...
Saya juga mengimplementasikan fungsi ganda: CapsLock bertindak sebagai Ctrl jika ditekan bersama tombol lain, dan sebagai Esc jika ditekan sebentar
Seperti yang dikatakan orang lain, AHK memungkinkan melakukan sangat banyak hal di Windows sampai terasa mengejutkan. Secara pribadi, bisa dibilang saya telah menghemat atau menghasilkan lebih dari 100 ribu dolar berkat AHK
Namun bahasa AHK itu sendiri bukan termasuk yang paling menyenangkan untuk ditulis. Saya bertanya-tanya mengapa tidak ada tool sekuat itu di Python atau Lua, dan https://github.com/pywinauto/pywinauto pun dalam praktiknya tidak bekerja sebaik AHK. Pada akhirnya di bawahnya adalah WinAPI, jadi C# juga bisa menjadi pilihan kalau ada library wrapper yang bagus. Menurut saya AHK populer karena memang jelek, tetapi berfungsi
https://www.autohotkey.com/boards/viewtopic.php?f=80&t=77248
AutoHotKey luar biasa. Saya memakainya untuk berpindah aplikasi lebih cepat, dan dalam kasus saya Right Alt saya jadikan tombol “aktivasi shortcut” untuk mengendalikan semuanya
Kalau ditahan sambil menekan tombol huruf, itu akan berpindah bergiliran di antara instance aplikasi tersebut. Misalnya Alt+C beralih ke jendela VS Code, dan kombinasi Alt+F membuka instance aplikasi baru, seperti jendela Chrome baru dengan profil tertentu. Alt+angka bisa diatur ke jendela yang sedang fokus, dan mengetuk Alt akan menyalakan mode edit sehingga jendela saat ini bisa ditetapkan ke tombol angka. Dalam mode edit, H/J/K/L menjadi tombol navigasi atas/bawah/kiri/kanan, sehingga perpindahan aplikasi menjadi jauh lebih cepat
Skrip yang dulu saya temukan dan modifikasi saat bermain Diablo 3 adalah yang paling berkesan. Tangan yang memegang mouse terlalu kuat menekan mousepad sehingga mulai menimbulkan masalah repetitive strain injury, jadi saya mencari cara untuk bermain dengan controller
Skrip itu memetakan gerakan analog ke sebuah lingkaran kecil di sekitar karakter, sehingga bisa berlari mulus ke arah mana pun, dan saat menekan tombol, jangkauannya bisa diubah lebih jauh untuk mengeluarkan kemampuan jarak jauh. Dengan sedikit kustomisasi per kelas, hasilnya bekerja dengan sangat mengejutkan baik