8 ms·
A dynamic window manager for X11 written with Node.js
- zyxley 10y agoSo how long until somebody makes a kernel in Node?
- kartD 10y agoThe day 60GB of RAM is the norm. Just wait till embedded development shifts to node.
- tracker1 10y agoFor the "bigger" embedded platforms (rpi and similar), node is pretty serviceable... There have been other efforts to get JS based engines working well too. It depends on how you define embedded.
- kartD 10y agoI was a little angry with my browser so that was meant to be an insult. JS (not node) is usable for embedded coding. An example would be http://www.espruino.com/ http://www.espruino.com/. Newer boards that come on Kickstarter typically support JS since it's a great intro language for coding especially for kids.
- tracker1 10y agoIt's funny, but I like JS a lot, still think that Python is probably a better learning language... there's enough sharp edges in JS, that I don't think it's great for starting with, other than it's accessible, and combined with a browser, close to instant gratification.
- endgame 10y agoTeaching JS to kids? Let's hook Dijkstra up to a dynamo, he'll be spinning in his grave fast enough!
- kartD 10y agoI think it's great in the sense that you can easily make apps, games etc. which is good for getting kids interested quickly. Once their hooked, we can push them to some of the "better" languages.
- pvdebbe 10y agoAs long as Python actively refuses to support real constants among some other immutability related features, I think the more recent versions of JS are going to get past Python in sheer elegance of code.
- tracker1 10y agoI'm inclined to agree to some extent... I think that JS can be beautiful and intuitive. However, I've seen too many instances of the following. var bazCopy = []; for (var i=0; i<bar.baz.length; i++) { var orig = bar.baz[i]; bazCopy[i] = { fizz: orig.fiz, buzz: orig.buzz }; } parentCopy.baz = bazCopy; Over map/reduce/filter, and the like... Sometimes doing code reviews on pull requests is exhausting.
- abritinthebay 10y ago> Just wait till embedded development shifts to node. It already has. See Tessel (now on v2 of their board), and the Espruino which powers the pretty sweet Puck.js board.
- joezydeco 10y agoIf you're Microsoft with their Azure/IoT setup, it's already happening. I've been spelunking in their SDK and it makes me want to tear my hair out. I'm working with Cortex-M0/M3 devices kicking bytes over wifi modems, and Microsoft believes a "device" is a desktop-class SoC with an Ethernet jack running Node.
- pjmlp 10y agoWell you could use Java instead. :) http://www.microej.com/products/ http://www.microej.com/products/
- joezydeco 10y agoYou know, in an alternate universe where ARM Jazelle took off, that might not be so bad. But in this universe I'm all out of hair.
- pjmlp 10y agoThere is such alternate universe, even if not in large scale. It is composed by the likes of PTC, IBM J9 Embedded or other alternative languages like .NET MF and Oberon. But I do conceded it is not an option most of the time. Good luck with the project.
- tracker1 10y agoThere are already emulators that work in JS, that said, I don't know that it'd work for anything not emulated... As much as I love JS, I'm even a bit of a fan of electron based apps. That said this kind of integration doesn't make as much sense to me, it's interesting, but don't know how far it should ever go. I can se leveraging web/js as part of skinning/theming a window manager ui, but not sure about having it this far down the rabbit hole.
- Sir_Cmpwn 10y agoClose: https://github.com/runtimejs/runtime https://github.com/runtimejs/runtime There's another project but I'm having a hard time finding the link again.
- deleted 10y ago[deleted]
- pdkl95 10y agoJust wait until after the nuclear world war in the early 2020s. https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript https://www.destroyallsoftware.com/talks/the-birth-and-death...
- pjmlp 10y agoYou mean like this? http://www.espruino.com/ http://www.espruino.com/ One example of bare metal JavaScript. The biggest problem with such systems are more political than technical. We have tons of CPU cycles to spare compared with what Burroughs, Xerox PARC, ETHZ and many other similar systems required. As an example, the Xerox Alto used for Smalltalk-80 had 512 KB of RAM with 4 74181's running at 5.88 MHz.
- microcolonel 10y agoKeep in mind that this is pretty old, and no longer compiles against recent Node.
- gkya 10y agoLast commit 11 months ago. Node is certainly a moving target. Running in fact.
- sciurus 10y agoFor some reason (Bad marketing? Bad documentation?) this fact doesn't get much attention, but Gnome's desktop environment is written in JavaScript and styled with CSS. https://wiki.gnome.org/Projects/GnomeShell/Development https://wiki.gnome.org/Projects/GnomeShell/Development
- endgame 10y agoShame?
- parent5446 10y agoProbably because it's only partially written in JavaScript and CSS. The link you posted is for GNOME Shell, which is primarily the menu bar and user interface components, which arguably make sense being written in CSS. The actual window manager (which is what is implemented in this project) is separate. It's called Mutter and is written in C, like many other window managers.
- mikekchar 10y agoI would love to use Mutter for writing a window manager. The compositing features it exposes is fantastic. My main problem is how many hooks (claws) it has in GNOME. I haven't looked at it for a long time, but does anyone know how realistic it would be to try to fork Mutter to work without GNOME (and all the associated systemd, etc stuff)?
- sciurus 10y agoI think the Linux Mint developers forked Mutter and used it as the base for Cinnamon.
- mikekchar 10y agoUnfortunately, they simply forked GNOME. It still uses forks for gnome-settings-daemon, gnome-menus, etc, etc, etc. If I'm really serious about it, I should probably just look at the code in mutter and reimplement it without gnome.
- stonogo 10y agoThere sure is a shitload of C in this node.js program.
- iatanasov 10y agoInteresting . But for me so far nothing gets even close to the beauty and symplicity of dwm (http://dwm.suckless.org http://dwm.suckless.org )
- jdnier 10y agoHmm... "Because dwm is customized through editing its source code, it’s pointless to make binary packages of it. This keeps its userbase small and elitist. No novices asking stupid questions. There are some distributions that provide binary packages though."
- stirner 10y agoIt's really not too bad; just edit the config.h, "make", and put the binary somewhere in your $PATH. Changing the font, colors, keybindings, etc just requires modifying some strings and arrays.
- stirner 10y agoIt's really not too bad; just edit the config.h, "make", and put the binary somewhere in your $PATH.
- minitech 10y agoI switched to xmonad (http://xmonad.org/ http://xmonad.org/), since you can change the layout per workspace and it doesn't include a bar. (Sure, you can turn it off in dwm, but where's the minimalism in that?)
- pvdebbe 10y agoAnd Xmonad is the only one that gets workspaces right in a multidisplay environment.
- BuildTheRobots 10y agoNot used Xmonad, but I've been saying for years Enlightenment (e17 and up) is the only window manager that lets use multiple virtual desktops (workspaces?) and physical monitors in a sane way; namely I can swap workspaces on one monitor without it effecting the other. Gnome, KDE, LXDE, Mate, Cinnamon (and windows 10) all seem to assume that I'd only every be doing the same thing on both monitors which just seems inherently wrong.
- IsmaOlvey 10y agoThe "Why?" section seems to answer the question "What?". Would have expected either "Why you should use this", or "Why I/we wrote this".
- dmos62 10y agocwm[1] is by far the cleanest wm I've used. It reeducated me on what a wm should be. Focus by hover, no bars of any kind, move and resize with shortcuts instead of searching for the clickable area, extremely lightweight, good straightforward configuration (opposite of openbox). [1] https://www.google.com/search?q=cwm+window+manager https://www.google.com/search?q=cwm+window+manager
- shawnz 10y agoOT, but does anyone have any suggestions as to a tiling window manager which can effectively use the mouse?
- swah 10y agoWindows 10 is pretty good IMO.
- shawnz 10y agoThat's what I'm using now, but the limitation of 4 grid cells is somewhat inconvenient. Ideally I would like something just a bit more powerful.
- setrofim_ 10y agoawesome[1] has pretty decent mouse support, as far as tiling Window managers go. [1] https://awesome.naquadah.org/ https://awesome.naquadah.org/
- corney91 10y agoI personally use awesomewm because I find it's easy to use with either keyboard or mouse. I've not tried other ones in a while so it could just be a case that I'm used to it though. Thinking about it, by "using mouse" I still need to use the modifier key... By default: Mod+Left click = move window Mod+Right click = resize grid (when tiled) or window (when floating)
- ctoshok 10y agofor me "Javascript" + "Window manager" will always mean pyro (http://web.archive.org/web/20100626182331/http://pyrodesktop.org/Main_Page http://web.archive.org/web/20100626182331/http://pyrodesktop...). so much wasted potential there :(