Compare commits

...

23 Commits

Author SHA1 Message Date
akulij
4ba7f801c4 set env variables in bash 2025-02-15 16:55:51 +00:00
akulij
36d841eeeb add basic home-manager configuration 2025-02-15 16:50:07 +00:00
akulij
8b9f9eb4ae organize flake inputs to block of definition 2025-02-15 15:22:29 +00:00
akulij
910bee5e56 add lazygit package 2025-02-15 15:22:09 +00:00
akulij
62afc72fae move configuration to hosts folder structure 2025-02-15 14:10:22 +00:00
Akulij
2f650892b5 add every day used packages 2025-02-15 13:27:47 +00:00
Akulij
a2b68751b2 change disk configuration to match moved systemj 2025-02-15 13:27:14 +00:00
Akulij
bc8f4ff4e5 allow password login via ssh 2025-02-10 10:52:33 +00:00
Akulij
859fd3eaca add gamescope 2025-02-10 10:51:05 +00:00
Akulij
1e03bd3f89 Update system (flock.lock) 2025-02-10 10:50:36 +00:00
Akulij
b759b6bc85 add steam again 2025-01-31 18:45:23 +00:00
Akulij
8208f97b19 ignore this 2025-01-31 18:44:30 +00:00
Akulij
24e7dfb20e add steam 2025-01-31 18:05:17 +00:00
Akulij
9b115f0366 delandroidsdk 2024-11-17 15:26:50 +00:00
Akulij
f2e682ae81 Temp 2024-11-17 15:24:31 +00:00
Akulij
85003350ab add shell alias to nixos configuration rebuild and switch 2024-10-04 17:20:51 +00:00
Akulij
e050f3601d change confguration name to pc 2024-10-04 17:19:59 +00:00
Akulij
e7ef2ba9c5 add shell aliases 2024-10-04 17:09:44 +00:00
Akulij
c229135ac7 add user akulij 2024-10-04 17:01:03 +00:00
Akulij
5c77efd444 fix to add plymouth to initrd 2024-09-27 15:58:58 +00:00
Akulij
e27a94900f group all boot.loader options 2024-09-27 15:02:45 +00:00
Akulij
701d4b2f8c make boot graphical 2024-09-27 15:00:07 +00:00
Akulij
18ee735445 lock flake 2024-09-27 14:59:32 +00:00
7 changed files with 280 additions and 31 deletions

View File

@ -1,21 +0,0 @@
{ modulesPath, config, lib, pkgs, ... }: {
imports = [
./hardware-configuration.nix
./disk-config.nix
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
services.openssh.enable = true;
environment.systemPackages = map lib.lowPrio [
pkgs.curl
pkgs.gitMinimal
];
users.users.root.openssh.authorizedKeys.keys = [
# change this to your ssh key
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDCOZgbO0xzciMbBCSC1fZLEY8qIB4c+UK0niwVvaphOPp87xjE+eyeHDhQLntxhTeOgAob24pBmhycAkQXxu0FcDZN7RmZOyNTFFQPd2w8KRgGwUnZtfOFUaT9KxV0xpnfnJN+PeCeys9/jz5XHBzlei0HPuaC85KcKqa1GMNldtFELqa1MySAIQ0mV3TynLooqqjdr2kqou9DPEqC2A2VrdDn2FFc1+RuaiEitmOG2rLUHLSje2R+GN3kkPPtWI/CzapwHC/j7hcgPEPZcAT5Pe+cQqTMXpMGK2ZFsQsgCIhwPfKg/o8LN5QKYm8sJb42OftgTpoUJNMMWvRYv9J1lRa57wLyVNl56wchj/d5kh13CJ+WDR7KnaY00xlRHxXChp9ZU7sqFMgBOlS1OUQv5iDdUerLPrSIr9JqMVtkcP1betqDKFZLJYvRpV35IQX6FsDOuzTYkojX8gKsxPL6Prq0EHwtuatvGxNq/en7VBbzHRpf32+x8luypkFLoKM="
];
system.stateVersion = "24.11";
}

69
flake.lock generated Normal file
View File

@ -0,0 +1,69 @@
{
"nodes": {
"disko": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1738765162,
"narHash": "sha256-3Z40qHaFScWUCVQrGc4Y+RdoPsh1R/wIh+AN4cTXP0I=",
"owner": "nix-community",
"repo": "disko",
"rev": "ff3568858c54bd306e9e1f2886f0f781df307dff",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "disko",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1739571712,
"narHash": "sha256-0UdSDV/TBY+GuxXLbrLq3l2Fq02ciyKCIMy4qmnfJXQ=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "6d3163aea47fdb1fe19744e91306a2ea4f602292",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1739019272,
"narHash": "sha256-7Fu7oazPoYCbDzb9k8D/DdbKrC3aU1zlnc39Y8jy/s8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fa35a3c8e17a3de613240fea68f876e5b4896aec",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"disko": "disko",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

View File

@ -1,15 +1,36 @@
{
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
inputs.disko.url = "github:nix-community/disko";
inputs.disko.inputs.nixpkgs.follows = "nixpkgs";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
outputs = { nixpkgs, disko, ... }:
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { nixpkgs, disko, home-manager, ... }:
{
nixosConfigurations.hardpc = nixpkgs.lib.nixosSystem {
nixosConfigurations.pc = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
disko.nixosModules.disko
./configuration.nix
./hosts/pc/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
# TODO replace akulij with your own username
home-manager.users.akulij = import ./users/akulij/home.nix;
# Optionally, use home-manager.extraSpecialArgs to pass arguments to home.nix
}
];
};
};

141
hosts/pc/configuration.nix Normal file
View File

@ -0,0 +1,141 @@
let
unstable = import (fetchTarball {
url = "https://nixos.org/channels/nixos-unstable/nixexprs.tar.xz";
sha256 = "0k9xxn1kz32jbjzgcqxmh7czx0mrpq6zais5pzd86bii50cl40c7";
}) { };
in
{ modulesPath, config, lib, pkgs, ... }: {
imports = [
./hardware-configuration.nix
./disk-config.nix
];
boot = {
initrd.systemd.enable = true;
plymouth = {
enable = true;
theme = "rings";
themePackages = with pkgs; [
# By default we would install all themes
(adi1090x-plymouth-themes.override {
selected_themes = [ "rings" ];
})
];
};
# Enable "Silent Boot"
consoleLogLevel = 0;
initrd.verbose = false;
kernelParams = [
"quiet"
"splash"
"boot.shell_on_fail"
"loglevel=3"
"rd.systemd.show_status=false"
"rd.udev.log_level=3"
"udev.log_priority=3"
];
loader = {
efi.canTouchEfiVariables = true;
systemd-boot.enable = true;
systemd-boot.consoleMode = "max";
# Hide the OS choice for bootloaders.
# It's still possible to open the bootloader list by pressing any key
# It will just not appear on screen unless a key is pressed
timeout = 0;
};
};
# programs.adb.enable = true;
services.greetd = {
enable = true;
settings = rec {
initial_session = {
command = "${pkgs.hyprland}/bin/Hyprland";
user = "akulij";
};
default_session = initial_session;
};
};
networking.hostName = "pc";
programs.hyprland = {
enable = true;
xwayland.enable = true;
};
programs.steam = {
enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
};
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"steam"
"steam-original"
"steam-unwrapped"
"steam-run"
];
services.openssh = {
enable = true;
ports = [ 1440 ];
settings = {
PasswordAuthentication = true;
AllowUsers = null; # Allows all users by default. Can be [ "user1" "user2" ]
UseDns = true;
X11Forwarding = false;
PermitRootLogin = "no"; # "yes", "without-password", "prohibit-password", "forced-commands-only", "no"
};
};
environment.systemPackages = map lib.lowPrio [
# unstable.cope
pkgs.curl
pkgs.gitMinimal
pkgs.neovim
pkgs.kitty
pkgs.tmux
pkgs.ranger
pkgs.gparted
pkgs.lazygit
pkgs.firefox
pkgs.fuzzel
pkgs.gamescope
];
programs.git.config.user = {
name = "akulij";
email = "aakulij@gmail.com";
};
users.users.akulij = {
isNormalUser = true;
extraGroups = [ "wheel" ];
};
users.users.akulij.openssh.authorizedKeys.keys = [
# change this to your ssh key
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDCOZgbO0xzciMbBCSC1fZLEY8qIB4c+UK0niwVvaphOPp87xjE+eyeHDhQLntxhTeOgAob24pBmhycAkQXxu0FcDZN7RmZOyNTFFQPd2w8KRgGwUnZtfOFUaT9KxV0xpnfnJN+PeCeys9/jz5XHBzlei0HPuaC85KcKqa1GMNldtFELqa1MySAIQ0mV3TynLooqqjdr2kqou9DPEqC2A2VrdDn2FFc1+RuaiEitmOG2rLUHLSje2R+GN3kkPPtWI/CzapwHC/j7hcgPEPZcAT5Pe+cQqTMXpMGK2ZFsQsgCIhwPfKg/o8LN5QKYm8sJb42OftgTpoUJNMMWvRYv9J1lRa57wLyVNl56wchj/d5kh13CJ+WDR7KnaY00xlRHxXChp9ZU7sqFMgBOlS1OUQv5iDdUerLPrSIr9JqMVtkcP1betqDKFZLJYvRpV35IQX6FsDOuzTYkojX8gKsxPL6Prq0EHwtuatvGxNq/en7VBbzHRpf32+x8luypkFLoKM="
];
environment.shellAliases = {
u = "sudo -E nixos-rebuild switch --flake .#";
n = "nvim";
se = "sudo -E nvim";
gs = "git status";
gd = "git diff";
ga = "git add";
gc = "git commit";
};
system.stateVersion = "24.11";
nix.settings.experimental-features = [ "nix-command" "flakes" ];
}

View File

@ -3,7 +3,7 @@
disk = {
main = {
type = "disk";
device = "/dev/nvme0n1";
device = "/dev/disk/by-id/nvme-Samsung_SSD_990_PRO_2TB_S6Z2NF0W823875P";
content = {
type = "gpt";
partitions = {
@ -16,17 +16,25 @@
mountpoint = "/boot";
};
};
luks = {
system = {
size = "256G";
content = {
type = "filesystem";
format = "btrfs";
mountpoint = "/";
};
};
storage = {
size = "100%";
content = {
type = "luks";
name = "crypted";
name = "storage";
settings.allowDiscards = true;
passwordFile = "/tmp/secret.key";
content = {
type = "filesystem";
format = "btrfs";
mountpoint = "/";
mountpoint = "/storage"; # non-standard folder for unix-like, but good to avoid collisions
};
};
};

31
users/akulij/home.nix Normal file
View File

@ -0,0 +1,31 @@
{ config, pkgs, ... }:
{
home.username = "akulij";
home.homeDirectory = "/home/akulij";
programs.git = {
enable = true;
userName = "akulij";
userEmail = "aakulij@gmail.com";
};
programs.bash = {
enable = true;
initExtra = ''
# include .profile if it exists
# necessary to import env variables set by home-manager
[[ -f ~/.profile ]] && . ~/.profile
'';
};
home.sessionVariables = {
EDITOR = "nvim";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "24.11"; # Please read the comment before changing.
}