Regenerated
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
{ lib, config, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
username = config.defaultUser or "henrov";
|
||||
|
||||
# Paths
|
||||
assetPath = ../../../assets/hyprland/conf/hypr;
|
||||
mainConfig = "${assetPath}/hyprland.conf";
|
||||
|
||||
# Determine Hyprland package with fallbacks
|
||||
hyprlandPkg =
|
||||
pkgs.hyprland or
|
||||
pkgs.hyprland-git or
|
||||
inputs.hyprland.packages.${pkgs.system}.default;
|
||||
|
||||
# Map all files in the asset folder
|
||||
hyprFiles =
|
||||
builtins.listToAttrs (
|
||||
map (f: {
|
||||
name = ".config/hypr/${f}";
|
||||
value = { source = "${assetPath}/${f}"; };
|
||||
}) (builtins.attrNames (builtins.readDir assetPath))
|
||||
);
|
||||
in
|
||||
{
|
||||
# System-wide package
|
||||
environment.systemPackages = [ hyprlandPkg ];
|
||||
|
||||
# Home Manager user settings
|
||||
_module.args.hmUsers = {
|
||||
${username} = {
|
||||
home.packages = [ hyprlandPkg ];
|
||||
|
||||
# Merge main config + all other files
|
||||
home.file = lib.mkMerge [
|
||||
hyprFiles
|
||||
{
|
||||
".config/hypr/hyprland.conf" = { source = mainConfig; };
|
||||
}
|
||||
];
|
||||
|
||||
# Optional module-specific settings
|
||||
settings.general."col.active_border" = "0xff97cbcd 0xff89b4fa";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{ lib, config, pkgs, ... }:
|
||||
|
||||
let
|
||||
username = config.defaultUser or "henrov";
|
||||
|
||||
moduleName = "stylix";
|
||||
assetPath = ../../../assets/system/conf/${moduleName};
|
||||
|
||||
# Read all files in asset directory
|
||||
programFiles = builtins.readDir assetPath;
|
||||
|
||||
files = lib.genAttrs (builtins.attrNames programFiles) (name: {
|
||||
source = "${assetPath}/${name}";
|
||||
});
|
||||
|
||||
# Read optional stylix.conf
|
||||
stylixConfFile = "${assetPath}/stylix.conf";
|
||||
stylixConf =
|
||||
if builtins.pathExists stylixConfFile
|
||||
then builtins.readFile stylixConfFile
|
||||
else "";
|
||||
|
||||
# Cursor defaults
|
||||
cursorName = "phinger-cursors-light";
|
||||
cursorSize = 24;
|
||||
in
|
||||
{
|
||||
# System packages
|
||||
environment.systemPackages = [
|
||||
pkgs.feh
|
||||
pkgs.st
|
||||
];
|
||||
|
||||
# Home Manager user settings
|
||||
_module.args.hmUsers = {
|
||||
${username} = {
|
||||
|
||||
# Copy all stylix config files into ~/.config/stylix/
|
||||
xdg.configFile =
|
||||
lib.mapAttrs' (name: value: {
|
||||
name = "${moduleName}/${name}";
|
||||
value = { inherit (value) source; };
|
||||
}) files;
|
||||
|
||||
# Session variables
|
||||
home.sessionVariables = {
|
||||
STYLIX_CONF = "$HOME/.config/stylix/stylix.conf";
|
||||
|
||||
XCURSOR_THEME = cursorName;
|
||||
XCURSOR_SIZE = toString cursorSize;
|
||||
HYPRCURSOR_THEME = cursorName;
|
||||
HYPRCURSOR_SIZE = toString cursorSize;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{ lib, config, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
# Default user fallback
|
||||
username = config.defaultUser or "henrov";
|
||||
|
||||
# Safe package reference with flake input fallback
|
||||
xdgPortalHyprlandPkg = pkgs.xdg-desktop-portal-hyprland or
|
||||
inputs.xdgPortalHyprland.packages.${pkgs.system}.default;
|
||||
in
|
||||
{
|
||||
# System-wide installation of XDG portal package
|
||||
environment.systemPackages = [
|
||||
xdgPortalHyprlandPkg
|
||||
];
|
||||
|
||||
# Home Manager user configuration
|
||||
_module.args.hmUsers = {
|
||||
${username} = {
|
||||
home.packages = [
|
||||
xdgPortalHyprlandPkg
|
||||
];
|
||||
|
||||
# Enable XDG portal for Hyprland
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [ xdgPortalHyprlandPkg ];
|
||||
config.hyprland = {
|
||||
"org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# (NVF = Neovim/terminal flavor)
|
||||
stylix.targets.nvf.enable = true;
|
||||
# feh wallpaper integration
|
||||
stylix.targets.feh.enable = true;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{ lib, pkgs, config, ... }:
|
||||
|
||||
let
|
||||
username = config.defaultUser or "henrov";
|
||||
moduleName = "kitty";
|
||||
|
||||
# Paths and files
|
||||
assetPath = ../../../assets/system/conf/${moduleName};
|
||||
programFiles = builtins.readDir assetPath;
|
||||
files = lib.genAttrs (builtins.attrNames programFiles) (name: {
|
||||
src = "${assetPath}/${name}";
|
||||
});
|
||||
in
|
||||
{
|
||||
# Install kitty system-wide
|
||||
environment.systemPackages = [ pkgs.kitty ];
|
||||
|
||||
# Home Manager user-specific configuration
|
||||
_module.args.hmUsers = {
|
||||
${username} = {
|
||||
programs.kitty.enable = true;
|
||||
|
||||
# Extra user config snippet
|
||||
programs.kitty.extraConfig = ''
|
||||
# Include the Catppuccin-Mocha theme
|
||||
include themes/Catppuccin-Mocha.conf
|
||||
'';
|
||||
|
||||
# Copy all asset files into ~/.config/kitty/
|
||||
home.file = lib.mkMerge (
|
||||
map (name: { ".config/${moduleName}/${name}" = { source = files.${name}.src; }; })
|
||||
(builtins.attrNames files)
|
||||
);
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{ lib, config, pkgs, ... }:
|
||||
|
||||
let
|
||||
username = config.defaultUser or "henrov";
|
||||
|
||||
# Paths
|
||||
starshipAssets = ../../../assets/system/conf/starship.toml;
|
||||
in
|
||||
{
|
||||
# Install Starship system-wide
|
||||
environment.systemPackages = [
|
||||
pkgs.starship
|
||||
];
|
||||
|
||||
# Home Manager user settings
|
||||
_module.args.hmUsers = {
|
||||
${username} = {
|
||||
home.packages = [
|
||||
pkgs.starship
|
||||
];
|
||||
|
||||
# Copy the config into ~/.config
|
||||
home.file.".config/starship.toml".source = starshipAssets;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{ lib, pkgs, config, ... }:
|
||||
|
||||
let
|
||||
username = config.users.users.defaultUser or "henrov";
|
||||
homeDir = "/home/${username}";
|
||||
programName = "zsh";
|
||||
programAssets = ../../../assets/system/conf/${programName};
|
||||
zshInitFile = "${programAssets}/zsh.conf";
|
||||
|
||||
# Helper to fetch an external plugin from GitHub
|
||||
fetchPlugin = { owner, repo, rev, sha256 }: pkgs.fetchFromGitHub {
|
||||
inherit owner repo rev sha256;
|
||||
};
|
||||
in
|
||||
{
|
||||
# Ensure zsh is installed system-wide
|
||||
environment.systemPackages = [ pkgs.zsh ];
|
||||
|
||||
# Home Manager configuration for the default user
|
||||
home.username = username;
|
||||
home.homeDirectory = homeDir;
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
|
||||
ohMyZsh = {
|
||||
enable = true;
|
||||
theme = "catppuccin-mocha";
|
||||
|
||||
# Standard built-in plugins
|
||||
plugins = [
|
||||
"git"
|
||||
"docker"
|
||||
"direnv"
|
||||
"zsh-autosuggestions"
|
||||
"zsh-completions"
|
||||
"zsh-history-substring-search"
|
||||
];
|
||||
|
||||
# Inject custom Zsh configuration
|
||||
shellInit = builtins.readFile zshInitFile;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{ config, pkgs, lib, flakeRoot, ... }:
|
||||
|
||||
let
|
||||
# Default to the configured default user
|
||||
username = config.users.users.defaultUser or "henrov";
|
||||
homeDir = "/home/${username}";
|
||||
assetPath = "${flakeRoot}/assets/copy_2_home";
|
||||
in
|
||||
{
|
||||
# Ensure rsync is available system-wide
|
||||
environment.systemPackages = [ pkgs.rsync ];
|
||||
|
||||
# System service to copy assets to the user home at boot
|
||||
systemd.services.copyAssets = {
|
||||
description = "Copy assets to ${username}'s home directory";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig.Type = "oneshot";
|
||||
|
||||
serviceConfig.ExecStart = ''
|
||||
echo "Copying assets from ${assetPath} to ${homeDir} ..."
|
||||
|
||||
if [ ! -d "${assetPath}" ]; then
|
||||
echo "ERROR: ${assetPath} does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "${homeDir}"
|
||||
chown ${username}:${username} "${homeDir}"
|
||||
|
||||
${pkgs.rsync}/bin/rsync -a --no-owner --no-group "${assetPath}/" "${homeDir}/"
|
||||
|
||||
echo "Done copying assets."
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{ lib, config, pkgs, ... }:
|
||||
|
||||
let
|
||||
username = "henrov";
|
||||
in
|
||||
{
|
||||
# NixOS user
|
||||
users.users.${username} = {
|
||||
isNormalUser = true;
|
||||
home = "/home/${username}";
|
||||
hashedPassword = "$6$S7iShgBxB.77CwmP$i0njK.2r3OL5UEvgZbmwZ0rnpZ4QyJcv8p9uCmJ4AiVPSMXkQkIwMLzyAOnJ0q8.tPLIp/7EquEIZeK8qbmgw/";
|
||||
extraGroups = [ "wheel" "networkmanager" ];
|
||||
};
|
||||
|
||||
# Home Manager user definition
|
||||
_module.args.hmUsers = {
|
||||
${username} = {
|
||||
home.username = username;
|
||||
home.homeDirectory = "/home/${username}";
|
||||
home.stateVersion = "26.05";
|
||||
|
||||
# Example: user packages
|
||||
home.packages = [ pkgs.git pkgs.vim ];
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user