You can even stream from the PS5 to the Deck too, thanks to Chiaki4Deck (easily installable on desktop mode from the “Discover” app).
You can even stream from the PS5 to the Deck too, thanks to Chiaki4Deck (easily installable on desktop mode from the “Discover” app).
GNOME 46 (currently in release candidate mode and fully releasing later this month on March 20) is adding support for remote graphical logins via rdp:
https://9to5linux.com/gnome-46-to-introduce-headless-remote-logins-via-gnome-display-manager
So you’ll be able to do this pretty soon, after upgrading.
It’ll be in Fedora 40, scheduled for release around April 16.
https://fedorapeople.org/groups/schedule/f-40/f-40-all-tasks.html
Yeah, that’s a big, weird if though. Most modern apps can rely on the runtimes for their dependencies and not have to ship their own custom dependencies.
It’s different from something like AppImage, where everything is bundled (or Snap, where a lot more needs to be bundled than a typical Flatpak, but not as much as with an AppImage).
Additionally, there’s always some level of sandboxing in Flatpaks (and Snap packages) and none at all for RPMs, Debs, or AppImages.
Also, Flatpak dedupicates common files shared across flatpak apps and runtimes, so there isn’t “bloat” like what you’re talking about.
https://blogs.gnome.org/wjjt/2021/11/24/on-flatpak-disk-usage-and-deduplication/
That’s not how Flatpak works.
Flatpak has runtimes, which is where most shared libraries are. There’s a common base one called Freedesktop, a GNOME runtime, a KDE runtime , an Elementary runtime, and more. (The GNOME and KDE ones are built on top and inherit from the Freedesktop base runtime.)
https://docs.flatpak.org/en/latest/available-runtimes.html
Additionally, at least for Flathub, they have shared modules for commonly used libraries that aren’t in runtimes. (Many are related to games or legacy support like GTK2.)
https://github.com/flathub/shared-modules
Lastly, some distributions are building their own runtimes and apps on top, so the packages they build are available as flatpaks as well. This is the case for Fedora, Elementary, Endless, and others.
It certainly is a differentiator: uBlock Origin already works best on Firefox. https://github.com/gorhill/uBlock/wiki/uBlock-Origin-works-best-on-Firefox
And when Manifest v3 is fully enforced in Chromium (current date is slated to be July 2024), then the more restricted uBlock Origin Lite would need to be used instead.
(I’m not sure if Arc will fully adopt v3, but they might not have a choice at some point in time.)
The Lite version still works well considering all the restrictions, but has a lot of limitations: https://github.com/uBlockOrigin/uBlock-issues/issues/338#issuecomment-1507539114
- Filter lists update only when the extension updates (no fetching up to date lists from servers)
TL;DR: The way uBlock Origin works on Firefox right now is already better, but if Arc has to go along with Manifest v3 in Chromium in a few months, then it’ll be even more of a differentiator.
It also looks like they’re even thinking about rolling out their own tracker blocker (instead of using uBlock Origin) as a result of the Manifest v3 changes:
https://twitter.com/joshm/status/1728926780600508716
We’re rolling our own native @arcinternet Ad & Tracker Blocker in 2024 (since Chrome is restricting them)…
Any creative ideas for how we can go above and beyond, and reimagine the category?
Remove GDPR/Cookie Consents? What else?
Yeah, some of the smaller models are even reasonable on my old laptop in CPU mode.
General rule of thumb: The larger the model, the better it is. But not necessarily. 😉 I’ve found zephyr
and mistral
are both quite good for a tradeoff and work on CPU. Of the ones that really need more RAM and/or a GPU with a lot of vRAM, mixtral
seems like the best.
Additional fun is to use a Modalfile
(which is like a Containerfile
, but is a recipe for models instead of containers) to customize a local model on top of one of the existing ones.
For a simple one to demonstrate, I have a system instruction to output everything in the form of the poem “This Is Just To Say”, but customized per topic.
It really works best with mixtral
(I’ve tried other ones, especially smaller ones):
FROM mixtral
PARAMETER temperature 1
SYSTEM """
You will respond to everything in a modified poem in the form of "This Is Just To Say" by William Carlos Williams, except change all the specifics to be what the subject is. Do not say any other text. Try to make the syllables the same as the original and use the same formatting.
You can expand in length in responses when there is too much to talk about, but keep the format and style of the poem.
Do not respond in any other way.
For reference, the full poem is:
I have eaten
the plums
that were in
the icebox
and which
you were probably
saving
for breakfast
Forgive me
they were delicious
so sweet
and so cold
"""
Yes, you just instruct the system with natural text like that and it (usually) abides. I tried it without the poem being referenced inline, and it mostly worked fine… but it works even better being mentioned in the file.
I have that saved in ~/Projects/ollama/
as Modelfile.fun-plums
I run the server almost as above, but now also pass in my ollama project directory as a mounted volume with z
(for SELinux mapping)… don’t forget to have run sudo setsebool container_use_devices=true
first, else it won’t work:
podman run --detach --replace --device /dev/kfd --device /dev/dri --group-add video -v ollama:/root/.ollama -p 11434:11434 -v ~/Projects/ollama:/models:z --name ollama ollama/ollama:0.1.24-rocm
(You can run this command if you already have the server running. It will replace it with the new one. This is for AMD. You’d want to use the NVidia or CPU container if you don’t have an AMD card. The CPU container is the fasted to download. The version here is newer than the one for AMD that I listed above, so it might be a multi-gigabyte download if you don’t have this new one yet. The important and new part is ~/Projects/ollama:/models:z
)
Then, create the model. This will be almost instant if you already have the base model downloaded (in this case, mixtral
), otherwise it will auto-download the base model:
podman exec -it ollama ollama create fun-plums -f /models/Modelfile.fun-plums
(The path to the model in this command is the internal path from the point of view within the container.)
Then, you run it like any other model.
Here’s me running it, and bringing up the topic of leftover pizza.
$ podman exec -it ollama ollama run fun-plums
>>> pizza
I have consumed
the pizza
that was on
the counter
and which
you were likely
saving
for lunch
Forgive me
it was satisfying
so tasty
and so warm
You can also paste the text from the reader mode of an article and it’ll summarize it with a poem based on that one. 🤣
For example, copying and pasting the text from https://www.theverge.com/2024/2/10/24068931/star-wars-phantom-menace-theater-showings-25th-anniversary-may resulted in:
I have watched
the Phantom Menace
that was on
the silver screen
and which
you may have
missed or
disliked once
Forgive me
it has charm
a new sheen
and Darth Maul
Some of the AI related apps I’ve been using that are both Free Software and offline (where it runs on your computer without using network services in the cloud) are:
OCR: “Frog” can take screenshots, select images, accept drag and drop, and you can paste an image from the clipboard. It’ll read the text on the images and immediately have a text area with the result. https://flathub.org/apps/com.github.tenderowl.frog — it’s powered by Tesseract. Note: The completely optional text-to-speech that Frog has does use an online service. But the rest is offline.
Speech to text: “Speech Note” does text to speech, speech to text, and translations… all locally on your computer, and it supports GPU acceleration (which isn’t needed, but it makes it a little faster). https://flathub.org/apps/net.mkiol.SpeechNote — This is basically the all-in-one “Swiss army knife” of ML text processing. Thanks to being a Flatpak, you don’t have to do anything special for the dependencies. It’s all taken care of for you. It also has tons of different models (for different voices, different backends) all available from within the UI, which just needs a click for downloading.
Upscaling images: There are two that do something similar, using some of the same backends. A nice and simple one is “Upscaler”. https://flathub.org/apps/io.gitlab.theevilskeleton.Upscaler Another one that’s cross platform is “Upscayl” https://flathub.org/apps/org.upscayl.Upscayl — these both use ESRGAN and Waifu2x in the background.
Closed captioning: “Live Captions” uses an ML model to transcribe text realtime. It’s wonderful for when a video doesn’t have subtitles, or when you’re participating in a video call (which might also not have CC). There’s also a toggle mode that will transcribe based on microphone input. The default is to use system audio. https://flathub.org/apps/net.sapples.LiveCaptions
Web page translations: Firefox, for the past few releases, has the ability to translate web pages completely local in-browser. It does need to download a small model file (a quantized one around 20 megabytes per language pair), but this happens automatically on first use. All you need to do is click the translate icon (when it’s auto-detected) or go to the menu and select “Translate page…”. Firefox is located in your distribution already (and is usually installed by default in most Linux distributions) and is available as an official package from Mozilla on Flathub as well. Newer versions keep improving on this, improving speed (it’s pretty quick already), improving accuracy, improving reliability (sometimes you have to try to translate a couple of times on some pages), and adding languages. But what’s there in the release of Firefox is already great.
While all the above are graphical apps and on Flathub (some may have distro packages too), there are some additional AI/ML things you can run on Linux as well:
You can run Ollama in a container to make it even easier. Even a Podman container on your user account works. (You don’t need to set it up as a system container.) The instructions for Docker work on Podman (just swap the docker
command for podman
instead).
While the official instructions only list CPU (which is fine for some of the smaller models) and NVidia, it’s also possible to use an AMD GPU too:
# Enable device as user (run once per boot)
sudo setsebool container_use_devices=true
# Set up the ollama server for AMD acceleration (run once per session)
podman run --pull=always --replace --detach --device /dev/kfd --device /dev/dri --group-add video -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:0.1.22-rocm
# Command-line interaction (run any time you want to use it — the last part is which model you want to use)
podman exec -it ollama ollama run llama2
llama2
is the default ML; there are so many others available. Mixtral is a good one if you have enough vram on your GPU. Whatever you specify, it will auto-download and set it up for you. You only need to wait the first time. (The ROCm version of takes a while to download. Each model varies. The good thing is, it’s all cached for subsequent uses.)
If you want a web UI like ChatGPT, then you could also run this instead of the command line interaction command:
podman run -d --replace -p 3000:8080 --add-host=host.docker.internal:host-gateway -v ollama-webui:/app/backend/data --name ollama-webui ghcr.io/ollama-webui/ollama-webui:main
…and visit http://localhost:3000/
When done, run podman stop ollama
and podman stop ollama-webui
to free up resources from your GPU.
There are also integrations for text editors and IDEs, similar to GitHub’s CoPilot. Neovim has a few already. VS Code (or VS Codium) has some too (like twinny and privy).
Krita, GIMP, and Blender all have plugins that can interface with some of these too (usually using a SD Automatic111 API).
For Stable Diffusion on AMD, you need to have ROCm installed and might need to set or use an environment variable to make it work with your card. Something like:
HSA_OVERRIDE_GFX_VERSION=11.0.0
or HSA_OVERRIDE_GFX_VERSION=10.3.0
(depending on your GPU). Prefixing means just putting that at the beginning of the the command with a space and then the rest of the command. Setting it as a variable depends on your shell. You might need to export
it for some (like for bash). Prefixing it is fine though, especially when you use ctrl+r to do a substrang search in your shell history (so you don’t need to retype it or remember silly-long commands).
As using these image generating apps pulls down a lot of Python libraries, I’d suggest considering setting up a separate user account instead of using your own, so the app doesn’t have access to your local files (like stuff in ~/.ssh/, ~/.local/, your documents, etc.). Setting up containers for these is not so easy (yet), sadly. Some people have done it. And they do run in a toolbox or distrobox podman container… but toolbox and distrobox containers don’t really contain so much, so you’re better off using podman (with a “docker” container) directly or running it as a separate account for some type of isolation from your user account files.
Everything else above is at least contained (via containers or Flatpak) to some degree… but stuff locally via pip installs can do anything. And it’s not just hypothetical either, for example: PyTorch nightly was compromised for a few days on Christmas of 2022.
There are some graphical apps on Flathub for connecting to Stable Diffusion and a ChatGPT AI (which ollama now has)… but in the course of setting them up, you basically have a web and/or text-based UI to interact with.
You can set up mount points on Linux, at least in GNOME, very easily. (It’s even fully automatic for external disks.) I’d be surprised if it isn’t as easy in KDE and other desktops too.
The problem here (at least from what it sounds like) isn’t setting up mount points. The problem is fixing an incorrect fstab on the disk that’s causing the system to hang on boot.
(This isn’t a typical situation, which is why I also asked about how the partition was added to the system.)
Good point! GNOME Disks can do this, actually. I didn’t think about that.
(Edit: However, I think it’ll just edit the /etc/fstab of the running system. In other words, the one of the live session, not the one on the installation.)
My first attempt to try to fix something like this would be to:
sudo dnf install gnome-disks
to install it temporarily on the live session.)I’m also wondering: How did you add the Windows partition to Fedora? Was it from within Fedora’s installer (aka: “Anaconda”)? Or did you add it in a different way?
(BTW: I use Silverblue and have a long history with Fedora. 😁)
Also: Inspector Gadget.
An international US, French, and Canadian production.
Penny (the “hacker” niece) and Brain (the intelligent dog) solve all of the cases that Inspector Gadget (cyborg cop) bumbles through, even though he’s essentially RoboCop with gimmicks.
Yep, ArcMenu (@ https://gitlab.com/arcmenu/ArcMenu which is the maintained one, last updated days ago instead of years ago) has a ton of different layouts which can mimic any version of Windows, and so much more.
When using GNOME, use the “Extensions Manager” app (from Flathub) to search for “ArcMenu” and install it, then you can configure it there in the Extensions Manager app as well. In the ArcMenu configuration, go to layouts and select the modern group to see something like the screenshot above. (The previews are generic wireframe sketches; the result will look much more high fidelity.)