Move emacs config to nix
This commit is contained in:
parent
75a412de40
commit
c6a9091ea7
3 changed files with 1619 additions and 5 deletions
1587
home-manager/modules/emacs/config.org
Normal file
1587
home-manager/modules/emacs/config.org
Normal file
File diff suppressed because it is too large
Load diff
|
@ -6,6 +6,28 @@
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.eboskma.programs.emacs;
|
cfg = config.eboskma.programs.emacs;
|
||||||
|
|
||||||
|
emacsWithPackages = pkgs.emacsWithPackagesFromUsePackage {
|
||||||
|
# config = ./config.org;
|
||||||
|
config =
|
||||||
|
let
|
||||||
|
tangledOrgConfig = pkgs.runCommand "tangled-emacs-config" { } ''
|
||||||
|
cp ${./config.org} ./config.org
|
||||||
|
${cfg.package}/bin/emacs --batch -Q ./config.org -f org-babel-tangle
|
||||||
|
cp init.el $out
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
builtins.readFile tangledOrgConfig;
|
||||||
|
|
||||||
|
defaultInitFile = true;
|
||||||
|
package = cfg.package;
|
||||||
|
alwaysEnsure = true;
|
||||||
|
alwaysTangle = true;
|
||||||
|
extraEmacsPackages = epkgs: [
|
||||||
|
epkgs.emacsql
|
||||||
|
epkgs.emacsql-sqlite
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
orgProtocolDesktop = pkgs.makeDesktopItem {
|
orgProtocolDesktop = pkgs.makeDesktopItem {
|
||||||
name = "org-protocol";
|
name = "org-protocol";
|
||||||
desktopName = "Emacs Org Protocol Handler";
|
desktopName = "Emacs Org Protocol Handler";
|
||||||
|
@ -13,7 +35,8 @@ with lib; let
|
||||||
categories = [ "Development" "TextEditor" ];
|
categories = [ "Development" "TextEditor" ];
|
||||||
keywords = [ "org-protocol" ];
|
keywords = [ "org-protocol" ];
|
||||||
type = "Application";
|
type = "Application";
|
||||||
exec = "${cfg.package}/bin/emacsclient -- %u";
|
# exec = "${cfg.package}/bin/emacsclient -- %u";
|
||||||
|
exec = "${emacsWithPackages}/bin/emacsclient -- %u";
|
||||||
terminal = false;
|
terminal = false;
|
||||||
mimeTypes = [ "x-scheme-handler/org-protocol" ];
|
mimeTypes = [ "x-scheme-handler/org-protocol" ];
|
||||||
startupWMClass = "Emacs";
|
startupWMClass = "Emacs";
|
||||||
|
@ -40,12 +63,14 @@ in
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.emacs = {
|
programs.emacs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = cfg.package;
|
# package = cfg.package;
|
||||||
|
package = emacsWithPackages;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.emacs = mkIf cfg.daemon {
|
services.emacs = mkIf cfg.daemon {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = cfg.package;
|
# package = cfg.package;
|
||||||
|
package = emacsWithPackages;
|
||||||
client.enable = true;
|
client.enable = true;
|
||||||
socketActivation.enable = true;
|
socketActivation.enable = true;
|
||||||
};
|
};
|
||||||
|
@ -58,7 +83,8 @@ in
|
||||||
nodePackages.bash-language-server
|
nodePackages.bash-language-server
|
||||||
aspell
|
aspell
|
||||||
nil
|
nil
|
||||||
python310
|
python3
|
||||||
|
lldb
|
||||||
] ++
|
] ++
|
||||||
(with aspellDicts; [ en en-computers en-science fy nl ]);
|
(with aspellDicts; [ en en-computers en-science fy nl ]);
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,8 @@ in
|
||||||
dunst.enable = false;
|
dunst.enable = false;
|
||||||
emacs = {
|
emacs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = with pkgs; ((emacsPackagesFor emacsPgtk).emacsWithPackages (epkgs: [ epkgs.emacsql epkgs.emacsql-sqlite ]));
|
# package = with pkgs; ((emacsPackagesFor emacsPgtk).emacsWithPackages (epkgs: [ epkgs.emacsql epkgs.emacsql-sqlite ]));
|
||||||
|
package = pkgs.emacsPgtk;
|
||||||
daemon = true;
|
daemon = true;
|
||||||
};
|
};
|
||||||
electron = {
|
electron = {
|
||||||
|
|
Loading…
Reference in a new issue