Logs: liberachat/#kmonad
| 2021-08-09 13:28:41 | <nij-> | But it seems that uinput is linux specific. |
| 2021-08-09 13:28:56 | <Tisoxin> | it is |
| 2021-08-09 13:29:14 | <Tisoxin> | It's just that the concept of keycode is very uniform across the platforms |
| 2021-08-09 13:29:22 | <Tisoxin> | *keycodes |
| 2021-08-09 13:33:06 | <Solid> | yeah the actual way to get the keycodes is a very small part of the whole process |
| 2021-08-09 13:33:33 | <Solid> | after that it's more or less put into the same representation and only converted back to env-specific instructions once we're sending the keycode |
| 2021-08-09 13:34:48 | <nij-> | Gotcha! So cool. |
| 2021-08-09 13:35:43 | <Solid> | I wish we were more portable though (e.g. instead of windows I wish we'd support the BSDs :>) |
| 2021-08-09 13:37:34 | <nij-> | So many standards.. :( :( |
| 2021-08-09 13:38:20 | <Solid> | indeed |
| 2021-08-09 13:38:47 | <Solid> | though it's probably not even all that difficult, I reckon most of the linux syscalls we use have equivalences on the bsds |
| 2021-08-09 13:39:00 | <Solid> | just a matter of getting a bsd user interested enough in the project to contribute :) |
| 2021-08-09 13:39:19 | <nij-> | :> |
| 2021-08-09 13:39:33 | <nij-> | Now kmonads work for my tutor.kbd. |
| 2021-08-09 13:39:49 | <nij-> | I see there's one block of defsrc, and many deflayers. |
| 2021-08-09 13:40:03 | <nij-> | What should I do to "enable" a particular layer? |
| 2021-08-09 13:40:25 | <nij-> | For example, there's a layer called symbols: `(deflayer symbols ..` |
| 2021-08-09 13:41:12 | <Solid> | there are different buttons for that, like `layer-switch`, that take the layer name and toggle (or permanently switch) you to it |
| 2021-08-09 13:41:39 | <Solid> | the `defsrc` is for kmonad to understand your keyboard layout, the first `deflayer` will be the layout you start with |
| 2021-08-09 13:42:14 | <Solid> | think of this as a stack after that; you can put a new layer on top of the stack, at which point you'll have to pop it to go back down |
| 2021-08-09 13:42:27 | <nij-> | OH! I see :) |
| 2021-08-09 13:44:54 | <nij-> | Oh my god. Yes! Yes! :) It all clicks now. Thanks :D |
| 2021-08-09 13:45:41 | <nij-> | I'm pretty closed to my journey to start learning APL. Excited! |
| 2021-08-09 13:49:36 | <nij-> | So.. to find out what "rmet" is, I go to Keycode.hs, and find that it matches to "KeyRightMeta". |
| 2021-08-09 13:49:55 | <nij-> | However, how do I find which physical key to press in order to fire "KeyRightMeta"? |
| 2021-08-09 13:50:46 | <Solid> | `evtest` should show you which keycode the key you pressed corresponds to |
| 2021-08-09 13:54:59 | <nij-> | Indeed <3 I can write up a tutorial for this too. Thanks so much :) :) |
| 2021-08-09 13:55:17 | <Solid> | That'd be much appreciated |
| 2021-08-09 13:55:26 | Solid | should really take a more active role in development |
| 2021-08-09 13:56:23 | <nij-> | kmonad has been tremendous. I think it needs more recognition. |
| 2021-08-09 13:56:45 | <nij-> | It was such a pain to configure key using xmodkbr or its friends. I'm glad. |
| 2021-08-09 13:59:23 | <Solid> | indeed, the horror of xmodmap files also drove me to this project :) |
| 2021-08-09 15:39:15 | Tisoxin | would also like to contribute actively |
| 2021-08-09 15:39:46 | <Tisoxin> | I just don't have enough time atm :/ |
| 2021-08-09 15:40:13 | <Tisoxin> | and also I'm not an experienced Haskell programmer |
| 2021-08-09 15:40:17 | <Tisoxin> | (Though that's not such a big problem) |
| 2021-08-09 15:55:48 | <nij-> | Hm. But what else do we need from kmonad? I though mose features are there already? |
| 2021-08-09 16:02:06 | <Tisoxin> | mose? |
| 2021-08-09 16:02:09 | <Tisoxin> | well, there are a ton of features i'd like to see (especially changing the config syntax) |
| 2021-08-09 16:02:23 | <Tisoxin> | a ton™ |
| 2021-08-09 16:08:07 | <Tisoxin> | e.g.: |
| 2021-08-09 16:08:07 | <Tisoxin> | - satisfying unicode support |
| 2021-08-09 16:08:07 | <Tisoxin> | - signals (i'd like to have a client application to the kmonad daemon, with which i can send signals to the deamon) |
| 2021-08-09 16:08:07 | <Tisoxin> | - better config syntax (this includes also lots of buttons i'd like to have) |
| 2021-08-09 16:08:15 | <Tisoxin> | I guess that's all of it |
| 2021-08-09 16:09:06 | <Tisoxin> | It's a very small list, but every item is a huge task |
| 2021-08-09 16:24:54 | <nij-> | signals - what's a client application? |
| 2021-08-09 16:25:13 | <nij-> | better config syntax what's a button that's lacking now? |
| 2021-08-09 16:27:22 | <Tisoxin> | nij-: Kmonad normally runs as a daemon ("server"), so i'd name an application that can talk to it "client" |
| 2021-08-09 16:28:07 | <Tisoxin> | (a bit like dunstctl) |
| 2021-08-09 16:28:17 | <Tisoxin> | nij-: E.g. once i wanted to apply a modifier to all buttons in a layer apart from a few |
| 2021-08-09 16:30:55 | <Tisoxin> | nij-: I also dislike that the first layer definition is the base layer |
| 2021-08-09 16:32:03 | <Tisoxin> | (Though that's just a minor detail) |
| 2021-08-09 16:32:15 | <Tisoxin> | nij-: If you take a look at the issues, you'll also see that there are many buttons one could implement |
| 2021-08-09 16:35:07 | <nij-> | I see. Is it easy to make a server in haskell?! |
| 2021-08-09 16:35:24 | <nij-> | So people can change the state on the fly? |
| 2021-08-09 16:35:30 | <Tisoxin> | https://github.com/kmonad/kmonad/issues/237 |
| 2021-08-09 16:36:04 | <nij-> | By the way.. I'm trying to add esc and f1 into defsrc, but I don't know which symbol it corresponds. |
| 2021-08-09 16:36:13 | <Tisoxin> | nij-: depends on what you mean with server |
| 2021-08-09 16:36:54 | <Tisoxin> | It's pretty easy to create a web server |
| 2021-08-09 16:37:02 | <nij-> | Tisoxin: I'd imagine it's like a ghci, which the user can alter on live. |
| 2021-08-09 16:37:18 | <Tisoxin> | Also it's not that hard to create a ffi interface |
| 2021-08-09 16:37:28 | <Tisoxin> | Though it seems like there is no package for cross-platform interprocess communication (for haskell) |
| 2021-08-09 16:37:33 | <Tisoxin> | nij-: should be just esc/f1 |
| 2021-08-09 16:38:09 | <Tisoxin> | nij-: that's not really what i meant |
| 2021-08-09 16:38:22 | <nij-> | But it's not in the list - https://github.com/kmonad/kmonad/blob/master/src/KMonad/Keyboard/Keycode.hs#L353 |
| 2021-08-09 16:38:41 | <Tisoxin> | More like a "kmonadctl send $SIGNAL" |
| 2021-08-09 16:38:44 | <Tisoxin> | Where $SIGNAL could be a keycode or sth |
| 2021-08-09 16:39:13 | <nij-> | Ah I see. |
| 2021-08-09 16:39:44 | <Tisoxin> | nij-: those names seem to be aliases instead of the normal names |
| 2021-08-09 16:40:29 | <nij-> | ? For example, in `(KeyCompose, ["comp", "cmps", "cmp"])` I know that I can refer to KeyCompose with the symbol `cmp`. |
| 2021-08-09 16:40:40 | <nij-> | But for KeyEsc, what should I do? |
| 2021-08-09 16:41:17 | <Solid> | every key gets an automatic alias without the `Key` at the start and with a lower-case first letter |
| 2021-08-09 16:41:41 | <Solid> | e.g. `KeyName` automatically gets the alias `name` |
| 2021-08-09 16:41:45 | <Tisoxin> | nij-: For the other keys, kmonad apparently just takes the constructor (like `KeyEsc`) and drops the first three letters and makes the name lowercase |
| 2021-08-09 16:41:56 | <Solid> | the other aliases are simply additional |
| 2021-08-09 16:42:22 | <Solid> | r.e. what we'd like to change: I think the way we handle keycodes needs to be fundamentally reworked |
| 2021-08-09 16:42:45 | <Solid> | right now we only see what real button was pressed, but don't know what this corresponds to in the currently selected layer |
| 2021-08-09 16:43:02 | <Solid> | this makes it basically impossible to do things like chaining sticky keys (which is a feature that people would like to see) |
| 2021-08-09 16:43:37 | <Solid> | further, instead of having crazy button names like tap-hold-next-release it would be much more ergonomic to have a small set of primitives that can be composed in creative ways |
| 2021-08-09 16:44:45 | <Solid> | but first things first, we need to finish the ongoing keycode refactor |
| 2021-08-09 16:44:55 | <Solid> | touching any of that stuff right now would not be wise |
| 2021-08-09 16:50:59 | <nij-> | I see. |
| 2021-08-09 16:51:12 | <nij-> | The potential seems profound :O |
| 2021-08-09 16:51:25 | <Solid> | indeed :) |
| 2021-08-09 16:51:44 | <Solid> | it helps that kmonad itself it quite a clean codebase, so I don't think any of these would be impossible (although probably not trivial either) |
| 2021-08-09 16:51:55 | <Solid> | s/it quite/is quite/ |
| 2021-08-09 16:55:59 | <nij-> | I wish I know more haskell :D |
| 2021-08-09 16:56:36 | <Solid> | ah it's not like I know a lot myself :> |
| 2021-08-09 16:59:25 | <Tisoxin> | Solid: … |
| 2021-08-09 16:59:54 | <Tisoxin> | You're the 8th contributor to xmonad and the 4th contributor to xmonad-contrib… |
| 2021-08-09 16:59:57 | <Tisoxin> | (Though I don't know how github calculates those stats) |
| 2021-08-09 17:00:18 | <Tisoxin> | So you must know a bit more than just a bit ≈ a lot |
| 2021-08-09 17:00:26 | <Tisoxin> | ▢ |
| 2021-08-09 17:00:45 | <Solid> | I would imagine number of commits or something |
| 2021-08-09 17:01:02 | <nij-> | loo |
| 2021-08-09 17:01:04 | <Solid> | and holy shit really? |
| 2021-08-09 17:01:09 | <nij-> | LöL |
| 2021-08-09 17:01:15 | <Tisoxin> | <Solid> "it helps that kmonad itself it..." <- Unicode is impossible |
| 2021-08-09 17:01:52 | <Solid> | huh, apparently you're right, 4th most commits to xmonad-contrib |
All times are in UTC.