Looking for input regarding finding an IDE (spoilers: involves Emacs and Vim)
throwawayish @ throwawayish @lemmy.ml Posts 6Comments 220Joined 2 yr. ago
Ah okay. It has become a lot more clear what you meant. And I agree; implementation for Vi(m) keybindings is ubiquitous while the same can't be said for Emacs'. But, while Vi(m)'s keybindings define a lot of what it is and why people love to use it, the same simply can't be said for Emacs' keybindings. I'm sure there's someone out there that absolutely loves it, but it doesn't come close to how Emacs' modeless nature allows almost limitless extensibility or how 'smart', 'useful' and just plain excellent its org-mode is.
If you like VSCode, and want the longevity of FOSS, you can switch to https://vscodium.com/
For some reason I had a very bad experience with running plugins on VSCodium. IIRC, there was something about plugin support being a lot worse for some reason. But it might also have been related to something else.
The Vim keybindings for VSCode/VSCodium are ridiculously good
It indeed seems to be a lot better than what I was expecting.
As a diehard Vim user, VSCodium with VSCodeVim is a terrific no-nonsense combination.
But, once again, I'm afraid that eventually VS Code (and thus by extension VSCodium) will be forsaken for some reason. Thus making me, once again, deal with the pain of switching to another IDE, become accustomed to it. Not being as extensible as Emacs/Neo(Vim) anyway etc etc. Like, I believe we're always one 'evolution'/'development' removed from losing our favorite IDE. For example, Jetbrains has been developing their upcoming Fleet IDE. IIUC, it's their version of VS Code; which honestly is cool. But, does beg the question if it will one day replace the fleet of dedicated programming language IDEs that Jetbrains currently supports...
EDIT: lol I only noticed you had edited it after I had commented it.
Edit: Regarding Vim plugin packs, I honestly only ever had a bad time with curated plugin collections. I don’t think the default settings in Vim are that bad anymore, and are trivial to change as you go when something annoys you.
Would that only include Vim plugin packs like SpaceVim etc? Or actually the premade NeoVim 'configs'/'distributions'?
Regarding the ‘split’ in Vim options, Vim is growing up into a protocol, rather than just an editor. As a ‘trapped in Vim’ user, back in the day, I’m delighted that essentially every serious editor now supports Vim keybindings*.''
True. Great insight. But, it sometimes seems to me as if most implementation are rather lazy ones; in the sense that they only feature a very small feature set that Vi(m) provides. I might be wrong though*.
I have used vim/neovim for years and cannot go back to a non-modal editor. But TBH I got sick of its configuration. You need far too many plugins and config to get things into a sane working order to be usable on a day to day bases for any type of development. It takes ages to learn and become as productive as you were before and a lifetime to refine.
Interesting. Though I can definitely see where you're coming from. Uhmm.., have you used any of the Neovim distributions to make maintenance easier?
For the past year or so I have switched to helix and don’t plan on going back to vim/neovim as my main editor ever again.
Both Helix and Lapce have certainly piqued my interest as FOSS alternatives to VS Code. However, both have issues related to how well their current Vi(m) implementation is. As you've touched upon it; Helix' keybindings and 'sentence-structures' are different to those found on Vi(m).
Furthermore, neither of the two have existed long enough to be able to profess any statement regarding their longevity. Like, there's no guarantee that I can keep using either of the two 20 years into the future. While no program is able to 100% guarantee that, undoubtedly, the track records for both Emacs and Vi(m) testify that -if anything- they would be the most likely ones to survive 20 years down the line; like how they've done for the last couple of decades.
I appreciate the input, but I simply don't want to invest in a program whose future is very unclear to me at this point in time.
As a long-time Vi user I would highly recommend giving it a shot for a solid month to see if it clicks for you.
Makes sense. Thanks for the tip!
Emacs is dead near as I can tell.
Am I correct to assume that you think that Emacs is dying? If so, would you be so kind to elaborate on why you think that's the case?
Nah, no need to worry. I've got a friend that was bad at math and therefore dismissed a career as programmer initially. Eventually, he just couldn't ignore how much programming interested him and did start a Bachelor's degree in Computer Science (after disliking his first year of Finance). A couple of years later and he's the proud owner of a Master's degree in Computer Science while still being relatively bad at math, but it didn't stop him. Nor should it stop you.
openSUSE's Richard Brown has given multiple talks over the years comparing these three. I'd suggest anyone to look at those for a great rundown on how these universal package managers compare to one another. His most recent talk can be found here; in which he actually does some kind of recap as well.
A couple of assumptions I will be making:
- Your hardware is supported; consider to check driver support over at linux-hardware.org. Honestly, most hardware should be well-supported, unless it has been released very recently or is hardware from known troublemakers (i.e. Nvidia GPUs or Broadcom etc).
- Your 'computer-literacy' is at least (slightly) higher than average.
- You've primarily used Windows in the past.
- You prefer asking others instead of finding it out for yourself; the existence of this post supports that. (It's either that or you like to have a second opinion in all cases; but I would have expected more input from you if that was the case 😅.)
- Your hardware is somewhat modern.
- You will mostly stick to defaults (at least initially).
- You're aware that while hundreds of actively maintained distros exist, most of them are either niche or not worth your time in the first place. If, from the remaining ones, the less impactful derivatives are surgically removed, followed by the removal of newbie-unfriendly distros, then only 10-20 distros would remain; most of which have been named in this thread already. And your needs dictate which one out of these would suit you best.
- You will educate yourself regarding desktop environments like GNOME, KDE Plasma, Cinnamon, Xfce etc. Perhaps you will even boot into a live environment to check them out for yourself; loading a bunch of distros on your USB through Ventoy is excellent for that. This is important as they're arguably the biggest contributor to how you perceive your Linux system. You should also be aware that in almost all cases a second (or heck; even third, fourth etc) desktop environment can be installed on your system and you should be able to switch between them relatively easily. However, in most cases, the one provided on first installation works close to flawless while others that have been tacked on later on are generally less polished.
- You will educate yourself (eventually) regarding universal package managers (read: AppImage, Flatpak, Nix and Snap) and Distrobox as collectively they've (mostly) ridden the Linux ecosystem of problems related to software not being packaged in the native repos. Don't feel the need to indulge into all of them simultaneously from the get-go. But be aware that they exist and that they enable one to install (almost) any package that has been made available to Linux regardless of their chosen distro.
Any distro I should use?
Typically, distros like Arch, Debian, Fedora, Linux Mint, openSUSE, Pop!_OS and Ubuntu (or their derivatives) will be mentioned in these kinds of queries. And it becomes mostly a popularity poll that measures what the community thinks is the preferred distro for beginners. And honestly, I don't blame them as you haven't really given us a lot to work with. My entry to that popularity poll would be Linux Mint. If you prefer to use GNOME or KDE Plasma instead, then consider either Fedora or openSUSE Tumbleweed. Additionally, Pop!_OS should be considered if Nvidia causes problems on all the others.
Feel free to inquire if you so desire!
EDIT: I just noticed how you mentioned to someone that your use case will be primarily gaming. First of all, gaming is somewhat equal on most distros; especially with the likes of Bazzite-Arch and Conty providing excellent environments for gaming regardless of installed distro. Though, these containers do still rely on the hosts kernel, therefore any perceived difference on same hardware but different kernels might be attributed to said kernels. Newer kernels generally come with improved performance; at least for newer hardware*. Though, perhaps more performance could be gained through other means as well. I will spare you the details, however, as this is potentially another rabbit hole within the initial rabbit hole. Therefore, instead, I will name a couple of distros known for being excellent for gaming purposes: Bazzite, Garuda Linux, Nobara Linux, PikaOS and RegataOS. If you want a no-nonsense system, just go for Bazzite; while initial setup might seem slightly more involved, it's by far the most robust system out of these. This does come at the cost of being 'unique' amongst the others, but I believe it's a great fit for your use case.
Permanently Deleted
I’ve had a bit of a look into Tumbleweed and it sounds like it’s similar to Fedora in how it handles packaging of proprietary software which I found pretty annoying, but I could be wrong.
It's true that Arch is leaner towards proprietary software if that's what you mean. An example of this is how the Nvidia drivers are just found within repos for Arch (thus enabled by default), while on both Fedora and openSUSE it's not found in the official repos. Both have made it easier over the years to somehow include options and whatnot within the installer to ease Nvidia users in, but the experience on Arch is definitely smoother.
Furthermore, Fedora is indeed (kinda) hardcore on FOSS, similarly to Debian. While Arch simply doesn't care in most cases. My relatively short endeavor to find out where openSUSE fits in seems to point towards openSUSE leaning closer to Debian and Fedora.
What's perhaps important to note is that in all cases there are third party repos that can easily be enabled to acquire proprietary software.
That was perfect! Thanks for sharing.
Thanks for your kind words. Much appreciated! 🙂
It does sound alot like they are taking time tested designs that have been in use in the datacenter & Infrastructure side within virtualization offerings for years
To be honest, I'm absolutely clueless on any of that 😂. So, unfortunately I don't feel confident to talk about that. Would you be so kind to enlighten me?
I'll assume that you intend to use it as a traditional daily driver, as such Tails and Whonix will not be taken into consideration. Qubes OS will also be dismissed as it's technically not a Linux distro. Though, it's simply the best if you take security seriously.
Within the space of traditional Linux distros, the closest one would probably be Kicksecure. Madaidan even works on the distro, so I'd say it's fair to assume that it upholds some of the values that are mentioned in the article.
Alternatively, packages for Fedora that would set this up automatically
Hehe, wishful thinking 😂. Uhmm..., bummer, but such a thing simply does not exist. Best we've got would be relying on so-called hardening scripts made by people that you don't know but somehow trust for hardening your system. Honestly, I'm also -to a degree- guilty of this as I one day hope to either adopt these scripts or rebase to one of these hardened 'immutable' Fedora images (when they're ready); Madaidan's guidelines have actually been an initial inspiration for the scripts found in the first link, so yeah 🙂. Until then, our best bet would probably be relying on hardening guides like this one; the guide has been carefully written (and is still getting regularly updated) with consideration for all the different major distros one might be using. Alternatively, you might try to implement Madaidan's guidelines directly. But, my previous attempts on Fedora didn't bear the best results. Though your mileage may vary. Special shout out to Brace as it's the closest thing to a package that does the hardening for you and works on multiple distros including Fedora. It's maintained by the same people that have brought us the excellent DivestOS, so it's trustworthy.
Permanently Deleted
What exactly am I confirming? Apologies, if I sound obtuse*.
Permanently Deleted
Thanks for answering! Much appreciated!
I might be a distro hopper. Every distro just niggles me after a while
Perhaps you've yet to find the one 😜. Your criticism to the different distros is fair though.
I thought Arch because it is almost always up to date and seems to be widely recommended.
Yup, it's by far the most popular rolling release distro. Though, I'd argue that openSUSE Tumleweed -while not as popular- is definitely worth checking out as well. They're, however, quite different from one another. Arch offers a blank canvas, while openSUSE Tumbleweed is relatively opinionated; though it does offer excellent defaults. You would have to make up your own mind whichever 'style' of maintaining a distro suits you best.
I had a go at installing Arch today in a VM using archinstall and set up BTRFS with Timeshift and grub-btrfs and it all seemed fairly straightforward.
Well, that sure does sound promising!
Permanently Deleted
OP was relatively verbose so I act accordingly. Don't feel compelled to read larger pieces if you're sensitive to wasting your time. I don't recall forcing you to read it, so it's entirely on you. While information density might have suffered, "little info" is too harsh. Though, as long as there's even one sentence of 'original' information (compared to all the other comments) a piece of writing of that length is worth reading IMO. Though, thinking otherwise is definitely justifiable.
Permanently Deleted
Last year I upgraded to an Inspiron 15 7510 with i7-11800H and RTX3050. Since purchasing this laptop I’ve used Manjaro, Debian 11, Pop OS, Void Linux, Fedora Silverblue (37 & 38) and now Debian 12.
A distro-hopper. Noted.
I need to reinstall soon since I’ve stuffed up my NVIDIA drivers trying to install CUDA and didn’t realise that they changed the default swap size to 1GB.
Prefers starting from scratch instead of fixing. Noted.
I use this laptop for everything - development in C/C++, dart/flutter, nodejs and sometimes PHP. I occasionally play games on it through Proton and sometimes need to re-encode videos using Handbrake. I need some amount of reliability since I also use this for University.
General-use and reliable. Noted.
I’ve previously been against trying Arch due to instability issues such as the recent GRUB thing.
Understandable, but not entirely justified.
But I have been reading about BTRFS and snapshots which make me think I can have an up to date system and reliability (by rebooting into a snapshot).
Fair.
What’s everyone’s perspective on this, is there anything major I should keep an eye on?
It is almost common knowledge at this point that this approach has serious merits. That's why we find it on a myriad of rolling release distros. From Manjaro to Garuda, from SpiralLinux to Siduction. Heck, even Nobara -which is not strictly a rolling release distro- has it. I wouldn't even use/recommend a rolling release distro if not for (GRUB-)Btrfs+Timeshift/Snapper. But, while by itself it is already very powerful. It still benefits a lot from testing. Which, when utilized by openSUSE in particular, manages to elevate their Tumbleweed to a very high standard. So much so, that it has rightfully earned to be named the stable rolling release distro. But not all distros are as rigorous in their testing... if at all...
Should also note I use GNOME, vscode, Firefox and will need MATLAB to be installed, if there is anything to do with those that is problematic on Arch?
Nah, that's absolutely fine. Noted.
Should I give Arch a shot?
So there are some glaring issues here:
- You've set some parameters and asked us if Arch satisfies. Which it does, but so do a lot of other distros. Which seems to tell me that this will become yet another chapter of your distro-hopper-phase. Which -to be clear- happens to be totally fine. I'd even argue that it's preferable to do it sooner rather than later. Though the mindset of a distro-hopper might deter you from being satiated...
- As previously alluded, Arch is yet another distro that satisfies your needs. You didn't mention what attracted you towards it, nor why you'd prefer it specifically over all the other available options.
- Btrfs snapshots, while powerful, are not 100% fail-safe. Sure, nothing actually is as a random SSD crash might loom around the corner. And I'd be one of the first to tell you that using Btrfs snapshots to rollback to is an exponentially better experience than without. But we're still able to improve upon it (mathematically speaking) infinitely times, to be more precise; some systems allow us to decrease the complexity from uncountably infinite amount of states (which therefore become "unknown states") to countably infinite or (better yet) finite amount of states (which therefore actually become "known states"). The reduction of complexity that this offers and its implications to system reliability are far more impactful than the simple use of Btrfs snapshots.
Consider answering the following questions:
- Are you a distro-hopper? Or did you have very legit reasons to switch distros? If so, would you mind telling us why you changed distros?
- Would it be fair to assume that it boils down to "I messed up, but instead of repairing I will opt for reinstalling."
- If so, is this something you want to work on (eventually) or doesn't it bother you at all?
- Would it be fair to assume that it boils down to "I messed up, but instead of repairing I will opt for reinstalling."
- Why Arch?
- Would you like to setup Btrfs yourself? Or would you prefer your distro to do it for you? Or don't you actually mind regardless?
That's perhaps a bit too open of a question to ask 😅. But I'll give it a try:
I'll assume the following:
- You asked specifically for the 'immutable' distros that are intended to be used on desktop. Which, moving forward will be referred to as 'immutable' desktops.
- You asked me to look at them in a 'vacuum', thus not comparing it to other 'immutable' desktops. Or at least, it shouldn't be the primary focus.
So without further ado:
- Out of the earlier named 'versions', Aeon (GNOME version) is clearly the most polished and the only one I would actually recommend using. Regarding Kalpa (KDE version); just a few months ago its (then) most active maintainer had stated the following:
This, indeed, is quite worrisome 😅. Unfortunately, Greybeard (Sway version) is arguably even less production ready... So for starters, if you want to use any of openSUSE's 'immutable' desktops, then you should definitely use openSUSE Aeon.
- Regarding the inner-workings of openSUSE's immutable desktops: -though this is merely an oversimplification- one could understand it as openSUSE Tumbleweed's model with some 'extras'. With those extras being:
- The base system components of the currently running system is snapshot and copied
- Changes (be it installing/removing packages (natively) or upgrading base system components etc) are applied on the newly copied snapshot atomically; which means it either happens or doesn't. There's no in-between state, even with power outages and whatnot. Thus guaranteeing that a lot of the complexity with updating that would be found on traditional systems is removed. Btw, atomic updates is almost like a basic requirement with how prevalent it is on any distro that's considered 'immutable'.
- After the changes have been applied successfully, the copy is made read-only.
- Changes are then supposed to require a (soft-)reboot for them to take effect.
As this model is relatively 'simple' compared to other immutable distros and doesn't seem a radical departure from traditional systems, one might expect a lot of things to 'just continue working'. However, I'm not confident if that's actually the case. Though, I'd love others to chime in and tell us their experiences. This more simple model does come at a 'cost' though; as it stands, this model is not declarative, nor is it reproducible. Which are qualities found on some other 'immutable' distros.
- The implementation of its release cycle, however, is a major win for openSUSE's immutable desktops and probably the best reason for choosing it over the others. For years openSUSE has pioneered what a stable rolling release is supposed to look like with their Tumbleweed. And its immutable desktops continue to benefit of this. So while blendOS, Fedora (on Rawhide) and NixOS (on unstable) technically are other 'immutable' distros with rolling release cycles, one simply can't deny that they're inferior (in the rolling release aspect) compared to openSUSE's immutable desktops.
- On a final note, I've often heard that openSUSE's 'immutable' desktops have more 'sane' defaults compared to some of the others. Things like offering Firefox as a flatpak instead, shipping Distrobox by default or installing flatpaks not system-wide but per user etc. These might seem like little nitpicks, and arguably others might simply not agree with these choices. However, I agree that generally-speaking most users should prefer these defaults.
Please let me know in case you were expecting a different type of answer!
I've already written another comment here. But I just noticed that you have edited OP's text to include that you were new to Linux. Which changes the rules of the game so much so that a simple edit of my other post wouldn't do it justice for the sake of visibility. Btw, perhaps you should have told us that earlier 😅.
So previously I had named Arch, Fedora and openSUSE Tumbleweed. These distros are still definitely worth the trouble. However, instead of Arch directly, you might wanna opt to an Arch-based distro. They often come with an installation that's done through a GUI, which you might perhaps conceive as being more intuitive. Though, there are some that argue anything Arch-related is not suited for new users. Personally, I don't buy into that. But there's definitely some truth to it in the sense that other distros might be better suited for some new users. We don't know what 'type of new user' you are, therefore we won't be able to answer that for you. However, my gut feeling tells me that you've got some potential to start out with (an) Arch(-based distro) right out of the gate. Though, I'm not very confident (yet)😅.
With that out of the way, I think the following is important to note as well:
- If you want to avoid X11, then you have to use Wayland. Which, in turn, implies that you've got to use either GNOME or KDE as your desktop environment. Unless, of course, you want to try out a tiling window manager (like Sway or Hyprland etc) right out of the gate as well. Which, again, doesn't make it easier for you to start using Linux 😅. It's definitely worth it eventually, but perhaps it's better to not make it too hard on ourselves from the get-go. Coming back to GNOME and KDE, fortunately they're very well-supported on the previously mentioned three distros. So you should be fine regardless. As to which of the two suits you best...? Well, that's very personal. An oversimplified overview would be that GNOME is polished and 'limited in regards to customization out-of-the-box' while KDE allows you to customize to your heart's content at the cost of polish. GNOME does have support for extensions that allows it to be easily customized beyond what KDE allows one. However, this comes -once again- at the cost of polish 😅. It's best to make your own mind with this. Use both of them, and come to judge them yourself.
- So I can't but notice that you're sensitive to your digital security (which is good thing 👍), but that you'd like your distro of choice to do the heavy lifting; which is totally fair. In that case, I would argue that Fedora and openSUSE Tumbleweed are better suited than Arch(-based distros), because they're distros that take security very seriously. Heck, they're the only popular 'upstream'/'independent' distros that have managed to configure SELinux for use on their distros. On Fedora this is done by default regardless, while on openSUSE Tumbleweed it can be installed at a later point. (IIRC openSUSE Aeon/Kalpa (old MicroOS Desktop) shipped with SELinux by default, but the linked article suggests otherwise 🤔.) In contrast, while you can make it work on Arch, it's not officially supported. AppArmor is still great though*.
- If security is indeed important to you, have you perhaps considered using so-called 'immutable' distros? Btw, the name 'immutable' is not entirely correct as in most cases only some parts (mainly related to base system components) are read-only during runtime; changes to said base system components (through either installing/remove a package or upgrading) happens atomically and often times requires a (soft-)reboot to actually take effect. Some 'immutable' distros even manage to be reproducible and yet some actually manage to be declarative as well. The security-benefits for this can't be overstated. If you're interested in 'immutable' distros, then it's worth mentioning that both Fedora and openSUSE offer them through Silverblue/Kinoite/Sericea and Aeon/Kalpa(/Greybeard) respectively. The exact implementation of 'immutability' across Fedora's and openSUSE's offerings are different. However, I won't go over that for the sake of brevity 😅.
Please feel free to inquire if you so desire!
I saw that there were some controversies but honestly if I avoided everything in my life over every little bit of bad press or disagreement I would have nothing left to eat and nowhere to live.
The choices we make and the actions we take mostly come with compromises anyway; just because it's on topic: Manjaro probably continued to function as you were used to and thus you didn't see any reason to change that which "just works". Which, I somewhat alluded to in my earlier comment with:
the continued use of Manjaro is at least justifiable.
Moving on.
I am not sure why any distro that attracts new users is an issue considering we want Linux as a desktop to keep growing as it improves the lives of all having both more users, contributors, and devs building software.
That's not what I said, nor what I implied. What you just said assumes/implies that people start using Linux because they want to try Manjaro, which is just simply not the case. You might have mistaken Manjaro for Valve's Steam Deck. Perhaps this chart does a better job at conveying my thoughts. As you can see, the search "install Manjaro" has for a considerable period in the last 5 years been more than half times as often searched as "install Arch". By comparison, it just dwarfs the hits for "install EndeavourOS" and "install Garuda". That's the problem. To put it onto perspective, I'll follow it up with charts for Ubuntu with its popular derivatives and Debian with its popular derivatives. I tried doing the same for Fedora and openSUSE, but their respective graphs just showed me why their derivates aren't talked about that often 😅. Even Nobara is absolutely dwarfed compared to Fedora.
I'm of the opinion that systems and packages should be current and I find little to no merit in using a derived distro for myself. For this, the aforementioned three distros and NixOS are just plain superior over all the others IMO. NixOS was absent from my original comment due to how radically different it is compared to any other distro. But it's definitely worth checking out if one is not scared of learning a thing or two.
Btw, you make excellent points! Thank you for that. Much appreciated!
There's definitely truth in that.
I can definitely see that happen.
Wow! Thank you so much! At the time I just needed something that works, so the path of least resistance (read: go back to VS Code) was preferred. So, I probably didn't even bother finding a way to resolve the issue at the time. But this paragraph has provided a great amount of pointers that will surely help solving it.
Perhaps I should include VSCodium as another viable alternative 😜. So that it becomes -at the very least- the path of least resistance to Emacs and/or (Neo)Vim.