From cd15eada5a89081436f268a84e315d173ae60c9e Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Wed, 8 Dec 2021 12:18:37 +0800 Subject: [PATCH] Update modules and configurations --- hosts/ni/default.nix | 8 +-- modules/home-manager/desktop.nix | 4 ++ modules/home-manager/research.nix | 17 +++++++ modules/nixos/dev.nix | 13 ++++- modules/nixos/editors.nix | 34 ------------- .../nixos/themes/a-happy-gnome/default.nix | 6 +++ users/home-manager/foo-dogsquared/default.nix | 50 +++++++++++++++++++ 7 files changed, 91 insertions(+), 41 deletions(-) create mode 100644 modules/home-manager/research.nix diff --git a/hosts/ni/default.nix b/hosts/ni/default.nix index 47c7255b..b176afae 100644 --- a/hosts/ni/default.nix +++ b/hosts/ni/default.nix @@ -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. diff --git a/modules/home-manager/desktop.nix b/modules/home-manager/desktop.nix index d218702f..6b2ae023 100644 --- a/modules/home-manager/desktop.nix +++ b/modules/home-manager/desktop.nix @@ -37,6 +37,10 @@ in ]; services.easyeffects.enable = true; + services.fluidsynth = { + enable = true; + soundServices = "pipewire-pulse"; + }; }) ]); } diff --git a/modules/home-manager/research.nix b/modules/home-manager/research.nix new file mode 100644 index 00000000..08793045 --- /dev/null +++ b/modules/home-manager/research.nix @@ -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. + ]; + }; +} diff --git a/modules/nixos/dev.nix b/modules/nixos/dev.nix index 34855d0b..18652f8f 100644 --- a/modules/nixos/dev.nix +++ b/modules/nixos/dev.nix @@ -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 ]; }) diff --git a/modules/nixos/editors.nix b/modules/nixos/editors.nix index 2ce0743e..bae222ab 100644 --- a/modules/nixos/editors.nix +++ b/modules/nixos/editors.nix @@ -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; diff --git a/modules/nixos/themes/a-happy-gnome/default.nix b/modules/nixos/themes/a-happy-gnome/default.nix index 09ffbef4..e28d3f5f 100644 --- a/modules/nixos/themes/a-happy-gnome/default.nix +++ b/modules/nixos/themes/a-happy-gnome/default.nix @@ -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 diff --git a/users/home-manager/foo-dogsquared/default.nix b/users/home-manager/foo-dogsquared/default.nix index 3414b1c3..feb8ddc7 100644 --- a/users/home-manager/foo-dogsquared/default.nix +++ b/users/home-manager/foo-dogsquared/default.nix @@ -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;