I have been using Windows my entire life, but since I got my Steam Deck I’ve been considering trying to get into Linux.
I obviously don’t have much of an idea where to begin, other than that I’m currently also trying to learn Javascript. I’d like a basic workstation I can code on and mess with, that doesn’t run more than a couple hundred. Could use some recommendations for hardware plus where to begin.
Hey for me it was the same. For Hardware you can use anything. The optimal is a full AMD build Or Intel AMD build but Nvidia could give you a headdic. For distros I recommend something Arch based like Manjaro or EndeavourOS. As DE I recommend Kde Plasma because out of the box it looks pretty much like Windows but is highly customizable.
I think I need to narrow some things down;
My current Windows PC isn’t what I’m looking for; it’s a big and powerful gaming laptop from a few years back. I’m looking for something light and portable, but with a full keyboard for coding.
Pricewise I’m looking for something around $350; if this is unreasonable let me know.
As I understand it, Steam Deck uses KDE, so I’d like to stick with that for now.
Welcome to the community!
Seconding all the previous comments recommending Linux Mint: since you come from Windows, you’ll probably feel most at home there. It is also possible to do all common tasks without ever opening the terminal.
Mint should run fine on any hardware, but to be most safe, try to use something that is at least 1-2 years old and stay clear from dedicated GPU as first (in particular Nvidia).
I’d also advise that the packaging situation for distributing software in Linux rn is somewhat messy. Thankfully, multiple format (apt, Flatpak) are directly available in the Linux Mint Software Center. In case you need to use some proprietary software (Chrome, Spotify, idk), you’d probably want to go with Flatpaks.
I’ll also add: There’s a base distribution and then a variety of “Window Managers” (WM) or “Desktop Environments” (DE) to choose from. These determine the layout of your desktop, “control panel” analog, what settings can be tweaked, and stuff like the network/volume controls accessible him the tray etc.
Mate/Cinnamon are good, but I recommend KDE/Plasma Desktop. I’ve had good luck with that one for people who I’ve helped migrate from Windows.
Your can actually install multiple DE’s and will be able to choose which one you use at the graphical login screen.
As for Chrome, I think Google still has a repository for that or one can use Chromium which is the base experience for that anyhow.
For code editors, there’s a bunch of choices. I tend to use Pluma for basic text stuff, Bluefish for a lot of web stuff, and CodeBlocks for C++'ish stuff. You can also install VSCode on Linux if you so desire and a lot of people seem to quite like it.
Hardware I lean more towards **AMD - though not bleeding edge - as the drivers come with the OS kernel and tend to get updated with such. I’ve generally not had issues since about the RX480 days, except for some weirdness with APU’s not liking certain TVs (usually scaling issues). Nvidia generally works too, but requires a proprietary driver stub be installed for accelerated graphics and that can sometimes break on updates. Most Intel (graphics) is ok, but there have been a few issues with less-common chips in smaller fiorm-factor or tablety devices.
** I have heard people complain about some AMD stuff, but honestly I’ve run an RX480, Vega56, 6900XT, and 3-4 generations of APU’s without major issues except when those chips were fairly new (first 6mo of release can be dicey).
Yes to KDE for windows users. There’s nothing wrong with cinnamon. But kde is much more impressive in a “wow! This is all free?” Sort of way. Just today I used both k3b and ktorrent!
Another Mint + Thinkpad vote here. I’m a lifelong Windows user who has occasionally dabbled in Linux, and Mint is the first distro that I’ve stuck with enough to consider it my daily driver. I have it running on a used Thinkpad T14 Gen 2 with an AMD Ryzen 7 in it. I still have a separate Windows desktop for gaming and Adobe Lightroom, but the Thinkpad is my everyday couch PC now. Everything worked out of the box except for the infrared camera used for face unlock type stuff, and the fingerprint reader. I got the camera set up to use the Linux equivalent of Windows Hello, Howdy, and while it does work now it’s not as fast and reliable as it was under Windows. I haven’t even tried to set up the fingerprint reader yet. I’m very happy with how well everything works in general under Linux Mint.
Thinkpad T480 is the last of the good Thinkpads and should be more than your Budget
Edit. Corrected typo.
Too bad they don’t make the old keyboards anymore, last of those was the T#20 (T420, T520,etc) line. New one is still better than most, but the old one was hands down the best laptop keyboard
Do you mean T480?
Yes. Thanks for pointing out my mistake. I corrected my typo.
Could you elaborate on why Thinkpads that came after the 480 are no good? I’m looking to get a laptop and am probably getting a thinkpad. Is it the easily removable battery?
T490 is the first model with only internal battery, but removal is fairly easy. 2020 lineup changed the F9-F11 function into osme MS Teams crap, which didn’t (or don’t) work with MS Teams out of the box. The old layout for function keys (keyboard lsyour switch, bluetooth toggle on/off and settings) were super handy in daily use.
I don’t know about 2022 lineup since I don’t own one, but 2023 lineup don’t have option for simple bios UI and don’t allow user to disable unneeded hardware, which was a feature since the first Thinkpad ever released.
Linux mint, if there is any problem try popOS.
Also would recommend trying out the distros before you install them in a virtual machine since it’s easier to try multiple distros without the hassle of setting them up. Since you are in windows at the moment, you probably should try virtualbox
Edit: ventoy is a pretty cool project for when you want to setup a pen with the installation isos to the baremetal.
Probably Linux Mint (https://linuxmint.com) will be the best experience for you. If you have newer hardware or you’re not sure scroll down to the bottom on the download page and download the “EDGE” iso since it has newer software than the default versions and more hardware support. If you have older hardware, you can probably install the Cinnamon iso too but if that doesn’t work install the XFCE iso. Finally flash it onto a USB drive with https://etcher.io/ and boot into it, testing if some things work like audio and video. Software like VSCode etc. are already on the software manager so you won’t have much trouble with writing JS.
Though if you have an Nvidia card you should install Pop! OS or Nobara Linux since they have an Nvidia ISO so you won’t need to struggle with installing them later on.
Doesn’t Mint make installing Nvidia drivers pretty simple?
yes
I use the steam deck as my main computer running the stock steam os.
I’m currently using distro box to set up different programming environments. This is possible on steamos, which has the system directories as read only, by installing podman into the home directory. Distro box have a guide for steamos setup.
I run neovim but I would think you could run vs code if you use it. Haven’t tried running a web server on it yet, but again, should be possible. Or, you can get yourself a cheap vps from digital ocean or linode if you really want to learn Linux the hard way!
Follow the first few steps of this guide to download Linux Mint, create a bootable USB, and live boot into it.
You can now play around with this like it’s a real system. Nothing will be saved when you shut down.
When you are ready, you can continue with that installation guide to either dual boot, or completely wipe your disks to use linux. (To start, I recommend dual booting. You never really know when you’ll need it as you’re transitioning.)
Good luck!
I’ll add: Back up your data and have fun! :3
Your new best friend: https://linuxjourney.com
There will be lots that will make you feel lost, because of the design language differences and the widely different philosophy, but you got this. Just take it at your own pace, one web search at a time and you’ll be grand!
Debian! As far as hardware you’d probably have an easier time with an AMD GPU but otherwise most everything works. Get intel wifi if you can/want wifi.
trying to learn JavaScript
Your first hurdle will be to figure out how to install VS Code. Double clicking the downloaded .deb file often doesn’t work. You’ll need to follow the instructions on the official page under “Debian and Ubuntu”: https://code.visualstudio.com/docs/setup/linux
Specifically the part about ‘sudo apt install {distro}.deb’. The other parts are not needed.
Can’t you just install it via the Software Store?
This, you should always default to your package manager for app installs. I believe it’s available on their Ubuntu repos
VS Code
It’s the Church of Emacs or Cult of vi (or Neovim) in these parts! You don’t need a Microsoft text editor with proprietary plugins to write JavaScript. When your display manager inevitably breaks while you learn Linux or administer a remote system, having skills with an editor that works in the terminal will prove invaluable.
If you have PC that can run virtual machines I recommend starting there so you can see how Linux works. Use it for a longer period of time and try doing some stuff there that you would normally do on Windows.
Worth noting here that any even remotely modern computer supports hardware virtualization for natively running virtual machines, including laptop chips and even Apple silicon, although you usually have to enable it in the BIOS since few people need it and malware has been known to abuse it. The setting for that has various names depending on motherboard vendor but usually related to “Hardware Virtualization”, “Intel VT-d” or “AMD-V”. If for some reason your machine doesn’t, some virtual machine software also supports software emulation although be prepared to take a massive performance hit.
Also worth noting that in my experience, even with hardware virtualization, in most cases, the performance of a virtual machine in a graphical environment borders on unusable no matter what operating system is running in it, and Linux is known for its ability to run smoothly on lower spec machines than Windows can when installed on physical hardware. Also also worth noting that every Linux distribution worth its salt lets you “try before you buy” (or to be more accurate, try before you install) and experience basically the whole operating system including installing programs from within the installation media, without touching your existing OS.
(Of course, you might have better luck than I did running a virtual machine, and in the early days of your Linux journey you will DEFINITELY want a working copy of Windows you can quickly fall back on when something breaks. If you install a VM and you’re happy with how it performs, by all means, stick with that till you’re good and ready to make the next step. See how you like it, get some practice using it etc. before you make extremely-difficult-to-undo changes to your boot disk. If you want to get a bit closer to how it performs for real, but don’t trust yourself to install a new OS without accidentally erasing all your data, read on.)
You can write an ISO image to a flash drive, boot off that flash drive, close out of the installer window (it’ll drop you to the desktop) and give Linux a test drive before you install it for real. If you decide you don’t like it, unplug the flash drive and reboot your computer, and Linux will leave no trace it was ever there. (Depending on your setup (specifically laptops that use TPMs and full disk encryption) you might have to reenter your Bitlocker password (which is a ~40 character random alphanumeric string saved in your Microsoft account) to re-enable secure boot, but that’s it.)
Not everything works in a live environment – you’ll have a hard time installing graphics drivers when you haven’t installed the OS, for example, and all data/programs you create/download will be limited to the size of your RAM and wiped when you reboot – but you can get a pretty good test drive. You can get a feel for how the GUI works, customize it to your tastes, and even download and run stuff like Discord and Steam all without touching your boot disk.
If you decide you like Linux, but not enough to completely leave Windows behind (no shame in that! It’s where I started too!) you can install in a dual-boot configuration. Basically, you carve out a portion of your drive for permanent use by Linux (I recommend ~1/4 to 1/2 of the total drive space but it can be whatever you want), your Windows C: drive shrinks by that much, and you get asked which OS you want to boot into each time you restart your computer. Neither OS will be aware of the other’s existence, and from the perspective of any programs you install they will be two different computers. Linux can read and write files saved on your Windows partition, but not vice versa, so if you want to copy files between them you’ll need to boot into Linux.
Tutorials on how to set up a Linux dual boot abound online (in fact, many distros’ installers have it as the default behavior), so I won’t explain how to do it here. If you have any other Linux related questions, though, feel free to send them my way!
I should add that I’ve been interested in getting a small, portable notebook for coding separate of this, and making it Linux seemed a good idea at the same time.
I also recommend getting a refurbished ThinkPads for their excellent Linux support, especially newer models like the X1 Carbon. No need to worry about such and such hardware not working on Linux. Avoid models with Nvidia GPU for less maintenance headache.
Contrary to what others here are saying, instead of trying to install Linux on something random, I would highly recommend getting a Linux-first / Linux-friendly hardware at first instance, if possible. If not, that’s fine, you could just go for any random off-the-shelf PC, BUT you run the risk of certain things not working or perhaps not fully optimised. For instance, for laptops, one common issue is standby/sleep mode not working properly - either you may experience battery drain during sleep, or things like the graphics or audio might break after resume (or worse, might even crash). Or you may experience higher battery drain in general compared to Windows, or certain things like some Fn keys for brightness may not work etc. Certain sensors not working is another common issue, which may cause your fans to run at 100%. And if your system has an nVidia card, there’s a good chance you may run into issues - if not during installation, perhaps after a system (kernel) upgrade. These are all just examples btw, just because you’re buying something random doesn’t mean you may face these issues, but it’s something to keep in mind.
The general rule of thumb for buying Linux-friendly hw is: avoid nVidia. Both Intel and AMD onboard graphics are fine (for the most part - at least, they have a better track record than nVidia anyways).
There are some PC/laptops which come with Linux loaded out-of-the box, which would be the ideal Linux machine to buy. I call these Linux-first machines. Examples of such machines include System76, Star Labs, Slimbook Fedora, Tuxedo, Purism, Juno Computers and Entroware to name a few. There are also some laptops from mainstream OEMs which come with Linux, such as the HP Dev One and Dell XPS Developer Edition. You can’t go wrong with any of these machines, as they’re Linux-first machines and have been tested by the OEM.
Then there are Linux-friendly laptops - these are laptops which may not necessarily come with Linux, but have been either confirmed by the OEM in some capacity that they’re Linux compatible, or they’re widely supported by the community due to their Linux-friendlyness and popularity. Examples of these include the Framework laptops and Lenovo’s ThinkPad series. You generally can’t go wrong with these either.
For other machines, your compatibility can be a hit-or-a-miss. Some laptops may work fine, but might need some extra configuration steps to get it all working - eg Microsoft’s Surface laptops need a special kernel to be installed (and some additional steps to be followed, depending on your distro), but otherwise work fine once you’ve installed all the extra bits. If Linux-first/friendly laptops aren’t an option for you, you could go for something random, but you’ll need to do your research (Google/reddit search etc) and see what their compatibility is like, whether everything works, if there’s any issues etc. In fact, this would apply for most of your hardware purchases going forward. Eg, say you’re buying a printer or some external webcam, you should check for it’s Linux compatibility first before buying it.
Finally, if you want to run Linux on a device you already own - you can (generally) try it without any risk, using a Live USB (bootable). Just download the image, write it to your USB drive and boot from it - this will give you a good feel of things, and highlight any potential compatibility issues. Ventoy makes this a very easy process - just install Ventoy to your drive first, and one it’s done, you can download multiple ISOs of various Linux distributions and just copy it to your drive (no need to install them). Then you can boot from the USB and select the distro you want to try and boot from it. This is extremely handy for trying out various distros, or just keeping some “rescue” ISOs handy. You can even boot a Windows ISO from Ventoy (and other OSes too, like the BSDs).
This is probably the most helpful advice I think I’ve gotten so far. Thank you, I’ll look into these options.
Generic answer for this is to get a refurbished corporate laptop. At least in here we have several companies which buy previously leased computers and give them a refurb (new hard drive, good cleaning, things like that) and sell them for pretty good price.
W, T or X series Thinkpads are pretty safe options, my T495 was 300€(ish) on sale. L and carbon are something I’d avoid, L (at least few years back) weren’t built as well as T-series and X1 carbon doesn’t have options to expand/swap out ram.
If your budget stretches to a new laptop, framework make laptops (light weight or serious game machines) that come with Linux installed.
If you have no budget some second hand high end Chromebooks can be converted to mainstream Linux (video)
The other comments suggesting old ThinkPads are fine, but they’re heavier than I like to carry
I’d say don’t use debian because GNOME environment feels restrictive. No window snapping was my biggest turn off.
I use Fedora - KDE which is really comfortable to me. Others have said Mint Cinnamon is a good one to start with.
Whichever OS you choose, when you install it, for the love of God, plug in a network cable so you can use internet on the thing as it installs. This will save you much trouble during set up.
Not using Debian because gnome seems silly to me. Why not just install plasma if that’s what you want?
I recently bought a used LG Gram to install Arch on after a few years of not having Linux…so recently did similar research, albeit with more Linux knowledge. I do NOT recommend Arch as a first distro unless you are willing to put in time for troubleshooting. That said, looking up a model of laptop you are considering + Linux in a search engine can be valuable in determining how much ease you will have getting basic (trackpad, Bluetooth, webcam, WiFi) items working. I dabbled with a CD distro as a gateway to Linux and the “live disk” option is still the best way to experiment. Nowadays it is on a USB stick. This method allows you to play around without actually installing. Others here have already given good advice. If you go the USB stick route, do be careful with anything related to disk partitioning and formatting. I accidentally wiped my dad’s hard drive once when I was not being careful!
I hope that people aren’t seriously recommending Arch. You should at least start with Linux mint and honestly you can just stick with it.
Sometimes people unironically recommend Arch to newbs because “you’ll learn so much about Linux while installing it”.
I haven’t seen Arch recommended to new folks outside of the Arch community circles and even most of them express caution. I always recommend Ubuntu or one of its variants for a person starting out, but it does help for the person to try a bunch of distros to see what they prefer. When I was starting out everyone was recommending Debian or Fedora. The more user-friendly distros didn’t come out until much later. Since then even the mainstream distros have improved a ton concerning usability, though I will say documentation always leans a bit too technical for my taste…for Arch especially. Too many holes for people that have no experience.
Tbh, I don’t recommend beginners to try out multiple distros in the beginning. Realistically, if you don’t have in depth Linux knowledge already, all you’ll be able to differentiate is the look of the DE and the wallpaper.
I find, too much choice tends to confuse beginners more than it helps them.
So I’d rather recommend something simple like Ubuntu and let them try out the flavours with the different DEs.
Choice is better for later when people actually understand what they are looking for.
I would say this probably varies by person. I learned a lot by using multiple distros. When I put the dots together that yum, apt-get, and (later) pacman do the same thing, that was a huge ah-ha. Sometimes seeing the differences in how they work in command line especially helps you understand larger concepts. If you stick with one distro (like I did for too long) you may have trouble comprehending these concepts for longer. Some beginners may find choice overwhelming, yes, but I do think it can be useful having exposure to two or three distros out the gate…even if just on live USB.
Most people I helped getting Linux to work are actually not techy at all and they haven’t touched the CLI at all so far…
I guess it differs if you use Linux because you are interested in the technology or if you use it because Windows 11 doesn’t run on your PC.
Worth noting that you don’t necessarily need new hardware, you can install Linux on your currently Windows PC in either a dual boot configuration (both OS installed) or replace Windows. You can also run Linux in a virtual machine to test the waters.
For a decent, x86_64 PC for Linux, the Steam Deck is ironically a pretty good deal for what you get. The Deck will run VSCode just fine, maybe just add a monitor and keyboard/mouse.
Linux can be pretty lightweight, it runs beautifully on my cheapo netbook from a couple years ago: WinBook CW140. I’ve done a good chunk of professional web work on that thing. The Deck beats it in every way, but it does web dev perfectly fine.
I second the VM approach. You can mess around, try different distros and generally just get a feel for the whole thing. If you want a dedicated machine, any old box will do. A cheap mini PC or whatever you have lying around. One of the great aspects of Linux is that a lot of old hardware that may look obsolete suddenly gets a new lease on life.