throwawayish

joined 2 years ago
[–] throwawayish@lemmy.ml 5 points 1 year ago

There was another post yesterday about this and the community recommended Mint & Pop OS the most. However, I am not looking for windows-like. I want a new & fresh experience like using a smartphone for the first time or switching from ios to android.

While I get why Linux Mint (with the Cinnamon DE) is regarded as a Windows-like, Pop!_OS is far from that. Furthermore, going from iOS to Android is arguably a smaller change than going from Windows to any Linux DE (so even the Cinnamon DE (on any distro)). Regardless, the Desktop Environment is the single most influential part of a distro to how you experience any distro. Therefore, if you actually want a new & fresh experience, then you should definitely check out DEs like Cinnamon, GNOME, KDE Plasma and Xfce^[1]^ on something like a Live USB (perhaps through the use of Ventoy). After you've experienced a bunch of DEs, you should have attained a better grasp of what you like and don't like.

Distrochooser.de recommended kubuntu to me.

While Distrochooser is cool and all, you shouldn't take it too seriously πŸ˜…. If possible, consider sharing your results on Distrochooser, that might at least provide us some pointers.

  1. Too many to list actually πŸ˜…, and most of them shouldn't be of a concern to a new user (or have simply become mainstays on most distros). The most important 'block' would be the Desktop Environment, though. Furthermore, design choices like release model, independent/derivative, opinionated/blank slate, traditional/atomic etc and a distro's popularity are other important factors in making a decision; while we'd refer to none of them as "building blocks of a distro". However, if there are any "blocks" that you would describe as a hard-requirement for you, then it does make sense to look for a distro that meets those. For example, in my case; a configured SELinux and atomic upgrades^[2]^ are required. As such, the decision already boils down to like two distros πŸ˜…. The shopping experience approach would perhaps make more sense if you chose a distro with little to no defaults (Γ  la Arch (or Gentoo^[3]^)). Finally, perhaps it's worth noting that ((Dynamic) Tiling) Window Managers' capability of leaving you in awe for the opportunities and possibilities they provide are more substantial. Thankfully, while not as feature-rich, the more established DEs do offer means to engage with (dynamic) tiling (through extensions/add-ons).
  2. That's hard to find; obviously distros won't advertise what they're missing. Heck, I wouldn't be surprised if they have good reasons for their respective design choices. Still, FWIW, resources like these might be helpful to some. However, you should only look at the tables, the texts found above the tables are at best outdated and perhaps even misleading otherwise. Beyond that, if you narrow the choice between just a couple of distros, then I'm sure the community would be more than willing to point you toward their differences.
  3. Software I would recommend to anyone would be:
    • Distrobox; this excellent piece of software has single-handedly solved package availability across the Linux landscape. Other excellent endeavors like AppImage, Flatpak, Nix and Snap definitely have their uses and are in some aspects superior; but Distrobox' ease of use (contrary to Nix) and (almost) boundless access to packages (contrary to AppImage, Flatpak and Snap) on top of how well it integrates with the rest of your system makes it my personal MVP.
    • Flatseal; must-have if you ever plan on using flatpaks (which you definitely should consider).
  4. It depends entirely on the distro you install. Assuming that you start using a distro with sane defaults (like most new users do), then unless you're using an Nvidia GPU^[4]^ (or other hardware known for causing troubles), you can start using your system however you'd like it; which for most would consist of installing the software they need. Furthermore, concerns related to bloat are a lot less significant/severe on Linux, so you should be fine unless you think the default installed file manager is bloat...
  5. I actually don't know. Perhaps it might be related to creating an as homogeneous experience as possible; apps on Linux either rely on GTK or QT for their appearance/looks etc. Therefore, by foregoing one, the 'awkward' 'out-of-place'-experience that some might experience every so often would have been overcome. But this is a rare concern (I'd say). So unless you're very into how your system looks and feels, it shouldn't be a concern to you.
  6. I think these questions show that you've put some thought into this and that by itself is already very commendable. And I'm actually of the opinion that asking these questions, especially for someone like you, is important. So I would definitely encourage you to continue with asking relevant questions in hopes of making the transition to Linux as pleasant as possible. As for the distros you've mentioned, chances are high that you'd be content with either one of them. However, I wonder if you're making a conscious choice; like would you be able to state why any of these should be preferred on the basis of merit rather than popular vote^[5]^ or what happened to come out of Distrochooser.

  1. Important distinction: these aren't selected for how different they operate/behave compared to Windows(/macOS) but for being some of the more polished DEs found on Linux. For a more exhaustive list, refer to the one found on the ArchWiki; which still happens to miss DEs like Kera πŸ˜….
  2. I wouldn't call atomic upgrades a building block as it's ultimately a design choice.
  3. Gentoo is a great distro, but I would not recommend a new user to engage with it; unless you believe you belong to the sub 1% that can make it work as their first distro. Heck, even Arch is often discouraged to new users. Though I think that Arch might be just up your alley; at least if you enjoy reading the excellent ArchWiki.
  4. In which case, either the installer provided by the distro got your back and the proprietary drivers are installed or you're required to install them yourself. Steps related to these are different per distro, but reading up on your chosen distro's documentation should be sufficient.
  5. Don't get me wrong; I'm not dismissing the popular vote.
