From 3f71d78f3f8add16b7e76f7be604808dcbb35bba Mon Sep 17 00:00:00 2001 From: Rutherther Date: Fri, 22 Sep 2023 13:23:30 +0200 Subject: [PATCH] Use custom doom emacs setup instead of nix-community/nix-doom-emacs[1;5D --- flake.lock | 457 +---------------------- flake.nix | 9 +- hosts/configuration.nix | 60 +-- hosts/default.nix | 13 +- hosts/home.nix | 2 +- modules/editors/emacs/doom.d/packages.el | 2 +- modules/editors/emacs/home.nix | 61 ++- 7 files changed, 69 insertions(+), 535 deletions(-) diff --git a/flake.lock b/flake.lock index 0605ca7..c74855c 100644 --- a/flake.lock +++ b/flake.lock @@ -1,230 +1,6 @@ { "nodes": { - "doom-emacs": { - "inputs": { - "doom-emacs": "doom-emacs_2", - "doom-snippets": "doom-snippets", - "emacs-overlay": "emacs-overlay", - "emacs-so-long": "emacs-so-long", - "evil-escape": "evil-escape", - "evil-markdown": "evil-markdown", - "evil-org-mode": "evil-org-mode", - "evil-quick-diff": "evil-quick-diff", - "explain-pause-mode": "explain-pause-mode", - "flake-compat": "flake-compat", - "flake-utils": "flake-utils", - "format-all": "format-all", - "nix-straight": "nix-straight", - "nixpkgs": [ - "nixpkgs" - ], - "nose": "nose", - "ob-racket": "ob-racket", - "org": "org", - "org-contrib": "org-contrib", - "org-yt": "org-yt", - "php-extras": "php-extras", - "revealjs": "revealjs", - "rotate-text": "rotate-text", - "sln-mode": "sln-mode", - "ts-fold": "ts-fold", - "ws-butler": "ws-butler" - }, - "locked": { - "lastModified": 1695346081, - "narHash": "sha256-ELuMibAhsgOEIzoPb9ZodYLcde0qSEP6ZuVIvFDIb6A=", - "owner": "nix-community", - "repo": "nix-doom-emacs", - "rev": "5bbefaee92c4277ff1961b333f9937f5180d15f3", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nix-doom-emacs", - "type": "github" - } - }, - "doom-emacs_2": { - "flake": false, - "locked": { - "lastModified": 1662497747, - "narHash": "sha256-4n7E1fqda7cn5/F2jTkOnKw1juG6XMS/FI9gqODL3aU=", - "owner": "doomemacs", - "repo": "doomemacs", - "rev": "3853dff5e11655e858d0bfae64b70cb12ef685ac", - "type": "github" - }, - "original": { - "owner": "doomemacs", - "repo": "doomemacs", - "rev": "3853dff5e11655e858d0bfae64b70cb12ef685ac", - "type": "github" - } - }, - "doom-snippets": { - "flake": false, - "locked": { - "lastModified": 1694887483, - "narHash": "sha256-KlKhruPSLPSKqUnr5/U65arm16VrY9ORzm+XKNZhpTQ=", - "owner": "doomemacs", - "repo": "snippets", - "rev": "f022984ee1318a4015d5d081b3c3dab5a60dc6ff", - "type": "github" - }, - "original": { - "owner": "doomemacs", - "repo": "snippets", - "type": "github" - } - }, - "emacs-overlay": { - "flake": false, - "locked": { - "lastModified": 1676366521, - "narHash": "sha256-i4UAY8t9Au9SJtsgYppa3NHSVf1YkV6yqnNIQd+Km4g=", - "owner": "nix-community", - "repo": "emacs-overlay", - "rev": "c16be6de78ea878aedd0292aa5d4a1ee0a5da501", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "emacs-overlay", - "rev": "c16be6de78ea878aedd0292aa5d4a1ee0a5da501", - "type": "github" - } - }, - "emacs-so-long": { - "flake": false, - "locked": { - "lastModified": 1575031854, - "narHash": "sha256-xIa5zO0ZaToDrec1OFjBK6l39AbA4l/CE4LInVu2hi0=", - "owner": "hlissner", - "repo": "emacs-so-long", - "rev": "ed666b0716f60e8988c455804de24b55919e71ca", - "type": "github" - }, - "original": { - "owner": "hlissner", - "repo": "emacs-so-long", - "type": "github" - } - }, - "evil-escape": { - "flake": false, - "locked": { - "lastModified": 1588439096, - "narHash": "sha256-aB2Ge5o/93B18tPf4fN1c+O46CNh/nOqwLJbox4c8Gw=", - "owner": "hlissner", - "repo": "evil-escape", - "rev": "819f1ee1cf3f69a1ae920e6004f2c0baeebbe077", - "type": "github" - }, - "original": { - "owner": "hlissner", - "repo": "evil-escape", - "type": "github" - } - }, - "evil-markdown": { - "flake": false, - "locked": { - "lastModified": 1626852210, - "narHash": "sha256-HBBuZ1VWIn6kwK5CtGIvHM1+9eiNiKPH0GUsyvpUVN8=", - "owner": "Somelauw", - "repo": "evil-markdown", - "rev": "8e6cc68af83914b2fa9fd3a3b8472573dbcef477", - "type": "github" - }, - "original": { - "owner": "Somelauw", - "repo": "evil-markdown", - "type": "github" - } - }, - "evil-org-mode": { - "flake": false, - "locked": { - "lastModified": 1607203864, - "narHash": "sha256-JxwqVYDN6OIJEH15MVI6XOZAPtUWUhJQWHyzcrUvrFg=", - "owner": "hlissner", - "repo": "evil-org-mode", - "rev": "a9706da260c45b98601bcd72b1d2c0a24a017700", - "type": "github" - }, - "original": { - "owner": "hlissner", - "repo": "evil-org-mode", - "type": "github" - } - }, - "evil-quick-diff": { - "flake": false, - "locked": { - "lastModified": 1575189609, - "narHash": "sha256-oGzl1ayW9rIuq0haoiFS7RZsS8NFMdEA7K1BSozgnJU=", - "owner": "rgrinberg", - "repo": "evil-quick-diff", - "rev": "69c883720b30a892c63bc89f49d4f0e8b8028908", - "type": "github" - }, - "original": { - "owner": "rgrinberg", - "repo": "evil-quick-diff", - "type": "github" - } - }, - "explain-pause-mode": { - "flake": false, - "locked": { - "lastModified": 1595842060, - "narHash": "sha256-++znrjiDSx+cy4okFBBXUBkRFdtnE2x+trkmqjB3Njs=", - "owner": "lastquestion", - "repo": "explain-pause-mode", - "rev": "2356c8c3639cbeeb9751744dbe737267849b4b51", - "type": "github" - }, - "original": { - "owner": "lastquestion", - "repo": "explain-pause-mode", - "type": "github" - } - }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_2": { "locked": { "lastModified": 1659877975, "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", @@ -239,23 +15,6 @@ "type": "github" } }, - "format-all": { - "flake": false, - "locked": { - "lastModified": 1581716637, - "narHash": "sha256-ul7LCe60W8TIvUmUtZtZRo8489TK9iTPDsLHmzxY57M=", - "owner": "lassik", - "repo": "emacs-format-all-the-code", - "rev": "47d862d40a088ca089c92cd393c6dca4628f87d3", - "type": "github" - }, - "original": { - "owner": "lassik", - "repo": "emacs-format-all-the-code", - "rev": "47d862d40a088ca089c92cd393c6dca4628f87d3", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -277,25 +36,9 @@ "type": "github" } }, - "nix-straight": { - "flake": false, - "locked": { - "lastModified": 1694361489, - "narHash": "sha256-kjDp+j6OtrmqbtjQB5uuOtjS08+kgJQuxFqhWE1Y9Rw=", - "owner": "nix-community", - "repo": "nix-straight.el", - "rev": "748be99b84be0b130e946288099806a0f16d6e57", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nix-straight.el", - "type": "github" - } - }, "nixgl": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils", "nixpkgs": [ "nixpkgs" ] @@ -346,29 +89,13 @@ "type": "github" } }, - "nose": { - "flake": false, - "locked": { - "lastModified": 1400604510, - "narHash": "sha256-daEi8Kta1oGaDEmUUDDQMahTTPOpvNpDKk22rlr7cB0=", - "owner": "emacsattic", - "repo": "nose", - "rev": "f8528297519eba911696c4e68fa88892de9a7b72", - "type": "github" - }, - "original": { - "owner": "emacsattic", - "repo": "nose", - "type": "github" - } - }, "nur": { "locked": { - "lastModified": 1695369089, - "narHash": "sha256-3iIl4R7XJbSIXvNEwYpZfIZlZ2DTKc25HtEPh7QagH8=", + "lastModified": 1695379524, + "narHash": "sha256-lXG7i/7BHa3hLBHV+KsXGrOEna+zYBJ09wnGa7SlRG8=", "owner": "nix-community", "repo": "NUR", - "rev": "8f631f591c83db7e1ad6c4ed8eb737f231bd6994", + "rev": "580b8e4860d3ef435f7f2c0d25cbbafdb8a831cb", "type": "github" }, "original": { @@ -377,190 +104,14 @@ "type": "github" } }, - "ob-racket": { - "flake": false, - "locked": { - "lastModified": 1584656173, - "narHash": "sha256-rBUYDDCXb+3D4xTPQo9UocbTPZ32kWV1Uya/1DmZknU=", - "owner": "xchrishawk", - "repo": "ob-racket", - "rev": "83457ec9e1e96a29fd2086ed19432b9d75787673", - "type": "github" - }, - "original": { - "owner": "xchrishawk", - "repo": "ob-racket", - "type": "github" - } - }, - "org": { - "flake": false, - "locked": { - "lastModified": 1695208951, - "narHash": "sha256-GdkBhWg/bIwnQk4/a/Ief+cFtDcUJEMNqiFYO3A5sus=", - "owner": "emacs-straight", - "repo": "org-mode", - "rev": "266aac1186256aaf3fb1bb1181ee83d548092d12", - "type": "github" - }, - "original": { - "owner": "emacs-straight", - "repo": "org-mode", - "type": "github" - } - }, - "org-contrib": { - "flake": false, - "locked": { - "lastModified": 1694946041, - "narHash": "sha256-X/HFG6NZe5BY00KvGbcsIuf9R6Lg8x7Uhd0Y5+Q3qZU=", - "owner": "emacsmirror", - "repo": "org-contrib", - "rev": "5eabbf22bdd4523c922a30787e98ee66c24221aa", - "type": "github" - }, - "original": { - "owner": "emacsmirror", - "repo": "org-contrib", - "type": "github" - } - }, - "org-yt": { - "flake": false, - "locked": { - "lastModified": 1527381913, - "narHash": "sha256-dzQ6B7ryzatHCTLyEnRSbWO0VUiX/FHYnpHTs74aVUs=", - "owner": "TobiasZawada", - "repo": "org-yt", - "rev": "40cc1ac76d741055cbefa13860d9f070a7ade001", - "type": "github" - }, - "original": { - "owner": "TobiasZawada", - "repo": "org-yt", - "type": "github" - } - }, - "php-extras": { - "flake": false, - "locked": { - "lastModified": 1573312690, - "narHash": "sha256-r4WyVbzvT0ra4Z6JywNBOw5RxOEYd6Qe2IpebHXkj1U=", - "owner": "arnested", - "repo": "php-extras", - "rev": "d410c5af663c30c01d461ac476d1cbfbacb49367", - "type": "github" - }, - "original": { - "owner": "arnested", - "repo": "php-extras", - "type": "github" - } - }, - "revealjs": { - "flake": false, - "locked": { - "lastModified": 1695108593, - "narHash": "sha256-1Rb3w4Mpzv81pw7FaZHdQULK6+9oZIzeQ6uCD4PvjJM=", - "owner": "hakimel", - "repo": "reveal.js", - "rev": "db2523db277bea632c218a7d836f27079a1be7f9", - "type": "github" - }, - "original": { - "owner": "hakimel", - "repo": "reveal.js", - "type": "github" - } - }, "root": { "inputs": { - "doom-emacs": "doom-emacs", "home-manager": "home-manager", "nixgl": "nixgl", "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable", "nur": "nur" } - }, - "rotate-text": { - "flake": false, - "locked": { - "lastModified": 1322962747, - "narHash": "sha256-SOeOgSlcEIsKhUiYDJv0p+mLUb420s9E2BmvZQvZ0wk=", - "owner": "debug-ito", - "repo": "rotate-text.el", - "rev": "48f193697db996855aee1ad2bc99b38c6646fe76", - "type": "github" - }, - "original": { - "owner": "debug-ito", - "repo": "rotate-text.el", - "type": "github" - } - }, - "sln-mode": { - "flake": false, - "locked": { - "lastModified": 1423727528, - "narHash": "sha256-XqkqPyEJuTtFslOz1fpTf/Klbd/zA7IGpzpmum/MGao=", - "owner": "sensorflo", - "repo": "sln-mode", - "rev": "0f91d1b957c7d2a7bab9278ec57b54d57f1dbd9c", - "type": "github" - }, - "original": { - "owner": "sensorflo", - "repo": "sln-mode", - "type": "github" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "ts-fold": { - "flake": false, - "locked": { - "lastModified": 1695278494, - "narHash": "sha256-O4NcUC1u08W8ZslqoA/i+iTaLotKwheURXQWBxLLMFc=", - "owner": "jcs-elpa", - "repo": "ts-fold", - "rev": "70b2c79ff4daa7351d4e2917b0343b9a18d4d4f2", - "type": "github" - }, - "original": { - "owner": "jcs-elpa", - "repo": "ts-fold", - "type": "github" - } - }, - "ws-butler": { - "flake": false, - "locked": { - "lastModified": 1634511126, - "narHash": "sha256-c0y0ZPtxxICPk+eaNbbQf6t+FRCliNY54CCz9QHQ8ZI=", - "owner": "hlissner", - "repo": "ws-butler", - "rev": "572a10c11b6cb88293de48acbb59a059d36f9ba5", - "type": "github" - }, - "original": { - "owner": "hlissner", - "repo": "ws-butler", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 36e984e..500f641 100644 --- a/flake.nix +++ b/flake.nix @@ -27,14 +27,9 @@ url = "github:guibou/nixGL"; inputs.nixpkgs.follows = "nixpkgs"; }; - - doom-emacs = { - url = "github:nix-community/nix-doom-emacs"; - inputs.nixpkgs.follows = "nixpkgs"; - }; }; - outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, home-manager, doom-emacs, nur, nixgl, ... }: # Function that tells my flake which to use and what do what to do with the dependencies. + outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, home-manager, nur, nixgl, ... }: # Function that tells my flake which to use and what do what to do with the dependencies. let # Variables that can be used in the config files. user = "ruther"; location = "$HOME/.setup"; @@ -43,7 +38,7 @@ nixosConfigurations = ( # NixOS configurations import ./hosts { # Imports ./hosts/default.nix inherit (nixpkgs) lib; - inherit inputs nixpkgs nixpkgs-unstable home-manager nur user location doom-emacs; # Also inherit home-manager so it does not need to be defined here. + inherit inputs nixpkgs nixpkgs-unstable home-manager nur user location; # Also inherit home-manager so it does not need to be defined here. } ); diff --git a/hosts/configuration.nix b/hosts/configuration.nix index 2f3a70f..7b9d70a 100644 --- a/hosts/configuration.nix +++ b/hosts/configuration.nix @@ -21,14 +21,14 @@ extraGroups = [ "wheel" "video" "audio" "camera" "networkmanager" "lp" "scanner" "kvm" "libvirtd" "plex" ]; shell = pkgs.zsh; # Default shell }; - security.sudo.wheelNeedsPassword = false; # User does not need to give password when using sudo. + security.sudo.wheelNeedsPassword = true; - time.timeZone = "Europe/Brussels"; # Time zone and internationalisation + time.timeZone = "Europe/Prague"; # Time zone and internationalisation i18n = { defaultLocale = "en_US.UTF-8"; extraLocaleSettings = { # Extra locale settings that need to be overwritten - LC_TIME = "nl_BE.UTF-8"; - LC_MONETARY = "nl_BE.UTF-8"; + LC_TIME = "cs_CZ.UTF-8"; + LC_MONETARY = "cs_CZ.UTF-8"; }; }; @@ -75,32 +75,8 @@ ]; }; - programs = { - thunar = { - enable = true; - plugins = with pkgs.xfce; [ - thunar-archive-plugin - thunar-volman - thunar-media-tags-plugin - ]; - }; - }; - services = { tumbler.enable = true; - printing = { # Printing and drivers for TS5300 - enable = true; - #drivers = [ pkgs.cnijfilter2 ]; # There is the possibility cups will complain about missing cmdtocanonij3. I guess this is just an error that can be ignored for now. Also no longer need required since server uses ipp to share printer over network. - }; - avahi = { # Needed to find wireless printer - enable = true; - nssmdns = true; - publish = { # Needed for detecting the scanner - enable = true; - addresses = true; - userServices = true; - }; - }; pipewire = { # Sound enable = true; alsa = { @@ -110,34 +86,10 @@ pulse.enable = true; jack.enable = true; }; - openssh = { # SSH: secure shell (remote connection to shell of server) - enable = true; # local: $ ssh @ - # public: - # - port forward 22 TCP to server - # - in case you want to use the domain name insted of the ip: - # - for me, via cloudflare, create an A record with name "ssh" to the correct ip without proxy - # - connect via ssh @ - # generating a key: - # - $ ssh-keygen | ssh-copy-id | ssh-add - # - if ssh-add does not work: $ eval `ssh-agent -s` - allowSFTP = true; # SFTP: secure file transfer protocol (send file to server) - # connect: $ sftp @ - # or with file browser: sftp:// - # commands: - # - lpwd & pwd = print (local) parent working directory - # - put/get = send or receive file - extraConfig = '' - HostKeyAlgorithms +ssh-rsa - ''; # Temporary extra config so ssh will work in guacamole - }; - flatpak.enable = true; # download flatpak file from website - sudo flatpak install - reboot if not showing up - # sudo flatpak uninstall --delete-data (> flatpak list --app) - flatpak uninstall --unused - # List: - # com.obsproject.Studio - # com.parsecgaming.parsec - # com.usebottles.bottles }; + systemd.services."home-manager-${user}".serviceConfig.TimeoutStartSec = lib.mkForce "10m"; + nix = { # Nix Package Manager settings settings ={ auto-optimise-store = true; # Optimise syslinks diff --git a/hosts/default.nix b/hosts/default.nix index 5034ee2..52f6423 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -11,7 +11,7 @@ # └─ ./home.nix # -{ lib, inputs, nixpkgs, nixpkgs-unstable, home-manager, doom-emacs, nur, user, location, ... }: +{ lib, inputs, nixpkgs, nixpkgs-unstable, home-manager, nur, user, location, ... }: let system = "x86_64-linux"; # System architecture @@ -46,14 +46,14 @@ in home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { - inherit unstable user; + inherit unstable user location; host = { hostName = "laptop"; mainMonitor = "eDP-1"; }; }; home-manager.users.${user} = { - imports = [doom-emacs.hmModule] ++ [(import ./home.nix)] ++ [(import ./laptop/home.nix)]; + imports = [(import ./home.nix)] ++ [(import ./laptop/home.nix)]; }; } ]; @@ -77,7 +77,7 @@ in home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { - inherit unstable user; + inherit unstable user location; host = { hostName = "vm"; mainMonitor = "Virtual-1"; @@ -85,7 +85,7 @@ in }; }; home-manager.users.${user} = { - imports = [doom-emacs.hmModule] ++ [(import ./home.nix)] ++ [(import ./vm/home.nix)]; + imports = [(import ./home.nix)] ++ [(import ./vm/home.nix)]; }; } ]; @@ -110,7 +110,7 @@ in home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { - inherit unstable user; + inherit unstable user location; host = { hostName = "desktop"; #For Xorg iGPU | Hyprland iGPU mainMonitor = "HDMI-A-1"; #HDMIA3 | HDMI-A-3 @@ -119,7 +119,6 @@ in }; # Pass flake variable home-manager.users.${user} = { imports = [ - doom-emacs.hmModule ./home.nix ./desktop/home.nix ]; diff --git a/hosts/home.nix b/hosts/home.nix index 7d37293..ef7984c 100644 --- a/hosts/home.nix +++ b/hosts/home.nix @@ -11,7 +11,7 @@ # └─ default.nix # -{ config, lib, pkgs, unstable, user, ... }: +{ config, lib, pkgs, unstable, user, location, ... }: { imports = # Home Manager Modules diff --git a/modules/editors/emacs/doom.d/packages.el b/modules/editors/emacs/doom.d/packages.el index bf80ecf..2e423c9 100644 --- a/modules/editors/emacs/doom.d/packages.el +++ b/modules/editors/emacs/doom.d/packages.el @@ -52,7 +52,7 @@ (package! arm-mode :recipe (:host github :repo "charje/arm-mode")) (package! dumb-jump) (package! imenu-list) -(package! combobulate) +;(package! combobulate) (package! vhdl-ext :recipe (:host github :repo "gmlarumbe/vhdl-ext" :files (:defaults "snippets" "ts-mode/*.el"))) diff --git a/modules/editors/emacs/home.nix b/modules/editors/emacs/home.nix index d8cc7ae..fd00f41 100644 --- a/modules/editors/emacs/home.nix +++ b/modules/editors/emacs/home.nix @@ -11,23 +11,60 @@ # -{ config, user, unstable, pkgs, doom-emacs, location, ... }: +{ config, user, unstable, pkgs, inputs, location, ... }: -let - emacs-with-packages = ((pkgs.emacsPackagesFor pkgs.emacs29).emacsWithPackages (epkgs: [ - epkgs.vterm - epkgs.sqlite - epkgs.treesit-grammars.with-all-grammars - ])); -in { +{ services.emacs = { enable = true; - package = emacs-with-packages; + client = { + enable = true; + }; + startWithUserSession = "graphical"; }; - programs.doom-emacs = { + programs.emacs = { enable = true; - doomPrivateDir = ./doom.d; - emacsPackage = emacs-with-packages; + package = pkgs.emacs29-gtk3; + extraPackages = epkgs: [ + epkgs.vterm + epkgs.sqlite + epkgs.treesit-grammars.with-all-grammars + ]; + }; + + home.activation = { + installDoomEmacs = { + after = [ "writeBoundary" "createXdgUserDirectories" ]; + before = [ ]; + data = '' + EMACS="$HOME/.emacs.d" + + if [ ! -d "$EMACS" ]; then + ${pkgs.git}/bin/git clone https://github.com/hlissner/doom-emacs.git $EMACS + + bash -c "yes || true" | $EMACS/bin/doom install + + rm -rf $HOME/.doom.d + ln -s ${location}/modules/editors/emacs/doom.d $HOME/.doom.d + bash -c "yes || true" | $EMACS/bin/doom sync + else + bash -c "yes || true" | $EMACS/bin/doom sync + fi''; + }; }; + + home.packages = with pkgs; [ + emacs-all-the-icons-fonts + #binutils # for native comp + + ## Doom emacs dependencies + gnutls + fd + ripgrep + + ## Optional dependencies + fd + imagemagick + #zstd + ]; } -- 2.48.1