0
0
Fork 0

initial v2

This commit is contained in:
Daryl Ronningen 2025-01-02 17:26:51 -08:00
parent 70e4bc2e69
commit 57c0ac4822
Signed by: Daryl Ronningen
GPG key ID: FD23F0C934A5EC6B
54 changed files with 7507 additions and 1876 deletions

View file

@ -1,3 +0,0 @@
{...}: {
services.flatpak.enable = true;
}

View file

@ -1,15 +0,0 @@
{...}: {
services = {
xserver = {
desktopManager.gnome.enable = true;
displayManager.gdm = {
enable = true;
wayland = false;
};
};
gnome = {
core-utilities.enable = false;
gnome-browser-connector.enable = true;
};
};
}

View file

@ -1,13 +0,0 @@
{pkgs, ...}: {
services.xserver = {
enable = true;
excludePackages = [pkgs.xterm];
};
fonts = {
enableDefaultFonts = true;
enableGhostscriptFonts = true;
fontDir.enable = true;
fonts = [pkgs.nerdfonts pkgs.noto-fonts-cjk-sans];
};
}

View file

@ -1,4 +0,0 @@
{...}: {
virtualisation.podman.enable = true;
virtualisation.podman.dockerCompat = true;
}

View file

@ -1,15 +0,0 @@
{
nixpkgs.config = {
allowUnfree = true;
};
nix = {
settings = {
auto-optimise-store = true;
trusted-users = ["root" "relms"];
};
extraOptions = ''
experimental-features = nix-command flakes
'';
};
}

View file

@ -1,12 +0,0 @@
{pkgs, ...}: {
virtualisation.libvirtd = {
enable = true;
qemu = {
package = pkgs.qemu_full;
ovmf.packages = [pkgs.OVMFFull];
swtpm = {
enable = true;
};
};
};
}

View file

@ -1,47 +0,0 @@
{
config,
pkgs,
lib,
modulesPath,
...
}: {
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
boot = {
initrd = {
availableKernelModules = ["uhci_hcd" "ehci-pci" "ahci" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
kernelModules = [];
};
kernelModules = ["kvm-intel"];
extraModulePackages = [];
};
fileSystems = {
"/" = {
device = "/dev/sda1";
fsType = "xfs";
};
};
boot = {
loader = {
grub = {
enable = true;
device = "/dev/sda";
};
};
kernelPackages = pkgs.linuxPackages_latest;
};
time.timeZone = "America/Los_Angeles";
zramSwap.enable = true;
system.stateVersion = "23.05";
networking.hostName = "crystal-gitlab";
networking.useDHCP = true;
nixpkgs.hostPlatform = "x86_64-linux";
powerManagement.cpuFreqGovernor = "performance";
services.qemuGuest.enable = true;
}

View file

@ -1,34 +0,0 @@
{
pkgs,
lib,
...
}: {
system.stateVersion = "22.11";
time.timeZone = "America/Los_Angeles";
user.shell = "${pkgs.fish}/bin/fish";
nix = {
extraOptions = ''
experimental-features = nix-command flakes
'';
};
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
config = {pkgs, ...}: {
imports = [
../../users/relms/base.nix
../../users/relms/shell.nix
../../users/relms/dev.nix
];
manual.manpages.enable = false;
services.gpg-agent.pinentryFlavor = lib.mkForce "curses";
programs.neovim.enable = lib.mkForce false;
};
};
}

View file

@ -1,57 +0,0 @@
{
config,
pkgs,
lib,
...
}: {
networking.hostName = "skynet";
services.fprintd.enable = true;
systemd.services.fprintd = {
wantedBy = ["multi-user.target"];
serviceConfig.Type = "simple";
};
services.fwupd.enable = true;
services.fwupd.enableTestRemote = true;
services.fwupd.extraRemotes = ["lvfs-testing"];
environment.etc."fwupd/uefi_capsule.conf".text = lib.mkForce ''
[uefi_capsule]
DisableCapsuleUpdateOnDisk=true
OverrideESPMountPoint=/boot/efi
'';
hardware.enableRedistributableFirmware = true;
hardware.cpu.intel.updateMicrocode = true;
hardware.sensor.iio.enable = true;
hardware.opengl.extraPackages = with pkgs; [
intel-compute-runtime
mesa_drivers
vaapiIntel
vaapiVdpau
libvdpau-va-gl
intel-media-driver
];
boot = {
initrd = {
availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod"];
};
kernelModules = ["kvm-intel"];
kernelParams = ["i915.force_probe=46a6"];
};
fileSystems = {
"/" = {
device = "/dev/disk/by-uuid/d0dfd8f7-355c-4d81-a20b-52b522914b96";
fsType = "xfs";
};
"/boot/efi" = {
device = "/dev/disk/by-uuid/FD80-0AEA";
fsType = "vfat";
};
};
nixpkgs.hostPlatform = "x86_64-linux";
}

View file

@ -1,13 +0,0 @@
{pkgs, ...}: {
wsl = {
enable = true;
wslConf.automount.root = "/mnt";
defaultUser = "relms";
startMenuLaunchers = true;
nativeSystemd = true;
};
networking.hostName = "wsl";
system.stateVersion = "23.05";
}

View file

