modules: create home/common module

This commit is contained in:
Nikodem Rabuliński 2024-01-22 20:40:43 +01:00
parent 90b454816c
commit ba8cfc1fd5
8 changed files with 144 additions and 28 deletions

View file

@ -0,0 +1,49 @@
# TODO: Make this module not rely on OS config being present
{
osConfig,
pkgs,
lib,
inputs',
machineName,
...
} @ args: let
# TODO: Conditionally define based on whether we're in a system configuration or not
fishOverlayModule = lib.mkIf (!args ? osConfig) {
# See modules/system/common/default.nix for reasoning.
nixpkgs.overlays = [(_: _: {inherit (inputs'.settei.packages) fish;})];
};
in {
_file = ./default.nix;
imports = [
./desktop
fishOverlayModule
];
programs.fish.enable = true;
programs.direnv.enable = true;
programs.nix-index.enable = true;
programs.ssh.enable = true;
programs.zoxide.enable = true;
programs.ripgrep.enable = true;
programs.git = {
enable = true;
difftastic.enable = true;
lfs.enable = true;
userName = "Nikodem Rabuliński";
userEmail = lib.mkDefault "nikodem@rabulinski.com";
# TODO: settei options for home-manager module
signing = {
key = osConfig.settei.sane-defaults.allSshKeys.${machineName};
signByDefault = true;
};
extraConfig = {
gpg.format = "ssh";
push.followTags = true;
};
};
home.packages = [inputs'.settei.packages.base-packages pkgs.nh];
home.sessionVariables.EDITOR = "hx";
}

View file

@ -0,0 +1,53 @@
{
config,
lib,
pkgs,
inputs,
...
}: {
_file = ./default.nix;
options.common.desktop = {
enable = lib.mkEnableOption "Common configuration for desktop machines";
};
config = lib.mkIf config.common.desktop.enable {
home.packages = with pkgs; [
nerdfonts
];
programs.firefox = {
enable = true;
package = let
firefox-pkgs = pkgs.extend inputs.firefox-darwin.overlay;
in
lib.mkIf pkgs.stdenv.isDarwin firefox-pkgs.firefox-bin;
};
programs.alacritty = {
enable = true;
settings = {
cursor.style.shape = "Beam";
window = {
option_as_alt = lib.mkIf pkgs.stdenv.isDarwin "Both";
decorations =
if pkgs.stdenv.isDarwin
then "Buttonless"
else "None";
};
};
};
programs.zellij = {
enable = true;
settings = {
keybinds = {
shared_except = {
_args = ["locked"];
unbind = "Ctrl q";
};
};
};
};
};
}