Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
An 'alt+space' launcher for Windows, built with Electron (github.com/appetizermonster)
44 points by gnocchi on March 24, 2016 | hide | past | favorite | 61 comments


This is cute as a proof of concept, but it needs severe performance improvements if it's intended to replace Launchy.

Launchy sits there with 30mb ram used and no cpu used when not in use.

This launcher sits there with 170mb ram used, and 1% of a core in constant use.


Why do more people not get annoyed with the inefficiency of JS... its just burning CPU cycles and RAM!

Even 30MB is ridiculous for this type of App... back in the DOS days there were similar TSRs using a few KB of RAM.


Ahh the DOS days are long gone I'm afraid... A single 1024x1024 app icon on Mac OS X weighs in at 4MB once it's inflated to raw bitmap data from ICNS / PNG. Throw a couple of those onscreen at once in a list and you're looking at 30MB easy, and that's just in images!

Of course, you could leave out the images, but you could also just keep using DOS if RAM is a concern :-)


Are icons 1024x1024 now?!

And I still think 64x64 sounds kind of big for an icon, heh. I really need to get with the times, and get a lawn I guess.


It's for making them look smooth on high-dpi displays. Those pixels aren't drawn 1:1, obviously.


1024 x 1024 * 4 bytes per pixel = 4MB. Ok. There's no software engineering problem there, just bafflement at wanting almost as many pixels as would vertically fill a 1080p screen, for a fucking icon.


Because the vast majority of these people don't have the slightest clue as to how computers work. No troll, no bully, no malice. They don't know and they don't want to know. They deliberately wish to remain ignorant, as evidenced by the offence they take and rationalization they make whenever someone tries to explain any of the realities of modern hardware to them.

WEB SCALE!

IO BOUND!

Forget assembly, they refuse to learn even the most basic and incredibly important consequences of the memory hierarchy. It's garbage collection and best practices all the way down.

I don't want to make fun of people. In fact, I can't make fun of people because the overwhelming majority doesn't appreciate the joke.

All I want is for people to give a shit.


Or maybe some people just want to make a cool project for themselves and learn stuff along the way.


I'm replying to two people upset about the ridiculous resource usage of simple modern programs. Bring it up-thread if you want to defend against literal waste, I'm just talking about why it happens.


You said "The vast majority of these people" which would imply you're talking about the type of person who creates projects like this


Those TSRs also had little to no UI, and keep an index for fast searches. Images are probably also a part of it since seemingly no application these days can look like a native application anymore :|


Launchy sits there with 30mb ram used and no cpu used when not in use.

n.b. Launchy 2.6 beta 2 on Windows - the most recent version since 2008 - pegs a CPU while it's running.


That sounds like a bug and something to do with your system instead of "default behavior". 2.6 beta 2 behaves fine here.


That sounds like a bug

It is a bug, but it also means that Launch doesn't consume negligible CPU.

2.6b2's default behavior is to index too agressively. There are fixes out there, for those (like myself) who want to build their own binaries on Windows.

something to do with your system

Nope. https://www.google.com/search?q=launchy+cpu+usage

I'd give a better link but I'm on my phone.


Only because other people have it as well, doesn't mean it's not an abnormality. On my system Launchy pegs a single core for 4 seconds when reindexing, and the rest of the time sits literally at 0%. I can get as much as 10% of a core out of it by holding down ctrl+space, but that's it.


But launchy doesn't use Node.js..!

That said, honestly I wish I knew the Node.js ecosystem:-/


Shouldn't the docs mention that alt-space already does something on windows? Or is it assumed that whoever doesn't know about the default functionality won't miss it? Or maybe everyone knows?


Sometimes people just get a great idea for a cool keyboard shortcut and simply don't know that it already has a standard meaning.

This may be such a case, and Parallels is definitely one. Parallels 11 takes over the spacebar (just plain spacebar) in Windows Explorer, using it to pop up an OSX Quick Look panel like it does in Finder.

They apparently didn't think to check whether spacebar already does something in Explorer. (It does, and keyboard users like me use it all the time - it's an essential shortcut for keyboard navigation.)

And from what I've seen in forums and other interactions, they can't seem to imagine that it was a bad idea to take over this key with no option to turn off the behavior.

I love Parallels, but this is so clueless!


What on earth does spacebar do? I've been using windows for decades and I have no clue! I just tried it right now and still have no clue!


My guess: it selects elements of the UI while you tab through them. Stuff like table headers, for example.


Just a note since we're long gone from the home page and you may not see this even if you look at your "threads" page...

If you're curious, here's a description of how I use the spacebar in Explorer:

https://news.ycombinator.com/item?id=11368858


looks like you're right, but "enter" works just as well.


In Explorer the spacebar is used for typing spaces.


I meant to get back to you a couple of days ago on this...

Here's how I use the spacebar in Explorer:

https://news.ycombinator.com/item?id=11368858

Just replying here since that comment won't show up on your "threads" page and this one will.


I should have mentioned what spacebar does in my original comment, sorry! Meant to get back to you on this, so from the "better late than never" department...

In a Windows multiple-selection listbox, such as the right pane of Explorer when it displays a list of files or directories, the keyboard focus and selection are two separate concepts.

When a listbox has the keyboard focus, either a single element is outlined with a dotted rectangle - the element with the focus - or no elements at all.

Independently of that, zero or more elements may be selected. These elements are highlighted with a fill color.

You can use the arrow keys to navigate through the list, and both the selection and keyboard focus track together. Similarly, if you start typing, the selection and keyboard focus jump to a matching name. In both these situations, there is a single item selected, the same one that has the keyboard focus.

Or you can use Ctrl+arrow to navigate, which moves only the keyboard focus without changing the selection. Then you can use the spacebar to toggle the selection on the element with the keyboard focus, either adding it to or removing it from the set of selected elements.

In Parallels, these spacebar presses also pop up the OSX Quick View panel.

In this situation you can alternatively use Ctrl+spacebar, which does the same thing but doesn't trigger the popup. In fact that's as convenient as plain spacebar, or maybe even more convenient because you can just hold down the Ctrl key the whole time and use the arrow keys and spacebar to navigate and select.

So where does it become a problem? Try this:

Use Windows+E or any other method to open an Explorer, navigate to This PC, and in the right panel double-click the C: drive or any drive.

Note that there is now no keyboard focus rectangle in the right panel. Imagine the first item listed is a directory and you want to open that directory with the keyboard.

The Enter key at this point does nothing.

You can use the down arrow, but it focuses and selects the second item in the list.

You can type the letter that the first directory name begins with, but if there are two or more directories beginning with that letter, this also selects the second one.

The easy and reliable way to select the first directory is with the spacebar. And now you can use Enter to open that directory.

For whatever reason, I seem to often be in a situation where I want to navigate into a series of nested directories where the first directory is the one I want. It's very convenient to start typing spacebar, enter, spacebar, enter, etc.

Of course Ctrl+Spacebar also works without opening the OSX popup. But it's not exactly the same as Spacebar - it toggles the selection instead of always selecting.

And we're talking about 20-30 years of muscle memory - I've been using the spacebar, enter, spacebar, enter sequence ever since the earliest days of Windows. It's always worked on physical machines, in VMware, and in Parallels... Until Parallels 11 broke it.

Of course it's perfectly understandable that you weren't aware of this spacebar behavior! Probably only a small minority of users are aware of it. For those of us who do, it's pretty annoying to see that popup every time.


Indeed, better late than never! Maybe "up arrow" instead of space would work? Way less convenient though. I wonder how you're lucky enough to always need the first dir.


They definitely should. I have a dedicated button for it, so will continue to use that, but many of my colleagues (at a S-ME IT service provider) didn't know this menu existed. Trust the Indian guy to know, though


You have a dedicated Alt+Space (System Menu) button? Never saw that before, would be curious what kind of keyboard this is. I'm always interested in different kinds of keyboards.

Or is it a menu key that opens the right-click menu (not the same as the alt+space system menu), like this one:

