Ich schreibe und arbeite in mehreren Sprachen: Deutsch, Spanisch, Französisch, Griechisch, Englisch. Wenn Sie auf einem Mac eine Taste länger als 2 Sekunden drücken, können Sie zwischen Sonderzeichen wählen, die von einem Hauptzeichen abgeleitet sind. Unter Windows gibt es eine Software namens Holdkey, die dasselbe tut. Gibt es etwas Ähnliches unter Linux? Ich habe es noch nicht gefunden.
Antwort1
Ich habe zwei Ratschläge:
- Verwenden Sie ein geeignetes Tastaturlayout, also ein Layout mit Tottasten. Wenn Sie eine englische Tastatur haben, wählen Sie zum BeispielEnglisch (USA, international, mit Tottasten). Es gibt aber noch zahlreiche andere Varianten.
- Definieren Sie einenCompose-Taste. Auf diese Weise können Sie viele Zeichen eingeben, die nicht im von Ihnen verwendeten Tastaturlayout enthalten sind. (Die Compose-Taste ist eine XKB-Funktion und daher in Kubuntu verfügbar, Sie müssen jedoch herausfinden, wie Sie sie dort definieren.)
Antwort2
Wenn Sie keine Angst vor der Einrichtung haben (die Anweisungen sollten klar sein), finden Sie unten möglicherweise eine Alternative zum schnellen Einfügen Ihrer häufig verwendeten Sonderzeichen (-Alternativen).
Editierbares Sonderzeichen-Tool
Das folgende Skript ist ein flexibles Tool (Fenster zum Einfügen von Zeichen mit einem Klick), um häufig verwendete Zeichen in Sekundenschnelle zur Verfügung zu haben:
Wie es funktioniert
- Rufen Sie das Fenster mit einer Verknüpfung auf
- Um ein Zeichen einzufügen, klicken Sie einfach darauf. Das Zeichen wird dann in das Fenster eingefügt, in dem Sie gearbeitet haben.
Um einen Satz von Zeichen hinzuzufügen, drücken Sie. + Ein Texteditorfenster wird geöffnet. Fügen Sie Ihren „Familiennamen“ in die erste Zeile ein und die entsprechenden Sonderzeichen in die nächsten Zeilen, ein Zeichen pro Zeile, zum Beispiel:
a å ä ã â á à ª
(aus dem Bild). Schließen Sie die Datei, die Sonderzeichen stehen Ihnen ab sofort beim nächsten Aufruf des Fensters zur Verfügung.
- um einen Satz verfügbarer Zeichen zu löschen, drücken Siex
Wie stellt man das ein
Sie müssen einige Abhängigkeiten erfüllen:
python3-xlib
sudo apt install python3-xlib
pyautogui:
pip3 install pyautogui
pyperclip:
sudo apt install python3-pyperclip xsel xclip
Möglicherweise müssen Sie Wnck installieren:
python3-gi gir1.2-wnck-3.0
Melden Sie sich ab und wieder an.
Kopieren Sie das untenstehende Skript in eine leere Datei, speichern Sie es unter
specialchars.py
undausführbar machen#!/usr/bin/env python3 import os import gi gi.require_version("Gtk", "3.0") gi.require_version('Wnck', '3.0') from gi.repository import Gtk, Wnck, Gdk import subprocess import pyperclip import pyautogui css_data = """ .label { font-weight: bold; color: blue; } .delete { color: red; } """ fpath = os.environ["HOME"] + "/.specialchars" def create_dirs(): try: os.mkdir(fpath) except FileExistsError: pass def listfiles(): files = os.listdir(fpath) chardata = [] for f in files: f = os.path.join(fpath, f) chars = [s.strip() for s in open(f).readlines()] try: category = chars[0] members = chars[1:] except IndexError: os.remove(f) else: chardata.append([category, members, f]) chardata.sort(key=lambda x: x[0]) return chardata def create_newfamily(button): print("yay") n = 1 while True: name = "charfamily_" + str(n) file = os.path.join(fpath, name) if os.path.exists(file): n = n + 1 else: break open(file, "wt").write("") subprocess.Popen(["xdg-open", file]) class Window(Gtk.Window): def __init__(self): Gtk.Window.__init__(self) self.set_decorated(False) # self.set_active(True) self.set_keep_above(True); self.set_position(Gtk.WindowPosition.CENTER_ALWAYS) self.connect("key-press-event", self.get_key) self.set_default_size(0, 0) self.provider = Gtk.CssProvider.new() self.provider.load_from_data(css_data.encode()) self.maingrid = Gtk.Grid() self.add(self.maingrid) chardata = listfiles() # get the currently active window self.screendata = Wnck.Screen.get_default() self.screendata.force_update() self.curr_subject = self.screendata.get_active_window().get_xid() row = 0 for d in chardata: bbox = Gtk.HBox() fambutton = Gtk.Button(d[0]) fambutton_cont = fambutton.get_style_context() fambutton_cont.add_class("label") fambutton.connect("pressed", self.open_file, d[2]) Gtk.StyleContext.add_provider( fambutton_cont, self.provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION, ) fambutton.set_tooltip_text( "Edit special characters of '" + d[0] + "'" ) bbox.pack_start(fambutton, False, False, 0) for c in d[1]: button = Gtk.Button(c) button.connect("pressed", self.replace, c) button.set_size_request(1, 1) bbox.pack_start(button, False, False, 0) self.maingrid.attach(bbox, 0, row, 1, 1) deletebutton = Gtk.Button("X") deletebutton_cont = deletebutton.get_style_context() deletebutton_cont.add_class("delete") Gtk.StyleContext.add_provider( deletebutton_cont, self.provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION, ) deletebutton.connect("pressed", self.delete_file, d[2], bbox) deletebutton.set_tooltip_text("Delete family") self.maingrid.attach(deletebutton, 100, row, 1, 1) row = row + 1 addbutton = Gtk.Button("+") addbutton.connect("pressed", create_newfamily) addbutton.set_tooltip_text("Add family") self.maingrid.attach(addbutton, 100, 100, 1, 1) self.maingrid.attach(Gtk.Label("- Press Esc to exit -"), 0, 100, 1, 1) self.show_all() Gtk.main() def get_key(self, button, val): # keybinding to close the previews if Gdk.keyval_name(val.keyval) == "Escape": Gtk.main_quit() def replace(self, button, char, *args): pyperclip.copy(char) subprocess.call(["wmctrl", "-ia", str(self.curr_subject)]) pyautogui.hotkey('ctrl', 'v') Gtk.main_quit() def open_file(self, button, path): subprocess.Popen(["xdg-open", path]) def delete_file(self, button, path, widget): os.remove(path) widget.destroy() button.destroy() self.resize(10, 10) create_dirs() Window()
Richten Sie eine Tastenkombination zum Ausführen ein:
python3 /path/to/specialchars.py
Beim ersten Ausführen wird nur eine +Schaltfläche angezeigt. Beginnen Sie mit dem Hinzufügen Ihrer Charakter-„Familien“ und starten Sie das Fenster neu (-aufrufen), um alles mit einem Klick verfügbar zu haben.
Das ist es...
Antwort3
Sie können Unicode verwenden, um Sonderzeichen unter Linux einzugeben.
Um ein Sonderzeichen einzugeben, drücken Sie zuerst CTRL+ SHIFT+ Uund lassen Sie dann die Tasten los.
Geben Sie anschließend den Hexadezimalcode für das Zeichen ein, das Sie einfügen möchten, und drücken Sie dannENTER
Der Hexadezimalcode für „ü“ ist 00fc
.
Klicken Sie hier, um die Wikipedia-Seite zu Unicode-Zeichen anzuzeigen.
Klicken Sie hier, um die Wikipedia-Seite für Unicode-Mathematikzeichen anzuzeigen.