[21:09] eylul: It seems to me you said you had a script for setting up your drawing pad. Is this true or do I remember wrong? If so is a copy available? [21:09] I do, I have a copy of it available in wiki [21:09] one sec [21:10] https://wiki.ubuntu.com/UbuntuStudio/FeatureDefinitions/WacomScripts [21:10] this is quite an old copy of it.. but has all the building parts [21:10] was there a question in particular you had? [21:11] basically the 2 things this thing does is a) it maps the tablet to first second or all screen [21:11] second part is just mapping the keys to whatever keys you want. what key goes where unfortunately is a very tablet specific thing [21:12] so I started by mapping all buttons xsetwacom sees to letters a onward, and pressing buttons one at a time, to figure out what goes where [21:12] then filling in what the setup should be. I can try to code something a bit more elaborate if needed. ;) [21:17] So asign pad to a screen, asign buttons. Is there any configure pen to point on pad vs. point on screen? [21:20] the screen stuff is that [21:20] A GUI should list screens and allow choosing a screen or mix there of. A GUI should list available pad buttons and allow for them to be asigned... asigned to what? Is there a standard set of charactors they are asigned to? would it be possible to show what a button can be asigned to and have the user "press/select" that button and set it from there? [21:21] An ideal GUI would have the following [21:22] 1) a quick way to swap mapping between each screen available, and stretching across whole screens. (optionally an advanced mode to organize/stretch screens between areas) [21:23] 1) a drop down with a list of possibilities? [21:23] 2) a way to touch pen to 4 corners to calibrate a screen based tablet (e.g. cintiq) when it is mapped to a single screen [21:23] ok [21:24] or shortcuts. Think of it a bit like ARandR where you can adjust where your screens go [21:24] but also you can quickly select to mirror. like you can select to say: stretch it on all, use screen 1 use screen 2 [21:24] and honestly [21:24] have a keybind to swap between them [21:25] (this script basically does that, because you can keybind a script command to swap between between them) [21:26] 2) you want to be able to calibrate with touching points with pen to adjust parallax etc. This is specifically needed on a 1 screen mode, when say the screen selected is cintiq screen, and cintiq pen area is exactly mapped to that [21:26] so a hot key to switch is better than a systray menu. [21:26] would the hot key be part of the pad keys or on the keyboard? [21:26] 3) you want to be able to create keybind mappings to pen buttons and pad buttons that are generic, presets, and if possible, swapping automatically based on which software is focus. [21:26] its nice to have both [21:27] systray if you are new to using this so that you remember it is there, a person who uses it everyday will use a keybind to swap back and forth [21:27] e.g. you are drawing on your screen on a cintiq, but need to quickly access something on the secondary setting, e.g. adjust your reference, then back [21:28] btw Ovenwerks if you are asking because you want to code this, a subset of these features even would be useful [21:28] what I am talking about here is basically replicating what wacom settings do on windows [21:28] systray is not soon :) [21:28] and maybe be even better than them in some ways ;) [21:29] I am just starting to think about it. [21:29] *has still no idea how to solve the: automatically switch presets with active program part of the problem* [21:30] you mean change preset depending on what window is in focus? [21:30] changing preset based on what program is in focus [21:31] same thing really. [21:31] oh? [21:31] OOOH [21:31] sorry I misunderstood what you mean [21:31] yeah based on what window is active [21:31] and more specifically what software is on the window that is active [21:31] X sees any window as separate even if two are owned by one process [21:32] basically this is how it works: [21:32] you have a generic profile that works with everything e.g. your top left button is ctrl-z second one is ctrl-x then you have a shift button on one of your pens. [21:32] in an application like gimp would the user want the tablet to be used in the tool box as well as the drawing window (edit window) [21:33] but e.g. (and this is just an example, I don't remember keybinds) if you are on mypaint. the undo is "z" not "ctrl-z" so when mypaint window is on focus, you want top-left button to map to z. and switch back when that window is not in focus [21:34] you want to be able to have application specific overrides to profiles [21:34] what I did, was that I had multiple profiles hardcoded into the script that I could swap between by saying customscript --krita for example [21:35] and I made a software shortcut group on toolbar to select between them like a pseudo system tray. [21:35] ;) [21:35] So a default setting that can changed when focused to a specific app. [21:35] but that is not ideal, you ideally want to be able to swap automatically based on which software you have active. [21:35] exactly [21:36] I mean alright its probably still very useful, if you can select a preset from a system tray too, but automatic swithing would be even better. [21:36] OK, I was thinking one per app. but having a default makes more sense. [21:37] a lot of software does have more or less same shortcuts within same domain (e.g. graphics) [21:37] I think switch on focus is possible. It would require an extra daemon I think. [21:37] but then you have one software (I am looking at you blender!) that has everything all over the place for example ;) [21:37] ;) [21:37] *nods* [21:37] if we DO this [21:37] * OvenWerks is still looking focus follows mind... [21:38] I would suggest focusing on having an app that can set up profiles that can be switched manually [21:38] and ability to choose between screens [21:38] honestly even that much isn't trivial at all [21:38] after that we can add the additional abilities, but I'd rather make sure, we can reliably do the first part with multiple tablets [21:38] and debug that before adding auto-switch and then run into a bug we cannot find ;D [21:39] Ya, I think being able to set up a default would be good. [21:39] as a first step [21:40] the thing about calibration and custom setups, i wouldn't worry about it too much either. stretch across all screens and switch between that and each screen (maybe while respecting ratio of the tablet to get a crop of the screen) is more than enough place to begin and that can be done with a drop down as you suggested [21:40] ;) [21:40] yep [21:40] main issue will be [21:40] every tablet [21:40] While we would save the config(s) in a file, they would be best all in memory with the way we run things now [21:40] has a key mapping to what xsetwacom sees differently [21:40] I have some UI ideas [21:40] is it common to use two pads at a time? [21:41] having 2-3 is not that uncommon [21:41] e.g. having one with screen and a portable one [21:41] live at the same time? [21:42] (both going to the same application at once) [21:42] I have like 3 wacoms all of which I use some time or another. (1 is my intuos pro, another is a tiny bamboo I carry around, and I have my cintiq: one with screen) wacoms don't break easily so it is easy to accumulate them over time ;D [21:42] err [21:42] I never heard of anyone using multiple ones together [21:42] you select what you want to use [21:42] you plug that in usually [21:42] one for blender and the other for gimp for example too. [21:42] o.O [21:42] ok. [21:43] that is not so hard I think. [21:43] nah I mean I am trying to think if it would be a useful flow but I doubt it... there is a deskspace issue [21:43] like how many tablets can you fit into next to your computer [21:43] So it is reasonable to expect only one device to be plugged in at once then. [21:43] people either draw with their tablet in front of them, or tablet to right, other hand on keyboard. [21:44] for additional shortcuts [21:44] yeah [21:44] people might have multiple devices they swap in between. [21:44] Would most people expect each of their tablets to use the same shortcuts? [21:44] so profiles should be device specific [21:44] (even if the buttons were in different order) [21:45] not automatically [21:45] but they would expect to be able to have different profiles for a new tablet. [21:45] e.g. a new default and new overrides [21:45] that would be similar to what I already do with the audio devices. [21:45] (so e.g. I have one default and a krita setup for my intuos, another one for the bamboo that has less buttons than my intuos) [21:46] *nods* [21:46] but yeah one plugged at a time [21:46] really the fun problem is that there is like many many tablet models, with different button layouts, different button numbers [21:46] So I would import all the profiles and do the setup based on what was plugged in. [21:46] and even if they have similar button setups the way they map to xsetwacom button IDs are different. [21:47] XD [21:47] exactlyt [21:47] In the case of switching between apps, the only thing that would change would be shortcuts? [21:47] xsetwacom can tell you what type of device is in I believe [21:47] yeah [21:48] hmmm here is an idea [21:48] and this is brainstorming [21:48] All this is brain storming :) [21:48] what if the wacom automatically mapped to the screen where the active window is.. but that might turn into a bigger can of worms [21:48] and sometimes apps are divided across multiple screens. yeah no [21:48] just keeping screen switching manual seems better idea. [21:49] also I mean it is important for the setting to not be confusing [21:49] X may see different screen names depending on what screens are active/turned on/plugged in. [21:50] (trying to remember) [21:50] like it would be super cool if a systray (if we already had one) had the option of showing which profile is active at all times, so that people can fix their profiles without getting confused [21:50] Ovenwerks best solution i can think of is to cycle through all of them [21:50] and stretch [21:50] AND maybe letting people add a preset [21:50] I guess don't use 0 1 2 but use vga hdmi* etc. [21:51] I think the screen stuff changed based on which driver you used? [21:51] but don't quote me on that [21:51] The main app would only work on the active preset for sure [21:52] *nods* [21:52] I'd keep screen setups completely separate from keybind profile [21:52] * OvenWerks can't see any way something else makes sense [21:52] yeah [21:52] So two tabs? [21:52] well that's a separate question [21:53] what I mean is screen settings shouldn't be application or profile specific I think. [21:53] they COULD be device specific [21:53] Yes [21:54] I'd think screen setup and profile setup would be on different tabs just because both has a lot of details to sort [21:54] they could be on same tab [21:55] if e.g. screen setup was on a pop-up for detailed adjustment [21:55] placement issue is more of a ease of use issue :) [21:56] For each device, we have a setup for each screen. Far each device we have a key mapping. For each application (or only those that are not default) we have an extra key map. [21:58] for each device we have a screen setup, that once initially sorted, cycles through multiple presets via keybind or drop down menu. [21:58] So the tablet keys are mapped to a function name in the tabblet profile. The funtion is mapped to a shortcut in the application profile. [21:58] for each device we have keymapping, and overrides to those keymaps for specific software yes. [21:58] tablet keys are literally mapped to a keystroke [21:59] or combination of keystroke [21:59] I am assuming that with more than one tabblet we would still be seeing whatever keys are there used for the same functions. [21:59] or mouse clicks [21:59] software handles what keybind does what [22:00] so. my tablet buttons for example are mapped to "ctrl-z" "ctrl-y" "ctrl++" "ctrl+-" "shift" (some of these might be sliders in practice but they are read as keystrokes by xsetwacom) [22:00] yup [22:00] krita knows ctrl-z is undo, ctrl-y is redo. ctrl++ is zoom in ctrl-- is zoomout etc [22:01] or for example, the 2 buttons on my pen are mapped to right click and middle click [22:01] touching the pen to the tablet is left click. (I think that one is default?) [22:02] there is also one other feature [22:02] that is sorting out the curve for pressure sensitivity [22:02] So if we have buttons called undo, redo, zoom and zoom out and the user clicks on one of these buttons and then hits the pad button the set that pad button to that function. [22:03] krita has a great interface for that, that can give inspiration. [22:03] I like your idea [22:03] but instead of presets we could have like an interface for people to add buttons. [22:04] e.g. define a name for a button. define the keybind [22:04] now please press that button on your tablet. [22:04] Right that is sort of the way I am thinking [22:04] I love this idea [22:04] I absolutely love this idea [22:04] I was hoping for some sane defaults :) [22:05] because it gets us out of the problem of trying to keep a database of evergrowing tablet layouts [22:05] yes it is not pretty [22:05] but it is flexible [22:05] a [22:05] and we can eventually grow to presets from there, but it is a robust solution [22:05] Maybe to match any defaults to something pretty common in the windows world? [22:06] the problem isn't so much having defaults on windows world [22:06] it really isn't easy to predict how many buttons a tablet will have [22:06] xsetwacom sees buttons that are not there [22:06] or stuff is REALLY out of order ;D [22:06] So? no problem [22:06] plugin the pad with the most buttons first [22:06] set it up [22:07] no like really [22:07] look. ok what xsetwacom sees is [22:07] button 1, button 2, button 3...... button n [22:07] the next pads would choose which of those buttons they want to use... or add a new one [22:08] each pads buttons would be saved for next time. [22:08] what the reality is button 1 same as pen right click. button 2 is the top left. button 3 the one under. then the next 4 buttons are actually scroll wheel. [22:08] thats ok. [22:08] oh I think i see what you mean [22:08] I think [22:08] there is a device preset for each device. [22:09] yes there will be [22:09] and then an app preset for each app (plus default) [22:09] but I would caution against trying for US to have a device preset [22:09] ;) [22:09] I think I might have misunderstood you there [22:09] No US would have a default set of button names was my thought [22:10] as an example? [22:10] yes as an example. [22:10] like templates. cool [22:10] I like that idea [22:10] you can add more to the templates. so that you don't have to refind each shortcut. [22:11] that pool of button names (with their keybinds) would be a pool independent from the device [22:11] yes [22:11] for each device, as they set them up, they can use the ones they already created or create new ones. ;) I like this a lot [22:11] yes [22:12] So two steps, one for devices and one for applications [22:12] I have some concerns about how complicated or how intuitive this would be.. but that I think can be determined on mockup phase and well.. I am kind of accepting that like the ubuntustudio audio settings these will go through iteration with feedback [22:12] yep [22:13] actually now that I think of it [22:13] The shipped application presets should match applications we ship. [22:13] So names and shortcuts should just work. [22:13] main interface would be 1) screen setup to choose from: map to whole screen 1, map to whole screen 2 map, stretch to everything (with an option to respect ratio of the tablet's proportions) 2) pen setup. [22:13] The user should be able to set the device up and have it work with the apps we ship. [22:14] then advanced screens for: advanced screen setup, keybinds to the pad, pressure sensitivity setups per device. these being in popups. [22:14] most simple tablets these days don't come with buttons. [22:14] OK, send me a few pics? [22:14] hang on [22:15] (or a glade file I guess) [22:16] (back in a sec) [22:17] example with buttons (because apparently entry level wacoms went back to having buttons): https://www.wacom.com/en-us/products/pen-tablets/wacom-intuos [22:17] oh wait did you mean picture of the uI? [22:17] err I'll try to get them to you [22:18] I do need to think about it a little [22:29] So all pads have at least mouse button events plus some more (those look like 5 more... but one may be power) [22:30] Four it says [22:34] Bamboo says one [22:35] sounds right [22:35] at some point wacom was going with what looked like no buttons except the ones on pens.. [22:35] ;) [22:35] and cintiqs currently don't have buttons but they have a button remote that you can buy separately.. apparently? [22:35] I think? [22:36] It would be easy to press a pen button along with a place on the pad for different buttons... [22:36] (*hasn't bought a new tablet in a while: old ones last just fine) [22:36] you think like a pen interface. it would be cool to have additional button space. [22:37] but honestly [22:37] even the most basic mapping would help so I'd start with nailing the basics [22:37] a [22:37] and adding more stuff overtime :) [22:41] ciniq would expect the screen to be it's own I would guess or do they also work with the main? [22:42] I guess they are supposed to be your main screen. [22:44] cintiq works with the main screen [22:44] mirror? [22:44] but most of the time you are on cintiq screen [22:44] I did have a setup to quickly switch back and forth through [22:44] because for example if you are drawing on cintiq in full screen you might need to quickly swap adjust some reference images [22:45] ok [22:45] or color pick from the reference image [22:45] then swap back [22:46] so does the mouse cursor follow the pen then? [22:46] or maybe you do only have a cintiq, and that day, you want to be able to draw on your main screen rather than your cintiq screen for whatever reason [22:46] cursor follows the pen [22:46] and actually jumps around [22:46] there isn't multiple cursors, just one [22:47] e.g. if you put your tablet aside, and put the pen on top [22:47] then forgot that you did that and try to do something with your mouse... [22:47] :) [22:47] basically they conflict [22:47] two mice work the same [22:47] *nods* [22:47] yeah [22:48] pen works differently in that, its positioning based on where the pen is, not relative like mouse [22:48] but otherwise pen does work like a mouse [22:48] :) [22:48] of course. [22:48] I have more than enough to think about already [22:49] *nods* [22:49] this one gets complicated [22:49] :D [22:49] funny thing just happened... my son came down asking about tablets. [22:49] oh? [22:50] he wants one... [22:51] ah [22:51] :) [22:52] I am going to go offline for tonight I think, lets keep discussing this. I really like your solution to button mapping through [22:52] ok [22:54] "_ [22:54] :)