[–] throwawayish@lemmy.ml 2 points 1 year ago

Thank you so much for your insights!

[–] throwawayish@lemmy.ml 3 points 1 year ago

XY problem confirmed. Thank you OP!

There have been complaints in posts about people asking for advice on which disto to use, that there are too many such posts.

This is a legit concern.Thank you for trying to tackle this!

Provide users the tools to possibly answer the question themselves before creating a post.

Noble. And in its essence, it makes a lot of sense.

DistroChooser is a self-help tool for that purpose.

As a self-help tool it's very bad. Sorry*. I actually hoped that you would mention how it might be used as a basic requirement for anyone that asks which distro to use. The enforcement could be done with a bot which simply scans if any link to distrochooser is present in a post that remotely resembles one that asks for advice on which distro to use. I would actually even argue against this, but I think we might be able to reach an agreement on which questions are actually worth keeping around for further use...

  • keep answering posts --> more complaints, possibly silent quitting of community

Honestly, this is better than to limit newbies to strictly stick to Distrochooser for asking which distro they should use 🀣.

  • write bot --> I ain’t got the time, maybe somebody has, dunno what the bot would do

I haven't got any experience with building a bot, but I suppose it works by scanning for words in posts. In that case, simply 'flagging' everything that contains the words "which" or "what" in combination with "distro(s)" or "distribution(s)" and ask them to refer their questions to a dedicated Lemmy community in which they can ask would already solve a lot.

  • find alternative website --> I ain’t got the time

You don't have to find an alternative website. Nor write one yourself. As it stands, as far as I'm aware, there's simply nothing that satisfies the basic needs for this.


So what do I propose? Relegating these questions to their own dedicated Lemmy community is probably a great and easy solution. If something like a test/algorithm/flowchart/quiz/whatever has to be created, then that one might need substantial effort to get off the ground. However, perhaps comments like these might be helpful as a blueprint.

[–] throwawayish@lemmy.ml 2 points 1 year ago (2 children)

Sorry, I think I might have confused OmniOS with QubesOS.

πŸ˜…, but QubesOS isn't a derivative of OpenBSD either. It might have inspired some of its parts, but fundamentally it's a completely different beast.

ZFS is itself a security feature because of how well it guarantees the fidelity of your data.

Do you happen to know if this goes beyond what Btrfs(/Bcachefs) provides on the Linux side of things?

[–] throwawayish@lemmy.ml 1 points 1 year ago

Honestly, I don't know if that's the case; I always got scared whenever I saw the prerequisites for Heads in combination with the strict list of supported hardware. FWIW, the NV41 that's used for enabling Heads on NovaCustom's device is included in the short list of supported hardware for Heads, while -unfortunately- the same doesn't apply to the StarBook. I would love to be proven wrong though!

[–] throwawayish@lemmy.ml 1 points 2 years ago

Good question! However I think it's wise to concentrate on a particular word/phrase before actually answering your query.

In an immutable setup on Fedora (trying to main Bazzite) is the correct way to use zsh and oh my zsh as my main shell

Currently, it's not always clear if there even is a correct way of installing some of these (more) edge cases. Therefore, I wouldn't be surprised if you'd see 'seasoned' Fedora Atomic users that have all tackled these in very different ways while being satisfied with (not only) their own solutions (but also approve the respective solutions of their peers).

As for your query, I would say that starting to use Fedora Atomic and pointing out correctly some of the more common ways to install software while being aware of the ambiguity that exists with the chosen installation method for this specific piece of software is already very commendable. So I would like to congratulate you on that!