http://www.laptopmag.com/images/wp/purch-api/incontent/2012/...


It's called a context menu :)

Back in the day before those fancy keyboards (and today still) the other keyboard shortcut is Shift+F10.


As others have pointed out, there are stuff that should not be made with Electron and this is one type of app that just shouldn't.

If it is platform specific anyways, why not do it in like C# or something that would make it lighter and faster?


Because someone already did that.

https://github.com/Wox-launcher/Wox


I'm pretty sure that the .NET runtime can compete on size with Electron. I.e. it is as big if not bigger. We just don't care about that because Microsoft includes it in the base OS.

I can't speak about the "faster" part, though.


Windows Key then type. No need to create a Chrome instance just to launch a program.


Exactly what I was going to reply.


You both assume that people only use applications installed via a "standard" installer, that sit in c:\program files (or whatever) and have proper menu entries.

I have 4 GB of random stuff under c:\apps of which some things have been copied over for nearly 10 years and countless windows installations. Also PortableApps, which don't sit in the start menu.


>npm

>JS

>Electron

for a thing that should be hyper-light and -fast? With all due respect - no, thanks, but - no.


Native Windows-S does nearly the same thing, does it not?


Yes...


Don't want to be the naysayer here, but this project is yet another 'I made smth already exisiting but with node.js and the original is still largely better'.

I think there are more interesting open source projects that should hit the HN frontpage. So let's start with this one, that computes Wikipedia Pagerank on a single node in less than 30 minutes : https://www.nayuki.io/page/computing-wikipedias-internal-pag...


There's nothing stopping you from submitting, if it's truly interesting it will appear on the front page.

Don't try to hijack someone else's post.


How does this match up to Launchy?


Launchy doesn't require you to install npm first.


I don't think you're intended to build it from source - you can just get a binary: https://github.com/appetizermonster/Hain/releases


Ah, thanks, again honestly.

That is my main complaint against anything Node.js: after having struggled with Node.js before I don't feel like building anything bsed on it.

Guess I'll stay with Launcy (or even the new Windows start menu) but this sorts most of my issues.


FOURTY FIVE MEGABYTES

/facepalm


Well, it bundles Webkit and a kitchen sink.


Neither does this...


> The name "Hain" is named by Hyunseop Lee, it means "a Servant" in Korean.

Also means "traitor" in Turkish, cool name.


And it means "cruel" in Romanian. We probably borrowed it from you guys to describe you :D


Scottish/gaelic "fein" is pronounced "hain", meaning self/yourself.


Huh, in Irish Gaelic (best gaelic) "fein" is pronounced like "feign" in English, with a leading "f" sound.


That's because it's spelled "féin" as Gaeilge, so it's more like 'fay-n'


Yeah, (born and raised in Ireland, complete with the mandatory Irish Language lessons), I'm just wondering where the poster above got the supposed "h" sound from.


I'm pretty sure it's pronounced with that 'h' sound in Ulster but most schools in Ireland are taught "Gaeilge na Mumhan" so we grew up it being an 'f' sound


Off topic, but does anyone know what program they used as a screen recorder in the README .gif?


Don't know what this guy used exactly, but GifCam is really good - http://blog.bahraniapps.com/gifcam/ - it's not fancy, but it's well done on the engineering side, maintains good FPS when capturing and compresses really well.


Would be awesome if it was also working on OSX. Pity I can't and don't wat to program apple platform.


Why? This was made only because OSX already has Alfred, LaunchBar and Quicksilver


What happened to tinyapps? I propose a challenge to create app launcher that is 100KB or less.


i really love these launcher apps.

this one sort of illustrates the problem with developing windows apps:

- you either learn complicated c++ and windows api and have to write your own rendering framework for custom components

- or use C# and xaml and get terrible performance with systems with no gpu acceleration

- or use VB for terrible performance and CPU usage

- or use javascript and node for huge memory usage and slower rendering than c++ (VB has the same issues)


Uh, where did you get the VB for terrible performance and CPU usage? There's nothing inherent to the language that makes it less efficient than C# or anything else running on the CLR.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: