Autokey, eerder behandeld bij Make Tech Easier, is een geweldige plek om veelgebruikte tekst op te slaan. Maar een van de meer geavanceerde functies van Autokey is de mogelijkheid om het script te scripten om andere dingen te doen. We zullen twee manieren bekijken om op Autokey te tikken voor geavanceerde desktop-scripting.

Opmerking : hoewel het onderstaande script werkte op zowel 12.10 en 13.04 met de "autokey-qt" -smaak, lijken er enkele problemen te zijn met de "autokey-gtk" -versie in de standaard repository's. Als u normale Ubuntu-eenheid gebruikt (Unity-gebaseerd), kunt u overwegen om te installeren vanaf de PPA, die een nieuwere versie van Autokey bevat.

Autokey Scripting Basics

Autokey-scripting wordt gedaan in Python, een populaire programmeertaal die wordt gebruikt in alles van Ubuntu's Ubiquity-installatieprogramma tot Google Maps. Hoewel je een aantal nuttige dingen kunt doen met alleen de functies die specifiek zijn voor Autokey, kun je ook de Autokey-functies in algemene Python-programma's gebruiken om zo ongeveer alles te doen wat je wilt.

De Autokey Wiki bevat enkele nuttige onderwerpen zoals Installatie en FAQ's. De API-verwijzing, verborgen als een koppeling boven aan de pagina Voorbeeldscripts, is waar de goede dingen zijn. Rondkijken op de pagina:

1. Aan de bovenkant van de pagina staan ​​alle methoden of functies van de huidige module die u bekijkt, die hieronder in meer detail worden uitgelegd.

2. In de linkerkolom staat het retourtype of wat u terugkrijgt als u die methode gebruikt.

3. In de meer gedetailleerde lijst voor elke methode wordt de naam van de methode opnieuw vermeld.

4. Naast de naam, tussen haakjes, staan ​​de argumenten of de dingen die u nodig hebt om de methode op te geven zodat deze zijn werk kan doen.

5. Ten slotte is er een voorbeeld van gebruik voor de methode.

Neem even de tijd om door de API-referentie te bladeren - u komt er niet ver mee. Het volgende is een doorloop van het maken van een script van begin tot eind.

Een Autokey-script maken

Autokey-scripting lijkt veel op shell-scripting, in die zin dat u ze één regel per keer bouwt, met behulp van variabelen en functies (of in dit geval methoden) om het gewenste resultaat te krijgen. In mijn geval wil ik wat tekst kunnen markeren en wegbergen in een tekstbestand voor later. De eerste stap is het maken van een nieuw script in Autokey ... u kunt dit doen door met de rechtermuisknop op een van de mappen te klikken en 'Nieuw script' te selecteren, zoals hieronder wordt weergegeven.

Geef het een naam, dan is het lege tekstgedeelte aan de rechterkant helemaal van jou - dit is waar je het script zult invoeren. Laten we in dit geval eens kijken wat we stap voor stap willen doen:

De momenteel geselecteerde tekst ophalen

Autokey draait helemaal om automatisering, dus er zou geen reden moeten zijn om deze tekst naar het klembord of anderszins te kopiëren. We willen de sneltoets raken en gaan, wetende dat de tekst veilig weggestopt is voor later. Gelukkig laat de API Reference zien dat hiervoor alleen een methode bestaat: de QtClipboard-methode. De volgende coderegel pakt de momenteel geselecteerde tekst voor ons, alsof we zelf een "Bewerken & Kopiëren" of Ctrl-C hebben gedaan. In plaats van het klembord van het systeem, zullen we dit opslaan in de variabele "notecontent":

 notecontent = clipboard.get_selection () 

Het volledige pad naar het bestand toewijzen

Vervolgens willen we dit ergens opslaan. We moeten er een plaats voor aanwijzen. Laten we een regel toevoegen die de map toont die we willen gebruiken, toegewezen aan de variabele "notepath":

 notecontent = clipboard.get_selection () notepath = "/ home / aaron / clips /" 

Voor de bestandsnaam wil ik een datum- en tijdstempel toevoegen van de datum waarop deze is vastgelegd. Een beetje Googelen onthult dat er een functie is in de " tijd " -module van Python die me de huidige datum zal geven, in JJJJ-MM-DD-HH-mm-ss formaat op commando, die we zullen combineren met de prefix "noot" en de achtervoegsel ".txt" en toewijzen aan de variabele "notenaam." We moeten de tijdmodule importeren zodat we deze kunnen gebruiken (zo blijkt, we hebben dit toch nodig, omdat fora aanbevelen om de tweede regel toe te voegen om conflicten tussen de script en het toetsenbord / muis). Dit maakt het script er zo uit:

 import time time.sleep (0.25) notecontent = clipboard.get_selection () notepath = "/ home / aaron / clips /" notename = "note" + timestrftime ("% Y% m% d% H% M% S") + ".tekst" 

Het bestand maken

Dit is relatief gemakkelijk te volgen:

  1. Importeer de tijdmodule
  2. Krijg de huidige selectie, wijs toe aan "notecontent"
  3. Wijs de doelmap toe aan "notepath"
  4. Wijs de tekst 'note' en vervolgens de huidige datum / tijd, gevolgd door '.txt' toe aan de variabele 'nootame'.

Het enige dat we nu hoeven te doen, is eigenlijk het bestand maken. Gelukkig biedt Autokey hiervoor ook een methode in de systeemmodule:

 import time time.sleep (0.25) notecontent = clipboard.get_selection () notepath = "/ home / aaron / clips /" notename = "note" + timestrftime ("% Y% m% d% H% M% S") + ".txt" system.create_file (notepath +nootame, content = notecontent) 

Dat is het! Wijs een sneltoets toe, kopieer wat tekst en kijk wat er gebeurt. Met de belangrijkste functies die Autokey u biedt, en wat bekwaamheid van Google, kunt u Autokey gebruiken voor geavanceerde desktop-scripting.

1. De tekst selecteren

2. Druk op de sneltoets en een nieuw tekstbestand verschijnt

3. En daar is onze geselecteerde tekst, weergegeven in de minder output van het tekstbestand.

Voor welke andere doeleinden gebruikt u de Autokey?