But, you shouldn't be afraid to stick to what's easy (aka don't allow good to be the enemy of perfect). If the extra time required for changing your base system doesn't bother you at all (which happens automatically in the background anyway), then layering it (thus installing with rpm-ostree) is probably the easiest method while protecting you from a lot of possible edge cases you might have to deal with otherwise. Traditionally, zsh (and other shells) were layered (thus installed with rpm-ostree) and uBlue itself included (perhaps still does) just commands to change root shell to zsh, fish etc. This might have changed in the last few weeks, but I think it should still be a safe bet. FWIW, I have never had any troubles pertaining to my zsh installation and any of its plugins (might as well link the managed zsh-config I rely on).

[–] throwawayish@lemmy.ml 1 points 2 years ago* (last edited 2 years ago) (4 children)

OpenBSD and its derivatives (like OmniOS)

First time hearing of OmniOS, thank you for mentioning it! EDIT: I just took a look at it and it doesn't seem to be based on OpenBSD, at least the one I could find seems to be a derivative of Solaris instead. Though, I might simply not have found what you referred to*.

because it of its security-oriented features, especially things like ZFS

Does OpenBSD's implementation of ZFS offer security features as well?

I would like to switch my daily driver, a Linux laptop, to OpenBSD so I can get used to using it as an administrator, but I worry about OpenBSD being able to support the laptop hardware, especially things like WiFi, BlueTooth, and managing the battery, screen dimming, laptop lid, and so on.

Do you think that using OpenBSD inside of a qube (from QubesOS) is perhaps something worth considering? Or don't you think there's any merit of doing this over the use of any virtualization software found on any other system?

I have another Linux computer with a Radeon graphics card which connects to my TV that my children use for video games, and watching streaming video, and I would like to switch this to OpenBSD as well but I worry that it will not be able to run Steam games very well.

From what I've read, running games on OpenBSD is a lot less mature compared to running games on Linux. Though, perhaps it's worth noting that cloud gaming solutions (like Google Stadia in the past) are known to work great on OpenBSD. Not sure if you would want that, though.

(On a more general note) I definitely agree that OpenBSD works wonderfully on the server side of things. But I've gotten skeptical over time to its feasibility as a desktop OS. Note that I'm well aware that OpenBSD's developers use it as their daily drivers, so I definitely recognize the possibility. However, when it's lacking features like Secure Boot (or any form of Trusted and/or Measured Boot for that matter), I just find it hard to justify putting it on something like a laptop that I carry around all the time. I hope that you can prove to me that my logic/understanding is flawed and that I should reconsider the use of OpenBSD as a desktop OS.

[–] throwawayish@lemmy.ml 2 points 2 years ago

It has been my pleasure 😊!

[–] throwawayish@lemmy.ml 2 points 2 years ago

Aight. I've changed the comment a bit πŸ˜… since. Perhaps it's more useful for you now πŸ˜‰.

[–] throwawayish@lemmy.ml 4 points 2 years ago* (last edited 2 years ago) (3 children)

It seems as if the uBlue images ship the required OpenRazer kmod by default. Therefore, I would suggest you to take a look at those. You still need to follow some additional steps though πŸ˜…. Which might not be very intuitive... Thus, I propose the following: if you'll rebase to uBlue, you might as well rebase to Bazzite. After the rebase has been completed, the (post-)installation software should already give you the option (it's just a simple toggle) to install OpenRazer. The toggle is clearly visible in this frame.

If you perceive Bazzite as too opinionated for your taste, then perhaps you might opt to the following instead:

install-openrazer:
    sudo wget https://download.opensuse.org/repositories/hardware:/razer/Fedora_$(rpm -E %fedora)/hardware:razer.repo -O /etc/yum.repos.d/hardware:razer.repo && \
    ublue-update --wait && \
    rpm-ostree install -y openrazer-meta razergenie && \
    if ! grep -q "plugdev" /etc/group; then \
      sudo bash -c 'grep "plugdev" /lib/group >> /etc/group' \
    ; fi && \
    sudo usermod -a -G plugdev $USER && \
    echo "Please reboot to apply needed changes."

Which should be the just-entry (and thus responsible) for whatever happens after the toggle is enabled*.

[–] throwawayish@lemmy.ml 13 points 2 years ago* (last edited 2 years ago) (5 children)

