asdasdas
This commit is contained in:
53
flake.nix
53
flake.nix
@@ -7,10 +7,61 @@
|
|||||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||||
|
|
||||||
import-tree.url = "github:vic/import-tree";
|
import-tree.url = "github:vic/import-tree";
|
||||||
|
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager/master";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
stylix = {
|
||||||
|
url = "github:danth/stylix";
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs";
|
||||||
|
nur.inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
flake-parts.follows = "stylix/flake-parts";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
noctalia = {
|
||||||
|
url = "github:noctalia-dev/noctalia-shell";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
firefox-addons = {
|
||||||
|
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
prismlauncher-cracked = {
|
||||||
|
url = "github:Diegiwg/PrismLauncher-Cracked";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
affinity-nix = {
|
||||||
|
url = "github:mrshmllow/affinity-nix";
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
treefmt-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
git-hooks.inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
gitignore.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nix-flatpak.url = "github:gmodena/nix-flatpak?ref=latest";
|
||||||
|
|
||||||
|
garandos-tui = {
|
||||||
|
url = "git+https://gitea.garandplg.com/GarandPLG/garandos-tui?ref=main";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs:
|
outputs = inputs:
|
||||||
inputs.flake-parts.lib.mkFlake {
|
inputs.flake-parts.lib.mkFlake {
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
} (inputs.import-tree ./.);
|
} (inputs.import-tree ./modules);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
self,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
modules = self.nixosModules;
|
|
||||||
in {
|
|
||||||
flake.nixosConfigurations."Garand-Desktop" = inputs.nixpkgs.lib.nixosSystem {
|
|
||||||
modules = [
|
|
||||||
modules.hardware
|
|
||||||
modules.homeModules
|
|
||||||
modules.systemModules
|
|
||||||
modules.systemPackages
|
|
||||||
modules.variables
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
_: {
|
|
||||||
flake.nixosModules.hardware = {
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
initrd = {
|
|
||||||
availableKernelModules = [
|
|
||||||
"nvme"
|
|
||||||
"xhci_pci"
|
|
||||||
"ahci"
|
|
||||||
"usbhid"
|
|
||||||
"usb_storage"
|
|
||||||
"sd_mod"
|
|
||||||
];
|
|
||||||
kernelModules = ["dm-snapshot"];
|
|
||||||
luks.devices = {
|
|
||||||
cryptroot = {
|
|
||||||
device = "/dev/disk/by-uuid/7c018698-d35c-4ee6-92a8-5e4edf914065";
|
|
||||||
preLVM = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
kernelModules = ["kvm-amd"];
|
|
||||||
extraModulePackages = [];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems = {
|
|
||||||
"/" = {
|
|
||||||
device = "/dev/disk/by-uuid/e3ac1df3-ce8f-44cd-901f-a8cd3f6955b7";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
"/home" = {
|
|
||||||
device = "/dev/disk/by-uuid/0713b82c-bf8c-424f-96e1-5d883e50b451";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
"/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/783D-A507";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [
|
|
||||||
"fmask=0022"
|
|
||||||
"dmask=0022"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = lib.mkForce [
|
|
||||||
{
|
|
||||||
device = "/dev/disk/by-uuid/8e8cc3dc-5754-4757-a2d7-53e6a2c3b5a4";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
# 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.enp5s0.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
_: {
|
|
||||||
flake.nixosModules.homeModules = {
|
|
||||||
/*
|
|
||||||
Development editors and IDEs
|
|
||||||
*/
|
|
||||||
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
|
|
||||||
zed-editor = {
|
|
||||||
enable = true; # Zed Editor: a modern, high‑performance code editor
|
|
||||||
remote-server.enable = true; # Remote Server: enable remote editing capabilities
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
Web browsers
|
|
||||||
*/
|
|
||||||
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
|
|
||||||
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork
|
|
||||||
|
|
||||||
/*
|
|
||||||
System utilities
|
|
||||||
*/
|
|
||||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
|
||||||
cava.enable = false; # Cava: terminal audio visualizer
|
|
||||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
|
||||||
|
|
||||||
/*
|
|
||||||
Communication and synchronization
|
|
||||||
*/
|
|
||||||
kdeconnect.enable = true; # KDE Connect: integrate your phone and desktop
|
|
||||||
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
|
|
||||||
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
|
||||||
|
|
||||||
/*
|
|
||||||
Gaming
|
|
||||||
*/
|
|
||||||
lutris.enable = false; # Lutris: an open gaming platform
|
|
||||||
|
|
||||||
/*
|
|
||||||
Media recording and streaming
|
|
||||||
*/
|
|
||||||
obs-studio.enable = false; # OBS Studio: streaming and recording software
|
|
||||||
|
|
||||||
/*
|
|
||||||
Office suite
|
|
||||||
*/
|
|
||||||
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats
|
|
||||||
|
|
||||||
/*
|
|
||||||
Learning tools
|
|
||||||
*/
|
|
||||||
anki.enable = true; # Anki: spaced‑repetition flashcard program
|
|
||||||
|
|
||||||
/*
|
|
||||||
XDG desktop entries (PWA)
|
|
||||||
*/
|
|
||||||
xdgDesktopEntries = {
|
|
||||||
enable = true; # Enable XDG desktop entries
|
|
||||||
entries = {
|
|
||||||
messenger.enable = true; # Messenger: Facebook Messenger
|
|
||||||
mastodon.enable = true; # Mastodon: a decentralized social network
|
|
||||||
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
|
|
||||||
chatgpt.enable = true; # ChatGPT: a large language model
|
|
||||||
claude.enable = true; # Claude: a large language model
|
|
||||||
glance.enable = true; # Glance: my home server dashboard
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,97 +0,0 @@
|
|||||||
_: {
|
|
||||||
flake.nixosModules.systemModules = {
|
|
||||||
/*
|
|
||||||
Container & Packaging
|
|
||||||
*/
|
|
||||||
docker.enable = true; # Docker: container runtime and management
|
|
||||||
virtualbox.enable = false; # VirtualBox: PC emulator
|
|
||||||
flatpak = {
|
|
||||||
enable = true; # Flatpak: universal packaging system for Linux
|
|
||||||
packages = {
|
|
||||||
sober.enable = false; # Roblox client
|
|
||||||
warehouse.enable = true; # Flatpak manager
|
|
||||||
flatseal.enable = true; # Flatpak permissions manager
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
Networking
|
|
||||||
*/
|
|
||||||
tailscale.enable = true; # Tailscale: secure network for remote access
|
|
||||||
|
|
||||||
/*
|
|
||||||
Calendar & Contacts
|
|
||||||
*/
|
|
||||||
calendar.enable = true; # GNOME Calendar: calendar and contacts application
|
|
||||||
|
|
||||||
/*
|
|
||||||
Gaming
|
|
||||||
*/
|
|
||||||
gamemode.enable = true; # GameMode: optimizes system performance for gaming
|
|
||||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
|
||||||
steam.enable = true; # Steam: platform for buying and playing games
|
|
||||||
|
|
||||||
packages = {
|
|
||||||
/*
|
|
||||||
Container & Packaging
|
|
||||||
*/
|
|
||||||
distrobox.enable = false; # Distrobox: containerized development environments
|
|
||||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
|
||||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
|
||||||
|
|
||||||
/*
|
|
||||||
Gaming
|
|
||||||
*/
|
|
||||||
prismlauncher.enable = true; # Prism Launcher: Minecraft modded launcher
|
|
||||||
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
|
|
||||||
ttySolitaire.enable = true; # TTY Solitaire: terminal‑based solitaire game
|
|
||||||
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
|
||||||
|
|
||||||
/*
|
|
||||||
Development Tools
|
|
||||||
*/
|
|
||||||
exercism.enable = true; # Exercism: coding practice platform
|
|
||||||
lazygit.enable = false; # Lazygit: simple TUI for Git
|
|
||||||
opencode.enable = false; # OpenCode: tools for coding and development
|
|
||||||
jan.enable = true; # Jan: AI chat UI
|
|
||||||
logisim-evolution.enable = true; # Logisim-Evolution: Digital logic designer and simulator
|
|
||||||
|
|
||||||
/*
|
|
||||||
Communication & Collaboration
|
|
||||||
*/
|
|
||||||
mattermost.enable = true; # Mattermost: open‑source Slack alternative
|
|
||||||
slack.enable = false; # Slack: team communication and collaboration tool
|
|
||||||
tutanota.enable = true; # Tutanota: secure email client
|
|
||||||
signal.enable = true; # Signal: secure messaging app
|
|
||||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
|
||||||
ferdium.enable = false; # Ferdium: All your services in one place built by the community
|
|
||||||
|
|
||||||
/*
|
|
||||||
Productivity / Knowledge Management
|
|
||||||
*/
|
|
||||||
bitwarden.enable = false; # Bitwarden: password manager (desktop)
|
|
||||||
iotas.enable = true; # Iotas: lightweight notes manager
|
|
||||||
logseq.enable = false; # Logseq: knowledge base and outliner
|
|
||||||
|
|
||||||
/*
|
|
||||||
Media & Graphics
|
|
||||||
*/
|
|
||||||
affinity.enable = true; # Affinity: professional graphics suite
|
|
||||||
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
|
||||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
|
||||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
|
||||||
kdenlive.enable = false; # Kdenlive: video editing software
|
|
||||||
pixieditor.enable = true; # Pixieditor: Universal editor for all your 2D needs
|
|
||||||
plex.enable = true; # Plex: media player and server client
|
|
||||||
|
|
||||||
/*
|
|
||||||
Utilities / Misc
|
|
||||||
*/
|
|
||||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
|
||||||
gnomeCalculator.enable = true; # gnomeCalculator: simple calculator
|
|
||||||
gedit.enable = true; # Gedit: GNOME text editor
|
|
||||||
winboat.enable = true; # Winboat: Windows remote desktop via RDP
|
|
||||||
adb.enable = false; # ADB: Android SDK platform tools
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{inputs, ...}: {
|
|
||||||
flake.nixosModules.systemPackages.environment.systemPackages = with inputs.pkgs; [
|
|
||||||
# audacity
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
_: {
|
|
||||||
flake.nixosModules.boot = {pkgs, config, lib, ...}: {
|
|
||||||
boot = {
|
|
||||||
kernelPackages = pkgs.linuxPackages_zen;
|
|
||||||
kernelModules = ["v4l2loopback"];
|
|
||||||
extraModulePackages = [config.boot.kernelPackages.v4l2loopback];
|
|
||||||
kernel.sysctl = {
|
|
||||||
"vm.max_map_count" = 2147483642;
|
|
||||||
};
|
|
||||||
loader = {
|
|
||||||
efi.canTouchEfiVariables = true;
|
|
||||||
limine = {
|
|
||||||
enable = true;
|
|
||||||
style = {
|
|
||||||
wallpapers = [
|
|
||||||
./../../wallpapers/attack-on-titan-mikasa-ackerman.jpg
|
|
||||||
];
|
|
||||||
wallpaperStyle = lib.mkForce "centered";
|
|
||||||
backdrop = "${config.stylix.base16Scheme.base00}";
|
|
||||||
interface = {
|
|
||||||
branding = "GarandOS Bootloader";
|
|
||||||
resolution = "1920x1080";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# Appimage Support
|
|
||||||
binfmt.registrations.appimage = {
|
|
||||||
wrapInterpreterInShell = false;
|
|
||||||
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
|
|
||||||
recognitionType = "magic";
|
|
||||||
offset = 0;
|
|
||||||
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
|
|
||||||
magicOrExtension = ''\x7fELF....AI\x02'';
|
|
||||||
};
|
|
||||||
plymouth.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
12
modules/hosts/Garand-Desktop/default.nix
Normal file
12
modules/hosts/Garand-Desktop/default.nix
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
self,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
flake.nixosConfigurations."Garand-Desktop" = inputs.nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = with self.modules.nixos; [
|
||||||
|
variables
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
_: {
|
{self, inputs, ...}: {
|
||||||
flake.nixosModules.variables = {
|
flake.modules.nixos.variables = {
|
||||||
# CPU Architecture
|
# CPU Architecture
|
||||||
# Available options: "x86_64-linux", "aarch64-linux", etc.
|
# Available options: "x86_64-linux", "aarch64-linux", etc.
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
10
modules/parts.nix
Normal file
10
modules/parts.nix
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
config = {
|
||||||
|
systems = [
|
||||||
|
"x86_64-linux"
|
||||||
|
"x86_64-darwin"
|
||||||
|
"aarch64-linux"
|
||||||
|
"aarch64-darwin"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user