Assign hotkeys to paste predefined text

14,222

Solution 1

You can use autokey.

Follow the instructions below:

  • Installation

    Open a terminal (Ctrl+Alt+T) and run the following command:

sudo apt-get install autokey-gtk
  • Adding Phrases

    • Open autokey using the dash.
    • In the window, expand My Phrases.

      autokey already comes with four phrases as you can see in the screenshot below.

    autokey default window

    • You can either modify the existing phrases or make a new phrase using New button.
  • Configuring Shortcut Keys

    • Click on a any phrase name to see the current configuration. In the screenshot above, First phrase is selected.

    • To change the shortcut key or Hotkey, click on Set besides the Hotkey and then click on Press to set in the new dialog box that appears.

    autokey set hotkey

    Then press the key combination you wish and select OK.

  • Configuring Window Filter

    • If you wish to use the hotkey only for a particular window, you can set Window Filter by selecting Set > Detect Window Properties and then clicking on the window.

    • Or if you would like the hotkey to work in all the windows, Clear the Window Filter.

    • Save the current phrase and Run the current script by clicking on the play-like button on the top write of the window.

    autokey window

  • Using the new shortcuts

    • You can close the autokey window and use the Hotkey to paste the corresponding phrase.

Further Information: Autokey Wiki

Solution 2

Since Autokey is defunct, here is how I accomplished this.
First install xclip and xdotool:

sudo apt-get install xclip xdotool

Now write the text you want to paste and save it in a text file. In this example I wrote my address in a file I called address.

Now write the bash script:

#!/bin/bash
xclip -in -selection c ~/scripts/xclip-scripts/address
sleep 0.5 
xdotool key ctrl+v

xclip -in -selection c tells xclip to copy the contents of the file you saved. In this example, that file is at ~/scripts/xclip-scripts/address.

The sleep command simply allows enough time for xclip to finish copying before xdotool starts trying to paste the text.

The xdotool command actually does the pasting of the text that xclip copied from your text file.

Save your script and make it executable.

chmod +x /path/to/your/script/<script_name>

The last step is to bind a shortcut key to your script. In Ubuntu this can be set by going to System Settings/Keyboard/Shortcuts and create a custom shortcut.

scrot

Share:
14,222

Related videos on Youtube

Max
Author by

Max

Analytics consultant available for hire. More info: https://maxcorbeau.com

Updated on September 18, 2022

Comments

  • Max
    Max over 1 year

    I am looking for a program that runs on Ubuntu 12.04+ x86_64 which allows pasting pre-defined text based on hotkey combinations. For instance:

    Ctrl+Alt+V+U: pastes my username

    Ctrl+Alt+V+E: pastes my email

    Any suggestions?

    • Admin
      Admin about 11 years
      Pastes into which program?
    • Max
      Max about 11 years
      web browser, note pad, terminal, wine....
  • Dɑvïd
    Dɑvïd over 7 years
    Autokey seems not to be working in 16.04 LTS, sadly.
  • Michael S.
    Michael S. about 7 years
    Note that for the shortcut you have to click on the string "Deactivated", the line is not enough since that only opens the dialog "Custom Shortcut".
  • DmitrySandalov
    DmitrySandalov over 6 years
    xdotool type --clearmodifiers '[email protected]'
  • Anwar
    Anwar almost 6 years
    Doesn't work when the text is in non-latin language
  • Roald
    Roald about 5 years
    It works on 18.04 LTS. Link.
  • fivedogit
    fivedogit about 4 years
    Not working in 19.10, either. I can get the prompt before pasting to come up, but nothing ever pastes.