~elais/shaolin-emacs-archive

633e441d0a3a6da7a203ad0c095e76431c0c00f8 — Elais Player 4 years ago
Initial Commit

Once Upon A Time In Shaolin...
7 files changed, 309 insertions(+), 0 deletions(-)

A early-init.el
A guix.scm
A init.el
A lisp/init-snippets.el
A lisp/shao-defaults.el
A lisp/shao-fingers.el
A lisp/shao-vc.el
A  => early-init.el +48 -0
@@ 1,48 @@
;;; early-init.el --- dawn of shaolin -*- lexical-binding: t; -*-
;;
;; Copyright (C) 2020 Elais Player
;;
;; Author: Elais Player <http://github/elais>
;; Maintainer: Elais Player <elais@fastmail.com>
;; Created: May 11, 2020
;; Modified: May 11, 2020
;; Version: 0.0.1
;; Keywords:
;; Homepage: https://github.com/elais/early-init
;; Package-Requires: ((emacs 28.0.50) (cl-lib "0.5"))
;;
;; This file is not part of GNU Emacs.
;;
;;; Commentary:
;;
;;  description
;;
;;; Code:


;; Emacs HEAD (27+) introduces early-init.el, which is run before init.el,
;; before package and UI initialization happens.

;; Defer garbage collection further back in the startup process
;; (setq gc-cons-threshold most-positive-fixnum)

;; In Emacs 27+, package initialization occurs before `user-init-file' is
;; loaded, but after `early-init-file'. Doom handles package initialization, so
;; we must prevent Emacs from doing it early!
(setq package-enable-at-startup nil)

