Minetest logo

IRC log for #minetest-dev, 2024-07-27

| Channels | #minetest-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
02:05 MTDiscord <mistere_123> You gie it to us, im sure we will find a use for it, its its no extra trouble
02:05 MTDiscord <mistere_123> *give
02:05 MTDiscord <mistere_123> *if
04:00 MTDiscord joined #minetest-dev
04:59 SingleDigitIq wen efficient minetest engine development? :>
05:03 SingleDigitIq while a committee tries to agree upon like anything, every interesting pr inevitably goes stale, and how many times it happened when a part of core team agreed on something, and waited for the other part of the team and as a result pr was closed?
05:03 SingleDigitIq decentralized governance is only good in very conservative systems, like finance. it does not work in space as rapidly advancing as gamedev, and even more than that, it does not work in software that is not mission critical.
05:04 SingleDigitIq the best pr right now for this old code is a complete overhaul, how a committee will ever agree to merge a complete overhaul, how many man hours will that take?
05:05 SingleDigitIq the size of core dev team dilutes incentives, nobody truly owns the code. the best path forward for minetest would be either celeron starts being the most active maintainer again, or gives away minetest to sfan completely
05:08 SingleDigitIq a committee always struggles to make a decision. here is an idea a. but hey it comes with b side effect and c downside. oh okay, lets do nothing. of course every decision has a downside, there is a downside in sleeping too, does not mean its not required. centralized governance would advance this project much more rapidly, not all decisions would be perfect, but there will be decisions, prs will actually start to get merged
05:08 SingleDigitIq also another thing about highest quality open source is to discourage prs as much as possible
05:08 SingleDigitIq you guys just waste time reviewing random nonsense
05:13 SingleDigitIq every. single. time. when anything high quality came out of open source it was one dev doing everything, not bothering with a committee opinion. minetest is not postgres, it's not mission critical, waiting for big tech employees to start contributing might never work
05:29 Mantar fork it if you wanna, but more talking is not a solution to anything
05:30 SingleDigitIq i am not just talking though
05:31 SingleDigitIq just picturing it as is, a fresh perspective if you will
06:09 MTDiscord <greenxenith> Yes, i'll have "Nonsense Takes" for 500, Alex.
06:16 SingleDigitIq why are you laffin is it because i am dum? :<
06:17 SingleDigitIq another way could be more hierarchy' clarity maybe? no centralized decision making = years of stagnation
06:59 grorp joined #minetest-dev
07:00 grorp due to unexpected events, I have Internet access again earlier than expected
07:03 grorp Krock: re changelog: "punch with single tap" should be "punch with short tap", I got that wrong in the commit message
07:08 grorp in the highlights section, you wrote about keyboard support on Android as a future improvement. that's actually been supported for a long time. the new thing is mouse support on Android.
07:08 Krock that highlight section is from ruben but I'll adjust it too
07:08 Krock thanks
09:30 celeron55 SingleDigitIq: anyone in the core team can pick up the main lead, as long as they are appreciated by the community to do that. most people don't really want such a high workload and high stakes hobby, it's nicer to take a laid back approach
09:33 celeron55 the governance is not decentralized because i want to force it to be. it's decentralized because it's so draining for anyone to try to act as an active dictator for a long stretch of time
09:36 celeron55 anyway...
09:37 celeron55 i like the idea of being able to create a texture with a static name and a dynamic content. conceptually just a simple layer of indirection (alias) from a freeform name to a dynamic name
09:38 celeron55 and the reason for having that would be due to the simplification in memory management
09:38 celeron55 no need to catch unused textures
09:40 celeron55 by creating the alias, you allocate the texture, and from there on it's updated onto the same texture
10:30 vampirefrog joined #minetest-dev
10:35 MTDiscord <herowl> Well, so we're back to what MisterE suggested initially
10:36 MTDiscord <herowl> Also another problem was mentioned, and I'll reiterate it: if you use any complex texture modifiers, especially [combine, any texture packs that change the resolution fall apart... or at least can't touch the stuff that is touched by those modifiers.
11:33 celeron55 it could be fixed with new texture modifiers that are resolution independent, i.e. coordinates would be scaled to 0.0...1.0 or something
11:33 celeron55 (and crucially coordinates would always be included in the modifier and not taken from the image)
11:35 celeron55 overall the modifiers are a good idea with a wide range of uses. it's like a mini text based image editor, insanely powerful. but it's quite rough
11:36 celeron55 mini text based parametric image editor, to be exact
11:36 grorp joined #minetest-dev
11:38 grorp could it be that we're closer to releasing than a month ago because issues/PRs have been removed from the milestone, not because any have been fixed/merged?
11:38 grorp if so, why didn't we remove them a month ago?
11:40 grorp also, why is the Android SDK version thing necessary for 5.9? shouldn't we be fine as long as we publish 5.9 before Aug 31?
11:43 Krock some less important issues and PRs were either moved or removed from the milestone.
11:45 Krock oh right. If we publish before that date, we should be fine. removing blocker.
11:45 cranez joined #minetest-dev
11:45 grorp yes, I'm just wondering why we didn't do this a month ago
11:45 Krock thus it seems that the only remaining issue that needs fixing is #14886
11:45 ShadowBot https://github.com/minetest/minetest/issues/14886 -- Attached sounds don't resume playing when objects come back into range
11:46 Krock things kept popping up and were added to the milestone in those two months (I'm also partially responsible for that)
11:46 Krock except that cleanups were slower than stuff getting re-added
11:46 grorp me too
11:47 grorp #14545 is a wontfix for 5.9, right?
11:47 ShadowBot https://github.com/minetest/minetest/issues/14545 -- SDL: Some keybinds broken due to missing character lookup
11:48 Krock luckily there's still the regular devices(linux/win32) if SDL turns out to be stable enough
11:48 Krock there's yet no approved PR so I don't think we can fix this without dragging the release even further
11:49 grorp #14874 also doesn't really fix the issue at all, it just allows you to work around it
11:49 ShadowBot https://github.com/minetest/minetest/issues/14874 -- Allow keybindings with modifiers by y5nw
11:49 grorp as far as I understand it
11:50 grorp the question is: do we ship with the bug or do we revert to non-SDL by default?
11:57 mtvisitor #14865
11:57 ShadowBot https://github.com/minetest/minetest/issues/14865 -- Remove mod_translation_updater.py and move it to minetest/modtools by Zughy
11:59 Krock grorp: unfortunately I don't know how well SDL works in general because I've always used the Irrlicht Linux device
12:00 Krock for affected platforms, default=false would be an option, but we might be trading one issue for others
12:04 Desour joined #minetest-dev
12:34 grorp joined #minetest-dev
12:35 MTDiscord <josiah_wi> Isn't switching the keymap to be position-based a feature change? That's not a bugfix.
12:35 grorp the SDL device has no known bugs remaining except that one, I've used it for months now
12:36 grorp josiah_wi: you're talking about #14874?
12:36 ShadowBot https://github.com/minetest/minetest/issues/14874 -- Allow keybindings with modifiers by y5nw
12:37 MTDiscord <josiah_wi> No, I'm talking about the issue thread. What has to be done to get the correct key? Can we re-use that part of the Linux driver?
12:38 MTDiscord <josiah_wi> Perhaps that PR is already the correct fix for the issue. It's hard to tell from reading the issue thread and the PR description whether it's a fix for the bug or not.
12:38 grorp it isn't
12:39 MTDiscord <josiah_wi> The issue made it sound like we aren't doing a key lookup but are instead using the position of the key to decide which key it is.
12:40 grorp no, we're not using the position of the key. that would mean SDL scancode.
12:40 MTDiscord <josiah_wi> I can confirm the expected behavior, which should be preserved in a bug fix, is to look up the key in the keymap. I use a Dvorak keyboard layout and I always have to remap my keys because WASD aren't in the same place.
12:40 sfan5 13:50 <+grorp> the question is: do we ship with the bug or do we revert to non-SDL by default?
12:40 sfan5 ship with the bug IMO
12:41 grorp we're using the SDL keycode, which is the actual key but *without* modifiers applied.
12:41 MTDiscord <josiah_wi> Ok, how is allowing keybindings with modifiers not a fix then?
12:41 grorp the old Irrlicht devices do apply modifiers, the SDL device doesn't and that's the bug.
12:42 grorp "This only provides a partial workaround for #14545 by allowing (also: requiring) users to use e.g. Shift-7 instead of / for keybindings."
12:42 ShadowBot https://github.com/minetest/minetest/issues/14545 -- SDL: Some keybinds broken due to missing character lookup
12:43 Krock what we need is the printed character like in tex tinputs
12:43 grorp which is the SDL keycode with modifiers applied, which will be possible to get with SDL3
12:43 Krock as for Shift+7 and '/': one should be equivalent to the other
12:44 Krock (assuming the user's locale stays the same while using Minetest with their configuration)
12:44 Krock how come text input does work properly, then?
12:44 sfan5 i think the most likely fix is to hardcode mapping from shift+7 to '/'
12:44 MTDiscord <josiah_wi> Part of the confusion for me must be that I can't type a / character by pressing shift-7 on my keyboard.
12:45 sfan5 assuming we can somehow apply that to only the relevant layouts
12:45 Krock @josiah_wi setxkbmap de
12:45 grorp depends on keyboard layout of course. I posted this snippet as a response to josiah_wi's question. the PR doesn't fix the bug because the user has to bind the key combination manually, it doesn't work out of the box.
12:47 grorp hmm, yeah, hardcoding the key combination could work as a temporary workaround for at least some common keyboard layouts.
12:47 MTDiscord <josiah_wi> So what we'd like to do is to have the keybinding set to /, and for the user to be able to activate it by pressing shift+7 on a keyboard layout where that is the mapping for the '/' character?
12:48 sfan5 yes
12:48 grorp and that's also how it used to work
12:48 sfan5 this doesn't affect people who can enter / with a single key press, it still works there
12:48 grorp Krock: text input works correctly because it has a separate interface in SDL
12:49 grorp poor erlehmann with his Neo2 keyboard, all of his keybindings will be broken by 5.9
12:51 MTDiscord <josiah_wi> I can think of two approaches to fix it. The first is to lookup the keypresses from the character, and store that internally as the keybinding (similar to the existing PR with an additional step), and the second is to convert the keypresses to a character and look that up in the keybinding map.
12:51 MTDiscord <josiah_wi> Am I overlooking anything?
12:52 Krock grorp: could we somehow abuse that, or is it limited to GUI elements?
12:54 sfan5 we can't abuse text input for key input
12:55 Krock :(
12:55 grorp it's possible, but it's super ugly doesn't work very well. the SDL 1.2 compat implementation on top of SDL 2 does it for implementing the old "unicode" key event field.
12:55 grorp +and
12:57 grorp josiah_wi: I don't see how your suggestions would resolve the issue? from where do you get the modified keycode that depends on keyboard layout?
12:58 MTDiscord <josiah_wi> An exhaustive search of the layout bindings. My first thoughts are that going from the keypresses to the character is much easier, since that's the way it normally works.
12:59 MTDiscord <josiah_wi> SDL must do something like this for the text input that you said works like we want already, right?
13:00 sfan5 not really?
13:00 sfan5 sdl knows the character that a key press has produced, it just doesn't give this information to us
13:01 MTDiscord <josiah_wi> Right, but it does some kind of lookup to determine which character that is.
13:01 sfan5 the OS exposes that information
13:01 MTDiscord <josiah_wi> And it sounds like the problem is that it doesn't have an API to provide that to us.
13:02 MTDiscord <josiah_wi> So my question is, can we get the keypresses from SDL, and then ask the OS for the character?
13:02 MTDiscord <josiah_wi> If the SDL API doesn't support the usecase we have to work around it, don't we?
13:03 [MTMatrix] <grorp> the use case is supported in SDL 3 since a few weeks :)
13:03 [MTMatrix] <grorp> actually, I wonder why they didn't notice the SDL 2 API was too limited when they wrote the SDL 1.2 compat layer and had to do such a huge hack
13:03 sfan5 I don't think so
13:03 sfan5 here's e.g. what win32 does https://github.com/minetest/minetest/blob/7625f88a0cafa846a0ea3cd7f9364a9dd7b1faa2/irr/src/CIrrDeviceWin32.cpp#L655-L659
13:03 sfan5 this isn't something you can just do behind SDL's back
13:04 Desour joined #minetest-dev
13:04 [MTMatrix] <grorp> not mentioning that not having to do platform-specific stuff like this is why we want to use SDL
13:06 grorp *not to mention
13:06 Desour and here's what our X11 backend does: https://github.com/minetest/minetest/blob/7625f88a0cafa846a0ea3cd7f9364a9dd7b1faa2/irr/src/CIrrDeviceLinux.cpp#L894
13:07 MTDiscord <josiah_wi> And we can't do this behind SDL's back as sfan puts it?
13:10 MTDiscord <josiah_wi> Do we know of any correct way to fix it at all? I'm starting to see why it may be a lot of work.
13:10 sfan5 the only correct fix is to use sdl3
13:11 grorp I have a working implementation of that
13:11 MTDiscord <josiah_wi> I doubt we can require SDL3 though..
13:11 grorp yes, we'll have to wait. it's not even released yet.
13:13 sfan5 https://discourse.libsdl.org/t/how-soon-will-the-first-stable-version-of-sdl3-be-released/46024/3 it will be a while...
13:13 sfan5 in conclusion:
13:13 sfan5 short term fix -> some hackery to map the right chars depending on layout/locale
13:13 sfan5 medium term fix -> support both sdl2 and sdl3. encourage packagers to use sdl3
13:13 sfan5 long term fix -> require sdl3
13:16 Desour does SDL3 even allow doing what we do in X11? I didn't come to read up what things exactly they did to fix the issue. but it looks like they still just provide an enum keycode value. so how would we even recognize, if for example someone bound jumping to '€' on a default german layout?
13:16 sfan5 I thought sdl3 simply started providing the character generated by a key press
13:18 MTDiscord <josiah_wi> I am available all day to test on Windows if that's helpful. I'm also willing to try my hand at writing the code, but I have never used SDL/2 so I don't know the APIs.
13:18 grorp basically you can now decide whether your keycodes should be affected by modifiers or not, or call a function to get them from scancodes manually if you want both.
13:18 MTDiscord <josiah_wi> (I can test on Linux to, but I presume devs are more likely to be working on Linux.)
13:18 grorp the SDL keycodes are not an enum, but can be any character
13:19 MTDiscord <josiah_wi> too*
13:19 grorp or special values corresponding to non-printable scancodes
13:19 Desour ahh
13:22 grorp > you can now decide whether your keycodes should be affected by modifiers or not
13:23 grorp actually they removed that part again, just mentioning it for correctness
13:23 Desour do you know by chance, if they accounted for non-default modifiers?
13:25 [MTMatrix] <grorp> wdym?
13:27 Desour for example, if someone uses a non-default scancode for shift. or if one adds a modifier, and other shenanigans
13:29 [MTMatrix] <grorp> no idea. how would you do that? is that somehow possible in some operating system's settings?
13:32 Desour I'm using xkbcomp with a custom .xkb file for my keyboard layout. IIRC, this article describes it well: https://wiki.archlinux.org/title/X_keyboard_extension?useskin=vector
13:48 MTDiscord <josiah_wi> SDL2 has functions to convert from a keycode to a scancode and vice versa.
13:50 MTDiscord <josiah_wi> I suppose the issue with these is that they don't take modifiers into account.
13:50 Desour josiah_wi: yes, but in SDL3 they added the modifier argument
13:57 Desour it looks like they have a hashmap for modifiers+scancode to keycode (aka char). looking at X11_UpdateKeymap in SDL, it seems like they populate this hashmap by looking up all scancodes for a fixed set of modifier combinations
14:03 MTDiscord <mistere_123> How does one officially add a bug/feature bounty?
14:05 MTDiscord <rollerozxa> announce it and tell someone to add the bounty label to the issue, I assume
15:24 rubenwardy would be nice if android could compile faster
15:48 rubenwardy how do you clear deps again
15:48 rubenwardy I wish this was done automatically
15:49 Krock figure it out and write a script
15:51 sfan5 they're somewhere in the "native" folder
15:52 rubenwardy I guess `rm -r native/deps native/build/deps.zip`
15:53 [MTMatrix] <grorp> that's what I do, too
16:06 MTDiscord <luatic> would like to push https://gist.github.com/appgurueu/55be8f09f26df31a8dc5722bceb4dc8f and merge #14872 and #14877 in 10m.
16:06 ShadowBot https://github.com/minetest/minetest/issues/14872 -- Clean up MSVC warnings in CIrrDeviceSDL.{h,cc} by JosiahWI
16:06 ShadowBot https://github.com/minetest/minetest/issues/14877 -- Improve fs::PathStartsWith to handle empty strings by asrelo
16:07 MTDiscord <wsor4035> those both arent on the 5.9 milestone?
16:08 MTDiscord <luatic> they are both relatively minor refactoring. is that considered not fine to merge during feature freeze?
16:08 rubenwardy no, feature freeze includes unnecessary refactors
16:08 MTDiscord <luatic> and the diff i want to push is to document the api that was used in game#3142
16:08 ShadowBot https://github.com/minetest/minetest_game/issues/3142 -- Replace deprecated `get_metadata()` calls by Niklp09
16:08 rubenwardy it's fine if it's a bug fix though
16:08 MTDiscord <luatic> rubenwardy: okay, will only push the doc thing then, if you consider that fine.
16:09 rubenwardy fixing compiler warnings is argubly a bugfix
16:14 MTDiscord <luatic> rubenwardy: alright, i'd push https://gist.github.com/appgurueu/55be8f09f26df31a8dc5722bceb4dc8f and merge #14872, is that fine by you?
16:14 ShadowBot https://github.com/minetest/minetest/issues/14872 -- Clean up MSVC warnings in CIrrDeviceSDL.{h,cc} by JosiahWI
16:17 rubenwardy \o/
16:17 rubenwardy ok, cleared deps and I still see this https://rwdy.uk/276iR.jpg
16:18 rubenwardy I could maybe try clean building again, but those two builds have already taken my battery down to 13%
16:29 MTDiscord <luatic> merged the compiler warning fixes
16:30 MTDiscord <luatic> pushed the doc fix
16:33 Krock rubenwardy: do the buildbot binaries suffer from the same issue?
16:37 sfan5 you mean the error text?
16:37 sfan5 that looks just like the driver deciding to warn of performance issue at the highest log level
16:38 sfan5 should disappear in release builds
16:56 MTDiscord <josiah_wi> I would like to take on the keybinding issue. I'll see whether we can bundle SDL3's implementation, and if not I'll try making the appropriate system-dependent call.
17:03 Desour josiah_wi: gl! maybe try to backport it to SDL2 (and ask the SDL ppl if they want that of course)
17:04 Krock yes, I meant the error text. I assumed it was related to malfunctioning shaders
17:05 Krock or deeper: unsupported pixel formats passed to OpenGL. but it does mention Performance, thus might not be too important
17:36 sfan5 afbc is this btw https://www.arm.com/technologies/graphics-technologies/arm-frame-buffer-compression
17:36 sfan5 never seen this being interacted with directly from GL
17:58 MTDiscord <herowl> I guess GLES Android implementation does interact with it
18:53 v-rob joined #minetest-dev
18:55 v-rob I don't understand.  Why _are_ we using SDL_Keycode?  WASD is only WASD on QWERTY, but will be at some random set of positions on DVORAK or AZERTY or whatever.  I thought the existence of scancodes was one of the major benefits of switching to SDL...
18:57 Krock some are position-dependent, others have literal meanings, such as + and -
18:57 Krock in the best case we'd have a system to accept both ways
19:02 [MTMatrix] <grorp> exactly. we need both kinds of bindings.
19:03 [MTMatrix] <grorp> but for now, reimplementing the old behavior is the most sane option. redoing the keybinding system on top of SDL only makes sense after we drop everything else.
19:04 v-rob Most of them, like I, could be placed in a position near WASD (Tab, Q, or something) rather than I for Inventory.  The main problems seem to be + - . /
19:05 v-rob I don't know of any games that allow the user to choose either a keycode or a scancode.
19:05 v-rob Unless the keycodes are hardcoded and scancodes are customizable, I guess.
19:06 [MTMatrix] <grorp> we don't have to allow the user to choose between keycode and scancode, but we have to be able to choose for the default bindings.
19:06 [MTMatrix] <grorp> if we want to switch to scancodes
19:08 Desour >I don't know of any games that allow the user to choose either a keycode or a scancode.
19:08 Desour we want to be better than other games
19:09 rubenwardy I don't think it actually matters to the user, they can just press a key and the game shows that
19:09 rubenwardy it matters more when shipping premade bindings to a large variety of user agents with different keyboard layouts
19:10 rubenwardy keycode or scancode is technical information that the user doesn't care about. In a binding GUI, they just want to be able to press a key and use that
19:15 v-rob I suppose that makes reasonable sense
19:15 v-rob So you could have a scancode in minetest.conf, but in the GUI, that'd be translated to the corresponding keycode of the user's keyboard layout.
19:20 rubenwardy yeah exactly, the user would see the label they see on their physical keyboard
19:20 v-rob Although, we can't make any of the named keys, like I, be keycodes.  Otherwise we could end up with conflicts, say if I appeared in the WASD area on some layout.
19:20 v-rob Only keys with symbols would be safe enough to be keycodes
19:24 MTDiscord <y5nw> v-rob: IMO that should be left to the user. You still can have keybinding conflicts when the user switches to a different layout after changing the controls
19:25 MTDiscord <josiah_wi> f5nw, if you want to work on the keybinding issue, you are more than welcome to, since I know you have already done some work related to it and put up a pull request.
19:26 v-rob I mean the default bindings.  If I is a keycode by default and WASD are scancodes, then W and I would conflict in a hypothetical QIERTY layout
19:26 MTDiscord <y5nw> Josiah: I would prefer first getting #14874 merged since that one also includes some minor refactoring that I don't want to duplicate across PRs
19:26 ShadowBot https://github.com/minetest/minetest/issues/14874 -- Allow keybindings with modifiers by y5nw
19:27 sfan5 how does minecraft solve this?
19:27 MTDiscord <josiah_wi> Could we get the refactoring in separately?
19:27 MTDiscord <y5nw> Preferably not
19:28 MTDiscord <josiah_wi> I understood that we are in feature freeze and only merging fixes. Your PR looks useful beyond mitigating the bug, but it is not a bugfix.
19:28 y5nw joined #minetest-dev
19:29 y5nw Right. Which is why I explicitly said that this is only a partial workaround for an issue. The bugfix label is added by Zughy
19:29 v-rob Easy solution: Check if the keyboard is QWERTY, crash otherwise
19:30 MTDiscord <josiah_wi> I expected that the fix would be done entirely on the Irrlicht side, is that not the case?
19:30 y5nw This is mainly a SDL issue from what I read
19:30 MTDiscord <josiah_wi> It's a limitation of the SDL API.
19:31 MTDiscord <grorp> depends on what fix you're doing. the proper SDL3 fix doesn't involve changing MT code, yes.
19:32 MTDiscord <josiah_wi> The API we need exists in SDL3 and my game plan is to first try to patch that into SDL2 (and can consider backporting to upstream SDL2 as grorp suggested).
19:32 sfan5 uh
19:32 sfan5 we can't "patch" sdl2. it's external to us
19:32 MTDiscord <josiah_wi> Yeah, but we can do hacky stuff.
19:32 Desour anyone can make a PR there though
19:33 sfan5 even in the hypothetical scenario that SDL2 accepts this as a backport like 80% of users won't have the correct SDL version and never will
19:33 sfan5 okay maybe a bit generous given we control the windows version
19:33 MTDiscord <grorp> I think I didn't suggest the upstream thing, but it seems like a good suggestion
19:34 MTDiscord <josiah_wi> Ah, sorry, Desour suggested it.
19:34 Desour :)
19:34 MTDiscord <josiah_wi> Agree it's a good suggestion, but as sfan says it's probably not a reliable short term fix.
19:35 MTDiscord <grorp> sfan5: re MC: what specifically?
19:35 Desour y5nw: 14874 only works with shift, ctrl and similar modifiers, right? it would be cool to be able to use arbitrary keys as modifiers
19:35 y5nw Anyway, I would suggest labeling #14874 as a feature to reflect what it is. Whether/When this will be merged is something I do not want to interfere in too much (ideally not at all)
19:35 ShadowBot https://github.com/minetest/minetest/issues/14874 -- Allow keybindings with modifiers by y5nw
19:35 Desour e.g. f toggles fly, shift+f toggles noclip
19:35 y5nw Desour: yes
19:36 y5nw Desour: well, it does not allow Alt- as a modifier either, but this is partly also an Irrlicht thing I have not yet looked into
19:37 v-rob Oh wait: this keycode/scancode things still makes no sense.  On a QWERTY, E is run, but on Dvorak, it's .  That means run and CSM command conflict.
19:37 Desour iirc, we have some getButtonPressed (or whatever it's called) API in minetest. you should be able use this to check arbitrary modifiers
19:37 v-rob I don't think mixing keycodes and scancodes is a good solution
19:38 MTDiscord <grorp> what else would you do?
19:38 v-rob Scancodes only
19:39 y5nw The thing about using specifically Shift/Ctrl as modifier is that it is a relatively low-hanging fruit in terms of keypress events, since you have these fields in SKeyInput
19:39 Desour we could consider dropping the keysym binding feature, and just let players configure it instead
19:39 v-rob Make + - and company be position-based, and let users remap those specifically.
19:40 v-rob Also, what if Shift is sneak, and / is command on a layout where you have to use Shift?  Then you have to sneak to use a command, which is a pain if you're flying.
19:40 v-rob Character-based keycodes don't make much sense for in-game controls.  Formspec controls, yes.  In-game, no.
19:40 y5nw Isn't that already the case pre-SDL though?
19:40 v-rob But we can make it better post-SDL
19:41 MTDiscord <josiah_wi> Did I hear a suggestion to drop the default keybindings and have the user configure it upon upgrade to 5.9?
19:41 MTDiscord <josiah_wi> That crossed my mind as well.
19:41 Desour with tts, you might have heard it c:
19:42 MTDiscord <josiah_wi> Or with telepathy.
19:42 Desour we could also make a pop up at the first minetest startup, to choose a common keyboard layout
19:43 Desour so, the user choose AZERTY, for example, and then  the mainmenu builtin binds the scancodes accordingly
19:43 v-rob With a bit of research, Minecraft seems to either use scancodes, or detects the keyboard layout and converts scancodes to keycodes.
19:43 y5nw I think SDL allows converting between scancodes and keycodes
19:44 sfan5 is it usual that games totally mess up if you ever switch your keyboard layout, then?
19:44 v-rob You would never have that with scancodes.  You're guaranteed to have it happen with keycodes.
19:44 v-rob What "most games" do is irrelevant if "most games" do it badly
19:45 v-rob I don't think we should follow the crowd if the crowd uses keycodes
19:45 Desour hm right, you could plug in a different input device. I guess we need key bindings per keyboard
19:45 v-rob No please no.  We could never maintain that
19:46 MTDiscord <josiah_wi> My typical experience as a Dvorak user is that games don't handle keyboard layout switching well. I typically configure all my bindings by hand on any new game.
19:46 sfan5 I mean this is not something we should support
19:46 sfan5 just wondering
19:46 Desour bind "A button held on keyboard 1337" + "B button pressed on keyboard 42" -> jump
19:46 MTDiscord <josiah_wi> The open-source RTS Zero-K switched to scancodes I believe after previously using keycodes, and broke all my custom configuration.
19:47 MTDiscord <josiah_wi> It was extremely annoying and I didn't bother to relearn everything.
19:49 v-rob If we explicitly support each individual keyboard layout, we'd have plenty of "Issue #NNNNN: Default keybindings don't work on random keyboard layout used by 0.05% of the world"
19:50 sfan5 what key would / on the us layout be on qwertz acutally?
19:50 sfan5 - maybe?
19:50 MTDiscord <josiah_wi> Hmm, we get the keyboard events from the PollEvent API, and they have both a keycode and a scancode.
19:50 sfan5 then where do + and - go?
19:50 celeron55 i would support Desour's plan of just giving a few options of default scancode mappings to initially for the user to set
19:50 MTDiscord <josiah_wi> Is the keycode from the event wrong?
19:51 celeron55 if the user is using something unusual, they know it and will be happy that they can just do it custom themselves
19:51 celeron55 to map multiple keyboards differently... well, that sounds like mission impossible
19:51 Desour josiah_wi: so, ask the user to let their cat run on the keyboard, so we can guess the layout :D
19:52 MTDiscord <josiah_wi> Writing a new GUI sounds like a lot of work compared to this if this works.
19:52 sfan5 if we include an USB driver in Minetest the OS won't be able to interfere anymore
19:52 MTDiscord <josiah_wi> It sounds like a great idea, but maybe not for 5.9?
19:53 celeron55 i definitely think mappings should be scancodes if at all possible. it's all too common to be let down by the key mapping functions of a game by not being able to map certain keys individually, or at all
19:53 celeron55 or not being able to map certain combinations
19:54 Desour for 5.9, how hard would it actually be to just ship the release with SDL and non-SDL (X11/win32/whatever) backend both compiled in, and add a setting?
19:55 [MTMatrix] <grorp> let's not forget that the whole scancode thing is not relevant for 5.9
19:55 v-rob It's definitely true that we can't move to scancodes immediately.  Irrlicht's KeyEvent still needs to include keycodes for the sake of formspecs.  We would need to work like SDL, with both keycode and scancode available in each event.
19:56 [MTMatrix] <grorp> josiah_wi: the keycode is not wrong, it's just "unmodified".
19:56 Desour v-rob: what keycodes do formspec require, besides 'i'?
19:57 v-rob Ctrl+X, Ctrl+C, Ctrl+V off the top of my head
19:57 v-rob Those shouldn't be scancodes
19:57 Desour ahh, I totally forgot those
19:57 MTDiscord <luatic> idea for 5.10: keycodes as defaults, with the ability to override via scancodes?
19:58 v-rob I think scancodes are better defaults.  The most important thing is for WASD to be correct.  If users have to remap / to something more sane, that's better than if WASD is scattered around the keyboard by default.
19:58 celeron55 it's not horrible UX to press a button that doesn't normally produce /, to open up the chat with / pre-typed in it
19:58 celeron55 it could even be preferable to some
19:58 v-rob Once we transfer to SDL entirely, I suggest that we add an `SDL_Event SdlEvent` to `irr::SEvent`.  That way we can slowly phase out Irrlicht's existing event system.
19:59 dv^_^ joined #minetest-dev
19:59 celeron55 it just isn't how MT has historically done it
19:59 Desour v-rob: Ctrl+X / C / V should also be made rebindable, btw.. text editors also allow changing them, after all
19:59 v-rob I'm already doing this in my in-progress UI API, at least for now.
20:00 v-rob That is, using SDL_Event directly
20:01 Desour v-rob: if it's an api for mods, don't let it mess around with the clipboard, as that can contain sensitive information
20:01 v-rob Desour: Perhaps, but mods may add custom keybindings to formspecs if we ever get the equivalent of #8679 (which, incidentally, is stalled because of the lack of SDL keycodes and scancodes).
20:01 ShadowBot https://github.com/minetest/minetest/issues/8679 -- Add FormSpec key and mouse events by v-rob
20:01 MTDiscord <josiah_wi> Does the EKEY_CODE irrlichtKey have to correspond to the modified key or the physical key?
20:01 v-rob Keycode for compatibility with formspecs
20:02 MTDiscord <josiah_wi> The modified keycode?
20:02 y5nw josiah: With the current SDL event: the (unshifted) keycode
20:03 MTDiscord <josiah_wi> Ok, I will leave it unmodified, and modify just the character.
20:03 v-rob In the Win32 backend at least, pretty sure it corresponds to the shifted keycode, e.g. you can bind to & on QWERTY
20:04 Desour for better terminology, I suggest using keysym instead of keycode. SDL keycodes are like unicode chars, but X11 keycodes are like scancodes
20:04 v-rob But there may be some other shenanigans in Minetest's key handling somewhere that make this behavior possible.
20:05 MTDiscord <josiah_wi> Thanks. So, to clarify, does the Irrlicht keycode correspond to the X11-type keycode or the keysym?
20:05 v-rob Ah, yup, it's Minetest that gives that support, not Irrlicht: https://github.com/minetest/minetest/blob/master/src/client/keycode.cpp#L219
20:05 v-rob If we use scancodes, keycode.h/cpp can just die completely.
20:06 MTDiscord <josiah_wi> Ok, looking at this again, I think I need both the Irrlicht Key and Char to correspond to the modified keysym.
20:06 [MTMatrix] <grorp> I think KeyInput.Key is supposed to be unmodified
20:07 [MTMatrix] <grorp> I don't know the X11 terms you mentioned
20:07 v-rob It is unmodified, I was incorrect
20:07 MTDiscord <josiah_wi> Ah, ok, that makes that simpler.
20:07 MTDiscord <josiah_wi> Thanks.
20:07 Desour josiah_wi: apparently scancodes, but system independent. so it's like X11 keycodes, I *think*
20:07 MTDiscord <josiah_wi> That one is already correct, then. It's just the Char that's incorrect because the modifier isn't applied.
20:08 [MTMatrix] <grorp> indeed
20:10 v-rob Can I get a list of opinions?  I know that myself and celeron55 are both in favor of scancodes only for in-game bindings.
20:11 MTDiscord <josiah_wi> I'm too busy trying to fix this bug before the 5.9 release to say my opinion. (/s)
20:11 v-rob (Note: We can't do scancodes for 5.9 in any case)
20:13 Desour option 0: ignore the issue, and ship the bug.
20:13 Desour option 1: release with USE_SDL2=0
20:14 Desour option 2: ship with SDL and X11, and let users choose via option (idk how feasible this is)
20:14 Desour anything else that is realistic for 5.9.0?
20:15 MTDiscord <luatic> option 3: workaround by manually turning shift + 7 specifically into / in our code?
20:15 MTDiscord <wsor4035> seems like one of the goals of 5.9 was to use sdl2 on all platforms, so option 1 really seems not great tbh
20:15 y5nw luatic: And how?
20:15 v-rob Not option 1
20:15 Mantar shipping with a bug is also not great
20:15 MTDiscord <luatic> i agree with not option 1
20:15 MTDiscord <luatic> imo 1 < 0 even
20:15 Krock option 4: delay 5.9.0 for another month to perhaps find a PR that works
20:16 Desour luatic: wouldn't this break QWERTY layouts? x)
20:16 sfan5 https://github.com/minetest/minetest/issues/14171 I swear this is the worst ui issue with the mainmenu
20:16 sfan5 spent three minutes searching for something that isn't there again
20:16 Desour Krock: year*
20:16 MTDiscord <luatic> Desour: wouldn't it be just a hidden feature, since / keeps working for them ;)
20:17 Desour luatic: ah now I get what you suggested xD
20:17 Desour yeah, nice hack
20:17 v-rob Option 3 is feasible, since we know whether Shift is pressed via SEvent::KeyEvent
20:18 MTDiscord <wsor4035> there is pr https://github.com/minetest/minetest/pull/14874 btw which is related
20:18 v-rob Anyhow, I still would like to know opinions about scancodes/keysyms for in-game bindings in 5.10.0 or beyond
20:19 Desour #14874 adds new syntax for the keybind settings. not a good idea in feature freeze
20:19 ShadowBot https://github.com/minetest/minetest/issues/14874 -- Allow keybindings with modifiers by y5nw
20:19 Krock sfan5: (about the settings) showing up all dependencies recursively shouldn't be too difficult to implement
20:19 [MTMatrix] <grorp> the hack approach seems insane but like the most feasible
20:20 Krock I could have a look at that later on
20:20 y5nw wsor: That was brought up already; but if the intention is to go for option 3 like luatic said and switch to scancodes then that largely makes said PR irrelevant
20:21 [MTMatrix] <grorp> are there any other common key combinations except shift+7 we'd have to consider for hacky hardcoding?
20:21 MTDiscord <luatic> relevant: #14681
20:21 ShadowBot https://github.com/minetest/minetest/issues/14681 -- Fix shift for sdl by andriyndev
20:21 y5nw (In fact, if 5.9.0 gets released soon then I would be more than happy to close that in favor of focusing more on my localization PRs)
20:23 y5nw luatic: If the goal is to unconditionally convert Shift-7 to / then you can implement that quite trivially by adding an if clause to the KeyPress(SKeyInput) constructor
20:28 v-rob Oh well.  Seems nobody cares to give their opinion.
20:29 MTDiscord <josiah_wi> I am in favor of going to scancodes.
20:29 MTDiscord <josiah_wi> But I'm also not a core dev.
20:29 MTDiscord <luatic> v-rob: i don't think i could contribute a well-informed opinion. but your proposal doesn't sound bad to me.
20:29 [MTMatrix] <grorp> I'll think about it more before giving an opinion
20:30 v-rob I mean, none of these opinions are final.  Just wanted to know what the general opinion was.  But thanks.
20:31 v-rob Sorry, gotta go though
20:31 pgimeno <v-rob> Also, what if Shift is sneak, and / is command on a layout where you have to use Shift?  Then you have to sneak to use a command, which is a pain if you're flying.    <--- Has happened to me all the time with all versions of Minetest. That's why I got used to use the keypad / even if it's uncomfortable.
20:32 pgimeno <celeron55> it's not horrible UX to press a button that doesn't normally produce /, to open up the chat with / pre-typed in it
20:32 pgimeno <celeron55> it could even be preferable to some
20:32 pgimeno count me in on that one
20:32 Desour v-rob: support for scancodes: of course; still being able to use keysyms: idk. would be an effort to maintain; other things: I want complex key-combination to action bindings (where actions include things like walking forward, copying text, and also loading config files). keysyms are no longer required from user perspective then anyways, so a layout based defaults chooser like suggest earlier would suffice imo
20:32 sfan5 fresh bug #14893
20:32 ShadowBot https://github.com/minetest/minetest/issues/14893 -- Settings: enabling flags does not work
20:33 pgimeno my vote would be scancodes for keeping internal controls, and converting them to keysyms for UI display
20:34 Desour for ui display there are scancode names
20:34 Desour https://wiki.libsdl.org/SDL2/SDL_GetScancodeName
20:34 y5nw These don't appear to be translated though
20:34 pgimeno I mean something like this: https://love2d.org/wiki/love.keyboard.getKeyFromScancode
20:35 pgimeno (love2d exposes both scancodes and keysyms as strings for its Lua API)
20:36 Desour (but also displaying a keysym would of course be good. something like "ö" is more readable than "<AE08>")
20:36 MTDiscord <josiah_wi> Going to take a break to make rhubarb muffins, but I have started working on an implementation.
20:39 pgimeno the key to the right of . is / in an American keyboard, and - in a Spanish keyboard. The key to the right of 0 is - in an American keyboard, and ' in a Spanish keyboard. The key to the right of that one is = (+ if shifted) in an American keyboard, and ¡ in a Spanish keyboard. Yet I'd be very comfortable if the US "/" (Spanish "-") is defined to open chat and insert a "/", and US "-" and "=" (Spanish "'" and "¡") are defined as doing what - and
20:39 pgimeno + are supposed to do.
20:40 grorp joined #minetest-dev
20:41 pgimeno And if people don't like that, they can be redefined. The point is that they are defined as scancodes.
20:41 grorp this would be the hack solution: https://github.com/grorp/minetest/commit/d139528dd6623c82b80047ce4747be151a445836
20:44 MTDiscord <luatic> sfan5: i have an idea where that's coming from
20:47 MTDiscord <luatic> i might have a fix
20:48 sfan5 that would be nice
20:49 sfan5 free bug: the documentation doesn't say that games can contain a screenshot.png
20:52 y5nw sfan5: Also: it might make sense to rename core.register_async_metatable to core.register_portable_metatable since this wasn't changed in #14369
20:52 ShadowBot https://github.com/minetest/minetest/issues/14369 -- Try to preserve metatable when exchanging data with the async env by y5nw
20:53 sfan5 I agree
20:53 sfan5 do you want to make a PR to rename it and deprecate the old name? :)
20:54 y5nw I'm not sure
20:56 grorp josiah_wi: I'm sorry for stealing the thing you wanted to do, btw. I didn't think about that.
20:58 v-rob joined #minetest-dev
21:05 rubenwardy #14892 ready for review
21:05 ShadowBot https://github.com/minetest/minetest/issues/14892 -- Android SDK 34 by rubenwardy
21:59 MTDiscord <josiah_wi> Grorp, I’d be relieved if you took this burden off me, but I’m not doing the hardcode hack thing.
22:00 MTDiscord <josiah_wi> I’m attempting a legitimate fix. It’s hacky but it should restore the old behavior correctly for all cases.
22:00 MTDiscord <mistere_123> could someone add the bounty label: https://github.com/minetest/minetest/issues/11640
22:01 sfan5
22:01 MTDiscord <mistere_123> thanks sfan5
22:32 panwolfram joined #minetest-dev
23:05 Eragon joined #minetest-dev

| Channels | #minetest-dev index | Today | | Google Search | Plaintext