Initial commit
This commit is contained in:
commit
5b865c24e2
59
derivations/ddt4all.nix
Normal file
59
derivations/ddt4all.nix
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
{ mkDerivation,
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
fetchFromGitHub,
|
||||||
|
python3,
|
||||||
|
qtbase,
|
||||||
|
qttools,
|
||||||
|
wrapQtAppsHook,
|
||||||
|
git,
|
||||||
|
which,
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
myPython = python3.withPackages (pkgs: with pkgs; [ pyqt5 pyqtwebengine pyusb crcmod pyserial ]);
|
||||||
|
in
|
||||||
|
mkDerivation rec {
|
||||||
|
pname = "ddt4all";
|
||||||
|
version = "1.0.0"; # Replace with the actual version if necessary
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "cedricp";
|
||||||
|
repo = "ddt4all";
|
||||||
|
rev = "master";
|
||||||
|
sha256 = "sha256-EX7cobgxM8/o4cRmfMMDSYG9X9Av6zmoWlSv1nzfl5o=";
|
||||||
|
};
|
||||||
|
|
||||||
|
# If necessary, add patches to the source
|
||||||
|
# patches = [ ./some_patch.patch ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
myPython
|
||||||
|
wrapQtAppsHook # This is useful for Qt apps
|
||||||
|
qttools # Required for Qt applications
|
||||||
|
which # For locating binaries (e.g., python3)
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
myPython
|
||||||
|
qtbase
|
||||||
|
qttools
|
||||||
|
];
|
||||||
|
|
||||||
|
#makeFlags = [ "PREFIX=$(out)" ];
|
||||||
|
runScript = ''
|
||||||
|
# Set up environment for running the app
|
||||||
|
export LD_LIBRARY_PATH=${qtbase}/lib:${myPython}/lib:$LD_LIBRARY_PATH
|
||||||
|
|
||||||
|
if [ ! -d ".venv" ]; then
|
||||||
|
python3 -m venv .venv
|
||||||
|
source .venv/bin/activate
|
||||||
|
pip install --upgrade pip
|
||||||
|
pip install -r requirements.txt
|
||||||
|
else
|
||||||
|
source .venv/bin/activate
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run the application
|
||||||
|
python3 main.py
|
||||||
|
'';
|
||||||
|
}
|
249
flake.lock
generated
Normal file
249
flake.lock
generated
Normal file
@ -0,0 +1,249 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"ags": {
|
||||||
|
"inputs": {
|
||||||
|
"astal": "astal",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1736677288,
|
||||||
|
"narHash": "sha256-Vj3WOLy6o6Zf44Rwg9eLqNRQPlVoDrQ89tsef3l3990=",
|
||||||
|
"owner": "Aylur",
|
||||||
|
"repo": "ags",
|
||||||
|
"rev": "90db9b9fecc0f4228440d83107c6c745a35e7d77",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Aylur",
|
||||||
|
"repo": "ags",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"apple-emoji": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1711624089,
|
||||||
|
"narHash": "sha256-Glk61yudkHfUaTMlfUPLay/d6R/prmIt37oEWtVh+Qw=",
|
||||||
|
"owner": "oxcl",
|
||||||
|
"repo": "apple-emoji-nix",
|
||||||
|
"rev": "5b1a9d2513af73b5a23c7656e34d54a6bf76b34d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxcl",
|
||||||
|
"repo": "apple-emoji-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"apple-fonts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"ny": "ny",
|
||||||
|
"sf-arabic": "sf-arabic",
|
||||||
|
"sf-compact": "sf-compact",
|
||||||
|
"sf-mono": "sf-mono",
|
||||||
|
"sf-pro": "sf-pro"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1732029343,
|
||||||
|
"narHash": "sha256-sAOEhA/vfyAKggwyI3PNy2xeNzb/USZl4YNpeSzMRBI=",
|
||||||
|
"owner": "Lyndeno",
|
||||||
|
"repo": "apple-fonts.nix",
|
||||||
|
"rev": "714767021b57d0d30de35eb90e4b748fbbb9c99f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Lyndeno",
|
||||||
|
"repo": "apple-fonts.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"astal": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"ags",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1735172721,
|
||||||
|
"narHash": "sha256-rtEAwGsHSppnkR3Qg3eRJ6Xh/F84IY9CrBBLzYabalY=",
|
||||||
|
"owner": "aylur",
|
||||||
|
"repo": "astal",
|
||||||
|
"rev": "6c84b64efc736e039a8a10774a4a1bf772c37aa2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "aylur",
|
||||||
|
"repo": "astal",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fingerprint-sensor": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1734692513,
|
||||||
|
"narHash": "sha256-3QEzFFrkXLj/JgZGoLaxq/pPkflSXfBOP10bXL8/Niw=",
|
||||||
|
"owner": "ahbnr",
|
||||||
|
"repo": "nixos-06cb-009a-fingerprint-sensor",
|
||||||
|
"rev": "3678b193efa1e06aab86058aecee18ddaa8878d2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ahbnr",
|
||||||
|
"ref": "24.11",
|
||||||
|
"repo": "nixos-06cb-009a-fingerprint-sensor",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1736373539,
|
||||||
|
"narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "bd65bc3cde04c16755955630b344bc9e35272c56",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "release-24.11",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1711523803,
|
||||||
|
"narHash": "sha256-UKcYiHWHQynzj6CN/vTcix4yd1eCu1uFdsuarupdCQQ=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "2726f127c15a4cc9810843b96cad73c7eb39e443",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731319897,
|
||||||
|
"narHash": "sha256-PbABj4tnbWFMfBp6OcUK5iGy1QY+/Z96ZcLpooIbuEI=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "dc460ec76cbff0e66e269457d7b728432263166c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1736549401,
|
||||||
|
"narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "1dab772dd4a68a7bba5d9460685547ff8e17d899",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ny": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"narHash": "sha256-3257NAH4qlan2YHVLpNRy7x8IJqR2pal3OzFo/ykqXs=",
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://devimages-cdn.apple.com/design/resources/download/NY.dmg"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://devimages-cdn.apple.com/design/resources/download/NY.dmg"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"ags": "ags",
|
||||||
|
"apple-emoji": "apple-emoji",
|
||||||
|
"apple-fonts": "apple-fonts",
|
||||||
|
"fingerprint-sensor": "fingerprint-sensor",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sf-arabic": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"narHash": "sha256-/0gjRimqvZyE60xYxxPdlU+7Q2LJnnvtbmwOP0YmS9U=",
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Arabic.dmg"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Arabic.dmg"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sf-compact": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"narHash": "sha256-J72Lyt2wy83E46wN8w6/Rih9kilM9wEjtY6KnbF0DsA=",
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sf-mono": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"narHash": "sha256-ICdHRFdNL7PM/fXJUzS7LgZxZiqcyIuCMHLze4En4vg=",
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Mono.dmg"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Mono.dmg"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sf-pro": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"narHash": "sha256-Q/pOQ4MGhW/ZtLka+UUQcwSoZFDWW34XvutxL4GvzUY=",
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
26
flake.nix
Normal file
26
flake.nix
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||||
|
apple-fonts.url = "github:Lyndeno/apple-fonts.nix";
|
||||||
|
apple-emoji.url = "github:oxcl/apple-emoji-nix";
|
||||||
|
|
||||||
|
ags = {
|
||||||
|
url = "github:Aylur/ags";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager/release-24.11";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
fingerprint-sensor = {
|
||||||
|
url = "github:ahbnr/nixos-06cb-009a-fingerprint-sensor/24.11";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, ... }: {
|
||||||
|
nixosConfigurations = import ./hosts { inherit self; };
|
||||||
|
};
|
||||||
|
}
|
18
hosts/NERD_tree_tab_1
Normal file
18
hosts/NERD_tree_tab_1
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
" Press ? for help
|
||||||
|
|
||||||
|
.. (up a dir)
|
||||||
|
/etc/nixos/
|
||||||
|
▸ hosts/
|
||||||
|
▸ modules/
|
||||||
|
▸ overlays/
|
||||||
|
▾ profiles/
|
||||||
|
▾ hulk/
|
||||||
|
▸ fish/
|
||||||
|
default.nix [RO]
|
||||||
|
files.nix [RO]
|
||||||
|
packages.nix [RO]
|
||||||
|
programs.nix [RO]
|
||||||
|
theme.nix [RO]
|
||||||
|
default.nix [RO]
|
||||||
|
flake.lock [RO]
|
||||||
|
flake.nix [RO]
|
36
hosts/base-configuration.nix
Normal file
36
hosts/base-configuration.nix
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# DO NOT change this unless you know what you're doing!
|
||||||
|
system.stateVersion = "24.11";
|
||||||
|
|
||||||
|
environment.variables = {
|
||||||
|
XDG_SESSION_TYPE = "wayland";
|
||||||
|
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||||
|
NIXPKGS_ALLOW_INSECURE = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.config = {
|
||||||
|
allowInsecurePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) [
|
||||||
|
"fluffychat-linux"
|
||||||
|
"olm"
|
||||||
|
"python312Packages.youtube-dl"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
alacritty
|
||||||
|
vim
|
||||||
|
bluez
|
||||||
|
xwayland
|
||||||
|
unzip
|
||||||
|
networkmanager
|
||||||
|
];
|
||||||
|
|
||||||
|
services.automatic-timezoned.enable = true;
|
||||||
|
|
||||||
|
boot.loader.grub.enable = false;
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
|
||||||
|
programs.xwayland.enable = true;
|
||||||
|
}
|
20
hosts/default.nix
Normal file
20
hosts/default.nix
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{ self, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (self) inputs;
|
||||||
|
system = "x86_64-linux";
|
||||||
|
homeDir = self + /profiles;
|
||||||
|
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
||||||
|
mkSystem = pkgs: hostname:
|
||||||
|
pkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
|
modules = [
|
||||||
|
./base-configuration.nix
|
||||||
|
./${hostname}
|
||||||
|
homeDir
|
||||||
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
];
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
hulk = mkSystem inputs.nixpkgs "hulk";
|
||||||
|
}
|
20
hosts/hulk/default.nix
Normal file
20
hosts/hulk/default.nix
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./hardware-configuration.nix
|
||||||
|
./modules.nix
|
||||||
|
./services.nix
|
||||||
|
./programs.nix
|
||||||
|
./users.nix
|
||||||
|
./networking.nix
|
||||||
|
./fonts.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{
|
||||||
|
device = "/swap";
|
||||||
|
size = 8192;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
20
hosts/hulk/fonts.nix
Normal file
20
hosts/hulk/fonts.nix
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{ pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
fonts.fontDir.enable = true;
|
||||||
|
fonts.packages = [
|
||||||
|
inputs.apple-emoji.packages.${pkgs.system}.apple-emoji-nix
|
||||||
|
inputs.apple-fonts.packages.${pkgs.system}.sf-pro-nerd
|
||||||
|
inputs.apple-fonts.packages.${pkgs.system}.sf-compact-nerd
|
||||||
|
inputs.apple-fonts.packages.${pkgs.system}.sf-mono-nerd
|
||||||
|
];
|
||||||
|
|
||||||
|
fonts.fontconfig.enable = true;
|
||||||
|
fonts.enableDefaultPackages = false;
|
||||||
|
fonts.fontconfig.defaultFonts = {
|
||||||
|
sansSerif = [ "SFProText Nerd Font" "SFProDisplay Nerd Font" ];
|
||||||
|
serif = [ "SFProText Nerd Font" "SFProDisplay Nerd Font" ];
|
||||||
|
monospace = [ "SFMono Nerd Font" ];
|
||||||
|
emoji = [ "Apple Color Emoji" ];
|
||||||
|
};
|
||||||
|
}
|
39
hosts/hulk/hardware-configuration.nix
Normal file
39
hosts/hulk/hardware-configuration.nix
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/9c4c982e-0ea2-46c7-b7d6-e5a94f8562d3";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/A399-E37C";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
10
hosts/hulk/modules.nix
Normal file
10
hosts/hulk/modules.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../../modules/greetd.nix
|
||||||
|
../../modules/nvidia-support.nix
|
||||||
|
../../modules/open-fprint-suspend-fix.nix
|
||||||
|
inputs.fingerprint-sensor.nixosModules."06cb-009a-fingerprint-sensor"
|
||||||
|
];
|
||||||
|
}
|
10
hosts/hulk/programs.nix
Normal file
10
hosts/hulk/programs.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.thunar.enable = true;
|
||||||
|
|
||||||
|
programs.thunar.plugins = with pkgs.xfce; [
|
||||||
|
thunar-archive-plugin
|
||||||
|
thunar-volman
|
||||||
|
];
|
||||||
|
}
|
59
hosts/hulk/services.nix
Normal file
59
hosts/hulk/services.nix
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services."06cb-009a-fingerprint-sensor" = {
|
||||||
|
enable = true;
|
||||||
|
backend = "python-validity";
|
||||||
|
calib-data-file = ./calib-data.bin;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.greetd-hyprland.enable = true;
|
||||||
|
services.nvidia.enable = true;
|
||||||
|
services.fingerprint-fix.enable = true;
|
||||||
|
|
||||||
|
services.fprintd.enable = pkgs.lib.mkForce true;
|
||||||
|
|
||||||
|
services.upower.enable = true;
|
||||||
|
services.udev.enable = true;
|
||||||
|
services.udev.packages = [ pkgs.hyprland ];
|
||||||
|
|
||||||
|
services.printing = {
|
||||||
|
enable = true;
|
||||||
|
drivers = with pkgs; [ hplipWithPlugin ];
|
||||||
|
};
|
||||||
|
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = false;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
extraConfig.pipewire.context.properties = {
|
||||||
|
default.clock.allowed-rates = [ 44100 48000 96000 ];
|
||||||
|
log.level = 4;
|
||||||
|
default.clock.quantum = 256;
|
||||||
|
default.clock.min-quantum = 256;
|
||||||
|
default.clock.max-quantum = 256;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.bluetooth.serviceConfig.ExecStart = pkgs.lib.mkForce [
|
||||||
|
""
|
||||||
|
"${pkgs.bluez}/libexec/bluetooth/bluetoothd -f /etc/bluetooth/main.conf -C"
|
||||||
|
];
|
||||||
|
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
hardware.bluetooth.powerOnBoot = true;
|
||||||
|
|
||||||
|
services.blueman.enable = true;
|
||||||
|
|
||||||
|
services.gvfs.enable = true;
|
||||||
|
services.tlp = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
START_CHARGE_THRESH_BAT0 = 40;
|
||||||
|
STOP_CHARGE_THRESH_BAT0 = 80;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
16
hosts/hulk/users.nix
Normal file
16
hosts/hulk/users.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
username = "sadorowo";
|
||||||
|
fullname = "Franek";
|
||||||
|
preferredShell = pkgs.fish;
|
||||||
|
in {
|
||||||
|
users.users.${username} = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = fullname;
|
||||||
|
home = "/home/${username}";
|
||||||
|
extraGroups = [ "wheel" "networkmanager" ];
|
||||||
|
shell = preferredShell;
|
||||||
|
ignoreShellProgramCheck = true; # Will do it later in profile configuration
|
||||||
|
};
|
||||||
|
}
|
16
modules/greetd.nix
Normal file
16
modules/greetd.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.services.greetd-hyprland.enable = lib.mkEnableOption "Enable GreetD with TUI-based login.";
|
||||||
|
|
||||||
|
config = lib.mkIf config.services.greetd-hyprland.enable {
|
||||||
|
services.greetd = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
default_session = {
|
||||||
|
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
13
modules/nvidia-support.nix
Normal file
13
modules/nvidia-support.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.services.nvidia.enable = lib.mkEnableOption "Enable NVIDIA kernel and modprobe configurations.";
|
||||||
|
|
||||||
|
config = lib.mkIf config.services.nvidia.enable {
|
||||||
|
boot.kernelModules = [ "nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" ];
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
options nvidia NVreg_OpenRmEnableUnsupportedGpus=1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
19
modules/open-fprint-suspend-fix.nix
Normal file
19
modules/open-fprint-suspend-fix.nix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.services.fingerprint-fix.enable = lib.mkEnableOption "Enable systemd service to restart fingerprint services after suspend.";
|
||||||
|
|
||||||
|
config = lib.mkIf config.services.fingerprint-fix.enable {
|
||||||
|
systemd.services.validity-restart = let
|
||||||
|
targets = [ "suspend.target" "hibernate.target" "hybrid-sleep.target" "suspend-then-hibernate.target" ];
|
||||||
|
in {
|
||||||
|
description = "Restart services to fix fingerprint integration";
|
||||||
|
wantedBy = targets;
|
||||||
|
after = targets;
|
||||||
|
serviceConfig = {
|
||||||
|
type = "oneshot";
|
||||||
|
ExecStart = "systemctl restart open-fprintd.service python3-validity.service";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
15
profiles/default.nix
Normal file
15
profiles/default.nix
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{ self, impurity, inputs, ... }: {
|
||||||
|
home-manager = {
|
||||||
|
verbose = true;
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
backupFileExtension = "bak";
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit inputs self impurity;
|
||||||
|
};
|
||||||
|
|
||||||
|
users = {
|
||||||
|
sadorowo = ./hulk;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
27
profiles/hulk/default.nix
Normal file
27
profiles/hulk/default.nix
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
username = "sadorowo";
|
||||||
|
homeDirectory = "/home/${username}";
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
./packages.nix # Packages to install
|
||||||
|
./programs.nix # Programs to enable
|
||||||
|
./files.nix # Files to create
|
||||||
|
./theme.nix # System-wide/GTK theme
|
||||||
|
];
|
||||||
|
|
||||||
|
home = {
|
||||||
|
inherit username homeDirectory;
|
||||||
|
sessionVariables = {
|
||||||
|
NIXPKGS_ALLOW_UNFREE = "1";
|
||||||
|
NIXPKGS_ALLOW_INSECURE = "1";
|
||||||
|
NIXOS_OZONE_WL = "1";
|
||||||
|
TZ = "Europe/Warsaw";
|
||||||
|
LD_LIBRARY_PATH="${pkgs.stdenv.cc.cc.lib}/lib:$LD_LIBRARY_PATH";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
home.stateVersion = "24.11"; # DO NOT change this unless you know what you're doing!
|
||||||
|
}
|
6
profiles/hulk/files.nix
Normal file
6
profiles/hulk/files.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
xdg.configFile."gtk-3.0/settings.ini".text = ''
|
||||||
|
[Settings]
|
||||||
|
gtk-icon-theme-name=Adwaita
|
||||||
|
'';
|
||||||
|
}
|
76
profiles/hulk/fish/default.nix
Normal file
76
profiles/hulk/fish/default.nix
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./starship.nix
|
||||||
|
./nix-index.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.fish = {
|
||||||
|
enable = true;
|
||||||
|
interactiveShellInit = ''
|
||||||
|
set fish_greeting
|
||||||
|
'';
|
||||||
|
shellAliases = {
|
||||||
|
".." = "cd ..";
|
||||||
|
"..." = "cd ../..";
|
||||||
|
"...." = "cd ../../../";
|
||||||
|
"....." = "cd ../../../../";
|
||||||
|
|
||||||
|
"cp" = "cp -v";
|
||||||
|
"ddf" = "df -h";
|
||||||
|
"etc" = "erd -H";
|
||||||
|
"mkdir" = "mkdir -p";
|
||||||
|
"mv" = "mv -v";
|
||||||
|
"rm" = "rm -v";
|
||||||
|
"rr" = "rm -rf";
|
||||||
|
|
||||||
|
"neofetch" = "fastfetch";
|
||||||
|
};
|
||||||
|
|
||||||
|
shellAbbrs = {
|
||||||
|
gaa = "git add -A";
|
||||||
|
ga = "git add";
|
||||||
|
gbd = "git branch --delete";
|
||||||
|
gb = "git branch";
|
||||||
|
gc = "git commit";
|
||||||
|
gcm = "git commit -m";
|
||||||
|
gcob = "git checkout -b";
|
||||||
|
gco = "git checkout";
|
||||||
|
gd = "git diff";
|
||||||
|
gl = "git log";
|
||||||
|
gp = "git push";
|
||||||
|
gs = "git status";
|
||||||
|
};
|
||||||
|
|
||||||
|
functions = {
|
||||||
|
webcopy = ''
|
||||||
|
function webcopy
|
||||||
|
set -l domain (string trim $argv)
|
||||||
|
wget --recursive \
|
||||||
|
--level 5 \
|
||||||
|
--no-clobber \
|
||||||
|
--page-requisites \
|
||||||
|
--adjust-extension \
|
||||||
|
--span-hosts \
|
||||||
|
--convert-links \
|
||||||
|
--domains $domain \
|
||||||
|
--no-parent \
|
||||||
|
$domain
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
|
||||||
|
venv = ''
|
||||||
|
function venv
|
||||||
|
source .venv/bin/activate.fish
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
|
||||||
|
thunderbird = ''
|
||||||
|
if pgrep -x birdtray > /dev/null
|
||||||
|
birdtray -s
|
||||||
|
else
|
||||||
|
birdtray &
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
6
profiles/hulk/fish/nix-index.nix
Normal file
6
profiles/hulk/fish/nix-index.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
programs.nix-index = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
};
|
||||||
|
}
|
6
profiles/hulk/fish/starship.nix
Normal file
6
profiles/hulk/fish/starship.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
programs.starship = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
};
|
||||||
|
}
|
71
profiles/hulk/packages.nix
Normal file
71
profiles/hulk/packages.nix
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
{ pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
ddt4all = pkgs.stdenv.mkDerivation {
|
||||||
|
name = "ddt4all";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "cedricp";
|
||||||
|
repo = "ddt4all";
|
||||||
|
rev = "master";
|
||||||
|
sha256 = "sha256-EX7cobgxM8/o4cRmfMMDSYG9X9Av6zmoWlSv1nzfl5o=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgs.git ];
|
||||||
|
buildInputs = [ pkgs.stdenv.cc.cc.lib ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/DDT4ALL
|
||||||
|
cp -r * $out/DDT4ALL
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
imports = [ inputs.ags.homeManagerModules.default ];
|
||||||
|
home = {
|
||||||
|
activation.ddt4all = pkgs.lib.mkAfter ''
|
||||||
|
if [ ! -d "$HOME/DDT4ALL" ]; then
|
||||||
|
cp -r ${ddt4all}/DDT4ALL $HOME/DDT4ALL
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
packages = with pkgs; [
|
||||||
|
hyprland hyprlock hypridle hyprshot wl-clipboard cliphist swww
|
||||||
|
lxqt.lxqt-policykit
|
||||||
|
stdenv.cc.cc.lib
|
||||||
|
|
||||||
|
(python3.withPackages (py: with py; [
|
||||||
|
pywayland
|
||||||
|
]))
|
||||||
|
|
||||||
|
(birdtray.overrideAttrs (_: {
|
||||||
|
cmakeFlags = [ "-DOPT_THUNDERBIRD_CMDLINE=${thunderbird}/bin/thunderbird" ];
|
||||||
|
}))
|
||||||
|
|
||||||
|
jq
|
||||||
|
bluez
|
||||||
|
dconf
|
||||||
|
starship
|
||||||
|
firefox-beta-bin
|
||||||
|
thunderbird-bin
|
||||||
|
fluffychat
|
||||||
|
libreoffice-qt6-fresh
|
||||||
|
gimp
|
||||||
|
vscodium git nodejs
|
||||||
|
fprintd
|
||||||
|
cups
|
||||||
|
fish
|
||||||
|
anydesk
|
||||||
|
fastfetch
|
||||||
|
greetd.greetd greetd.tuigreet
|
||||||
|
playerctl
|
||||||
|
adwaita-icon-theme
|
||||||
|
darkman
|
||||||
|
android-tools
|
||||||
|
filezilla
|
||||||
|
bitwarden-desktop
|
||||||
|
davinci-resolve
|
||||||
|
mpv
|
||||||
|
wget
|
||||||
|
sshfs
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
32
profiles/hulk/programs.nix
Normal file
32
profiles/hulk/programs.nix
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{ inputs, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ ./fish ];
|
||||||
|
programs.ags = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = with inputs.ags.packages.${pkgs.system}; [
|
||||||
|
apps battery bluetooth greet hyprland mpris network notifd powerprofiles tray wireplumber
|
||||||
|
] ++ [
|
||||||
|
pkgs.fzf pkgs.icon-library
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.darkman = {
|
||||||
|
enable = true;
|
||||||
|
darkModeScripts = {
|
||||||
|
gtk-theme = ''
|
||||||
|
${pkgs.dconf}/bin/dconf write\
|
||||||
|
/org/gnome/desktop/interface/color-scheme "'prefer-dark'"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
lightModeScripts = {
|
||||||
|
gtk-theme = ''
|
||||||
|
${pkgs.dconf}/bin/dconf write\
|
||||||
|
/org/gnome/desktop/interface/color-scheme "'prefer-light'"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
settings = {
|
||||||
|
usegeoclue = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
36
profiles/hulk/theme.nix
Normal file
36
profiles/hulk/theme.nix
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{ pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
nerdfonts = (pkgs.nerdfonts.override {
|
||||||
|
fonts = [
|
||||||
|
"CascadiaCode"
|
||||||
|
"JetBrainsMono"
|
||||||
|
"FiraCode"
|
||||||
|
"SpaceMono"
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
cursor-theme = "Bibata-Modern-Classic";
|
||||||
|
cursor-pkg = pkgs.bibata-cursors;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
adw-gtk3
|
||||||
|
material-symbols
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-cjk-sans
|
||||||
|
bibata-cursors
|
||||||
|
];
|
||||||
|
sessionVariables = {
|
||||||
|
XCURSOR_THEME = cursor-theme;
|
||||||
|
XCURSOR_SIZE = "24";
|
||||||
|
};
|
||||||
|
pointerCursor = {
|
||||||
|
package = cursor-pkg;
|
||||||
|
name = cursor-theme;
|
||||||
|
size = 24;
|
||||||
|
gtk.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
53
shell.nix
Normal file
53
shell.nix
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
{ pkgs ? import <nixpkgs> {} }:
|
||||||
|
|
||||||
|
let
|
||||||
|
pythonWithPkgs = pkgs.python3.withPackages (ps: with ps; [
|
||||||
|
ps.pyqt5
|
||||||
|
ps.pyqtwebengine
|
||||||
|
ps.pyusb
|
||||||
|
ps.crcmod
|
||||||
|
ps.pyserial
|
||||||
|
]);
|
||||||
|
in
|
||||||
|
|
||||||
|
pkgs.mkShell {
|
||||||
|
name = "ddt4all-env";
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
pythonWithPkgs
|
||||||
|
pkgs.qt5.qtbase
|
||||||
|
pkgs.qt5.qttools
|
||||||
|
pkgs.git
|
||||||
|
pkgs.freetype
|
||||||
|
pkgs.libGL
|
||||||
|
pkgs.dbus
|
||||||
|
pkgs.xorg.libX11
|
||||||
|
pkgs.xorg.libXcomposite
|
||||||
|
pkgs.xorg.libXdamage
|
||||||
|
pkgs.xorg.libXfixes
|
||||||
|
pkgs.xorg.libXrender
|
||||||
|
pkgs.xorg.libXrandr
|
||||||
|
pkgs.xorg.libXtst
|
||||||
|
pkgs.glib
|
||||||
|
pkgs.expat
|
||||||
|
pkgs.fontconfig
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgs.libsForQt5.qt5.wrapQtAppsHook ];
|
||||||
|
shellHook = ''wrapQtAppsHook'';
|
||||||
|
|
||||||
|
runScript = ''
|
||||||
|
cd $HOME/DDT4ALL
|
||||||
|
|
||||||
|
if [ ! -d ".venv" ]; then
|
||||||
|
python3 -m venv .venv
|
||||||
|
source .venv/bin/activate
|
||||||
|
pip install --upgrade pip
|
||||||
|
pip install -r requirements.txt
|
||||||
|
else
|
||||||
|
source .venv/bin/activate
|
||||||
|
fi
|
||||||
|
|
||||||
|
python3 main.py
|
||||||
|
'';
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user