Skip Navigation

Posts
20
Comments
317
Joined
6 mo. ago

  • 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.

  • ‘MechaHitler’ incident

    Government: Shut up and take my money!

  • I use Emacs on the daily, and I just can’t get into Scheme.

    Do you find that Elisp and Scheme are too different? I don't know either, so they look almost the same to me.

  • I had to check C-h k that keybinding because it looks legit... 😄

  • I understand this now! 😂

  • Almost! I haven't reached Emacs config bankruptcy yet! 😄

  • Something different. Just plain org mode with org-super-links. I didn't use/understand the daily journal workflow in Logseq. 😅

  • other contributors will not even note you are using it.

    Ooooh, that's interesting.

  • linuxmemes @lemmy.world

    Some TODO app called Emacs?

  • Uh, sorry. I don't follow. Is there a way to tell all programs to write to one file in Guix?

  • I'm in Guix Linux land right now and I miss journald. I'm supposed to wade through all the log files in /var/log myself??

  • 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.

  • Btw, here's how you install distrobox on Guix.

    First, install rootless Podman: https://guix.gnu.org/manual/devel/en/html_node/Miscellaneous-Services.html#Rootless-Podman-Service.

    You need to edit your /etc/config.scm or where ever you store your system config. Import the right modules/services, add your user to cgroup, add iptables-service-type to your services, add rootless-podman-service-type and configure it.

     
        
    (use-service-modules containers networking …)
    (use-modules (gnu system accounts))  ;for 'subid-range'
    
    (operating-system
      ;; …
      (users (cons (user-account
                    (name "alice")
                    (comment "Bob's sister")
                    (group "users")
    
                    ;; Adding the account to the "cgroup" group
                    ;; makes it possible to run podman commands.
                    (supplementary-groups '("cgroup" "wheel"
                                            "audio" "video")))
                   %base-user-accounts))
      (services
        (append (list (service iptables-service-type)
                      (service rootless-podman-service-type
                               (rootless-podman-configuration
                                 (subgids
                                   (list (subid-range (name "alice"))))
                                 (subuids
                                   (list (subid-range (name "alice")))))))
                %base-services)))
    
    
      

    Then of course you run guix system reconfigure /etc/config.scm.

    Now you can do a simple guix install distrobox. If you install distrobox first, you don't end up using rootless podman and you run into more problems that way. (You have to use distrobox --root.)

    After that command, everything should work like normal. Enjoy. 🍻

     txt
        
    distrobox create --image docker.io/library/archlinux:latest --name arch-dev
    distrobox enter arch-dev
    
      
  • Btw, here's the guix home configuration file I used to add the contents of flatpak.sh into my ~/.profile, in order to update the XDG_DATA_HOME env var.

     
        
    (use-modules (gnu home)
                 (gnu home services shells)
                 (guix gexp)
                 (gnu services))
    
    (home-environment
      (services
        (list
          (simple-service 'flatpak-service
                          home-shell-profile-service-type
                          (list (local-file
                                  (string-append (getenv "HOME") "/.guix-profile/etc/profile.d/flatpak.sh")
                                  "flatpak.sh"))))))
    
      
  • guix shell and guix shell container for dev environment isolation

    Yeah! This is one of the features I'm most interested in. I haven't gotten to using this feature yet, but I was curious about it.

    Let's say I'm working on a project that requires Go, Node, maybe some C library, and GNU Make. Seems like I would be able to use guix shell for this, right? Great.

    Now if a friend wanted to work on the project, could I share my guix shell configuration with him? (Assuming he's also a Guix user.)

    I'm currently using distrobox.ini plus distrobox assemble for this kind of workflow, but of course this isn't totally reproducible.

  • When other countries start invading?

  • linuxmemes @lemmy.world

    Need another cup of coffee

    Linux @lemmy.ml

    Installing Guix as a Complete GNU/Linux System - System Crafters

    Selfhosted @lemmy.world

    Google Drive alternative?

    Piracy: ꜱᴀɪʟ ᴛʜᴇ ʜɪɢʜ ꜱᴇᴀꜱ @lemmy.dbzer0.com

    Guides for downloading streams?

    Selfhosted @lemmy.world

    PewDiePie: I'm DONE with Google

    Linux @lemmy.ml

    App recommendations for CalDAV VJOURNAL?

    Programming @programming.dev

    FUTO License, an alternative to Closed Source

    Technology @lemmy.world

    Slate, a customizable EV pickup for $20k

    Asklemmy @lemmy.ml

    Home alarm systems, yah or nah?

    Linux @lemmy.ml

    How to install Tailscale on VanillaOS?

    Linux @lemmy.ml

    Is there a way to force update VanillaOS 2.0 Orchid?

    memes @lemmy.world

    After I fail to invert a binary tree in 3 seconds in an interview

    Ask Lemmy @lemmy.world

    Folks from metric countries, how does Dominic Toretto live his life? What distance at a time?

    Programming @programming.dev

    Codeberg down, berg down

    Funny @sh.itjust.works

    Don't do it

    memes @lemmy.world

    Cybertruck gets rekt

    Mastodon @lemmy.ml

    Can you send a DM in Mastodon?

    Ask Lemmy @lemmy.world

    Thoughts on WebDAV, CardDAV, and CalDAV hosting?

    memes @lemmy.world

    Jobs are definitely going to go away, full stop