config.scm 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. (use-modules (gnu) (gnu system nss))
  2. (use-service-modules desktop sound xorg)
  3. (use-package-modules bootloaders
  4. admin
  5. freedesktop
  6. web-browsers
  7. certs
  8. gnupg
  9. xdisorg
  10. emacs
  11. fonts
  12. vim
  13. password-utils
  14. text-editors
  15. ghostscript
  16. fontutils
  17. haskell-apps
  18. pulseaudio
  19. tmux
  20. jami
  21. base
  22. suckless
  23. wm
  24. gimp
  25. version-control
  26. kde
  27. xorg
  28. gnuzilla
  29. emacs-xyz
  30. audio
  31. video
  32. music
  33. visidata
  34. terminals
  35. telephony
  36. inkscape
  37. libreoffice
  38. chromium)
  39. (define-public %emacs/evil-layer
  40. (map (compose list specification->package+output)
  41. '("emacs-evil"
  42. "emacs-evil-collection"
  43. "emacs-evil-magit"
  44. "emacs-evil-org"
  45. "emacs-lispy"
  46. "emacs-dired-hacks"
  47. "emacs-lispyville")))
  48. (define-public %emacs/core-layer
  49. (map (compose list specification->package+output)
  50. '("emacs"
  51. "emacs-guix"
  52. "emacs-pdf-tools"
  53. "emacs-circe"
  54. "emacs-paredit")))
  55. (define-public %emacs/python-layer
  56. (map (compose list specification->package+output)
  57. '(
  58. "emacs-elpy")))
  59. (define-public %emacs/guile-layer
  60. (map (compose list specification->package+output)
  61. '("emacs-geiser"
  62. "emacs-flycheck-guile")))
  63. (define-public %i3wm-packages
  64. (map (compose list specification->package+output)
  65. '("i3-wm"
  66. "i3status"
  67. "dmenu"
  68. "st")))
  69. (define-public %browser-packages
  70. (map (compose list specification->package+output)
  71. '("nyxt"
  72. ;;"nomad"
  73. "qutebrowser"
  74. "icecat"
  75. "ungoogled-chromium")))
  76. (define-public %terminal-packages
  77. (map (compose list specification->package+output)
  78. '("visidata"
  79. "asciinema"
  80. "nnn"
  81. "udiskie"
  82. "password-store"
  83. "shroud"
  84. "emacs-shroud"
  85. "tmux"
  86. "gnupg"
  87. "darcs"
  88. "git"
  89. "xclip"
  90. ;;(list git "send-email")
  91. "redshift"
  92. "rsync"
  93. "sl"
  94. "wget"
  95. "curl"
  96. "htop"
  97. "unzip"
  98. "vim")))
  99. (define-public %multimedia-packages
  100. (map (compose list specification->package+output)
  101. '("mpv"
  102. "ffmpeg"
  103. "jack"
  104. "pavucontrol"
  105. "sox"
  106. "audacity"
  107. "ardour")))
  108. (define-public %font-packages
  109. (map (compose list specification->package+output)
  110. '("fontconfig"
  111. "glibc-locales"
  112. "gs-fonts"
  113. "font-google-noto"
  114. "font-dejavu"
  115. "font-gnu-freefont")))
  116. (define-public %graphicdesign-packages
  117. (map (compose list specification->package+output)
  118. '("libreoffice"
  119. "inkscape"
  120. "gimp"
  121. #|"krita"|#)))
  122. (define-public %misc-packages
  123. (map (compose list specification->package+output)
  124. '("nss-certs")))
  125. (define-public %audioprogramming-packages
  126. (map (compose list specification->package+output)
  127. '("pd"
  128. "supercollider")))
  129. (define-public %communication-packages
  130. (map (compose list specification->package+output)
  131. '("jami"
  132. ;;"gomuks"
  133. ;;"fractal"
  134. "mumble")))
  135. (define-public %guiledev-packages
  136. (map (compose list specification->package+output)
  137. '("guile-colorized"
  138. "guile-picture-language"
  139. "guile-ncurses"
  140. "haunt")))
  141. (define-public %emacs-packages
  142. (append %emacs/guile-layer
  143. %emacs/core-layer
  144. %emacs/evil-layer
  145. %emacs/python-layer))
  146. (define-public %my-packages
  147. (append %base-packages
  148. %i3wm-packages
  149. %terminal-packages
  150. %browser-packages
  151. %emacs-packages
  152. %font-packages
  153. %audioprogramming-packages
  154. %communication-packages
  155. %multimedia-packages
  156. %graphicdesign-packages
  157. %misc-packages
  158. %guiledev-packages))
  159. (operating-system
  160. (host-name "mango")
  161. (timezone "America/New_York")
  162. (locale "en_US.utf8")
  163. (bootloader (bootloader-configuration
  164. (bootloader grub-bootloader)
  165. (timeout 1)
  166. (target "/dev/sda")))
  167. (file-systems (append
  168. (list (file-system
  169. (device (file-system-label "mango-root"))
  170. (mount-point "/")
  171. (type "ext4")))
  172. %base-file-systems))
  173. (users (cons (user-account
  174. (name "ccao")
  175. (comment "Carla Cao")
  176. (group "users")
  177. (supplementary-groups '("wheel" "netdev"
  178. "audio" "video")))
  179. %base-user-accounts))
  180. (packages %my-packages)
  181. (services (cons* (service xfce-desktop-service-type)
  182. %desktop-services))
  183. ;; Allow resolution of '.local' host names with mDNS.
  184. (name-service-switch %mdns-host-lookup-nss))
  185. ;; (map service '(gnome-desktop-service-type xfce-desktop-service-type mate-desktop-service-type))