autokey | AutoKey, a desktop automation utility for Linux and X11 | Automation library

 by   autokey Python Version: 0.96.0b9 License: GPL-3.0

kandi X-RAY | autokey Summary

kandi X-RAY | autokey Summary

autokey is a Python library typically used in Automation applications. autokey has no bugs, it has no vulnerabilities, it has build file available, it has a Strong Copyleft License and it has high support. You can install using 'pip install autokey' or download it from GitHub, PyPI.

AutoKey, a desktop automation utility for Linux and X11.

            kandi-support Support

              autokey has a highly active ecosystem.
              It has 2749 star(s) with 175 fork(s). There are 39 watchers for this library.
              It had no major release in the last 12 months.
              There are 242 open issues and 363 have been closed. On average issues are closed in 458 days. There are 6 open pull requests and 0 closed requests.
              It has a positive sentiment in the developer community.
              The latest version of autokey is 0.96.0b9

            kandi-Quality Quality

              autokey has 0 bugs and 0 code smells.

            kandi-Security Security

              autokey has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              autokey code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              autokey is licensed under the GPL-3.0 License. This license is Strong Copyleft.
              Strong Copyleft licenses enforce sharing, and you can use them when creating open source projects.

            kandi-Reuse Reuse

              autokey releases are available to install and integrate.
              Deployable package is available in PyPI.
              Build file is available. You can build the component from source.
              autokey saves you 9573 person hours of effort in developing the same functionality from scratch.
              It has 22150 lines of code, 1281 functions and 137 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed autokey and discovered the below as its top functions. This is intended to give you an instant insight into autokey implemented functionality, and help decide if they suit your requirements.
            • Create a new phrase
            • Set the hotkey
            • Set window titles
            • Adds the given abbreviations
            • Handle a keypress event
            • Determines if a menu should be used
            • Process item
            • Check if text matches the given buffer
            • Wait for a key event
            • Called when a drop drop is selected
            • Creates a new hotkey
            • Handle drag data received
            • Display a menu
            • Select a specific area
            • Called when paste copied items
            • Add a new entry
            • Update the name of the object
            • List menu options
            • Create static context menu actions
            • Delete selected items
            • Show a list of options
            • Initializes a new top - level folder
            • Validate the item
            • Update the settings
            • Called when a file is created or modified
            • Rebuild the main menu
            Get all kandi verified functions for this library.

            autokey Key Features

            No Key Features are available at this moment for autokey.

            autokey Examples and Code Snippets

            Kotlin-JDBC,Getting Started,Example
            Kotlindot img1Lines of Code : 154dot img1License : Permissive (MIT)
            copy iconCopy
            import com.vladsch.kotlin.jdbc.*
            val session = session("jdbc:h2:mem:hello", "user", "pass")
            HikariCP.default("jdbc:h2:mem:hello", "user", "pass")
            using(session(HikariCP.dataSource())) { session ->
               // working with the session
            Pythondot img2Lines of Code : 18dot img2License : Permissive (MIT)
            copy iconCopy
            $ hotstrings --help
            usage: hotstrings [-h] [path]
            positional arguments:
              path        Path to JSON file containing hotstring definitions
            optional arguments:
              -h, --help  show this help message and exit
            $ cat ~/.config/hotstrings.json 
            Pythondot img3Lines of Code : 13dot img3License : Permissive (MIT)
            copy iconCopy
                "system": { 
                    "get_sysinfo": {} 
                "system": {
                    "get_sysinfo": {}
                "time": {
                    "get_time": {}
            How to run autokey python script as root
            Pythondot img4Lines of Code : 2dot img4License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            sudo autokey
            pynput custom autokey script isn't working when following video guide
            Pythondot img5Lines of Code : 5dot img5License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            COMBINATIONS = [
                {keyboard.Key.shift, keyboard.KeyCode(char='p')}, # Detects ctrl+alt+p
                {keyboard.Key.shift, keyboard.KeyCode(char='P')} # Detects ctrl+alt+P
            change a json value with a Python 3.8 script
            Pythondot img6Lines of Code : 16dot img6License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            for item in data['hotkey']:
                data['hotkey'][item] = ""  # item['hotKey'].replace('$home', item['id'])
            import json
            j = '''
                 "hotkey": {
                     "hotKey": ""
            data = json.loads(j)
            for x in data[
            How libraries work? Trying to install mouseinfo
            Pythondot img7Lines of Code : 2dot img7License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            python3 -m pip install mouseinfo
            How to properly run a mouse-imitating macro with the Input of a controller?
            Pythondot img8Lines of Code : 6dot img8License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            xdotool mousemove 1890, 990
            xdotool mousedown 1
            xdotool sleep 0.05
            xdotool mouseup 1
            Linux - Terminating AutoKey script using keybindings
            Pythondot img9Lines of Code : 25dot img9License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            #Your script
            import time
            def crunch():
            def processor():
                for number in range(100_000_000):
            store.set_global_value("STOP", True)
            set the cursor inside the function "keyboard.send_keys"
            Pythondot img10Lines of Code : 6dot img10License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            import time
            t = time.strftime("%d.%m.%Y")
            length = "-.pdf"
            keyboard.send_key("", len(length)-1)

            Community Discussions


            Autokey Encryption
            Asked 2022-Mar-13 at 18:02

            I am working on a project to write to and read from a TP Link / Kaza power strip or smart plug.

            The data that is sent is encrypted json that has been "autokey encrypted".

            So far I have been able to convert a typescript encrypt function and it works well. I get the expected result. However, I need to add a "header" to my encrypted data. That data is 3 null bytes followed by a byte that is a measure of the length of the encrypted bytes.

            The typescript example has this bit of code to "encrypt with headers", however, I've hit a bit of a wall trying to convert it to something usable. Can someone nudge me along the path ?

            First are the two typescript functions: (borrowed from



            Answered 2022-Mar-13 at 18:02

            It looks like the encryption is fairly simple: write the current character XORed with the key to the buffer and make that newly written character the new key. It also looks like the "withHeaders" version adds the length of the encrypted string as a 4 byte integer to the start of the buffer. I think it might be easier to allocate a character array and pass that array to a function that writes the result to that buffer. For example:



            How to run autokey python script as root
            Asked 2021-Dec-11 at 23:04

            I have a python script that requires using keyboard however it always fail to run with:



            Answered 2021-Dec-11 at 23:04

            I kinda was looking for a GUI way to do it, but the easiest way is to just launch Autokey in terminal like:



            How to toggle Autokey phrases?
            Asked 2021-Oct-10 at 15:29

            I want to remap wasd to arrow keys, but then be able to use a hotkey to toggle these (four) phrases so I can go back to wasd behaviour easily. Just putting a window filter on the phrase will not be sufficient. The only ways I can see to do this is to write bash scripts to directly modify the contents of my phrase files, which is obviously a very dirty solution. I am surprised to find that there doesn't seem to be an easy way to toggle phrases on and off similar to how you can toggle AutoHotkey scripts on Windows. Is there a more sophisticated way of doing this than to use bash scripts to directly overwrite the contents of the .txt files associated with my phrases?

            I am okay with solutions that fix my problems but do not use Autokey too, as long as they work on Ubuntu 20.04



            Answered 2021-Oct-10 at 15:29

            I managed to write a fix by writing a bash script that checks if autokey is currently open, if so it closes it, else it starts it, then I made a keyboard shortcut to this bash script. Closing autokey disables the phrases. It's not a clean solution, since this only allows me to toggle all of my Autokey phrases at once, but it works for my current use case. Hopefully this can be useful to someone else as well.



            ERROR: dP15zlyra3c: YouTube said: Unable to extract video data
            Asked 2021-May-09 at 14:12

            I found the code below at Youtube download using Youtube-dl embedded with Python - 2020

            After I ran pip3 list I saw youtube-dl 2020.3.24 in the list.

            However, when I run...



            Answered 2021-May-09 at 14:12

            Updating youtube-dl. Depending on the way you installed it, here are the commands:(in windows)

            1-youtube-dl --update (self-update)

            2-pip install -U youtube-dl (via python)

            3-choco upgrade youtube-dl (Windows + Chocolatey)

            and a cookies.txt file can be created with the "cookies.txt" extension. Do this while being logged in to YouTube. for example :

            For Firefox: this

            For Chrome:this

            Then run youtube-dl like this:

            youtube-dl.exe --cookies C:\Users\tezJR\Downloads\cookies-txt$VIDEO-ID

            adjust that command to where your cookies.txt file is actually located and replace $VIDEO-ID with the ID of your restricted video



            getkey in AutoKey
            Asked 2021-Mar-22 at 10:38

            howto wait for key pressed with autokey?

            for AutoKey i found the wait_for_keypress but its not what i searching for.

            its wait for a defined keypress or key combination.

            i want wait for a,b,... z is pressed.

            i searched here:

            and tried soe of this exaples without success:

            i seached the web for

            • autokey -autohotkey keywait manual


            Answered 2021-Mar-22 at 10:38

            the following solution only works with root rights:



            Is there a way to send strings as keystrokes like autohotkey?
            Asked 2021-Feb-28 at 00:42

            I moved from Windows to Linux and want to use AutoHotKey. I've tried using autokey but I really didn't like it. Is it possible to use golang to simply send strings as keystrokes to other programs?



            Answered 2021-Feb-28 at 00:42

            The package provides an API for simulating keystrokes cross-platform, I.e on Linux, MacOS and Windows.

            The API does not however provide a way of mapping strings to a sequence of keypresses. That you will have to implement yourself or alternatively, if you want us to help, describe how you would like the strings to be mapped to keypresses.



            Running one Autokey script from another Autokey script?
            Asked 2020-Dec-05 at 05:59

            Right now I've got two Autokey scripts (for modularity), one that opens a file, and one that puts text in it.

            The one that opens the file has hotkey F1 (and we'll call this script 1 for simplicity), and the one that puts text in it has hotkey F2. I want a new Autokey script, that when I hit F3, it runs both the 1 script and the 2 script.

            I've tried making the 3 script just send the F1 and F2 keys, but the timing is all off. It would be better if I could just call 1 and 2 from 3. Is this possible?




            Answered 2020-Dec-04 at 20:26



            ought to do the trick

            "Description" in this context is generally the name of the script in the side bar in the AutoKey interface. If you open up the .json file for the script you can see it for sure, but it will be the name displayed in the side bar unless you have duplicate names for scripts in the same folder or some other edge scenario



            autoKey gtk 0.95.10 Icon get red an autoKey freezing
            Asked 2020-Nov-12 at 15:44

            autoKey often stops working if i press my script shortcut F12

            about every 70%. And about every 50% of them the icon gets red and autoKey is freezing. CPU load grows a little bit.

            Its difficult to say what may the reason it.

            The script (gist is a bit large.
            About 500 lines and offered on github.

            I debug by sending while i recording my desktop to video file (youtub LKl4Ufhh3P8 ).

            it open via wine a menu (autoHotKey script called lintalist) and catches the changed clipboard and writes it out.

            When I restart the autoKey script it runs a couple of times (maybe three or five times). I inserted 100 milliseconds as a pause at various points. Since then, I don't have to restart the operating system, only kill the script when it freezes.

            any idea what to try?

            for debugging i use such little helpers: ...


            Answered 2020-Nov-12 at 15:44

            These problems have not disappeared for a few days as a result of the following changes:

            The solution described above uses the clipboard and keyboard together with Linux and Windows (Wine) conveyed via two scripting languages.

            clipboard ⇄ AutKey ⇄ AutoHotKey ⇄ Lintalist

            operating systems:
            clipboard ⇄ KubuntuWineHQ 1

            Errors are more common in non-closed systems. Therefore, for example, such errors are typical (still open problem at 2020:11:12 in autokey):

            "Hotkeys get lost when triggered frequently"

            1. change from autokey-gtk to autokey-qt for systems using a Qt-based desktop environment such as KDE Plasma, Lumina, etc. For that there are different possibilities (github: install using pip3). I've used i used:



            change a json value with a Python 3.8 script
            Asked 2020-Nov-07 at 16:35

            I want change one json value with a Python 3.8 script.

            I know in Python, strings are immutable, so you can't change their characters in-place.

            This helps my much: How to find and replace a part of a value in json file

            TypeError: 'str' object does not support item assignment

            TypeError: 'str' object does not support item assignment item['hotKey'] = "" TypeError: 'str' object does not support item assignment

            Script: item['hotKey'] = "" ...


            Answered 2020-Nov-07 at 13:26

            You need to add json['hotkey'] reference before:



            AutoKey: Switch to last active application like Alt-Tab by using AutoKey
            Asked 2020-Oct-11 at 12:31

            is it possible to send the alt+tab for switch to last window with AutoKey ?

            i tried without success:


            Or forward window:



            Answered 2020-Oct-11 at 12:31

            TL;DR: Not directly with our API.

            The AutoKey API talks directly to the current active window. So, sending events targeted at the desktop (DTE) will only work if the current active window recognizes them as such and either forwards them to the DTE or emulates what they do.

            However, since AutoKey scripts are written in full Python 3, if you can figure out how to do it yourself in Python, AutoKey can run it for you. And, if some other solution is available, you can run it from within an AutoKey script using the subprocess module.


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install autokey

            You can install using 'pip install autokey' or download it from GitHub, PyPI.
            You can use autokey like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.


            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • PyPI

            pip install autokey

          • CLONE
          • HTTPS


          • CLI

            gh repo clone autokey/autokey

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link