Merge pull request 'main' (#1) from jan-leila/nix-config:main into main

Reviewed-on: Lithospherical/nix-config#1
This commit is contained in:
Lithospherical 2025-06-01 18:15:14 +00:00
commit 51b7a18449
8 changed files with 536 additions and 519 deletions

View file

@ -1,10 +1,4 @@
{ {osConfig, ...}: let
pkgs,
lib,
config,
osConfig,
...
}: let
userConfig = osConfig.host.users.eve; userConfig = osConfig.host.users.eve;
in { in {
nixpkgs.config = { nixpkgs.config = {
@ -57,42 +51,5 @@ in {
sessionVariables = { sessionVariables = {
# EDITOR = "emacs"; # EDITOR = "emacs";
}; };
packages = lib.lists.optionals userConfig.isDesktopUser (
with pkgs; [
firefox
bitwarden
discord
makemkv
signal-desktop-bin
ungoogled-chromium
]
);
};
programs = {
# Let Home Manager install and manage itself.
home-manager.enable = true;
git = {
enable = true;
userName = "Eve";
userEmail = "evesnrobins@gmail.com";
extraConfig.init.defaultBranch = "main";
};
vscode = {
enable = true;
package = pkgs.vscodium;
};
openssh = {
hostKeys = [
{
type = "ed25519";
path = "${config.home.username}_${osConfig.networking.hostName}_ed25519";
}
];
};
}; };
} }

View file

@ -0,0 +1,52 @@
{
lib,
pkgs,
config,
osConfig,
...
}: let
userConfig = osConfig.host.users.eve;
in {
config = {
# Packages that can be installed without any extra configuration
# See https://search.nixos.org/packages for all options
home.packages = lib.lists.optionals userConfig.isDesktopUser (
with pkgs; [
firefox
bitwarden
discord
makemkv
signal-desktop-bin
ungoogled-chromium
]
);
# Packages that need to be installed with some extra configuration
# See https://home-manager-options.extranix.com/ for all options
programs = {
# Let Home Manager install and manage itself.
home-manager.enable = true;
git = {
enable = true;
userName = "Eve";
userEmail = "evesnrobins@gmail.com";
extraConfig.init.defaultBranch = "main";
};
vscode = {
enable = true;
package = pkgs.vscodium;
};
openssh = {
hostKeys = [
{
type = "ed25519";
path = "${config.home.username}_${osConfig.networking.hostName}_ed25519";
}
];
};
};
};
}

View file

@ -1,8 +1,4 @@
{ {osConfig, ...}: {
osConfig,
config,
...
}: {
imports = [ imports = [
./i18n.nix ./i18n.nix
./packages.nix ./packages.nix
@ -108,44 +104,5 @@
}; };
}; };
}; };
programs = {
# Let Home Manager install and manage itself.
home-manager.enable = true;
# set up git defaults
git = {
enable = true;
userName = "Leyla Becker";
userEmail = "git@jan-leila.com";
extraConfig.init.defaultBranch = "main";
};
# add direnv to auto load flakes for development
direnv = {
enable = true;
enableBashIntegration = true;
nix-direnv.enable = true;
config = {
global.hide_env_diff = true;
whitelist.exact = ["/home/leyla/documents/code/nix-config"];
};
};
bash.enable = true;
openssh = {
authorizedKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHeItmt8TRW43uNcOC+eIurYC7Eunc0V3LGocQqLaYj leyla@horizon"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIILimFIW2exEH/Xo7LtXkqgE04qusvnPNpPWSCeNrFkP leyla@defiant"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKBiZkg1c2aaNHiieBX4cEziqvJVj9pcDfzUrKU/mO0I leyla@twilight"
];
hostKeys = [
{
type = "ed25519";
path = "${config.home.username}_${osConfig.networking.hostName}_ed25519";
}
];
};
};
}; };
} }

View file

@ -2,8 +2,12 @@
lib, lib,
pkgs, pkgs,
inputs, inputs,
osConfig,
... ...
}: { }: let
is-desktop-user = osConfig.host.users.leyla.isDesktopUser;
in {
config = lib.mkIf is-desktop-user {
programs.firefox = { programs.firefox = {
enable = true; enable = true;
profiles.leyla = { profiles.leyla = {
@ -339,4 +343,5 @@
}; };
}; };
}; };
};
} }

