62 Replies
Ok, so crazy idea
cc @M2 @EyeCantCU @bketelsen
when m2 wanted atuin on the host, he did it this way:
and then I looked at the bling we're shipping in bluefin-cli ... and they're all freaking rust apps
we could do zoxide, uutils, eza, fd, etc just by copying the binaries over lol
Yepp. That's why i did it with atuin
basically, we don't need the systext for these, we can just copy the binaries, toss the config on the host, and then go sit on a beach?
I would hesitate to do uutils but the others absolutely
that's fine, that's not a deal breaker
but I think people loved that other bling, and this lets us put it on the system and leaving brew for their stuff, what do you think?
ripgrep is rust too, nice!
Fine. Basically merge the cli experience from bluefin-cli.
yeah
what do you think?
and it comes from wolfi so it'll be nice and fresh
ok I'm going to PR the binaries. 😄
Very doable.
Maybe don't do the aliases and have a ujust to drop in aliases to profiles
I'm kinda wanting to just atuin + bling it up by default
like, just turn it all on
but that might be too much, dunno
i'm not a fan of turning it on by default
I guess we could do eza by default. I think zoxide supports everything that cd does (at least I think it claims it handles it)
Aliases shouldn't affect scripts
we'll be inundated with questions about how to remove it
Yeah
ship it but let people call a just command to bling it up
ok
ujust bluefin-cli
lol?all the fleek configs are easy to drop in /usr/share/ublue-os and copy or symlink into home
sold
you started the thread with "crazy idea" but I wondered long ago why we didn't do this where we could
Ripgrep is rg as the name
Just realized....
Those are all going to fail
fixed
sec, gotta respin ISOs, keep talking
let the rg build fix first?
also realized, I want to remove a bunch from packages.json. Like I'd rather get restic/rclone from wolfi than fedora, etc.
For some of these I wonder if steering people towards containers maybe better? Layering is the easy button, but unsure if that's too odd of a pattern for everyone?
But I do like the idea of getting things from Wolfi instead of rpm-ostree for cli stuff.
I was doing a video today
and then people were like "we need a video on how to use containers, etc."
and I found like hours of devcontainers videos, tutorials, etc.
so I'm wondering if curating some content that way is the way to do it?
https://github.com/ublue-os/bluefin/pull/1001/files ok last one
Yeah the how to use dev-containers was helpful.
I think people don't realize a lot of docker videos are directly translatable.
yeah
if i had a bunch of money I'd just pay some youtuber to do a walkthrough of all this stuff stuff but using bluefin
https://www.youtube.com/playlist?list=PLj6YeMhvp2S5G_X6ZyMc8gfXPMFPg3O31
example
Rclone might need rclonefs
And it provides a mount helper as well.
oh it does, let me just revert that one
And I actually don't think we have it in bluefin-cli currently
it's in wolfi so we may need to add it
Yeah revert that for now. I think we grab the rust stuff right now.
We also may need to grab completions as well
pushed
I'm off to bed. But stoked to have zoxide and eza all on my system now
yeah we might as well just own it
like, people loved that setup, so did I
ok I pushed, I'll leave the PR open!
(wondering if the thing RJ had for building on the spot with wolfi --- like I wonder if we could just build these with melange and copy them into place with the right completions, man pages, etc.
also can we also have
ujust bluefin-cli
call the brew step too? I'm thinking just one knob to crank it up instead of two.This is freaking awesome. I'll give it a better look in the morning
lol for the same reason homebrew path.
hahahahah
Is upstream brew informed about this issue?
Maybe those instructions can be universal?
I'm unsure if brew sees it as an issue.
Brew expects it to be first in path. Putting it last in path makes brew doctor throw a warning.
looks like the restic file from woifi doesn't exist
ok let's chat about maintainability and standardization
the
atuin
target of the justfile modifies .bashrc, .zshrc, and config.fish directly
I think this is a mistake in the long term
the stock .bashrc file has this block
i think anything and everything we do to modify user configs or enable our -cli functionality should use this pattern. (I don't know if it exists by default for fish and zsh but can easily be added)
if we put configs in a well known place it's easier to change them when we update something, and easier to document + support questions
Also we could copy files into these directories rather than symlink. This is $HOME and I expect to own itI like the drop in files and use that pattern a lot, but people remove that block or do odd things like having only a .bash_profile.
I would prefer going the drop in route but we saw that a lot of people don't actually use it.
I like copying better than symlinks but then we have to do logic for updates. In my mind if we go copy route we shouldn't expect to be able to edit that file.
PR fixed, I'm sorry I thought I did that last night, my bad.
Looks like fail right now is due to kernel update needing to trickle through and no longer missing stuff
Nope rclone is back. That needs to be removed as well.
sec, sorry been trying to get to the bottom of the kernel skew
you want them both out?
on it
ok all set
Rclone isn't on bluefin-cli toolbox yet. Restic package doesn't actually provide the binary.
But go, rust, and other statically compiled packages would be good to consume with this model. If we are doing this we may want to make an image that is more suited for doing copy from actions.
We may want something for completions as well. If we do the cleaner image we could do a copy / and have everything with completions on the same layer.
nod
I added rclone to the toolbox but removed it from bluefin anyway (since that failed builds anyway)
If I can find some time this week I'll see if I can put together a container to make this copy over cleaner.
But brew + this means I may consider moving from dx to plain bluefin (VM/incus is still kinda needed though)
@M2 I haven't installed incus since I paved this machine for the new isos, but I think I'm going to need it. I found an app I couldn't build with brew today.
I may consider seeing how bad incus inside a rootful podman container goes if I switch away from dx.
I'd like to see what RJ says, if it's wolfi maybe there's some melange building step we could do so it builds when we build the container or something?
though I suppose we could do that in a container and it'd still be fast
but I found a 1:1 mapping so far from bluefin-cli
but I also wonder if like a melange step could also do the rest of the stuff in the package, autocompletions, man pages, etc.
(I could be totally wrong though)
@EyeCantCU in here
yeah I wonder if inshellisense is worth the pain
like maybe we should get the workflow in place instead
It probably isn't. It's really cool, but it's still in an alpha state anyway. When it actually has a stable release, there may be a chance I could land it in Wolfi
yeah we can revisit later, it's probably better to get ready for when syext stuff lands
like I wonder if we could also produce the raw files from the toolboxes
I don't see why not. That would be awesome
yeah then we could have our "wolfi OS" on the bare metal, we could effectively replace the user-facing parts of the OS.
then I could just daily drive apk or brew, all isolated in there.
AND it'd be the same package versions as .... the images you use in the cloud.
then we can remove a ton of stuff from the images and just have it in the wolfi systext
stableish OS with a recent kernel + a rolling userspace. It's perfect.
I've been showing the images and toolboxes we build to people at Chainguard and they love it. Going as far as Wolfi just being the default way to install most packages and interact with the CLI would be incredible
You're right - it would be perfect. I don't know of many other projects going to this length to provide an experience this good out of the box. It's just unreal to me
yeah it's why we now call @bketelsen The Reclaimer of the Final Shape.
Oh, I think it was Architect of the Final Shape. Sorry I'm getting all the minibosses mixed up.
hoping everything we need is in systemd 256
Lmao, fitting title. Really hope so 🙂
Reclaimer of the Final Shape, Architect of Awesomeness, First of His Name
after I finish this blncus, i'm starting on the SysextManager
now that Gnome is my beyotch