spiegel-keyman/linux/mcompile/keymap
2023-08-10 15:45:10 +02:00
..
filesystem.cpp feat(linux): mcompile copy and use filesystem.cpp/h 2023-06-27 12:26:10 +02:00
filesystem.h feat(linux): mcompile copy and use filesystem.cpp/h 2023-06-27 12:26:10 +02:00
keymap.cpp feat(linux): mcompile change type return value of functions from KMX_BOOL/bool to int/KMX_DWORD 2023-08-01 13:08:34 +02:00
keymap.h feat(linux): mcompile remove helpers.h 2023-08-10 15:43:33 +02:00
km_types.h feat(linux): mcompile first version to use gtk 2023-07-19 16:36:59 +02:00
kmx_file.h feat(linux): mcompile use loadKeyboard->CopyKeyboard for 64bit 2023-07-11 13:43:28 +02:00
mc_kmxfile.cpp feat(linux): mcompile remove helpers.h 2023-08-10 15:43:33 +02:00
mc_kmxfile.h feat(linux): mcompile finish DoConvert-read 2023-07-28 17:03:11 +02:00
mc_savekeyboard.cpp feat(linux): mcompile #include files to mcompile, comment out most old code, adapt meson.build to use more .cpp-files 2023-06-12 15:05:43 +02:00
mc_savekeyboard.h feat(linux): mcompile #include files to mcompile, comment out most old code, adapt meson.build to use more .cpp-files 2023-06-12 15:05:43 +02:00
mcompile.cpp feat(linux): mcompile -adapt translateKeyboard 2023-08-10 15:45:10 +02:00
mcompile.h feat(linux): mcompile mcompile.cpp starts keymap 2023-07-18 12:02:21 +02:00
meson.build feat(linux): mcompile remove helpers.h 2023-08-10 15:43:33 +02:00
README.md feat(linux): mcompile tidy up: remove unneccessary code 2023-07-28 18:25:50 +02:00
u16.cpp feat(linux): mcompile tidy up: remove unneccessary code 2023-07-28 18:25:50 +02:00
u16.h feat(linux): mcompile exchange Err(), LogError(), DebugLog() with KMX_Log 2023-07-05 16:52:36 +02:00

This is a proposal to rewrite mcompile for Linux. For this we need to query the base keyboard data from the Linux platform, then rewriting the keyboard .kmx using the same approach as is done in mcompile for Windows, but working from the data from the x11 keyboard on Linux.

Ideally, we'd rewrite mcompile to be cross-platform (Windows, Linux, macOS), so that the keyboard interrogation would be separated from the .kmx rewriting, at least to some degree. Nevertheless it would probably be easiest to start from a standalone implementation. Sample program that reads US basic keyboard and compares to key value group

Keymap

TODO check if US basic is the right Keyboard to compare with TODO non-letter characters don't work OK yet TODO Umlauts don't work OK yet TODO path for xkb/symbols as compile time option in meson TODO check how many/which shift states we use ( at the moment we read all shiftstate-columns of US but then use only 2 colums (non-shift + shift) then use as many colums for Other ) TODO define folder to store File_US.txt" in and find better name TODO get rid of GTK functions that are deprecated and use X11 instead TODO retrieve name of Other keyboard and use appropriate name instead of "Other" TODO use/adapt TranslateKeyboard() to work on Linux/cross-platform TODO mcompile.cpp: open mcompile -u - option TODO check if I can use files from some other keyman path instead of a copy in keymap ( e.g. filesystem.h exists elsewhere) TODO remove kbdid and kbd for Linux TODO remove unneccessary testing fungctions in keymap.cpp/h TODO remove helpers.cpp/h TODO usw only wprintf check if printf is used somewhere... ToDo remove std::cout std::wcout TODO several Versions of KMX_LoadKeyboard TODO shiftstate-count TODO keymap SplitToV.cpp exchange 4 with genaerated shiftcount TODO check if part with surplus is neccessary TODO shift-statevector TODO meson.build do I need version of dependency?? TODO meson remove helpers.cpp TODO remove mc_savekeyboard.cpp/h TODO remove dummytest() TODO see which functions I need from u16.cpp/h TODO see which data types I can remove from km_types.h TODO replace/remove old structs or move kmx_structs to the left side of file TODO ...

//--------------------------- TOASK is using string OK, or do we use char, wchar? TOASK a-z, A_Z or more keys? ... TOASK ado we need mcompile -u option?