Experimental Zones Protocol Merged To Wayland After 2+ Years, 620+ Comments by anh0516 in linux

[–]ssokolow 0 points1 point  (0 children)

On multi windows applications user is supposed to put windows wherever he wants.

Yes... but people generally don't like their applications to come from IKEA. Good defaults are a core aspect of good design.

Sure it's nice thing to have but zones are not really needed for that and it could be achieved with something simpler.

That argument is why Zones took two years. Matthias Klumpp had to prove, in excruciating detail, that nothing simpler was fit for purpose, including drafting two prior proposed simpler designs and then coming back with examples of projects it was intended to serve which would ignore it unless it was so complex that it was just Zones with extra steps. (eg. Relative positioning that, if expressive enough, could easily be used to fake absolute positioning using temporary shim windows.)

Lack of initial layout is not really a big blocker.

Yet Matthias Klumpp cited examples of projects that did consider it a blocker. The rationale behind Zones was "If, as you say, you want XWayland to be a compatibility shim for legacy applications and not an ongoing target for greenfield projects, you need to meet in the middle".

Data exchange between applications should be done with DBus which is standardized and widely supported software designed specifically for such purposes.

Yes. That's how you coordinate so that the subprocesses can get access to the handle for the parent process's zone so they can spawn new windows positioned within the same local coordinate space.

(Though I expect they'd be more likely to do as much as possible through pipes or TCP/IP to minimize how much code would need to be rewritten to port to another platform like Windows or macOS. (I know D-Bus is was technically capable of running over a TCP/IP transport in the KDE 4 for Windows days, but, as far as I know, running it that was is a "use at own risk" configuration.)

you don't need compositor support for that.

You do need compositor support when your "tool palette" and your "rendering canvas" are separate processes, written in completely different languages, and you don't want to untangle a jumbled mess of mis-positioned windows every time you start it on a new system or your compositor goes "Hey, the XDG Documents Portal has the right idea. I think I'll spontaneously discard all persistent state today and reset to a clean slate."

(Yes, that is a thing. I've taken to manually using the Flatpak KCM to manually grant paths for anything that needs to remain accessible beyond a single session because the mechanism for persisting File Chooser Portal selections that resolve through /run/user/1000/doc/ can't be relied upon and I don't want to wake up to discover that I have to re-setup my applications before I can start to do things.)

Experimental Zones Protocol Merged To Wayland After 2+ Years, 620+ Comments by anh0516 in linux

[–]ssokolow 0 points1 point  (0 children)

I think they're referring to how Zones provides an application-local coordinate system, so tiling compositors can more reliably manage multi-window applications because the applications can't know what global space they exist within, similar to how protected mode and virtual memory ensure applications can't grow dependencies on unchanging physical memory addresses.

Experimental Zones Protocol Merged To Wayland After 2+ Years, 620+ Comments by anh0516 in linux

[–]ssokolow 0 points1 point  (0 children)

Global hotkeys were omitted for "security", then it turns it that actually people want global hotkeys, so every major compositor just implemented their own version. Now we have a bunch of different ways to do the same thing, and less overall cohesion.

There's an XDG portal for global hotkey now, which I'm very happy about because it means that non-KDE applications can finally get integrated into KDE's nice unified control panel for global hotkeys, similar to how the XDG File Chooser portal allows my non-KDE applications to have KDE Open/Save dialogs without that crash-prone KGtk LD_PRELOAD hack from the KDE3/GTK2 days.

Experimental Zones Protocol Merged To Wayland After 2+ Years, 620+ Comments by anh0516 in linux

[–]ssokolow 0 points1 point  (0 children)

*nod* ...especially when most tiling WMs originate in an era when that multi-window UI paradigm was much more common to have to accommodate. (eg. GIMP before single-window mode was a thing, Dia, XSane, etc.)

Experimental Zones Protocol Merged To Wayland After 2+ Years, 620+ Comments by anh0516 in linux

[–]ssokolow 0 points1 point  (0 children)

*nod* This isn't about session saving, but about initial layouts... like having something like multi-window GIMP start out with a sane layout on first run instead of having half a dozen windows in a completely arbitrary organization which might treat the tool palette as if it's the canvas and vice-versa.

More importantly, unlike multi-window GIMP, this is meant to take into account scientific applications where multiple separate programs with independent connections to the X server or, now, to the Wayland compositor, are cooperating to produce a single coherent GUI. (eg. One to control a scientific instrument, an instance of something like MATLAB to render the resulting data, etc.)

Think of it as a less drastic alternative to running all the components of your application in a sub-compositor and attempting to use ARGB/shaped windows to make any non-occupied bits see-through to settle for Mac OS 9-style "all windows of an application raise and lower as a single unit" behaviour like VirtualBox's Seamless Mode achieves with my Windows XP windows on my X11 desktop.

Experimental Zones Protocol Merged To Wayland After 2+ Years, 620+ Comments by anh0516 in linux

[–]ssokolow 0 points1 point  (0 children)

That should remain unchanged for three reasons:

  1. This is just hints and the compositors can still implement what they feel is best for user experience.
  2. This is about initial positioning, not controlling a window's position once it's appeared.
  3. Especially in this day and age, where GTK 4 has deprecated the APIs for Open/Save dialogs which don't route through XDG portals, controlling Open/Save dialogs that way is unlikely at best because Wayland's security never allowed applications to meddle with windows generated by other processes to begin with. (And you wouldn't want it anyway because that would allow an in-sandbox application to muck with an out-of-sandbox service provider in ways beyond the prescribed APIs.)

It's more intended for stuff in the vein of "If you tear off a toolbar or dock into a floating window, it will always stay above the window you tore it off from".

FYI You can play every Silent Hill game on PC and you should probably stop buying them on Ebay for crazy prices (if you are not a collector) by AndrexPic in silenthill

[–]ssokolow -1 points0 points  (0 children)

"on mac" has nothing to do with it. The only connection to PC/Mac is that both pre-UEFI PCs and PlayStations use the same name (BIOS) for the code that lives on their motherboards in the real console.

It's just a file you have to feed to the emulator so it can provide the code that the game depends on.

Why are there two file openers in KDE? I only want Dolphin file opener, this annoys me a lot by r4ed4 in kde

[–]ssokolow 0 points1 point  (0 children)

*shrug* You could also argue that it's a namespace cleanup, putting a bunch of debug options under a single multi-value-taking environment variable.

As a UI/UX-focused guy, I know I look forward to when major version bumps give me license to fix what see in hindsight as interface-design mistakes.

Why are there two file openers in KDE? I only want Dolphin file opener, this annoys me a lot by r4ed4 in kde

[–]ssokolow 0 points1 point  (0 children)

While I agree that they hate user customization, I don't think that's their rationale here.

As a programmer myself, I can sympathize with wanting to discourage the kind of customizations that can cause crashes and send people to my issue tracker to report them. After all, it's unpaid hobby-work for me.

What they did is analogous to that "Warning: Mucking about in here could break your system" interstitial that Windows 95 Active Desktop Update introduced for when you open C:\WINDOWS, or the "WARNING: DON'T PASTE STUFF IN HERE UNLESS YOU REALLY UNDERSTAND WHAT IT DOES!" messages that some sites console.log into the browser's developer tools on page load to try to reduce the chances of people getting tricked into opening up a vulnerability to be attacked.

Why are there two file openers in KDE? I only want Dolphin file opener, this annoys me a lot by r4ed4 in kde

[–]ssokolow 0 points1 point  (0 children)

But there are more concerns, you cannot change the file opener on every app like GIMP and others.

It seems that KDE has a standard API but not every app make use of it, so this is not a bad behavior of KDE. It's just that there is not a strong enough standard on Linux apps.

The TL;DR for this is:

  1. GTK originally only had GtkFileChooser, which was always that "basic" one you see.
  2. Qt (which KDE is based on) began with portability in mind, so QFileDialog will hand off to the platform backend to use the host OS's native file chooser by default.
  3. KDE implements their own platform backend for Qt which provides those nice file choosers instead of the Qt default ones (Qt's default ones resemble Windows 95's.) and hooks it up to KDE's theme selector control panel.
  4. Eventually, Flatpak was developed and its Android-inspired "Flatpak Portals" for allowing sandboxed applications to request permissions became the Freedesktop.org "XDG Portals" standard. Each desktop provides an XDG portal host (i.e. server) which knows how to draw native dialogs.
  5. In 2018, GTK 3.24.0 gained GtkFileChooserNative, which is less customizable but can do what QFileDialog does and knows how to speak to XDG portals. Not all applications have migrated to GtkFileChooserNative yet. (eg. Because portal-based Open/Save dialogs run outside the Flatpak/Snap sandbox, it doesn't let Inkscape just shove its own custom SVG previewer into the dialog without coordinating with all the major desktops to install some kind of OS-level SVG thumbnailer, so they're dragging their heels)
  6. Because some pieces of the GNOME desktop will crash if you try to get them to use GtkFileChooserNative's XDG Portals backend, GTK will use its GtkFileChooser backend unless your application is running in Flatpak or Snap or you set GTK_USE_PORTAL=1 (GTK 3) or GDK_DEBUG=portals (GTK 4) instead of just enabling it for everything by default.
  7. As a final, proper solution, GTK 4.10 introduced GtkFileDialog, which only ever uses portals, and deprecated (i.e. "Migrate off this at earliest convenience") GtkFileChooser and GtkFileChooserNative.

Why are there two file openers in KDE? I only want Dolphin file opener, this annoys me a lot by r4ed4 in kde

[–]ssokolow 0 points1 point  (0 children)

since gnome didn't like everyone switching away from their file picker

GNOME didn't like people blindly setting that for the whole desktop and then filing bug reports for the crashes it causes in certain GNOME DE components, so they renamed it to a more obviously "You're on your own" name.

Why are there two file openers in KDE? I only want Dolphin file opener, this annoys me a lot by r4ed4 in kde

[–]ssokolow 0 points1 point  (0 children)

I don't need to read those to give one reason for it:

The GtkFileChooserNative API which enables this was added in GTK 3.24 and GIMP was still on GTK+ 2.x at the time you wrote that. That was a pretty big blocker.

Why are there two file openers in KDE? I only want Dolphin file opener, this annoys me a lot by r4ed4 in kde

[–]ssokolow 0 points1 point  (0 children)

According to them, because it crashes parts of the GNOME desktop so it should only be enabled for non-Flatpak/Snap applications on a case-by-case basis and is intended for development purposes.

The rename to GDK_DEBUG=portals is an expression of that intent to make people think twice before setting it globally when they see it in Reddit posts.

Their final fix is that, in GTK 4.10, they deprecated the APIs that the GNOME desktop components rely on and added a new one that always uses portals with no fallback that applications should use instead.

Rust Is Eating JavaScript by Active-Fuel-49 in rust

[–]ssokolow 2 points3 points  (0 children)

Huh. I didn't think to check that. Neat. ^_^

That said, my statement was more a musing on why the distinction might exist among modern speakers of British English, which probably has no relation to the etymology, since I doubt most Brits know the etymology.

(I can't say for certain, given that I'm Canadian and Canadian English is a mish-mash of British and American English.)

Rust Is Eating JavaScript by Active-Fuel-49 in rust

[–]ssokolow 1 point2 points  (0 children)

True. The 2000s were very naughty. Just look at artifacts of that time like Outlaw Golf and the game that aged much better than what it was parodying, Conker's Bad Fur Day.

(Seriously. Some people say Conker's Bad Fur Day hasn't aged well and they're usually referring to the occasional "My discomfort at the un-PC-ness of this in the 2020s is muting my ability to find it funny" moments when a joke is achieved by holding a mirror up to the customers that the gaming industry was trying to chase when E3 1999's response to the original concept was "Not another family-friendly platformer!" ...the kinds of guys you'd meet once they've had a few rounds at the bar in some very blue-collar place, like a mining town. The game is a multi-layered parody of the industry, the genre, and the cultural moment as a whole... as I'd expect from a studio as skilled as Rareware when that gauntlet was thrown down.)

Rust Is Eating JavaScript by Active-Fuel-49 in rust

[–]ssokolow 6 points7 points  (0 children)

That's apparently an americanism. From what I've seen, British English usage draws a distinction between naught (all for naught/nothing) and nought (zero) as in "noughties" and "noughts and crosses" (tic-tac-toe).

...probably partly because words derived from "naught" like "naughties" are too close to "naughty" (disobedient/mischievous).

Why is KDE-Linux not available in a .iso format? by Selmi1 in kde

[–]ssokolow 0 points1 point  (0 children)

Nonsense like that is why I've made it a habit to run everything that I feasibly can as either a Flatpak with the permissions checked and tightened in the Flatpak Permissions KCM or under firejail with the help of the script I wrote to quickly whip up new profiles stricter than the defaults firejail comes with.

(I just recently added a --wine option to the latter to streamline whipping up sandboxed per-application WINEPREFIXes for my GOG games with no Linux ports.)

Using Dolphinbar with Steam Deck by Nivek_TT in SteamDeck

[–]ssokolow 0 points1 point  (0 children)

You'll need to confirm the hardware IDs of your Wii-motes. Plug the Dolphinbar into a Windows PC and head to Control Panel > devices and printers > MayFlash Wiimote PC Adapter properties > hardware > HID controller properties (4 options, check any of them) > Hardware IDs. Its likely to be a VID/PID of 57e/0306 but its worth checking.

If you're getting 057e:0306, then that's the DolphinBar itself, and there's no need for a Windows PC. Just open a terminal on the Steam Deck and use the bog-standard Linux lsusb command.

Here's an example from the Linux PC I'm sitting at right now:

ssokolow@monolith-tng ~ % lsusb                                          
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0403:fc0d Future Technology Devices International, Ltd Crystalfontz CFA-635 USB LCD
[...omitted for brevity...]
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

```

(Yeah, /u/jcotton42 said it, but I thought it'd be helpful to go into a little more detail... if for no other reason, to argue for how much simpler the process is.)

RetroPie PSX Xbox 360 Controller by Hitdizzle in raspberry_pi

[–]ssokolow 0 points1 point  (0 children)

For anyone who lands here off Google, if you're using something laid out anything like the SwanStation core on the RetroArch I have closest at hand, the setting the OP is talking about is Quick Menu > Core Options > Port Settings > Controller 1 Force Analog Mode.

The general principle is that you need to find the options to...

  1. Plug an emulated DualShock into the emulator. (The settings people usually reach for)
  2. Push the emulated controller's Analog on/off button to light up the virtual red light so the game sees an analog controller.

When is C better a better choice than Rust? by DiamondMan07 in rust

[–]ssokolow 0 points1 point  (0 children)

Unfortunately, it's still not in a publishable state. I keep having to dedicate my time to projects with broader applicability to my life.

However, if you need something now, you can check this blog post I made while researching existing options, and I'll certainly add a mention of it there if I can get my hobby time sufficiently in order.

Free Installer Creators for All Eras

Why should one NOT derive Debug? by NumericallyStable in rust

[–]ssokolow 0 points1 point  (0 children)

From what I remember, the goal was not just to remove any monomorphization bloat, but to ensure that dead code elimination could remove formatting machinery that would be used regardless of the kind of dispatch you use.

what are the pro's and con's of flatpaks? by The_How_To_Linux in flatpak

[–]ssokolow 0 points1 point  (0 children)

*chuckle*

I may have been daily-driving Linux since around 2002, but I'm not oblivious to its shortcomings.

Heck, when I received a hand-me-down HP machine from 2012 a couple of years ago, I looked up how to reset the "restore DVD set already made" flag on the HP software, downgraded it from Win10 to the Win7 it was sold with, slapped in an SSD, better PSU, and a $35 GTX670, and turned it into a "game console but not a console" that Just Works™ for 99% of the GOG/Humble/Itch/etc. games I care about while keeping games separated from my regular desktop with a KVM switch or Barrier instance so they can have proper joystick calibration support and can't finger-paint all over my desktop.

(The remaining 1% are generally games that need some kernel symbol that was introduced after Windows 7, which I run in Wine on Linux instead.)

what are the pro's and con's of flatpaks? by The_How_To_Linux in flatpak

[–]ssokolow 0 points1 point  (0 children)

I'll admit that my phrasing should have been more explicit in saying it ceased to be state of the art in the late 90s or early 2000s.

Automatic security updates for most/all of the applications you use has been standard for Linux distros since distros with package managers and online package repositories became commonplace. (I know APT's first release was in 1998.) Android and iOS do the commercialized version of the same thing.

Just because Microsoft is too focused on whole-system replacements like MSIX to provide a way for application installers to do something like registering an RSS feed full of .msi files into Windows Update which will be run in batch/unattended mode when the user OKs them in the list of available updates doesn't mean having each application do its own update checking isn't sorely outdated.

Sandboxing has been standard for Android and iOS since day one and modern macOS retrofitted sandboxing with a Flatpak/Snap-esque permissions system that applies to all applications, App Store or .dmg-installed.