Between wanting to do more with local LLMs, wsl annoyances, and the direction tech companies have been going lately, I think it’s time I start exploring a full Linux migration
I’m a software dev, I’m comfortable in the command line, and I used to write the node configuration piece of something similar to chef (flavor/version agnostic setup of cloud environments)
So for me, Linux has always been a “modify the script and rebuild fresh” kind of deal… Even my dev VMs involved a lot of scripts and snapshots. I don’t enjoy configuration and I really hate debugging it, but I can muddle through when I have to
Web searches have pushed me towards Ubuntu for LLM work, but I’ve never been a big fan of the window Managers. I like little flourishes like animation and lots of options I can set graphically, I use multiple desktop multiple monitors
I’ve tried the one it comes standard with, gnome, and kde (although it’s been about 5 years since I’ve last given them a real shot).
I’m mostly looking for the most reasonable footprint that is “good enough”, something that feels polished to at least the Windows XP level - subtle animations instead of instant popups, rounded borders, maybe a bit of transparency here and there.
I’m looking at Ubuntu w/
-
kde w/ plasma (I understand it’s very configurable, I don’t love the look and it seems to be a bigger footprint
-
budgie (looks nice, never heard of it before today)
-
kylin (looks very Windows 10 which is nice, a bit skeptical about the Chinese focus)
-
mate (I like the look, but it seems a bit dubiously centralized)
-
unity (looks like the standard Ubuntu taken to it’s natural conclusion)
-
rhino Linux (something new which makes me skeptical, but pretty and seems more like existing tools packaged together which makes me think the issues might not impact actual workflow)
-
anything the community is big on for this, personally I’d pick opensuze, but I need to maximize compatibility with bleeding edge LLM projects
My hardware and hard requirements are:
- nvidia 1060ti
- ryzen 5500u
- 16g ram
- 4 drives nearly full, because it’s a computer of Theseus running the same (upgraded) vista license that came with the case like 15 years ago
- multi desktop, multi monitor
- can handle a lot of browser Windows/tabs
- ideally the setup is just a package mana ger install script with all my dependencies
- gaming support would be nice, but I’ll be dual booting for VR anyways
I’ve been out of the game for a while, I’d love to hear what the feeling is in the community these days
(Side note, is pine as cool a company as it seems?)
My recommendstions would be -
- Linux Mint / vanilla debian
- Fedora / Nobara
- Opensuse tumbleweed (Like fedora, but rolling release and has btrfs snapshots configured out of the box)
- Endavour OS / vanilla arch ( if you want to configure everything manually)
- NixOS (very different distro, you can configure your entire system with a single file)
People have a misconception that Linux Mint is a newbie distro but don’t let that stop you from using it. It’s quite stable and will serve you very well.
For Desktop Environment -
You can try out XFCE, it doesnt look great out of the box, but it has all the options you’ll need to make it look to your liking.
Then there is also Cinnamon, it doesn’t have many configuration options but is really nice in general. The flagship version of Linux Mint comes with Cinnamon.
I agree with those recommendations recommendations but perhaps the Debian based Mint instead. I am not aware of any major change Ubuntu has made to Debian other than DE and spyware. Also budgie desktop looks great and never broke / broke anything for me.
I’ve been using Mint as a daily driver and it’s the first distro/de that has worked as a full replacement. Everything working out of the box, though I changed the default Nvidia driver from the open source to the proprietary one (and Mint even provided a handy utility for that). My dual monitor setup works great.
I don’t even dual boot for gaming–with Lutris, most things work right away or with a little tweaking. Though admittedly I don’t play the newest games.
All the benefits of Ubuntu, with flatpak and a nice DE.
Seconded. If you want something that just works so you can get on with your other stuff, Mint fits the bill perfectly.
I’m really happy with Fedora Workstation. I actually think Gnome is pretty great these days.
From how you’ve described modifying your distro, that’s literally NixOS. Your entire config is declared in a git repo, when you update the system it rebuilds it from that repo. But you’ll have to learn the nix language, and it’s not a easy-to-use, beginner-friendly distro.
You’ll probably want KDE as it has the most options to set graphically and still just works out of the box. It has a theme store so you can just try a few different ones.
The footprint is still about a hundred times smaller than windows, so don’t worry about that.
For a distro, I’d recommend not using ubuntu because it tries to force snaps on its users and they cause a ridiculous amount of issues. Especially if you want to do anything in python.
- “I don’t enjoy configuration and I really hate debugging it, but I can muddle through when I have to”
- declarative system like NixOS – one master config file you keep backed up – if something goes wrong, you can rollback to a previous config or do a full rebuild with the backup config
- [The Linux Experiment] NIX OS: the BEST package manager on the MOST SOLID Linux distribution
- “but I’ve never been a big fan of the window Managers”
- browse through [email protected] – Linux has a LOT of window managers and most are (overly) customizable
- as for “bleeding edge” distros
- NixOS (above)
- Debian Sid (unstable branch) – Ubuntu is based on Debian but is community run, you’re not subject to the whims of Canonical’s choices
- Arch or EndeavourOS (Arch based) – most of the problems people have is indiscriminate use of AUR (user packages) rather than sticking with official package channels
- openSUSE Tumbleweed – rolling release channel of openSUSE, uses btrfs snapshots for rollback and recovery
Here is an alternative Piped link(s): https://piped.video/watch?v=DMQWirkx5EY
Piped is a privacy-respecting open-source alternative frontend to YouTube.
I’m open-source, check me out at GitHub.
- “I don’t enjoy configuration and I really hate debugging it, but I can muddle through when I have to”
Since you want GUI config go with OpenSUSE. it has Yast2-gtk GUI for all admin config, server config, software install, etc. And if you mess anything up you do a boot from previous snapshot to get back to normal operation, if all is good issue snapper rollback command, and that snapshot is now your default boot. (No need to diagnose what is wrong, more time being productive) if you can’t find a package in the GUI search (of default repos) then software.opensuse.org has OBS community and experimental packages (like arch AUR). During the install summary you can go into software details and remove all, or any packages you want, or add…so you don’t have to do the full install of everything if you like more minimal system.
I really enjoyed my time with tumbleweed some time back. The installer has a lot of useful options but it might be a bit daunting to new users. The installer could use a UI/UX improvement.
It is a lot of info. When I was new to it I did a few installs because I was getting used to what MBR vs GPT was, or separate home from system, etc. So many options in the disk partitioner during install without enough “this is used to do x, advantages are y”, etc
If you want Budgie, give Solus a try. It is an easy to maintain system, is rolling, stable, and independent.
Never forget that no matter the distro (well most of them) you can install whatever desktop environment you want. That said, if you want to dip your toes in first time, I’d go with Mint. Its debian based, so most stackoverflow solutions will already have the apt install command you need for you. It has a variety of DE options out of the box on their website too.
Also, KDE and Gnome have changed a lot over the last 5 years. Id give each of them another shot.
EDIT: yes, pine is based
For a DE, GNOME with Dash to Panel is a great Windows replacement. I’d recommend using X11 for now because Nvidia.
For a distro, NixOS is great. It is configured in the Nix language, which is very easy (IMO) to wrap your head around if you know any language. The documentation is procedurally generated and is quite good. The default repo is the largest default repo in any distro, with PRs handled in GitHub.
I like to set aliases to make life easier.
The only issue is it’s difficult to get downloaded binaries running at times without creating a package for it. For games, I use steam-run (separate from Steam), for AppImages, appimage-run. Flatpaks just work.
It’s either enjoyable or it’s not. Depends on what you like. You can also copy your config to replicate your system on another device, even across arches or form factors, like from a PC to a laptop to a phone to a Raspberry Pi.
If that doesn’t sound appealing, Arch is a fantastic, more standard distro, or Endeavor if you want a GUI, preconfigured install.
I would recommend MX Linux. It’s solid and has a lot of nice and simple plus that are very much appreciated (a menu entries editor, some selected packages not available in debian, grub editor and helper, a very active and welcoming community)
After arch I’ve always told myself nixos; however, I never find a reason to switch from arch and xfce.
I have used Ubuntu for about 5 years for my server, dual booting my desktop, and previously for a work laptop. In my experience, it’s solid on desktops, but I always had some issues on the laptop with Ubuntu, I think related to the graphics drivers. Literally last night I installed openSUSE Tumbleweed on my laptop with KDE Plasma. Man, I love Plasma. It’s so much better than Gnome. And I don’t have any of the weird issues with the graphics driver, although I suspect that everything is running on the GPU, which will kill my battery. But I haven’t don’t any investigating yet. I did zero setup for Optimus. I just installed the proprietary Nvidia driver and launched a game to verify if it used the integrated graphics or dedicated graphics, and it was using the dedicated.
I like that literally all Linux software works for Ubuntu. By that I mean every software has a .deb package. You will always find guides for how to do things on Ubuntu. It’s a great beginner’s distro for this reason. There are even better distros based on it for beginners, too. I like apt a lot. It’s quick. I’m used to the syntax and commands. It comes with repositories by default that give you a massive selection of software. I don’t like that Ubuntu takes forever to get kernel upgrades. And the default apt repositories have very old versions of software.
OpenSUSE, while it’s not nearly as popular as Ubuntu, and therefore won’t have as many guides to do things, it fixes my issues with software being outdated and kernel upgrades lagging behind. Zypper is just okay imo. It’s slow. But the syntax and commands make sense to me (I don’t like pacman’s syntax or commands at all).
Idk, I’m happy with OpenSUSE for now. But I have only had it installed for half a day now.
pro tip use Linux distro from any of the lists posted here, use docker for your local llm, which are often Ubuntu based. consider getting a more modern graphics card like 30 series with 16gb vram
I had a contract come up and had to shelve this for a bit, and your comment immediately annoyed me, because it really isn’t what I wanted to hear
But it also stuck with me because it sounded like the advice I throw at new devs starting a project, knowing it’s a PITA up front, but pays dividends pretty quick.
So I looked it up, and despite my bad experiences with docker and kubernetes (I was tasked with doing weird, off label things with them and it sucked), I’ve decided to take your advice and stop looking for docker workaroundsAnd since it seems like it comes from a place of experience, I figured I’d share a bit more about what I want to do and see if you had any more advice
Basically, I want to link together basic models trained to do different things, with the end goal being something between a conversation partner and an assistant. The idea being I build very specific prompts to bypass the limitations of smaller models - the first goal is to take one LLM and a conventional management program and summarize key information, then use very specific structured prompts to generate a response to be vocalized and metadata that changes the state of the management system.
My thought is to take something like alpaca or falcon 7B to track and summarize relevant information, feed it into another such model trained as a conversation partner with this input and output format, then throw together a web interface and do text<->speech on my phone or dev computer.
When it comes to neural networks and LLMs, I have a good understanding of the theory of them and a great one of how brains work, but I’m mostly looking to use these systems as a black box initially. My initial goals are to generate dialogue trees for games and maybe practice my Spanish with a chatbot - accuracy and capabilities don’t matter too much, I’ve played with projects that could do this by just sending prompts to an endpoint
Down the road, the goal is to have something extremely modular. This tech is moving fast and I envision linking a bunch of modules together to perform different tasks, and as better modules come out or I add/upgrade hardware, I want to be able to write something to act like autopilot in my ide or pilot a model in a game engine
The main objective is to learn and to run agents on my own hardware. I’m looking for a side project that will be useful enough to keep up my interest, but also give me a starting point to modify from so I’m not sitting at a python terminal forcing myself through a tensor flow course before I get to the good stuff
Any thoughts, advice, or projects you think I should know about when starting this journey?
My workstation has been running Xubuntu LTS for over 10 years now, because I need a solid OS that I can upgrade easily and a desktop that doesn’t get in my way.
Give it a try.