Skip to content

Instantly share code, notes, and snippets.

View shegeley's full-sized avatar
🍴
Fork you

Grigory Shepelev shegeley

🍴
Fork you
View GitHub Profile
@shegeley
shegeley / scm->yaml.scm
Last active February 17, 2026 05:50
Guile Scheme scm->yaml
(use-modules
(ice-9 match)
(srfi srfi-1)
(scheme base))
;; Indentation helper: 2 spaces per nesting level
(define (indent level)
(make-string (* 2 level) #\space))
;; Very minimal scalar serialization.
@shegeley
shegeley / borgmatic.scm
Created February 16, 2026 02:34
Borgmatic Guix Sample Job
(use-modules
(srfi srfi-1)
(guix gexp)
(gnu services)
(gnu services shepherd)
((gnu packages ssh) #:select (openssh))
((gnu packages backup) #:select (borgmatic)))
(define (borgmatic-backup-cmd config-file)
@shegeley
shegeley / llama-cpp.scm
Created December 10, 2025 08:38
llama-cpp guix service-type [draft]
(define-module (x-files services llama-cpp)
#:use-module (gnu)
#:use-module (gnu packages)
#:use-module (gnu services)
#:use-module ((gnu packages admin) #:select (shadow))
#:use-module ((gnu packages machine-learning) #:select (llama-cpp))
#:use-module ((gnu system accounts) #:select (user-account
user-group
subid-range))
@shegeley
shegeley / dashboard-hacks.el
Last active June 1, 2025 05:03
Prevent loading remote projects in emacs-dashboard to speed up dashboard's startup.
;;; dashboard-hacks.el --- Emacs Dashboard Hacks -*- lexical-binding: t; -*-
(require 'project)
(defun project-forget-remote-projects ()
"Forget all remote projects. emacs-dashboard lags massively when trying to display remote projects via project.el"
(interactive)
(dolist (proj (project-known-project-roots))
(when (file-remote-p proj)
(project-forget-project proj))))
@shegeley
shegeley / bitcoin.scm
Last active April 27, 2025 04:22
bitcon services type sample packed in guix
(use-modules
(gnu services)
(gnu services shepherd)
(gnu packages finance)
(srfi srfi-1)
(srfi srfi-125)
(ice-9 match)
(guix gexp)
@shegeley
shegeley / java&type-script.scm
Last active March 2, 2025 16:34
Guix custom java&type-script feature using Deno
;; emacs-flycheck-deno is on-hold in guix https://patches.guix-patches.cbaines.net/project/guix-patches/patch/20250227031841.22844-1-shegeley@gmail.com/
;; emacs-deno-mode: https://github.com/shegeley/x-files/commit/2e941ccb3ebd280767d4b0410eb0cce0ecc68bd8
;; deno: https://github.com/shegeley/x-files/commit/eaf140b29127c849ef529ed4cac5dad68f94c166
(define-module (g-files features java&type-script)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (x-files packages deno)
@shegeley
shegeley / daemons-fix.el
Last active February 17, 2025 19:25
Guix System Emacs daemons.el colorized output parsing fix
(with-eval-after-load 'daemons
(require 'ansi-color)
(defun display-ansi-sequences ()
(let ((inhibit-read-only t))
(ansi-color-apply-on-region (point-min) (point-max))))
(setq daemons--shell-command-to-string-fun
(lambda (command) (ansi-color-filter-apply (shell-command-to-string command))))
(add-hook 'daemons-output-mode-hook 'display-ansi-sequences))
@shegeley
shegeley / backend.cljs
Created December 5, 2024 18:23
clojurescript: sequelize, expresss, cljs.core.async sample code
(ns backend.core
(:require ["sequelize" :refer (Sequelize DataTypes)]
[cljs.core.async :refer [go]]
[cljs.core.async.interop :refer-macros [<p!]]
["express" :as express]))
(def port 1337)
(defn env [x & [default]]
(or (aget (.. js/process -env) x) default))
@shegeley
shegeley / treemacs-auto-toggle.el
Created October 28, 2024 08:05
Emacs Treemacs auto-toggling in text and prog-modes. Author: @ichernyshovvv
(defun treemacs-toggle-maybe ()
(require 'treemacs)
(if (eq last-command 'treemacs)
(set-frame-parameter (selected-frame) 'treemacs-forced-p
(not (frame-parameter (selected-frame) 'treemacs-forced-p)))
(unless (frame-parameter (selected-frame) 'treemacs-forced-p)
(if (seq-find
(lambda (x)
(with-current-buffer (window-buffer x)
(derived-mode-p 'text-mode 'prog-mode)))
@shegeley
shegeley / srfi-125.scm
Last active May 26, 2024 05:57
Guile Scheme SRFI-125 packaging attempt
(use-modules
(guix gexp)
(guix download)
((guix licenses) #:prefix license:)
(guix packages)
(guix git-download)
(guix download)
(guix utils)
(guix build-system guile)
(gnu packages guile)