refactor(guix): move manifests to Desktop.org

This commit is contained in:
Pavel Korytov 2021-06-11 19:13:03 +03:00
parent f63a3d7c98
commit a3f937cd44
9 changed files with 103 additions and 85 deletions

View file

@ -1,6 +1,4 @@
;; [[file:../../../Guix.org::*Manifests][Manifests:2]]
(specifications->manifest (specifications->manifest
'( '(
"firefox" "firefox"
"ungoogled-chromium")) "ungoogled-chromium"))
;; Manifests:2 ends here

View file

@ -8,6 +8,7 @@
"network-manager-applet" "network-manager-applet"
"light" "light"
"arandr" "arandr"
"xprop"
"xrandr" "xrandr"
"flatpak" "flatpak"
"zathura-djvu" "zathura-djvu"
@ -25,7 +26,6 @@
"curl" "curl"
"bind" "bind"
"polybar" "polybar"
"i3lock"
"i3-gaps" "i3-gaps"
"hicolor-icon-theme" "hicolor-icon-theme"
"papirus-icon-theme" "papirus-icon-theme"

View file

@ -1,5 +1,3 @@
;; [[file:../../../Guix.org::*Manifests][Manifests:5]]
(specifications->manifest (specifications->manifest
'( '(
"texlive")) "texlive"))
;; Manifests:5 ends here

View file

@ -0,0 +1,6 @@
(specifications->manifest
'(
"mpd-watcher"
"picard"
"ncmpcpp"
"mpd"))

View file

@ -1,6 +1,4 @@
;; [[file:../../../Guix.org::*Manifests][Manifests:4]]
(specifications->manifest (specifications->manifest
'( '(
"gimp" "gimp"
"libreoffice")) "libreoffice"))
;; Manifests:4 ends here

View file

@ -1,9 +1,3 @@
;; [[file:../../../Guix.org::*Manifests][Manifests:3]]
(specifications->manifest (specifications->manifest
'( '(
"zlib" ))
"glibc"
"patchelf"
"python"
"openvpn"))
;; Manifests:3 ends here

View file

