~ilmu/vegur

e6d8c1f3e23749a4b0cb2eb1faee9953cb163776 — ilmu 1 year, 11 months ago f90cd94
I guess I can share this repo
M README => README +17 -4
@@ 1,9 1,22 @@
### Introduction

This repository will house the guix system that will seed the "tala saman" network.

Tala saman is my attempt at implementing datalisp, feel free to make more convincing attempts.
Tala saman is my attempt at implementing datalisp, feel free to make more convincing 
attempts, or help me with mine, or whatever is most comfortable for you.

The word "vegur" both means "road" (or "path") and "one who assesses" it can also mean
"weighing" or finally, in the Icelandic sagas, it means "to murder" (i.e. to censor).

I feel all meanings are quite appropriate since all this bureaucracy is killing the 
human spirit, we should stop spending so much time staring at symbols. To do that
we should work together and prioritize which pixels are worth looking at until we
don't need these things anymore.

The word "vegur" both means "road" or "path" and it also means "one who assesses" or "weighing" finally it also means to kill someone but only in the Icelandic sagas.
Feel free to participate and help me reach escape velocity!

I feel all meanings are quite appropriate since all this bureaucracy is killing the human spirit, we should stop spending so much time staring at symbols.
### Organization

Anyway, feel free to participate and help me reach escape velocity.
Mostly undecided, for now this will host the raw material I use to organize my
system but with experience it will get refined. Of course `tala` and `saman` will
be used to manage this material to an ever increasing extent.

A bootstrap-figs/README => bootstrap-figs/README +1 -0
@@ 0,0 1,1 @@
Rename these files when you place them in `~/.config/$FILE_NAME/init.$FILE_EXT` - that should make sense.

