properly reformat all files

This commit is contained in:
Franek 2025-04-14 10:37:58 +02:00
parent d670e245e4
commit 725588ec9b
26 changed files with 920 additions and 776 deletions

View File

@ -17,18 +17,23 @@
hyprspace.url = "github:KZDKM/Hyprspace"; hyprspace.url = "github:KZDKM/Hyprspace";
}; };
outputs = { self, nixpkgs, ... }: let outputs =
{ self, nixpkgs, ... }:
let
forAllSystems = nixpkgs.lib.genAttrs [ forAllSystems = nixpkgs.lib.genAttrs [
"aarch64-linux" "aarch64-linux"
"x86_64-linux" "x86_64-linux"
"aarch64-darwin" "aarch64-darwin"
]; ];
in { in
{
nixosConfigurations = import ./hosts { inherit self; }; nixosConfigurations = import ./hosts { inherit self; };
devShells = forAllSystems ( system: devShells = forAllSystems (
system:
let let
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
in { in
{
ddt4all = import ./shells/ddt4all.nix { inherit pkgs; }; ddt4all = import ./shells/ddt4all.nix { inherit pkgs; };
} }
); );

View File

@ -6,12 +6,17 @@
# Enable cache # Enable cache
nix.settings = { nix.settings = {
substituters = ["https://cache.nixos.org" "https://hyprland.cachix.org"]; substituters = [
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; "https://cache.nixos.org"
"https://hyprland.cachix.org"
];
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
}; };
nixpkgs.config = { nixpkgs.config = {
allowInsecurePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) [ allowInsecurePredicate =
pkg:
builtins.elem (pkgs.lib.getName pkg) [
"olm" "olm"
]; ];
}; };

View File

@ -4,24 +4,33 @@ let
inherit (self) inputs; inherit (self) inputs;
homeDir = self + /profiles; homeDir = self + /profiles;
mkSystem = { mkSystem =
{
system, system,
hostname, hostname,
useHomeManager ? true, useHomeManager ? true,
modules ? [] modules ? [ ],
}: inputs.nixpkgs.lib.nixosSystem { }:
inputs.nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; }; specialArgs = { inherit inputs; };
modules = [ modules =
[
./base-configuration.nix ./base-configuration.nix
./${hostname} ./${hostname}
homeDir homeDir
] ++ ( ]
if useHomeManager then [ ++ (
if useHomeManager then
[
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
] else [ ] ]
) ++ modules; else
[ ]
)
++ modules;
}; };
in { in
{
hulk = mkSystem { hulk = mkSystem {
system = "x86_64-linux"; system = "x86_64-linux";
hostname = "hulk"; hostname = "hulk";

View File

@ -6,7 +6,10 @@
./networking.nix ./networking.nix
]; ];
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [
"nix-command"
"flakes"
];
nix.settings.auto-optimise-store = true; nix.settings.auto-optimise-store = true;
nix.gc = { nix.gc = {
automatic = true; automatic = true;

View File

@ -1,27 +1,41 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: {
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = imports = [
[ (modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [
"xhci_pci"
"ahci"
"usb_storage"
"sd_mod"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ]; boot.kernelModules = [ ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/9c4c982e-0ea2-46c7-b7d6-e5a94f8562d3"; device = "/dev/disk/by-uuid/9c4c982e-0ea2-46c7-b7d6-e5a94f8562d3";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/A399-E37C"; device = "/dev/disk/by-uuid/A399-E37C";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ]; options = [
"fmask=0022"
"dmask=0022"
];
}; };
swapDevices = [ ]; swapDevices = [ ];

View File

@ -3,7 +3,8 @@
let let
networkManagerEnabled = true; networkManagerEnabled = true;
wirelessEnabled = false; wirelessEnabled = false;
in { in
{
networking.networkmanager.enable = pkgs.lib.mkIf networkManagerEnabled true; networking.networkmanager.enable = pkgs.lib.mkIf networkManagerEnabled true;
networking.networkmanager.wifi.powersave = pkgs.lib.mkIf networkManagerEnabled true; networking.networkmanager.wifi.powersave = pkgs.lib.mkIf networkManagerEnabled true;

View File

@ -4,12 +4,19 @@ let
username = "sadorowo"; username = "sadorowo";
fullname = "Franek"; fullname = "Franek";
preferredShell = pkgs.fish; preferredShell = pkgs.fish;
in { in
{
users.users.${username} = { users.users.${username} = {
isNormalUser = true; isNormalUser = true;
description = fullname; description = fullname;
home = "/home/${username}"; home = "/home/${username}";
extraGroups = [ "wheel" "networkmanager" "plugdev" "adbusers" "nordvpn" ]; extraGroups = [
"wheel"
"networkmanager"
"plugdev"
"adbusers"
"nordvpn"
];
shell = preferredShell; shell = preferredShell;
ignoreShellProgramCheck = true; # Will do it later in profile configuration ignoreShellProgramCheck = true; # Will do it later in profile configuration
}; };

View File

@ -12,7 +12,10 @@ let
hash = "sha256-RJoI3G4Tr3272CZ/lI9HEfKXdwuwPzWlrOKm9taIjuU="; hash = "sha256-RJoI3G4Tr3272CZ/lI9HEfKXdwuwPzWlrOKm9taIjuU=";
}; };
buildInputs = with pkgs; [ libxml2 libidn2 ]; buildInputs = with pkgs; [
libxml2
libidn2
];
nativeBuildInputs = with pkgs; [ nativeBuildInputs = with pkgs; [
dpkg dpkg
autoPatchelfHook autoPatchelfHook
@ -44,7 +47,8 @@ let
name = "nordvpnd"; name = "nordvpnd";
runScript = "nordvpnd"; runScript = "nordvpnd";
targetPkgs = pkgs: with pkgs; [ targetPkgs =
pkgs: with pkgs; [
nordVPNBase nordVPNBase
sysctl sysctl
iptables iptables
@ -64,7 +68,8 @@ let
cp -r ${nordVPNBase}/var/lib/nordvpn/* /var/lib/nordvpn; cp -r ${nordVPNBase}/var/lib/nordvpn/* /var/lib/nordvpn;
fi fi
''; '';
in pkgs.stdenv.mkDerivation rec { in
pkgs.stdenv.mkDerivation rec {
inherit pname version; inherit pname version;
dontUnpack = true; dontUnpack = true;
@ -85,7 +90,7 @@ in pkgs.stdenv.mkDerivation rec {
description = "CLI client for NordVPN"; description = "CLI client for NordVPN";
homepage = "https://www.nordvpn.com"; homepage = "https://www.nordvpn.com";
license = licenses.unfreeRedistributable; license = licenses.unfreeRedistributable;
maintainers = with maintainers; [dr460nf1r3]; maintainers = with maintainers; [ dr460nf1r3 ];
platforms = ["x86_64-linux"]; platforms = [ "x86_64-linux" ];
}; };
} }

View File

@ -1,4 +1,9 @@
{ pkgs, config, lib, ... }: {
pkgs,
config,
lib,
...
}:
{ {
options.modules.hyprland = { options.modules.hyprland = {
@ -6,32 +11,39 @@
additionalPackages = lib.mkOption { additionalPackages = lib.mkOption {
type = lib.types.listOf lib.types.package; type = lib.types.listOf lib.types.package;
description = "Additional Hyprland-related packages to install"; description = "Additional Hyprland-related packages to install";
default = []; default = [ ];
}; };
additionalConfig = lib.mkOption { additionalConfig = lib.mkOption {
type = lib.types.attrs; type = lib.types.attrs;
description = "Additional options for Hyprland config"; description = "Additional options for Hyprland config";
default = []; default = [ ];
}; };
plugins = lib.mkOption { plugins = lib.mkOption {
type = lib.types.listOf lib.types.package; type = lib.types.listOf lib.types.package;
description = "Additional plugins for Hyprland"; description = "Additional plugins for Hyprland";
default = []; default = [ ];
}; };
sourceFiles = lib.mkOption { sourceFiles = lib.mkOption {
type = lib.types.listOf lib.types.str; type = lib.types.listOf lib.types.str;
description = "Config files to source"; description = "Config files to source";
default = []; default = [ ];
}; };
}; };
config = lib.mkIf config.modules.hyprland.enable { config = lib.mkIf config.modules.hyprland.enable {
home.packages = with pkgs; [ home.packages =
hyprlock hypridle wl-clipboard cliphist swww with pkgs;
] ++ config.modules.hyprland.additionalPackages; [
hyprlock
hypridle
wl-clipboard
cliphist
swww
]
++ config.modules.hyprland.additionalPackages;
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;

View File

@ -1,4 +1,9 @@
{ config, pkgs, lib, ... }: {
config,
pkgs,
lib,
...
}:
{ {
options.modules.darkman = { options.modules.darkman = {

View File

@ -1,4 +1,10 @@
{ config, lib, pkgs, inputs, ... }: {
config,
lib,
pkgs,
inputs,
...
}:
{ {
options.modules.apple-style.enable = lib.mkEnableOption "Enable Apple fonts and emojis"; options.modules.apple-style.enable = lib.mkEnableOption "Enable Apple fonts and emojis";
@ -14,8 +20,14 @@
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
fonts.enableDefaultPackages = false; fonts.enableDefaultPackages = false;
fonts.fontconfig.defaultFonts = { fonts.fontconfig.defaultFonts = {
sansSerif = [ "SFProText Nerd Font" "SFProDisplay Nerd Font" ]; sansSerif = [
serif = [ "SFProText Nerd Font" "SFProDisplay Nerd Font" ]; "SFProText Nerd Font"
"SFProDisplay Nerd Font"
];
serif = [
"SFProText Nerd Font"
"SFProDisplay Nerd Font"
];
monospace = [ "SFMono Nerd Font" ]; monospace = [ "SFMono Nerd Font" ];
emoji = [ "Apple Color Emoji" ]; emoji = [ "Apple Color Emoji" ];
}; };

View File

@ -1,4 +1,9 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
options.modules.bluetooth.enable = lib.mkEnableOption "Enable Bluetooth"; options.modules.bluetooth.enable = lib.mkEnableOption "Enable Bluetooth";

View File

@ -1,4 +1,10 @@
{ config, lib, pkgs, inputs, ... }: {
config,
lib,
pkgs,
inputs,
...
}:
{ {
options.modules.fingerprint-fix = { options.modules.fingerprint-fix = {
@ -14,9 +20,16 @@
config = lib.mkIf config.modules.fingerprint-fix.enable { config = lib.mkIf config.modules.fingerprint-fix.enable {
# Needed because we're getting TLS error with open-fprintd-resume # Needed because we're getting TLS error with open-fprintd-resume
systemd.services.validity-restart = let systemd.services.validity-restart =
targets = [ "suspend.target" "hibernate.target" "hybrid-sleep.target" "suspend-then-hibernate.target" ]; let
in { targets = [
"suspend.target"
"hibernate.target"
"hybrid-sleep.target"
"suspend-then-hibernate.target"
];
in
{
description = "Restart.modules.to fix fingerprint integration"; description = "Restart.modules.to fix fingerprint integration";
wantedBy = targets; wantedBy = targets;
after = targets; after = targets;

View File

@ -1,4 +1,9 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
options.modules.greetd = { options.modules.greetd = {

View File

@ -1,9 +1,15 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
options.modules.nordvpn.enable = lib.mkEnableOption "Whether to enable the NordVPN daemon"; options.modules.nordvpn.enable = lib.mkEnableOption "Whether to enable the NordVPN daemon";
config = lib.mkIf config.modules.nordvpn.enable (let config = lib.mkIf config.modules.nordvpn.enable (
let
nordVPN = pkgs.callPackage ../derivations/nordvpn.nix { inherit pkgs lib; }; nordVPN = pkgs.callPackage ../derivations/nordvpn.nix { inherit pkgs lib; };
preScript = pkgs.writeShellScript "nordvpn-start" '' preScript = pkgs.writeShellScript "nordvpn-start" ''
mkdir -m 700 -p /var/lib/nordvpn; mkdir -m 700 -p /var/lib/nordvpn;
@ -11,13 +17,14 @@
cp -r ${nordVPN}/var/lib/nordvpn/* /var/lib/nordvpn; cp -r ${nordVPN}/var/lib/nordvpn/* /var/lib/nordvpn;
fi fi
''; '';
in { in
{
networking.firewall.checkReversePath = false; networking.firewall.checkReversePath = false;
networking.firewall.allowedUDPPorts = [ 1194 ]; networking.firewall.allowedUDPPorts = [ 1194 ];
networking.firewall.allowedTCPPorts = [ 443 ]; networking.firewall.allowedTCPPorts = [ 443 ];
environment.systemPackages = [ nordVPN ]; environment.systemPackages = [ nordVPN ];
users.groups.nordvpn = {}; users.groups.nordvpn = { };
systemd.services.nordvpn = { systemd.services.nordvpn = {
description = "NordVPN daemon."; description = "NordVPN daemon.";
@ -32,9 +39,10 @@
RuntimeDirectoryMode = "0750"; RuntimeDirectoryMode = "0750";
Group = "nordvpn"; Group = "nordvpn";
}; };
wantedBy = ["multi-user.target"]; wantedBy = [ "multi-user.target" ];
after = ["network-online.target"]; after = [ "network-online.target" ];
wants = ["network-online.target"]; wants = [ "network-online.target" ];
}; };
}); }
);
} }

View File

@ -4,10 +4,14 @@
options.modules.nvidia.enable = lib.mkEnableOption "Enable NVIDIA kernel and modprobe configurations."; options.modules.nvidia.enable = lib.mkEnableOption "Enable NVIDIA kernel and modprobe configurations.";
config = lib.mkIf config.modules.nvidia.enable { config = lib.mkIf config.modules.nvidia.enable {
boot.kernelModules = [ "nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" ]; boot.kernelModules = [
"nvidia"
"nvidia_modeset"
"nvidia_uvm"
"nvidia_drm"
];
boot.extraModprobeConfig = '' boot.extraModprobeConfig = ''
options nvidia NVreg_OpenRmEnableUnsupportedGpus=1 options nvidia NVreg_OpenRmEnableUnsupportedGpus=1
''; '';
}; };
} }

View File

@ -1,4 +1,10 @@
{ self, impurity, inputs, ... }: { {
self,
impurity,
inputs,
...
}:
{
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;

View File

@ -3,7 +3,8 @@
let let
username = "sadorowo"; username = "sadorowo";
homeDirectory = "/home/${username}"; homeDirectory = "/home/${username}";
in { in
{
imports = [ imports = [
./packages.nix ./packages.nix
./programs.nix ./programs.nix
@ -21,4 +22,3 @@ in {
programs.home-manager.enable = true; programs.home-manager.enable = true;
home.stateVersion = "24.11"; home.stateVersion = "24.11";
} }

View File

@ -2,11 +2,14 @@
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
pywal pywalfox-native pywal
pywalfox-native
(python3.withPackages (py: with py; [ (python3.withPackages (
py: with py; [
pywayland pywayland
])) ]
))
(birdtray.overrideAttrs (_: { (birdtray.overrideAttrs (_: {
cmakeFlags = [ "-DOPT_THUNDERBIRD_CMDLINE=${thunderbird}/bin/thunderbird" ]; cmakeFlags = [ "-DOPT_THUNDERBIRD_CMDLINE=${thunderbird}/bin/thunderbird" ];
@ -20,7 +23,10 @@
youtube-music youtube-music
libreoffice-qt6-fresh libreoffice-qt6-fresh
gimp gimp
vscodium git nodejs postgresql vscodium
git
nodejs
postgresql
fprintd fprintd
cups cups
fish fish
@ -37,4 +43,3 @@
sshfs sshfs
]; ];
} }

View File

@ -53,10 +53,25 @@
programs.pywal.enable = true; programs.pywal.enable = true;
programs.ags = { programs.ags = {
enable = true; enable = true;
extraPackages = with inputs.ags.packages.${pkgs.system}; [ extraPackages =
apps battery bluetooth greet hyprland mpris network notifd powerprofiles tray wireplumber with inputs.ags.packages.${pkgs.system};
] ++ [ [
pkgs.dart-sass pkgs.fzf pkgs.icon-library apps
battery
bluetooth
greet
hyprland
mpris
network
notifd
powerprofiles
tray
wireplumber
]
++ [
pkgs.dart-sass
pkgs.fzf
pkgs.icon-library
]; ];
}; };

View File

@ -1,14 +1,16 @@
{ pkgs, inputs, ... }: { pkgs, inputs, ... }:
let let
nerdfonts = (pkgs.nerdfonts.override { nerdfonts = (
pkgs.nerdfonts.override {
fonts = [ fonts = [
"CascadiaCode" "CascadiaCode"
"JetBrainsMono" "JetBrainsMono"
"FiraCode" "FiraCode"
"SpaceMono" "SpaceMono"
]; ];
}); }
);
cursor-theme = "Bibata-Modern-Classic"; cursor-theme = "Bibata-Modern-Classic";
cursor-pkg = pkgs.bibata-cursors; cursor-pkg = pkgs.bibata-cursors;

View File

@ -1,13 +1,15 @@
{ pkgs, ... }: { pkgs, ... }:
let let
pythonWithPkgs = pkgs.python3.withPackages (ps: with ps; [ pythonWithPkgs = pkgs.python3.withPackages (
ps: with ps; [
ps.pyqt5 ps.pyqt5
ps.pyqtwebengine ps.pyqtwebengine
ps.pyusb ps.pyusb
ps.crcmod ps.crcmod
ps.pyserial ps.pyserial
]); ]
);
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "cedricp"; owner = "cedricp";
@ -15,7 +17,8 @@ let
rev = "v3.0.4"; rev = "v3.0.4";
sha256 = "sha256-SswaqV2UabVjuNeMTd7K3Vxa77LZKCb/qkgidkaE0R8="; sha256 = "sha256-SswaqV2UabVjuNeMTd7K3Vxa77LZKCb/qkgidkaE0R8=";
}; };
in pkgs.mkShell { in
pkgs.mkShell {
name = "ddt4all-env"; name = "ddt4all-env";
buildInputs = [ buildInputs = [