From c5310013ae64a98ee082b189d1e86d2815e38cd8 Mon Sep 17 00:00:00 2001 From: Kat Inskip Date: Tue, 3 Feb 2026 05:57:00 -0800 Subject: [PATCH] feat: more work, package nfnl --- channels.scm | 23 ++++++----- config.scm | 31 ++++++++++---- .../.config/jj/config.toml | 0 dotfiles/.config/nvim/.nfnl.fnl | 1 + dotfiles/.config/nvim/init.fnl | 11 +++++ dotfiles/.config/nvim/init.lua | 13 ++++++ files/gitconfig => dotfiles/.gitconfig | 0 home.scm | 40 ++++++++++++++----- packages/nvim.scm | 27 +++++++++++++ 9 files changed, 118 insertions(+), 28 deletions(-) rename files/jj-config.toml => dotfiles/.config/jj/config.toml (100%) create mode 100644 dotfiles/.config/nvim/.nfnl.fnl create mode 100644 dotfiles/.config/nvim/init.fnl create mode 100644 dotfiles/.config/nvim/init.lua rename files/gitconfig => dotfiles/.gitconfig (100%) create mode 100644 packages/nvim.scm diff --git a/channels.scm b/channels.scm index 287c545..5856b88 100644 --- a/channels.scm +++ b/channels.scm @@ -3,14 +3,15 @@ #:use-module (guix monads) #:export (%kittywitch-channels)) -(define %kittywitch-channels %default-channels) - ;(cons* -; (channel -; (name 'rde) -; (url "https://git.sr.ht/~abcdw/rde") -; (introduction -; (make-channel-introduction -; "257cebd587b66e4d865b3537a9a88cccd7107c95" -; (openpgp-fingerprint -; "2841 9AC6 5038 7440 C7E9 2FFA 2208 D209 58C1 DEB0")))) -; %default-channels)) +(define %kittywitch-channels (cons* + (channel + (name 'nonguix) + (url "https://gitlab.com/nonguix/nonguix") + (branch "master") + (introduction + (make-channel-introduction + "897c1a470da759236cc11798f4e0a5f7d4d59fbc" + (openpgp-fingerprint + "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))) + %default-channels)) + diff --git a/config.scm b/config.scm index ea634a2..672d334 100644 --- a/config.scm +++ b/config.scm @@ -19,9 +19,15 @@ #:use-module (gnu services networking) #:use-module (gnu services ssh) #:use-module (gnu services xorg) - #:use-module (gnu packages shells)) + #:use-module (gnu packages shells) + ; forgive me Saint IGNUcius, for i have sinned + #:use-module (nongnu packages linux) + #:use-module (nongnu system linux-initrd)) (operating-system + (kernel linux) + (initrd microcode-initrd) + (firmware (list linux-firmware)) (locale "en_CA.utf8") (timezone "America/Vancouver") (keyboard-layout (keyboard-layout "gb")) @@ -33,7 +39,7 @@ (comment "Kat Inskip") (group "users") (home-directory "/home/kat") - (shell (file-append zsh "/bin/zsh")) + (shell (file-append fish "/bin/fish")) (supplementary-groups '("wheel" "netdev" "audio" "video"))) %base-user-accounts)) @@ -42,10 +48,7 @@ ;; for packages and 'guix install PACKAGE' to install a package. (packages (append (list (specification->package "sway") (specification->package "wmenu") - (specification->package "librewolf") - (specification->package "neovim") - (specification->package "git") - (specification->package "foot")) %base-packages)) + (specification->package "git")) %base-packages)) ;; Below is the list of system services. To search for available ;; services, run 'guix system search KEYWORD' in a terminal. @@ -58,9 +61,21 @@ (guix-service-type config => (guix-configuration (inherit config) + (substitute-urls + (append (list "https://substitutes.nonguix.org") + %default-substitute-urls)) + (authorized-keys + (append (list (plain-file "non-guix.pub" + "(public-key + (ecc + (curve Ed25519) + (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#) + ) + ) + ")) + %default-authorized-guix-keys)) (channels %kittywitch-channels) - (guix (guix-for-channels %kittywitch-channels))))) - )) + (guix (guix-for-channels %kittywitch-channels))))))) (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) (targets (list "/boot/efi")) diff --git a/files/jj-config.toml b/dotfiles/.config/jj/config.toml similarity index 100% rename from files/jj-config.toml rename to dotfiles/.config/jj/config.toml diff --git a/dotfiles/.config/nvim/.nfnl.fnl b/dotfiles/.config/nvim/.nfnl.fnl new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/dotfiles/.config/nvim/.nfnl.fnl @@ -0,0 +1 @@ +{} diff --git a/dotfiles/.config/nvim/init.fnl b/dotfiles/.config/nvim/init.fnl new file mode 100644 index 0000000..9cb3014 --- /dev/null +++ b/dotfiles/.config/nvim/init.fnl @@ -0,0 +1,11 @@ +(set vim.g.mapleader " ") +(set vim.g.maplocalleader ",") +(set vim.o.ignorecase true) +(set vim.o.smartcase true) +(set vim.o.splitright true) +(set vim.o.splitbelow true) +(set vim.o.foldenable false) +(set vim.o.undofile true) +(set vim.o.spell true) +(set vim.o.termguicolors true) +(set vim.o.exrc true) diff --git a/dotfiles/.config/nvim/init.lua b/dotfiles/.config/nvim/init.lua new file mode 100644 index 0000000..16b44a1 --- /dev/null +++ b/dotfiles/.config/nvim/init.lua @@ -0,0 +1,13 @@ +-- [nfnl] init.fnl +vim.g.mapleader = " " +vim.g.maplocalleader = "," +vim.o.ignorecase = true +vim.o.smartcase = true +vim.o.splitright = true +vim.o.splitbelow = true +vim.o.foldenable = false +vim.o.undofile = true +vim.o.spell = true +vim.o.termguicolors = true +vim.o.exrc = true +return nil diff --git a/files/gitconfig b/dotfiles/.gitconfig similarity index 100% rename from files/gitconfig rename to dotfiles/.gitconfig diff --git a/home.scm b/home.scm index 73d704e..8847a19 100644 --- a/home.scm +++ b/home.scm @@ -1,16 +1,30 @@ +(add-to-load-path (dirname (current-filename))) (use-modules (ice-9 match) (gnu) (gnu home) (gnu home services) + (gnu home services dotfiles) (gnu home services shells) (gnu home services sway) + (packages nvim) (gnu system keyboard) (gnu services) (gnu system shadow)) (use-package-modules wm ; grimshot xdisorg ; wl-clipboard - rust-apps) ; jujutsu + rust-apps ; jujutsu + vim ; self-explanatory + librewolf ; self-explanatory + lua ; fennel + terminals ; foot + ) + +(define neovim-packages + (list neovim + neovim-nfnl + vim-paredit + vim-guix-vim)) (define sway-bar-status #~(string-append "while " #$coreutils "/bin/date" @@ -38,27 +52,35 @@ (define home-config (home-environment - (packages (list jujutsu)) + (packages (append neovim-packages + (list jujutsu + librewolf + fennel + fennel-ls + foot))) (services (append (list - ;; Uncomment the shell you wish to use for your user: - ;(service home-bash-service-type) - ;(service home-fish-service-type) - (service home-zsh-service-type) + (simple-service 'editor-env-var + home-environment-variables-service-type + '(("EDITOR" . "neovim"))) + + (service home-fish-service-type) (service home-sway-service-type sway-config) + (service home-dotfiles-service-type + (home-dotfiles-configuration + (directories '("./dotfiles")))) + (service home-files-service-type `((".guile" ,%default-dotguile) (".Xdefaults" ,%default-xdefaults) - (".gitconfig" ,(local-file "files/gitconfig")) )) (service home-xdg-configuration-files-service-type `(("gdb/gdbinit" ,%default-gdbinit) - ("nano/nanorc" ,%default-nanorc) - ("jj/config.toml" ,(local-file "files/jj-config.toml"))))) + ("nano/nanorc" ,%default-nanorc)))) %base-home-services)))) diff --git a/packages/nvim.scm b/packages/nvim.scm new file mode 100644 index 0000000..22002ba --- /dev/null +++ b/packages/nvim.scm @@ -0,0 +1,27 @@ +(define-module (packages nvim) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (guix download) + #:use-module (guix build-system vim) + #:use-module (guix git-download)) + +(define-public neovim-nfnl + (package + (name "neovim-nfnl") + (version "1.3.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Olical/nfnl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 (base32 "1c1gai38cmdiv6yvl55prw0x34h0zq7mys8icx9xy2rpa80sy3ds")))) + (build-system vim-build-system) + (arguments (list + #:plugin-name "nfnl")) + (synopsis "Enhance your Neovim with Fennel") + (description "Enhance your Neovim experience through Fennel with zero overhead. Write Fennel, run Lua, nfnl will not load unless you're actively modifying your Neovim configuration or plugin source code.") + (home-page "https://github.com/Olical/nfnl/") + (license license:unlicense)))