I’m not a bot.

  • 56 Posts
  • 444 Comments
Joined 6 months ago
cake
Cake day: January 21st, 2025

help-circle

  • Many of them don’t even allow it to be a hidden file—they just require a fully unhidden “tool.yml” file sitting right there in the root of your project.

    I love this. I hate when tools only allow hidden config files. I want to know where the config is—my teammates should be aware of where the config is. I don’t want to be tricked into thinking there isn’t a config file in a directory.

    I actually have alias ls='ls -A' in my bashrc so I see everything.


  • I’ve been enjoying Guix for the last 8 days. You declare your OS and home config in a file and you can check them into source control. It was originally a fork of NixOS, but has diverged a lot.

    The CLIs and APIs are pretty nice. They have a concept of “channels”, which are git repos you can download software from. The default official channel only hosts FOSS software, but you can trivially add non-FOSS channels and they work just as well as the first-party channels.

    Each channel update and package install, removal, update get put on a log, which you can trivially jump between. guix package --switch-genereation=28 and boom you’re at that generation (it’s like a git commit). The software and config changes get saved in the generation so the jump is clean and atomic. I actually bisected my OS yesterday to track a bug! That was cool. You can also create and share isolated, reproducible environments.

    Guix works with Flatpak and distrobox as well, in case some software isn’t available in existing channels. I got HiDPI, Zoom, Logseq, Syncthing, and Tailscale working.

    The biggest drawback for me so far is that it doesn’t use systemd. Not sure if it’s a dealbreaker for me yet. Systemd does way more than just manage system services, so GNU Shepherd (which Guix uses) isn’t a real replacement.












  • A privacy-focused operating system may seem more trouble than it’s worth. But when I replaced Google’s Pixel OS with GrapheneOS, I found it to be a transformative experience. For one, the installation was painless, and I didn’t lose any modern software features. Installing aftermarket operating systems used to equal a compromised smartphone experience, but I didn’t find that to be true in the case of GrapheneOS.

    Case in point: even though GrapheneOS doesn’t include any Google services, I was surprised to find that you can install the Play Store with relative ease and almost all apps work flawlessly — even most banking ones.

    Oh, nice. This sounds promising! I’m adding it to my list: [guix, emacs, graphene]







  • So while I almost exclusively use the command line, I do it all from within the Emacs GUI.

    That’s good to hear. Normally, I have a bunch of file and terminal buffers open in Vim and work across all of them—and stay in Vim the whole time. (Well, unless I need something like a browser.)

    Sounds like this is definitely possible in Emacs. Good! I was scared for a moment because I thought I would have to… gasps alt-tab between Emacs and my terminal.


  • Btw, here’s how you configure HiDPI for GNOME. Unfortunately, my laptop has a hydeepeeay display, so it’s not fully compatible with Linux. (It’s 3840x2160, so at least 2x scaling is possible, hypothetically.)

    Commands from the Arch Wiki, but also adds cursor scaling:

    $ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "[{'Gdk/WindowScalingFactor', <2>}, {'Gtk/CursorThemeSize', <48>}]"
    $ gsettings set org.gnome.desktop.interface scaling-factor 2
    

    The default GNOME configuration is some how missing that. I didn’t have to do that in Arch, but I do in Guix. IDK. Anyway, if you don’t run those commands certain apps will be tiny, including a tiny mouse cursor.



  • Oooooh, ok. Thanks for breaking that down.

    What about Emacs GUI vs Emacs TUI? Do people run Emacs as a terminal app? Or is the typical way of running Emacs as a GUI app? How’s the shell integration with the GUI app? Normally, I like staying in the terminal.