Open KyleGospo opened 1 year ago
Suggestions:
Utilities that would likely be helpful:
Things that would be cool, but totally not necessary/probably out of scope:
That would seem interesting! Getting JetBrains IDEs installed through a copr is a bit of a hassle and there doesn't seem to be a way to make JetBrains Toolbox run on a specific Distrobox container (obviously excluding the AUR package), because of how it installs, it can only install on the host, where there won't be any (other than probably Python) SDKs installed.
That would seem interesting! Getting JetBrains IDEs installed through a copr is a bit of a hassle and there doesn't seem to be a way to make JetBrains Toolbox run on a specific Distrobox container (obviously excluding the AUR package), because of how it installs, it can only install on the host, where there won't be any (other than probably Python) SDKs installed.
The challenge here is, you can't throw all of them into one distrobox image (nor do people need all of them... usually) as the size is too big for GHCR unless you do it after the fact
One solution would be using distrobox assemble for each JetBrains IDE, keeping the environment completely separate from one another, installing everything while setting the image up on the host
Another alternative is one distrobox instance that provides everything needed by each IDE with just scripts that install whatever IDE you need
Jetbrains has it's own "toolbox" that people have been using and so far the feedback has been positive: https://universal-blue.org/images/bluefin/developer-experience/#jetbrains
Jetbrains has it's own "toolbox" that people have been using and so far the feedback has been positive: https://universal-blue.org/images/bluefin/developer-experience/#jetbrains
Toolbox works great for that but these are all installed as AppImages that rely on the host to provide individual SDKs. Providing a path isolated from the host that's reusable anywhere could be an awesome way of managing that. Brainstorming ways of doing that
As a reminder, distrobox has a --home flag that lets you specify an alternative home directory for the container user, which, coupled with distrobox-enter -n (containername) -- (executable in absolute location)
, may solve the issue. Distrobox can export any binary a container can see.
Integration with game engine like Unity,Godot,and maybe Unreal Vscode pre-installed will be huge plus and maybe Docker too?
Integration with game engine like Unity,Godot,and maybe Unreal Vscode pre-installed will be huge plus and maybe Docker too?
what advantages does docker have over podman?
not quite sure if those are really "advantages"
more compatible with stuff for example i tried to use devcontainers on bluefin image and it just PITA, meanwhile docker works ootb
I would like a distro that has preinstall the following software:
Software I'd like to see that I haven't seen others post:
I would suggest to have all the necessary stuff that are common for the majority of developers and are commonly used (podman, vscode, configs etc). As for the rest, they can be installed seperately.
I would imagine, for example, i as an android developer, if i wanted android studio ready, maybe i could do ujust android-studio
Integration with game engine like Unity,Godot,and maybe Unreal Vscode pre-installed will be huge plus and maybe Docker too?
what advantages does docker have over podman?
For me it's just a requirement for collaborating with others who all use Docker.
I would definitely appreciate an easy way to get docker up in Bazzite. It works in Bluefin out of the box, but getting docker working properly is a pain on just about every other atomic system that I've used.
IMHO VMware, VirtualBox, and anything that requires kernel modules should be built in. At least the kernel module part - so that when user needs those tool, they can just be installed from a menu/command.
As long as that's done, I think everything else can just be thrown to different yafti menu/sub-categories.
Why not start with only whatever -dx adds to Bluefin? Related: https://github.com/ublue-os/bluefin/issues/1321
Extra
repository.Nodejs
Java gui
There certainly needs to be a scope that needs to be referred to.
There's many suggestions of general development tools, rather than what I thought this was intended to be - a game dev image.
If we add everything from Bluefin DX, then we've just replicated Bluefin.
There certainly needs to be a scope that needs to be referred to.
There's many suggestions of general development tools, rather than what I thought this was intended to be - a game dev image.
If we add everything from Bluefin DX, then we've just replicated Bluefin.
Would that really be the case? Because Bazzite has a lot of things I wanted for Bluefin DX like OpenRazer, Emudeck, OpenTabletDriver, Sunshine, Waydroid, etc. Whereas Bluefin has things I want like Jetbrains toolbox. cockpit, Gnome VRR, VFIO, ollama, etc.
Im thinking about making my own image or configuration and I dont even know which would be the correct base because both seem to have what I want.
I want bluefin-dx but on bazzite. To me that would be the main base for gamedev. I wouldn't include any software that doesn't require configuration in order to fully function. At a minimum: I need devcontainers working out of the box with vs code.
I want java and nodejs
I want java and nodejs
for java and nodejs you can use homebrew
I want java and nodejs
for java and nodejs you can use homebrew
Java isn't on homebrew
I want java and nodejs
for java and nodejs you can use homebrew
Java isn't on homebrew
1 Tools for making Minecraft mods 2 unreal engine 4 and 5 3 VS code 4 Java 5 a version of bazzite that's lighter wight
My bad take.
Basically everything that's been mentioned can be run via containers/flatpak/brew. While having your editor on the host is nice, it doesn't actually need to be there. For example docker, incus, and libvirt will all happily run inside of a rootful container. Distrobox makes it even easier. It sounds more like people just want an easy button for configuring an option not necessarily it to be shipped on image.
What is the scope of -dx on Bazzite?
1 Tools for making Minecraft mods 2 unreal engine 4 and 5 3 VS code 4 Java 5 a version of bazzite that's lighter wight
The current version is as light as it will get from a software standpoint.
DX will naturally be heavier.
My bad take.
Basically everything that's been mentioned can be run via containers/flatpak/brew. While having your editor on the host is nice, it doesn't actually need to be there. For example docker, incus, and libvirt will all happily run inside of a rootful container. Distrobox makes it even easier. It sounds more like people just want an easy button for configuring an option not necessarily it to be shipped on image.
What is the scope of -dx on Bazzite?
Intended scope of a bazzite-dx is inherently different from bluefin-dx. Our focus would be to have a game developer workstation that's ready to use from install.
My bad take. Basically everything that's been mentioned can be run via containers/flatpak/brew. While having your editor on the host is nice, it doesn't actually need to be there. For example docker, incus, and libvirt will all happily run inside of a rootful container. Distrobox makes it even easier. It sounds more like people just want an easy button for configuring an option not necessarily it to be shipped on image. What is the scope of -dx on Bazzite?
Intended scope of a bazzite-dx is inherently different from bluefin-dx. Our focus would be to have a game developer workstation that's ready to use from install.
wouldn't the logical approach to this simply be bundling common utilities with as many game engines as possible, so pretty much anyone can just boot it up and start working with their engine of choice?
That's correct, but we can't appeal to everybody. That's why this is open for comment, we need to identify what the common tools are and what the uncommon tools are, make sure the common ones are installed where it makes sense, and everything else is easy to install when needed.
So, I do a lot of noodling on my spare time. Professionally I'm a senior gameplay engineer, so most of the things I reach for are C++ related when I want to do gamedev noodling.
In trying to get my at-home development workflow set up, I've been bouncing into quite a few issues that I think a DX image can solve.
VS Code on flatpak is a nightmare to work with. Putting into distrobox runs into issues doing gamedev with running 3d graphics.
I would really like to see VS Code, CMake (and the vscode cmake extension), and llvm/clang working together out of the box. Together they form the backbone of my development workflow, and getting them working in bazzite normally is kind of janky.
Outside of that, I also noodle a lot with Godot, and with .net workflows. Installing .net is kind of pain, and having that come pre-installed would be nice.
EDIT: For folks building the -dx image, generally what I'm looking for working out of the box is:
VS Code, C/C++ Extension pack
When you open a folder with a base CMakeLists.txt, VS Code should be able to detect that and prompt you with what compiler kits you want to use. While I prefer to use clang exclusively, I'm okay with this kit scanning also showing me gcc. Base bazzite with vscode flatpak does not do this by default.
On the bottom toolbar, after CMake successfully generates project files, I would like to be able to press the Build, Debug, and Run buttons without needing to configure anything after setting my kit (it works this way in windows). Base bazzite does not do this by default, and requires manually setting clang paths to get the build and run buttons to work. I can't seem to get the debug button to work, but setting a launch.json does work. Given the button on the bottom toolbar is the "intended" workflow, that should work.
Another issue is vscode with flatpak on base bazzite 1) doesn't log into github properly (I have to cancel the login window and do the self webserver option), and 2) doesn't save logins.
I can go over this flow in more detail if needed (also im on discord, same username, if that's needed)
Why doesn't brew install cmake
work for you? I'd be reluctant to add anything already available on brew or Flathub.
Why doesn't
brew install cmake
work for you? I'd be reluctant to add anything already available on brew or Flathub.
This is what I do. Vscode picks it up no problem with the cmake extension for me. I may have added homebrew to my argv.json PATH.
Why doesn't
brew install cmake
work for you? I'd be reluctant to add anything already available on brew or Flathub.
It worked okay, but a lot of features on it didn't work. cmake wasn't able to find anything, i had to set everything up myself. lldbg still doesn't work for me. This would be nice for the -dx image to just have available or set up for me without having to google and hope i find something relevant for bazzite's setup.
Instead of making "bazzite-dx" be game focused (locking out a simple -dx experience for those of use who play games) opt for a model where we can bring in groups of tool packages. I note the .devcontainer model supports feature sets, and this could be leveraged. Then you could define the game-dev experience, the web-dev, the server-dev, etc, and they can be brought into play as desired.
To that end, I'd recommend devpod or something much like it: .devcontainer aware, can use that to set up a containerized development environment. Container, I think, being the operative term.
However it is done, I'd recommend an approach that focused more on getting people indoctrinated into container-centric development practices and tooling. There are a lot of devs out there who have not touched them.
Suggestion:
rpm-ostree install openssl-devel -- --allow-replacement
I'd the packages this command installs to be a thing by default so I don't have a pain trying to figure out why rust isn't working
I would like Zed on there, there is a Flatpak, but as of now, Nvidia on Wayland will not work, so Zed rpm would be nice
I'd prefer a pairing of bazzite-dx
and bazzite-gamedev-dx
, where bazzite{,-gnome}-dx
closely follows {aurora,bluefin}-dx
, and bazzite{,-gnome}-gamedev-dx
builds from that to include tools specific to gamedev. I understand wanting to give people an easy way to start game development on Linux, but my use case for bazzite-dx
would be just doing some general development on the same laptop I play games with. I could use aurora-dx
for that, but I'd like the gaming features in Bazzite.
Additionally, building bazzite-gamedev-dx
on top of bazzite-dx
should make it both easier to keep in sync with aurora-dx
, make it more apparent to those curious what tools are added for gamedev, and even allow bazzite-dx
to ship while bazzite-gamedev-dx
is still being planned.
@Sparkrai has been building unofficial bazzite-dx
images using this approach at https://github.com/Sparkrai/bazzite-dx.
I'd prefer a pairing of
bazzite-dx
andbazzite-gamedev-dx
, wherebazzite{,-gnome}-dx
closely follows{aurora,bluefin}-dx
, andbazzite{,-gnome}-gamedev-dx
builds from that to include tools specific to gamedev.
This. Perhaps the installation of dev tools could be implemented in ujust like ujust setup-dx-edition
or for each tool seperately (also mentioned in a previous reply). It would be more universal.
I'd prefer a pairing of
bazzite-dx
andbazzite-gamedev-dx
, wherebazzite{,-gnome}-dx
closely follows{aurora,bluefin}-dx
, andbazzite{,-gnome}-gamedev-dx
builds from that to include tools specific to gamedev.This. Perhaps the installation of dev tools could be implemented in ujust like
ujust setup-dx-edition
or for each tool seperately (also mentioned in a previous reply). It would be more universal.
I would just like to +1 this approach. Without it, this would introduce many image variants: bazzite * nvidia * dx * desktopenv * etc
in the future. Not sure how the community feels about that.
Currently Sparkrai's bazzite-dx
image is interesting but doesn't include the nvidia images as of yet. When I find some time, I'd like to see if I could contribute to this effort.
vulkan debug layers would be really nice on a bazzite-dx
Similarly to Bluefin-DX, we'd like to ship DX images which come preconfigured with common game development and debugging tools. If you're a developer we'd love to hear what you might find useful in an image like Bazzite.