Update modules and configurations

This commit is contained in:
Gabriel Arazas 2021-12-08 12:18:37 +08:00
parent 993e45bea6
commit cd15eada5a
7 changed files with 91 additions and 41 deletions

View File

@ -24,11 +24,7 @@
shell.enable = true;
virtualization.enable = true;
};
editors = {
emacs.enable = true;
emacs.doom.enable = true;
neovim.enable = true;
};
editors.neovim.enable = true;
themes.a-happy-gnome.enable = true;
users.users = [ "foo-dogsquared" ];
};
@ -53,7 +49,7 @@
networking.interfaces.enp1s0.useDHCP = true;
networking.interfaces.wlp2s0.useDHCP = true;
environment.systemPackages = with pkgs; [ git wget brave lf fd ripgrep ];
environment.systemPackages = with pkgs; [ git wget lf ];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.

View File

@ -37,6 +37,10 @@ in
];
services.easyeffects.enable = true;
services.fluidsynth = {
enable = true;
soundServices = "pipewire-pulse";
};
})
]);
}

View File

@ -0,0 +1,17 @@
{ config, options, lib, pkgs, ... }:
let
cfg = config.modules.research;
in {
options.modules.tools.enable = lib.mkEnableOptions "Enable my usual toolbelt for research.";
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
archivebox # The ultimate archiving solution!
curl # The general purpose downloader.
newsboat # Reading news easily on the command line?
qbittorrent # The pirate's toolkit for downloading Linux ISOs.
zotero # It's actually good at archiving despite not being a researcher myself.
];
};
}

View File

@ -24,7 +24,15 @@ in {
};
# Configure all of the development-related configuration in the system.
programs.git.enable = true;
# Install Git, our favorite version control system.
# In this case, we want ALL OF THE EXTENSIONS!
programs.git = {
enable = true;
lfs.enable = true;
package = pkgs.gitFull;
};
programs.gnupg = { agent.enable = true; };
# Convenience!
@ -40,6 +48,9 @@ in {
gcc # The usual toolchain.
gnumake # Make your life easier with GNU Make.
moreutils # Less is more but more utilities, the merrier.
# I SAID ALL OF THE GIT EXTENSIONS!
git-crypt
];
})

View File

@ -5,44 +5,10 @@ let cfg = config.modules.editors;
in {
options.modules.editors = {
neovim.enable = lib.mkEnableOption "Enable Neovim and its components";
emacs = {
enable = lib.mkEnableOption "Enable Emacs and all of its components";
doom.enable =
lib.mkEnableOption "Enable Doom Emacs-related dependencies.";
};
vscode.enable = lib.mkEnableOption "Enable Visual Studio Code";
};
config = lib.mkMerge [
(lib.mkIf cfg.emacs.enable {
environment.systemPackages = with pkgs;
[ emacs ] ++ (if cfg.emacs.doom.enable then [
# The required depdencies.
git
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
] else
[ ]);
})
(lib.mkIf cfg.neovim.enable {
programs.neovim = {
enable = true;

View File

@ -17,6 +17,12 @@ in
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
# Since we're using KDE Connect, we'll have to use gsconnect.
programs.kdeconnect = {
enable = true;
package = pkgs.gnomeExtensions.gsconnect;
};
# Don't need most of the GNOME's offering so...
environment.gnome.excludePackages = with pkgs.gnome; [
gedit

View File

@ -1,19 +1,69 @@
{ config, options, lib, pkgs, ... }:
{
home.packages = with pkgs; [
brave
mpv
]
# Doom Emacs dependencies.
++ (with pkgs; [
git
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;
# My specific usual stuff.
programs.git = {
enable = true;
package = pkgs.gitFull;
lfs.enable = true;
userName = "foo-dogsquared";
userEmail = "foo.dogsquared@gmail.com";
};
# My music player setup, completely configured with Nix!
services.mpd = {
enable = true;
musicDirectory = "$HOME/library/music";
};
services.mpdris2.enable = true;
programs.ncmpcpp = {
enable = true;
package = pkgs.ncmpcpp.override { visualizerSupport = true; };
# TODO: Add more vim-related keybindings.
bindings = [
{ key = "j"; command = "scroll_down"; }
{ key = "k"; command = "scroll_up"; }
{ key = "J"; command = [ "select_item" "scroll_down" ]; }
{ key = "K"; command = [ "select_item" "scroll_up" ]; }
];
};
# My custom modules.
modules = {
i18n.enable = true;
archiving.enable = true;
dev = {
enable = true;
shell.enable = true;