awesome hotkeys templates

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
dasebastian
Beiträge: 1847
Registriert: 12.07.2020 11:21:17
Lizenz eigener Beiträge: MIT Lizenz

awesome hotkeys templates

Beitrag von dasebastian » 22.04.2021 00:05:51

Um mal was zurück zu geben:

Ich beschäftige mich seit einiger Zeit mit dem Awesome-Windowmanager und habe mir ein paar Lua-Skripte geschrieben, die mir für einige Programme die jeweiligen für mich wichtigen (kein Anspruch auf Vollständigkeit!) Hotkeys/Shortcuts/Tastenkombinationen anzeigen, wenn sie geöffnet sind.

Debianawesome legt die Hotkey-Dateien prinzipiell in folgendem Ordner ab, dieser wird in Folge auch beackert (ich habe noch keine einfachere Lösung gefunden):

Code: Alles auswählen

/usr/share/awesome/lib/awful/hotkeys_popup/keys
Jetzt das Ganze am Beispiel von Firefox:

Angelegt wird die Datei

Code: Alles auswählen

/usr/share/awesome/lib/awful/hotkeys_popup/keys/firefox.lua
mit den (für mich) wichtigsten Tastenkombinationen:

Code: Alles auswählen

-- ###    Firefox hotkeys for awful.hotkeys_widget     ###
-- ### @author Jonathan <jonathan@tinypulse.com> ###
-- ###             @copyright 2017 Jonathan            ###
-- ###          @submodule awful.hotkeys_popup         ###
-- ###             Sebastians Mod, 20200728            ###

local hotkeys_popup = require("awful.hotkeys_popup.widget")
local fire_rule = { class = { "Firefox" } }
-- Wenn korrekter Name ("firefox") dann Anzeige nur bei geöffnetem Firefox:
for group_name, group_data in pairs({
    ["firefox"] = { color = "#009F00", rule_any = fire_rule }
}) do
    hotkeys_popup.add_group_rules(group_name, group_data)
end

local firefox_keys = {

    ["firefox"] = {{
        modifiers = { "Mod1" },
        keys = {
	    ['Left'] = "zurück",
	    ['Right'] = "vorwärts",
            ['Pos1'] = "startseite",
            ['1..9'] = "zu tab"
        }
    }, {
        modifiers = { "Ctrl" },
        keys = {
            t = 'neuer tab',
            w = 'schließe tab',
	    l = 'urlbar',
	    d = 'setze lesezeichen',
	    s = 'seite speichern unter',
	    b = 'bookmarks',
	    n = 'neues fenster',
	    f = 'in seite suchen',
            ['Up'] = 'seitenanfang',
            ['Down'] = 'seitenende',
	    ['+,-,0'] = 'zoom',
	    ['F5'] = 'reload inkl cache',
            ['Tab'] = 'nächster tab'
        }

    }, {
	modifiers = { "Ctrl", "Shift" },
	keys = {
	    o = 'lesezeichen verwalten'
    }

    }, {
        modifiers = { "Ctrl", "Mod1" },
        keys = {
            r = 'lesemodus an/aus'
    },
    }}
}

hotkeys_popup.add_hotkeys(firefox_keys)

-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
Ist die Datei abgespeichert, muss awesome noch gesagt werden, dass er diese mit hochladen soll. Das passiert in der

Code: Alles auswählen

/usr/share/awesome/lib/awful/hotkeys_popup/keys/init.lua
mit einem zusätzlichen Eintrag:

Code: Alles auswählen

  firefox = require("awful.hotkeys_popup.keys.firefox"),
Wenn das erledigt und awesome neu gestartet ist (ab- und anmelden, Ctrl+Super+r), sollte ab jetzt bei einem geöffneten Firefox folgender Hint auftauchen (Super+h):

3164

Gegebenenfalls muss in der Datei

Code: Alles auswählen

/usr/share/awesome/lib/awful/hotkeys_popup/widget.lua
noch die Größe des Hotkeys-Popup-Fensters angepasst werden:

Code: Alles auswählen

        .
        .
        .
        function widget_instance:_load_widget_settings()
        if self._widget_settings_loaded then return end
        self.width = args.width or dpi(900)
        self.height = args.height or dpi(840
        .
        .
        .
        
Das war das Beispiel Firefox.

Für folgende Programme kann ich noch Vorlagen anbieten:
Debiancaja Debianclaws-mail Debiangpicview Debianlibreoffice Debianmpv und Debianzathura.

Bei Interesse einfach melden, ansonsten wirds jetzt langsam aber auch wirklich Zeit:

Nachtinachti Herr Lehmann!!!

Antworten