Primary Zwischenablage

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
UniversalBastler
User
Beiträge: 17
Registriert: Samstag 1. August 2020, 12:08

Hallo,
ich habe mir schon einen Wolf gesucht aber nichts gefunden.
In vielen Linux Distributionen gibt es die Primary Zwischenablage. Das heißt: Wird Text markiert wird er ohne weiteres in die Primary Zwischenablage gespeichert und kann durch drücken des Mausrades an beliebiger Stelle eingefügt werden. Es wird kein Strg c und Strg v benötigt. Es funktioniert nur mit Text, was in meinem Fall von Vorteil ist und funktioniert soweit ich weiß bei allen Texten egal ab aus dem Browser, der Textverarbeitung, eBooks oder PDF sofern der Text nicht aus Bildern besteht.
Gibt es eine einfache Möglichkeit diese Zwischenablage mit Python auszulesen, ähnlich zum Beispiel pyperclip oder clipboard für die normale Zwischenablage?
Ich habe schon versucht die markierten Zeichen mit pyautogui in ein tkinter textfeld zu kopieren und von dort auszulesen. Vom Prinzip her funktioniert das auch aber es ist schon aufwändig und hat so seine Tücken.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn man das sucht, findet man https://wiki.archlinux.org/title/clipboard - und da zB das Tool sselp, mit dem das fuer mich problemlos funktioniert.

Dessen Code https://git.suckless.org/sselp/file/sselp.c.html ist nicht besonders viel, aber ob es jetzt wirklich wert ist, den Bums in Python nachzubauen, statt einfach das Tool aufzurufen, vermag ich nicht zu sagen.
narpfel
User
Beiträge: 691
Registriert: Freitag 20. Oktober 2017, 16:10

`xclip` kann das auch:

Code: Alles auswählen

$ echo 1 2 3 | xclip
$ xclip -o
1 2 3
Benutzt per default die primäre Zwischenablage.
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

Vor einer einiger Zeit habe ich dafür mal pyperclip verwendet.
Das benutzt unter der Haube auch "nur" xclip, hat aber auch einen Fallback auf PyQt4 und gtk.
Aber ich weiß nicht, ob das noch aktuell ist. PyQt4 ist es ja irgendwie nicht mehr. Daher - und weil ich manchmal verwirrt bin - alle Angaben ohne Gewähr. Kann sein, dass das alles für Python 2 ist. Es ist wirklich schon lange her.
UniversalBastler
User
Beiträge: 17
Registriert: Samstag 1. August 2020, 12:08

Danke erstmal für die schnellen Antworten.
Wie ihr vielleicht gemerkt habt bin ich noch nicht so der Profi im programmieren :geek:
Im Moment muss ich mir alles noch im Netz oder aus Büchern zusammensuchen und habe außer in Python noch nichts gemacht. Von daher sind sselp bzw der Code davon für mich einfach nur Zeichensalat.
xclip habe ich zwar auch installiert aber nur weil pyperclip das benötigt. Mit pyperclip habe ich schon was gemacht aber ich habe nichts gefunden wie ich damit auf die primary Zwischenablage zugreifen kann. Für die default Zwischenablage ist klar, wenn es nur für die primary auch so einfach wäre. Oder bin ich einfach nur zu blöd? :oops:
Es geht schon damit los, dass ich nicht wüsste wie ich sselp oder xclip in Python einbinde geschweige denn Daten daraus in Python weiterverarbeiten kann.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Na hast du mal nach der Frage "externe Programme in Python ausfuehren" gesucht? Ist ja nicht so, als ob das nicht alle Nase lang vorkaeme. Bekomme ich jede Menge hilfreiche Hinweise auf das subprocess-Modul, das dafuer auch die richtige Antwort ist.
UniversalBastler
User
Beiträge: 17
Registriert: Samstag 1. August 2020, 12:08

__deets__ hat geschrieben: Montag 28. März 2022, 17:34 Na hast du mal nach der Frage "externe Programme in Python ausfuehren" gesucht? Ist ja nicht so, als ob das nicht alle Nase lang vorkaeme. Bekomme ich jede Menge hilfreiche Hinweise auf das subprocess-Modul, das dafuer auch die richtige Antwort ist.
Um ehrlich zu sein: Nein. Ich habe zwar schon mal os.system() verwendet aber das war's auch schon.
Aber danke für den Hinweis, dann weiß ich wenigstens was ich als nächstes zu tun habe :mrgreen:
Antworten