@ -18,11 +18,14 @@
(use-service-modules desktop networking ssh xorg) (use-service-modules desktop networking ssh xorg)
(use-package-modules ssh) (use-package-modules ssh)
(define %my-desktop-services (define %my-base-services
(modify-services %desktop-services (cons*
(network-manager-service-type config => (service openssh-service-type)
(network-manager-configuration (inherit config) (extra-special-file "/lib64/ld-linux-x86-64.so.2" (file-append glibc "/lib/ld-linux-x86-64.so.2"))
(vpn-plugins (list network-manager-openvpn)))))) (modify-services %desktop-services
(network-manager-service-type config =>
(network-manager-configuration (inherit config)
(vpn-plugins (list network-manager-openvpn)))))))
(define %backlight-udev-rule (define %backlight-udev-rule
@ -76,6 +79,7 @@
(list nss-certs (list nss-certs
git git
i3-gaps i3-gaps
i3lock
openbox openbox
xterm xterm
vim) vim)
@ -83,12 +87,10 @@
(host-name "azure") (host-name "azure")
(services (cons* (services (cons*
(service openssh-service-type)
(set-xorg-configuration (set-xorg-configuration
(xorg-configuration (xorg-configuration
(keyboard-layout keyboard-layout))) (keyboard-layout keyboard-layout)))
(extra-special-file "/lib64/ld-linux-x86-64.so.2" (file-append glibc "/lib/ld-linux-x86-64.so.2")) (modify-services %my-base-services
(modify-services %my-desktop-services
(elogind-service-type config => (elogind-service-type config =>
(elogind-configuration (inherit config) (elogind-configuration (inherit config)
(handle-lid-switch-external-power 'suspend))) (handle-lid-switch-external-power 'suspend)))

View file

@ -180,10 +180,12 @@ IIRC the only thing =lxapparance= does is edit GTK config files.
:header-args+: :tangle ./.config/i3/config :header-args+: :tangle ./.config/i3/config
:END: :END:
| Guix dependency | | Guix dependency | Disabled |
|-----------------| |-----------------+----------|
| i3-gaps | | i3-gaps | |
| i3lock | | i3lock | true |
=i3lock= is disabled because the global one has to be used.
[[https://i3wm.org/][i3wm]] is a manual tiling window manager, which is currently my window manager of choice. I've tried several alternatives, including [[https://xmonad.org/][xmonad]] & [[https://github.com/ch11ng/exwm][EXWM]], but i3 seems to fit my workflow best. [[https://i3wm.org/][i3wm]] is a manual tiling window manager, which is currently my window manager of choice. I've tried several alternatives, including [[https://xmonad.org/][xmonad]] & [[https://github.com/ch11ng/exwm][EXWM]], but i3 seems to fit my workflow best.
@ -2013,7 +2015,71 @@ set recolor true
map <C-r> set recolor false map <C-r> set recolor false
map <C-R> set recolor true map <C-R> set recolor true
#+end_src #+end_src
* Flatpak * Various software
This section generates manifests for various desktop software that I'm using.
** Browsers
| Category | Guix dependency |
|----------+--------------------|
| browsers | ungoogled-chromium |
| browsers | firefox |
** Office
| Category | Guix dependency |
|----------+-----------------|
| office | libreoffice |
| office | gimp |
** Music
| Category | Guix dependency |
|----------+-----------------|
| music | mpd |
| music | ncmpcpp |
| music | picard |
| music | mpd-watcher |
** LaTeX
| Category | Guix dependency |
|----------+-----------------|
| latex | texlive |
** Manifests
#+NAME: packages
#+begin_src emacs-lisp :tangle no :var category=""
(my/format-guix-dependencies category)
#+end_src
Browsers
#+begin_src scheme :tangle .config/guix/manifests/browsers.scm :noweb yes
(specifications->manifest
'(
<<packages("browsers")>>))
#+end_src
System
#+begin_src scheme :tangle .config/guix/manifests/system.scm :noweb yes
(specifications->manifest
'(
<<packages("system")>>))
#+end_src
Music
#+begin_src scheme :tangle .config/guix/manifests/music.scm :noweb yes
(specifications->manifest
'(
<<packages("music")>>))
#+end_src
Office
#+begin_src scheme :tangle .config/guix/manifests/office.scm :noweb yes
(specifications->manifest
'(
<<packages("office")>>))
#+end_src
LaTeX
#+begin_src scheme :tangle .config/guix/manifests/latex.scm :noweb yes
(specifications->manifest
'(
<<packages("latex")>>))
#+end_src
** Flatpak
A lot of proprietary desktop applications can be installed most easily with flatpak & flathub. A lot of proprietary desktop applications can be installed most easily with flatpak & flathub.
| Guix dependency | | Guix dependency |
@ -2061,6 +2127,7 @@ Other desktop programs I use are listed below.
| Guix dependency | Description | | Guix dependency | Description |
|------------------------+-------------------------------------------| |------------------------+-------------------------------------------|
| xrandr | X11 CLI to RandR | | xrandr | X11 CLI to RandR |
| xprop | Tool to display properties of X windows |
| arandr | GUI to xrandr | | arandr | GUI to xrandr |
| light | Control screen brightness | | light | Control screen brightness |
| network-manager-applet | Applet to manage network connections | | network-manager-applet | Applet to manage network connections |

View file

@ -229,6 +229,7 @@ Base packages, necessary right after the installation.
(list nss-certs (list nss-certs
git git
i3-gaps i3-gaps
i3lock
openbox openbox
xterm xterm
vim) vim)
@ -236,13 +237,17 @@ Base packages, necessary right after the installation.
#+end_src #+end_src
Default services for each machine: Default services for each machine:
- overrides the default =%desktop-services= to add OpenVPN support - override the default =%desktop-services= to add OpenVPN support
- add a symlink to ELF interpeter to where most Linux binaries expect it
#+begin_src scheme :tangle no :noweb-ref system-common #+begin_src scheme :tangle no :noweb-ref system-common
(define %my-desktop-services (define %my-base-services
(modify-services %desktop-services (cons*
(network-manager-service-type config => (service openssh-service-type)
(network-manager-configuration (inherit config) (extra-special-file "/lib64/ld-linux-x86-64.so.2" (file-append glibc "/lib/ld-linux-x86-64.so.2"))
(vpn-plugins (list network-manager-openvpn)))))) (modify-services %desktop-services
(network-manager-service-type config =>
(network-manager-configuration (inherit config)
(vpn-plugins (list network-manager-openvpn)))))))
#+end_src #+end_src
@ -268,12 +273,10 @@ Default services for each machine:
(host-name "azure") (host-name "azure")
(services (cons* (services (cons*
(service openssh-service-type)
(set-xorg-configuration (set-xorg-configuration
(xorg-configuration (xorg-configuration
(keyboard-layout keyboard-layout))) (keyboard-layout keyboard-layout)))
(extra-special-file "/lib64/ld-linux-x86-64.so.2" (file-append glibc "/lib/ld-linux-x86-64.so.2")) (modify-services %my-base-services
(modify-services %my-desktop-services
(elogind-service-type config => (elogind-service-type config =>
(elogind-configuration (inherit config) (elogind-configuration (inherit config)
(handle-lid-switch-external-power 'suspend))) (handle-lid-switch-external-power 'suspend)))
@ -376,59 +379,11 @@ guix clone https://github.com/SqrtMinusOne/dotfiles.git
And activate the required profiles. Again, downloading & building Emacs, Starship and stuff will take a while. And activate the required profiles. Again, downloading & building Emacs, Starship and stuff will take a while.
Don't forget to install =JetBrainsMono Nerd Font=. Don't forget to install =JetBrainsMono Nerd Font=.
* Various software * Misc software
** Browsers
| Category | Guix dependency |
|----------+--------------------|
| browsers | ungoogled-chromium |
| browsers | firefox |
** Office
| Category | Guix dependency |
|----------+-----------------|
| office | libreoffice |
| office | gimp |
** LaTeX
| Category | Guix dependency |
|----------+-----------------|
| latex | texlive |
** System
| Category | Guix dependency | | Category | Guix dependency |
|----------+-------------------------| |----------+-------------------------|
| system | openvpn | | system | openvpn |
| system | python | | system | python |
** Manifests
#+NAME: packages
#+begin_src emacs-lisp :tangle no :var category=""
(my/format-guix-dependencies category)
#+end_src
Browsers
#+begin_src scheme :tangle .config/guix/manifests/browsers.scm :noweb yes
(specifications->manifest
'(
<<packages("browsers")>>))
#+end_src
System
#+begin_src scheme :tangle .config/guix/manifests/system.scm :noweb yes
(specifications->manifest
'(
<<packages("system")>>))
#+end_src
Office
#+begin_src scheme :tangle .config/guix/manifests/office.scm :noweb yes
(specifications->manifest
'(
<<packages("office")>>))
#+end_src
LaTeX
#+begin_src scheme :tangle .config/guix/manifests/latex.scm :noweb yes
(specifications->manifest
'(
<<packages("latex")>>))
#+end_src
* Notes on installing software * Notes on installing software
| Category | Guix dependency | Description | | Category | Guix dependency | Description |
|----------+-----------------+----------------------------------------------------| |----------+-----------------+----------------------------------------------------|