@ -1,141 +1,125 @@
{
"nodes": {
"agenix": {
"alejandra": {
"inputs": {
"darwin": "darwin",
"home-manager": [
"home-manager"
"fenix": "fenix",
"flakeCompat": "flakeCompat",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1733729059,
"narHash": "sha256-5xYai0KZirUX2EQpNMMCWoC27932n/i1E4KeVRIss7s=",
"owner": "kamadorueda",
"repo": "alejandra",
"rev": "6db88764334bd6a8b7a33cb312c318baad1d5e93",
"type": "github"
},
"original": {
"owner": "kamadorueda",
"repo": "alejandra",
"type": "github"
}
},
"apple-fonts": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"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"
}
},
"catppuccin": {
"inputs": {
"catppuccin-v1_1": "catppuccin-v1_1",
"catppuccin-v1_2": "catppuccin-v1_2",
"home-manager": "home-manager",
"home-manager-stable": "home-manager-stable",
"nixpkgs": [
"nixpkgs"
]
],
"nixpkgs-stable": "nixpkgs-stable",
"nuscht-search": "nuscht-search"
},
"locked": {
"lastModified": 1684153753,
"narHash": "sha256-PVbWt3qrjYAK+T5KplFcO+h7aZWfEj1UtyoKlvcDxh0=",
"owner": "ryantm",
"repo": "agenix",
"rev": "db5637d10f797bb251b94ef9040b237f4702cde3",
"lastModified": 1735634086,
"narHash": "sha256-DTcB/kBZULyJztXXnH3OVF5LHLl+O670DuLZZNUMnNo=",
"owner": "catppuccin",
"repo": "nix",
"rev": "63290ea1d2a28e65195017ed78a81cfc242ef0df",
"type": "github"
},
"original": {
"owner": "ryantm",
"repo": "agenix",
"owner": "catppuccin",
"repo": "nix",
"type": "github"
}
},
"darwin": {
"catppuccin-v1_1": {
"locked": {
"lastModified": 1734055249,
"narHash": "sha256-pCWJgwo77KD7EJpwynwKrWPZ//dwypHq2TfdzZWqK68=",
"rev": "7221d6ca17ac36ed20588e1c3a80177ac5843fa7",
"revCount": 326,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.1.1/0193bdc0-b045-7eed-bbec-95611a8ecdf5/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/catppuccin/nix/1.1.%2A.tar.gz"
}
},
"catppuccin-v1_2": {
"locked": {
"lastModified": 1734728407,
"narHash": "sha256-Let3uJo4YDyfqbqaw66dpZxhJB2TrDyZWSFd5rpPLJA=",
"rev": "23ee86dbf4ed347878115a78971d43025362fab1",
"revCount": 341,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.2.0/0193e5e0-33b7-7149-a362-bfe56b20f64e/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/catppuccin/nix/1.2.%2A.tar.gz"
}
},
"fenix": {
"inputs": {
"nixpkgs": [
"agenix",
"alejandra",
"nixpkgs"
]
],
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1673295039,
"narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "87b9d090ad39b25b2400029c64825fc2a8868943",
"lastModified": 1730615655,
"narHash": "sha256-2HBR3zLn57LXKNRtxBb+O+uDqHM4n0pz51rPayMl4cg=",
"owner": "nix-community",
"repo": "fenix",
"rev": "efeb50e2535b17ffd4a135e6e3e5fd60a525180c",
"type": "github"
},
"original": {
"owner": "lnl7",
"ref": "master",
"repo": "nix-darwin",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"neovim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1685662779,
"narHash": "sha256-cKDDciXGpMEjP1n6HlzKinN0H+oLmNpgeCTzYnsA2po=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "71fb97f0d875fd4de4994dfb849f2c75e17eb6c3",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1685662779,
"narHash": "sha256-cKDDciXGpMEjP1n6HlzKinN0H+oLmNpgeCTzYnsA2po=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "71fb97f0d875fd4de4994dfb849f2c75e17eb6c3",
"type": "github"
},
"original": {
"id": "flake-parts",
"type": "indirect"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"neovim",
"hercules-ci-effects",
"hercules-ci-agent",
"nixpkgs"
]
},
"locked": {
"lastModified": 1685662779,
"narHash": "sha256-cKDDciXGpMEjP1n6HlzKinN0H+oLmNpgeCTzYnsA2po=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "71fb97f0d875fd4de4994dfb849f2c75e17eb6c3",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"owner": "nix-community",
"repo": "fenix",
"type": "github"
}
},
@ -144,11 +128,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1685518550,
"narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@ -157,91 +141,35 @@
"type": "github"
}
},
"flake-utils_2": {
"flakeCompat": {
"flake": false,
"locked": {
"lastModified": 1644229661,
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"haskell-flake": {
"locked": {
"lastModified": 1684780604,
"narHash": "sha256-2uMZsewmRn7rRtAnnQNw1lj0uZBMh4m6Cs/7dV5YF08=",
"owner": "srid",
"repo": "haskell-flake",
"rev": "74210fa80a49f1b6f67223debdbf1494596ff9f2",
"type": "github"
},
"original": {
"owner": "srid",
"ref": "0.3.0",
"repo": "haskell-flake",
"type": "github"
}
},
"hercules-ci-agent": {
"inputs": {
"flake-parts": "flake-parts_3",
"haskell-flake": "haskell-flake",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1686721748,
"narHash": "sha256-ilD6ANYID+b0/+GTFbuZXfmu92bqVqY5ITKXSxqIp5A=",
"owner": "hercules-ci",
"repo": "hercules-ci-agent",
"rev": "7192b83935ab292a8e894db590dfd44f976e183b",
"type": "github"
},
"original": {
"id": "hercules-ci-agent",
"type": "indirect"
}
},
"hercules-ci-effects": {
"inputs": {
"flake-parts": "flake-parts_2",
"hercules-ci-agent": "hercules-ci-agent",
"nixpkgs": [
"neovim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1686830987,
"narHash": "sha256-1XLTM0lFr3NV+0rd55SQW/8oQ3ACnqlYcda3FelIwHU=",
"owner": "hercules-ci",
"repo": "hercules-ci-effects",
"rev": "04e4ab63b9eed2452edee1bb698827e1cb8265c6",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "hercules-ci-effects",
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"catppuccin",
"nixpkgs"
]
},
"locked": {
"lastModified": 1687337969,
"narHash": "sha256-5b58eo7Eku2ae+62HHHTbHtwe4jlS44JfYCDulGdopg=",
"lastModified": 1734622215,
"narHash": "sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "9ce6977fe76fb408042a432e314764f8d1d86263",
"rev": "1395379a7a36e40f2a76e7b9936cc52950baa1be",
"type": "github"
},
"original": {
@ -250,282 +178,248 @@
"type": "github"
}
},
"neovim": {
"home-manager-stable": {
"inputs": {
"nixpkgs": [
"catppuccin",
"nixpkgs-stable"
]
},
"locked": {
"lastModified": 1734366194,
"narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"hercules-ci-effects": "hercules-ci-effects",
"neovim-flake": "neovim-flake",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1687305901,
"narHash": "sha256-dOxIJUGafmsBgvQp9wrX7AkH9Dgc55bFUtARBSsvvg8=",
"lastModified": 1735774425,
"narHash": "sha256-C73gLFnEh8ZI0uDijUgCDWCd21T6I6tsaWgIBHcfAXg=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "3293647eeb76c09d03f6d12ee38472a87f303836",
"repo": "home-manager",
"rev": "5f6aa268e419d053c3d5025da740e390b12ac936",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"repo": "home-manager",
"type": "github"
}
},
"neovim-flake": {
"ixx": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"neovim",
"nixpkgs"
]
},
"locked": {
"dir": "contrib",
"lastModified": 1687288633,
"narHash": "sha256-ruvOPW2915R3Jbb/PCKUCwojA9koBK+D+NFu1ZWpZHA=",
"owner": "neovim",
"repo": "neovim",
"rev": "3bf887f6e08fa272679187340ca483809275b20a",
"type": "github"
},
"original": {
"dir": "contrib",
"owner": "neovim",
"repo": "neovim",
"type": "github"
}
},
"nix-formatter-pack": {
"inputs": {
"nixpkgs": [
"nix-on-droid",
"nixpkgs"
],
"nmd": "nmd",
"nmt": "nmt"
},
"locked": {
"lastModified": 1666720474,
"narHash": "sha256-iWojjDS1D19zpeZXbBdjWb9MiKmVVFQCqtJmtTXgPx8=",
"owner": "Gerschtli",
"repo": "nix-formatter-pack",
"rev": "14876cc8fe94a3d329964ecb073b4c988c7b61f5",
"type": "github"
},
"original": {
"owner": "Gerschtli",
"repo": "nix-formatter-pack",
"type": "github"
}
},
"nix-on-droid": {
"inputs": {
"home-manager": [
"home-manager"
],
"nix-formatter-pack": "nix-formatter-pack",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap",
"nmd": "nmd_2"
},
"locked": {
"lastModified": 1684353543,
"narHash": "sha256-0b85kcdeM1WgGZZn0L4fke39xcVpO99hidzcpqvNOcQ=",
"owner": "t184256",
"repo": "nix-on-droid",
"rev": "064e1b280e4711ecea0d7abbe885362cbf7b717a",
"type": "github"
},
"original": {
"owner": "t184256",
"repo": "nix-on-droid",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1686838567,
"narHash": "sha256-aqKCUD126dRlVSKV6vWuDCitfjFrZlkwNuvj5LtjRRU=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "429f232fe1dc398c5afea19a51aad6931ee0fb89",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixos-hardware",
"type": "github"
}
},
"nixos-wsl": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-utils": [
"utils"
"catppuccin",
"nuscht-search",
"flake-utils"
],
"nixpkgs": [
"catppuccin",
"nuscht-search",
"nixpkgs"
]
},
"locked": {
"lastModified": 1687279045,
"narHash": "sha256-LR0dsXd/A07M61jclyBUW0wRojEQteWReKM35zoJXp0=",
"owner": "nix-community",
"repo": "nixos-wsl",
"rev": "a8486b5d191f11d571f15d80b6e265d1712d01cf",
"lastModified": 1729958008,
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixos-wsl",
"owner": "NuschtOS",
"ref": "v0.0.6",
"repo": "ixx",
"type": "github"
}
},
"nix-flatpak": {
"locked": {
"lastModified": 1734128415,
"narHash": "sha256-HLwdVNxpuTsLlM3tCkpbQU6yCehdgf3kOS1G2SDlkzY=",
"owner": "gmodena",
"repo": "nix-flatpak",
"rev": "8bdc2540da516006d07b04019eb57ae0781a04b3",
"type": "github"
},
"original": {
"owner": "gmodena",
"ref": "latest",
"repo": "nix-flatpak",
"type": "github"
}
},
"nixos-facter-modules": {
"locked": {
"lastModified": 1734596637,
"narHash": "sha256-MRqwVAe3gsb88u4ME1UidmZFVCx+FEnoob0zkpO9DMY=",
"owner": "numtide",
"repo": "nixos-facter-modules",
"rev": "536472754982bf03079b4b4e0261838a760587c0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "nixos-facter-modules",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1686501370,
"narHash": "sha256-G0WuM9fqTPRc2URKP9Lgi5nhZMqsfHGrdEbrLvAPJcg=",
"owner": "NixOS",
"lastModified": 1735471104,
"narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "75a5ebf473cd60148ba9aec0d219f72e5cf52519",
"rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4",
"type": "github"
},
"original": {
"owner": "NixOS",
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-for-bootstrap": {
"nixpkgs-stable": {
"locked": {
"lastModified": 1669834992,
"narHash": "sha256-YnhZGHgb4C3Q7DSGisO/stc50jFb9F/MzHeKS4giotg=",
"lastModified": 1734600368,
"narHash": "sha256-nbG9TijTMcfr+au7ZVbKpAhMJzzE2nQBYmRvSdXUD8g=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "596a8e828c5dfa504f91918d0fa4152db3ab5502",
"rev": "b47fd6fa00c6afca88b8ee46cfdb00e104f50bca",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"rev": "596a8e828c5dfa504f91918d0fa4152db3ab5502",
"type": "github"
}
},
"nixpkgs-lib": {
"nuscht-search": {
"inputs": {
"flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [
"catppuccin",
"nixpkgs"
]
},
"locked": {
"dir": "lib",
"lastModified": 1685564631,
"narHash": "sha256-8ywr3AkblY4++3lIVxmrWZFzac7+f32ZEhH/A8pNscI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4f53efe34b3a8877ac923b9350c874e3dcd5dc0a",
"lastModified": 1733773348,
"narHash": "sha256-Y47y+LesOCkJaLvj+dI/Oa6FAKj/T9sKVKDXLNsViPw=",
"owner": "NuschtOS",
"repo": "search",
"rev": "3051be7f403bff1d1d380e4612f0c70675b44fc9",
"type": "github"
},
"original": {
"dir": "lib",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1687274257,
"narHash": "sha256-TutzPriQcZ8FghDhEolnHcYU2oHIG5XWF+/SUBNnAOE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2c9ecd1f0400076a4d6b2193ad468ff0a7e7fdc5",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nmd": {
"ny": {
"flake": false,
"locked": {
"lastModified": 1666190571,
"narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=",
"owner": "rycee",
"repo": "nmd",
"rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169",
"type": "gitlab"
"narHash": "sha256-3257NAH4qlan2YHVLpNRy7x8IJqR2pal3OzFo/ykqXs=",
"type": "file",
"url": "https://devimages-cdn.apple.com/design/resources/download/NY.dmg"
},
"original": {
"owner": "rycee",
"repo": "nmd",
"type": "gitlab"
}
},
"nmd_2": {
"flake": false,
"locked": {
"lastModified": 1666190571,
"narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=",
"owner": "rycee",
"repo": "nmd",
"rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169",
"type": "gitlab"
},
"original": {
"owner": "rycee",
"repo": "nmd",
"type": "gitlab"
}
},
"nmt": {
"flake": false,
"locked": {
"lastModified": 1648075362,
"narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=",
"owner": "rycee",
"repo": "nmt",
"rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae",
"type": "gitlab"
},
"original": {
"owner": "rycee",
"repo": "nmt",
"type": "gitlab"
}
},
"nur": {
"locked": {
"lastModified": 1687352478,
"narHash": "sha256-vMXSNPRlBoZfvBM5AsJWl4kOqdMeArw4Jf8L1L3FWsI=",
"owner": "nix-community",
"repo": "NUR",
"rev": "df4604971171682d14dc49e71106f9e2ba1f3512",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
"type": "file",
"url": "https://devimages-cdn.apple.com/design/resources/download/NY.dmg"
}
},
"root": {
"inputs": {
"agenix": "agenix",
"home-manager": "home-manager",
"neovim": "neovim",
"nix-on-droid": "nix-on-droid",
"nixos-hardware": "nixos-hardware",
"nixos-wsl": "nixos-wsl",
"nixpkgs": "nixpkgs_2",
"nur": "nur",
"utils": "utils"
"alejandra": "alejandra",
"apple-fonts": "apple-fonts",
"catppuccin": "catppuccin",
"home-manager": "home-manager_2",
"nix-flatpak": "nix-flatpak",
"nixos-facter-modules": "nixos-facter-modules",
"nixpkgs": "nixpkgs"
}
},
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1730555913,
"narHash": "sha256-KNHZUlqsEibg3YtfUyOFQSofP8hp1HKoY+laoesBxRM=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "f17a5bbfd0969ba2e63a74505a80e55ecb174ed9",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"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"
}
},
"systems": {
@ -542,24 +436,6 @@
"repo": "default",
"type": "github"
}
},
"utils": {
"inputs": {
"flake-utils": "flake-utils_2"
},
"locked": {
"lastModified": 1657226504,
"narHash": "sha256-GIYNjuq4mJlFgqKsZ+YrgzWm0IpA4axA3MCrdKYj7gs=",
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"rev": "2bf0f91643c2e5ae38c1b26893ac2927ac9bd82a",
"type": "github"
},
"original": {
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"type": "github"
}
}
},
"root": "root",

305
flake.nix
View file

