diff options
Diffstat (limited to 'modules/home-manager/personal/programs/emacs.nix')
| -rw-r--r-- | modules/home-manager/personal/programs/emacs.nix | 75 |
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" ]; + }; + } + ); }; } |
