Escribo y trabajo en varios idiomas: alemán, español, francés, griego, inglés. En mac, cuando presionas una tecla durante más de 2 segundos, puedes elegir entre caracteres especiales derivados de un personaje principal. En windows existe un software llamado Holdkey que hace lo mismo. ¿Hay algo similar en Linux? No lo he encontrado todavía.
Respuesta1
Tengo dos consejos:
- Utilice una distribución de teclado adecuada, es decir, una distribución con teclas muertas. Si tienes un teclado en inglés, elige, por ejemploInglés (EE. UU., intl., con teclas muertas). Pero existen varias otras variantes.
- Definir uncomponer clave. De esa manera podrás escribir muchos caracteres que no están incluidos en la distribución del teclado que estás utilizando. (La clave de redacción es una característica de XKB, por lo que está disponible en Kubuntu, pero debes descubrir cómo definirla allí).
Respuesta2
Si no tiene miedo de configurar (las instrucciones deben ser claras), a continuación puede brindarle una alternativa para insertar rápidamente el carácter especial que usa con frecuencia (-alternativas).
Herramienta de carácter especial editable
El siguiente script es una herramienta flexible (una ventana desde la que insertar caracteres, con un clic) para tener disponibles los caracteres de uso frecuente en un segundo:
Cómo funciona
- Llama a la ventana con un atajo.
- Para insertar un carácter, simplemente haga clic en él y lo pegará en la ventana en la que estaba trabajando.
Para agregar un conjunto de caracteres, presione. + Se abrirá una ventana del editor de texto, agregue su nombre "familiar" en la primera línea, caracteres especiales relacionados en las siguientes líneas, un carácter por línea, por ejemplo:
a å ä ã â á à ª
(de la imagen). Cierre el archivo, los caracteres especiales estarán disponibles a partir de ahora la próxima vez que abra la ventana.
- para eliminar un conjunto de caracteres disponibles, presionex
Como instalar
Necesita satisfacer algunas dependencias:
python3-xlib
sudo apt install python3-xlib
pyautogui:
pip3 install pyautogui
hiperclip:
sudo apt install python3-pyperclip xsel xclip
Quizás tengas que instalar Wnck:
python3-gi gir1.2-wnck-3.0
Cerrar sesión y volver a iniciar sesión.
Copie el siguiente script en un archivo vacío, guárdelo como
specialchars.py
yhacerlo ejecutable#!/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()
Configure una tecla de acceso directo para ejecutar:
python3 /path/to/specialchars.py
En la primera ejecución, solo verá un +botón. Comience a agregar las "familias" de sus personajes y reinicie (-llame) la ventana para tenerlos todos disponibles con un clic.
Eso es todo...
Respuesta3
Puede utilizar Unicode para escribir caracteres especiales en Linux.
Para escribir un carácter especial, primero presione CTRL+ SHIFT+ Uy luego suelte las teclas.
A continuación, escriba el código hexadecimal del carácter que desea insertar y luego presioneENTER
El código hexadecimal para "ü" es 00fc
.
Haga clic aquí para ver la página de Wikipedia para caracteres Unicode.
Haga clic aquí para ver la página de Wikipedia sobre caracteres matemáticos Unicode.