I will simply list a couple of the images^[1]^ I've used over time and provide some personal insights (in alphabetical order):

  • Alpine; when I'm restricted in bandwidth and/or disk space. FWIW, apk is even faster than whatever is found on Arch.
  • Arch; if I just need a certain package and can't be bothered to look up if it's available on any of the others. Yup, the AUR strikes yet again. Furthermore, if I'm troubleshooting and I find myself on the ArchWiki, then in order to prevent edge cases from happening and thus the provided solutions to not work on the non-Arch distrobox; I rely on the Arch distrobox. It doesn't hurt that pacman (or any of the AUR helpers) are blazing fast. However, if I intend to rely on said AUR packages over longer periods of time, then I often do look for an alternative distrobox to grab the package from instead. While the AUR is excellent for the amount of packages it has, the security standards aren't the best. Thus, if you're security-conscious, then it's better to rely on AUR packages sparingly, unless you're willing to get into the nitty gritty and check how they're built, how the package is maintained and if its maintainer(s) is reliable.
  • Bazzite-Arch; my go-to for gaming.
  • Fedora; as I'm already on Fedora Atomic, relying on Fedora distroboxes makes the most sense security-wise. Fedora is also known to take security very seriously themselves, so in general this is just very pleasant to rely on for security reasons. The only reason why one should not rely on Fedora for security reasons would be if they're already on something from openSUSE (like Aeon/Kalpa/Tumbleweed etc). In that case, going for an openSUSE distrobox makes more sense for security. Furthermore, if the package I need is one that's widely accessible, then I also rely on Fedora distroboxes. Lastly, currently, my development environments are all Fedora distroboxes. I might eventually change these to Wolfi distroboxes or simply rely on Nix, but that's still WIP for me.
  • Ubuntu; I've had to rely on these a couple of times to use software that's known to target Ubuntu. Most recently it was with Matlab IIRC.
  • Wolfi; For the security-conscious, this is probably the best choice. Unfortunately, I've only experimented with it so far without too much success. Thankfully, the Bluefin project has made some good use out of it. So I'll try to emulate their ways in the near future.

Notable mention goes out to Davincibox. Unfortunately my laptop doesn't have a dedicated GPU, so I can't make use of it. But it's something I'm keeping my eyes on.

NixOS is not a supported container distro, but I do have Nix installed through The Determinate Nix Installer. It's somewhat underutilized currently, though πŸ˜….


  1. The images will be the toolbox ones if available.
[–] throwawayish@lemmy.ml 7 points 2 years ago (2 children)

Oh wow! This is excellent news! I hope they'll also provide other privacy/security related features like Heads, the removal of the camera and/or microphone modules, pre-installed privacy screen, tamper-evident screws and packaging.

12
submitted 2 years ago* (last edited 2 years ago) by throwawayish@lemmy.ml to c/privacyguides@lemmy.one
 

Disclaimer: I'm not affiliated in any way to any of the parties involved in this review. I just enjoy reading Solène's writings in general and found myself to be especially in fond of this specific article. I share this in the hopes that others might somehow benefit from this as well!

The relevance of the review for this specific community would be that NovaCustom produces excellent laptops to be used with Linux (and other open source operating systems). Furthermore, in the review the reviewer installs a bunch of different distros and tests how they work on the device. Perhaps most importantly; Qubes OS -which is endorsed by Privacy Guides- has this specific device on their Certified hardware page. Which already is very commendable, however it's extra special when one realizes it's the only laptop with a modern CPU on the list.

2
submitted 2 years ago* (last edited 2 years ago) by throwawayish@lemmy.ml to c/linuxhardware@lemmy.ml
 

Disclaimer: I’m not affiliated in any way to any of the parties involved in this review. I just enjoy reading SolΓ¨ne’s writings in general and found myself to be especially in fond of this specific article. I share this in the hopes that others might somehow benefit from this as well!

24
submitted 2 years ago* (last edited 2 years ago) by throwawayish@lemmy.ml to c/linux@lemmy.ml
 

Disclaimer: I'm not affiliated in any way to any of the parties involved in this review. I just enjoy reading Solène's writings in general and found myself to be especially in fond of this specific article. I share this in the hopes that others might somehow benefit from this as well!

The relevance of the review for this specific community would be that NovaCustom produces excellent laptops to be used with Linux (and other open source operating systems). Furthermore, in the review the reviewer installs a bunch of distros and tests how they work on the device.

 

cross-posted from: https://lemmy.ml/post/9648279

I would like to premise this with the following:

  • The best approach is probably just testing out each and every editor that interests me until I've found what works best for me.
    • However, I wonder to what degree a test as such would be representative when the likes of Emacs and (Neo)Vim are considered; both of which are known for being a life time learning process.
  • I don't literally expect Emacs or (Neo)Vim to be drop-in replacements for any IDE. Some of the most basic IDE-functions are absent by default and some (perhaps more advanced) functionality might simply not be attainable at all.
  • I am not interested in anything that remotely resembles a flame war. The community at Lemmy has so far been very kind to me; let's keep it that way 😜.

Motivation

I've had experiences with Atom, VS Code and some of Jetbrains' IDEs like Pycharm and Rider. While I've been generally content with all of them, it leaves a bad taste in my mouth whenever I'm forced to switch IDEs because their lifetimes and/or lack of extensibility doesn't allow me to responsibly continue using them. As such, I'm interested in a long time investment that will grow as I will. Both Emacs and (Neo)Vim have passed the test of time and I honestly don't think they'll cease to exist in the upcoming decades, that's why I would love to start using either one of them.

Furthermore, Vi(m) keybindings seem to be somewhat ubiquitous and almost any IDE offers some support. As such, improving my Vi(m)-game should only net-positive my productivity (at least eventually). Also, fluency will benefit me whenever I'm remote accessing any random server as they will always have Vi(m) installed. Thankfully, this doesn't force me to use Vi(m) (or Neovim) just yet, because Emacs offers with Evil perhaps the single best Vi(m) implementation; outside of native Vi(m)*.

My setup:

  • I'm on a custom image of uBlue using their startingpoint as template. For those unaware; an oversimplification would be that it is Fedora Silverblue with some extras.
  • As such, I would like to have my developer environments local and have used Distrobox to that extent using steps similar to the ones outlined over here. But I'm not married to that specific way of utilizing local containers. So please feel free to recommend me something that's at least as good.
  • If I go for Emacs, then I will definitely rely on Evil.
  • If possible, I would like to use it for C#, Python and Rust. Furthermore, I engage in editing Bash scripts, Dockerfiles, Linux config files, texts written in Latex and/or Markdown and other files written in Nix or JSON. As both are very extensible, I don't expect any issues, but I might be wrong.

Questions:

  • First of all, does it make sense for me to only consider these two?
  • Can the split between Vim and Neovim be interpreted as the first schism and as such be a forebode for what's yet to come?
  • Google Trends suggests that Neo(Vim) is ever-popular. On the other hand; not only is Emacs relatively less popular, but its popularity seems to be slightly declining. Should this worry me regarding their long-time future? Especially considering that a thriving community is literally the lifeline for both of them.
  • For those that have used both extensively, which one do you prefer (if any) and why?
  • While I understand that the power of both of them lies primarily in how one can literally make them behave however suits their workflow best. Therefore, the use of premade configs and/or starter kits/distributions should (ideally) only be used either temporary or as a starting point. However, at this point, they provide a decent showcase of what each 'platform' has to offer. So:
 

cross-posted from: https://lemmy.ml/post/9648279

I would like to premise this with the following:

  • The best approach is probably just testing out each and every editor that interests me until I've found what works best for me.
    • However, I wonder to what degree a test as such would be representative when the likes of Emacs and (Neo)Vim are considered; both of which are known for being a life time learning process.
  • I don't literally expect Emacs or (Neo)Vim to be drop-in replacements for any IDE. Some of the most basic IDE-functions are absent by default and some (perhaps more advanced) functionality might simply not be attainable at all.
  • I am not interested in anything that remotely resembles a flame war. The community at Lemmy has so far been very kind to me; let's keep it that way 😜.

Motivation

I've had experiences with Atom, VS Code and some of Jetbrains' IDEs like Pycharm and Rider. While I've been generally content with all of them, it leaves a bad taste in my mouth whenever I'm forced to switch IDEs because their lifetimes and/or lack of extensibility doesn't allow me to responsibly continue using them. As such, I'm interested in a long time investment that will grow as I will. Both Emacs and (Neo)Vim have passed the test of time and I honestly don't think they'll cease to exist in the upcoming decades, that's why I would love to start using either one of them.

Furthermore, Vi(m) keybindings seem to be somewhat ubiquitous and almost any IDE offers some support. As such, improving my Vi(m)-game should only net-positive my productivity (at least eventually). Also, fluency will benefit me whenever I'm remote accessing any random server as they will always have Vi(m) installed. Thankfully, this doesn't force me to use Vi(m) (or Neovim) just yet, because Emacs offers with Evil perhaps the single best Vi(m) implementation; outside of native Vi(m)*.

My setup:

  • I'm on a custom image of uBlue using their startingpoint as template. For those unaware; an oversimplification would be that it is Fedora Silverblue with some extras.
  • As such, I would like to have my developer environments local and have used Distrobox to that extent using steps similar to the ones outlined over here. But I'm not married to that specific way of utilizing local containers. So please feel free to recommend me something that's at least as good.
  • If I go for Emacs, then I will definitely rely on Evil.
  • If possible, I would like to use it for C#, Python and Rust. Furthermore, I engage in editing Bash scripts, Dockerfiles, Linux config files, texts written in Latex and/or Markdown and other files written in Nix or JSON. As both are very extensible, I don't expect any issues, but I might be wrong.

Questions:

  • First of all, does it make sense for me to only consider these two?
  • Can the split between Vim and Neovim be interpreted as the first schism and as such be a forebode for what's yet to come?
  • Google Trends suggests that Neo(Vim) is ever-popular. On the other hand; not only is Emacs relatively less popular, but its popularity seems to be slightly declining. Should this worry me regarding their long-time future? Especially considering that a thriving community is literally the lifeline for both of them.
  • For those that have used both extensively, which one do you prefer (if any) and why?
  • While I understand that the power of both of them lies primarily in how one can literally make them behave however suits their workflow best. Therefore, the use of premade configs and/or starter kits/distributions should (ideally) only be used either temporary or as a starting point. However, at this point, they provide a decent showcase of what each 'platform' has to offer. So:
 

cross-posted from: https://lemmy.ml/post/9648279

I would like to premise this with the following:

  • The best approach is probably just testing out each and every editor that interests me until I've found what works best for me.
    • However, I wonder to what degree a test as such would be representative when the likes of Emacs and (Neo)Vim are considered; both of which are known for being a life time learning process.
  • I don't literally expect Emacs or (Neo)Vim to be drop-in replacements for any IDE. Some of the most basic IDE-functions are absent by default and some (perhaps more advanced) functionality might simply not be attainable at all.
  • I am not interested in anything that remotely resembles a flame war. The community at Lemmy has so far been very kind to me; let's keep it that way 😜.

Motivation

I've had experiences with Atom, VS Code and some of Jetbrains' IDEs like Pycharm and Rider. While I've been generally content with all of them, it leaves a bad taste in my mouth whenever I'm forced to switch IDEs because their lifetimes and/or lack of extensibility doesn't allow me to responsibly continue using them. As such, I'm interested in a long time investment that will grow as I will. Both Emacs and (Neo)Vim have passed the test of time and I honestly don't think they'll cease to exist in the upcoming decades, that's why I would love to start using either one of them.

Furthermore, Vi(m) keybindings seem to be somewhat ubiquitous and almost any IDE offers some support. As such, improving my Vi(m)-game should only net-positive my productivity (at least eventually). Also, fluency will benefit me whenever I'm remote accessing any random server as they will always have Vi(m) installed. Thankfully, this doesn't force me to use Vi(m) (or Neovim) just yet, because Emacs offers with Evil perhaps the single best Vi(m) implementation; outside of native Vi(m)*.

My setup:

  • I'm on a custom image of uBlue using their startingpoint as template. For those unaware; an oversimplification would be that it is Fedora Silverblue with some extras.
  • As such, I would like to have my developer environments local and have used Distrobox to that extent using steps similar to the ones outlined over here. But I'm not married to that specific way of utilizing local containers. So please feel free to recommend me something that's at least as good.
  • If I go for Emacs, then I will definitely rely on Evil.
  • If possible, I would like to use it for C#, Python and Rust. Furthermore, I engage in editing Bash scripts, Dockerfiles, Linux config files, texts written in Latex and/or Markdown and other files written in Nix or JSON. As both are very extensible, I don't expect any issues, but I might be wrong.

Questions:

  • First of all, does it make sense for me to only consider these two?
  • Can the split between Vim and Neovim be interpreted as the first schism and as such be a forebode for what's yet to come?
  • Google Trends suggests that Neo(Vim) is ever-popular. On the other hand; not only is Emacs relatively less popular, but its popularity seems to be slightly declining. Should this worry me regarding their long-time future? Especially considering that a thriving community is literally the lifeline for both of them.
  • For those that have used both extensively, which one do you prefer (if any) and why?
  • While I understand that the power of both of them lies primarily in how one can literally make them behave however suits their workflow best. Therefore, the use of premade configs and/or starter kits/distributions should (ideally) only be used either temporary or as a starting point. However, at this point, they provide a decent showcase of what each 'platform' has to offer. So:
 

