Run emacs as a system daemon
Move emacs package definition (with emacsPackages) to system/emacs.nix Keep user config in home-manager as emacs service is installed as user service Remove extra expressions (formatters, lsp_servers) and bring back into default.nix Move config/ directory contents up one level
This commit is contained in:
parent
8c33f140db
commit
c549ee4f97
|
@ -1,13 +1,11 @@
|
|||
{ config, pkgs, crafted-emacs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./formatters.nix ./lsp_servers.nix ];
|
||||
stylix.targets.emacs.enable = false;
|
||||
xdg.configFile = {
|
||||
emacs = {
|
||||
source = ./config;
|
||||
recursive = true;
|
||||
};
|
||||
"emacs/init.el".source = ./init.el;
|
||||
"emacs/elfeed.org".source = ./elfeed.org;
|
||||
"emacs/modules".source = ./modules;
|
||||
"emacs/crafted-emacs".source = crafted-emacs;
|
||||
};
|
||||
services.git-sync = {
|
||||
|
@ -17,98 +15,48 @@
|
|||
uri = "git+https://git.xenia.me.uk/xenia/Org.git";
|
||||
};
|
||||
};
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
package = with pkgs;
|
||||
((emacsPackagesFor emacs29-pgtk).emacsWithPackages (epkgs:
|
||||
with epkgs; [
|
||||
# Theme
|
||||
doom-themes
|
||||
|
||||
# completion-packages
|
||||
cape
|
||||
consult
|
||||
corfu
|
||||
corfu-terminal
|
||||
embark
|
||||
embark-consult
|
||||
marginalia
|
||||
orderless
|
||||
vertico
|
||||
|
||||
# ide-packages
|
||||
editorconfig
|
||||
aggressive-indent
|
||||
ibuffer-project
|
||||
# custom
|
||||
treesit-grammars.with-all-grammars
|
||||
treesit-auto
|
||||
apheleia
|
||||
direnv
|
||||
nix-mode
|
||||
rust-mode
|
||||
|
||||
# org-packages
|
||||
denote
|
||||
org-appear
|
||||
|
||||
# ui-packages
|
||||
all-the-icons
|
||||
elisp-demos
|
||||
helpful
|
||||
|
||||
# workspaces-packages
|
||||
tabspaces
|
||||
|
||||
# writing-packages
|
||||
markdown-mode
|
||||
pandoc-mode
|
||||
auctex
|
||||
auctex-latexmk
|
||||
|
||||
# email-packages
|
||||
notmuch
|
||||
notmuch-indicator
|
||||
|
||||
# feed-packages
|
||||
elfeed
|
||||
elfeed-org
|
||||
elfeed-webkit
|
||||
elfeed-tube
|
||||
elfeed-tube-mpv
|
||||
|
||||
# Additional packages
|
||||
which-key
|
||||
magit
|
||||
vterm
|
||||
]));
|
||||
};
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
# Emacs dependencies
|
||||
coreutils
|
||||
gnutls
|
||||
ripgrep
|
||||
cmake
|
||||
fd
|
||||
imagemagick
|
||||
zstd
|
||||
graphviz
|
||||
zip
|
||||
unzip
|
||||
|
||||
# Language-specific requirements
|
||||
(aspellWithDicts (ds: with ds; [ en en-computers en-science ]))
|
||||
languagetool
|
||||
wordnet
|
||||
findutils
|
||||
sqlite
|
||||
pandoc
|
||||
gfortran
|
||||
rustup
|
||||
texlive.combined.scheme-medium
|
||||
python3
|
||||
|
||||
# Linters
|
||||
nodePackages.stylelint
|
||||
|
||||
# Formatters
|
||||
nixfmt
|
||||
beautysh
|
||||
black
|
||||
isort
|
||||
nodePackages.fixjson
|
||||
fprettify
|
||||
shellharden
|
||||
shfmt
|
||||
stylua
|
||||
python3Packages.mdformat
|
||||
html-tidy
|
||||
nodePackages.js-beautify
|
||||
|
||||
# LSP Servers
|
||||
nixd
|
||||
fortls
|
||||
shellcheck
|
||||
marksman
|
||||
luajitPackages.lua-lsp
|
||||
texlab
|
||||
nodePackages.pyright
|
||||
nodePackages.yaml-language-server
|
||||
nodePackages.bash-language-server
|
||||
nodePackages.javascript-typescript-langserver
|
||||
nodePackages.vscode-html-languageserver-bin
|
||||
nodePackages.vscode-css-languageserver-bin
|
||||
nodePackages.vscode-json-languageserver-bin
|
||||
nodePackages.dockerfile-language-server-nodejs
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
nixfmt
|
||||
beautysh
|
||||
black
|
||||
isort
|
||||
nodePackages.fixjson
|
||||
fprettify
|
||||
shellharden
|
||||
shfmt
|
||||
stylua
|
||||
python3Packages.mdformat
|
||||
html-tidy
|
||||
nodePackages.js-beautify
|
||||
];
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
nixd
|
||||
fortls
|
||||
shellcheck
|
||||
marksman
|
||||
luajitPackages.lua-lsp
|
||||
texlab
|
||||
nodePackages.pyright
|
||||
nodePackages.yaml-language-server
|
||||
nodePackages.bash-language-server
|
||||
nodePackages.javascript-typescript-langserver
|
||||
nodePackages.vscode-html-languageserver-bin
|
||||
nodePackages.vscode-css-languageserver-bin
|
||||
nodePackages.vscode-json-languageserver-bin
|
||||
nodePackages.dockerfile-language-server-nodejs
|
||||
];
|
||||
}
|
|
@ -1,86 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
# Usage:
|
||||
# pkgs.tree-sitter.withPlugins (p: [ p.tree-sitter-c p.tree-sitter-java ... ])
|
||||
#
|
||||
# or for all grammars:
|
||||
# pkgs.tree-sitter.withPlugins (_: allGrammars)
|
||||
# which is equivalent to
|
||||
# pkgs.tree-sitter.withPlugins (p: builtins.attrValues p)
|
||||
{
|
||||
home.packages = [
|
||||
(pkgs.tree-sitter.withPlugins (p:
|
||||
with p; [
|
||||
tree-sitter-bash
|
||||
tree-sitter-bibtex
|
||||
tree-sitter-css
|
||||
tree-sitter-dockerfile
|
||||
tree-sitter-elisp
|
||||
tree-sitter-fortran
|
||||
tree-sitter-html
|
||||
tree-sitter-javascript
|
||||
tree-sitter-json
|
||||
tree-sitter-latex
|
||||
tree-sitter-llvm
|
||||
tree-sitter-lua
|
||||
tree-sitter-make
|
||||
tree-sitter-markdown
|
||||
tree-sitter-nix
|
||||
tree-sitter-python
|
||||
tree-sitter-regex
|
||||
tree-sitter-rst
|
||||
tree-sitter-rust
|
||||
tree-sitter-scss
|
||||
tree-sitter-toml
|
||||
tree-sitter-typescript
|
||||
tree-sitter-yaml
|
||||
]))
|
||||
];
|
||||
xdg.configFile."tree-sitter/config.json".text = builtins.toJSON {
|
||||
parser-directories = [ ];
|
||||
theme = {
|
||||
"type.builtin" = {
|
||||
color = 23;
|
||||
bold = true;
|
||||
};
|
||||
variable.parameter = { underline = true; };
|
||||
comment = {
|
||||
color = 245;
|
||||
italic = true;
|
||||
};
|
||||
constructor = 136;
|
||||
"string.special" = 30;
|
||||
variable.builtin = { bold = true; };
|
||||
"constant.builtin" = {
|
||||
bold = true;
|
||||
color = 94;
|
||||
};
|
||||
"function.builtin" = {
|
||||
color = 26;
|
||||
bold = true;
|
||||
};
|
||||
function = 26;
|
||||
attribute = {
|
||||
color = 124;
|
||||
italic = true;
|
||||
};
|
||||
constant = 94;
|
||||
punctuation.delimiter = 239;
|
||||
type = 23;
|
||||
operator = {
|
||||
bold = true;
|
||||
color = 239;
|
||||
};
|
||||
punctuation.bracket = 239;
|
||||
keyword = 56;
|
||||
string = 28;
|
||||
property = 124;
|
||||
number = {
|
||||
bold = true;
|
||||
color = 94;
|
||||
};
|
||||
embedded = null;
|
||||
module = 136;
|
||||
tag = 18;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -107,7 +107,7 @@ in ''
|
|||
|
||||
# Common program shortcuts
|
||||
bind = SUPER, Space, exec, pkill anyrun || anyrun
|
||||
bind = SUPER, E, exec, emacs
|
||||
bind = SUPER, E, exec, emacsclient -c -a "alacritty -e nano"
|
||||
bind = SUPER, Return, exec, alacritty
|
||||
bind = SUPER SHIFT, Return, exec, [float] alacritty
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./default.nix ./firefox.nix ];
|
||||
imports = [ ./default.nix ./emacs.nix ./firefox.nix ];
|
||||
environment.systemPackages = with pkgs; [
|
||||
dex
|
||||
mesa
|
||||
|
|
80
system/emacs.nix
Normal file
80
system/emacs.nix
Normal file
|
@ -0,0 +1,80 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
coreutils
|
||||
fd
|
||||
ripgrep
|
||||
imagemagick
|
||||
languagetool
|
||||
wordnet
|
||||
(aspellWithDicts (ds: with ds; [ en en-computers en-science ]))
|
||||
];
|
||||
services.emacs = {
|
||||
enable = true;
|
||||
install = true;
|
||||
package = with pkgs;
|
||||
((emacsPackagesFor emacs29-pgtk).emacsWithPackages (epkgs:
|
||||
with epkgs; [
|
||||
# Theme
|
||||
doom-themes
|
||||
|
||||
# completion-packages
|
||||
cape
|
||||
consult
|
||||
corfu
|
||||
corfu-terminal
|
||||
embark
|
||||
embark-consult
|
||||
marginalia
|
||||
orderless
|
||||
vertico
|
||||
|
||||
# ide-packages
|
||||
editorconfig
|
||||
aggressive-indent
|
||||
ibuffer-project
|
||||
# custom
|
||||
treesit-grammars.with-all-grammars
|
||||
treesit-auto
|
||||
apheleia
|
||||
direnv
|
||||
nix-mode
|
||||
rust-mode
|
||||
|
||||
# org-packages
|
||||
denote
|
||||
org-appear
|
||||
|
||||
# ui-packages
|
||||
all-the-icons
|
||||
elisp-demos
|
||||
helpful
|
||||
|
||||
# workspaces-packages
|
||||
tabspaces
|
||||
|
||||
# writing-packages
|
||||
markdown-mode
|
||||
pandoc-mode
|
||||
auctex
|
||||
auctex-latexmk
|
||||
|
||||
# email-packages
|
||||
notmuch
|
||||
notmuch-indicator
|
||||
|
||||
# feed-packages
|
||||
elfeed
|
||||
elfeed-org
|
||||
elfeed-webkit
|
||||
elfeed-tube
|
||||
elfeed-tube-mpv
|
||||
|
||||
# Additional packages
|
||||
which-key
|
||||
magit
|
||||
vterm
|
||||
]));
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue