wip
This commit is contained in:
parent
546c5170d7
commit
433967847a
29 changed files with 1251 additions and 335 deletions
|
|
@ -1,38 +0,0 @@
|
|||
pkgs: with pkgs; [
|
||||
vim
|
||||
wget
|
||||
git
|
||||
tmux
|
||||
eza
|
||||
bat
|
||||
jq
|
||||
curl
|
||||
atuin
|
||||
leaf
|
||||
dotter
|
||||
kubectl
|
||||
k9s
|
||||
trashy
|
||||
krew
|
||||
pre-commit
|
||||
devenv
|
||||
git-cliff
|
||||
difftastic
|
||||
unzip
|
||||
hadolint
|
||||
docker-compose
|
||||
delta
|
||||
bottom
|
||||
bat
|
||||
dust
|
||||
popeye
|
||||
kubecolor
|
||||
kubeconform
|
||||
kube-score
|
||||
uv
|
||||
neovim
|
||||
ncdu
|
||||
direnv
|
||||
asciinema
|
||||
yq
|
||||
]
|
||||
8
nix/flake.lock
generated
8
nix/flake.lock
generated
|
|
@ -139,16 +139,16 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747688870,
|
||||
"narHash": "sha256-ypL9WAZfmJr5V70jEVzqGjjQzF0uCkz+AFQF7n9NmNc=",
|
||||
"lastModified": 1763992789,
|
||||
"narHash": "sha256-WHkdBlw6oyxXIra/vQPYLtqY+3G8dUVZM8bEXk0t8x4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "d5f1f641b289553927b3801580598d200a501863",
|
||||
"rev": "44831a7eaba4360fb81f2acc5ea6de5fde90aaa3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"ref": "release-25.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.11";
|
||||
url = "github:nix-community/home-manager/release-25.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
|
@ -32,38 +32,47 @@
|
|||
lib = nixpkgs.lib;
|
||||
pkgs-unstable = unstable.legacyPackages.${system};
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
|
||||
mkNixos = host: modules: lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit pkgs-unstable; };
|
||||
modules = [
|
||||
./hosts/${host}/configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.catalin = import ./home;
|
||||
home-manager.extraSpecialArgs = { inherit pkgs-unstable; };
|
||||
}
|
||||
] ++ modules;
|
||||
};
|
||||
|
||||
# Helper for Home Manager configurations (non-NixOS)
|
||||
mkHome = host: user: modules: home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [
|
||||
./home
|
||||
{
|
||||
home.username = user;
|
||||
home.homeDirectory = "/home/${user}";
|
||||
}
|
||||
] ++ modules;
|
||||
extraSpecialArgs = { inherit pkgs-unstable; };
|
||||
};
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
limgrave = lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit pkgs-unstable; };
|
||||
modules = [
|
||||
./hosts/limgrave/configuration.nix
|
||||
nix-snapd.nixosModules.default
|
||||
autofirma-nix.nixosModules.default
|
||||
home-manager.nixosModules.home-manager
|
||||
];
|
||||
};
|
||||
|
||||
carpates = lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit pkgs-unstable; };
|
||||
modules = [
|
||||
./hosts/carpates/configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
];
|
||||
};
|
||||
limgrave = mkNixos "limgrave" [
|
||||
nix-snapd.nixosModules.default
|
||||
autofirma-nix.nixosModules.default
|
||||
];
|
||||
};
|
||||
|
||||
# Home Manager configurations for non-NixOS hosts (e.g., Ubuntu)
|
||||
homeConfigurations = {
|
||||
# For non-NixOS usage on a machine named "carpates".
|
||||
# Run: home-manager switch --flake ./nix#carpates
|
||||
carpates = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./hosts/carpates/home.nix ];
|
||||
};
|
||||
# For non-NixOS usage. Run: home-manager switch --flake ./nix#catalin@ubuntu
|
||||
"catalin@limgrave" = mkHome "limgrave" "catalin" [ ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
59
nix/home/default.nix
Normal file
59
nix/home/default.nix
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
{ pkgs, ... }: {
|
||||
imports = [
|
||||
./packages.nix
|
||||
];
|
||||
|
||||
home.stateVersion = "24.11";
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
initExtra = ''
|
||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||
then
|
||||
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
||||
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
programs.gnome-shell = {
|
||||
enable = true;
|
||||
extensions = [{ package = pkgs.gnomeExtensions.gsconnect; }];
|
||||
};
|
||||
|
||||
dconf.settings = {
|
||||
"org/gnome/shell" = {
|
||||
disable-user-extensions = false;
|
||||
enabled-extensions = with pkgs.gnomeExtensions; [
|
||||
gsconnect.extensionUuid
|
||||
user-themes.extensionUuid
|
||||
caffeine.extensionUuid
|
||||
colosseum.extensionUuid
|
||||
dash-to-dock.extensionUuid
|
||||
clipboard-indicator.extensionUuid
|
||||
emoji-copy.extensionUuid
|
||||
bluetooth-battery-meter.extensionUuid
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
gnomeExtensions.user-themes
|
||||
gnomeExtensions.caffeine
|
||||
gnomeExtensions.colosseum
|
||||
gnomeExtensions.dash-to-dock
|
||||
gnomeExtensions.clipboard-indicator
|
||||
gnomeExtensions.emoji-copy
|
||||
gnomeExtensions.gsconnect
|
||||
gnomeExtensions.bluetooth-battery-meter
|
||||
gnome-tweaks
|
||||
catppuccin-gtk
|
||||
catppuccin-cursors
|
||||
catppuccin-papirus-folders
|
||||
catppuccin-grub
|
||||
];
|
||||
}
|
||||
39
nix/home/packages.nix
Normal file
39
nix/home/packages.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
vim
|
||||
wget
|
||||
git
|
||||
tmux
|
||||
eza
|
||||
bat
|
||||
jq
|
||||
curl
|
||||
atuin
|
||||
leaf
|
||||
dotter
|
||||
kubectl
|
||||
k9s
|
||||
trashy
|
||||
krew
|
||||
pre-commit
|
||||
devenv
|
||||
git-cliff
|
||||
difftastic
|
||||
unzip
|
||||
hadolint
|
||||
docker-compose
|
||||
delta
|
||||
bottom
|
||||
dust
|
||||
popeye
|
||||
kubecolor
|
||||
kubeconform
|
||||
kube-score
|
||||
uv
|
||||
neovim
|
||||
ncdu
|
||||
direnv
|
||||
asciinema
|
||||
yq
|
||||
];
|
||||
}
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
{ config, pkgs, pkgs-unstable, ... }:
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# Basic system metadata
|
||||
networking.hostName = "carpates";
|
||||
time.timeZone = "Europe/Madrid";
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
# Nix settings
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
nixpkgs.config = {
|
||||
allowUnfree = true;
|
||||
allowBroken = false;
|
||||
};
|
||||
|
||||
# Users
|
||||
users.users.catalin = {
|
||||
isNormalUser = true;
|
||||
description = "catalin";
|
||||
shell = pkgs.fish;
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
};
|
||||
|
||||
# Minimal services
|
||||
networking.networkmanager.enable = true;
|
||||
services.openssh.enable = true;
|
||||
|
||||
# Base CLI set only (shared across hosts)
|
||||
environment.systemPackages = import ../../base/packages.nix pkgs;
|
||||
|
||||
programs.fish.enable = true;
|
||||
|
||||
system.stateVersion = "24.11";
|
||||
}
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
# Home Manager configuration for non-NixOS usage on host "carpates".
|
||||
# Apply with:
|
||||
# home-manager switch --flake ./nix#carpates
|
||||
|
||||
home.username = "catalin";
|
||||
home.homeDirectory = "/home/catalin";
|
||||
|
||||
# Use the same base CLI set as all hosts
|
||||
home.packages = import ../../base/packages.nix pkgs;
|
||||
|
||||
programs.fish.enable = true;
|
||||
|
||||
# Example: some common quality-of-life programs
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "catalin";
|
||||
userEmail = ""; # set if desired
|
||||
};
|
||||
|
||||
# Make sure HM itself can manage its state
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
# Set the HM release; doesn't have to match NixOS release
|
||||
home.stateVersion = "24.11";
|
||||
}
|
||||
|
|
@ -40,47 +40,6 @@
|
|||
allowedUDPPortRanges = allowedTCPPortRanges;
|
||||
};
|
||||
|
||||
home-manager.users.catalin = {
|
||||
programs.gnome-shell = {
|
||||
enable = true;
|
||||
extensions = [{ package = pkgs.gnomeExtensions.gsconnect; }];
|
||||
};
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings."org/gnome/shell" = {
|
||||
disable-user-extensions = false;
|
||||
enabled-extensions = with pkgs.gnomeExtensions; [
|
||||
gsconnect.extensionUuid
|
||||
user-themes.extensionUuid
|
||||
caffeine.extensionUuid
|
||||
colosseum.extensionUuid
|
||||
dash-to-dock.extensionUuid
|
||||
clipboard-indicator.extensionUuid
|
||||
emoji-copy.extensionUuid
|
||||
bluetooth-battery-meter.extensionUuid
|
||||
];
|
||||
};
|
||||
};
|
||||
home = {
|
||||
stateVersion = "24.11";
|
||||
enableNixpkgsReleaseCheck = false;
|
||||
packages = with pkgs; [
|
||||
gnomeExtensions.user-themes
|
||||
gnomeExtensions.caffeine
|
||||
gnomeExtensions.colosseum
|
||||
gnomeExtensions.dash-to-dock
|
||||
gnomeExtensions.clipboard-indicator
|
||||
gnomeExtensions.emoji-copy
|
||||
gnomeExtensions.gsconnect
|
||||
gnomeExtensions.bluetooth-battery-meter
|
||||
gnome-tweaks
|
||||
catppuccin-gtk
|
||||
catppuccin-cursors
|
||||
catppuccin-papirus-folders
|
||||
catppuccin-grub
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
|
|
@ -122,41 +81,15 @@
|
|||
enable = true;
|
||||
firefoxIntegration.enable = true;
|
||||
};
|
||||
programs.dnieremote = {
|
||||
enable = true;
|
||||
jumpIntro = "no";
|
||||
wifiPort = 9501;
|
||||
usbPort = 9501;
|
||||
openFirewall = false;
|
||||
};
|
||||
programs.configuradorfnmt = {
|
||||
enable = true;
|
||||
firefoxIntegration.enable = true;
|
||||
};
|
||||
# Configure Firefox PKCS#11 modules for DNIe and OpenSC
|
||||
programs.firefox.policies = {
|
||||
SecurityDevices = {
|
||||
"OpenSC PKCS#11" = "${pkgs.opensc}/lib/opensc-pkcs11.so";
|
||||
"DNIeRemote" = "${config.programs.dnieremote.finalPackage}/lib/libdnieremotepkcs11.so";
|
||||
};
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
services.flatpak.enable = true;
|
||||
programs.nix-ld.enable = true;
|
||||
|
||||
# Merge base packages with host-specific packages
|
||||
environment.systemPackages = (import ../../base/packages.nix pkgs) ++ (import ./packages.nix pkgs);
|
||||
environment.systemPackages = import ./packages.nix pkgs;
|
||||
|
||||
programs = {
|
||||
bash = {
|
||||
interactiveShellInit = ''
|
||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||
then
|
||||
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
||||
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
||||
fi
|
||||
'';
|
||||
};
|
||||
fish.enable = true;
|
||||
steam = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -77,6 +77,6 @@
|
|||
# networking.interfaces.docker0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
nixpkgs.hostPlatform = "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ pkgs: with pkgs; [
|
|||
kitty
|
||||
steam
|
||||
steam-run
|
||||
vesktop
|
||||
python311
|
||||
protonup-qt
|
||||
jellyfin-media-player
|
||||
|
|
@ -14,7 +13,7 @@ pkgs: with pkgs; [
|
|||
fishPlugins.done
|
||||
fishPlugins.colored-man-pages
|
||||
lutris
|
||||
telegram-desktop
|
||||
ayugram-desktop
|
||||
restic
|
||||
bitwarden
|
||||
pre-commit
|
||||
|
|
@ -66,12 +65,10 @@ pkgs: with pkgs; [
|
|||
appimage-run
|
||||
coder
|
||||
xcolor
|
||||
signal-desktop
|
||||
element-desktop
|
||||
pavucontrol
|
||||
samrewritten
|
||||
audacity
|
||||
mullvad-browser
|
||||
mullvad-vpn
|
||||
limo
|
||||
protontricks
|
||||
nmap
|
||||
terragrunt
|
||||
discord
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue