One annoyance of KiCAD solved - F4 Drag - Page 1
Forum section: electronics / general

author: sacherjj
author_rank: Frequent Contributor
timestamp: March 09, 2012, 04:39:00 am
content: I'm used to the right click drag to move around and Dave's demo of KiCAD seemed to show that this didn't work. The right click menu has center with F4. This feels almost like the right click drag, if you hold down F4 while you move the mouse.

author: amspire
author_rank: Super Contributor
timestamp: March 09, 2012, 05:16:25 am
content: Also instead of F4, you can just use the mouse wheel click button. So you can do the same as pan by moving the mouse to the edge of the screen, and mouse wheel click. The screen moves to recenter the mouse.It is almost as convenient as right-click panning - it is just different - that is all. The only way panning is superior is that you can move a full screen width/click with pan, but only half a screen per click with the F4 button or wheel button in KiCad.Richard.

author: McMonster
author_rank: Frequent Contributor
timestamp: March 09, 2012, 08:58:48 am
content: I'm determined to implement right click panning and fixing some other annoying stuff as soon as possible, but deadline for my current project is coming really fast, so it may take a week from now. And I'm a bit rusty with C++, so it may take even more.

author: sacherjj
author_rank: Frequent Contributor
timestamp: March 09, 2012, 03:17:09 pm
content: Quote from: amspire on March 09, 2012, 05:16:25 amThere is a difference between center clicking and just pressing F4. This only gets you a scroll up to half the screen. If you HOLD DOWN F4 and move the mouse, this make mouse movement translate into a linear pan and you can pan as far as you want. This acts EXACTLY like right-click panning, just that you are holding down a key to pan, rather than a mouse button.You can't use the center mouse button to do this, as it does a marquee select and zooms into that box. You can do that stagger click panning, but that just feels like complete crap to me. I have to readjust my view of the schematic or board and it is jarring. The F4 held drag, allows me to smoothly pan around.

author: sacherjj
author_rank: Frequent Contributor
timestamp: March 09, 2012, 05:47:19 pm
content: The more I'm working with KiCAD, the more I'm realizing that the UI design is annoying for no reason at times. Just small usability things.Placing more than one of a given component. Is there an easy way to do this? I would expect at least a hot key I can hold down while placing. Select component. Hold Ctrl or Shift while clicking in place would drop one, but keep the item placement active.Currently, you need to select component, right click, select copy block, right click, paste block. Ctrl+C and Ctrl+V don't work. Or click to place each, opening the selection dialog, which makes you take your hand off the mouse to press enter (or drag over to click on "OK" that appears centered), then go back to the mouse and move to place. Then click for the next, back to the keyboard for enter, back to the mouse... Terrible.I thought at first that it had great support for keyboard shortcuts. Although the toolbar buttons need to have the shortcut listed there too, like some of the menus do. 'P' for place, 'W' for wire, etc. These should be in the mouse overs.When a component is selected, why doesn't the delete key delete it? I have to right click and select delete, or use a delete tool, that I can't seem to find the hot key for.This is a similar issue I had with DIPTrace, the lack of keyboard shortcuts or no way to learn them. (It is really easy for the user if these are in the tool tips that pop up when you mouse over.)I might have to knock some rust off my C++ skills and see what I can do to make this UI suck less on this thing.

author: amspire
author_rank: Super Contributor
timestamp: March 09, 2012, 09:59:57 pm
content: The quickest way to place more then one component is to first make sure you are in the component placement mode. Move the cursor over an existing part (like a resistor) and press "C", then left click to place your copy.It you need to duplicate a block of components drag select, right click and select "copy block" (the C key does not work for a block it seems), and left click to place.Richard.

author: BobC
author_rank: Unknown
timestamp: March 11, 2012, 06:00:11 am
content: On my Ubuntu system, one minor annoyance with F4-Drag is that holding F4 down fills the type-ahead buffer, so the mouse remains in "drag mode" for several moments after F4 is released.I suppose I could minimize this behavior by reducing my keyboard's repeat rate, but I like it fast for everything else I do.

author: McMonster
author_rank: Frequent Contributor
timestamp: March 18, 2012, 09:59:32 am
content: If someone is interested, Dave's video probably did what I expected, there's a patch on KiCAD's developer mailing list for adding middle mouse button panning feature. I still don't have time to test it myself, but I'll keep you informed what people say there.

