From ca14b97b1f80203b90115abcfcff021a81177857 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 13 Feb 2023 00:19:56 +0100 Subject: [PATCH] Emacs in a separate flake --- doom.d/config.el | 148 -------- doom.d/init.el | 195 ----------- doom.d/modules/.gitkeep | 0 doom.d/packages.el | 56 --- flake.lock | 523 +++++----------------------- flake.nix | 6 +- hmModules/emacs/default.nix | 148 +------- hmModules/firefox/default.nix | 19 +- hmModules/git/default.nix | 8 - hmModules/vanilla-emacs/default.nix | 63 ---- hosts/thinkpad/default.nix | 3 +- utils/default.nix | 6 +- 12 files changed, 117 insertions(+), 1058 deletions(-) delete mode 100644 doom.d/config.el delete mode 100644 doom.d/init.el delete mode 100644 doom.d/modules/.gitkeep delete mode 100644 doom.d/packages.el delete mode 100644 hmModules/vanilla-emacs/default.nix diff --git a/doom.d/config.el b/doom.d/config.el deleted file mode 100644 index 7ec1a6b..0000000 --- a/doom.d/config.el +++ /dev/null @@ -1,148 +0,0 @@ -;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- - -;; Place your private configuration here! Remember, you do not need to run 'doom -;; sync' after modifying this file! - - -;; Some functionality uses this to identify you, e.g. GPG configuration, email -;; clients, file templates and snippets. It is optional. -(setq user-full-name "Andrea Ciceri" - user-mail-address "andrea.ciceri@autistici.org") - -;; Doom exposes five (optional) variables for controlling fonts in Doom: -;; -;; - `doom-font' -- the primary font to use -;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable) -;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for -;; presentations or streaming. -;; - `doom-unicode-font' -- for unicode glyphs -;; - `doom-serif-font' -- for the `fixed-pitch-serif' face -;; -;; See 'C-h v doom-font' for documentation and more examples of what they -;; accept. For example: -;; -;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)) -;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13)) -;; -;; If you or Emacs can't find your font, use 'M-x describe-font' to look them -;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to -;; refresh your font settings. If Emacs still can't find your font, it likely -;; wasn't installed correctly. Font issues are rarely Doom issues! - -;; There are two ways to load a theme. Both assume the theme is installed and -;; available. You can either set `doom-theme' or manually load a theme with the -;; `load-theme' function. This is the default: -;; (setq doom-theme 'doom-one) -(setq doom-theme 'doom-one-light) - -;; This determines the style of line numbers in effect. If set to `nil', line -;; numbers are disabled. For relative line numbers, set this to `relative'. -(setq display-line-numbers-type 't) - -;; If you use `org' and don't want your org files in the default location below, -;; change `org-directory'. It must be set before org loads! -(setq org-directory "~/org/") - - -;; Whenever you reconfigure a package, make sure to wrap your config in an -;; `after!' block, otherwise Doom's defaults may override your settings. E.g. -;; -;; (after! PACKAGE -;; (setq x y)) -;; -;; The exceptions to this rule: -;; -;; - Setting file/directory variables (like `org-directory') -;; - Setting variables which explicitly tell you to set them before their -;; package is loaded (see 'C-h v VARIABLE' to look up their documentation). -;; - Setting doom variables (which start with 'doom-' or '+'). -;; -;; Here are some additional functions/macros that will help you configure Doom. -;; -;; - `load!' for loading external *.el files relative to this one -;; - `use-package!' for configuring packages -;; - `after!' for running code after a package has loaded -;; - `add-load-path!' for adding directories to the `load-path', relative to -;; this file. Emacs searches the `load-path' when you load packages with -;; `require' or `use-package'. -;; - `map!' for binding new keys -;; -;; To get information about any of these functions/macros, move the cursor over -;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k'). -;; This will open documentation for it, including demos of how they are used. -;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces, -;; etc). -;; -;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how -;; they are implemented. - -(setenv "SSH_AUTH_SOCK" "/run/user/1000/gnupg/S.gpg-agent.ssh") - -(set-formatter! 'nix-smart-formatter "nixFormat ." :modes '(nix-mode)) - -(defun doom-modeline-set-vcs-modeline () nil) ; FIXME - -(setq +format-on-save-enabled-modes - '(not latex-mode)) - -(setq org-roam-directory (file-truename "~/roam")) -(org-roam-db-autosync-mode) - -(setq doom-font (font-spec :family "Fira Code" :size 16) - doom-variable-pitch-font (font-spec :family "Fira Code") - doom-big-font-increment 1) - -(after! vterm - (dotimes (workspace-number 10) - (define-key vterm-mode-map (kbd (format "M-%d" workspace-number)) nil))) - -(after! polymode (progn - (define-hostmode poly-nix-hostmode :mode 'nix-mode) - - (define-innermode poly-sh-innermode - :mode 'sh-mode - :head-matcher "^.*[+=].*''" - :tail-matcher "''.*[+;].*$" - :head-mode 'host - :tail-mode 'host) - - (define-polymode poly-nix-mode - :hostmode 'poly-nix-hostmode - :innermodes '(poly-sh-innermode)) - )) - -(after! org - (setq-default prettify-symbols-alist - '(("[ ]" "☐") - ("[X]" "☑") - ("[-]" "❍") - ("#+begin_src" "λ") - ("#+end_src" "λ")))) - -(setq +mu4e-backend 'mbsync) - -(after! mu4e - (setq sendmail-program (executable-find "msmtp") - send-mail-function #'smtpmail-send-it - message-sendmail-f-is-evil t - message-sendmail-extra-arguments '("--read-envelope-from") - message-send-mail-function #'message-send-mail-with-sendmail)) - -(set-email-account! "Autistici" - '((mu4e-sent-folder . "/autistici/Sent Mail") - (mu4e-drafts-folder . "/autistici/Drafts") - (mu4e-trash-folder . "/autistici/Trash") - (mu4e-refile-folder . "/autistici/All Mail") - (smtpmail-smtp-user . "andrea.ciceri@autistici.org")) - t) - -(after! eglot - (add-to-list 'eglot-server-programs '(nix-mode . ("nil"))) - (add-hook! 'nix-mode-hook #'eglot-ensure) -) - -;; FIXME: https://github.com/minad/consult/issues/705 -(defun +vertico/project-search-fixed (&optional arg initial-query directory) - (interactive "P") - (consult-ripgrep directory initial-query)) -(advice-add '+vertico/project-search :override #'+vertico/project-search-fixed ) diff --git a/doom.d/init.el b/doom.d/init.el deleted file mode 100644 index b7efd8a..0000000 --- a/doom.d/init.el +++ /dev/null @@ -1,195 +0,0 @@ -;;; init.el -*- lexical-binding: t; -*- - -;; This file controls what Doom modules are enabled and what order they load -;; in. Remember to run 'doom sync' after modifying it! - -;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's -;; documentation. There you'll find a link to Doom's Module Index where all -;; of our modules are listed, including what flags they support. - -;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or -;; 'C-c c k' for non-vim users) to view its documentation. This works on -;; flags as well (those symbols that start with a plus). -;; -;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its -;; directory (for easy access to its source code). - -(doom! :input - ;;bidi ; (tfel ot) thgir etirw uoy gnipleh - ;;chinese - ;;japanese - ;;layout ; auie,ctsrnm is the superior home row - - :completion - company ; the ultimate code completion backend - ;;helm ; the *other* search engine for love and life - ;;ido ; the other *other* search engine... - ;;ivy ; a search engine for love and life - vertico ; the search engine of the future - - :ui - ;;deft ; notational velocity for Emacs - doom ; what makes DOOM look the way it does - ;;doom-dashboard ; a nifty splash screen for Emacs - ;;doom-quit ; DOOM quit-message prompts when you quit Emacs - (emoji +unicode) ; 🙂 - hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW - ;;hydra - ;;indent-guides ; highlighted indent columns - ligatures ; ligatures and symbols to make your code pretty again - minimap ; show a map of the code on the side - modeline ; snazzy, Atom-inspired modeline, plus API - ;;nav-flash ; blink cursor line after big motions - ;;neotree ; a project drawer, like NERDTree for vim - ophints ; highlight the region an operation acts on - (popup +defaults) ; tame sudden yet inevitable temporary windows - ;;tabs ; a tab bar for Emacs - treemacs ; a project drawer, like neotree but cooler - unicode ; extended unicode support for various languages - vc-gutter ; vcs diff in the fringe - vi-tilde-fringe ; fringe tildes to mark beyond EOB - window-select ; visually switch windows - workspaces ; tab emulation, persistence & separate workspaces - ;;zen ; distraction-free coding or writing - - :editor - (evil +everywhere); come to the dark side, we have cookies - file-templates ; auto-snippets for empty files - fold ; (nigh) universal code folding - (format +onsave) ; automated prettiness - ;;god ; run Emacs commands without modifier keys - ;;lispy ; vim for lisp, for people who don't like vim - multiple-cursors ; editing in many places at once - ;; objed ; text object editing for the innocent - ;;parinfer ; turn lisp into python, sort of - ;;rotate-text ; cycle region at point between text candidates - snippets ; my elves. They type so I don't have to - ;;word-wrap ; soft wrapping with language-aware indent - - :emacs - dired ; making dired pretty [functional] - electric ; smarter, keyword-based electric-indent - ;;ibuffer ; interactive buffer management - undo ; persistent, smarter undo for your inevitable mistakes - vc ; version-control and Emacs, sitting in a tree - - :term - eshell ; the elisp shell that works everywhere - ;;shell ; simple shell REPL for Emacs - ;;term ; basic terminal emulator for Emacs - vterm ; the best terminal emulation in Emacs - - :checkers - syntax ; tasing you for every semicolon you forget - (spell +flyspell) ; tasing you for misspelling mispelling - grammar ; tasing grammar mistake every you make - - :tools - ;;ansible - ;;biblio ; Writes a PhD for you (citation needed) - ;;debugger ; FIXME stepping through code, to help you add bugs - direnv - ;;docker - editorconfig ; let someone else argue about tabs vs spaces - ;;ein ; tame Jupyter notebooks with emacs - (eval +overlay) ; run code, run (also, repls) - ;;gist ; interacting with github gists - lookup ; navigate your code and its documentation - lsp ; M-x vscode - (magit +forge) ; a git porcelain for Emacs - make ; run make tasks from Emacs - pass ; password manager for nerds - ;;pdf ; pdf enhancements - ;;prodigy ; FIXME managing external services & code builders - ;;rgb ; creating color strings - ;;taskrunner ; taskrunner for all your projects - terraform ; infrastructure as code - ;;tmux ; an API for interacting with tmux - ;; tree-sitter ; syntax and parsing, sitting in a tree... - ;;upload ; map local to remote projects via ssh/ftp - - :os - (:if IS-MAC macos) ; improve compatibility with macOS - tty ; improve the terminal Emacs experience - (exwm +status) - - :lang - ;;agda ; types of types of types of types... - ;;beancount ; mind the GAAP - ;;(cc +lsp) ; C > C++ == 1 - clojure ; java with a lisp - ;;common-lisp ; if you've seen one lisp, you've seen them all - ;;coq ; proofs-as-programs - ;;crystal ; ruby at the speed of c - ;;csharp ; unity, .NET, and mono shenanigans - ;;data ; config/data formats - ;;(dart +flutter) ; paint ui and not much else - dhall - ;;elixir ; erlang done right - ;;elm ; care for a cup of TEA? - emacs-lisp ; drown in parentheses - ;;erlang ; an elegant language for a more civilized age - ;;ess ; emacs speaks statistics - ;;factor - ;;faust ; dsp, but you get to keep your soul - ;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER) - ;;fsharp ; ML stands for Microsoft's Language - ;;fstar ; (dependent) types and (monadic) effects and Z3 - ;;gdscript ; the language you waited for - ;;(go +lsp) ; the hipster dialect - ;;(graphql +lsp) ; Give queries a REST - (haskell +lsp) ; a language that's lazier than I am - ;;hy ; readability of scheme w/ speed of python - ;;idris ; a language you can depend on - json ; At least it ain't XML - ;;(java +lsp) ; the poster child for carpal tunnel syndrome - javascript ; all(hope(abandon(ye(who(enter(here)))))) - ;;julia ; a better, faster MATLAB - ;;kotlin ; a better, slicker Java(Script) - ;;latex ; writing papers in Emacs has never been so fun - ;;lean ; for folks with too much to prove - ;;ledger ; be audit you can be - ;;lua ; one-based indices? one-based indices - markdown ; writing docs for people to ignore - ;;nim ; python + lisp at the speed of c - nix ; I hereby declare "nix geht mehr!" - ;;ocaml ; an objective camel - (org +roam2) ; organize your plain life in plain text - ;;php ; perl's insecure younger brother - ;;plantuml ; diagrams for confusing people more - purescript ; javascript, but functional - python ; beautiful is better than ugly - ;;qt ; the 'cutest' gui framework ever - ;;racket ; a DSL for DSLs - ;;raku ; the artist formerly known as perl6 - ;;rest ; Emacs as a REST client - ;;rst ; ReST in peace - ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} - ;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap() - ;;scala ; java, but good - ;;(scheme +guile) ; a fully conniving family of lisps - sh ; she sells {ba,z,fi}sh shells on the C xor - ;;sml - solidity ; do you need a blockchain? No. - ;;swift ; who asked for emoji variables? - ;;terra ; Earth and Moon in alignment for performance. - ;;web ; the tubes - yaml ; JSON, but readable - ;;zig ; C, but simpler - - :email - (mu4e +org) - ;;notmuch - ;;(wanderlust +gmail) - - :app - ;;calendar - ;;emms - ;;everywhere ; *leave* Emacs!? You must be joking - ;;irc ; how neckbeards socialize - ;;(rss +org) ; emacs as an RSS reader - ;;twitter ; twitter client https://twitter.com/vnought - - :config - ;;literate - (default +bindings +smartparens)) diff --git a/doom.d/modules/.gitkeep b/doom.d/modules/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/doom.d/packages.el b/doom.d/packages.el deleted file mode 100644 index 98e2ddc..0000000 --- a/doom.d/packages.el +++ /dev/null @@ -1,56 +0,0 @@ -;; -*- no-byte-compile: t; -*- -;;; $DOOMDIR/packages.el - -;; To install a package with Doom you must declare them here and run 'doom sync' -;; on the command line, then restart Emacs for the changes to take effect -- or -;; use 'M-x doom/reload'. - - -;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: -;(package! some-package) - -;; To install a package directly from a remote git repo, you must specify a -;; `:recipe'. You'll find documentation on what `:recipe' accepts here: -;; https://github.com/radian-software/straight.el#the-recipe-format -;(package! another-package -; :recipe (:host github :repo "username/repo")) - -;; If the package you are trying to install does not contain a PACKAGENAME.el -;; file, or is located in a subdirectory of the repo, you'll need to specify -;; `:files' in the `:recipe': -;(package! this-package -; :recipe (:host github :repo "username/repo" -; :files ("some-file.el" "src/lisp/*.el"))) - -;; If you'd like to disable a package included with Doom, you can do so here -;; with the `:disable' property: -;(package! builtin-package :disable t) - -;; You can override the recipe of a built in package without having to specify -;; all the properties for `:recipe'. These will inherit the rest of its recipe -;; from Doom or MELPA/ELPA/Emacsmirror: -;(package! builtin-package :recipe (:nonrecursive t)) -;(package! builtin-package-2 :recipe (:repo "myfork/package")) - -;; Specify a `:branch' to install a package from a particular branch or tag. -;; This is required for some packages whose default branch isn't 'master' (which -;; our package manager can't deal with; see radian-software/straight.el#279) -;(package! builtin-package :recipe (:branch "develop")) - -;; Use `:pin' to specify a particular commit to install. -;(package! builtin-package :pin "1a2b3c4d5e") - - -;; Doom's packages are pinned to a specific commit and updated from release to -;; release. The `unpin!' macro allows you to unpin single packages... -;(unpin! pinned-package) -;; ...or multiple packages -;(unpin! pinned-package another-pinned-package) -;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) -;(unpin! t) - - -(package! dirvish) -(package! git-auto-commit-mode) -(package! polymode) -(package! atomic-chrome) diff --git a/flake.lock b/flake.lock index dafd917..8e77f94 100644 --- a/flake.lock +++ b/flake.lock @@ -18,11 +18,33 @@ "type": "github" } }, + "ccrEmacs": { + "inputs": { + "emacs-overlay": "emacs-overlay", + "emacs-src": "emacs-src", + "flake-parts": "flake-parts", + "nixpkgs": [ + "ccrEmacs", + "emacs-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1676243820, + "narHash": "sha256-eB9/M3swrGgcQEtMEUPLv1FyI+qHJY5IsdPVLN0OSnc=", + "path": "/home/ccr/.config/emacs", + "type": "path" + }, + "original": { + "path": "/home/ccr/.config/emacs", + "type": "path" + } + }, "comma": { "inputs": { "flake-compat": "flake-compat", "naersk": "naersk", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_3", "utils": "utils" }, "locked": { @@ -71,81 +93,6 @@ "type": "github" } }, - "doom-emacs": { - "flake": false, - "locked": { - "lastModified": 1662497747, - "narHash": "sha256-4n7E1fqda7cn5/F2jTkOnKw1juG6XMS/FI9gqODL3aU=", - "owner": "doomemacs", - "repo": "doomemacs", - "rev": "3853dff5e11655e858d0bfae64b70cb12ef685ac", - "type": "github" - }, - "original": { - "owner": "doomemacs", - "repo": "doomemacs", - "rev": "3853dff5e11655e858d0bfae64b70cb12ef685ac", - "type": "github" - } - }, - "doom-snippets": { - "flake": false, - "locked": { - "lastModified": 1662645711, - "narHash": "sha256-XKpPCtECGZQ5bFPPDUX3oAltXOJNwAI/OktxiLnADRE=", - "owner": "doomemacs", - "repo": "snippets", - "rev": "03a62fe7edf7e87fdbd925713fbd3bf292d14b00", - "type": "github" - }, - "original": { - "owner": "doomemacs", - "repo": "snippets", - "type": "github" - } - }, - "doomEmacs": { - "inputs": { - "doom-emacs": "doom-emacs", - "doom-snippets": "doom-snippets", - "emacs-overlay": "emacs-overlay", - "emacs-so-long": "emacs-so-long", - "evil-escape": "evil-escape", - "evil-markdown": "evil-markdown", - "evil-org-mode": "evil-org-mode", - "evil-quick-diff": "evil-quick-diff", - "explain-pause-mode": "explain-pause-mode", - "flake-compat": "flake-compat_2", - "flake-utils": "flake-utils", - "format-all": "format-all", - "nix-straight": "nix-straight", - "nixpkgs": "nixpkgs_3", - "nose": "nose", - "ob-racket": "ob-racket", - "org": "org", - "org-contrib": "org-contrib", - "org-yt": "org-yt", - "php-extras": "php-extras", - "revealjs": "revealjs", - "rotate-text": "rotate-text", - "sln-mode": "sln-mode", - "ts-fold": "ts-fold", - "ws-butler": "ws-butler" - }, - "locked": { - "lastModified": 1671758850, - "narHash": "sha256-B6us/CLIIPJRJgjn/hVp7N07j90kil4HmjUVj8TBhKE=", - "owner": "nix-community", - "repo": "nix-doom-emacs", - "rev": "85a48dbec84e9c26785b58fecdefa1cfc580aea7", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nix-doom-emacs", - "type": "github" - } - }, "dream2nix": { "inputs": { "alejandra": [ @@ -162,7 +109,7 @@ "nci", "devshell" ], - "flake-parts": "flake-parts", + "flake-parts": "flake-parts_2", "flake-utils-pre-commit": [ "helix", "nci" @@ -212,13 +159,16 @@ } }, "emacs-overlay": { - "flake": false, + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs_2" + }, "locked": { - "lastModified": 1671729646, - "narHash": "sha256-crrTM9K1q8zGZ2gibEPJAudAnr0bMqPiLr1I8P+I5ls=", + "lastModified": 1676196577, + "narHash": "sha256-nzXTh2VQZDyzIc6ed2+qoRT/FUKkQQAaLEFPy2MKB+A=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "9c95614e0b1a2f6a3f4cf9b99b17439887ea0373", + "rev": "25bc792c9fe3ab354e7b51539b4da72ac821dde9", "type": "github" }, "original": { @@ -227,119 +177,23 @@ "type": "github" } }, - "emacs-so-long": { + "emacs-src": { "flake": false, "locked": { - "lastModified": 1575031854, - "narHash": "sha256-xIa5zO0ZaToDrec1OFjBK6l39AbA4l/CE4LInVu2hi0=", - "owner": "hlissner", - "repo": "emacs-so-long", - "rev": "ed666b0716f60e8988c455804de24b55919e71ca", - "type": "github" - }, - "original": { - "owner": "hlissner", - "repo": "emacs-so-long", - "type": "github" - } - }, - "emacsSource": { - "flake": false, - "locked": { - "lastModified": 1666690703, - "narHash": "sha256-e5kKIEZJB9BGbBvGtiPK3gNygFoGxkG02nRLCwnGtmk=", - "ref": "refs/heads/master", - "rev": "72a94f91fd0570556ce770dc3a39e658f7588f7e", - "revCount": 161409, + "lastModified": 1676224660, + "narHash": "sha256-9CkPx2CHhrwLoDerjMgYnFxeTC3f8IBf8F9rxVldxe0=", + "ref": "emacs-29", + "rev": "eb2b0931cf1258b875b031f81a3685eda8ddf5cb", + "revCount": 164478, "type": "git", "url": "git://git.savannah.gnu.org/emacs.git" }, "original": { - "rev": "72a94f91fd0570556ce770dc3a39e658f7588f7e", + "ref": "emacs-29", "type": "git", "url": "git://git.savannah.gnu.org/emacs.git" } }, - "evil-escape": { - "flake": false, - "locked": { - "lastModified": 1588439096, - "narHash": "sha256-aB2Ge5o/93B18tPf4fN1c+O46CNh/nOqwLJbox4c8Gw=", - "owner": "hlissner", - "repo": "evil-escape", - "rev": "819f1ee1cf3f69a1ae920e6004f2c0baeebbe077", - "type": "github" - }, - "original": { - "owner": "hlissner", - "repo": "evil-escape", - "type": "github" - } - }, - "evil-markdown": { - "flake": false, - "locked": { - "lastModified": 1626852210, - "narHash": "sha256-HBBuZ1VWIn6kwK5CtGIvHM1+9eiNiKPH0GUsyvpUVN8=", - "owner": "Somelauw", - "repo": "evil-markdown", - "rev": "8e6cc68af83914b2fa9fd3a3b8472573dbcef477", - "type": "github" - }, - "original": { - "owner": "Somelauw", - "repo": "evil-markdown", - "type": "github" - } - }, - "evil-org-mode": { - "flake": false, - "locked": { - "lastModified": 1607203864, - "narHash": "sha256-JxwqVYDN6OIJEH15MVI6XOZAPtUWUhJQWHyzcrUvrFg=", - "owner": "hlissner", - "repo": "evil-org-mode", - "rev": "a9706da260c45b98601bcd72b1d2c0a24a017700", - "type": "github" - }, - "original": { - "owner": "hlissner", - "repo": "evil-org-mode", - "type": "github" - } - }, - "evil-quick-diff": { - "flake": false, - "locked": { - "lastModified": 1575189609, - "narHash": "sha256-oGzl1ayW9rIuq0haoiFS7RZsS8NFMdEA7K1BSozgnJU=", - "owner": "rgrinberg", - "repo": "evil-quick-diff", - "rev": "69c883720b30a892c63bc89f49d4f0e8b8028908", - "type": "github" - }, - "original": { - "owner": "rgrinberg", - "repo": "evil-quick-diff", - "type": "github" - } - }, - "explain-pause-mode": { - "flake": false, - "locked": { - "lastModified": 1595842060, - "narHash": "sha256-++znrjiDSx+cy4okFBBXUBkRFdtnE2x+trkmqjB3Njs=", - "owner": "lastquestion", - "repo": "explain-pause-mode", - "rev": "2356c8c3639cbeeb9751744dbe737267849b4b51", - "type": "github" - }, - "original": { - "owner": "lastquestion", - "repo": "explain-pause-mode", - "type": "github" - } - }, "fan-control": { "flake": false, "locked": { @@ -420,26 +274,28 @@ "type": "github" } }, - "flake-compat_5": { - "flake": false, - "locked": { - "lastModified": 1668681692, - "narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "009399224d5e398d03b22badca40a37ac85412a1", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, "flake-parts": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" }, + "locked": { + "lastModified": 1675933616, + "narHash": "sha256-/rczJkJHtx16IFxMmAWu5nNYcSXNg1YYXTHoGjLrLUA=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "47478a4a003e745402acf63be7f9a092d51b83d7", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_2" + }, "locked": { "lastModified": 1668450977, "narHash": "sha256-cfLhMhnvXn6x1vPm+Jow3RiFAUSCw/l1utktCw5rVA4=", @@ -513,23 +369,6 @@ "type": "github" } }, - "format-all": { - "flake": false, - "locked": { - "lastModified": 1581716637, - "narHash": "sha256-ul7LCe60W8TIvUmUtZtZRo8489TK9iTPDsLHmzxY57M=", - "owner": "lassik", - "repo": "emacs-format-all-the-code", - "rev": "47d862d40a088ca089c92cd393c6dca4628f87d3", - "type": "github" - }, - "original": { - "owner": "lassik", - "repo": "emacs-format-all-the-code", - "rev": "47d862d40a088ca089c92cd393c6dca4628f87d3", - "type": "github" - } - }, "gitignore": { "inputs": { "nixpkgs": [ @@ -679,22 +518,6 @@ "type": "github" } }, - "nix-straight": { - "flake": false, - "locked": { - "lastModified": 1666982610, - "narHash": "sha256-xjgIrmUsekVTE+MpZb5DMU8DQf9DJ/ZiR0o30L9/XCc=", - "owner": "nix-community", - "repo": "nix-straight.el", - "rev": "ad10364d64f472c904115fd38d194efe1c3f1226", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nix-straight.el", - "type": "github" - } - }, "nixosHardware": { "locked": { "lastModified": 1673440569, @@ -727,6 +550,24 @@ } }, "nixpkgs-lib": { + "locked": { + "dir": "lib", + "lastModified": 1675183161, + "narHash": "sha256-Zq8sNgAxDckpn7tJo7V1afRSk2eoVbu3OjI1QklGLNg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e1e1b192c1a5aab2960bf0a0bd53a2e8124fa18e", + "type": "github" + }, + "original": { + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib_2": { "locked": { "dir": "lib", "lastModified": 1665349835, @@ -808,6 +649,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1676110339, + "narHash": "sha256-kOS/L8OOL2odpCOM11IevfHxcUeE0vnZUQ74EOiwXcs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e5530aba13caff5a4f41713f1265b754dc2abfd8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1663235518, "narHash": "sha256-q8zLK6rK/CLXEguaPgm9yQJcY0VQtOBhAT9EV2UFK/A=", @@ -823,21 +680,6 @@ "type": "github" } }, - "nixpkgs_3": { - "locked": { - "lastModified": 1671548329, - "narHash": "sha256-OrC6R6zihRjFqdKFF3/vD3bkz44poONSII8ncre1Wh0=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ba6ba2b90096dc49f448aa4d4d783b5081b1cc87", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixpkgs-unstable", - "type": "indirect" - } - }, "nixpkgs_4": { "locked": { "lastModified": 1671359686, @@ -904,7 +746,7 @@ }, "nom": { "inputs": { - "flake-compat": "flake-compat_3", + "flake-compat": "flake-compat_2", "flake-utils": "flake-utils_3", "nixpkgs": "nixpkgs_5", "pre-commit-hooks": "pre-commit-hooks" @@ -923,22 +765,6 @@ "type": "github" } }, - "nose": { - "flake": false, - "locked": { - "lastModified": 1400604510, - "narHash": "sha256-daEi8Kta1oGaDEmUUDDQMahTTPOpvNpDKk22rlr7cB0=", - "owner": "emacsattic", - "repo": "nose", - "rev": "f8528297519eba911696c4e68fa88892de9a7b72", - "type": "github" - }, - "original": { - "owner": "emacsattic", - "repo": "nose", - "type": "github" - } - }, "nur": { "locked": { "lastModified": 1673661479, @@ -954,89 +780,9 @@ "type": "github" } }, - "ob-racket": { - "flake": false, - "locked": { - "lastModified": 1584656173, - "narHash": "sha256-rBUYDDCXb+3D4xTPQo9UocbTPZ32kWV1Uya/1DmZknU=", - "owner": "xchrishawk", - "repo": "ob-racket", - "rev": "83457ec9e1e96a29fd2086ed19432b9d75787673", - "type": "github" - }, - "original": { - "owner": "xchrishawk", - "repo": "ob-racket", - "type": "github" - } - }, - "org": { - "flake": false, - "locked": { - "lastModified": 1670680538, - "narHash": "sha256-afmN2tOY6Par235bVsqhtFHOSVyw4NBgTxI5Eo6Yk5A=", - "owner": "emacs-straight", - "repo": "org-mode", - "rev": "42153ea2fec66f90c1623be25d6774d96ecf8062", - "type": "github" - }, - "original": { - "owner": "emacs-straight", - "repo": "org-mode", - "type": "github" - } - }, - "org-contrib": { - "flake": false, - "locked": { - "lastModified": 1664301003, - "narHash": "sha256-8CAq/EB52RMQHNLZM0uc/1N5gKTfxGhf7WFt9sMKoD8=", - "owner": "emacsmirror", - "repo": "org-contrib", - "rev": "aa104c0bbc3113f6d3d167b20bd8d6bf6a285f0f", - "type": "github" - }, - "original": { - "owner": "emacsmirror", - "repo": "org-contrib", - "type": "github" - } - }, - "org-yt": { - "flake": false, - "locked": { - "lastModified": 1527381913, - "narHash": "sha256-dzQ6B7ryzatHCTLyEnRSbWO0VUiX/FHYnpHTs74aVUs=", - "owner": "TobiasZawada", - "repo": "org-yt", - "rev": "40cc1ac76d741055cbefa13860d9f070a7ade001", - "type": "github" - }, - "original": { - "owner": "TobiasZawada", - "repo": "org-yt", - "type": "github" - } - }, - "php-extras": { - "flake": false, - "locked": { - "lastModified": 1573312690, - "narHash": "sha256-r4WyVbzvT0ra4Z6JywNBOw5RxOEYd6Qe2IpebHXkj1U=", - "owner": "arnested", - "repo": "php-extras", - "rev": "d410c5af663c30c01d461ac476d1cbfbacb49367", - "type": "github" - }, - "original": { - "owner": "arnested", - "repo": "php-extras", - "type": "github" - } - }, "pre-commit-hooks": { "inputs": { - "flake-compat": "flake-compat_4", + "flake-compat": "flake-compat_3", "flake-utils": [ "nom", "flake-utils" @@ -1064,7 +810,7 @@ }, "preCommitHooks": { "inputs": { - "flake-compat": "flake-compat_5", + "flake-compat": "flake-compat_4", "flake-utils": "flake-utils_4", "gitignore": "gitignore_2", "nixpkgs": "nixpkgs_6", @@ -1084,22 +830,6 @@ "type": "github" } }, - "revealjs": { - "flake": false, - "locked": { - "lastModified": 1670408834, - "narHash": "sha256-2LG8/AwMC+caNK9DKDyVGw+EPT2W6ys177xQj7mdKng=", - "owner": "hakimel", - "repo": "reveal.js", - "rev": "4fe3946cb43de57f79aaa7b646aee7e78f4bcc75", - "type": "github" - }, - "original": { - "owner": "hakimel", - "repo": "reveal.js", - "type": "github" - } - }, "rock5b": { "inputs": { "fan-control": "fan-control", @@ -1123,9 +853,8 @@ "root": { "inputs": { "agenix": "agenix", + "ccrEmacs": "ccrEmacs", "comma": "comma", - "doomEmacs": "doomEmacs", - "emacsSource": "emacsSource", "helix": "helix", "homeManager": "homeManager", "nixosHardware": "nixosHardware", @@ -1137,22 +866,6 @@ "rock5b": "rock5b" } }, - "rotate-text": { - "flake": false, - "locked": { - "lastModified": 1322962747, - "narHash": "sha256-SOeOgSlcEIsKhUiYDJv0p+mLUb420s9E2BmvZQvZ0wk=", - "owner": "debug-ito", - "repo": "rotate-text.el", - "rev": "48f193697db996855aee1ad2bc99b38c6646fe76", - "type": "github" - }, - "original": { - "owner": "debug-ito", - "repo": "rotate-text.el", - "type": "github" - } - }, "rust-overlay": { "inputs": { "flake-utils": "flake-utils_2", @@ -1175,38 +888,6 @@ "type": "github" } }, - "sln-mode": { - "flake": false, - "locked": { - "lastModified": 1423727528, - "narHash": "sha256-XqkqPyEJuTtFslOz1fpTf/Klbd/zA7IGpzpmum/MGao=", - "owner": "sensorflo", - "repo": "sln-mode", - "rev": "0f91d1b957c7d2a7bab9278ec57b54d57f1dbd9c", - "type": "github" - }, - "original": { - "owner": "sensorflo", - "repo": "sln-mode", - "type": "github" - } - }, - "ts-fold": { - "flake": false, - "locked": { - "lastModified": 1671426601, - "narHash": "sha256-NrvSK+olbi4P+9q5KOomNHGgmrRtI9cW9ZqkdU4n0Sc=", - "owner": "jcs-elpa", - "repo": "ts-fold", - "rev": "a64f5252a66253852bef1c627cea9e39928e6392", - "type": "github" - }, - "original": { - "owner": "jcs-elpa", - "repo": "ts-fold", - "type": "github" - } - }, "utils": { "locked": { "lastModified": 1659877975, @@ -1236,22 +917,6 @@ "repo": "flake-utils", "type": "github" } - }, - "ws-butler": { - "flake": false, - "locked": { - "lastModified": 1634511126, - "narHash": "sha256-c0y0ZPtxxICPk+eaNbbQf6t+FRCliNY54CCz9QHQ8ZI=", - "owner": "hlissner", - "repo": "ws-butler", - "rev": "572a10c11b6cb88293de48acbb59a059d36f9ba5", - "type": "github" - }, - "original": { - "owner": "hlissner", - "repo": "ws-butler", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index a60ac08..8900cfd 100644 --- a/flake.nix +++ b/flake.nix @@ -12,13 +12,9 @@ nur.url = "github:nix-community/NUR"; preCommitHooks.url = "github:cachix/pre-commit-hooks.nix"; agenix.url = "github:ryantm/agenix"; - doomEmacs.url = "github:nix-community/nix-doom-emacs"; comma.url = "github:nix-community/comma"; rock5b.url = "github:aciceri/rock5b-nixos"; - emacsSource = { - url = "git://git.savannah.gnu.org/emacs.git?rev=72a94f91fd0570556ce770dc3a39e658f7588f7e"; - flake = false; - }; + ccrEmacs.url = "path:/home/ccr/.config/emacs"; helix.url = "github:helix-editor/helix"; nom.url = "github:maralorn/nix-output-monitor"; }; diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index b70c451..9da7f30 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -1,149 +1,3 @@ { - pkgs, - config, - lib, - ... -}: let - emacsMaster = - (pkgs.emacs.override { - nativeComp = true; - withPgtk = true; - withSQLite3 = true; - withGTK3 = true; - }) - .overrideAttrs (old: { - src = pkgs.emacsSource; - version = pkgs.emacsSource.rev; - patches = []; - postPatch = - old.postPatch - + '' - substituteInPlace lisp/loadup.el \ - --replace '(emacs-repository-get-version)' '"${pkgs.emacsSource.rev}"' \ - --replace '(emacs-repository-get-branch)' '"master"' - '' - + (lib.optionalString (old ? NATIVE_FULL_AOT) - # TODO: remove when https://github.com/NixOS/nixpkgs/pull/193621 is merged - ( - let - backendPath = - lib.concatStringsSep " " - (builtins.map (x: ''\"-B${x}\"'') [ - # Paths necessary so the JIT compiler finds its libraries: - "${lib.getLib pkgs.libgccjit}/lib" - "${lib.getLib pkgs.libgccjit}/lib/gcc" - "${lib.getLib pkgs.stdenv.cc.libc}/lib" - - # Executable paths necessary for compilation (ld, as): - "${lib.getBin pkgs.stdenv.cc.cc}/bin" - "${lib.getBin pkgs.stdenv.cc.bintools}/bin" - "${lib.getBin pkgs.stdenv.cc.bintools.bintools}/bin" - ]); - in '' - substituteInPlace lisp/emacs-lisp/comp.el --replace \ - "(defcustom comp-libgccjit-reproducer nil" \ - "(setq native-comp-driver-options '(${backendPath})) (defcustom comp-libgccjit-reproducer nil" - '' - )); - }); -in { - programs.emacs = { - enable = true; - }; - - programs.doom-emacs = { - enable = true; - emacsPackage = emacsMaster; - doomPrivateDir = ../../doom.d; - doomPackageDir = pkgs.linkFarm "my-doom-packages" [ - { - name = "config.el"; - path = pkgs.emptyFile; - } - { - name = "init.el"; - path = ../../doom.d/init.el; - } - { - name = "packages.el"; - path = ../../doom.d/packages.el; - } - { - name = "modules"; - path = ../../doom.d/modules; - } - ]; - extraPackages = with pkgs; [mu]; - }; - - services.emacs = { - enable = true; - defaultEditor = true; - }; - - home.packages = with pkgs; let - path = pkgs.lib.makeBinPath [ - git - jq - nix - nixpkgs-fmt - ]; - nixFormat = writeScriptBin "nixFormat" '' - export PATH=${pkgs.lib.escapeShellArg path} - - customFormatter=$(nix flake show --no-write-lock-file --no-update-lock-file --json | jq 'has("formatter")') - - if [[ $customFormatter == "true" ]] - then - nix fmt <<< /dev/stdin - else - nixpkgs-fmt <<< /dev/stdin - fi - ''; - in - [ - binutils - (ripgrep.override {withPCRE2 = true;}) - gnutls - fd - imagemagick - sqlite - maim - nil - nixFormat - jq - xclip - hunspell - ] - ++ (with hunspellDicts; [ - en_US-large - it_IT - ]); - - # TODO: probably not the best place, this is unrelated to Emacs - systemd.user.services.second-brain-sync = { - Unit = {Description = "mbsync mailbox synchronization";}; - - Service = { - Type = "oneshot"; - ExecStart = let - sync = pkgs.writeShellScript "second-brain-sync-script" '' - echo ciao - ''; - in "${sync}"; - }; - }; - - systemd.user.timers.second-brain-sync = { - Unit = {inherit (config.systemd.user.services.second-brain-sync.Unit) Description;}; - - Timer = { - OnCalendar = "daily"; - Unit = "mbsync.service"; - Persistent = true; - OnStartupSec = "60m"; - }; - - Install = {WantedBy = ["timers.target"];}; - }; + ccrEmacs.enable = true; } diff --git a/hmModules/firefox/default.nix b/hmModules/firefox/default.nix index 5e7ac8a..c0d44d7 100644 --- a/hmModules/firefox/default.nix +++ b/hmModules/firefox/default.nix @@ -28,7 +28,7 @@ ]; profiles.ccr = { settings = { - "browser.startup.homepage" = "https://google.it"; + "browser.startup.homepage" = "https://search.privatevoid.net/"; "browser.search.region" = "IT"; "browser.search.isUS" = false; "distribution.searchplugins.defaultLocale" = "it-IT"; @@ -38,6 +38,23 @@ "browser.download.lastDir" = "/home/ccr/downloads/"; "browser.shell.checkDefaultBrowser" = false; }; + search.force = true; + search.default = "Searx"; + search.engines = { + "Searx" = { + urls = [ + { + template = "https://search.privatevoid.net/search"; + params = [ + { + name = "q"; + value = "{searchTerms}"; + } + ]; + } + ]; + }; + }; }; }; home.sessionVariables = { diff --git a/hmModules/git/default.nix b/hmModules/git/default.nix index 17d514d..80d5640 100644 --- a/hmModules/git/default.nix +++ b/hmModules/git/default.nix @@ -23,14 +23,6 @@ in { key = config.email; }; - extraConfig = { - url = - if pkgs.stdenv.hostPlatform.isDarwin - then {} - else { - "ssh://git@github.com/" = {insteadOf = https://github.com/;}; - }; - }; delta = { enable = true; options = { diff --git a/hmModules/vanilla-emacs/default.nix b/hmModules/vanilla-emacs/default.nix deleted file mode 100644 index d9ef459..0000000 --- a/hmModules/vanilla-emacs/default.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ - config, - pkgs, - ... -}: let - # use same version as Doom Emacs - vanillaEmacs = (pkgs.emacsPackagesFor config.programs.doom-emacs.emacsPackage).emacsWithPackages (epkgs: - with epkgs; [ - meow - ef-themes - vertico - marginalia - consult - orderless - embark - embark-consult - fira-code-mode - vterm - setup - magit - magit-delta - # git-gutter - # git-gutter-fringe - corfu - corfu-terminal - cape - which-key - nix-mode - envrc - flycheck - flycheck-posframe - flycheck-inline - consult-flycheck - popper - # choose one - lispy - paredit - tree-sitter - tree-sitter-langs - yaml-mode - hl-todo - markdown-mode - polymode # TODO remove if not able to configure it - ]); - vanillaEmacsBin = pkgs.writeScriptBin "vanillaEmacs" '' - ${vanillaEmacs}/bin/emacs --init-directory ~/.vanilla-emacs.d $@ - ''; -in { - home.packages = [ - vanillaEmacsBin - - ( - pkgs.makeDesktopItem { - name = "vanilla-emacs"; - exec = "vanillaEmacs %u"; - comment = "Vanilla Emacs"; - desktopName = "vanilla-emacs"; - type = "Application"; - mimeTypes = []; - } - ) - ]; -} diff --git a/hosts/thinkpad/default.nix b/hosts/thinkpad/default.nix index 4c2fca7..e2b2514 100644 --- a/hosts/thinkpad/default.nix +++ b/hosts/thinkpad/default.nix @@ -39,9 +39,8 @@ "digikam" "discord" "element" - "emacs" - "vanilla-emacs" "email" + "emacs" "firefox" "git" "gpg" diff --git a/utils/default.nix b/utils/default.nix index 17e8bf4..72bb5f6 100644 --- a/utils/default.nix +++ b/utils/default.nix @@ -1,16 +1,15 @@ { agenix, comma, - doomEmacs, homeManager, nixosHardware, nixpkgsUnstable, nur, preCommitHooks, rock5b, - emacsSource, helix, nom, + ccrEmacs, self, ... }: let @@ -37,7 +36,7 @@ ({pkgs, ...}: { networking.hostName = lib.mkForce name; home-manager.users.ccr.imports = [ - doomEmacs.hmModule + ccrEmacs.hmModules.default ]; age = { identityPaths = ["/home/ccr/.ssh/id_rsa"]; @@ -51,7 +50,6 @@ comma.overlays.default nur.overlay (_: self: { - inherit emacsSource; helix = helix.packages.${pkgs.system}.helix-dev; nom = nom.packages.${pkgs.system}.default or (self.runCommandLocal "empty" {} "touch $out"); })