I would like to premise this with the following:

  • The best approach is probably just testing out each and every editor that interests me until I've found what works best for me.
    • However, I wonder to what degree a test as such would be representative when the likes of Emacs and (Neo)Vim are considered; both of which are known for being a life time learning process.
  • I don't literally expect Emacs or (Neo)Vim to be drop-in replacements for any IDE. Some of the most basic IDE-functions are absent by default and some (perhaps more advanced) functionality might simply not be attainable at all.
  • I am not interested in anything that remotely resembles a flame war. The community at Lemmy has so far been very kind to me; let's keep it that way 😜.

Motivation

I've had experiences with Atom, VS Code and some of Jetbrains' IDEs like Pycharm and Rider. While I've been generally content with all of them, it leaves a bad taste in my mouth whenever I'm forced to switch IDEs because their lifetimes and/or lack of extensibility doesn't allow me to responsibly continue using them. As such, I'm interested in a long time investment that will grow as I will. Both Emacs and (Neo)Vim have passed the test of time and I honestly don't think they'll cease to exist in the upcoming decades, that's why I would love to start using either one of them.

Furthermore, Vi(m) keybindings seem to be somewhat ubiquitous and almost any IDE offers some support. As such, improving my Vi(m)-game should only net-positive my productivity (at least eventually). Also, fluency will benefit me whenever I'm remote accessing any random server as they will always have Vi(m) installed. Thankfully, this doesn't force me to use Vi(m) (or Neovim) just yet, because Emacs offers with Evil perhaps the single best Vi(m) implementation; outside of native Vi(m)*.

My setup:

  • I'm on a custom image of uBlue using their startingpoint as template. For those unaware; an oversimplification would be that it is Fedora Silverblue with some extras.
  • As such, I would like to have my developer environments local and have used Distrobox to that extent using steps similar to the ones outlined over here. But I'm not married to that specific way of utilizing local containers. So please feel free to recommend me something that's at least as good.
  • If I go for Emacs, then I will definitely rely on Evil.
  • If possible, I would like to use it for C#, Python and Rust. Furthermore, I engage in editing Bash scripts, Dockerfiles, Linux config files, texts written in Latex and/or Markdown and other files written in Nix or JSON. As both are very extensible, I don't expect any issues, but I might be wrong.

Questions:

  • First of all, does it make sense for me to only consider these two?
  • Can the split between Vim and Neovim be interpreted as the first schism and as such be a forebode for what's yet to come?
  • Google Trends suggests that Neo(Vim) is ever-popular. On the other hand; not only is Emacs relatively less popular, but its popularity seems to be slightly declining. Should this worry me regarding their long-time future? Especially considering that a thriving community is literally the lifeline for both of them.
  • For those that have used both extensively, which one do you prefer (if any) and why?
  • While I understand that the power of both of them lies primarily in how one can literally make them behave however suits their workflow best. Therefore, the use of premade configs and/or starter kits/distributions should (ideally) only be used either temporary or as a starting point. However, at this point, they provide a decent showcase of what each 'platform' has to offer. So:
 

Incoming long post, please consider reading at least the following TL;DR before commenting.

TL;DR: Interested in finding the means to manage my dotfiles in a declarative, 'immutable'/read-only way and with automatic sync across two devices (and a fleet of container environments). The method shouldn't require the management of my packages.


First of all, I'm still relatively new to managing dotfiles. So far, git has been doing fine, but time has come to upgrade.

Goals: As I've moved from a non-declarative way of administrating my system to one in which some elements are declarative, it just feels appropriate to apply a touch of 'declarative-ness' to managing dotfiles as well.

Furthermore, as I've been using image-based ('immutable') distros for some time already, I want to explore the possibilities of managing dotfiles within that 'immutable' paradigm.

Specifics of my usage: The primary desire is to have it working on two systems simultaneously. If possible, changes to one should 'automatically' apply to the other and vice versa. Furthermore, the exact content of the managed dotfiles is not the same on both, so differentiation is a requirement. My container workloads can be handled by the likes of chezmoi and or yadm. Nonetheless, being able to manage their dotfiles as well is definitely a plus.

Options that I've explored and associated (potential) challenges:

  • Nix' Home Manager. From what I've gathered, this offers by default most of what I desire. However, I'm interested to know what the limitations are of managing dotfiles only as I'm not interested in installing any Nix packages. So it would have to manage the dotfiles of packages/software/whatever that weren't installed with Nix. ~~Furthermore, to my knowledge, Nix doesn't play nice with container environments; while this is not a hard requirement, I hope to be wrong on this.~~ EDIT: Could not find sources to back this up.

  • Guix with guix home. Unless I'm wrong, this is Guix' Home Manager. So it's met with similar challenges like those found in the previous paragraph. Furthermore, I'm interested to know if either of the two fares better than the other for my use case.

  • While chezmoi, yadm and other known dotfiles managers technically offer a solution, their respective solutions aren't declarative or 'immutable' by default. While I'm sure someone might be able to hack one of them to better fit my needs, I'm not sure if I'm personally willing to commit to that. EDIT: Apparently chezmoi is declarative. I currently wonder which other dotfiles managers I might have mistakenly dismissed for disregarding the possibility that they might be declarative. Furthermore, chezmoi seems to allow declarative control on the read-write permissions of files, which might allow restricting files to just read-only.

  • Old, trusty git. Probably furthest removed from what I desire by default, but perhaps someone knows how to make it fit regardless.

Please feel free to inform me if I've missed anything! Thanks in regards πŸ™‚ !

EDIT: So far chezmoi has surprised me pleasantly with the possibilities it offers. But before committing, I would like to have some input from our residents that swear by Nix/Guix.


Update: It has been over 24 hours since the last time a comment was posted under this post. While I do hope to receive replies from at least two commenters eventually, I'm less optimistic on getting any replies from those that have significant experience with guix home. Though I'd love to be wrong on that.

For posterity's sake; first of all, this has been a great conversation and so I'd like to thank everyone that has contributed! Secondly, I've tried to spend a good portion of the last 24 hours to read up on the subjects that were touched upon and evaluate them accordingly. This has led to the following discoveries that might be worth sharing:

  • Ansible is a legitimately good piece of software that can be used for this purpose, even if chezmoi's author implies not to be a fan of this.
  • While Ansible applies configs 'convergent' (when done right), Nix' Home Manager is able to do so 'congruent' and does so effortlessly in the sense that -with the advent of flakes- one 'simply' does it the 'correct' way regardless (though checks and whatnot help elevate everyone to that level relatively easily). I'm not confident on how chezmoi fares compared to the other two. Refer to this article for more info on what 'convergent' and 'congruent' mean in this context. (TL;DR: "ansible will make changes to get it closer to a target state, whereas nix will reach the target state by constructing the target state again")
  • Due to the point raised in the previous bullet, (when mastered) Nix' Home Manager simply seems a far superior option compared to Ansible. Thus Ansible is dismissed in favor of Nix' Home Manager.
  • I've also come to appreciate how powerful of a tool chezmoi is. Nonetheless, I couldn't stop noticing how many people that have used chezmoi at some point in time eventually switched to Nix' Home Manager for salvation. With those that didn't stick to Nix' Home Manager being open that it was often related to not being able to get it to work *gulp*...
  • At this point it seems that Nix' Home Manager is the clear victor, but Guix' guix home hasn't been represented (yet). So that's what I intend to figure out before committing fully to either Nix' Home Manager or (perhaps) Guix' guix home.
  • As a final note, using any of the tools mentioned doesn't exclude the use of the other tools. Sometimes one tool just fares better in one particular task compared to the other. Thus, one should not be afraid to mix and match these to best fit their needs. As such; a setup in which Ansible, chezmoi and Nix' Home Manager are used together to manage the dotfiles is perfectly fine.

Final update: (for the foreseeable future)

  • The question how Nix' Home Manager fares against Guix' guix home didn't matter in the end πŸ˜…, but this is related to how my system works. In case it wasn't clear yet, I daily drive Fedora Silverblue. And as it stands, I'm unaware of any method that enables one to install Guix on Fedora Silverblue without putting SELinux from enforcing to permissive. I don't want to forego SELinux' enforcing mode for Guix, especially when Nix can be installed without being forced to do that. As such, I'll start my (perhaps long overdue) journey into the wonderful world of Nix. I would like to once again thank everyone that has contributed! And also thank you for reading this :P !
view more: next β€Ί