modules: create home/common module
This commit is contained in:
parent
90b454816c
commit
ba8cfc1fd5
8 changed files with 144 additions and 28 deletions
49
modules/home/common/default.nix
Normal file
49
modules/home/common/default.nix
Normal 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";
|
||||
}
|
53
modules/home/common/desktop/default.nix
Normal file
53
modules/home/common/desktop/default.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue