Electron
deskreen
Our great sponsors
Electron | deskreen | |
---|---|---|
236 | 109 | |
111,526 | 15,201 | |
1.0% | - | |
9.9 | 0.0 | |
7 days ago | about 1 year ago | |
C++ | TypeScript | |
MIT License | GNU Affero General Public License v3.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Electron
-
Release Radar • February 2024 Edition
The team at Electron have been faithfully shipping new releases almost every single month. I think they had Christmas off 🤔. This popular framework has developers writing cross-platform desktop applications using JavaScript, HTML and CSS. The latest update depreciates some process events, and added new modules, APIs, methods, and more. Read into all the changes in the Electron release notes. This month, Electron also introduced a new formal RFC process.
-
The IDEs we had 30 years ago and we lost
VS Code has been crashing at launch in Wayland since more than eight months ago:
-
Design Systems with Web Components
So we talked a lot about the Atomic Design Principle, but you could just use that in any system and start creating. You could have Angular components, React Components, and Vue Components. But if you notice these don't easily work Everwhere. So the solution is to use Web Components because the modern browser can already understand these, and any Front-End framework can then utilize these components. You can use Electron for desktop (Slack, VSCode), PWA for both Android and iOS, and across all browsers Can I Use.
-
How I got Wayland, Vulkan, and hardware acceleration working with Figma on Fedora 39.
I'm noticing a significant boost in performance, crisper text, and better power savings. The only shortcoming is that the window which Figma will run on will lose its shadow. This is due to a technical limitation with frameless windows on Linux.
-
Building Apps with Tauri and Elixir
For the longest time, building desktop apps was a daunting task to web developers. That is, until technologies like Electron made creating these apps more approachable to a wider audience. Today, we’ve got a wide array of native applications built with solutions like Electron, Tauri, Capacitor, and many more. While these are great solutions, sometimes configuration can be tricky and the applications we create can become somewhat bloated in terms of memory usage.
-
CVE-2023-4863: Heap buffer overflow in WebP (Chrome)
It does, see [0]. Fun fact: Signal desktop, which uses Electron under the hood, is running without sandbox on Linux [1][2].
[0] https://github.com/electron/electron/pull/39824
-
$Home, Not So Sweet $Home
Open since 2016! https://github.com/electron/electron/issues/8124
-
Electron, Angular & Firebase "INTERNAL ASSERTION FAILED: Expected a class definition"
import {app, BrowserWindow, screen} from 'electron'; import * as path from 'path'; import * as fs from 'fs'; let win: BrowserWindow | null = null; const args = process.argv.slice(1), serve = args.some(val => val === '--serve'); function createWindow(): BrowserWindow { const size = screen.getPrimaryDisplay().workAreaSize; // Create the browser window. win = new BrowserWindow({ x: 0, y: 0, width: size.width, height: size.height, webPreferences: { nodeIntegration: true, allowRunningInsecureContent: (serve), contextIsolation: false, }, }); win.maximize(); win.show(); if (serve) { const debug = require('electron-debug'); debug(); require('electron-reloader')(module); win.loadURL('http://localhost:4200'); } else { // Path when running electron executable let pathIndex = './index.html'; if (fs.existsSync(path.join(__dirname, '../dist/index.html'))) { // Path when running electron in local folder pathIndex = '../dist/index.html'; } const url = new URL(path.join('file:', __dirname, pathIndex)); win.loadURL(url.href); } // Emitted when the window is closed. win.on('closed', () => { // Dereference the window object, usually you would store window // in an array if your app supports multi windows, this is the time // when you should delete the corresponding element. win = null; }); return win; } try { // This method will be called when Electron has finished // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs. // Added 400 ms to fix the black background issue while using transparent window. More detais at https://github.com/electron/electron/issues/15947 app.on('ready', () => setTimeout(createWindow, 400)); // Quit when all windows are closed. app.on('window-all-closed', () => { // On OS X it is common for applications and their menu bar // to stay active until the user quits explicitly with Cmd + Q if (process.platform !== 'darwin') { app.quit(); } }); app.on('activate', () => { // On OS X it's common to re-create a window in the app when the // dock icon is clicked and there are no other windows open. if (win === null) { createWindow(); } }); } catch (e) { // Catch Error // throw e; }
-
Wayland Is Pretty Good
Wayland as a concept is pretty good.
But I would strongly urge anyone from switching to it unless you have nostalgia about the bug-ridden nature of the 2010-era Linux Desktop.
I’m still using it, by the way, with Hyprland, but I think I’ll be switching back to X11/i3 soon. Here’s a taste of my experience thus far.
Electron apps are a mess. This isn’t (all) wayland’s fault but for issue lists like https://github.com/electron/electron/issues?q=is%3Aissue+is%... to exist, proponents of wayland would find it in their best interest to tackle the problems given the large number of applications that use electron.
Screen sharing doesn’t work. All the old fixes are to be ignored - it has regressed. Again. Font sizes are screwy. VSCode simply doesn’t work. The handy slack shortcuts like ctrl+shift+space for mute that work anywhere only work when slack is focused on Wayland.
If you have multiple monitors of different scaling factors, moving a window from one to the other results in it becoming unbearably blurry.
wl-clipboard and vim with clipboard=unnamedplus (the only reasonable clipboard) simply don’t work well together, and have a history of bugs going back for FOUR YEARS. At the moment, holding down x or d for repeated deletes is INSANELY slow. As in, I’m used to it working at my repeat rate of ~60 deletes per second and it barely does 3.
Every now and then, my cursor becomes huge. Every now and then, it becomes tiny. No idea why, and I’m afraid to ask.
Basically, it’s not a comfortable experience.
deskreen
-
Is there a way to make ubuntu 23.10 think it has a monitor connected when headless?
Or if you are an experienced user of your operating system, you can find solutions on how to create a virtual display without a need for Virtual Display Adapter in the following link: https://github.com/pavlobu/deskreen/discussions/86
-
Android 14 adds support for using your smartphone as a webcam
Use a vnc client on your android device and setup a virtual monitor on your desktop that is really a vnc server.
I know how to do that with Sway and swayvnc on wayland, as well as with xorg.
https://superuser.com/questions/1434779/using-a-tablet-as-a-...
https://www.reddit.com/r/swaywm/comments/k1zl41/thank_you_de...
This is particularly helpful to people using asahi linux and wanting to connect an external monitor. That can be done with something as simple as a raspberry pi.
EDIT: apparently this project help achieving the same thing on different OS but using webRTC and a browser:
- How do I use my laptop as a monitor of another laptop?
-
How can i create a virtual display on X11? [Amd]
Generic X: https://github.com/pavlobu/deskreen/issues/42
I Need to create a virtual display for use with sunshine streaming software, ideally at 1440p or 4k resolution, I've tried using a dummy driver but that disables my actual display input, and enabling an inactive display source using xrandr and setting a resolution to that causes the system to kernel panic
-
Ask HN: What lesser-known accessories do you use with your computer?
I use Deskreen with Windows, it has a Linux version that probably works similarly. I think it leverages browser streaming tech.
Easiest way to get it working is with a dummy plug, but maybe there's more options on Linux to fake a display in software.
-
T1 Sandwich with 7950X & 7900 XTX
Deskreen and a dummy monitor plug. It’s wireless so it has pretty bad latency but lets you turn any web browser into a second monitor. Good enough for discord or spotify.
-
Use a laptop as a 2nd display on Linux using FreeRDP
There's a big thread about this on the deskreen repo [0], maybe they've found something new since I last checked it.
There is, however, a very good remote virtual monitor solution called Spacedesk [1], which has a windows server (with virtual display driver included) and a JavaScript client that runs in any browser (it refuses to run in Firefox, but if you just comment out that line of code it works perfectly fine).
-
Barrier Alternative
not with an iPad, unfortunately: Apple has those locked down tight. the best you can do is use something like Deskreen to use the iPad as a second monitor (it uses Safari as a VNC client to extend a virtual display from your linux desktop)
- App for screen mirroring pc to android?
What are some alternatives?
tauri - Build smaller, faster, and more secure desktop applications with a web frontend.
VirtScreen - Make your iPad/tablet/computer into a secondary monitor on Linux.
Weylus - Use your tablet as graphic tablet/touch screen on your computer.
scrcpy - Display and control your Android device
dotenv - Loads environment variables from .env for nodejs projects.
Eel - A little Python library for making simple Electron-like HTML/JS GUI apps
puppeteer - Node.js API for Chrome
react-native - A framework for building native applications using React
cheerio - The fast, flexible, and elegant library for parsing and manipulating HTML and XML.
jsdom - A JavaScript implementation of various web standards, for use with Node.js
BetterDummy - Unlock your displays on your Mac! Smooth scaling, HiDPI unlock, XDR/HDR extra brightness upscale, DDC, brightness and dimming, dummy displays, PIP and lots more! [Moved to: https://github.com/waydabber/BetterDisplay]
virtual-display-linux - Create virtual display / monitor on linux OS for extended display via teamviewer or vnc server without any real Monitor is Plugged In.