chore: Move doom-emacs as package instead of module
This commit is contained in:
parent
4a6dbe67fa
commit
9e9b2cd6b5
10 changed files with 102 additions and 50 deletions
|
|
@ -57,7 +57,6 @@
|
|||
firefox.enable = true;
|
||||
openssh.enable = true;
|
||||
helix.enable = true;
|
||||
doom.enable = true;
|
||||
# spacemacs.enable = true;
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,85 +0,0 @@
|
|||
;;; config.el -*- lexical-binding: t; -*-
|
||||
|
||||
;;; Fix non-POSIX SHELL
|
||||
(setq shell-file-name
|
||||
(executable-find "bash"))
|
||||
(let ((fish-exe (executable-find "fish")))
|
||||
(setq-default vterm-shell
|
||||
fish-exe)
|
||||
(setq-default explicit-shell-file-name
|
||||
fish-exe))
|
||||
|
||||
(setq doom-font (font-spec
|
||||
:family "Maple Mono NF CN"
|
||||
:size 20))
|
||||
(setq doom-theme 'doom-gruvbox)
|
||||
;;; Fix failure to loacate 'Symbols Nerd Font Mono' font
|
||||
(setq nerd-icons-font-family "Maple Mono NF CN")
|
||||
|
||||
(setq telega-emoji-use-images
|
||||
nil)
|
||||
|
||||
(map! :map global-map
|
||||
"C-c t"
|
||||
telega-prefix-map)
|
||||
|
||||
(setq display-line-numbers-type
|
||||
'relative)
|
||||
|
||||
(add-hook 'telega-load-hook
|
||||
'telega-notifications-mode)
|
||||
|
||||
(defvar my/emacs-deps-exec-path (seq-filter
|
||||
(lambda (p)
|
||||
(string-match-p
|
||||
"/nix/store/.*-emacs-packages-deps/bin"
|
||||
p))
|
||||
exec-path))
|
||||
|
||||
(advice-add #'envrc--update
|
||||
:after #'(lambda ()
|
||||
(setq exec-path
|
||||
(append exec-path
|
||||
my/emacs-deps-exec-path))))
|
||||
|
||||
(advice-add #'telega-chatbuf-attach-clipboard
|
||||
:override #'(lambda (doc-p)
|
||||
(interactive "P")
|
||||
(let* ((selection-coding-system 'no-conversion) ;for rawdata
|
||||
(temporary-file-directory telega-temp-dir)
|
||||
(tmpfile (telega-temp-name "clipboard" ".png"))
|
||||
(coding-system-for-write 'binary))
|
||||
(if (eq system-type 'darwin)
|
||||
(progn
|
||||
;; NOTE: On MacOS, try extracting clipboard using pngpaste
|
||||
(unless (executable-find "pngpaste")
|
||||
(error "Please install pngpaste to paste images"))
|
||||
(unless (= 0 (telega-screenshot-with-pngpaste tmpfile))
|
||||
(error "No image in CLIPBOARD")))
|
||||
(let ((image-data (or (gui-get-selection 'CLIPBOARD 'image/png)
|
||||
(gui-get-selection 'CLIPBOARD 'image/jpeg)
|
||||
(error "No image in CLIPBOARD"))))
|
||||
(write-region image-data nil tmpfile nil 'quiet)))
|
||||
(telega-chatbuf-attach-media tmpfile (when doc-p 'preview)))))
|
||||
|
||||
(defun +telega-save-file-to-clipboard (msg)
|
||||
"Save file at point to clipboard.
|
||||
NOTE: wayland only."
|
||||
(interactive (list (telega-msg-for-interactive)))
|
||||
(let ((file (telega-msg--content-file msg)))
|
||||
(unless file
|
||||
(user-error "No file associated with message"))
|
||||
(telega-file--download file
|
||||
:priority 32
|
||||
:update-callback
|
||||
(lambda (dfile)
|
||||
(telega-msg-redisplay msg)
|
||||
(message "Wait for downloading to finish…")
|
||||
(when (telega-file--downloaded-p dfile)
|
||||
(let* ((fpath (telega--tl-get dfile :local :path)))
|
||||
(shell-command (format "wl-copy < \"%s\"" fpath))
|
||||
(message (format "File saved to clipboard: %s" fpath))))))))
|
||||
|
||||
(map! :map global-map
|
||||
"C-c n"
|
||||
#'helm-nixos-options)
|
||||
|
|
@ -1,199 +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).
|
||||
|
||||
;; typochecker: off
|
||||
|
||||
(doom! :input
|
||||
;;bidi ; (tfel ot) thgir etirw uoy gnipleh
|
||||
;;chinese
|
||||
;;japanese
|
||||
;;layout ; auie,ctsrnm is the superior home row
|
||||
|
||||
:completion
|
||||
(company +childframe) ; the ultimate code completion backend
|
||||
;;(corfu +orderless) ; complete with cap(f), cape and a flying feather!
|
||||
;;helm ; the *other* search engine for love and life
|
||||
;;ido ; the other *other* search engine...
|
||||
;;ivy ; a search engine for love and life
|
||||
(vertico +icons) ; 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
|
||||
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
|
||||
smooth-scroll ; So smooth you won't believe it's not butter
|
||||
tabs ; a tab bar for Emacs
|
||||
treemacs ; a project drawer, like neotree but cooler
|
||||
unicode ; extended unicode support for various languages
|
||||
(vc-gutter +pretty) ; 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
|
||||
;;eww ; the internet is gross
|
||||
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)
|
||||
;;collab ; buffers with friends
|
||||
;;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)
|
||||
lookup ; navigate your code and its documentation
|
||||
;;llm ; when I said you needed friends, I didn't mean...
|
||||
lsp ; M-x vscode
|
||||
magit ; a git porcelain for Emacs
|
||||
make ; run make tasks from Emacs
|
||||
;;pass ; password manager for nerds
|
||||
pdf ; pdf enhancements
|
||||
;;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 (featurep :system 'macos) macos) ; improve compatibility with macOS
|
||||
;;tty ; improve the terminal Emacs experience
|
||||
|
||||
: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
|
||||
;;janet ; Fun fact: Janet is me!
|
||||
;;(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 ; organize your plain life in plain text
|
||||
;;php ; perl's insecure younger brother
|
||||
;;plantuml ; diagrams for confusing people more
|
||||
graphviz ; diagrams for confusing yourself even 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 +lsp) ; 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 +gmail)
|
||||
;;notmuch
|
||||
;;(wanderlust +gmail)
|
||||
|
||||
:app
|
||||
;;calendar
|
||||
;;emms
|
||||
;;everywhere ; *leave* Emacs!? You must be joking
|
||||
;;irc ; how neckbeards socialize
|
||||
;;(rss +org) ; emacs as an RSS reader
|
||||
|
||||
:config
|
||||
;;literate
|
||||
(default +bindings +smartparens))
|
||||
|
||||
;; typochecker: on
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.david.programs.doom;
|
||||
|
||||
inherit (inputs) emacs-overlay nixpkgs;
|
||||
inherit (pkgs) system;
|
||||
pkgs' = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [ emacs-overlay.overlays.default ];
|
||||
};
|
||||
in
|
||||
{
|
||||
options = {
|
||||
david.programs.doom = {
|
||||
enable = lib.mkEnableOption "doom";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
stylix.targets.emacs.enable = false;
|
||||
services.emacs.enable = true;
|
||||
programs.doom-emacs = {
|
||||
enable = true;
|
||||
emacs = pkgs'.emacs-igc-pgtk;
|
||||
extraPackages =
|
||||
ep: with ep; [
|
||||
melpaPackages.telega
|
||||
melpaPackages.nixos-options
|
||||
];
|
||||
extraBinPackages = with pkgs; [
|
||||
editor-runtime
|
||||
|
||||
git
|
||||
ripgrep
|
||||
fd
|
||||
imagemagick
|
||||
];
|
||||
doomDir = ./config;
|
||||
provideEmacs = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -8,7 +8,6 @@
|
|||
(with inputs; [
|
||||
sops-nix.homeManagerModules.sops
|
||||
betterfox-nix.homeModules.betterfox
|
||||
nix-doom.homeModule
|
||||
])
|
||||
++ lib.youthlic.loadImports ./.;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue