player.scm (3081B)


      1 (define-module (home player)
      2   #:use-module (gnu home)
      3   #:use-module (gnu home services)
      4   #:use-module (gnu home services desktop)
      5   #:use-module (gnu home services fontutils)
      6   #:use-module (gnu home services shells)
      7   #:use-module (gnu home services sound)
      8   #:use-module (gnu home services sway)
      9   #:use-module (gnu home services xdg)
     10   #:use-module (gnu packages admin)
     11   #:use-module (gnu packages base)
     12   #:use-module (gnu packages emulators)
     13   #:use-module (gnu packages fonts)
     14   #:use-module (gnu packages games)
     15   #:use-module (gnu packages terminals)
     16   #:use-module (gnu packages text-editors)
     17   #:use-module (gnu packages toys)
     18   #:use-module (gnu packages version-control)
     19   #:use-module (gnu packages wm)
     20   #:use-module (gnu packages xdisorg)
     21   #:use-module (gnu services)
     22   #:use-module (guix gexp)
     23   #:use-module (guix packages)
     24   #:use-module (mt packages games)
     25   #:use-module (mt packages fonts)
     26   #:export (player-home-environment))
     27 
     28 ;; This home-environment is intended to act like a game console, using SCOUT as
     29 ;; the main interface which in turn uses Sway to manipulate windows and
     30 ;; configure seats.
     31 
     32 ;; It's a bit of a pet project and is pretty jank in its current state.
     33 
     34 (define %sway-packages
     35   (list sway
     36         foot
     37         scout))
     38 
     39 (define %sway-outputs
     40   (list (sway-output
     41          (identifier "Technical Concepts Ltd 55R617 Unknown")
     42          (resolution "1920x1080@60.000Hz"))))
     43 
     44 (define %sway-startup-programs
     45   (list "foot --server"
     46         "scout"))
     47 
     48 (define %sway-configuration
     49   (sway-configuration
     50     (packages %sway-packages)
     51     (outputs %sway-outputs)
     52     (startup-programs %sway-startup-programs)
     53     (extra-content (list "xwayland disable"))))
     54 
     55 (define player-home-environment
     56   (home-environment
     57     (packages
     58       (list ;; Debug apps
     59             btop
     60             kakoune
     61             ;; Fonts
     62             font-fira-mono-nerd-font
     63             font-google-noto-emoji
     64             ;; Utils
     65             git
     66             ;; Games
     67             crispy-doom
     68             freedoom
     69             prismlauncher
     70             vkquake
     71             ;; Emulation
     72             jgrf
     73             jg-bsnes
     74             jg-nestopia
     75             ;; Toys
     76             cbonsai
     77             cmatrix))
     78     (services
     79       (append
     80         (list
     81           (service home-dbus-service-type)
     82           (service home-bash-service-type
     83                    (home-bash-configuration
     84                      (guix-defaults? #f)))
     85           (service home-pipewire-service-type)
     86           (simple-service 'custom-fonts-service
     87                           home-fontconfig-service-type
     88                           (list "~/.guix-home/profile/share/fonts"
     89                                 '(alias
     90                                   (family "monospace")
     91                                   (prefer
     92                                    (family "Fira Mono Nerd Font"))
     93                                   (prefer
     94                                    (family "Noto Color Emoji")))))
     95           (service home-sway-service-type %sway-configuration))
     96         %base-home-services))))
     97 
     98 player-home-environment