author: codeboy2k
author_rank: Super Contributor
timestamp: March 23, 2012, 06:27:25 am
content: I'm about to start hacking on kicad myself. There so many bad things about the UI,that I really just wish I can completely redo it .Not able to place multiple, the delete key, that F*CKING annoying default move block when you select a region (block),middle mouse panning, the way it handles buses, the library, arrrg..The funny thing is, and this I don't get at all, is that whenever anyone complains in the kicad groups about the way kicad's UIis done, the answer is almost always: that's the way it is, it's just different, and once you get used to the flow, you'll like it. Andthen someone inevitably adds "hey, it's free, what do you expect? shut up and don't complain about something that's free for you".It's as if we are forced to accept the way it is, because it's free. And to suggest that it should be done a different way, that mightactually be better, is blasphemous against kicad and the developers.So I've pretty much decided that I might fork it, or at least fix it and try to get the developers to accept my patches. There's so muchI want to improve.

author: Bored@Work
author_rank: Super Contributor
timestamp: March 23, 2012, 07:04:35 am
content: Quote from: codeboy2k on March 23, 2012, 06:27:25 amI was about to suggest you first try to secure the agreement of the official development community before writing any code, to avoid wasting your time. But then I read you already figured out how such communities work , not only KiCad:QuoteBut:QuoteThat is a decision not to be taken lightly. It is difficult to be successful with a fork, and if you are successful you are typically universally hated by the original developers.My suggestion would be you change what you want to change. Then you publish patches on your own project page, without the slightest critic about KiCad. Just a clear description what your patches change. And of course, for convenience reasons only, you offer downloads of binary versions, compiled with your patches. Really, just for convenience. It is not a fork, no, no. Just an experimental testbed for your patches. Not a fork, move on, nothing to see here.Try to make your patches a brand inside the KiCad universe, the cb2000 patches. As opposite to making it a fork outside the KiCad universe.Making your patches known in the KiCad universe is also tricky. If you aggressively market them e.g. in their developer forum you might find yourself isolated faster than you can spell KiCad.

author: codeboy2k
author_rank: Super Contributor
timestamp: March 23, 2012, 07:32:25 am
content: Quote from: BoredAtWork on March 23, 2012, 07:04:35 amYes, this is true. I think I was just being emotionalit's probably not the best idea to visibly fork it and promote the availability of a fork. I like your alternate suggestions below:Quote..and this is good advice! thank you. So I guess I'll be taking requests from this forum soon enough, now that I've said what I am about to do.

author: McMonster
author_rank: Frequent Contributor
timestamp: March 23, 2012, 08:28:30 am
content: I highly recommend subscribing to KiCAD's developer list. There's really a lot of interesting things going on, including a powerful Python scripting engine integration. I've also seen some works on the UI too. It also helps getting into the development community.I can't say KiCAD's UI really annoys me, that's the only package (except for playing around for a few minutes with gEDA) I've ever used, so it doesn't feel much wrong to me (un)fortunately, but I'm going to join developers too.

author: Bored@Work
author_rank: Super Contributor
timestamp: March 23, 2012, 02:13:52 pm
content: Quote from: McMonster on March 23, 2012, 08:28:30 amPython you say? Oh dear, another project where the kids have taken over and start adding trendy hype technology before fixing basic issues.

author: FreeThinker
author_rank: Frequent Contributor
timestamp: March 23, 2012, 02:51:25 pm
content: One Down 999 to go!

author: sacherjj
author_rank: Frequent Contributor
timestamp: March 23, 2012, 06:21:18 pm
content: Quote from: McMonster on March 23, 2012, 08:28:30 amCompared to DIPTrace, it just feels really poorly engineered. Goes against many of the expected UIs for modern OSes.

author: McMonster
author_rank: Frequent Contributor
timestamp: March 23, 2012, 09:59:07 pm
content: Quote from: sacherjj on March 23, 2012, 06:21:18 pmTrue, but I hope it'll change in the future.

author: amspire
author_rank: Super Contributor
timestamp: March 23, 2012, 11:28:56 pm
content: I think for a free opensource project, KiCad have done brilliantly with their UI. It could be better, but the developers acknowledge that and are working on improvements.They have made their own choices about things like right-click functionality, just like lots of other industry leading packages in the CAD/3D/Graphics world. That is not bad engineering, it is an engineering choice. You do not have to like it of course but I think it is very easy to learn things like the several ways to pan in Kicad. Things like that are a major non-issue to me, especially when you are getting a free unlimited PCB design package.If you are talking about things like libraries, well that is an area needing people to get it organized. The thing about open-source is if you see something that needs a lot of improvement, you are welcome to volunteer to do the work.If you think KiCad is bad, I hope you never have to use programs like Maya (the industry leading 3D animation package) and most compositing packages.Richard.

