Doods

joined 1 year ago
[–] Doods@infosec.pub 2 points 23 hours ago

Oh no don't get me wrong, a year back I upgraded to an I5-7500 prebuilt, and it's a beast for all my tasks. (maybe compiling is quick because I split modules a little too much?)

Your advice is good for not knowing what I'm making. If I was making something multi threaded with much state I would fear UB more.

may be much rarer in Debug because of speed difference

Thanks, then I will remember to recreate bugs with opt-level = 3.

Wait no, this doesn't make sense if I don't have access to the user's machine, maybe I should send him a log-heavy version of some sort? How should I even what I am supposed to log? I should think about this some more before release.

[–] Doods@infosec.pub 3 points 3 days ago* (last edited 3 days ago)

Do you have any sources about this “unfitness” of Rust for gamedev? From my experience many people have problems with the borrow checker due to habits they obtained coding in other languages.

I can't say anything for sure, but I read this article, in conjunction with this article, before I made this post, so you might consider looking at it, and how it influenced me.

Edit: wait, I'll extend this reply even more.

Edit 2: Done:

So I’d be interested what special behavior occurs in gamedev that makes coding in Rust more difficult than for other software.

Maybe it's because the gaming industry is historically among the slowest industries, they stuck with DOS until there was literally no drivers on it for the latest GPUs, only then did they upgrade. There's a video explaining how a recent AAA game could run on the steam deck, but not on Linux, it turns out the game was using a Windows XP library that's too old for wine to support, so how did it work on the deck? they effectively added this to their code:

if platform_name == "steamdeck" { use_modern_library() }

, which explains why it only ran on the deck, but notice how they still stuck to the ~2003 library as the default even though the modern one works, that's how much they hate change.

Considering the above, suggesting they change the particular way of their forefathers wouldn't be fruitful, unless extremely obvious B I G gains are to be found. Notice how Jonathan Blow's game development language is literally 'C++ but better', and how it mimics C++ in everything but the universally hated parts, and adds none but the universally wanted features. (as universal as an industry can agree on anything, that is)

That may be because games are a dangerous business, you pool all your resources in one project, and you get basically no income for up to four years, then you release and possibly succeed.

I also speculate that games aren't really maintained, most of the best games I know only received 3 patches at most (version 1.3). I think the priority isn't: "How am I gonna remember how this works in 3 months from now and deal with technical dept", it's more like: "How can I implement this in a way that the only thing faster than the implementation time is the feature itself?", so there is no fear of possibly breaking something that the checker can save you from down the road.

The last sentence kinda doesn't make sense since the first 3 years are more that enough technical dept for Rust to start doing its thing, but IDK how they think.

Bonus: look for Jonathan Blow's opinions on Rust on Youtube, he is an example of a studio owner fearing the risk of the possible "friction" that the Borrow checker could possibly cause.

[–] Doods@infosec.pub 2 points 3 days ago (4 children)

Hello Pers,

I made a mistake when writing the post, it reads like I am against the borrow checker, which I am not, I love the checker, and didn't encounter any - major - problems with it.

I meant that even if we used unsafe everywhere it would still be a good language, which is an attempt at arguing with those saying that Rust isn't fit for gamedev because the of the checker. Which I failed at due to lack of experience, as this is my first time making a game, and Rust is my first language*.

Regarding: "If it doesn't panic in Debug, it won't act weird on Release", even if I got reported a really weird bug related to UB, I should (I am not experienced enough to make a claim) be able to know it's UB since the game's gonna crash when I try to recreate the bug in Debug.

