Initial commit

This commit is contained in:
TakeV 2023-07-02 17:54:47 -07:00
commit 00a11b6be7
Signed by: TakeV
GPG Key ID: A64F41345C7400AF
3 changed files with 139 additions and 0 deletions

42
README.org Normal file
View File

@ -0,0 +1,42 @@
#+TITLE: guix layer
# Document tags are separated with "|" char
# The example below contains 2 tags: "layer" and "web service"
# Avaliable tags are listed in <spacemacs_root>/.ci/spacedoc-cfg.edn
# under ":spacetools.spacedoc.config/valid-tags" section.
#+TAGS: layer|web service
# The maximum height of the logo should be 200 pixels.
[[img/guix.png]]
# TOC links should be GitHub style anchors.
* Table of Contents :TOC_4_gh:noexport:
- [[#description][Description]]
- [[#features][Features:]]
- [[#install][Install]]
- [[#key-bindings][Key bindings]]
* Description
This layer adds support for something.
** Features:
- Autocomplete
- Lint
- Refactor
- ...
* Install
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
add =guix= to the existing =dotspacemacs-configuration-layers= list in this
file.
* Key bindings
| Key Binding | Description |
|-------------+----------------|
| ~SPC x x x~ | Does thing01 |
# Use GitHub URLs if you wish to link a Spacemacs documentation file or its heading.
# Examples:
# [[https://github.com/syl20bnr/spacemacs/blob/master/doc/VIMUSERS.org#sessions]]
# [[https://github.com/syl20bnr/spacemacs/blob/master/layers/%2Bfun/emoji/README.org][Link to Emoji layer README.org]]
# If space-doc-mode is enabled, Spacemacs will open a local copy of the linked file.

1
layers.el Normal file
View File

@ -0,0 +1 @@
(configuration-layer/declare-layer 'scheme)

96
packages.el Normal file
View File

@ -0,0 +1,96 @@
;;; packages.el --- guix layer packages file for Spacemacs.
;;
;; Copyright (c) 2012-2022 Sylvain Benner & Contributors
;;
;; Author: TakeV <takev@disroot.org>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; See the Spacemacs documentation and FAQs for instructions on how to implement
;; a new layer:
;;
;; SPC h SPC layers RET
;;
;;
;; Briefly, each package to be installed or configured by this layer should be
;; added to `guix-packages'. Then, for each package PACKAGE:
;;
;; - If PACKAGE is not referenced by any other Spacemacs layer, define a
;; function `guix/init-PACKAGE' to load and initialize the package.
;; - Otherwise, PACKAGE is already referenced by another Spacemacs layer, so
;; define the functions `guix/pre-init-PACKAGE' and/or
;; `guix/post-init-PACKAGE' to customize the package as it is loaded.
;;; Code:
(defconst guix-packages
'(emacs-guix evil-collection geiser geiser-guile skeletor) ; Eventually move skeletor to its own layer or in projectile. Also add way to enable it with hall.
"The list of Lisp packages required by the guix layer.
Each entry is either:
1. A symbol, which is interpreted as a package to be installed, or
2. A list of the form (PACKAGE KEYS...), where PACKAGE is the
name of the package to be installed or loaded, and KEYS are
any number of keyword-value-pairs.
The following keys are accepted:
- :excluded (t or nil): Prevent the package from being loaded
if value is non-nil
- :location: Specify a custom installation location.
The following values are legal:
- The symbol `elpa' (default) means PACKAGE will be
installed using the Emacs package manager.
- The symbol `local' directs Spacemacs to load the file at
`./local/PACKAGE/PACKAGE.el'
- A list beginning with the symbol `recipe' is a melpa
recipe. See: https://github.com/milkypostman/melpa#recipe-format")
(defun guix/init-emacs-guix ()
(use-package emacs-guix
:defer t
:init
(progn
(spacemacs/declare-prefix "atg" "guix")
(spacemacs/set-leader-keys
"atg" 'guix))))
(defun guix/pre-init-evil-collection ()
(when configuration-layer/layer-used-p 'spacemacs-evil
(add-to-list spacemacs-evil-collection-allowed-list 'guix)))
(defun guix/init-skeletor ()
(use-package skeletor :defer t))
(defun guix/post-init-skeletor ()
(skeletor-define-constructor "Hall"
:requires-executables '(("hall" . "https://gitlab.com/a-sassmannshausen/guile-hall"))
:initialise
(lambda (spec)
(let-alist spec
(skeletor-shell-command (format "hall init -x %s" (shell-quote-argument .project-name))
.project-dir)))))