Re: Getting started with Guile-Studio

Olivier Dion <[email protected]> Thu, 09 Apr 2026 08:43:02 -0400
Newsgroups gmane.lisp.guile.user
Message-ID <873414uwx5.fsf@laura>
Hi Spencer!

As far as I know, guile-studio is essentially a pre-default emacs and it
should have Geiser available already.

But I seem to be getting the same error as you:

  $ guix shell --pure guile-studio
  $ guile-studio
  M-x geiser [No match]

Maybe the guile-studio package needs a litle care on the Guix side?

In any case, I think what you could do is to install emacs directly
instead.  So start by uninstalling guile-studio and installing emacs:

  $ guix remove guile-studio
  $ guix install emacs

Then, you can install packages inside emacs directly.

I am really not a good emacs lisper, but here is my config that could
work for you.  You just have to copy this into a emacs buffer and
evaluate the buffer with "M-x eval-buffer":

--8<---------------cut here---------------start------------->8---
(require 'package)

(setq package-archives
      '(("melpa"        . "https://melpa.org/packages/")
        ("elpa"         . "https://elpa.gnu.org/packages/")))

(require 'use-package)

(setq use-package-always-ensure t)

(use-package geiser)
(setq geiser-smart-tab-mode 1)
(setq geiser-mode-smart-tab-p t)
(setq geiser-mode-start-repl-p t)
(setq geiser-repl-per-project-p t)
(setq geiser-repl-send-on-return-p nil)
(setq geiser-repl-history-filename "~/.emacs.d/geiser-history")

(use-package geiser-guile
  :requires geiser
  :custom (geiser-guile-load-init-file t))

(use-package paredit
  :bind
  (:map paredit-mode-map
        ("M-s" . nil)))

(use-package paren-face
  :custom (paren-face-regexp "#?[](){}[]")
  :config (global-paren-face-mode 1))

(use-package pretty-symbols)

(add-to-list 'auto-mode-alist '("\\.guile\\'" . scheme-mode))
(add-to-list 'auto-mode-alist '("\\.scm\\'" . scheme-mode))

(defun setup-lisp-family ()
  (paredit-mode 1)
  (pretty-symbols-mode t)
  (turn-on-eldoc-mode)
  (eldoc-add-command
   'paredit-backward-delete
   'paredit-close-round)
  (eldoc-add-command 'electrify-return-if-match)
  (show-paren-mode t))

(defun setup-geiser-repl ()
  (pretty-symbols-mode t)
  (turn-on-eldoc-mode)
  (eldoc-add-command
   'paredit-backward-delete
   'paredit-close-round)
  (eldoc-add-command 'electrify-return-if-match)
  (show-paren-mode t))

(add-hook 'scheme-mode-hook #'setup-lisp-family)
(add-hook 'emacs-lisp-mode-hook #'setup-lisp-family)
(add-hook 'geiser-repl-mode-hook #'setup-geiser-repl)

(use-package ac-geiser)
(add-hook 'geiser-mode-hook 'ac-geiser-setup)
(add-hook 'geiser-repl-mode-hook 'ac-geiser-setup)
(eval-after-load "auto-complete"
  '(add-to-list 'ac-modes 'geiser-repl-mode))
--8<---------------cut here---------------end--------------->8---

Hopefuly this will help you getting started.

Cheers,
Olivier

On Thu, 09 Apr 2026, Spencer via General Guile related discussions <[email protected]> wrote:
> Is there a guide anywhere, or otherwise documentation on how to get started with Guile?
> I'm hoping to use https://elephly.net/guile-picture-language/manual.html#A-Picture-Vocabulary the Guile Picture Language as an excuse to try out hoot as recommended on this forum https://community.spritely.institute/t/vector-drawing-library-for-hoot/809.
>
> I now have Guile-Studio installed via guix, as recommended by the library but I'm completely stuck on how to run a program after it's been typed in.
>
> "M-x geiser" as suggested by the geiser docs does not seem to be found as a command, and none of the menu items seem to run the entire buffer to the terminal.
>
> Sorry if this is a super basic question, or if I'm totally off base here. I'm much more used to DrRacket.
>
> Thanks,
> - Spencer 
-- 
Olivier Dion