guix-config/packages.scm

93 lines
3.4 KiB
Scheme
Raw Normal View History

2024-11-15 09:54:03 +01:00
(use-modules (guix licenses)
(guix packages)
(guix download)
(guix git-download)
(guix utils)
(gnu packages)
(gnu packages emacs)
(gnu home services shepherd)
2024-11-15 09:54:03 +01:00
(guix build-system copy)
(gnu services))
(define-public oh-my-zsh
(let ((commit "ca5471fe496f00007727fd26db762d19519c2e8f")
(url "https://github.com/ohmyzsh/ohmyzsh.git"))
(package
(name "oh-my-zsh")
(version "231115")
(source (origin
(method git-fetch)
(uri (git-reference
(url url)
(commit commit)))
(sha256
(base32
"08a9x04jgli4xqclaqzyvrzb74kngnf2vg4q6wyqanrpskgbp3mc"))))
(build-system copy-build-system)
(synopsis "Oh My Zsh is an open source, community-driven framework for managing your zsh configuration.")
(description "🙃A delightful community-driven (with 2,400+ contributors) framework for managing
your zsh configuration. Includes 300+ optional plugins
(rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up
your morning, and an auto-update tool that makes it easy to keep up with the latest updates from the community. ")
(home-page "https://ohmyz.sh/")
(license expat))))
(define oh-my-zsh-service-type
(service-type (name 'oh-my-zsh)
(description "oh my zsh")
(extensions
(list (service-extension
home-files-service-type
(lambda (_) (list `(".oh-my-zsh" ,oh-my-zsh))))))))
(define-public zellij
(package
(name "zellij")
(version "0.41.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/zellij-org/zellij/releases/download/v"
version "/zellij-x86_64-unknown-linux-musl.tar.gz"))
(sha256
(base32 "113c9agbx36hiq6a1kf2jydrv3h3cd8s0albnwxi0qd1c0n1rxyw")
)))
(build-system copy-build-system)
(arguments
(list
#:substitutable? #f
#:install-plan
#~'(("zellij" "bin/"))
#:phases
#~(modify-phases %standard-phases
(replace 'unpack
(lambda* (#:key source #:allow-other-keys)
(invoke "tar" "-xvf" source))))))
(home-page "https://github.com/zellij-org/zellij")
(synopsis "A terminal workspace with batteries included.")
(description
"A terminal workspace with batteries included.")
(license expat)))
(define (home-emacs-shepherd-service config)
(list
(shepherd-service
(documentation "Start Emacs")
(provision '(emacs))
(auto-start? #t)
(start
#~(make-forkexec-constructor
(list #$(file-append emacs "/bin/emacs")
"--fg-daemon")
#:log-file (format #f "~a/.local/var/log/emacs.log" (getenv "HOME"))))
(stop #~(make-kill-destructor)))))
(define home-emacs-service-type
(service-type (name 'emacs-configuration)
(extensions
(list (service-extension
home-shepherd-service-type
home-emacs-shepherd-service)))
(default-value '())
(description "Configures Emacs and installs packages to home-profile.")))