Some would say that shipping the game with runtime checks won't have an effect on performance, which is probably true, since it's so simple the list of entities is an array (not a vector), and the game state is - effectively - global (everything is impl CombatContext { fn x(&mut self) {} })**, and some (most? too early in development to tell) of the game is locked at 5fps (maybe I'll bump it up a bit)***.

I am so concerned about performance because I had to daily drive a computer that most people on this website - and especially on Reddit - would consider garbage E-waste, for 4 years, and was trying hard to play games on it, which was further amplified by my GPU not supporting Vulkan (nor Dx9 for some time), which meant I couldn't use Proton, which taught me some hacks that are... let's not talk about them.

So I find huge pain in leaving any possible performance optimizations, especially that some people I know are stuck on - arguably - worse machines****; accessibility is a big priority.

It also makes me angry to see pixel games come with 70Mib binaries and require Vulkan because:

1 - internet costs money

2 - they claim in the system requirements that their game "Should run on anything".

Memes like: "Oh my game could run on a potato" infuriate me (good thing I don't use social media), NO, your game can't run a potato, DooM can, it was actually optimized properly, your 2D pixels can't even render on a machine a 100x more powerful, you should feel ashamed*(5).

*: I was messing around with C# + Godot not super long ago, nothing serious.

**: I have been refactoring my code lately to limit the scope of most functions, in a way inspired by ECSs, but significantly more primitive.

***: the game has both a 3D and a 2D part, the 2D part has locked FPS, the 3D part can run at any framerate.

****: Macroquad supporting OpenGL only down to 2.0ES would be a problem, if I wasn't intending on forking it anyway to reduce the binary size (grim is an extremely bloated dependency, I managed to shove off 10 Mib in a few hours), and unless using 1.x is as hard people on the internet claim it is, which is probably false, as these people are mostly weak and say the same things about using a custom engine.

*(5): this might sound toxic, but that's how people get better.

 

Another crazy idea I share with this website.

I was developing a game and an engine in Rust, so I was reading many articles, most of which criticize the 'borrow checker'.

I know that Rust is a big agenda language, and the extreme 'borrow checker' shows that, but if it weren't for the checker, Rust would be a straight-up better C++ for Game development, so I thought: "Why not just use unsafe?", but the truth is: unsafe is not ergonomic, and so is Refcell<T> so after thinking for a bit, I came up with this pattern:

let mut enemies = if cfg!(debug_assertions) {
    // We use `expect()` in debug mode as a layer of safety in order
    // to detect any possibility of undefined bahavior.
    enemies.expect("*message*");
    } else {
    // SAFETY: The `if` statement (if self.body.overlaps...) must
    // run only once, and it is the only thing that can make
    // `self.enemies == None`.
    unsafe { enemies.unwrap_unchecked() }
};

You can also use the same pattern to create a RefCell<T> clone that only does its checks in 'debug' mode, but I didn't test that; it's too much of an investment until I get feedback for the idea.

This has several benefits:

1 - No performance drawbacks, the compiler optimizes away the if statement if opt-level is 1 or more. (source: Compiler Explorer)

2 - It's as safe as expect() for all practical use cases, since you'll run the game in debug mode 1000s of times, and you'll know it doesn't produce Undefined Behavior If it doesn't crash.

You can also wrap it in a "safe" API for convenience:

// The 'U' stands for 'unsafe'.
pub trait UnwrapUExt {
    type Target;

    fn unwrap_u(self) -> Self::Target;
}

impl<T> UnwrapUExt for Option<T> {
    type Target = T;

    fn unwrap_u(self) -> Self::Target {
        if cfg!(debug_assertions) {
            self.unwrap()
        } else {
            unsafe { self.unwrap_unchecked() }
        }
    }
}

I imagine you can do many cool things with these probably-safe APIs, an example of which is macroquad's possibly unsound usage of get_context() to acquire a static mut variable.

Game development is a risky business, and while borrow-checking by default is nice, just like immutability-by-default, we shouldn't feel bad about disabling it, as forcing it upon ourselves is like forcing immutability, just like Haskell does, and while it has 100% side-effect safety, you don't use much software that's written in Haskell, do you?

Conclusion: we shouldn't fear unsafe even when it's probably unsafe, and we must remember that we're programming a computer, a machine built upon chaotic mutable state, and that our languages are but an abstraction around assembly.

[–] Doods@infosec.pub 2 points 2 weeks ago

I think it's just because I can't resist running at full speed whenever I get the chance.

[–] Doods@infosec.pub 2 points 2 weeks ago

I believe BSD has more servers than macOS.

[–] Doods@infosec.pub 1 points 3 weeks ago (2 children)

bad hygiene (for olodumarè’s sake, bathe daily, and if possible brush your teeth at least twice a day).

I know this is popular in this thread, but how to achieve that? I shower 0-3 a day, with 0 being in days waiting for the washing machine for I have showered too much, and have no clothes remaining.

It seems no matter what I do, someone thinks I accidentally opened a shower on myself by how sweaty wet my underwear is, then proceeds to tell me I smell awful and banishes me from society back to my computer, which is what I would be doing anyway, also that person is the only one that complains and they (singular) can't handle heat at all.

I just checked and the temperature goes up to 42*, I don't know how hot that is, since I never look at weather, if it's hot I bear with it, if it's cold I ~~get sick for 3 days~~ bear with it.

Also I only wear winter-y jackets for some reason (A joke that went too far that's been lasting for 3 years?), people underestimate how good they are at shading, and they come with a built-in hat, and protect your body better than any T-shirt ever could.

Wait did I just answer my own question?

[–] Doods@infosec.pub 1 points 3 weeks ago* (last edited 3 weeks ago)

It's hard to answer your request because, you see, your statement is like saying: "Everything is just atoms, so everything is basically the same", it is "reductionist" of higher values, which even atheists have, but the statement itself cannot be denied, nor replaced with an alternative.

Edit: I read your other replies, and you seem to not need this one, to ignore it.

[–] Doods@infosec.pub 6 points 3 weeks ago (2 children)

Actually, crowdstrike has a very bad record regarding this, their services even managed to break Debian servers one time.

Source: some article.

[–] Doods@infosec.pub 2 points 3 weeks ago

[joke] That must be my friend's laptop. [joke]

[–] Doods@infosec.pub 0 points 2 months ago* (last edited 2 months ago)

It's always funny when 2 people politely agree that they more or less hate each other. Good day.

NAMBLA people just seem like less disgusting Americans. Uninterested!

[–] Doods@infosec.pub 0 points 2 months ago* (last edited 2 months ago) (2 children)

We have (somewhat?) similar action in the US, there was a republican GOP member in New Hampshire that was pushing to keep legal marriage set at 16 rather than 18, described the 16 year-olds as “ripe”…super creepy

I am pretty sure he's an awful person just because he's an American politician.

But you're missing the point though, you still think of young marriage as an absolutely-no-questions-asked obscene thing, which is understandable, seeing that most western teenagers are brainwashed into thinking they're kids, and are therefore immature and aren't ready for marriage. (Which creates some other problems because that's the natural age for marriage)

Where I live, we have 16-year-old men marrying 14-year-old women, and they have a child a year or two later, and they're really fine, except for maybe being less educated that they could have otherwise been. Speed of maturity actually depends mainly on two factors: difficulty of life (maturity of the mind and body), and heat of the climate (sexual maturity), and considering how high both were at the time of prophet PbUH, marrying at 9 is absolutely normal.

In fact, I am sure there are many marriage-ready 9-year-old women at places like Uganda and the poor African nations.

Actually, the idea of setting a minimum age only came to us with the french when they decided to colonize us, so of course we won't look positively at ideas brought by people who came to rape and pillage, and it still doesn't seem so bright considering they're still pillaging us implicitly through corrupt political affairs.

Isn't it weird that some resource-rich nations are dead-poor, while something like London can look like science fiction, and that a system as inefficient as democracy continues to function, and that every citizen somehow has human rights, and that the electricity doesn't get cut daily. To this day I have a hard time believing that flat asphalt roads exist, and that driving on them doesn't feel like riding a roller coaster of some sort; NO IT MUST BE FICTION, I WON'T BELIEVE IT TILL I SEE IT WITH MY OWN EYES!!!

Note to Americans: you guys might say: "Oh, but our medical system is a scam and colleges cause students to drown in debt because we normalized the disgusting act of usury!", it's just because your government's is spending a third-of-the-world's-military-budget worth of money on bombing Iraq and Yemen and Palestine and Cuba and Afghanistan and some other things in the name of "War On Terrorism" against those they pillaged. (No wait they made it back when they built a dock in Gaza to steal all their oil, so your government actually has no excuse, it must be corruption/falling into usury)

On the topic of American wastage, I read an article long ago where Americans were concerned that a 2000$ houthi drone was usually dealt with using a 2m$ missile, so the Pentagon spokesman or something replied with what was essentially: "Don't worry, Americans! the houthi's "terrorism" is already causing much more economic harm, so that's a negligible efficiency loss", like, how is telling people that the situation is much worse than they imagine supposed to calm them down?

Edit: I forgot Russia, almost the only nation America has any right to actually fight.

[–] Doods@infosec.pub -1 points 2 months ago

I first misread this as "America" and immediately clicked the link, I am disappointed.

3
submitted 2 months ago* (last edited 2 months ago) by Doods@infosec.pub to c/pop_os@lemmy.world
 

I have written a calculator in Rust and libcosmic, the design is copied from gnome-calculator; I discovered 2 things:

  1. I don't like working on UIs.
  2. I have no idea how to transform

cosmic::widget::button::Builder

to

cosmic::widget::Button;

this code would be so much cleaner if I could return a button::standard() from a function.

The source code.

-1
submitted 3 months ago* (last edited 3 months ago) by Doods@infosec.pub to c/linux@lemmy.ml
 

Tabs are 8 characters, and thus indentations are also 8 characters. There are heretic movements that try to make indentations 4 (or even 2!) characters deep, and that is akin to trying to define the value of PI to be 3.

I am in love with this awsome document; I love its guidelines, and coding conventions.

However, when Rust was introduced into the kernel, they butchered these beautiful guidelines, I know it's hard to look at such heretic actions, but you have to see this:

The default settings of rustfmt are used. This means the idiomatic Rust style is followed. For instance, 4 spaces are used for indentation rather than tabs.

How can this even relate to the ideology of the first document? I am deeply saddened by these new rules.

I know this is "The Rust experiment", but this must be fixed before it's too late! This has to reach someone.

A counter-argument might be:

The code should be formatted using rustfmt. In this way, a person contributing from time to time to the kernel does not need to learn and remember one more style guide. More importantly, reviewers and maintainers do not need to spend time pointing out style issues anymore, and thus less patch roundtrips may be needed to land a change.

And to that I say that rustfmt is configurable per project, and if it isn't, then it has to be. Doesn't something like .editorconfig exist?

Edit: I think I read enough comments to come up with a conclusion.

At first, forcing another language's code style upon another sounds backwards, but both styles are actually more similar than I originally though, the kernel's C style is just rustfmt’s default with:

  • 80 character line.
  • 8-space hard tabs.
  • Indentation limited to 3.
  • Short local-variable names.
  • Having function length scale negatively with complexity.

The part about switch statements doesn't apply as Rust replaced them with match.*

The part about function brackets on new lines doesn't apply because Rust does have nested functions.

The bad part about bracket-less if statements doesn't apply as Rust doesn't support such anti-features.

The part about editor cruft is probably solved in this day & age.

The rest are either forced by the borrow checker, made obsolete by the great type system, or are just C exclusive issues that are unique to C.

I left out some parts of the standard that I do not understand.

This all turned up to be an indentation and line-size argument. Embarrassing!

*: I experimented with not-indenting the arms of the root match expression, it's surprisingly very good for simple match expressions, and feels very much like a switch, though I am not confident in recommending to people. Example:

match x {
5 => foo(),
3 => bar(),
1 => match baz(x) {
	Ok(_) => foo2(),
	Err(e) => match maybe(e) {
		Ok(_) => bar2(),
		_ => panic!(),
		}
	}
_ => panic!(),
}

 
 

I have a huge library of game EXEs on my computer, but they run at a 4:3 aspect ratio as they're old, Proton/Proton-GE/WINE-GE keep the aspect ratio and place black bars left and right, which is desireble, unlike wine who stocks them to the left side of the screen.

0
Is this fixable? (infosec.pub)
submitted 1 year ago* (last edited 1 year ago) by Doods@infosec.pub to c/diy@beehaw.org
 

My 9yr old sister felt something is preventing her leg from moving, so she used violence.

A joystick USB cable.

*Without buying - or ripping off - another USB head of course.

-1
submitted 1 year ago* (last edited 1 year ago) by Doods@infosec.pub to c/linux_gaming@lemmy.world
 

I made a git hub issue, but I want to ask here as well in hope of finding success

After running heroic in the terminal, the following thing catchs my eye: The terminal hangs at either

[Backend]: Running Wine command: wineboot --init or [Legendary]: Using cached install info or ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 -and 2 &amp; 3- times!

sometimes I get a notification to install mono when switching WINE versions (WINE-GE).

Somewhere along the loading process a "wineboot.exe" blank windows appears depending on the wine version (heppens with proton) and stays for a while. I am using Wine-GE

Things I tried:

-Deleting the "Games" folder in my home folder - Only heroic used it anyway.

-Adding the game to steam through Heroic's "Add to steam" button.

-Reinstalling heroic and all of its dependencies.

-Manually adding the game's EXE to steam and forcing a Proton version.

-Launching the game by double clicking it in my file manager Nemo.

Surprisingly, only the last two things succeeded in running the game properly.

Terminal output after a successful run:

(Excuse my inability to use a code block on this)

`[doods@doods-pc-7500 ~]$ flatpak run com.heroicgameslauncher.hgl [13:0803/011856.095179:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory Gtk-Message: 01:18:56.754: Failed to load module "xapp-gtk3-module" Gtk-Message: 01:18:56.791: Failed to load module "canberra-gtk-module" Gtk-Message: 01:18:56.791: Failed to load module "pk-gtk-module" Gtk-Message: 01:18:56.792: Failed to load module "canberra-gtk-module" Gtk-Message: 01:18:56.792: Failed to load module "pk-gtk-module" [13:0803/011856.811049:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory [13:0803/011856.811105:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory [13:0803/011856.819964:ERROR:socket_posix.cc(147)] bind() failed: Address already in use (98) [13:0803/011856.820012:ERROR:devtools_http_handler.cc(312)] Cannot start http server for devtools. which: no wine in (/app/bin:/app/bin:/app/utils/bin:/usr/bin:/usr/lib/extensions/vulkan/MangoHud/bin:/usr/lib/extensions/vulkan/OBSVkCapture/bin:/app/bin/heroic/resources/app.asar.unpacked/build/bin/linux) (01:18:56) INFO: [Legendary]: Running command: XDG_CONFIG_HOME=/home/doods/.var/app/com.heroicgameslauncher.hgl/config/heroic/legendaryConfig /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary --version (01:18:56) INFO: [Legendary]: Legendary location: /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary (01:18:56) INFO: [Gog]: GOGDL location: /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl (01:18:56) INFO: [Connection]: Connectivity: check-online (01:18:56) INFO: [Connection]: Pinging external endpoints (01:18:56) INFO: [Backend]: DRM module staus { oimompecagnajdejgnnjijobebaeigek: { name: 'Widevine Content Decryption Module', status: 'new', version: '4.10.2557.0' } } APPIMAGE env is not defined, current application is not an AppImage LaunchProcess: failed to execvp: xdg-settings (01:18:57) WARNING: [Backend]: Failed to register protocol with OS. [13:0803/011857.103342:ERROR:browser_main_loop.cc(274)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed [13:0803/011857.103557:ERROR:browser_main_loop.cc(274)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed [13:0803/011857.103689:ERROR:browser_main_loop.cc(274)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed (01:18:57) INFO: [Gog]: Running command: /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/doods/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json --version (01:18:57) INFO: [Connection]: Connectivity: online (01:18:57) ERROR: [Gog]: Unable to syncQueued playtime, userData not present (01:18:57) INFO: [Nile]: Running command: XDG_CONFIG_HOME=/home/doods/.var/app/com.heroicgameslauncher.hgl/config/heroic/nile_config /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/nile --version (01:18:57) INFO: [Backend]: Loading Screen Ready (01:18:57) INFO: [Backend]: AreWeAntiCheatYet data downloaded (01:18:57) INFO: [Frontend]: Refreshing undefined Library (01:18:57) INFO: [Legendary]: Refreshing library... (01:18:57) INFO: [Legendary]: Refreshing Epic Games... (01:18:57) WARNING: [Backend]: refresh not implemented on Sideload Library Manager (01:18:57) INFO: [Legendary]: Game list updated, got 26 games & DLCs (01:18:57) INFO: [Backend]: Frontend Ready (01:18:57) WARNING: [Backend]: listUpdateableGames not implemented on Sideload Library Manager (01:18:57) INFO: [Gog]: Found 0 game(s) to update (01:18:57) INFO: [Backend]: Checking for current version changelog hostname: invalid option -- 'f' Try 'hostname --help' for more information. (01:18:58) INFO: [Legendary]: Checking for game updates: XDG_CONFIG_HOME=/home/doods/.var/app/com.heroicgameslauncher.hgl/config/heroic/legendaryConfig /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary list --third-party (01:18:58) INFO: [Legendary]: Running command: XDG_CONFIG_HOME=/home/doods/.var/app/com.heroicgameslauncher.hgl/config/heroic/legendaryConfig /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary list --third-party (01:18:58) INFO: [Backend]:

Heroic Version: 2.9.1 Boa Hancock Legendary Version: 0.20.32 Dark Energy (hotfix #6) GOGdl Version: 0.7.3 Nile Version: 1.0.0 Jonathan Joestar

Electron Version: 24.4.1 Chrome Version: 112.0.5615.204 NodeJS Version: 18.14.0

OS: Freedesktop SDK KERNEL: 6.4.6-200.fc38.x86_64 ARCH: x64 CPU: Intel Core™ i5-7500 @3.4 GOVERNOR: powersave RAM: Total: 7.62 GiB Available: 4.68 GiB GRAPHICS: GPU0: HD Graphics 630 VRAM: 256MB PROTOCOL: x11

(01:18:58) INFO: [Legendary]: Checking if EOS Overlay is enabled: XDG_CONFIG_HOME=/home/doods/.var/app/com.heroicgameslauncher.hgl/config/heroic/legendaryConfig /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary eos-overlay info --prefix "/home/doods/Games/Heroic/Prefixes/default/Tomb Raider GAME OF THE YEAR EDITION" (01:18:58) INFO: [ExtraGameInfo]: Using cached ExtraGameInfo data for Tomb Raider GAME OF THE YEAR EDITION (01:18:58) DEBUG: [Legendary]: Using cached install info (01:18:58) INFO: [ExtraGameInfo]: Using cached ExtraGameInfo data for Tomb Raider GAME OF THE YEAR EDITION (01:18:58) DEBUG: [Legendary]: Using cached install info (01:18:58) DEBUG: [Legendary]: Using cached install info (01:18:59) INFO: [Legendary]: Abort command "XDG_CONFIG_HOME=/home/doods/.var/app/com.heroicgameslauncher.hgl/config/heroic/legendaryConfig /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary eos-overlay info --prefix "/home/doods/Games/Heroic/Prefixes/default/Tomb Raider GAME OF THE YEAR EDITION"" Error occurred in handler for 'isEosOverlayEnabled': AbortError: The operation was aborted at abortChildProcess (node:child_process:746:27) at EventTarget.onAbortListener (node:child_process:816:7) at [nodejs.internal.kHybridDispatch] (node:internal/event_target:735:20) at EventTarget.dispatchEvent (node:internal/event_target:677:26) at abortSignal (node:internal/abort_controller:308:10) at AbortController.abort (node:internal/abort_controller:338:5) at callAbortController (/app/bin/heroic/resources/app.asar/build/electron/main.f23c4159.js:2:404) at Object.onOutput (/app/bin/heroic/resources/app.asar/build/electron/main.f23c4159.js:190:23627) at Socket. (/app/bin/heroic/resources/app.asar/build/electron/main.f23c4159.js:100:743) at Socket.emit (node:events:513:28) { code: 'ABORT_ERR' } which: no wine in (/app/bin:/app/bin:/app/utils/bin:/usr/bin:/usr/lib/extensions/vulkan/MangoHud/bin:/usr/lib/extensions/vulkan/OBSVkCapture/bin:/app/bin/heroic/resources/app.asar.unpacked/build/bin/linux) (01:18:59) INFO: [Winetricks]: Downloading Winetricks (01:18:59) DEBUG: [Legendary]: Using cached install info which: no wine in (/app/bin:/app/bin:/app/utils/bin:/usr/bin:/usr/lib/extensions/vulkan/MangoHud/bin:/usr/lib/extensions/vulkan/OBSVkCapture/bin:/app/bin/heroic/resources/app.asar.unpacked/build/bin/linux) (01:19:00) INFO: [Legendary]: Found 0 games to update (01:19:00) DEBUG: [Legendary]: Using cached install info (01:19:00) DEBUG: [Legendary]: Using cached install info (01:19:01) INFO: [Backend]: d6264d56f5ba434e91d4b0a0b056c83a: Setting wineVersion to {"bin":"/home/doods/.local/share/Steam/compatibilitytools.d/GE-Proton8-7/proton","name":"Proton - GE-Proton8-7","type":"proton"} (01:19:02) DEBUG: [Legendary]: Using cached install info (01:19:02) INFO: [Backend]: Starting the Download Queue (01:19:02) INFO: [Backend]: Launching Tomb Raider GAME OF THE YEAR EDITION (d6264d56f5ba434e91d4b0a0b056c83a) (01:19:02) INFO: [Backend]: Preventing display from sleep (01:19:02) INFO: [Backend]: Checking if wine version exists: Proton - GE-Proton8-7 (01:19:02) INFO: [Backend]: Preventing machine to sleep (01:19:02) INFO: [Backend]: Stopping Power Saver Blocker (01:19:02) DEBUG: [Legendary]: Using cached install info (01:19:02) DEBUG: [Legendary]: Using cached install info (01:19:02) DEBUG: [Legendary]: Using cached install info (01:19:02) DEBUG: [Legendary]: Using cached install info (01:19:03) INFO: [Backend]: Checking if wine version exists: Proton - GE-Proton8-7 (01:19:03) WARNING: [Backend]: You are using Proton, this can lead to some bugs. Please do not open issues with bugs related to games (01:19:03) INFO: [Backend]: Checking if wine version exists: Proton - GE-Proton8-7 (01:19:03) INFO: [Backend]: Checking if wine version exists: Proton - GE-Proton8-7 (01:19:03) DEBUG: [Backend]: Running Wine command: run wineboot --init (01:22:57) INFO: [Legendary]: Launching Tomb Raider GAME OF THE YEAR EDITION: XDG_CONFIG_HOME=/home/doods/.var/app/com.heroicgameslauncher.hgl/config/heroic/legendaryConfig STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/doods/.var/app/com.heroicgameslauncher.hgl/.steam/steam STEAM_COMPAT_DATA_PATH="/home/doods/Games/Heroic/Prefixes/default/Tomb Raider GAME OF THE YEAR EDITION" STEAM_COMPAT_INSTALL_PATH=/mnt/9d0ba9a2-ba39-4b1c-84d9-1198e5020470/EGS/TombRaiderGOTYE WINE_FULLSCREEN_FSR=0 PROTON_NO_ESYNC=1 PROTON_NO_FSYNC=1 STEAM_COMPAT_APP_ID=0 SteamAppId=0 SteamGameId=heroic-TombRaiderGOTYE PROTON_LOG_DIR=/home/doods/.var/app/com.heroicgameslauncher.hgl /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary launch d6264d56f5ba434e91d4b0a0b056c83a --language en --no-wine --wrapper " '/home/doods/.local/share/Steam/compatibilitytools.d/GE-Proton8-7/proton' run

(01:25:05) INFO: [Backend]: Stopping Display Power Saver Blocker [13:0803/012505.514317:ERROR:browser_main_loop.cc(274)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed [13:0803/012505.514366:ERROR:browser_main_loop.cc(274)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed [13:0803/012505.514425:ERROR:browser_main_loop.cc(274)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed (01:25:05) INFO: [Frontend]: Refreshing legendary Library (01:25:05) INFO: [Legendary]: Refreshing library... (01:25:05) INFO: [Legendary]: Refreshing Epic Games... (01:25:05) INFO: [Legendary]: Game list updated, got 26 games & DLCs (01:25:05) DEBUG: [Legendary]: Using cached install info (01:25:05) DEBUG: [Legendary]: Using cached install info (01:25:05) INFO: [Legendary]: Running command: XDG_CONFIG_HOME=/home/doods/.var/app/com.heroicgameslauncher.hgl/config/heroic/legendaryConfig /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary list --third-party `

Update: I found a repo for fedora on their github page, downloaded it and games started working fine.

-1
submitted 1 year ago* (last edited 1 year ago) by Doods@infosec.pub to c/linux@lemmy.ml
 

Is there a way to achieve compact view in Nautilus?

I have always used Nemo (Cinnamon's file manager) on Gnome to achieve said functionality, but it looks alien compared to the rest of the Desktop and therefore I want to use Nautilus.

(Picture: compact view in Nemo, I found said picture online)

view more: next ›