<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Autohotkey on Hillel Wayne</title>
    <link>https://www.hillelwayne.com/tags/autohotkey/</link>
    <description>Recent content in Autohotkey on Hillel Wayne</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 15 Jul 2024 00:00:00 +0000</lastBuildDate>
    
	<atom:link href="https://www.hillelwayne.com/tags/autohotkey/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Toolbox languages</title>
      <link>https://www.hillelwayne.com/post/toolbox-languages/</link>
      <pubDate>Mon, 15 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.hillelwayne.com/post/toolbox-languages/</guid>
      <description>A toolbox language is a programming language that&amp;rsquo;s good at solving problems without requiring third party packages. My default toolbox languages are Python and shell scripts, which you probably already know about. Here are some of my more obscure ones.
AutoHotKey Had to show up! Autohotkey is basically &amp;ldquo;shell scripting for GUIs&amp;rdquo;. Just a fantastic tool to smooth over using unprogrammable applications. It&amp;rsquo;s Windows-only but similar things exist for Mac and Linux.</description>
    </item>
    
    <item>
      <title>Learn AutoHotKey by stealing my scripts</title>
      <link>https://www.hillelwayne.com/post/ahk-scripts-project/</link>
      <pubDate>Mon, 21 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hillelwayne.com/post/ahk-scripts-project/</guid>
      <description>tl;dr annotated AHK scripts here.
Anybody who&amp;rsquo;s spent time with me knows how much I love AutoHotKey, the flat-out best Windows automation tool in the world. Anybody&amp;rsquo;s who&amp;rsquo;s tried to use AutoHotKey knows how intimidating it can be. So to help with that, I&amp;rsquo;m sharing (almost) all of my scripts along with extensive explanations. There&amp;rsquo;s fourteen files in total, covering (among other things):
 Fast open specific folders on your computer Fast insertion of the current date, em-dashes, and ¯\_(ツ)_/¯s How to extend any program with new hotkeys A modal hotkey system if you&amp;rsquo;re a vim fan like me A simple GUI demo A script to convert any timestamp into UTC and your local time:    This is also an example of an educational codebase, a codebase designed specifically from people to learn from.</description>
    </item>
    
    <item>
      <title>Somehow AutoHotKey is kinda good now</title>
      <link>https://www.hillelwayne.com/post/ahk-v2/</link>
      <pubDate>Wed, 03 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hillelwayne.com/post/ahk-v2/</guid>
      <description>img {border-style: groove; border-width: 1px;} I love Autohotkey so much that it keeps me on Windows. It&amp;rsquo;s the best GUI automation tool out there. Here&amp;rsquo;s a shortcut that opens my current browser tab in the Wayback Machine:
#HotIf WinActive(&amp;quot;ahk_exe firefox.exe&amp;quot;) &amp;gt;!^s:: { Keywait(&amp;quot;RControl&amp;quot;) Keywait(&amp;quot;RAlt&amp;quot;) SendEvent(&amp;quot;^l&amp;quot;) SendInput(&amp;quot;{left}https://web.archive.org/web/*/{enter}&amp;quot;) } #HotIf  By comparison, the official extension takes four files to do the same thing. Four files!1
But I come here to bury AHK, not to praise it.</description>
    </item>
    
    <item>
      <title>A Modular Hotkey System</title>
      <link>https://www.hillelwayne.com/tipjar/ahk-01/</link>
      <pubDate>Fri, 30 Sep 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hillelwayne.com/tipjar/ahk-01/</guid>
      <description>&lt;p&gt;For my &lt;a href=&#34;https://www.thestrangeloop.com/2022/tlaplus-workshop.html&#34;&gt;StrangeLoop workshop&lt;/a&gt; I had to do a lot of powerpoint work. To streamline this, I made over 20 AutoHotKey shortcuts to run various ribbon commands. To avoid polluting my keyboard I built them all into a general-purpose system. All shortcuts started by clicking the thumb mouse button and then quickly pressing 1-2 keys in sequence.&lt;/p&gt;
&lt;div class=&#34;highlight&#34; style=&#34;background: #272822&#34;&gt;&lt;pre style=&#34;line-height: 125%;&#34;&gt;&lt;code class=&#34;language-ahk&#34; data-lang=&#34;ahk&#34;&gt;&lt;span&gt;&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;#IfWinActive&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;ahk_exe&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;POWERPNT&lt;/span&gt;&lt;span style=&#34;color: #f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;EXE&lt;/span&gt;
&lt;span style=&#34;color: #f8f8f2&#34;&gt;pp_func()&lt;/span&gt;
&lt;span style=&#34;color: #f8f8f2&#34;&gt;{&lt;/span&gt;
    &lt;span style=&#34;color: #f8f8f2&#34;&gt;pp_cmd&lt;/span&gt; &lt;span style=&#34;color: #f92672&#34;&gt;:=&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;Map(&lt;/span&gt;&lt;span style=&#34;color: #e6db74&#34;&gt;&amp;quot;a2&amp;quot;&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;{cmd&lt;/span&gt;&lt;span style=&#34;color: #f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color: #e6db74&#34;&gt;&amp;quot;{alt}adu.2&amp;quot;&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;info&lt;/span&gt;&lt;span style=&#34;color: #f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color: #e6db74&#34;&gt;&amp;quot;Set animation time to .2 seconds&amp;quot;&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;}&lt;/span&gt;

    &lt;span style=&#34;color: #f8f8f2&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color: #e6db74&#34;&gt;&amp;quot;fh&amp;quot;&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;{cmd&lt;/span&gt;&lt;span style=&#34;color: #f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color: #e6db74&#34;&gt;&amp;quot;{alt}hgoh&amp;quot;&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;info&lt;/span&gt;&lt;span style=&#34;color: #f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color: #e6db74&#34;&gt;&amp;quot;Flip horizontal&amp;quot;&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color: #75715e&#34;&gt; ; etc etc&lt;/span&gt;
    &lt;span style=&#34;color: #f8f8f2&#34;&gt;)&lt;/span&gt;