@ -1,158 +1,223 @@
{
description = "The nix flake for all my systems";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
neovim.url = "github:nix-community/neovim-nightly-overlay";
neovim.inputs.nixpkgs.follows = "nixpkgs";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
nur.url = "github:nix-community/NUR";
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
utils.url = "github:gytis-ivaskevicius/flake-utils-plus";
apple-fonts.url = "github:Lyndeno/apple-fonts.nix";
apple-fonts.inputs.nixpkgs.follows = "nixpkgs";
nixos-wsl.url = "github:nix-community/nixos-wsl";
nixos-wsl.inputs.nixpkgs.follows = "nixpkgs";
nixos-wsl.inputs.flake-utils.follows = "utils";
catppuccin.url = "github:catppuccin/nix";
catppuccin.inputs.nixpkgs.follows = "nixpkgs";
nix-on-droid.url = "github:t184256/nix-on-droid";
nix-on-droid.inputs.nixpkgs.follows = "nixpkgs";
nix-on-droid.inputs.home-manager.follows = "home-manager";
alejandra.url = "github:kamadorueda/alejandra";
alejandra.inputs.nixpkgs.follows = "nixpkgs";
nixos-hardware.url = "github:NixOS/nixos-hardware";
agenix.url = "github:ryantm/agenix";
agenix.inputs.nixpkgs.follows = "nixpkgs";
agenix.inputs.home-manager.follows = "home-manager";
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
};
outputs = {
outputs = inputs @ {
self,
nixpkgs,
utils,
home-manager,
neovim,
nur,
nixos-wsl,
nix-on-droid,
nixos-hardware,
agenix,
nixos-facter-modules,
catppuccin,
alejandra,
nix-flatpak,
...
}: let
modules = {
home = {
common = [
./users/relms/base.nix
./users/relms/shell.nix
];
dev = [
./users/relms/dev.nix
./users/relms/neovim.nix
];
gui = [
./users/relms/gui.nix
];
hardware = {
boot = {
grub = [
./hardware/boot/grub.nix
];
};
devices = {
wahnix = [
./hardware/devices/wahnix.nix
];
};
drivers = {
controllers = {
xbox = [
./hardware/drivers/controllers/xbox.nix
];
};
cpu = {
intel = [
./hardware/drivers/cpu/intel.nix
];
};
video = {
base = [
./hardware/drivers/video/base.nix
];
intel = [
./hardware/drivers/video/intel.nix
];
nvidia = [
./hardware/drivers/video/nvidia.nix
];
};
};
};
nixos = {
common = [
./common/personal.nix
./common/nix.nix
./devices/common.nix
base = [
./system/nix.nix
];
dev = [
./common/dev/podman.nix
];
services = {
common = [
./services/openssh.nix
];
};
desktops = {
common = [
./common/desktop/apps.nix
./common/desktop/media.nix
./common/desktop/xorg.nix
apps = [
./system/desktop/apps.nix
];
gnome = [
./common/desktop/gnome.nix
displaymanagers = {
tuigreet = [
./system/desktop/displaymanagers/tuigreet.nix
];
};
environments = {
hyprland = [
./system/desktop/environments/hyprland.nix
];
};
};
security = {
sudo = [
./system/security/sudo.nix
];
};
services = {
bluetooth = [
./system/services/bluetooth.nix
];
flatpak = [
./system/services/flatpak.nix
];
networkmanager = [
./system/services/networkmanager.nix
];
openssh = [
./system/services/openssh.nix
];
pipewire = [
./system/services/pipewire.nix
];
};
users = {
relms = [
./system/users/relms.nix
];
};
};
home = {
apps = {
audio = {
pulseaudio = [
./home/modules/apps/audio/pulesaudio.nix
];
};
browsers = {
firefox = [
./home/modules/apps/browsers/firefox.nix
];
};
terminals = {
kitty = [
./home/modules/apps/terminals/kitty.nix
];
};
flatpak = [
./home/modules/apps/flatpak.nix
];
};
cli = {
development = [
./home/modules/cli/development.nix
./home/modules/cli/neovim.nix
];
shell = [
./home/modules/cli/shell.nix
];
};
desktop = {
environments = {
hyprland = [
./home/modules/desktop/environments/hyprland.nix
];
};
};
users = {
relms = [
./home/users/relms.nix
];
};
};
};
pkgsForSystem = system:
import nixpkgs {
overlays = [nur.overlay (utils.lib.genPkgOverlay neovim "neovim")];
inherit system;
};
in {
packages.x86_64-linux.nerd-fonts-sf-mono-ligatures = nixpkgs.legacyPackages.x86_64-linux.callPackage ./pkgs/fonts/nerd-fonts-sf-mono-ligatures.nix {};
nixosConfigurations = {
skynet = nixpkgs.lib.nixosSystem {
pkgs = pkgsForSystem "x86_64-linux";
wahnix = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit inputs;
};
modules =
modules.nixos.common
++ modules.nixos.dev
++ modules.nixos.services.common
++ modules.nixos.desktops.common
++ modules.nixos.desktops.gnome
modules.nixos.base
++ modules.nixos.desktops.apps
++ modules.nixos.desktops.displaymanagers.tuigreet
++ modules.nixos.desktops.environments.hyprland
++ modules.nixos.security.sudo
++ modules.nixos.services.bluetooth
++ modules.nixos.services.flatpak
++ modules.nixos.services.networkmanager
++ modules.nixos.services.openssh
++ modules.nixos.services.pipewire
++ modules.nixos.users.relms
++ modules.hardware.boot.grub
++ modules.hardware.devices.wahnix
++ modules.hardware.drivers.controllers.xbox
++ modules.hardware.drivers.cpu.intel
++ modules.hardware.drivers.video.base
++ modules.hardware.drivers.video.intel
++ modules.hardware.drivers.video.nvidia
++ [
./common/virt/libvirt.nix
./devices/skynet/base.nix
nixos-hardware.nixosModules.framework-12th-gen-intel
agenix.nixosModules.default
];
};
wsl = nixpkgs.lib.nixosSystem {
pkgs = pkgsForSystem "x86_64-linux";
system = "x86_64-linux";
modules = [
nixos-wsl.nixosModules.wsl
./common/personal.nix
./common/nix.nix
./devices/wsl/base.nix
];
};
crystal-gitlab = nixpkgs.lib.nixosSystem {
pkgs = pkgsForSystem "x86_64-linux";
system = "x86_64-linux";
modules =
modules.nixos.services.common
++ [
agenix.nixosModules.default
./devices/crystal-gitlab/base.nix
./services/crystal/gitlab-runner.nix
./common/personal.nix
./common/nix.nix
nix-flatpak.nixosModules.nix-flatpak
catppuccin.nixosModules.catppuccin
nixos-facter-modules.nixosModules.facter
{config.facter.reportPath = ./wahnix-facter.json;}
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
inherit self;
inherit inputs;
};
home-manager.users.relms = {
imports =
modules.home.users.relms
++ modules.home.apps.audio.pulseaudio
++ modules.home.apps.browsers.firefox
++ modules.home.apps.terminals.kitty
++ modules.home.apps.flatpak
++ modules.home.cli.development
++ modules.home.cli.shell
++ modules.home.desktop.environments.hyprland
++ [
catppuccin.homeManagerModules.catppuccin
nix-flatpak.homeManagerModules.nix-flatpak
];
};
}
];
};
};
homeConfigurations.relms = home-manager.lib.homeManagerConfiguration {
pkgs = pkgsForSystem "x86_64-linux";
modules =
modules.home.common
++ modules.home.dev
++ modules.home.gui
++ [
{
home = {
homeDirectory = "/home/relms";
username = "relms";
};
}
];
};
nixOnDroidConfigurations.default = nix-on-droid.lib.nixOnDroidConfiguration {
pkgs = pkgsForSystem "aarch64-linux";
system = "aarch64-linux";
modules = [./devices/pixel/base.nix];
};
formatter.aarch64-linux = nixpkgs.legacyPackages.aarch64-linux.alejandra;
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra;
formatter.aarch64-linux = alejandra.defaultPackage.aarch64-linux;
formatter.x86_64-linux = alejandra.defaultPackage.x86_64-linux;
};
}

View file

@ -6,22 +6,13 @@
device = "nodev";
useOSProber = true;
efiSupport = true;
memtest86.enable = true;
};
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
};
kernelPackages = pkgs.linuxPackages_latest;
kernelPackages = pkgs.linuxKernel.packages.linux_zen;
};
hardware = {
xpadneo.enable = true;
};
time.timeZone = "America/Los_Angeles";
zramSwap.enable = true;
system.stateVersion = "23.05";
}

View file

@ -0,0 +1,16 @@
{...}: {
networking.hostName = "wahnix";
fileSystems."/" = {
device = "/dev/disk/by-uuid/42e669ff-7713-4210-81e0-f0024b4e7e81";
fsType = "ext4";
};
fileSystems."/boot/efi" = {
device = "/dev/disk/by-uuid/A454-A58C";
fsType = "vfat";
options = ["fmask=0022" "dmask=0022"];
};
nixpkgs.hostPlatform = "x86_64-linux";
}

View file

@ -0,0 +1,3 @@
{
hardware.xpadneo.enable = true;
}

View file

@ -0,0 +1,3 @@
{
hardware.cpu.intel.updateMicrocode = true;
}

View file

@ -0,0 +1,19 @@
{
lib,
pkgs,
...
}: {
hardware.graphics = {
enable = true;
extraPackages = lib.mkDefault [];
extraPackages32 = lib.mkDefault [];
};
environment.systemPackages = with pkgs; [
glxinfo
vulkan-tools
clinfo
libva-utils
vdpauinfo
];
}

View file

@ -0,0 +1,13 @@
{
config,
pkgs,
...
}: {
hardware.graphics.extraPackages = with pkgs; [
vpl-gpu-rt
intel-media-driver
intel-compute-runtime
];
services.xserver.videoDrivers = ["modesetting"];
}

View file

@ -0,0 +1,16 @@
{config, ...}: {
hardware.nvidia = {
open = true;
prime = {
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
offload = {
enable = true;
enableOffloadCmd = true;
};
};
};
boot.blacklistedKernelModules = ["nouveau"];
services.xserver.videoDrivers = ["nvidia"];
}

View file

@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [
pavucontrol
];
}

View file

@ -0,0 +1,6 @@
{
programs.firefox = {
enable = true;
languagePacks = ["en-US"];
};
}

View file

@ -0,0 +1,6 @@
{
services.flatpak.packages = [
"com.discordapp.Discord"
"org.telegram.desktop"
];
}

View file

@ -0,0 +1,46 @@
{
self,
pkgs,
...
}: {
programs.kitty = {
enable = true;
font = {
package = self.packages.${pkgs.system}.nerd-fonts-sf-mono-ligatures;
name = "Liga SFMonoNerdFont";
size = 10;
};
settings = {
# Cursor Settings
cursor_shape = "beam";
cursor_shape_unfocused = "unchanged";
cursor_stop_blinking_after = 0;
# Scrollback Settings
scrollback_lines = 10000;
scrollback_pager_history_size = 2048;
scrollback_fill_enlarged_window = "yes";
# Mouse Settings
mouse_hide_wait = 0;
url_style = "straight";
# Bell Settings
enable_audio_bell = "no";
# Window Settings
hide_window_decorations = "yes";
# Tab Settings
tab_bar_edge = "top";
};
shellIntegration = {
enableFishIntegration = true;
};
};
catppuccin.kitty = {
enable = true;
flavor = "mocha";
};
}

View file

