Använda Autokey-skript för att automatisera ditt Linux-skrivbord
Autokey, som tidigare omfattades av Make Tech Easier, är ett bra ställe att lagra vanligt använd text. Men en av Autokeys avancerade funktioner är möjligheten att skripta den för att göra andra saker. Vi tar en titt på två sätt att trycka på Autokey för avancerad skrivbordsskription.
Obs! Även om nedanstående skript fungerade på både 12.10 och 13.04 med "autokey-qt" -smak, verkar det finnas några problem med "autokey-gtk" -versionen i standardförteckningarna. Om du använder regelbunden (Unity-based) Ubuntu, bör du överväga att installera från PPA, som innehåller en nyare version av Autokey.
Autokey Scripting Basics
Autokey-skriptning görs i Python, ett populärt programmeringsspråk som används i allt från Ubuntu's Ubiquity-installatör till Google Maps. Medan du kan göra några användbara saker med endast de funktioner som är specifika för Autokey, kan du också använda Autokey-funktioner i allmänhet Python-program för att göra nästan vad som helst du vill.
Autokey Wiki innehåller några användbara ämnen som Installation och FAQ. API-referensen, dold som en länk överst på sidan Sample Scripts, är där bra saker är. Titta runt på sidan:
1. Överst på sidan finns alla metoder eller funktioner för den aktuella modulen du tittar på, vilka förklaras mer detaljerat nedan.
2. I den vänstra kolumnen är returtypen eller vad du får tillbaka om du använder den metoden.
3. I den mer detaljerade noteringen för varje metod får du metodnamnet listat igen.
4. Bredvid namnet, inom parantes, är argumenten eller de saker du behöver för att ge metoden för att den ska kunna utföra sitt jobb.
5. Slutligen finns ett exempel på användning för metoden.
Ta dig tid att kolla igenom API-referensen - du kommer inte bli långt utan den. Följande är en genomgång av skapandet av ett manus från början till slut.
Skapa ett Autokey-skript
Autokey-skript är väldigt mycket som skalskriptning, eftersom du bygger dem en rad i taget, med hjälp av variabler och funktioner (eller i det här fallet metoder) för att få önskat resultat. I mitt fall vill jag kunna markera lite text och stasha bort den i en textfil för senare. Det första steget är att skapa ett nytt skript i Autokey. Du kan göra det genom att högerklicka på en av mapparna och välja "New Script", som visas nedan.
Ge det ett namn, så är det tomma textområdet till höger allt ditt - här kommer du in i manuset. Låt oss i det här fallet titta på vad vi vill göra steg för steg:
Hämta nuvarande text
Autokey handlar om automatisering, så det borde inte finnas någon anledning för oss att kopiera den här texten till klippbordet eller på annat sätt. Vi vill träffa snabbtangenten och gå och veta att texten är säkert borttagen för senare. Lyckligtvis visar API-referensen att det bara finns en metod för detta: QtClipboard-metoden. Följande kodserie tar den aktuella valda texten för oss, som om vi gjort en "Redigera & Kopiera" eller Ctrl-C oss själva. Istället för systemets urklipp, lagrar vi det här i variabeln "notecontent":
notecontent = clipboard.get_selection ()
Anger hela sökvägen till filen
Därefter vill vi lagra detta någonstans. Vi måste ange en plats för den. Låt oss lägga till en rad som visar den mapp vi vill använda, tilldelad variabeln "notepath":
notecontent = clipboard.get_selection () notepath = "/ home / aaron / clips /"
För filnamnet vill jag inkludera en datum- och tidsstämpel när den tagits. En liten Googling avslöjar att det finns en funktion i Pythons " tidsmodul " som ger mig det aktuella datumet, i formatet YYYY-MM-DD-HH-mm-ss på kommandot, som vi kombinerar med prefixet "noten" och suffix ".txt" och tilldela variabeln "notename". Vi måste importera tidsmodulen så att vi kan använda den (som det visar sig behöver vi det ändå, eftersom forum rekommenderar att du lägger till andra raden för att undvika konflikter mellan manus och tangentbord / mus). Detta gör att manuset ser ut så här:
importtid time.sleep (0.25) notecontent = clipboard.get_selection () notepath = "/ home / aaron / clips /" notename = "notera" + timestrftime ("% Y% m% d% H% M% S") + ".Text"
Skapa filen
Det här är relativt enkelt att följa:
- Importera tidsmodulen
- Få det aktuella valet, tilldela "notecontent"
- Tilldela målkatalogen till "notepath"
- Tilldela texten "notering", då aktuellt datum / tid, följt av ".txt" till variabeln "notename".
Allt vi behöver göra nu är faktiskt att skapa filen. Lyckligtvis ger Autokey en metod för det också, i systemmodulen:
importtid time.sleep (0.25) notecontent = clipboard.get_selection () notepath = "/ home / aaron / clips /" notename = "notera" + timestrftime ("% Y% m% d% H% M% S") + ".txt" system.create_file (notepath + notename, content = notecontent)
Det är allt! Tilldela en snabbtangent, kopiera lite text och se vad som händer. Med de nyckelfunktioner som Autokey ger dig, och lite Google-förmåga, kan du använda Autokey för avancerad skrivbordsskriptning.
1. Val av text
2. Håll snabbtangenten och en ny textfil visas
3. Och det finns vår valda text, som visas i den mindre utmatningen i textfilen.
Vilka andra användningsområden använder du Autokey för?