you can set a CSS name, wich isn’t a CSS class and doesn’t use a leading dot.
Yeah that's what I've been using all along.
This is embarrassing, but when was it not?
I have to add a "." before the name of a css
class, I must learn my tools.
If you only need it for the interface, a shit workaround would be to prefix all text with an RLM (RIGHT-TO-LEFT Mark).
Unfortunately no, I expect users to enter Arabic text as well.
Fast iteration is already fixed by using cranelift in your release-dev profile (or whatever you want to call it), and mold as a linker.
Maybe, I didn't try that before, but I don't expect Cranelift to match the speeds gtk-rs
is currently giving me; Cranelift also doesn't solve the problem of rust-analyzer
acting crazy.
Okay, something helpful instead: Did you try asking in the
rust:gnome.org
matrix room mentioned in the project page?
No, I prefer public posts to prevent effort duplication, so much so that my mind started filtering out such things on project pages, but thanks for reminding me.
Before anyone suggests another library:
Iced
andEgui
both can't handle Arabic, which is a deal breaker.Iced
takes forever to compile and iterate, maybe that'll be fixed with dynamic linking.Relm
: I didn't know it existed before I started this project.Qt
bindings: IDK I forgotQt
existed, I was always more of GNOME* guy.- I am already pretty deep into this project, and don't want to learn something else for now.
* GNU Network Object something Environment
gtk-rs change widget appearance at runtime.
It might be lack of sleep, but I can't figure this out.
I have a Label
, and I want its text to be red when it represents an error, and I want it be green when it represent "good to go".
I found search result for C
and maybe a solution for Python
, but nothing for Rust
.
I tried manually setting the css-classes
property and running queue_draw()
; it didn't work.
I can have a gtk::Box
or a Frame
that I place where the Label
should go, then declare two Label
s, and use set_child()
to switch between them, but that seems like an ugly solution.
Do you have a solution?
SOLVED:
I have to add a "." before declaring a CSS "thing" for it to be considered a class.
Ex:
.overlay { background: rgba(60, 60, 60, 1); font-size: 25px; }
instead of:
overlay { background: rgba(60, 60, 60, 1); font-size: 25px;) }
> Just use label.add_css_class(), label.remove_css_class() or label.set_css_classes() and make sure to properly load your CSS style sheets,
Source: the comment of [email protected]
rust_analyzer takes forever to load; cargo check
is instant.
I was using Iced as a dependency, but wanted to tweak its source code for some reason, so I jumped into the folder where cargo downloads dependencies, and went into iced_wgpu 13.5 (I think that's the version).
I could make a change, then run
cargo clean -p iced_wgpu && cargo check
in my other project for instant feedback, yet it took rust_analyzer at least 5 whole minutes to stop hallucinating.
Can I disable some functionality of rust_analyzer
? I only use it for jump-to-definition, linting and syntax highlighting; I don't even use autocomplete.
Setup:
-
Desktop that thermally throttles only when both the IGPU and the CPU are under full load, and is cool otherwise.
-
CPU: Intel I5-7500
-
RAM: 8 GiB DDR-4
-
Editor: NVIM v0.11.0-dev | Build type: RelWithDebInfo | LuaJIT 2.1.0-beta3 (I had the same issue with other versions as well).
TLDR
What can I disable in rust_analyzer to boost performance while maintaining jump-to-definition, linting and syntax-highlighting, or what can I do to boost rust_analyzer for big projects in general?
Lemmy's written in Rust?! That's cool.
Debug-time enforcement of borrowing rules, and safety in general.
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.
I think it's just because I can't resist running at full speed whenever I get the chance.
I believe BSD has more servers than macOS.
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?
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.
Actually, crowdstrike has a very bad record regarding this, their services even managed to break Debian servers one time.
Source: some article.
[joke] That must be my friend's laptop. [joke]
Google says you have a Core i7-620M,
No, I have an I5, it even has a sticker, but my I5-7500 desktop has an I7 sticker, so stickers aren't reliable. (I have better evidence than the sticker, trust me)
that’s a Westmere, first-generation Intel HD Graphics, provided everything is configured correctly you should have OpenGL 2.1.
I rechecked 1-2 days after making the post, and Mesa reported 2.1 & 2.0 ES, which is consistent with techpowerup, that website never failed me even when I failed myself.
…and, no, you probably really, really don’t want to use OpenGL 1.x. If your implementation supports shaders at all then it’s going to be some vendor-specific non-standard thing. If you want to do anything 3D then 2.0 or 2.1 is the bare reasonable minimum (2.1 gets you PBOs).
I think shaders are a 3D-only thing? which shouldn't be useful for an isometric game. My favorite game runs on DirectX 3.0a, so I 1.x should work, I guess?
Also I will look up PBOs, that acronym looks cool!
If you’re doing 2D well I don’t think it would be wrong for bevy to have a 2.5D engine that...tightly-timed assembly at that, once upon a time it was considered impossible to get smooth side-scrolling on VGA cards – until Carmack came along...
about 1-1.5 weeks ago I watched some Johnathan Blow hating on programming paradigms and game engines, and to be honest, I had already been viewing pre-built engines as things that produce games that are... familiar... they lack souls, integer/buffer_overflows, and their physics are too well-made. I understand the benefits of a prebuilt 3D engine; I played a 3D game on DOSBox and saved before every jump - except the ones that got me stuck in a wall, in addition to an indie 3D C++ mess on Itch (it's the only game I am excited for its release at the moment, as it's still in beta).
I also saw an attempt at using SDL as a Bevy renderer-backend on Github, and there were problems according to the README.md, but I had lost interest by then, because...
After watching much JBlow, I came away with 3 things:
1- OpenGL isn't worth learning anymore, but don't use SDL to abstract yourself from it, use raylib. That's his opinion, so I decided to build my engine on Macroquad, a raylib-like thing, as using rust-bindgen feels un-ergonomic.
2- ECSes and other pre-forced paradigms are meaningless, just write the game.
3- He doesn't like Rust, which I ignored.
You might think Rust is a bad choice if I like overflowing things, as Rust is safe, but before you is something I wrote semi-seriously (I say "semi-" so I don't get laughed at) a day or two ago:
let mut key = Key::new(500.0, 500.0, 50.0, PINK, unsafe {
let x = &entities[9] as *const Box<dyn Entity> as *mut Box<dyn Entity>;
// SAFETY: This is straight up undefined behaviour, I have a solution
// that is better, simpler and safe, which is seperating the entity list
// and `GameContext`, but I wanted this to exist in the git history.
//
// And before I sleep and forget, the way is passing `&mut door` to
// `update()` manually, and passing `entities` to `walk`.
//
// A `RefCell` wouldn't have complained at runtime anyway.
#[allow(invalid_reference_casting)]
&mut *x
});
As you can see, using anything remotely similar to Arc<Mutex<T>>
would get me accused of having skill issues, which is extremely bad considering I am one of those 'I use NeoVim/Colmack-DH/Rust/Linux BTW' people, so I prefer extreme measures, AKA just regular-C-code style of writing, so it won't be long before I meet some REAL undefined behavior.
If you're interested in my little project, it's about a yellow square in rooms of yellow walls, which I planned to write in 3 days, which I finished today, a few hours after Fajr prayer, one week after I set the deadline to 3 days.
Time to add a 3D turn-based combat system to it for reason, I first need a flat yellow cube, and some doom-like fake-3D enemies.
In case you’re into the arcane craft of the elders, here’s a book.
Thanks, I wish to write assembly sometime down the road, and discover these treasures of knowledge.
Edit: in case you're wondering how I solved the code problem, I started thinking and realized that I wanted to pass a &mut T
to Key.Update()
, but I was also holding a &T
inside of GameContext
, which is impossible in safe Rust, so I changed it hold a &mut T
instead.
They say: "Make it work, then make it right, then make it fast", but maybe they didn't mean jumping to unsafe
when they said "work".
Edit2: I forgot to say something about prebuilt engines. In addition to creating an inconsistency between quality of the engine (physics and UI interactions), and the quality of the game-specific code, they are also very bloated and that's reflected in binary sizes and the performance penalty of being a general-purpose engine.
Macroquad is also an offender of this, as a mere cargo add
bloats the release binary up to 70 whole Mibs, but I managed to shave off 10 Mibs in a few hours by cloning the repo and "forking" Macroquad and it's huge math library, grim
, and "de-bloating" them, and my game would still compile fine, so there's much room for optimizing the binary size, as well as performance, since I am low-level enough to implement my own delta
time.
Also I am crazy about performance, which can be traced back to trying to run games on an HP compaq DC 5800
for 4 painful years, whose GPU is even worse than the laptop's.
PBO
OpenGL 1.5 support?
I know the title looks insane, but hear me out.
I wanted to make a game, specifically an isometric 2.5D RPG game, nothing that fancy.
So I decided to write it in Rust because I... like Enums, or something, and I had already finished the concurrency chapter, so I should be able to hang on.
Bevy seemed like the most complete engine out there, if overkill for my use case, but it's presumably so modular I could de-bloat it adequately, But...
Someone I know has a laptop; it is old.
It is not super old, a Toshiba Portege R700 with a locked BIOS which took me 3 days to trick its Windows 10 boot loader into booting Debian, and accidentally, yet irresponsibly, broke Windows and installed Grub.
There is no reason the thing shouldn't be able to run my hypothetical game. I've personally seen it LANning Sven Co-Op (Half-Life Co-Op) not long ago; the beast could maintain 60FPS for a solid few minutes, before overheating and dropping to 5, but it should hold on better now that I installed GNU/Linux.
So I, just to make sure, ran the command that exposes the OpenGL version used by Mesa, and... Open GL (ES?) 1.5? I surely, need a plan.
I noticed this issue with many indies. Many would-run-on-a-2005-thinkpad games sacrifice this untapped market for features they never use, or worse, go against the artistic vision.
So, since Bevy is modular, can I, a humble would-be-intern, write a rendering backend for the 2003 specification, but not before learning what a rendering backend is?
Or can I, a seasoned searcher, find a premade solution solution for Bevy or any other Rust engine, made to use the 2003 spec, or even the 1992 1.0 spec?
Or would it be worthwhile, to construct an engine of mine?
Edit: Or can I, a man of determination, write an FFI for an existing C solution?
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!
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.
I first misread this as "America" and immediately clicked the link, I am disappointed.
Here's the problem with English: I can not use the word "you", and still have people know whether I am talking to them, or to people like them in general. Some of my "you"s were plural, some were singular. I need some way of coping with this language.
You replied to only 1 paragraph of mine, and decided I am a troll just for suggesting pushing that slavery/"pedophilia" might not be bad, unlike what you were taught.
Here's an article I remembered, it's written by a Christian:
Although you've been lied to, it's not the lies that's the problem. As an adult, you can a lot of the times tell when the media is manipulating you, especially in the last past decade it's gotten so obvious even a Boomer could see it. But what you don't see is how when you were lied to (or told selective truths) as a child, you didn't have the same BS-detector, and that allowed a lot of deep-seated impressions about the world to be formed. So a lot of people who don't believe anything the media says now (rightly) are still mind-cucked. They accept the programming and differ on the details.
I will give you this hint. Basically all of your programmed emotional responses are your enemies. There was an old Moldbug blog post where he talked about even far after "awaking from his dogmatic slumber," he still was surprised that if he saw a group of Nazi LARPers, he would reflexively have a pang of emotional stress, but if he saw Stalinist LARPers, he wouldn't have the same kind of emotional reaction. I think everyone raised in the West has that same programmed reaction. You might know with your head that the communist death count is supposed to be higher and the suppression wider, but it doesn't click because you weren't made sensitive to it.
Edit: no, actually, English isn't the problem, since I appended "guys" to my statement about looking at religion and deciding it's silly, you should know that I wasn't talking about you personally.
I think the biggest flaw is assuming you're among the atheist/agnostic crowd, but even then, I appended that claim with "(I guess)" to indicate that I am indeed putting words in someone's mouth. Maybe you're among the Christian crowd, or maybe you're a... Zionist Jew? Hindu?
For any passing people, the original reply isn't edited, so I am safe from that side of accusations.
The problem solving though?
Then let's talk facts and logic, why is an older person marrying a younger person bad? because you're an educated Atheist/Agnostic (I guess), you must've questioned what you were taught at childhood, unlike those brainwashed and spoon fed Christians.
"Minimum age of marriage", who came up with concept? it surely isn't common sense since it only appeared less than a century ago, so what is it? Some may say that young marriage is a mere relic of the ancients, a result of their underdeveloped logic and science, and that our advanced logic is better and is infallible.
But wait, your people, just mere a century ago saw people 2 centuries a ago the exact same way, and so did those before them, so using our logic, we can deduct that our logic is illogical.
How about statistical data we can speculate, a mere century ago, how did the world look like? there was certainly very little employees, even Christians believed in their book, Javascript did not exist (alhamdulillah), young people were treated as adults, and people older than Israel who to this day live under bombing by your morally superior society were being born; How does something like the depression rate among their youth compare to today? It is reportedly much lower, so how did your generation fail? Surely with all that development of medicine and the like, your people should "logically" be much happier. Are you really strictly superior to the ancients?
"But statistics back then were biased and limited", I see your point, unlike the "infallible" statistics of today, those statistics were surely awful, so let's move to broader ideas.
At childhood, you were spoon fed many ideas, like "Slavery is unacceptable", "The old marrying the young is awful", and "Humans evolved from monkeys". By using the fact that our logic is illogical, we can conclude that these aren't concrete facts. How is slavery involved with almost every product in the average American household? how did the ancients grow up to be healthy adults? Again, ask your grandmother. How is there not, to this day, concrete evidence of humans evolving from anything but slightly taller humans?
How is slavery unacceptable in your eyes, yet you can't live without it? Is the average McDonalds worker treated better that how Islam treats slaves?
How did the ancients grow up to be healthy individuals? Is insisting that you're much better than the ancients truly your way of avoiding depression?
Why is anything that goes against the theory of someone named Darwin, of whose book you know nothing, and whose theory's shortcomings you are ignoring, and whose teachings you were fed in school, and whose ways you never questioned, mere ancient fables?
But there stands, the teachings of Islam, Allah's divine revelation to us, it never failed, for 14 centuries it stood unchanged, yet who reads it could never tell, that this book wasn't written by a scholar of today, how could it so accurately describe today? how did our caliphate, only a mere century from today, stand strong? How didn't we truly fail, until we forgot the words and called it a day?
//////////end
I got a little peotic at the end.
You guys just look at Christians and decide that religion is dumb.
I thought of finishing with some miracles like the 360 joints, the beating of alcoholics and adulterers, and camel milk+urine, but the article south_park_remark reply got too long.
I realize these miracles can be individually dismissed, it is not their individual traits that will persuade, it is their collected wight. It is the fact that the prophet, peace be upon him, never claimed anything that is wrong, unlike scientists of a mere decade ago, and that his medicines did nothing but heal, unlike scientists of a mere decade ago.
This is likely to get downvoted, I say this because mentioning downvotes in your posts/comments usually prevents them from being downvoted (a little psychological thing probably)
Define pedos.
If both parties achieved mental and physical maturity then what's wrong.
Ask your grandmother at what she - or people her age - married at.
This is likely to get downvoted, I say this because mentioning downvotes in your posts/comments usually prevents them from being downvoted (a little psychological thing probably)
My libcosmic calculator is now an MVP.
I have written a calculator in Rust and libcosmic, the design is copied from gnome-calculator; I discovered 2 things:
- I don't like working on UIs.
- 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.
running video games, or any OpenGL thing including 2D games and GPU-accelerated terminal emulators is a bad experience
The thing you replied to; I don't open social media often enough to reply on time, so I sent you a late reply.
Linux kernel Rust coding guidelines are heretic.
>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!(),
}
```
Running double-clicked EXEs with wine-GE instead of wine?
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.
Games take forever to load in heroic
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 & 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.
Compact view in Nautilus (Gnome's file manager)
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)