&lt;span style=&#34;color: #f8f8f2&#34;&gt;pp_input&lt;/span&gt; &lt;span style=&#34;color: #f92672&#34;&gt;:=&lt;/span&gt; &lt;span style=&#34;color: #e6db74&#34;&gt;&amp;quot;?&amp;quot;&lt;/span&gt;
&lt;span style=&#34;color: #f8f8f2&#34;&gt;pp_info&lt;/span&gt; &lt;span style=&#34;color: #f92672&#34;&gt;:=&lt;/span&gt; &lt;span style=&#34;color: #e6db74&#34;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span style=&#34;color: #f8f8f2&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;pkey,&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;pval&lt;/span&gt; &lt;span style=&#34;color: #f92672&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;pp_cmd&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;{&lt;/span&gt;
    &lt;span style=&#34;color: #f8f8f2&#34;&gt;pp_input&lt;/span&gt; &lt;span style=&#34;color: #f92672&#34;&gt;.=&lt;/span&gt;  &lt;span style=&#34;color: #e6db74&#34;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; &lt;span style=&#34;color: #f92672&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;pkey&lt;/span&gt;
    &lt;span style=&#34;color: #f8f8f2&#34;&gt;pp_info&lt;/span&gt; &lt;span style=&#34;color: #f92672&#34;&gt;.=&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;Format(&lt;/span&gt;&lt;span style=&#34;color: #e6db74&#34;&gt;&amp;quot;{1:-20}{2:-1}`n&amp;quot;&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;,pkey,pval&lt;/span&gt;&lt;span style=&#34;color: #f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;info)&lt;/span&gt;
&lt;span style=&#34;color: #f8f8f2&#34;&gt;}&lt;/span&gt;

&lt;span style=&#34;color: #f8f8f2&#34;&gt;ih&lt;/span&gt; &lt;span style=&#34;color: #f92672&#34;&gt;:=&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;InputHook(&lt;/span&gt;&lt;span style=&#34;color: #e6db74&#34;&gt;&amp;quot;L2 C T1&amp;quot;&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;,,&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;pp_input)&lt;/span&gt;
&lt;span style=&#34;color: #f8f8f2&#34;&gt;ih&lt;/span&gt;&lt;span style=&#34;color: #f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;Start()&lt;/span&gt;
&lt;span style=&#34;color: #f8f8f2&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;(ih&lt;/span&gt;&lt;span style=&#34;color: #f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;Wait()&lt;/span&gt; &lt;span style=&#34;color: #f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color: #e6db74&#34;&gt;&amp;quot;Match&amp;quot;&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;{&lt;/span&gt;
    &lt;span style=&#34;color: #f8f8f2&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;(ih&lt;/span&gt;&lt;span style=&#34;color: #f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;Match&lt;/span&gt; &lt;span style=&#34;color: #f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color: #e6db74&#34;&gt;&amp;quot;?&amp;quot;&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;{&lt;/span&gt;
        &lt;span style=&#34;color: #f8f8f2&#34;&gt;MsgBox(pp_info)&lt;/span&gt;
    &lt;span style=&#34;color: #f8f8f2&#34;&gt;}&lt;/span&gt;
    &lt;span style=&#34;color: #f8f8f2&#34;&gt;else&lt;/span&gt; &lt;span style=&#34;color: #f8f8f2&#34;&gt;{&lt;/span&gt;
            &lt;span style=&#34;color: #f8f8f2&#34;&gt;Send(pp_cmd[ih&lt;/span&gt;&lt;span style=&#34;color: #f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;Match]&lt;/span&gt;&lt;span style=&#34;color: #f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color: #f8f8f2&#34;&gt;cmd)&lt;/span&gt;
        &lt;span style=&#34;color: #f8f8f2&#34;&gt;}&lt;/span&gt;
    &lt;span style=&#34;color: #f8f8f2&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color: #f8f8f2&#34;&gt;}&lt;/span&gt;

&lt;span style=&#34;color: #75715e&#34;&gt;; Mouse thumb button, you can change this to something else&lt;/span&gt;
&lt;span style=&#34;color: #f8f8f2&#34;&gt;XButton1::pp_func()&lt;/span&gt;
&lt;span style=&#34;color: #f8f8f2&#34;&gt;#IfWinActive&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Pressing &lt;code&gt;?&lt;/code&gt; will show all of the commands along with descriptions.&lt;/p&gt;

&lt;h3 id=&#34;how-it-works&#34;&gt;How it Works&lt;/h3&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>In Praise of AutoHotKey</title>
      <link>https://www.hillelwayne.com/post/ahk/</link>
      <pubDate>Tue, 12 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.hillelwayne.com/post/ahk/</guid>
      <description>People think it&amp;rsquo;s weird that I do all my development on a Windows machine. It&amp;rsquo;s definitely a second-class citizen experience in the wider development world, and Windows has a lot of really frustrating issues, but it&amp;rsquo;s still my favorite operating system. This is for exactly one reason: AutoHotKey.
AHK is an engine for mapping keystrokes to scripts. I wouldn&amp;rsquo;t call it particularly elegant, and it&amp;rsquo;s filled with tons of redundancy and quirks.</description>
    </item>
    
  </channel>
</rss>