A bootstrap-figs/emacs.el => bootstrap-figs/emacs.el +49 -0
@@ 0,0 1,49 @@
;; yay
(require 'evil) ;; emacs-evil emacs-evil-collection
(evil-mode 1)
(tool-bar-mode -1)
(menu-bar-mode -1)
(toggle-scroll-bar -1)
(show-paren-mode 1)
(setq backup-directory-alist `(("." . "~/.cache/emacs")))

(defun open-init-file ()
  (interactive)
  (find-file "~/.config/emacs/init.el"))

(evil-set-leader '(normal visual) (kbd ","))

(evil-define-key 'normal 'global (kbd "<leader>c") 'open-init-file)
(evil-define-key 'normal 'global (kbd "<leader>wj") 'evil-window-down)
(evil-define-key 'normal 'global (kbd "<leader>wk") 'evil-window-up)
(evil-define-key 'normal 'global (kbd "<leader>wl") 'evil-window-right)
(evil-define-key 'normal 'global (kbd "<leader>wh") 'evil-window-left)
(evil-define-key 'normal 'global (kbd "<leader>b") 'list-buffers)
(evil-define-key 'normal 'global (kbd "<leader>d") 'evil-delete-buffer)
(evil-define-key 'normal 'global (kbd "<leader>g") 'switch-to-buffer)
(evil-define-key 'normal 'global (kbd "<leader>f") 'make-frame)
(evil-define-key 'normal 'global (kbd "<leader>o") 'find-file)
(evil-define-key 'normal 'global (kbd "<leader>ws") 'evil-window-split)
(evil-define-key 'normal 'global (kbd "<leader>wv") 'evil-window-vsplit)
(evil-define-key 'normal 'global (kbd "<leader>wd") 'evil-window-delete)
(evil-define-key 'visual 'global (kbd "<leader>e") 'eval-region)

;; emacs-geiser
;; Make into hook          -- memnomic is "tools scheme"
(evil-define-key 'normal 'global (kbd "<leader>ts") 'run-geiser)
(evil-define-key 'visual scheme-mode-map (kbd "<leader>e") 'geiser-eval-region)
(evil-define-key 'normal scheme-mode-map (kbd "<leader>e") 'geiser-eval-last-sexp)
(evil-define-key 'normal scheme-mode-map (kbd "<leader>h") 'geiser-doc-symbol-at-point)

;; emacs-sly
;; "tools lisp"
(evil-define-key 'normal 'global (kbd "<leader>tl") 'sly)
(evil-define-key 'visual sly-mode-map (kbd "<leader>e") 'sly-eval-region)
(evil-define-key 'normal sly-mode-map (kbd "<leader>e") 'sly-eval-last-expression)
(evil-define-key 'normal sly-mode-map (kbd "<leader>h") 'sly-documentation)

;; emacs-youtube-dl


;; emacs-evil-*something about parenthesis*


A bootstrap-figs/stumpwm.lisp => bootstrap-figs/stumpwm.lisp +35 -0
@@ 0,0 1,35 @@
(require :ttf-fonts)
(setf xft:*font-dirs* '("/run/current-system/profile/share/fonts/"))
(setf clx-truetype:+font-cache-filename+ (concat (getenv "HOME") "/.fonts/font-cache.sexp"))
(xft:cache-fonts)
(set-font (make-instance 'xft:font :family "DejaVu Sans Mono" :subfamily "Book" :size 11))
(setf *data-dir* (concat (getenv "HOME") "/.cache/stumpwm"))

(in-package :stumpwm)
(define-key *root-map* (kbd "u") "exec chromium")
(define-key *root-map* (kbd "z") "exec kitty")
(define-key *top-map* (kbd "M-z") "exec kitty")
(define-key *top-map* (kbd "M-x") "exec")
(define-key *top-map* (kbd "M-c") "colon")
(define-key *top-map* (kbd "M-h") "fprev")
(define-key *top-map* (kbd "M-l") "fnext")
(define-key *top-map* (kbd "M-j") "next-in-frame")
(define-key *top-map* (kbd "M-k") "prev-in-frame")

;; meta-shift-hjkl to move window across splits (and create them or close them as needed).
;; the moving across splits thing should be a mode, hold shift to move focus and otherwise you move window w/hjkl.
;; some keybinds to move stacks of windows to (and from) different groups, also useful; merging and splitting groups.

#| replify stump
(in-package :stumpwm)

(require :swank)
(swank-loader:init)
(swank:create-server :port 4004
                     :style swank:*communication-style*
                     :dont-close t)
|#

#| bind keys to *root-map* for C-t prefixed commands and *top-map* for unprefixed commands.
(stumpwm:define-key stumpwm:*root-map* (stumpwm:kbd "u") "exec kitty")
|#

A channel-specs.scm => channel-specs.scm +11 -0
@@ 0,0 1,11 @@
(list (channel
        (name 'guix)
        (url "https://git.savannah.gnu.org/git/guix.git")
        (branch "master")
        (commit
          "2322567cdcc0dcabfedd8f38289f17826455d73f")
        (introduction
          (make-channel-introduction
            "9edb3f66fd807b096b48283debdcddccfea34bad"
            (openpgp-fingerprint
              "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA")))))

A config.scm => config.scm +65 -0
@@ 0,0 1,65 @@
(use-modules (gnu))
(use-package-modules wm)
(use-service-modules
  cups
  desktop
  sound
  networking
  ssh
  xorg)

(operating-system
  (locale "en_IE.utf8")
  (timezone "Europe/London")
  (keyboard-layout
    (keyboard-layout "us" "altgr-intl"))
  (host-name "vegur")
  (users (cons* 
                (user-account
                  (name "ilmu")
                  (comment "ilmu")
                  (group "users")
                  (home-directory "/home/ilmu")
                  (supplementary-groups
                    '("wheel" "netdev" "audio" "video")))
                %base-user-accounts))
  (packages
    (append
      (map specification->package ;; TODO: clean this up
        (list "git" "xclip" "kitty" "neovim" "pavucontrol" "curl"
            "emacs" "emacs-geiser" "emacs-sly" "emacs-evil" "guile"
            "emacs-evil-collection" "zathura" "zathura-pdf-mupdf"
	    "ungoogled-chromium" "setxkbmap" "font-dejavu" "tree"
            "qutebrowser" "sbcl" "stumpwm" "sbcl-stumpwm-ttf-fonts"
	    ;; From generated config
            "dmenu" "xterm" "nss-certs"))

      (list `(,stumpwm "lib"))
      %base-packages))
  (services
    (append
      (list (service openssh-service-type)
            (service cups-service-type)
            ;;(service alsa-service-type)
            (set-xorg-configuration
              (xorg-configuration
                (keyboard-layout keyboard-layout))))
      %desktop-services))
  (bootloader
    (bootloader-configuration
      (bootloader grub-bootloader)
      (targets (list "/dev/sda"))
      (keyboard-layout keyboard-layout)))
  (mapped-devices
    (list (mapped-device
            (source
              (uuid "0d7eb999-93d9-4ffc-b4b9-fe17099dcae6"))
            (target "cryptroot")
            (type luks-device-mapping))))
  (file-systems
    (cons* (file-system
             (mount-point "/")
             (device "/dev/mapper/cryptroot")
             (type "ext4")
             (dependencies mapped-devices))
           %base-file-systems)))

A emacs.scm => emacs.scm +24 -0
@@ 0,0 1,24 @@
(define emacs-custom 
  (package
    (inherit emacs)
    ))


;; This "manifest" file can be passed to 'guix package -m' to reproduce
;; the content of your profile.  This is "symbolic": it only specifies
;; package names.  To reproduce the exact same profile, you also need to
;; capture the channels being used, as returned by "guix describe".
;; See the "Replicating Guix" section in the manual.

(specifications->manifest
  (list "guile"
        "emacs-geiser"
        "emacs-sly"
	"emacs-evil"
        "emacs-evil-collection"
        "zathura-pdf-mupdf"
        "zathura"
        "curl"
        "tree"
        "emacs-youtube-dl"
        ))