diff --git a/configuration.nix b/configuration.nix index 8999477..5b0859c 100644 --- a/configuration.nix +++ b/configuration.nix @@ -65,7 +65,23 @@ }; home-manager.users.illustris = { ... }: { - home.stateVersion = "23.05"; + home = { + file.".emacs.d" = { + source = ./emacs.d; + recursive = true; + }; + stateVersion = "23.05"; + }; + programs.emacs = { + enable = true; + extraPackages = ( + epkgs: (with epkgs; [ + material-theme + nix-mode + color-theme-modern + ]) + ); + }; services.gpg-agent = { enable = true; defaultCacheTtl = 60*60*12; diff --git a/desktop-configuration.nix b/desktop-configuration.nix index 50322b9..f0f674b 100644 --- a/desktop-configuration.nix +++ b/desktop-configuration.nix @@ -12,7 +12,6 @@ # blender dmenu dunst - emacs firefox flutter gimp diff --git a/emacs.d/init.el b/emacs.d/init.el new file mode 100644 index 0000000..f89fdae --- /dev/null +++ b/emacs.d/init.el @@ -0,0 +1,43 @@ +;; Set keybindings for cycling buffers +(global-set-key [C-prior] 'previous-buffer) +(global-set-key [C-next] 'next-buffer) + +(setq mouse-yank-at-point t) + +(setq load-prefer-newer t) + +(setq-default c-basic-offset 8 + tab-width 8 + indent-tabs-mode t) + +(global-set-key (kbd "C-x k") 'kill-this-buffer) +(put 'scroll-left 'disabled nil) + +(load-theme 'cobalt t t) +(enable-theme 'cobalt) + +(defun toggle-indentation () + "Toggle between tabs and spaces for indentation." + (interactive) + (if indent-tabs-mode + (progn + (setq-local indent-tabs-mode nil) + (setq-local tab-width 2) + ) + (progn + (setq-local indent-tabs-mode t) + (setq-local tab-width 8) + ) + ) + (message "Indentation set to: %s" (if indent-tabs-mode "tabs" "spaces")) +) + +(eval-after-load 'nix-mode + (add-hook 'nix-mode-hook + (lambda () + (define-key nix-mode-map (kbd "") 'toggle-indentation) + (setq-local indent-tabs-mode t) + (setq-local tab-width 8) + ) + ) +)