Add modules.editors module for home-manager

This commit is contained in:
foo-dogsquared 2021-12-25 21:56:50 +08:00
parent 875abade93
commit 9f7dc70ab8
3 changed files with 59 additions and 25 deletions

View File

@ -11,7 +11,6 @@ in {
config = lib.mkIf cfg.enable (lib.mkMerge [ config = lib.mkIf cfg.enable (lib.mkMerge [
({ ({
home.packages = with pkgs; [ home.packages = with pkgs; [
neovim # My text editor of choice.
lazygit # Git interface for the lazy. lazygit # Git interface for the lazy.
fzf # A fuzzy finder that enables fuzzy finding not furry finding, a common misconception. fzf # A fuzzy finder that enables fuzzy finding not furry finding, a common misconception.
gopass # An improved version of the password manager for hipsters. gopass # An improved version of the password manager for hipsters.

View File

@ -0,0 +1,57 @@
# My editor configurations. Take note I try to avert as much settings to create
# the configuration files with Nix. I prefer to handle the text editor
# configurations by hand as they are very chaotic and it is a hassle going
# through Nix whenever I need to change it.
#
# As much as I want 100% reproducibility with Nix, 5% of the remaining stuff
# for me is not worth to maintain.
{ config, options, lib, pkgs, ... }:
let cfg = config.modules.editors;
in {
options.modules.editors = {
neovim.enable = lib.mkEnableOption "foo-dogsquared's Neovim setup with Nix";
emacs.enable = lib.mkEnableOption "foo-dogsquared's (Doom) Emacs setup";
};
config = lib.mkMerge [
(lib.mkIf cfg.neovim.enable {
programs.neovim = {
enable = true;
package = pkgs.neovim-nightly;
withPython3 = true;
withRuby = true;
withNodeJs = true;
};
})
(lib.mkIf cfg.emacs.enable {
# Doom Emacs dependencies.
home.packages = with pkgs; [
emacs
# Required dependencies.
ripgrep
gnutls
emacs-all-the-icons-fonts
# Optional dependencies.
fd
imagemagick
zstd
# Module dependencies.
## :checkers spell
aspell
aspellDicts.en
aspellDicts.en-computers
## :tools lookup
wordnet
## :lang org +roam2
sqlite
];
})
];
}

View File

@ -6,30 +6,7 @@
emacs emacs
github-cli github-cli
ncmpcpp ncmpcpp
] ];
# Doom Emacs dependencies.
++ (with pkgs; [
ripgrep
gnutls
emacs-all-the-icons-fonts
# Optional dependencies.
fd
imagemagick
zstd
# Module dependencies
# :checkers spell
aspell
aspellDicts.en
aspellDicts.en-computers
# :tools lookup
wordnet
# :lang org +roam2
sqlite
]);
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
@ -56,6 +33,7 @@
enable = true; enable = true;
shell.enable = true; shell.enable = true;
}; };
editors.emacs.enable = true;
desktop = { desktop = {
enable = true; enable = true;
graphics.enable = true; graphics.enable = true;