author: Bored@Work
author_rank: Super Contributor
timestamp: March 24, 2012, 12:12:26 am
content: Quote from: amspire on March 23, 2012, 11:28:56 pmIf it is an engineering choice it is choosing to do bad engineering. And it has nothing to do with open or closed software.One of the worst things to do in GUI design is to become creative, and to think you know better. Especially if you don't have any GUI design talent, like 99.9% of all engineers. Only those who have mastered the game, and have the talent are successful in breaking established rules and replace them with new ones, like Apple. Those are a very tiny minority.The average talentless engineer, however, should know his limits and stick to the rules. The rules are typically encoded in what is called a style guide for a platform. Following a style guide doesn't create fantastic GUIs in any way, just consistent, familiar ones. And the normal talentless engineer can't hope for more. Consistency and familiarity are valuable properties of a GUI. This is something the talentless but feeling creative engineer doesn't get.Another way how bad GUIs come into existence is a don't care attitude. I.e. the replacement of an engineering choice with randomness. No planing, just hack something together on the fly, if it shows up on the screen it is good enough for the engineer. The very rare talented engineers can get away with this, all the others just produce crap GUIs.

author: amspire
author_rank: Super Contributor
timestamp: March 24, 2012, 02:05:57 am
content: Well what rule have KiCad broken with their GUI? What is one example of bad engineering?If there is a rule for panning, it would be left click and drag like most graphics editors use, so every PCB package that uses right click and drag is breaking the rule. If KiCad used right click for panning, wouldn't that be breaking the "rule"?Or are there a set of special rules for PCB design packages that are nothing to do with general Windows conventions?And of course Open Source projects can try new ideas if they want to. Good on them for trying, even if some of the ideas are not the best. It sounds to me like you want KiCad to just be a clone of another program that you are familiar with. If you were familiar with KiCad, then the other program would be the one with the "lousy engineering".Richard.

author: Bored@Work
author_rank: Super Contributor
timestamp: March 24, 2012, 01:17:30 pm
content: Quote from: amspire on March 24, 2012, 02:05:57 amThe short answer is, almost everything. From keyboard shortcuts, via menu structures, to alignment, naming and positioning of items like buttons in popup windows. Plastering windows with unstructured toolbars left, right and top. Unnecessary apply buttons, items only available via the toolbar and not also via the menu ...QuoteEvery single item where they deliberately or non deliberately went their own way. To name a trivial one, that is is hard to understand why they did it this way, look at the F3 and F5 keyboard shortcuts. The standard function for F3 ist to start a, or continue the last search. KiCad instead uses this to refresh the screen. While the standard for a screen refresh is F5.GUI development is a lot about attention to detail. Getting the large stuff up and running, e.g. getting a window on the screen is easy. Getting the tiny stuff right, so users don't get annoyed is where you add quality to your GUI.Once again, you can break the rules and make your own if you have the talent, mastered and won the game. I don't think the KiCAD GUI designers have the skills to pull that of.QuoteThe standard behaviour for left click is to select an object. If the object is not selectable, the left click instead activates the object's action (e.g for a menu item). The standard for right clicking an object is to select it and open the object-specific context menu. If you want to work on the drawing as a whole, like moving it, select it (that would be a left click on something clearly identifying the whole drawing, e.g, the background), and perform the action you want to do. There is an exception for the scroll wheel, which should always work on the current pointer position, skipping the selection.QuoteNo, I just want it to be better. And as someone who maybe has to use hundred different programs in his job and at home, often only once a year, I want it to be consistent, so I don't have to learn yet another span of a diseased mind.You know, I have been going through this discussion for more than 20 years again and again. I have heard every "argument" from the "but I know better", "style guide are for wimps" and "wouldn't it be great if" engineering crowd. In all this time I only met a handful of GUI developers who mastered the game and could get away with breaking the rules. They were all graphics designers, not engineers. In all other cases, sticking to the rules made a better program, compared to the crocked ideas and hacks engineers came up with.Sticking to the rules doesn't make exciting programs, you can even call them dull. But that is still better compared to the stuff engineers would otherwise come up with.QuoteThe one or ones not following the standards are the ones with the lousy GUI engineering. Unless it is a masterpiece. And I don't think KiCAD's GUI is even close to being a masterpiece.

author: amspire
author_rank: Super Contributor
timestamp: March 24, 2012, 01:35:52 pm
content: BoredAtWork. I will have to admit it, you have made some good arguments. Things like the F3 and F5 keys do sound like a completely unnecessary choice.Richard.

author: BravoV
author_rank: Super Contributor
timestamp: March 24, 2012, 07:39:26 pm
content: Quote from: BoredAtWork on March 24, 2012, 01:17:30 pm+1 , I find this "dull/boring" statements above means a lot, and for people have been using computer long enough too.Speaking from a computer power user's perspective that was using a "personal computer" since the cpu was Z80 or 6502 era.

author: GrojGuy
author_rank: Newbie
timestamp: July 27, 2012, 08:57:38 am
content: Hopefully this thread is not too old to comment in.... but I simply wanted to chime in and say that I1000% agreewith all points made by Bored@Work. I could not have said it better myself. At the same time, I think we must applaud and appreciate all the efforts invested by the KiCad developers. However, I would truly like to hear their justification for many of their UI design decisions, because of how far they have deviated from the established norm. In the interest of helping the community, I think it is important to approach these things in a way that does not immediately offend/alienate those who have already poured their life and soul into the project.As a user of MANY different design applications, I cannot emphasize how delightful and efficient it is to use an application that follows the fundamental established 'UI' styles and behaviors. This is a very simple and justifiable concept. I do not understand the logic in deviating from UI style/behavior that has countless years of development and user-proven-ness behind it.Based on an argument made earlier in the thread, to the effect of "what is the point of open-source if we don't do anything different or new"..... Perhaps it is important to distinguish betweenapplication functionality, andUI functionality. Certainly it is wonderful for developers to engineer new and exciting features, functions, and capabilities into an application. But the way in which the user operates the applicationMUSTfollow some established standard, or else it will never be accepted by more than a niche user-base. This would be analogous to designing a super-awesome vehicle with some amazing new technology and features, but completely inventing your own 'user-interface' (steering, throttle, brake, clutch, gauges) that is totally different from the usual system that most people in the world are familiar with. Few people would want to use the car, because they wouldn't know how the heck to drive it!The exception is the case where the UI departs from the established norm in such a way that is so completely ground-breaking and incredible, that it naturally 'makes sense' to a large majority of users. Usually this is because it is solving shortcomings that have long been begging to be improved upon, but nobody ever quite pulled it off. Of course one example that comes to mind is Apple, with the iPhone and other iDevices. They have completely defined their own ecosystem.BUT, At the cost of many millions of dollars of research and development!!! I don't think that is KiCAD's mission or ability, is it?I have only recently began using KiCad. I like many of the features, but already I am super-frustrated with the UI and the fact that even the simplest mostbasicfunctions are either missing, or implemented in a totally non-standard fashion. As a software engineer, I would very much like to help develop and improve the project. I shall attempt to put in some significant time using KiCad, after which I plan to bring some questions and ideas to the developer community and see what the response is.

author: urbite
author_rank: Newbie
timestamp: April 26, 2016, 10:48:12 am
content: Bored@Work - please PM me. I tried to send you a PM but it was blocked.

author: donotdespisethesnake
author_rank: Super Contributor
timestamp: May 04, 2016, 06:44:09 pm
content: I've also thought of doing a fork of KiCad, there are so many simple changes that could improve things.For example, cvpcb has 3 different words meaning the same thing : "assignments", "links", "associations". And then the one function that is it's essential purpose - to assign a footprint - there is no button or menu item for it! The way to do it is with a double-click. None of that makes it intuitive or obvious to a new user, butthere is no good reason for it.I started writing things I would change, I quickly filled a couple of A4 sheets and realised at that point how much needs changing.I've struggled to get even simple issues to be accepted as bugs. Recently I found that a pin with a "no connect" attribute can still get connected to a net. Obvious candidate for improvement, right? Nope, "not a bug, that is the way it is supposed to work". KiCad is supposed to generate invalid netlists? Seriously?Unfortunately, KiCad developers seems to have the attitude that their software is a skill test - if you can figure out how to use it despite all the quirks then you must be a smart cookie - like them.BTW, useful tip : press the "Insert" key to redo the last action. If appropriate, it adds a configurable offset. Great for drawing wires, adding no-connects etc.

author: Neverther
author_rank: Regular Contributor
timestamp: May 04, 2016, 08:39:12 pm
content: Quote from: donotdespisethesnake on May 04, 2016, 06:44:09 pmIn schematic editor yes, but it will complain of you do DRC check. Same as you leave it unconnected but dont make noconnect marker on it.Also tested that in pcbnew, in opengl mode you can make tracks and connect "no connect" pads together but DRC will complain.In default view pcbnew wont allow creating tracks on noconnect pads.And on original topic, I find panning with ctrl+scroll and shift+scroll normal as some CAD packages use it.