@ -1,8 +1,4 @@
{pkgs, ...}: {
home.packages = with pkgs; [
rustup
];
programs.git = {
enable = true;
package = pkgs.gitAndTools.gitFull;
@ -22,7 +18,7 @@
};
extraConfig = {
init = {
defaultBranch = "main";
defaultBranch = "master";
};
pull = {
rebase = false;
@ -33,6 +29,18 @@
core = {
editor = "nvim";
};
color = {
ui = "auto";
};
diff = {
colorMoved = "default";
};
tag = {
forceSignAnnotated = true;
};
pack = {
writeReversedIndex = true;
};
};
signing = {
signByDefault = true;
@ -43,20 +51,18 @@
programs.direnv.enable = true;
programs.direnv.nix-direnv.enable = true;
programs.lazygit.enable = true;
programs.lazygit.settings = {
gui = {
showIcons = true;
};
git = {
paging = {
colorArg = "always";
pager = "delta --dark --paging=never";
};
commit = {
signOff = true;
};
parseEmoji = true;
};
programs.gpg.enable = true;
services.gpg-agent = {
enable = true;
enableFishIntegration = true;
enableScDaemon = true;
enableSshSupport = true;
pinentryPackage = pkgs.pinentry-rofi;
};
catppuccin.delta = {
enable = true;
flavor = "mocha";
};
}

View file

@ -0,0 +1,49 @@
{
pkgs,
inputs,
...
}: {
programs.neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
withNodeJs = true;
withPython3 = true;
withRuby = true;
extraPackages = with pkgs; [
# Compilers
gcc
go
dotnet-sdk
# Rust
rustc
cargo
# Nix
nixd
inputs.alejandra.defaultPackage.${pkgs.system}
deadnix
statix
# Utils
unzip
gnumake
wl-clipboard
fd
tree-sitter
wget
imagemagick
];
extraPython3Packages = pyPkgs:
with pyPkgs; [
pip
];
extraLuaPackages = luaPkgs:
with luaPkgs; [
magick
];
};
}

View file

@ -0,0 +1,93 @@
{lib, ...}: {
programs.htop.enable = true;
programs.btop.enable = true;
programs.fastfetch.enable = true;
programs.eza.enable = true;
programs.eza.git = true;
programs.eza.icons = "auto";
programs.ripgrep.enable = true;
programs.bat.enable = true;
programs.fish = {
enable = true;
shellAliases = {
ls = "eza -laghHUum@ --sort name --group-directories-first --git --icons";
tree = "eza -laghHUumRT@ --sort name --group-directories-first --git --icons";
nixos-rebuild = "sudo nixos-rebuild --flake ~/git/flake#wahnix";
};
};
programs.starship = {
enable = true;
enableFishIntegration = true;
enableTransience = true;
settings = {
add_newline = true;
format = lib.concatStrings ["$username@$hostname" " " "$directory" " " "$all$character"];
right_format = "$cmd_duration";
directory = {
format = "[$path]($style)[$read_only]($read_only_style)";
read_only = " 🔒";
};
hostname = {
ssh_only = false;
format = "[$hostname]($style)";
};
username = {
show_always = true;
format = "[$user]($style)";
};
shell = {
disabled = false;
};
status = {
disabled = false;
};
};
};
programs.atuin = {
enable = true;
daemon.enable = true;
settings = {
dialect = "us";
timezone = "local";
auto_sync = true;
update_check = false;
sync_address = "https://atuin.relms.dev";
sync_frequency = "10m";
filter_mode = "workspace";
workspaces = true;
style = "auto";
show_preview = true;
show_help = true;
show_tabs = true;
enter_accept = false;
keymap_mode = "vim-normal";
};
};
catppuccin = {
fish = {
enable = true;
flavor = "mocha";
};
starship = {
enable = true;
flavor = "mocha";
};
btop = {
enable = true;
flavor = "mocha";
};
bat = {
enable = true;
flavor = "mocha";
};
};
}

View file

@ -0,0 +1,465 @@
{
self,
pkgs,
inputs,
lib,
config,
...
}: {
wayland.windowManager.hyprland = {
enable = true;
systemd.enable = false;
xwayland.enable = true;
settings = {
"$mod" = "SUPER";
exec-once = [
"hyprctl setcursor 24"
];
monitor = [
"eDP-1, 2560x1600@240, 0x0, 1.25"
];
bind = [
"$mod, Return, exec, kitty"
"$mod, B, exec, firefox"
"$mod, Space, exec, rofi -show drun"
"$mod, C, exec, rofi -show calc"
"$mod, P, exec, rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu"
"$mod, 1, workspace, 1"
"$mod, 2, workspace, 2"
"$mod, 3, workspace, 3"
"$mod, 4, workspace, 4"
"$mod, 5, workspace, 5"
"$mod, 6, workspace, 6"
"$mod, 7, workspace, 7"
"$mod, 8, workspace, 8"
"$mod, 9, workspace, 9"
"$mod_SHIFT, 1, movetoworkspacesilent, 1"
"$mod_SHIFT, 2, movetoworkspacesilent, 2"
"$mod_SHIFT, 3, movetoworkspacesilent, 3"
"$mod_SHIFT, 4, movetoworkspacesilent, 4"
"$mod_SHIFT, 5, movetoworkspacesilent, 5"
"$mod_SHIFT, 6, movetoworkspacesilent, 6"
"$mod_SHIFT, 7, movetoworkspacesilent, 7"
"$mod_SHIFT, 8, movetoworkspacesilent, 8"
"$mod_SHIFT, 9, movetoworkspacesilent, 9"
"$mod_SHIFT, left, movewindow, l"
"$mod_SHIFT, right, movewindow, r"
"$mod_SHIFT, up, movewindow, u"
"$mod_SHIFT, down, movewindow, d"
"$mod, left, resizeactive, -20 0"
"$mod, right, resizeactive, 20 0"
"$mod, up, resizeactive, 0 -20"
"$mod, down, resizeactive, 0 20"
"$mod_SHIFT, S, setfloating"
"$mod_SHIFT, T, settiled"
"$mod_SHIFT, F, fullscreen"
"$mod, V, killactive"
"$mod_ALT, Q, exec, loginctl terminate-user \"\""
"$mod_ALT, R, exec, hyprctl reload"
];
bindm = [
"$mod, mouse:272, movewindow"
];
general = {
border_size = 1;
gaps_out = "0, 8, 8, 8";
};
dwindle = {
preserve_split = true;
smart_split = false;
smart_resizing = false;
};
decoration = {
rounding = 10;
shadow = {
range = 5;
};
};
gestures = {
workspace_swipe = true;
workspace_swipe_create_new = true;
workspace_swipe_min_speed_to_force = 0;
};
misc = {
font_family = "SFProDisplay Nerd Font";
};
};
};
programs.waybar = {
enable = true;
systemd.enable = true;
package = pkgs.waybar.overrideAttrs (prev: {
version = "git";
mesonFlags = prev.mesonFlags ++ (lib.mapAttrsToList lib.mesonEnable {"cava" = false;});
src = pkgs.fetchFromGitHub {
owner = "Alexays";
repo = "Waybar";
rev = "ac08b752e38986f4ddcc13d257aea2fafcedbc92";
sha256 = "sha256-sbzyQjOag5OC7rSrMW68srjd1k62i9qLmtmFHVu73eA=";
};
patches = [];
});
settings = {
mainBar = {
layer = "top";
position = "top";
margin = "8";
modules-left = ["custom/nixicon" "hyprland/workspaces" "hyprland/window"];
modules-center = ["clock"];
modules-right = ["tray"];
"custom/nixicon" = {
format = " ";
tooltip = false;
};
clock = {
interval = 1;
locale = "en_US.utf8";
format = "{:L%r}";
format-alt = "{:L%r, %A, %B %d %Y}";
timezone = "America/Los_Angeles";
tooltip-format = "<tt><small>{calendar}</small></tt>";
calendar = {
mode = "year";
mode-mon-col = 3;
weeks-pos = "right";
format = {
months = "<span color='#fab387'><b>{}</b></span>";
days = "<span color='#f5e0dc'><b>{}</b></span>";
weeks = "<span color='#a6e3a1'><b>W{}</b></span>";
weekdays = "<span color='#f9e2af'><b>{}</b></span>";
today = "<span color='#f38ba8'><b><u>{}</u></b></span>";
};
};
};
"hyprland/workspaces" = {
active-only = false;
all-outputs = true;
persistent-workspaces = {
"*" = 9;
};
};
"hyprland/window" = {
icon = true;
max-length = 50;
};
tray = {
icon-size = 21;
spacing = 10;
show-passive-items = true;
};
};
};
style = ''
* {
font-family: "SF ProDisplay Nerd Font";
border: none;
border-radius: 0;
}
window#waybar {
border-radius: 10px;
}
tooltip {
background-color: #1e1e2e;
border: 1px solid #f5c2e7;
border-radius: 10px;
}
#window {
margin-left: 10px;
}
#custom-nixicon {
font-size: 24px;
color: #7EBAE4;
}
#workspaces {
margin-top: 5px;
margin-bottom: 5px;
}
#workspaces button {
background-color: #313244;
border-bottom-style: solid;
border-color: #000000;
border-width: 3px;
}
#workspaces button.empty {
border-bottom-style: none;
}
#workspaces button.active {
border-bottom-style: solid;
border-color: white;
border-width: 3px;
}
#workspaces button.urgent {
border-bottom-style: solid;
border-color: red;
border-width: 3px;
animation: blinker 1s step-start infinite;
}
#workspaces button:nth-child(1) {
border-radius: 5px 0px 0px 5px;
}
#workspaces button:nth-child(9) {
border-radius: 0px 5px 5px 0px;
}
#tray {
border-radius: 0px 5px 5px 0px;
margin: 5px;
padding: 5px;
background-color: #313244;
}
@keyframes blinker {
50% {
opacity: 0;
}
}
'';
};
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
font = "SFProDisplay Nerd Font 10";
location = "center";
terminal = "${pkgs.kitty}/bin/kitty";
extraConfig = {
modi = "run,drun,window,calc";
show-icons = true;
drun-display-format = "{icon} {name}";
location = 0;
disable-history = false;
hide-scrollbar = true;
display-drun = " Apps ";
display-run = " Run ";
display-window = " 󰕰 Window";
display-calc = " Calc";
sidebar-mode = true;
};
theme = let
inherit (config.lib.formats.rasi) mkLiteral;
in {
listview = {
columns = 1;
lines = 15;
};
window = {
border-color = mkLiteral "#f5c2e7";
border-radius = mkLiteral "10px";
};
"element selected" = {
background-color = mkLiteral "#313244";
};
};
plugins = with pkgs; [
rofi-power-menu
(rofi-calc.override
{rofi-unwrapped = rofi-wayland-unwrapped;})
];
};
programs.hyprlock.enable = true;
# services.hypridle.enable = true;
services.mako = {
enable = true;
actions = true;
borderRadius = 10;
defaultTimeout = 5000;
font = "SFProDisplay Nerd Font 10";
};
services.xsettingsd = {
enable = true;
settings = {
"Gtk/CursorThemeName" = "catppuccin-mocha-pink-cursors";
"Gtk/CursorThemeSize" = 30;
"Xft/Hinting" = 0;
"Xft/HintStyle" = "hintnone";
"Xft/Antialias" = 1;
"Xft/RGBA" = "rgb";
};
};
xresources.properties = {
"Xft.antialias" = 1;
"Xft.hinting" = 0;
"Xft.rgba" = "rgb";
"Xft.hintstyle" = "hintnone";
};
services.flatpak.overrides = {
global = {
Context.sockets = ["wayland" "!x11" "!fallback-x11"];
Environment = {
XCURSOR_PATH = "/run/host/user-share/icons:/run/host/share/icons";
};
};
"com.discordapp.Discord".Context = {
sockets = ["x11"];
};
};
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
hyprcursor = {
enable = true;
size = 24;
};
size = 24;
};
gtk = {
enable = true;
font = {
package = inputs.apple-fonts.packages.${pkgs.system}.sf-pro-nerd;
name = "SFProDisplay Nerd Font";
size = 10;
};
};
qt = {
enable = true;
style.name = "kvantum";
platformTheme.name = "kvantum";
};
fonts.fontconfig = {
enable = true;
defaultFonts = {
emoji = ["Noto Color Emoji"];
monospace = ["SFMono Nerd Font"];
sansSerif = ["SFProDisplay Nerd Font"];
serif = ["SFProDisplay Nerd Font"];
};
};
catppuccin = {
gtk = {
enable = true;
gnomeShellTheme = true;
accent = "pink";
flavor = "mocha";
icon = {
enable = true;
accent = "pink";
flavor = "mocha";
};
};
cursors = {
enable = true;
accent = "pink";
flavor = "mocha";
};
hyprland = {
enable = true;
accent = "pink";
flavor = "mocha";
};
hyprlock = {
enable = true;
accent = "pink";
flavor = "mocha";
};
waybar = {
enable = true;
flavor = "mocha";
};
kvantum = {
enable = true;
accent = "pink";
flavor = "mocha";
};
mako = {
enable = true;
accent = "pink";
flavor = "mocha";
};
rofi = {
enable = true;
flavor = "mocha";
};
};
systemd.user.services = {
mako = {
Unit = {
Description = "mako";
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
};
Service = {
Type = "dbus";
BusName = "org.freedesktop.Notifications";
ExecStart = "${pkgs.mako}/bin/mako";
ExecReload = "${pkgs.mako}/bin/makoctl reload";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
Install = {
WantedBy = ["graphical-session.target"];
};
};
waybar = {
Unit = {
After = lib.mkForce ["graphical-session.target"];
};
};
};
home.sessionVariables.NIXOS_OZONE_WL = "1";
home.packages = with pkgs; [
hyprpicker
hyprsunset
# Fonts
inputs.apple-fonts.packages.${pkgs.system}.sf-pro-nerd
inputs.apple-fonts.packages.${pkgs.system}.sf-pro
inputs.apple-fonts.packages.${pkgs.system}.sf-mono-nerd
inputs.apple-fonts.packages.${pkgs.system}.sf-mono
noto-fonts-color-emoji
noto-fonts
self.packages.${pkgs.system}.nerd-fonts-sf-mono-ligatures
];
}

8
home/users/relms.nix Normal file
View file

@ -0,0 +1,8 @@
{
home.username = "relms";
home.homeDirectory = "/home/relms";
home.stateVersion = "24.11";
programs.home-manager.enable = true;
}

View file

@ -0,0 +1,97 @@
{
stdenv,
fetchurl,
fontforge,
unzip,
parallel,
python3,
libarchive,
p7zip,
}: let
sfMono = fetchurl {
url = "https://developer.apple.com/design/downloads/SF-Mono.dmg";
sha256 = "6d4a0b78e3aacd06f913f642cead1c7db4af34ed48856d7171a2e0b55d9a7945";
};
fontPatcher = fetchurl {
url = "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.3.0/FontPatcher.zip";
sha256 = "ce4284e7d1a8816d29bb3a358e33a44e55804792e7925ed0022ba1b3ab1a9d34";
};
ligaturizer = fetchurl {
url = "https://github.com/ToxicFrog/Ligaturizer/archive/refs/tags/v5.tar.gz";
sha256 = "da7c20e7622f7381e6905fbbed736dc50dd8515f412b040adbfe31dfd9b9efb4";
};
firaCode = fetchurl {
url = "https://github.com/tonsky/FiraCode/releases/download/6.2/Fira_Code_v6.2.zip";
sha256 = "0949915ba8eb24d89fd93d10a7ff623f42830d7c5ffc3ecbf960e4ecad3e3e79";
};
in
stdenv.mkDerivation {
pname = "nerd-fonts-sf-mono-ligatures";
version = "3.3.0";
src = sfMono;
buildInputs = [
fontforge
unzip
parallel
python3
libarchive
p7zip
];
unpackPhase = ''
# Extract SF Mono DMG
mkdir extracted
7z x ${sfMono} -oextracted
# Extract package contents
bsdtar xvPf extracted/SFMonoFonts/SF\ Mono\ Fonts.pkg
bsdtar xvPf SFMonoFonts.pkg/Payload
# Unzip FontPatcher
unzip ${fontPatcher}
# Unzip FiraCode
unzip ${firaCode} -d FiraCode
# Extract Ligaturizer
bsdtar xvPf ${ligaturizer}
'';
buildPhase = ''
mkdir -p patched
echo "Patching all fonts"
parallel -j$(nproc) python ./font-patcher -c {} -out patched ::: Library/Fonts/*.otf
mkdir -p otf
for f in FiraCode/ttf/*.ttf; do
file=$(basename "$f")
base=$(echo "$file" | cut -d. -f1)
fontforge -c "import fontforge; from sys import argv; f = fontforge.open(argv[1]); f.generate(argv[2])" "$f" "otf/$base.otf"
done
mkdir -p Ligaturizer-5/fonts/fira/distr/otf
cp otf/FiraCode*.otf Ligaturizer-5/fonts/fira/distr/otf
mkdir -p ligaturized
echo "Ligaturizing all fonts"
cd Ligaturizer-5
parallel -j$(nproc) fontforge -lang py -script ligaturize.py \
--output-dir ../ligaturized --output-name SFMonoNerdFont {} ::: ../patched/*.otf
cd ..
'';
installPhase = ''
mkdir -p $out/share/fonts/apple
cp ligaturized/*.otf $out/share/fonts/apple/
'';
meta = {
description = "Monospaced variant of San Francisco patched with Nerd Fonts and Fira Code ligatures";
license = "proprietary";
maintainers = ["relms"];
platforms = ["x86_64-linux" "aarch64-linux"];
};
}

318
pkgs/libraries/gtk4.nix Normal file
View file

@ -0,0 +1,318 @@
{
lib,
stdenv,
buildPackages,
substituteAll,
fetchurl,
pkg-config,
docutils,
gettext,
graphene,
gi-docgen,
meson,
mesonEmulatorHook,
ninja,
python3,
makeWrapper,
shared-mime-info,
isocodes,
glib,
cairo,
pango,
gdk-pixbuf,
gobject-introspection,
fribidi,
harfbuzz,
xorg,
libepoxy,
libxkbcommon,
libpng,
libtiff,
libjpeg,
libxml2,
gnome,
gsettings-desktop-schemas,
gst_all_1,
sassc,
trackerSupport ? stdenv.hostPlatform.isLinux,
tinysparql,
x11Support ? stdenv.hostPlatform.isLinux,
waylandSupport ? stdenv.hostPlatform.isLinux,
libGL,
vulkanSupport ? stdenv.hostPlatform.isLinux,
shaderc,
vulkan-loader,
vulkan-headers,
libdrm,
wayland,
wayland-protocols,
wayland-scanner,
xineramaSupport ? stdenv.hostPlatform.isLinux,
cupsSupport ? stdenv.hostPlatform.isLinux,
compileSchemas ? stdenv.hostPlatform.emulatorAvailable buildPackages,
cups,
libexecinfo,
broadwaySupport ? true,
testers,
darwinMinVersionHook,
libthai,
}: let
gtkCleanImmodulesCache = substituteAll {
src = ./hooks/clean-immodules-cache.sh;
gtk_module_path = "gtk-4.0";
gtk_binary_version = "4.0.0";
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "gtk4";
version = "4.17.0";
outputs = ["out" "dev"] ++ lib.optionals x11Support ["devdoc"];
outputBin = "dev";
setupHooks = [
./hooks/drop-icon-theme-cache.sh
gtkCleanImmodulesCache
];
src = fetchurl {
url = with finalAttrs; "mirror://gnome/sources/gtk/${lib.versions.majorMinor version}/gtk-${version}.tar.xz";
#hash = "sha256-gcCjde2XTxRnBGG2nJsTm7c/6LRS80iVVoAn5oCFn1M=";
hash = "sha256-787zVbXZA/xipwk0scZE85Zh48L/RMjFOo/Ntwx92X4=";
};
depsBuildBuild = [
pkg-config
];
nativeBuildInputs =
[
docutils # for rst2man, rst2html5
gettext
gobject-introspection
makeWrapper
meson
ninja
pkg-config
python3
sassc
gi-docgen
libxml2 # for xmllint
]
++ lib.optionals (compileSchemas && !stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
mesonEmulatorHook
]
++ lib.optionals waylandSupport [
wayland-scanner
]
++ lib.optionals vulkanSupport [
shaderc # for glslc
]
++ finalAttrs.setupHooks;
buildInputs =
[
libthai
libxkbcommon
libpng
libtiff
libjpeg
(libepoxy.override {inherit x11Support;})
isocodes
]
++ lib.optionals vulkanSupport [
vulkan-headers
libdrm
]
++ [
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-bad
fribidi
harfbuzz
]
++ (with xorg; [
libICE
libSM
libXcursor
libXdamage
libXi
libXrandr
libXrender
])
++ lib.optionals trackerSupport [
tinysparql
]
++ lib.optionals waylandSupport [
libGL
wayland
wayland-protocols
]
++ lib.optionals xineramaSupport [
xorg.libXinerama
]
++ lib.optionals cupsSupport [
cups
]
++ lib.optionals stdenv.hostPlatform.isMusl [
libexecinfo
];
#TODO: colord?
propagatedBuildInputs =
[
# Required by pkg-config files.
cairo
gdk-pixbuf
glib
graphene
pango
]
++ lib.optionals waylandSupport [
wayland
]
++ lib.optionals vulkanSupport [
vulkan-loader
]
++ [
# Required for GSettings schemas at runtime.
# Will be picked up by wrapGAppsHook4.
gsettings-desktop-schemas
];
mesonFlags =
[
# ../docs/tools/shooter.c:4:10: fatal error: 'cairo-xlib.h' file not found
(lib.mesonBool "documentation" x11Support)
"-Dbuild-tests=false"
(lib.mesonEnable "tracker" trackerSupport)
(lib.mesonBool "broadway-backend" broadwaySupport)
(lib.mesonEnable "vulkan" vulkanSupport)
(lib.mesonEnable "print-cups" cupsSupport)
(lib.mesonBool "x11-backend" x11Support)
]
++ lib.optionals (stdenv.hostPlatform.isDarwin && !stdenv.hostPlatform.isAarch64) [
"-Dmedia-gstreamer=disabled" # requires gstreamer-gl
];
doCheck = false; # needs X11
separateDebugInfo = stdenv.hostPlatform.isLinux;
# These are the defines that'd you'd get with --enable-debug=minimum (default).
# See: https://developer.gnome.org/gtk3/stable/gtk-building.html#extra-configuration-options
env =
{
NIX_CFLAGS_COMPILE = "-DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS";
}
// lib.optionalAttrs stdenv.hostPlatform.isMusl {
NIX_LDFLAGS = "-lexecinfo";
};
postPatch = ''
# this conditional gates the installation of share/gsettings-schemas/.../glib-2.0/schemas/gschemas.compiled.
substituteInPlace meson.build \
--replace 'if not meson.is_cross_build()' 'if ${lib.boolToString compileSchemas}'
files=(
build-aux/meson/gen-profile-conf.py
build-aux/meson/gen-visibility-macros.py
demos/gtk-demo/geninclude.py
gdk/broadway/gen-c-array.py
gdk/gen-gdk-gresources-xml.py
gtk/gen-gtk-gresources-xml.py
gtk/gentypefuncs.py
)
chmod +x ''${files[@]}
patchShebangs ''${files[@]}
'';
preInstall = ''
OLD_PATH="$PATH"
PATH="$PATH:$dev/bin" # so the install script finds gtk4-update-icon-cache
'';
postInstall =
''
PATH="$OLD_PATH"
''
+ lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
# The updater is needed for nixos env and it's tiny.
moveToOutput bin/gtk4-update-icon-cache "$out"
# Launcher
moveToOutput bin/gtk-launch "$out"
# TODO: patch glib directly
for f in $dev/bin/gtk4-encode-symbolic-svg; do
wrapProgram $f --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
done
''
+ lib.optionalString broadwaySupport ''
# Broadway daemon
moveToOutput bin/gtk4-broadwayd "$out"
'';
# Wrap demos
postFixup =
lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
demos=(gtk4-demo gtk4-demo-application gtk4-widget-factory)
for program in ''${demos[@]}; do
wrapProgram $dev/bin/$program \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share/gsettings-schemas/${finalAttrs.pname}-${finalAttrs.version}"
done
''
+ lib.optionalString x11Support ''
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
moveToOutput "share/doc" "$devdoc"
'';
passthru = {
updateScript = gnome.updateScript {
packageName = "gtk";
versionPolicy = "odd-unstable";
attrPath = "gtk4";
};
tests = {
pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
};
};
};
meta = with lib; {
description = "Multi-platform toolkit for creating graphical user interfaces";
longDescription = ''
GTK is a highly usable, feature rich toolkit for creating
graphical user interfaces which boasts cross platform
compatibility and an easy to use API. GTK it is written in C,
but has bindings to many other popular programming languages
such as C++, Python and C# among others. GTK is licensed
under the GNU LGPL 2.1 allowing development of both free and
proprietary software with GTK without any license fees or
royalties.
'';
homepage = "https://www.gtk.org/";
license = licenses.lgpl2Plus;
maintainers = teams.gnome.members ++ (with maintainers; [raskin]);
platforms = platforms.all;
changelog = "https://gitlab.gnome.org/GNOME/gtk/-/raw/${finalAttrs.version}/NEWS";
pkgConfigModules =
[
"gtk4"
]
++ lib.optionals broadwaySupport [
"gtk4-broadway"
]
++ lib.optionals stdenv.hostPlatform.isUnix [
"gtk4-unix-print"
]
++ lib.optionals waylandSupport [
"gtk4-wayland"
]
++ lib.optionals x11Support [
"gtk4-x11"
];
};
})

View file

@ -0,0 +1,15 @@
# shellcheck shell=bash
fixupOutputHooks+=(_gtkCleanImmodulesCache)
# Clean comments that link to generator of the file
_gtkCleanImmodulesCache() {
# gtk_module_path is where the modules are installed
# https://gitlab.gnome.org/GNOME/gtk/-/blob/3.24.24/gtk/gtkmodules.c#L68
# gtk_binary_version can be retrived with:
# pkg-config --variable=gtk_binary_version gtk+-3.0
local f="${prefix:?}/lib/@gtk_module_path@/@gtk_binary_version@/immodules.cache"
if [ -f "$f" ]; then
sed 's|Created by .*bin/gtk-query-|Created by bin/gtk-query-|' -i "$f"
fi
}

View file

@ -0,0 +1,19 @@
# shellcheck shell=bash
# Packages often run gtk-update-icon-cache to include their icons in themes icon cache.
# However, since each package is installed to its own prefix, the files will only collide.
dropIconThemeCache() {
if [[ -z "${dontDropIconThemeCache:-}" ]]; then
local icondir="${out:?}/share/icons"
if [[ -d "${icondir}" ]]; then
# App icons are supposed to go to hicolor theme, since it is a fallback theme as per [icon-theme-spec], but some might still choose to install stylized icons to other themes.
find "${icondir}" -name 'icon-theme.cache' -print0 \
| while IFS= read -r -d '' file; do
echo "Removing ${file}"
rm -f "${file}"
done
fi
fi
}
preFixupPhases="${preFixupPhases-} dropIconThemeCache"

Binary file not shown.

View file

@ -1,8 +0,0 @@
let
relms = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqJnbK9FjoPX7EYtXwG5QV8XfK7fcTfOWGFrfsQRj9z";
skynet = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMajj7jUSGbJgndndLYs1ZQi37WsZi7Foyj2xmfbGrnn";
crystal-gitlab = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBg8PGtAXNsZYmWLYCmIdv1rpezCXBZ/Z+XbVZ39m3vt";
in {
"gitlab-runners.age".publicKeys = [relms crystal-gitlab];
}

View file

@ -1,28 +0,0 @@
{
pkgs,
config,
...
}: {
age.secrets.gitlab-runner.file = ../../secrets/gitlab-runners.age;
services.gitlab-runner = {
enable = true;
services = {
alpha = {
description = "Relms-Alpha";
registrationConfigFile = config.age.secrets.gitlab-runner.path;
dockerImage = "alpine:latest";
};
beta = {
description = "Relms-Beta";
registrationConfigFile = config.age.secrets.gitlab-runner.path;
dockerImage = "alpine:latest";
};
charlie = {
description = "Relms-Charlie";
registrationConfigFile = config.age.secrets.gitlab-runner.path;
dockerImage = "alpine:latest";
};
};
};
}

4
system/desktop/apps.nix Normal file
View file

@ -0,0 +1,4 @@
{config, ...}: {
programs.nm-applet.enable = config.networking.networkmanager.enable;
services.blueman.enable = config.hardware.bluetooth.enable;
}

View file

@ -0,0 +1,10 @@
{pkgs, ...}: {
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time";
};
};
};
}

View file

@ -0,0 +1,55 @@
{pkgs, ...}: {
programs.hyprland = {
enable = true;
withUWSM = true;
};
programs.thunar.enable = true;
programs.xfconf.enable = true;
services.gvfs.enable = true;
services.tumbler.enable = true;
programs.thunar.plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-volman
thunar-media-tags-plugin
];
xdg.portal = {
enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
];
};
security.pam.services.hyprlock = {};
fonts.fontconfig = {
hinting = {
enable = false;
style = "none";
};
antialias = true;
subpixel = {
lcdfilter = "none";
rgba = "rgb";
};
};
environment.systemPackages = with pkgs; [hyprpolkitagent];
systemd = {
user.services.hyprpolkitagent = {
description = "hyprpolkitagent";
wantedBy = ["graphical-session.target"];
wants = ["graphical-session.target"];
after = ["graphical-session.target"];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
}

28
system/nix.nix Normal file
View file

@ -0,0 +1,28 @@
{pkgs, ...}: {
nixpkgs.config = {
allowUnfree = true;
};
nix = {
settings = {
auto-optimise-store = true;
trusted-users = ["root" "relms"];
};
extraOptions = ''
experimental-features = nix-command flakes
'';
};
hardware.enableRedistributableFirmware = true;
system.replaceDependencies = {
replacements = [
{
oldDependency = pkgs.gtk4;
newDependency = pkgs.callPackage ../pkgs/libraries/gtk4.nix {};
}
];
};
system.stateVersion = "24.11";
}

View file

@ -0,0 +1,3 @@
{
security.polkit.enable = true;
}

6
system/security/sudo.nix Normal file
View file

@ -0,0 +1,6 @@
{...}: {
security.sudo = {
enable = true;
extraConfig = "Defaults insults\nDefaults pwfeedback";
};
}

View file

@ -0,0 +1,3 @@
{
hardware.bluetooth.enable = true;
}

View file

@ -0,0 +1,6 @@
{
services.flatpak = {
enable = true;
update.onActivation = true;
};
}

View file

@ -0,0 +1,3 @@
{
networking.networkmanager.enable = true;
}

View file

@ -1,6 +1,4 @@
{...}: {
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;

View file

@ -2,13 +2,12 @@
users.users.relms = {
isNormalUser = true;
description = "Daryl Ronningen";
extraGroups = ["networkmanager" "wheel" "adbusers" "libvirtd"];
extraGroups = ["networkmanager" "wheel"];
shell = pkgs.fish;
hashedPassword = "$y$j9T$fiNCczxfgXQRoDCYlRlgy.$8GVAPknKhtp0kq6g9YnJCaAU1GxE9W9puogCXLLYD2/";
};
programs = {
fish.enable = true;
adb.enable = true;
};
programs.fish.enable = true;
time.timeZone = "America/Los_Angeles";
}

View file

@ -1,18 +0,0 @@
{
lib,
config,
pkgs,
...
}: {
home.stateVersion = "22.11";
programs.home-manager.enable = true;
programs.gpg.enable = true;
services.gpg-agent.enable = true;
services.gpg-agent.enableSshSupport = true;
services.gpg-agent.pinentryFlavor = "gnome3";
services.gnome-keyring.enable = true;
services.gnome-keyring.components = ["pkcs11" "secrets" "ssh"];
}

View file

@ -1,900 +0,0 @@
# See this wiki page for more info:
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
print_info() {
prin "┌────────────────────────────── OS Info ──────────────────────────────┐"
info "  OS" distro
info "  Kernel" kernel
info "  Uptime" uptime
info "  User" users
prin "  Hostname" "$(hostname)"
prin "├─────────────────────────── Hardware Info ───────────────────────────┤"
info " ﲾ Mainboard Model" model
info "  CPU" cpu
info "  GPU" gpu
info "  Memory" memory
info "  Disk" disk
info "  Resolution" resolution
info "  Network" network
prin "├─────────────────────────── Software Info ───────────────────────────┤"
info "  Desktop Environment" de
info "  Window Manager" wm
info "  Packages" packages
info "  Shell" shell
info "  Terminal" term
info "  GPU Driver" gpu_driver
info " 直Local IP" local_ip
info "  Locale" locale
prin "  Editor" "$(echo $EDITOR)"
prin "├─────────────────────────────── Theme ───────────────────────────────┤"
info "  Font" font
info "  Terminal Font" term_font
info " 嗀Theme" theme
info " 嗀WM Theme" wm_theme
info "  Icons" icons
prin "├─────────────────────────────── Media ───────────────────────────────┤"
info "  Media" song
[[ "$player" ]] && prin " 阮Media Player" "$player"
prin "└─────────────────────────────────────────────────────────────────────┘"
info cols
}
# Title
# Hide/Show Fully qualified domain name.
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --title_fqdn
title_fqdn="off"
# Kernel
# Shorten the output of the kernel function.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --kernel_shorthand
# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
#
# Example:
# on: '4.8.9-1-ARCH'
# off: 'Linux 4.8.9-1-ARCH'
kernel_shorthand="off"
# Distro
# Shorten the output of the distro function
#
# Default: 'off'
# Values: 'on', 'tiny', 'off'
# Flag: --distro_shorthand
# Supports: Everything except Windows and Haiku
distro_shorthand="off"
# Show/Hide OS Architecture.
# Show 'x86_64', 'x86' and etc in 'Distro:' output.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --os_arch
#
# Example:
# on: 'Arch Linux x86_64'
# off: 'Arch Linux'
os_arch="on"
# Uptime
# Shorten the output of the uptime function
#
# Default: 'on'
# Values: 'on', 'tiny', 'off'
# Flag: --uptime_shorthand
#
# Example:
# on: '2 days, 10 hours, 3 mins'
# tiny: '2d 10h 3m'
# off: '2 days, 10 hours, 3 minutes'
uptime_shorthand="off"
# Memory
# Show memory percentage in output.
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --memory_percent
#
# Example:
# on: '1801MiB / 7881MiB (22%)'
# off: '1801MiB / 7881MiB'
memory_percent="on"
# Change memory output unit.
#
# Default: 'mib'
# Values: 'kib', 'mib', 'gib'
# Flag: --memory_unit
#
# Example:
# kib '1020928KiB / 7117824KiB'
# mib '1042MiB / 6951MiB'
# gib: ' 0.98GiB / 6.79GiB'
memory_unit="gib"
# Packages
# Show/Hide Package Manager names.
#
# Default: 'tiny'
# Values: 'on', 'tiny' 'off'
# Flag: --package_managers
#
# Example:
# on: '998 (pacman), 8 (flatpak), 4 (snap)'
# tiny: '908 (pacman, flatpak, snap)'
# off: '908'
package_managers="on"
# Shell
# Show the path to $SHELL
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --shell_path
#
# Example:
# on: '/bin/bash'
# off: 'bash'
shell_path="on"
# Show $SHELL version
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --shell_version
#
# Example:
# on: 'bash 4.4.5'
# off: 'bash'
shell_version="on"
# CPU
# CPU speed type
#
# Default: 'bios_limit'
# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
# Flag: --speed_type
# Supports: Linux with 'cpufreq'
# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
speed_type="bios_limit"
# CPU speed shorthand
#
# Default: 'off'
# Values: 'on', 'off'.
# Flag: --speed_shorthand
# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
#
# Example:
# on: 'i7-6500U (4) @ 3.1GHz'
# off: 'i7-6500U (4) @ 3.100GHz'
speed_shorthand="off"
# Enable/Disable CPU brand in output.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --cpu_brand
#
# Example:
# on: 'Intel i7-6500U'
# off: 'i7-6500U (4)'
cpu_brand="on"
# CPU Speed
# Hide/Show CPU speed.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --cpu_speed
#
# Example:
# on: 'Intel i7-6500U (4) @ 3.1GHz'
# off: 'Intel i7-6500U (4)'
cpu_speed="on"
# CPU Cores
# Display CPU cores in output
#
# Default: 'logical'
# Values: 'logical', 'physical', 'off'
# Flag: --cpu_cores
# Support: 'physical' doesn't work on BSD.
#
# Example:
# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
# off: 'Intel i7-6500U @ 3.1GHz'
cpu_cores="logical"
# CPU Temperature
# Hide/Show CPU temperature.
# Note the temperature is added to the regular CPU function.
#
# Default: 'off'
# Values: 'C', 'F', 'off'
# Flag: --cpu_temp
# Supports: Linux, BSD
# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
# coretemp kernel module. This only supports newer Intel processors.
#
# Example:
# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
# off: 'Intel i7-6500U (4) @ 3.1GHz'
cpu_temp="on"
# GPU
# Enable/Disable GPU Brand
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --gpu_brand
#
# Example:
# on: 'AMD HD 7950'
# off: 'HD 7950'
gpu_brand="on"
# Which GPU to display
#
# Default: 'all'
# Values: 'all', 'dedicated', 'integrated'
# Flag: --gpu_type
# Supports: Linux
#
# Example:
# all:
# GPU1: AMD HD 7950
# GPU2: Intel Integrated Graphics
#
# dedicated:
# GPU1: AMD HD 7950
#
# integrated:
# GPU1: Intel Integrated Graphics
gpu_type="all"
# Resolution
# Display refresh rate next to each monitor
# Default: 'off'
# Values: 'on', 'off'
# Flag: --refresh_rate
# Supports: Doesn't work on Windows.
#
# Example:
# on: '1920x1080 @ 60Hz'
# off: '1920x1080'
refresh_rate="on"
# Gtk Theme / Icons / Font
# Shorten output of GTK Theme / Icons / Font
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --gtk_shorthand
#
# Example:
# on: 'Numix, Adwaita'
# off: 'Numix [GTK2], Adwaita [GTK3]'
gtk_shorthand="off"
# Enable/Disable gtk2 Theme / Icons / Font
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --gtk2
#
# Example:
# on: 'Numix [GTK2], Adwaita [GTK3]'
# off: 'Adwaita [GTK3]'
gtk2="on"
# Enable/Disable gtk3 Theme / Icons / Font
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --gtk3
#
# Example:
# on: 'Numix [GTK2], Adwaita [GTK3]'
# off: 'Numix [GTK2]'
gtk3="on"
# Enable/Disable Qt Theme / Icons / Font
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --qt
#
# Example:
# on: 'Breeze [Qt], Arc [GTK3]'
# off: 'Arc [GTK3]'
qt="on"
# IP Address
# Website to ping for the public IP
#
# Default: 'http://ident.me'
# Values: 'url'
# Flag: --ip_host
public_ip_host="http://ident.me"
# Public IP timeout.
#
# Default: '2'
# Values: 'int'
# Flag: --ip_timeout
public_ip_timeout=2
# Local IP interface
#
# Default: 'auto' (interface of default route)
# Values: 'auto', 'en0', 'en1'
# Flag: --ip_interface
local_ip_interface=('auto')
# Desktop Environment
# Show Desktop Environment version
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --de_version
de_version="on"
# Disk
# Which disks to display.
# The values can be any /dev/sdXX, mount point or directory.
# NOTE: By default we only show the disk info for '/'.
#
# Default: '/'
# Values: '/', '/dev/sdXX', '/path/to/drive'.
# Flag: --disk_show
#
# Example:
# disk_show=('/' '/dev/sdb1'):
# 'Disk (/): 74G / 118G (66%)'
# 'Disk (/mnt/Videos): 823G / 893G (93%)'
#
# disk_show=('/'):
# 'Disk (/): 74G / 118G (66%)'
#
disk_show=('/')
# Disk subtitle.
# What to append to the Disk subtitle.
#
# Default: 'mount'
# Values: 'mount', 'name', 'dir', 'none'
# Flag: --disk_subtitle
#
# Example:
# name: 'Disk (/dev/sda1): 74G / 118G (66%)'
# 'Disk (/dev/sdb2): 74G / 118G (66%)'
#
# mount: 'Disk (/): 74G / 118G (66%)'
# 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
# 'Disk (/mnt/Videos): 74G / 118G (66%)'
#
# dir: 'Disk (/): 74G / 118G (66%)'
# 'Disk (Local Disk): 74G / 118G (66%)'
# 'Disk (Videos): 74G / 118G (66%)'
#
# none: 'Disk: 74G / 118G (66%)'
# 'Disk: 74G / 118G (66%)'
# 'Disk: 74G / 118G (66%)'
disk_subtitle="mount"
# Disk percent.
# Show/Hide disk percent.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --disk_percent
#
# Example:
# on: 'Disk (/): 74G / 118G (66%)'
# off: 'Disk (/): 74G / 118G'
disk_percent="on"
# Song
# Manually specify a music player.
#
# Default: 'auto'
# Values: 'auto', 'player-name'
# Flag: --music_player
#
# Available values for 'player-name':
#
# amarok
# audacious
# banshee
# bluemindo
# clementine
# cmus
# deadbeef
# deepin-music
# dragon
# elisa
# exaile
# gnome-music
# gmusicbrowser
# gogglesmm
# guayadeque
# io.elementary.music
# iTunes
# Music
# juk
# lollypop
# MellowPlayer
# mocp
# mopidy
# mpd
# muine
# netease-cloud-music
# olivia
# playerctl
# pogo
# pragha
# qmmp
# quodlibet
# rhythmbox
# sayonara
# smplayer
# spotify
# strawberry
# tauonmb
# tomahawk
# vlc
# xmms2d
# xnoise
# yarock
music_player="auto"
# Format to display song information.
#
# Default: '%artist% - %album% - %title%'
# Values: '%artist%', '%album%', '%title%'
# Flag: --song_format
#
# Example:
# default: 'Song: Jet - Get Born - Sgt Major'
song_format="%artist% - %album% - %title%"
# Print the Artist, Album and Title on separate lines
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --song_shorthand
#
# Example:
# on: 'Artist: The Fratellis'
# 'Album: Costello Music'
# 'Song: Chelsea Dagger'
#
# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
song_shorthand="off"
# 'mpc' arguments (specify a host, password etc).
#
# Default: ''
# Example: mpc_args=(-h HOST -P PASSWORD)
mpc_args=()
# Text Colors
# Text Colors
#
# Default: 'distro'
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
# Flag: --colors
#
# Each number represents a different part of the text in
# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
#
# Example:
# colors=(distro) - Text is colored based on Distro colors.
# colors=(4 6 1 8 8 6) - Text is colored in the order above.
colors=(distro)
# Text Options
# Toggle bold text
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --bold
bold="on"
# Enable/Disable Underline
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --underline
underline_enabled="on"
# Underline character
#
# Default: '-'
# Values: 'string'
# Flag: --underline_char
underline_char="-"
# Info Separator
# Replace the default separator with the specified string.
#
# Default: ':'
# Flag: --separator
#
# Example:
# separator="->": 'Shell-> bash'
# separator=" =": 'WM = dwm'
separator=":"
# Color Blocks
# Color block range
# The range of colors to print.
#
# Default: '0', '15'
# Values: 'num'
# Flag: --block_range
#
# Example:
#
# Display colors 0-7 in the blocks. (8 colors)
# neofetch --block_range 0 7
#
# Display colors 0-15 in the blocks. (16 colors)
# neofetch --block_range 0 15
block_range=(0 15)
# Toggle color blocks
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --color_blocks
color_blocks="on"
# Color block width in spaces
#
# Default: '3'
# Values: 'num'
# Flag: --block_width
block_width=3
# Color block height in lines
#
# Default: '1'
# Values: 'num'
# Flag: --block_height
block_height=1
# Color Alignment
#
# Default: 'auto'
# Values: 'auto', 'num'
# Flag: --col_offset
#
# Number specifies how far from the left side of the terminal (in spaces) to
# begin printing the columns, in case you want to e.g. center them under your
# text.
# Example:
# col_offset="auto" - Default behavior of neofetch
# col_offset=7 - Leave 7 spaces then print the colors
col_offset="auto"
# Progress Bars
# Bar characters
#
# Default: '-', '='
# Values: 'string', 'string'
# Flag: --bar_char
#
# Example:
# neofetch --bar_char 'elapsed' 'total'
# neofetch --bar_char '-' '='
bar_char_elapsed="-"
bar_char_total="="
# Toggle Bar border
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --bar_border
bar_border="on"
# Progress bar length in spaces
# Number of chars long to make the progress bars.
#
# Default: '15'
# Values: 'num'
# Flag: --bar_length
bar_length=15
# Progress bar colors
# When set to distro, uses your distro's logo colors.
#
# Default: 'distro', 'distro'
# Values: 'distro', 'num'
# Flag: --bar_colors
#
# Example:
# neofetch --bar_colors 3 4
# neofetch --bar_colors distro 5
bar_color_elapsed="distro"
bar_color_total="distro"
# Info display
# Display a bar with the info.
#
# Default: 'off'
# Values: 'bar', 'infobar', 'barinfo', 'off'
# Flags: --memory_display
# --battery_display
# --disk_display
#
# Example:
# bar: '[---=======]'
# infobar: 'info [---=======]'
# barinfo: '[---=======] info'
# off: 'info'
memory_display="off"
battery_display="off"
disk_display="off"
# Backend Settings
# Image backend.
#
# Default: 'ascii'
# Values: 'ascii', 'caca', 'catimg', 'chafa', 'jp2a', 'iterm2', 'off',
# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty', 'ueberzug',
# 'viu'
# Flag: --backend
image_backend="ascii"
# Image Source
#
# Which image or ascii file to display.
#
# Default: 'auto'
# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")'
# Flag: --source
#
# NOTE: 'auto' will pick the best image source for whatever image backend is used.
# In ascii mode, distro ascii art will be used and in an image mode, your
# wallpaper will be used.
image_source="auto"
# Ascii Options
# Ascii distro
# Which distro's ascii art to display.
#
# Default: 'auto'
# Values: 'auto', 'distro_name'
# Flag: --ascii_distro
#
# NOTE: AIX, AlmaLinux, Alpine, Alter, Amazon, AmogOS, Anarchy, Android, Antergos, antiX, AOSC OS,
# AOSC OS/Retro, Aperio GNU/Linux, Apricity, Arch, ArchBox, Archcraft, ARCHlabs, ArchMerge,
# ArchStrike, ArcoLinux, Artix, Arya, Asahi, AsteroidOS, Bedrock, BigLinux, Bitrig, BlackArch,
# blackPanther, BLAG, BlankOn, BlueLight, Bodhi, bonsai, BSD, BunsenLabs, Cachy OS, Calculate,
# CalinixOS, Carbs, CBL-Mariner, CelOS, Center, CentOS, Chakra, ChaletOS, Chapeau, Chrom, Cleanjaro,
# Clear Linux OS, ClearOS, Clover, Condres, Container Linux by CoreOS, CRUX, Crystal Linux,
# Cucumber, CutefishOS, CyberOS, dahlia, DarkOs, Darwin, Debian, Deepin, DesaOS, Devuan, DracOS,
# DragonFly, Drauger, Elementary, Elive, EncryptOS, EndeavourOS, Endless, EuroLinux, Exherbo, Exodia
# Predator OS, Fedora, Feren, Finnix, FreeBSD, FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda,
# Gentoo, glaucus, gNewSense, GNOME, GNU, GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, HarDClanZ,
# Hash, Huayra, HydroOS, Hyperbola, iglunix, instantOS, IRIX, Itc, januslinux, Kaisen, Kali, KaOS,
# KDE, Kibojoe, Kogaion, Korora, KrassOS, KSLinux, Kubuntu, LangitKetujuh, LaxerOS, LEDE, LibreELEC,
# Linspire, Linux, Linux Lite, Linux Mint, Linux Mint Old, Live Raizo, LMDE, Lubuntu, Lunar, mac,
# Mageia, MagpieOS, Mandriva, Manjaro, MassOS, MatuusOS, Maui, Mer, Minix, MIRACLE LINUX, MX, Namib,
# Neptune, NetBSD, Netrunner, Nitrux, NixOS, NomadBSD, Nurunner, NuTyX, Obarun, OBRevenge, Open
# Source Media Center, OpenBSD, openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage,
# openSUSE, openSUSE Leap, openSUSE Tumbleweed, OpenWrt, OPNsense, Oracle, orchid, OS Elbrus,
# PacBSD, Parabola, parch, Pardus, Parrot, Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo,
# Peppermint, Pisi, PNM Linux, Pop!_OS, Porteus, PostMarketOS, Profelis SambaBOX, Proxmox, PuffOS,
# Puppy, PureOS, Q4OS, Qubes, Qubyt, Quibian, Radix, Raspbian, Reborn OS, Red Star, Redcore, Redhat,
# Refracted Devuan, Regata, Regolith, rocky, Rosa, Sabayon, sabotage, Sailfish, SalentOS,
# Scientific, semc, Septor, Serene, SharkLinux, ShastraOS, Siduction, SkiffOS, Slackware, SliTaz,
# SmartOS, Soda, Solus, Source Mage, Sparky, Star, SteamOS, Sulin, SunOS, SwagArch, t2, Tails,
# TeArch, TorizonCore, Trisquel, Twister, Ubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin,
# Ubuntu MATE, Ubuntu Studio, Ubuntu Sway, Ubuntu Touch, Ubuntu-GNOME, ubuntu_old02, Ultramarine
# Linux, Univalent, Univention, Uos, uwuntu, Venom, VNux, Void, VzLinux, wii-linux-ngx, Windows,
# Windows 10, Windows 11, XFerience, Xubuntu, yiffOS, Zorin have ascii logos.
# NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu have 'old' logo variants, use
# {distro}_old to use them.
# NOTE: alpine, android, aoscosretro, arch, arcolinux, artix, CalinixOS, centos, cleanjaro, crux,
# debian, dragonfly, elementary, fedora, freebsd, gentoo, guix, haiku, hyperbola, linuxlite,
# linuxmint, mac, mageia, manjaro, mx, netbsd, nixos, openbsd, opensuse, orchid, parabola, popos,
# postmarketos, pureos, Raspbian, rocky, slackware, sunos, ubuntu, void have 'small' logo variants,
# use {distro}_small to use them.
ascii_distro="auto"
# Ascii Colors
#
# Default: 'distro'
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
# Flag: --ascii_colors
#
# Example:
# ascii_colors=(distro) - Ascii is colored based on Distro colors.
# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
ascii_colors=(distro)
# Bold ascii logo
# Whether or not to bold the ascii logo.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --ascii_bold
ascii_bold="on"
# Image Options
# Image loop
# Setting this to on will make neofetch redraw the image constantly until
# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --loop
image_loop="off"
# Thumbnail directory
#
# Default: '~/.cache/thumbnails/neofetch'
# Values: 'dir'
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
# Crop mode
#
# Default: 'normal'
# Values: 'normal', 'fit', 'fill'
# Flag: --crop_mode
#
# See this wiki page to learn about the fit and fill options.
# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
crop_mode="normal"
# Crop offset
# Note: Only affects 'normal' crop mode.
#
# Default: 'center'
# Values: 'northwest', 'north', 'northeast', 'west', 'center'
# 'east', 'southwest', 'south', 'southeast'
# Flag: --crop_offset
crop_offset="center"
# Image size
# The image is half the terminal width by default.
#
# Default: 'auto'
# Values: 'auto', '00px', '00%', 'none'
# Flags: --image_size
# --size
image_size="auto"
# Catimg block size.
# Control the resolution of catimg.
#
# Default: '2'
# Values: '1', '2'
# Flags: --catimg_size
catimg_size="2"
# Gap between image and text
#
# Default: '3'
# Values: 'num', '-num'
# Flag: --gap
gap=3
# Image offsets
# Only works with the w3m backend.
#
# Default: '0'
# Values: 'px'
# Flags: --xoffset
# --yoffset
yoffset=0
xoffset=0
# Image background color
# Only works with the w3m backend.
#
# Default: ''
# Values: 'color', 'blue'
# Flag: --bg_color
background_color=
# Misc Options
# Stdout mode
# Turn off all colors and disables image backend (ASCII/Image).
# Useful for piping into another command.
# Default: 'off'
# Values: 'on', 'off'
stdout="off"

View file

@ -1,36 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [
gnome.nautilus
gnome.gnome-tweaks
gnome.gnome-software
adw-gtk3
papirus-icon-theme
(st.overrideAttrs (oldAttrs: {
src = builtins.fetchTarball {
url = "https://code.relms.dev/Relms/st/archive/50a72324cd9e81efb7985dca26ac77cf781305f0.tar.gz";
sha256 = "sha256:1kmn775fzgdlb6wp4c9zzkiqa4mjv84zyaash842yqwh72zal62y";
};
buildInputs = oldAttrs.buildInputs ++ [harfbuzz xorg.libXcursor];
}))
];
xresources.extraConfig = builtins.readFile (
pkgs.fetchFromGitHub {
owner = "solarized";
repo = "xresources";
rev = "0c426297b558965d462f0e45f87eb16a10586c53";
sha256 = "sha256-ljZHqFUnmsyBGPlrnb9pQ9X8yH24W9Z5ImohyuoaAcA=";
}
+ "/Xresources.dark"
);
programs.firefox = {
enable = true;
package = pkgs.firefox.override {
cfg = {
enableGnomeExtensions = true;
enableTridactylNative = true;
};
};
};
}

View file

@ -1,27 +0,0 @@
{pkgs, ...}: {
programs.neovim = {
enable = true;
package = pkgs.neovim;
defaultEditor = true;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
withNodeJs = true;
withPython3 = true;
withRuby = true;
extraPackages = with pkgs; [
wget
gcc12
tree-sitter
xsel
stylua
lua-language-server
actionlint
unzip
];
extraPython3Packages = pyPkgs:
with pyPkgs; [
pip
];
};
}

View file

@ -1,62 +0,0 @@
{lib, ...}: {
programs.htop.enable = true;
programs.hyfetch.enable = true;
programs.hyfetch.settings = {
preset = "genderfluid";
mode = "rgb";
color_align = {
mode = "horizontal";
};
};
home.file.neofetch = {
enable = true;
source = ./files/neofetch.conf;
target = ".config/neofetch/config.conf";
};
programs.exa.enable = true;
programs.fish.enable = true;
programs.fish.shellAliases = {
ls = "exa -laFghHUum@ --sort name --group-directories-first --git --icons";
tree = "exa -laFghHUumRT@ --sort name --group-directories-first --git --icons";
nixos-rebuild = "sudo nixos-rebuild --flake ~/git/flake#";
home-manager = "home-manager --flake ~/git/flake#relms";
};
programs.fish.interactiveShellInit = "fish_add_path ~/.spicetify";
programs.bash.enable = true;
programs.bash.enableVteIntegration = true;
programs.starship.enable = true;
programs.starship.enableFishIntegration = true;
programs.starship.enableBashIntegration = true;
programs.starship.settings = {
add_newline = true;
format = lib.concatStrings ["$username@$hostname" " " "$directory" " " "$all$character"];
right_format = "$cmd_duration";
directory = {
format = "[$path]($style)[$read_only]($read_only_style)";
read_only = " 🔒";
};
hostname = {
ssh_only = false;
format = "[$hostname]($style)";
};
username = {
show_always = true;
format = "[$user]($style)";
};
shell = {
disabled = false;
};
time = {
disabled = false;
};
status = {
disabled = false;
};
};
}

View file

@ -1,9 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [
(wineWowPackages.stagingFull.override {
vulkanSupport = true;
waylandSupport = true;
})
winetricks
];
}

5682
wahnix-facter.json Normal file

File diff suppressed because it is too large Load diff