summaryrefslogtreecommitdiff
path: root/modules/home-manager/personal/programs/emacs.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/home-manager/personal/programs/emacs.nix')
-rw-r--r--modules/home-manager/personal/programs/emacs.nix75
1 files changed, 52 insertions, 23 deletions
diff --git a/modules/home-manager/personal/programs/emacs.nix b/modules/home-manager/personal/programs/emacs.nix
index da0c07f..da30cd2 100644
--- a/modules/home-manager/personal/programs/emacs.nix
+++ b/modules/home-manager/personal/programs/emacs.nix
@@ -1,12 +1,21 @@
-{ config, lib, pkgs, ... }:
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
let
cfg = config.programs.emacs;
- spacemacs-update-script = pkgs.callPackage ({ emacs, git }:
+ spacemacs-update-script = pkgs.callPackage (
+ { emacs, git }:
pkgs.writeShellApplication {
name = "spacemacs-update";
- runtimeInputs = [ emacs git ];
+ runtimeInputs = [
+ emacs
+ git
+ ];
text = ''
git checkout develop
@@ -18,40 +27,57 @@ let
(configuration-layer/update-packages "no-confirmation")
(spacemacs/kill-emacs))'
'';
- }) { emacs = cfg.package; };
-in {
+ }
+ ) { emacs = cfg.package; };
+in
+{
config = lib.mkIf cfg.enable {
services.emacs = {
enable = lib.mkDefault true;
client.enable = lib.mkDefault true;
startWithUserSession = lib.mkDefault true;
- package = let emacs = config.programs.emacs.finalPackage; in
- pkgs.runCommand "emacsWrapped" {
- nativeBuildInputs = with pkgs; [ makeWrapper ];
- } ''
- mkdir "$out"
- ln -s ${emacs}/share "$out"
- for binary in ${emacs}/bin/*
- do
- makeWrapper "$binary" "$out"/bin/$(basename "$binary")\
- --prefix PATH : ${lib.makeBinPath (with pkgs; [ gnutar gcc ])}
- done
+ package =
+ let
+ emacs = config.programs.emacs.finalPackage;
+ in
+ pkgs.runCommand "emacsWrapped"
+ {
+ nativeBuildInputs = with pkgs; [ makeWrapper ];
+ }
+ ''
+ mkdir "$out"
+ ln -s ${emacs}/share "$out"
+ for binary in ${emacs}/bin/*
+ do
+ makeWrapper "$binary" "$out"/bin/$(basename "$binary")\
+ --prefix PATH : ${
+ lib.makeBinPath (
+ with pkgs;
+ [
+ gnutar
+ gcc
+ ]
+ )
+ }
+ done
'';
};
home.sessionVariables.EDITOR = "emacsclient --tty";
home.shellAliases.editor = "emacsclient --create-frame";
# spacemacs dotfile
- home.file.".spacemacs.d/init.el".source =
- lib.mkDefault config.personal.home.dotfiles.spacemacs;
+ home.file.".spacemacs.d/init.el".source = lib.mkDefault config.personal.home.dotfiles.spacemacs;
# service to update spacemacs
- systemd.user =
- (pkgs.personal.lib.homeManager.serviceWithTimer "spacemacs-update" {
+ systemd.user = (
+ pkgs.personal.lib.homeManager.serviceWithTimer "spacemacs-update" {
Unit = {
Description = "Update Spacemacs by pulling the develop branch";
- After = [ "network-online.target" "emacs.service" ];
+ After = [
+ "network-online.target"
+ "emacs.service"
+ ];
};
Service = {
Type = "oneshot";
@@ -62,7 +88,10 @@ in {
Persistent = true;
OnCalendar = "daily";
};
- Install = { WantedBy = [ "default.target" ]; };
- });
+ Install = {
+ WantedBy = [ "default.target" ];
+ };
+ }
+ );
};
}