• 32 Posts
  • 728 Comments
Joined 1 year ago
cake
Cake day: June 15th, 2023

help-circle
  • As always, if you upload an image as post content, then at least link to the project in the post body: https://vanillaos.org Not because its hard to type, its just good practice in my opinion. Gets more true the more complicated the links get, BTW. /rant over

    In short, this distribution is based on Distrobox, which is a manager to install applications from various other distributions. So it comes with a package manager, that is actually managing Distrobox. The cool thing about Distrobox is, that you can install packages from Arch or Ubuntu and they are all sandboxed in their environment. But you can “export” those apps, so that it integrates into your actual host system. BTW its not emulation, its sandboxed like Flatpak is in example.

    I’m curious about this OS for a very long time. But to me it complicates stuff a bit over a regular OS. I’m not ready for Distrobox, but love the concept it has. If I was on Debian, then this would be a whole lot more interesting to me. But when I think about, its probably not bad for developers too. Maybe I’ll get into it someday.



  • What does the author mean with “legacy”? I thought that meant “abandoned”.

    Legacy to me does not mean abandoned, but the previous version that is still needed. It does not tell you if its “supported”. Abandoned would be a software no longer in “supported” to me. But that does not say if its still needed today. So legacy and abandoned are similar, but not the same, only sometimes the same. Legacy software or hardware can be popular in usage too. In example old graphics cards like GTX 1070 are legacy and use legacy drivers. They are somewhat popular still. The official drivers from Nvidia still support this older graphics card, so they are not abandoned, only legacy.

    This is what my definition of these words. I don’t think Github itself is legacy nor abandoned. I personally am just a very simple Git user and use Github through the git command and for some tasks through the website of Github. It’s fine for me and I don’t care if someone calls it legacy or abandoned. It’s not.


  • What I forgot in my previous comment: I have bunch of *rc aliases to open a specific config file with my neovim. It does not matter how the configuration file is named, with an extension, with rc in name, in what directory, it always follows the pattern singlecharacter+rc. Here some examples:

    alias brc='nvim ~/.bashrc && source ~/.bashrc'
    alias nrc='nvim ~/.config/nvim'
    

    As you see, it can even be a directory and not a file in case of nvim config. It would then show a filemanager on that directory with many config files.

    Edit: Another thing I forgot (man I’m getting old) is that you can add a backslash at the front of a command, to run the actual command and not an alias. A common example is to have alias='grep --color=auto' and alias='ls --color=auto' . If this gets in your way, just run the command as \grep or \ls to run the original command instead.



  • Disadvantages are, that you probably won’t learn the actual command and forget how to do it manually when needed. And that the Bash history will log the name of the alias instead full command.

    I definitely think its a good idea to have a simple command running multiple commands, down to single letter changes as in alias vim='nvim' . Updating the system in particular needs an alias to me, because I combine much more with it (yay, flatpak, rustup) and at the end let balooctl6 check for new files to index:

    alias update='eos-update --yay \
        && flatpak uninstall --unused \
        && flatpak update \
        && rustup update \
        && balooctl6 check'
    

    In general, I setup a shortcut to expand aliases to their target with CTRL+Space. That means if I type update and hit CTRL+Space, then it will be expanded to the entire list of what it would execute. This allows me to check what the command does and change something before execution. Also the history will log the long format this way, instead the name of the alias. I believe its this line in my .bashrc:

    # Expand alias with key binding "Control+Space".
    bind '"\C- ":alias-expand-line'
    

    Sometimes I also use functions. Functions can’t be expanded. A distinguishing factor between Functions or Aliases set directly in your Bash is, that they have access to all variables and states in the .bashrc. A dedicated script would be much better isolated from your .bashrc file.



  • I use Vim, more specifically Neovim with the LazyVim setup. It turns it into a full fledged IDE basically, with LSPs, hotkeys and everything setup. I started a few years ago with original Vim without plugins. I have 2 problems with my current setup: a) I don’t understand the complete setup and don’t know Lua enough, and b) LazyVim actually updates ton and sometimes things break.

    And last time it broke something with my Rust setup, I could not find a solution quickly, but was working on a Rust project. So I installed VSCode the first time, but the Open Source version just called Code in the Linux repositories. But because it is Open Source, it does not come with the VSCode addon repository from Microsoft. I didn’t want do that, so I went back to solving the issue with my Neovim setup. Shortly after I found the solution and worked on my (little) project.

    All in all, if you just want an out of the box experience without too much tinkering or problem solving, I wouldn’t recommend the Vim route. There is lot of stuff you have to setup, or at least change settings and understand how to do this. I assume the VSCode version from Microsoft has a better out of the box experience, from the just works perspective.



  • Off course the package manager runs as root. I meant the packages itself does not. I mean every package manager for your system, including Flatpak, Apt, Pacman requires root. Snap packages are better sandboxed (on Ubuntu) than Flatpak or any other system packages.

    Look, I don’t like Snaps and they were one of the reasons why I switched away from Ubuntu after 13 years. But your argumentation doesn’t work for me. If any of the applications updates a bad update, then it wouldn’t make the system unbootable. Crowdstrike software on the other hand are closed source and they had privileges to do everything on your system, as it was installed as Kernel level access program. None of this is true for Snap packages that are auto updated, nor is it true for Flatpak packages.

    I am not saying nothing can happen, but because Snap packages are updating itself automatically does not equal Canonical = Crowdstrike. Most packages are not even packaged up by Canonical.

    Edit: I think if you continue with this narrative, it would really hurt Linux adoption for no reason. Because people not familiar would say Ubuntu=Linux=Crowdstrike. They don’t even need to install into Crowdstrike to get a strike, they just need to use the most popular Linux distribution Ubuntu. I mean this is what you are basically suggesting.