;; Prevent the glimpse of un-styled Emacs by disabling these UI elements early.
(push '(menu-bar-lines . 0) default-frame-alist)
(push '(tool-bar-lines . 0) default-frame-alist)
(push '(vertical-scroll-bars) default-frame-alist)

;; Resizing the Emacs frame can be a terribly expensive part of changing the
;; font. By inhibiting this, we easily halve startup times with fonts that are
;; larger than the system default.
(setq frame-inhibit-implied-resize t)

;; Ignore X resources; its settings would be redundant with the other settings
;; in this file and can conflict with later config (particularly where the
;; cursor color is concerned).

;;; early-init.el ends here

A  => guix.scm +100 -0
@@ 1,100 @@
(use-modules (gnu)
	     (guix packages)
	     (gnu packages emacs-xyz)
	     (guix build-system emacs)
	     (guix download)
             (guix licenses))

(define-public emacs-selectrum-prescient
  (package
    (name "emacs-selectrum-prescient")
    (version "20200404.1550")
    (source
      (origin
        (method url-fetch)
        (uri (string-append
               "https://melpa.org/packages/selectrum-prescient-"
               version
               ".el"))
        (sha256
          (base32
            "155bsilm5db16a47vpnvylwy031rwsfzvyw76mxsc343aggiv16g"))))
    (build-system emacs-build-system)
    (propagated-inputs
      `(("emacs-prescient" ,emacs-prescient)
        ("emacs-selectrum" ,emacs-selectrum)))
    (home-page
      "https://github.com/raxod502/prescient.el")
    (synopsis "Selectrum integration")
    (description
      "selectrum-prescient.el provides an interface for using prescient.el
to sort and filter candidates in Selectrum menus. To enable its
functionality, turn on `selectrum-prescient-mode' in your init-file
or interactively.

For more information, see https://github.com/raxod502/prescient.el.
")
    (license #f)))

(define-public emacs-hyperbole
  (package
    (name "emacs-hyperbole")
    (version "7.0.6")
    (source
      (origin
        (method url-fetch)
        (uri (string-append
               "https://elpa.gnu.org/packages/hyperbole-"
               version
               ".tar"))
        (sha256
          (base32
            "08gi4v76s53nfmn3s0qcxc3zii0pspjfd6ry7jq1kgm3z34x8hab"))))
    (build-system emacs-build-system)
    (home-page
      "http://www.gnu.org/software/hyperbole")
    (synopsis
      "GNU Hyperbole: The Everyday Hypertextual Information Manager")
    (description "way too long")
    (license gpl3+)))
    
(define-public emacs-boon
  (package
    (name "emacs-boon")
    (version "20200507.1851")
    (source
      (origin
        (method url-fetch)
        (uri (string-append
               "https://melpa.org/packages/boon-"
               version
               ".tar"))
        (sha256
          (base32
            "0yxfgm94zlykgqaqi2yvrg3l5d327cxzcgxkw83b30xilw10nyk4"))))
    (build-system emacs-build-system)
    (propagated-inputs
      `(("emacs-expand-region" ,emacs-expand-region)
        ("emacs-dash" ,emacs-dash)
        ("emacs-multiple-cursors"
         ,emacs-multiple-cursors)
	("emacs-spaceline" ,emacs-spaceline)))
    (home-page "unspecified")
    (synopsis "Ergonomic Command Mode for Emacs.")
    (description
      "Boon brings modal editing capabilities to Emacs and...

- It tries to be as ergonomic as possible.
- It remains lightweight (~300 loc for its core.)
- It attempts to integrate with Emacs as smoothly as possible
")
    (license #f)))

(packages->manifest
 (list emacs-use-package emacs-tao-theme emacs-modus-operandi-theme
   ;; ghost-eating-techniques
   emacs-yasnippet emacs-yasnippet-snippets emacs-no-littering
   ;; shaolin-movement
   emacs-boon emacs-which-key emacs-ctrlf emacs-selectrum
   emacs-general emacs-selectrum-prescient emacs-magit
   emacs-prescient))

A  => init.el +51 -0
@@ 1,51 @@
;;; init.el -- the first *- lexical-binding: t; -*-
;;
;; Copyright (C) 2020 Elais Player
;;
;; Author: Elais Player <http://github/elais>
;; Maintainer: Elais Player <elais@fastmail.com>
;; Created: May 11, 2020
;; Modified: May 11, 2020
;; Version: 0.0.1
;; Keywords:
;; Homepage: https://github.com/elais/init
;; Package-Requires: ((emacs 28.0.50) (cl-lib "0.5"))
;;
;; This file is not part of GNU Emacs.
;;
;;; Commentary:
;;
;;  description
;;
;;; Code:

(require 'package)
;; Prevent double loading of libraries
(setq package-enable-at-startup nil)
(package-initialize)
(unless (package-installed-p 'hyperbole)
  (package-refresh-contents)	
  (package-install 'hyperbole))
(require 'hyperbole)


(eval-when-compile
  (add-to-list 'load-path "/home/elais/.guix-extra-profiles/shaolin-emacs/shaolin-emacs/share/emacs/site-lisp")
  (require 'use-package))

(add-to-list 'load-path (expand-file-name "lisp" user-emacs-directory))

(use-package modus-operandi-theme
  :config (load-theme 'modus-operandi t))

;; Credentials  
(setq user-name "Elais Player"
      user-mail-address "elais@fastmail.com")

;; Set defaults
 
;; Local Packages
(require 'shao-defaults)
(require 'init-snippets)
(require 'shao-fingers)
(require 'shao-vc)

A  => lisp/init-snippets.el +11 -0
@@ 1,11 @@
;;; init-snippets.el --- Initialize yasnippet config. -*- lexical-binding: t -*-

(use-package yasnippet
  :diminish yas-minor-mode
  :hook (after-init . yas-global-mode))

(use-package yasnippet-snippets
  :requires yasnippet)

(provide 'init-snippets)
;;; init-snippets.el ends here

A  => lisp/shao-defaults.el +59 -0
@@ 1,59 @@
;;; shao-defaults.el --- defaults -*- lexical-binding: t; -*-


(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)

;; smart tab behavior
(setq-default indent-tabs-mode nil)
(setq-default tab-width 8)
(setq tab-always-indent 'complete)

;; Startup optimizations
(setq inhibit-startup-message t
      inhibit-startup-echo-area-message user-login-name
      inhibit-default-init t
      initial-major-mode 'fundamental-mode
      initial-scratch-message nil)

;; Find .authinfo
(setq auth-sources (list "~/.authinfo.gpg"))

(setq-default truncate-lines t)

;; revert buffers automatically when underlying files are changed externally
(global-auto-revert-mode t)

(savehist-mode +1)
(setq-default save-place t)

;; Packages

(use-package paren
  :config
  (show-paren-mode +1))

(use-package elec-pair
  :config
  (electric-pair-mode +1))

(use-package abbrev
  :config
  (setq save-abbrevs 'silently))

(use-package recentf
  :init
  (global-set-key (kbd "C-x C-r") 'recentf-open-files)
  (setq recentf-max-saved-items 50)
  :config
  (recentf-mode +1))
  
(use-package no-littering
  :config
  (setq auto-save-file-name-transforms
	`((".*" ,(no-littering-expand-var-file-name "auto-save/") t)))
  (setq custom-file (no-littering-expand-etc-file-name "custom.el")))

(provide 'shao-defaults)

A  => lisp/shao-fingers.el +33 -0
@@ 1,33 @@
;;; shao-fingers.el -*- lexical-binding: t; -*-

(use-package general
 :demand t)

(use-package boon
  :demand t
  :general
 (:keymaps 'boon-command-mode
  "r" 'ctrlf-forward-regexp)
  :init
  (require 'boon-qwerty)
  :config
  (boon-mode))

(use-package selectrum
 :config
 (selectrum-mode +1))

(use-package selectrum-prescient
  :config
  (selectrum-prescient-mode +1)
  (prescient-persist-mode +1)) 

(use-package ctrlf
 :config
 (ctrlf-mode +1))
   
(use-package which-key
  :config
  (which-key-mode))
  
(provide 'shao-fingers)

A  => lisp/shao-vc.el +7 -0
@@ 1,7 @@
;;; shao-vc.el -*- lexical-binding: t; -*-

(use-package magit
  :general
  ("C-x g" 'magit-status))

(provide 'shao-vc)