It's Chicken Time

This commit is contained in:
Daniel Ziltener 2023-11-16 11:30:36 +01:00
parent 0b17384f73
commit 9eefbce8cf
Signed by: zilti
GPG key ID: B38976E82C9DAE42
5 changed files with 123 additions and 84 deletions

View file

@ -26,4 +26,7 @@ install-system: configuration.nix
cp disko-config.nix /mnt/etc/nixos cp disko-config.nix /mnt/etc/nixos
nixos-install nixos-install
install:
env NIXPKGS_ALLOW_BROKEN=1 nixos-rebuild switch --flake . --impure
# end # end

14
chicken/chicken.nix Normal file
View file

@ -0,0 +1,14 @@
{ config, libs, pkgs, ... }:
{
config.home.packages = with pkgs.chickenPackages_5.chickenEggs; [
chicken-update
csm
edn
lsp-server
mistie
nanomsg
r7rs
srfi-197
] ++ [ pkgs.chicken ];
}

View file

@ -51,6 +51,7 @@
moe-theme moe-theme
nerd-icons-completion nerd-icons-completion
nerd-icons-corfu nerd-icons-corfu
nix-mode
nix-ts-mode nix-ts-mode
orderless orderless
org org

View file

@ -7,7 +7,11 @@
;; Created: November 13, 2023 ;; Created: November 13, 2023
;; Modified: November 13, 2023 ;; Modified: November 13, 2023
;; Version: 0.0.1 ;; Version: 0.0.1
;; Keywords: abbrev bib c calendar comm convenience data docs emulations extensions faces files frames games hardware help hypermedia i18n internal languages lisp local maint mail matching mouse multimedia news outlines processes terminals tex tools unix vc wp ;; Keywords: abbrev bib c calendar comm convenience data docs
;; emulations extensions faces files frames games hardware help
;; hypermedia i18n internal languages lisp local maint mail matching
;; mouse multimedia news outlines processes terminals tex tools unix
;; vc wp
;; Homepage: https://github.com/dziltener@lyrion.ch/init ;; Homepage: https://github.com/dziltener@lyrion.ch/init
;; Package-Requires: ((emacs "24.3")) ;; Package-Requires: ((emacs "24.3"))
;; ;;
@ -53,12 +57,19 @@
(use-package emacs (use-package emacs
:custom :custom
(completion-cycle-threshold 10) (completion-cycle-threshold 10)
(read-extended-command-predicate #'command-completion-default-include-p) (read-extended-command-predicate
#'command-completion-default-include-p)
(minibuffer-prompt-properties
(read-only t cursor-intangible t face minibuffer-prompt))
(tab-always-indent 'complete) (tab-always-indent 'complete)
(enable-recursive-minibuffers t)
(global-hl-line-mode t) (global-hl-line-mode t)
(menu-bar-mode nil) (menu-bar-mode nil)
(scroll-bar-mode nil) (scroll-bar-mode nil)
(tool-bar-mode nil)) (tool-bar-mode nil)
(recentf-mode t)
:hook
(minibuffer-setup . cursor-intangible-mode))
;;;; Org Mode ;;;; Org Mode
(use-package org (use-package org
@ -157,8 +168,10 @@
(savehist-mode)) (savehist-mode))
(use-package orderless (use-package orderless
:after eglot :after consult
:config :config
(eval-after-load 'eglot
(lambda () (setq completion-category-defaults nil)))
(setq completion-styles '(orderless basic) (setq completion-styles '(orderless basic)
completion-category-defaults nil completion-category-defaults nil
completion-category-overrides '((file (styles partial-completion))))) completion-category-overrides '((file (styles partial-completion)))))
@ -167,8 +180,9 @@
:bind :bind
(:map evil-normal-state-map (:map evil-normal-state-map
("<leader><SPC>" . 'consult-find) ("<leader><SPC>" . 'consult-find)
("<leader>es" . 'consult-eglot-symbols) ("<leader>gs" . 'consult-eglot-symbols)
("<leader>b" . 'consult-buffer) ("<leader>b" . 'consult-buffer)
("<leader>gb" . 'consult-project-buffer)
("<leader>g/" . 'consult-git-grep) ("<leader>g/" . 'consult-git-grep)
("<leader>/" . 'consult-grep) ("<leader>/" . 'consult-grep)
("/" . 'consult-line))) ("/" . 'consult-line)))
@ -239,14 +253,7 @@
:commands :commands
global-corfu-mode global-corfu-mode
:init :init
(global-corfu-mode) (global-corfu-mode))
;:bind
;; (:map corfu-map
;; ("TAB" . corfu-next)
;; ([tab] . corfu-next)
;; ("S-TAB" . corfu-previous)
;; ([backtab] . corfu-previous))
)
(use-package corfu-history (use-package corfu-history
:config :config
@ -269,13 +276,12 @@
(add-to-list 'corfu-margin-formatters 'nerd-icons-corfu-formatter)) (add-to-list 'corfu-margin-formatters 'nerd-icons-corfu-formatter))
(use-package corfu-terminal (use-package corfu-terminal
:if (display-graphic-p) :if (not (display-graphic-p))
:after corfu :after corfu
:commands :commands
corfu-terminal-mode corfu-terminal-mode
:init :init
(corfu-terminal-mode +1)) (corfu-terminal-mode +1))
(use-package tempel) (use-package tempel)
;;;; Basic Navigation ;;;; Basic Navigation
@ -327,11 +333,17 @@
:init :init
(editorconfig-mode 1)) (editorconfig-mode 1))
(use-package flymake)
(use-package consult-flymake
:after (consult flymake))
(defun my/eglot-capf () (defun my/eglot-capf ()
(setq-local completion-at-point-functions (setq-local completion-at-point-functions
(list (cape-super-capf (list (cape-super-capf
#'eglot-completion-at-point #'eglot-completion-at-point
#'tempel-complete #'tempel-complete
#'cape-dabbrev
#'cape-file #'cape-file
#'cape-dict)))) #'cape-dict))))
@ -391,10 +403,14 @@
:hook :hook
((clojure-ts-mode . eglot-ensure) ((clojure-ts-mode . eglot-ensure)
(clojure-ts-mode . rainbow-delimiters-mode) (clojure-ts-mode . rainbow-delimiters-mode)
(clojure-ts-mode . (lambda () (setq-local sesman-system 'CIDER))) (clojure-ts-mode . (lambda ()
(clojure-ts-mode . (lambda () (sesman-install-menu clojure-mode-map))) (setq-local sesman-system 'CIDER)))
(clojurec-ts-mode . (lambda () (sesman-install-menu clojurec-mode-map))) (clojure-ts-mode . (lambda ()
(clojurescript-ts-mode . (lambda () (sesman-install-menu clojurescript-mode-map)))) (sesman-install-menu clojure-mode-map)))
(clojurec-ts-mode . (lambda ()
(sesman-install-menu clojurec-mode-map)))
(clojurescript-ts-mode . (lambda ()
(sesman-install-menu clojurescript-mode-map))))
:mode :mode
("\\.clj\\'" . #'clojure-ts-mode) ("\\.clj\\'" . #'clojure-ts-mode)
("\\.cljc\\'" . #'clojurec-ts-mode) ("\\.cljc\\'" . #'clojurec-ts-mode)
@ -403,9 +419,12 @@
(add-to-list 'lispy-clojure-modes 'clojure-ts-mode) (add-to-list 'lispy-clojure-modes 'clojure-ts-mode)
(add-to-list 'lispy-clojure-modes 'clojurec-ts-mode) (add-to-list 'lispy-clojure-modes 'clojurec-ts-mode)
(add-to-list 'lispy-clojure-modes 'clojurescript-ts-mode) (add-to-list 'lispy-clojure-modes 'clojurescript-ts-mode)
(add-to-list 'tree-sitter-major-mode-language-alist '(clojure-ts-mode . clojure)) (add-to-list 'tree-sitter-major-mode-language-alist
(add-to-list 'tree-sitter-major-mode-language-alist '(clojurec-ts-mode . clojure)) '(clojure-ts-mode . clojure))
(add-to-list 'tree-sitter-major-mode-language-alist '(clojurescript-ts-mode . clojure))) (add-to-list 'tree-sitter-major-mode-language-alist
'(clojurec-ts-mode . clojure))
(add-to-list 'tree-sitter-major-mode-language-alist
'(clojurescript-ts-mode . clojure)))
(use-package cider (use-package cider
:hook :hook
@ -418,7 +437,8 @@
;;;;; Chicken Scheme ;;;;; Chicken Scheme
(defun flymake-chicken-init () (defun flymake-chicken-init ()
(add-hook 'flymake-diagnostic-functions #'flymake-chicken-backend nil t) (add-hook 'flymake-diagnostic-functions
#'flymake-chicken-backend nil t)
(flymake-mode)) (flymake-mode))
(use-package geiser (use-package geiser
@ -432,7 +452,8 @@
:custom :custom
(lsp-scheme-implementation "chicken") (lsp-scheme-implementation "chicken")
:config :config
(progn (add-to-list 'eglot-server-programs '(scheme-mode . ("chicken-lsp-server")))) (progn (add-to-list 'eglot-server-programs
'(scheme-mode . ("chicken-lsp-server"))))
(require 'lsp-scheme)) (require 'lsp-scheme))
;; (use-package flymake-chicken ;; (use-package flymake-chicken
@ -445,10 +466,10 @@
;; (add-hook 'flymake-diagnostic-functions #'flymake-chicken-backend nil t)) ;; (add-hook 'flymake-diagnostic-functions #'flymake-chicken-backend nil t))
;;;; Other Languages ;;;; Other Languages
(use-package nix-ts-mode (use-package nix-mode
:hook :hook
eglot-ensure eglot-ensure
:mode ("\\.nix\\'" . nix-ts-mode)) :mode ("\\.nix\\'" . nix-mode))
;; (use-package lsp-tailwindcss ;; (use-package lsp-tailwindcss
;; :init ;; :init
@ -478,7 +499,8 @@
(use-package forge (use-package forge
:after magit :after magit
:config :config
(advice-add 'magit :after (lambda (&rest _args) (call-interactively #'forge-pull)))) (advice-add 'magit :after (lambda (&rest _args)
(call-interactively #'forge-pull))))
(use-package code-review (use-package code-review
:after forge :after forge
@ -490,7 +512,8 @@
;;;; LaTeX ;;;; LaTeX
;; https://github.com/politza/pdf-tools/#known-problems ;; https://github.com/politza/pdf-tools/#known-problems
(add-hook 'TeX-after-compilation-finished-functions #'TeX-revert-document-buffer) (add-hook 'TeX-after-compilation-finished-functions
#'TeX-revert-document-buffer)
;;;; Communication ;;;; Communication
;;;;; IRC ;;;;; IRC
@ -506,7 +529,8 @@
:tls t :tls t
:nick "zilti" :nick "zilti"
:sasl-username "zilti/irc.libera.chat" :sasl-username "zilti/irc.libera.chat"
:sasl-password (lambda (_) (password-store-get "Privat/Soju")))))) :sasl-password (lambda (_)
(password-store-get "Privat/Soju"))))))
(provide 'init) (provide 'init)
;;; init.el ends here ;;; init.el ends here

107
home.nix
View file

@ -5,74 +5,71 @@ args@{ config, pkgs, hyprland, split-monitor-workspaces, flatpaks, ... }:
home.homeDirectory = "/home/zilti"; home.homeDirectory = "/home/zilti";
home.packages = with pkgs; [ home.packages = with pkgs; [
pwvucontrol SDL2
sysstat babashka
lm_sensors bitwarden
pciutils
usbutils
coreutils-full
unzip
(nerdfonts.override { fonts = [ "VictorMono" "MPlus" ]; })
lagrange
stow
nixfmt
pinentry-qt
libsForQt5.ksshaskpass
swappy
grim
slurp
hyprpaper
gamescope
git-cola
fossil
nil
gcc
libgccjit
chicken chicken
clj-kondo
clojure clojure
clojure-lsp clojure-lsp
clj-kondo coreutils-full
babashka
podman-compose
sqlite
nodejs_20
sqlite
tofi
pinentry-qt
wlr-randr
nwg-displays
libsForQt5.okular
libsForQt5.dolphin
kteatime
discord discord
bitwarden fossil
freetube freetube
space-cadet-pinball
qtpass
ungoogled-chromium
slack
signal-desktop
telegram-desktop
zoom-us
git-filter-repo
git-doc
# For pharo
freetype freetype
pixman gamescope
SDL2 gcc
git-cola
git-doc
git-filter-repo
grim
hyprpaper
iconv
kteatime
lagrange
libffi libffi
libuuid libgccjit
libsForQt5.dolphin
libsForQt5.ksshaskpass libsForQt5.ksshaskpass
perl538Packages.IOSocketSSL libsForQt5.okular
libuuid
lm_sensors
(nerdfonts.override { fonts = [ "VictorMono" "MPlus" ]; })
nil
nixfmt
nodejs_20
nwg-displays
pciutils
perl538Packages.DigestHMAC perl538Packages.DigestHMAC
perl538Packages.TermReadKey
perl538Packages.MIMELite
perl538Packages.FileLibMagic perl538Packages.FileLibMagic
perl538Packages.IOSocketINET6 perl538Packages.IOSocketINET6
iconv perl538Packages.IOSocketSSL
perl538Packages.MIMELite
perl538Packages.TermReadKey
pinentry-qt
pixman
podman-compose
pwvucontrol
qtpass
signal-desktop
slack
slurp
space-cadet-pinball
sqlite
stow
swappy
sysstat
telegram-desktop
tofi
ungoogled-chromium
unzip
usbutils
wlr-randr
zoom-us
]; ];
imports = [ ./hyprland/hyprland.nix ./waybar/settings.nix ./emacs/emacs.nix ]; imports = [ ./hyprland/hyprland.nix ./waybar/settings.nix ./emacs/emacs.nix
./chicken/chicken.nix ];
home.stateVersion = "23.11"; home.stateVersion = "23.11";
programs.home-manager.enable = true; programs.home-manager.enable = true;