Here is my current configuration:

config.scm
(use-modules
 (gnu)
 (gnu packages admin)
 (gnu packages certs)
 (gnu packages fonts)
 (gnu packages gnome)
 (gnu packages package-management)
 (gnu packages text-editors)
 (gnu packages terminals)
 (gnu packages wm)
 (gnu packages xdisorg)
 (nongnu packages linux)
 (nongnu packages mozilla)           
 (nongnu system linux-initrd))

(use-service-modules
 desktop networking ssh xorg)

(operating-system
 (host-name "guix")
 (kernel linux)
 (initrd microcode-initrd)
 (firmware (cons*
  realtek-firmware
  %base-firmware))
 (timezone "Asia/Kolkata")
 (locale "en_IN.utf8")
 (keyboard-layout (keyboard-layout "in" "en"))

 (bootloader
  (bootloader-configuration
   (bootloader grub-efi-bootloader)
   (targets '("/boot"))))

 (file-systems (cons*
  (file-system
   (device (file-system-label "guix"))
   (mount-point "/")
   (type "btrfs"))
  (file-system
   (device (uuid "C938-C7C0" 'fat))
   (mount-point "/boot")
   (type "vfat"))
   %base-file-systems))

 (swap-devices
  (list
   (swap-space
    (target
     (uuid "4550d1a4-3566-47a2-a3bc-8d77c87acc62")))))
 
 (users (cons
  (user-account
   (name "guix")
   (comment "Guix System")
   (group "users")
   (supplementary-groups '("wheel" "netdev" "audio" "video")))
   %base-user-accounts))

 (packages (cons*
  gnome-tweaks kakoune
  nss-certs tree nix
  firefox font-google-noto
  font-google-noto-emoji
  font-google-noto-sans-cjk
  font-google-noto-serif-cjk
  font-awesome %base-packages))
 
 (services (cons*
  (service openssh-service-type)
  (service bluetooth-service-type)
  (service xfce-desktop-service-type)
  (modify-services %desktop-services
   (guix-service-type
    config =>
    (guix-configuration
     (inherit config)
     (substitute-urls (cons*
      "https://substitutes.nonguix.org"
      %default-substitute-urls))
     (authorized-keys (cons*
      (local-file "./signing-key.pub")
      %default-authorized-guix-keys))))))))

I am currently on a low-end laptop, as my device has broken down. It runs on 4GB of RAM, and GNOME is pretty heavy on this device. I am looking for a custom WM setup based on Wayland preferably (river, hyprland, sway or dwl). I do not want any fancy shortcuts for terminal or any other app. I want to be able to use a launcher and toggle between workspaces. I want snapping and multi-window gestures just like how it works on GNOME. I would appreciate shortcut icons for shutdown, wifi and sound. And last but not the least, I want to be able to control brightness and light/dark mode.

Can anyone recommend me how I can start setting up a WM in this config file? What do I need to add, apart from the WM itself?

  • @BRINGit34@lemmygrad.ml
    link
    fedilink
    English
    3
    edit-2
    3 months ago

    So what you are describing is anything but a miminal window manager experience. If you want all the features of a desktop enviorment you will need to use a desktop enviorment. I use sway and I can’t even imagine the config file it would require to have something behave like gnome.

    I will say however you can have a user friendly experience on a wm. Rofi now has a wayland version and it can be setup to have power and wifi switches as well as appicons on the launcher.

    Not to mention the fact that if you were to use sway it would be completely absent of animation. You’d probably want something like hyprland which has alot of support for animations and looks very nice.

    Imho it would be worth it to just learn a wm on a low power device. It’s very rewarding once you get used to it and can be made to look very nice

    Edit: You may want to try a pre-configured wm like swayOS

  • @drndramrndra@lemmygrad.ml
    link
    fedilink
    3
    edit-2
    3 months ago
    1. Go and watch systemcrafters videos on guix. The “install guix as an OS” one will teach you the basics. Maybe the follow-up ones, can’t remember which deals with basic package management

    2. Install all of those WMs and try them out. Login manager setup should be automatic

    3. Learn how to customize the one you like in order to give it those features you want

    4. If necessary, install and customise a bar like polybar