View file

@ -1,5 +1,6 @@
{ {
lib, lib,
config,
osConfig, osConfig,
pkgs, pkgs,
... ...
@ -12,22 +13,22 @@ in {
./firefox.nix ./firefox.nix
]; ];
nixpkgs.config = { config = lib.mkMerge [
allowUnfree = true; (lib.mkIf userConfig.isTerminalUser {
}; home.packages = with pkgs; [
home = {
packages =
lib.lists.optionals userConfig.isTerminalUser (
with pkgs; [
# command line tools # command line tools
sox sox
yt-dlp yt-dlp
ffmpeg ffmpeg
imagemagick imagemagick
] ];
) })
++ ( (lib.mkIf userConfig.isDesktopUser {
nixpkgs.config = {
allowUnfree = true;
};
home.packages = (
lib.lists.optionals userConfig.isDesktopUser ( lib.lists.optionals userConfig.isDesktopUser (
(with pkgs; [ (with pkgs; [
# helvetica font # helvetica font
@ -91,5 +92,44 @@ in {
) )
) )
); );
programs = lib.mkIf userConfig.isDesktopUser {
# Let Home Manager install and manage itself.
home-manager.enable = true;
# set up git defaults
git = {
enable = true;
userName = "Leyla Becker";
userEmail = "git@jan-leila.com";
extraConfig.init.defaultBranch = "main";
}; };
# add direnv to auto load flakes for development
direnv = {
enable = true;
enableBashIntegration = true;
nix-direnv.enable = true;
config = {
global.hide_env_diff = true;
whitelist.exact = ["/home/leyla/documents/code/nix-config"];
};
};
bash.enable = true;
openssh = {
authorizedKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHeItmt8TRW43uNcOC+eIurYC7Eunc0V3LGocQqLaYj leyla@horizon"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIILimFIW2exEH/Xo7LtXkqgE04qusvnPNpPWSCeNrFkP leyla@defiant"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKBiZkg1c2aaNHiieBX4cEziqvJVj9pcDfzUrKU/mO0I leyla@twilight"
];
hostKeys = [
{
type = "ed25519";
path = "${config.home.username}_${osConfig.networking.hostName}_ed25519";
}
];
};
};
})
];
} }

View file

@ -8,7 +8,9 @@
}: let }: let
nix-development-enabled = osConfig.host.nix-development.enable; nix-development-enabled = osConfig.host.nix-development.enable;
ai-tooling-enabled = config.user.continue.enable && osConfig.host.ai.enable; ai-tooling-enabled = config.user.continue.enable && osConfig.host.ai.enable;
is-desktop-user = osConfig.host.users.leyla.isDesktopUser;
in { in {
config = lib.mkIf is-desktop-user {
nixpkgs = { nixpkgs = {
overlays = [ overlays = [
inputs.nix-vscode-extensions.overlays.default inputs.nix-vscode-extensions.overlays.default
@ -115,4 +117,5 @@ in {
}; };
}; };
}; };
};
} }

View file

@ -83,13 +83,14 @@
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
# List packages installed in system profile. # Packages that can be installed without any extra configuration
# You can use https://search.nixos.org/ to find more packages (and options). # See https://search.nixos.org/packages for all options
# environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. wget
# wget ];
# ];
# Packages that need to be installed with some extra configuration
# See https://search.nixos.org/options for all options
programs.steam = { programs.steam = {
enable = true; enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
# Enable OpenGL # Enable OpenGL
hardware.graphics = { hardware.graphics = {
enable = true; enable = true;
@ -10,7 +13,6 @@
services.xserver.videoDrivers = ["nvidia"]; services.xserver.videoDrivers = ["nvidia"];
hardware.nvidia = { hardware.nvidia = {
# Modesetting is required. # Modesetting is required.
modesetting.enable = true; modesetting.enable = true;
@ -39,4 +41,4 @@
# Optionally, you may need to select the appropriate driver version for your specific GPU. # Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.stable; package = config.boot.kernelPackages.nvidiaPackages.stable;
}; };
} }