diff --git a/base/default.nix b/base/default.nix deleted file mode 100644 index 2fd0713..0000000 --- a/base/default.nix +++ /dev/null @@ -1,106 +0,0 @@ -# Edet this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). -{ - config, - pkgs, - lib, - ... -}: { - imports = [ - # Include the results of the hardware scan. - ./hardware-configuration-custom.nix - ]; - - # Use the systemd-boot EFI boot loader. - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - boot.tmp.useTmpfs = true; - boot.kernelPackages = pkgs.linuxPackages_latest; - - networking.hostName = "posixlycorrect"; # Define your hostname. !!mover esto a platform - networking.networkmanager.enable = true; - - # Set your time zone. - time.timeZone = "America/Costa_Rica"; - - # The global useDHCP flag is deprecated, therefore explicitly set to false here. - # Per-interface useDHCP will be mandatory in the future, so this generated config - # replicates the default behaviour. - networking.useDHCP = false; - networking.interfaces.enp7s0.useDHCP = true; - networking.interfaces.wlp6s0.useDHCP = true; - - # Select internationalisation properties. - i18n.defaultLocale = "en_US.UTF-8"; - console = { - font = "Lat2-Terminus16"; - keyMap = "us"; - }; - - # Enable the X11 windowing system. - services.xserver = { - enable = true; - xkb.layout = "us"; - displayManager.startx.enable = true; - }; - services.libinput.enable = true; - - hardware.opengl.enable = true; - - # Enable sound. - sound.enable = true; - hardware.pulseaudio.enable = true; - - programs.zsh.enable = true; - environment.pathsToLink = ["/share/zsh"]; - - users = { - users.fabian = { - isNormalUser = true; - uid = 1002; # nunca cambiar mi ID de usuario - group = "fabian"; - shell = pkgs.zsh; - extraGroups = ["users" "wheel" "networkmanager" "dialout" "libvirtd"]; - }; - groups.fabian.gid = 1002; - }; - - services.udev.packages = [ - pkgs.android-udev-rules - ]; - - users.users.temp = { - isNormalUser = true; - extraGroups = ["wheel"]; - }; - - nixpkgs.config.allowUnfree = true; - - virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm; - virtualisation.libvirtd.qemu.ovmf.enable = true; - virtualisation.libvirtd.qemu.ovmf.packages = [pkgs.OVMFFull.fd]; - virtualisation.libvirtd.enable = true; - programs.dconf.enable = true; - # boot.kernelModules = [ "vfio" "vfio_iommu_type1" "vfio_pci" "vfio_virqfd" ]; - # boot.kernelParams = [ "amd_iommu=on" "iommu=pt" "vfio-pci.ids=1002:699f,1002:aae0" "video=efifb:off" ]; - virtualisation.libvirtd.onBoot = "start"; - - nix = { - package = pkgs.nixFlakes; - extraOptions = '' - experimental-features = nix-command flakes repl-flake - ''; - }; - - hardware.opengl.driSupport32Bit = true; - - services.openssh.enable = true; - - services.earlyoom = { - enable = true; - enableNotifications = true; - }; - - system.stateVersion = "21.11"; # No tocar esto -} diff --git a/base/hardware-configuration-custom.nix b/base/hardware-configuration-custom.nix deleted file mode 100644 index a9feac6..0000000 --- a/base/hardware-configuration-custom.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ - config, - lib, - pkgs, - modulesPath, - ... -}: let - subvol = subvol: { - device = "/dev/disk/by-uuid/645fdba0-5c03-4285-926b-facded1ee259"; - fsType = "btrfs"; - options = ["subvol=${subvol}" "compress=zstd" "noatime" "ssd"]; - }; -in { - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd = { - availableKernelModules = ["xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"]; - luks.devices."toplevel" = { - device = "/dev/disk/by-uuid/58277baa-90d4-4a5e-a658-1b918b89130a"; - preLVM = false; - }; - }; - - fileSystems = { - "/" = subvol "root"; - "/toplevel" = subvol "/"; - "/boot" = { - device = "/dev/disk/by-uuid/B007-B007"; - fsType = "vfat"; - options = ["umask=027"]; - }; - - "/extern" = { - device = "/dev/disk/by-uuid/7d8d3ec9-b456-4e2a-9396-551dcaf7705b"; - fsType = "btrfs"; - options = ["noatime" "compress=zstd"]; - }; - }; - - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/base/platforms/posixlycorrect.nix b/base/platforms/posixlycorrect.nix deleted file mode 100644 index 0967ef4..0000000 --- a/base/platforms/posixlycorrect.nix +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/flake.lock b/flake.lock index 44a5cb7..0d1197c 100644 --- a/flake.lock +++ b/flake.lock @@ -1,6 +1,539 @@ { "nodes": { + "attic": { + "inputs": { + "crane": "crane", + "flake-compat": "flake-compat_2", + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs", + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1720542474, + "narHash": "sha256-aKjJ/4l2I9+wNGTaOGRsuS3M1+IoTibqgEMPDikXm04=", + "owner": "zhaofengli", + "repo": "attic", + "rev": "6139576a3ce6bb992e0f6c3022528ec233e45f00", + "type": "github" + }, + "original": { + "owner": "zhaofengli", + "ref": "main", + "repo": "attic", + "type": "github" + } + }, + "authentik-nix": { + "inputs": { + "authentik-src": "authentik-src", + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "flake-utils": "flake-utils", + "napalm": "napalm", + "nixpkgs": [ + "nixpkgs" + ], + "poetry2nix": "poetry2nix", + "systems": "systems" + }, + "locked": { + "lastModified": 1725809370, + "narHash": "sha256-uUc+TbF17Q9H00aj1cbZGB25Tob6PpZ9M0RoY/jOo6s=", + "owner": "nix-community", + "repo": "authentik-nix", + "rev": "0fd076529b40e7fc7304a398618cab76ff7e96c3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "authentik-nix", + "type": "github" + } + }, + "authentik-src": { + "flake": false, + "locked": { + "lastModified": 1725718494, + "narHash": "sha256-X4Bwm7s6/8HcvKE+kyqwU+M1GEK/+RVHtDK1GpkuM4s=", + "owner": "goauthentik", + "repo": "authentik", + "rev": "f5580d311d01f2202b666f76931ed04f30b9ec30", + "type": "github" + }, + "original": { + "owner": "goauthentik", + "ref": "version/2024.8.1", + "repo": "authentik", + "type": "github" + } + }, + "cachix": { + "inputs": { + "devenv": "devenv", + "flake-compat": "flake-compat_4", + "nixpkgs": "nixpkgs_3", + "pre-commit-hooks": "pre-commit-hooks" + }, + "locked": { + "lastModified": 1719923519, + "narHash": "sha256-7Rhljj2fsklFRsu+eq7N683Z9qukmreMEj5C1GqCrSA=", + "owner": "cachix", + "repo": "cachix", + "rev": "4e9e71f78b9500fa6210cf1eaa4d75bdbab777c3", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "master", + "repo": "cachix", + "type": "github" + } + }, + "cachix_2": { + "inputs": { + "devenv": "devenv_2", + "flake-compat": [ + "conduwuit", + "cachix", + "devenv", + "flake-compat" + ], + "nixpkgs": [ + "conduwuit", + "cachix", + "devenv", + "nixpkgs" + ], + "pre-commit-hooks": [ + "conduwuit", + "cachix", + "devenv", + "pre-commit-hooks" + ] + }, + "locked": { + "lastModified": 1712055811, + "narHash": "sha256-7FcfMm5A/f02yyzuavJe06zLa9hcMHsagE28ADcmQvk=", + "owner": "cachix", + "repo": "cachix", + "rev": "02e38da89851ec7fec3356a5c04bc8349cae0e30", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "cachix", + "type": "github" + } + }, + "complement": { + "flake": false, + "locked": { + "lastModified": 1720637557, + "narHash": "sha256-oZz6nCmFmdJZpC+K1iOG2KkzTI6rlAmndxANPDVU7X0=", + "owner": "matrix-org", + "repo": "complement", + "rev": "0d14432e010482ea9e13a6f7c47c1533c0c9d62f", + "type": "github" + }, + "original": { + "owner": "matrix-org", + "ref": "main", + "repo": "complement", + "type": "github" + } + }, + "conduwuit": { + "inputs": { + "attic": "attic", + "cachix": "cachix", + "complement": "complement", + "crane": "crane_2", + "fenix": "fenix", + "flake-compat": "flake-compat_6", + "flake-utils": "flake-utils_4", + "liburing": "liburing", + "nix-filter": "nix-filter", + "nixpkgs": [ + "unstable" + ], + "rocksdb": "rocksdb" + }, + "locked": { + "lastModified": 1721105087, + "narHash": "sha256-t74TUSswsCkOdZCKjgP74qEHKg78ShKTkP6x9/zqYX4=", + "owner": "girlbossceo", + "repo": "conduwuit", + "rev": "c29197b3f457cf72197ef5251f9815107b2526d7", + "type": "github" + }, + "original": { + "owner": "girlbossceo", + "ref": "v0.4.5", + "repo": "conduwuit", + "type": "github" + } + }, + "crane": { + "inputs": { + "nixpkgs": [ + "conduwuit", + "attic", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717025063, + "narHash": "sha256-dIubLa56W9sNNz0e8jGxrX3CAkPXsq7snuFA/Ie6dn8=", + "owner": "ipetkov", + "repo": "crane", + "rev": "480dff0be03dac0e51a8dfc26e882b0d123a450e", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, + "crane_2": { + "inputs": { + "nixpkgs": [ + "conduwuit", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1720546058, + "narHash": "sha256-iU2yVaPIZm5vMGdlT0+57vdB/aPq/V5oZFBRwYw+HBM=", + "owner": "ipetkov", + "repo": "crane", + "rev": "2d83156f23c43598cf44e152c33a59d3892f8b29", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "ref": "master", + "repo": "crane", + "type": "github" + } + }, + "devenv": { + "inputs": { + "cachix": "cachix_2", + "flake-compat": [ + "conduwuit", + "cachix", + "flake-compat" + ], + "nix": "nix_2", + "nixpkgs": [ + "conduwuit", + "cachix", + "nixpkgs" + ], + "pre-commit-hooks": [ + "conduwuit", + "cachix", + "pre-commit-hooks" + ] + }, + "locked": { + "lastModified": 1719759336, + "narHash": "sha256-3a34VL/QnHprl5gMy9xlx6d8J+iNp+W88Ex8smkgH9M=", + "owner": "cachix", + "repo": "devenv", + "rev": "bb32aa986f2f695385e54428d0eaf7d05b31466e", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "devenv_2": { + "inputs": { + "flake-compat": [ + "conduwuit", + "cachix", + "devenv", + "cachix", + "flake-compat" + ], + "nix": "nix", + "nixpkgs": "nixpkgs_2", + "poetry2nix": "poetry2nix_2", + "pre-commit-hooks": [ + "conduwuit", + "cachix", + "devenv", + "cachix", + "pre-commit-hooks" + ] + }, + "locked": { + "lastModified": 1708704632, + "narHash": "sha256-w+dOIW60FKMaHI1q5714CSibk99JfYxm0CzTinYWr+Q=", + "owner": "cachix", + "repo": "devenv", + "rev": "2ee4450b0f4b95a1b90f2eb5ffea98b90e48c196", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "python-rewrite", + "repo": "devenv", + "type": "github" + } + }, + "fenix": { + "inputs": { + "nixpkgs": [ + "conduwuit", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1720852044, + "narHash": "sha256-3NBYz8VuXuKU+8ONd9NFafCNjPEGHIZQ2Mdoam1a4mY=", + "owner": "nix-community", + "repo": "fenix", + "rev": "5087b12a595ee73131a944d922f24d81dae05725", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "main", + "repo": "fenix", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "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-compat_3": { + "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_4": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_5": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_6": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "ref": "master", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1725234343, + "narHash": "sha256-+ebgonl3NbiKD2UD0x4BszCZQ6sTfL4xioaM49o5B3Y=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "567b938d64d4b4112ee253b9274472dc3a346eb6", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { + "inputs": { + "systems": [ + "authentik-nix", + "systems" + ] + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1689068808, + "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "ref": "main", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_5": { + "inputs": { + "systems": "systems_4" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_6": { + "inputs": { + "systems": "systems_5" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_7": { "locked": { "lastModified": 1659877975, "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", @@ -15,6 +548,29 @@ "type": "github" } }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "conduwuit", + "cachix", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "hm-isolation": { "locked": { "lastModified": 1675806557, @@ -37,11 +593,11 @@ ] }, "locked": { - "lastModified": 1720042825, - "narHash": "sha256-A0vrUB6x82/jvf17qPCpxaM+ulJnD8YZwH9Ci0BsAzE=", + "lastModified": 1725703823, + "narHash": "sha256-tDgM4d8mLK0Hd6YMB2w1BqMto1XBXADOzPEaLl10VI4=", "owner": "nix-community", "repo": "home-manager", - "rev": "e1391fb22e18a36f57e6999c7a9f966dc80ac073", + "rev": "208df2e558b73b6a1f0faec98493cb59a25f62ba", "type": "github" }, "original": { @@ -51,10 +607,197 @@ "type": "github" } }, + "homepage": { + "inputs": { + "flake-utils": "flake-utils_6", + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1725437989, + "narHash": "sha256-wxBIg9A4X3nvWpgpiG/MjkEIOH3Oxy4Qdhq50BF42jk=", + "ref": "master", + "rev": "a49523cc42d61e0dac0d3dcb01cc1ca3fad7070c", + "revCount": 19, + "type": "git", + "url": "https://git.posixlycorrect.com/fabian/homepage.git" + }, + "original": { + "ref": "master", + "type": "git", + "url": "https://git.posixlycorrect.com/fabian/homepage.git" + } + }, + "impermanence": { + "locked": { + "lastModified": 1725690722, + "narHash": "sha256-4qWg9sNh5g1qPGO6d/GV2ktY+eDikkBTbWSg5/iD2nY=", + "owner": "nix-community", + "repo": "impermanence", + "rev": "63f4d0443e32b0dd7189001ee1894066765d18a5", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "impermanence", + "type": "github" + } + }, + "liburing": { + "flake": false, + "locked": { + "lastModified": 1720798442, + "narHash": "sha256-gtPppAoksMLW4GuruQ36nf4EAqIA1Bs6V9Xcx8dBxrQ=", + "owner": "axboe", + "repo": "liburing", + "rev": "1d674f83b7d0f07553ac44d99a401b05853d9dbe", + "type": "github" + }, + "original": { + "owner": "axboe", + "ref": "master", + "repo": "liburing", + "type": "github" + } + }, + "mediawikiSkinCitizen": { + "flake": false, + "locked": { + "lastModified": 1724097552, + "narHash": "sha256-+o5FDWMrEqnva5qcdc45wAYyE2ZtUhEjygUGVt0HsaA=", + "owner": "StarCitizenTools", + "repo": "mediawiki-skins-Citizen", + "rev": "28cd4e18b52aed3270fe7b55bff4545c8314a687", + "type": "github" + }, + "original": { + "owner": "StarCitizenTools", + "ref": "v2.27.0", + "repo": "mediawiki-skins-Citizen", + "type": "github" + } + }, + "napalm": { + "inputs": { + "flake-utils": [ + "authentik-nix", + "flake-utils" + ], + "nixpkgs": [ + "authentik-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1725806412, + "narHash": "sha256-lGZjkjds0p924QEhm/r0BhAxbHBJE1xMOldB/HmQH04=", + "owner": "willibutz", + "repo": "napalm", + "rev": "b492440d9e64ae20736d3bec5c7715ffcbde83f5", + "type": "github" + }, + "original": { + "owner": "willibutz", + "ref": "avoid-foldl-stack-overflow", + "repo": "napalm", + "type": "github" + } + }, + "nix": { + "inputs": { + "flake-compat": "flake-compat_3", + "nixpkgs": [ + "conduwuit", + "cachix", + "devenv", + "cachix", + "devenv", + "nixpkgs" + ], + "nixpkgs-regression": "nixpkgs-regression" + }, + "locked": { + "lastModified": 1712911606, + "narHash": "sha256-BGvBhepCufsjcUkXnEEXhEVjwdJAwPglCC2+bInc794=", + "owner": "domenkozar", + "repo": "nix", + "rev": "b24a9318ea3f3600c1e24b4a00691ee912d4de12", + "type": "github" + }, + "original": { + "owner": "domenkozar", + "ref": "devenv-2.21", + "repo": "nix", + "type": "github" + } + }, + "nix-filter": { + "locked": { + "lastModified": 1710156097, + "narHash": "sha256-1Wvk8UP7PXdf8bCCaEoMnOT1qe5/Duqgj+rL8sRQsSM=", + "owner": "numtide", + "repo": "nix-filter", + "rev": "3342559a24e85fc164b295c3444e8a139924675b", + "type": "github" + }, + "original": { + "owner": "numtide", + "ref": "main", + "repo": "nix-filter", + "type": "github" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "authentik-nix", + "poetry2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1703863825, + "narHash": "sha256-rXwqjtwiGKJheXB43ybM8NwWB8rO2dSRrEqes0S7F5Y=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "5163432afc817cf8bd1f031418d1869e4c9d5547", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, + "nix-github-actions_2": { + "inputs": { + "nixpkgs": [ + "conduwuit", + "cachix", + "devenv", + "cachix", + "devenv", + "poetry2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1688870561, + "narHash": "sha256-4UYkifnPEw1nAzqqPOTL2MvWtm3sNGw1UTYTalkTcGY=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "165b1650b753316aa7f1787f3005a8d2da0f5301", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, "nixGL": { "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" + "flake-utils": "flake-utils_7", + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1713543440, @@ -70,7 +813,175 @@ "type": "github" } }, + "nix_2": { + "inputs": { + "flake-compat": [ + "conduwuit", + "cachix", + "devenv", + "flake-compat" + ], + "nixpkgs": [ + "conduwuit", + "cachix", + "devenv", + "nixpkgs" + ], + "nixpkgs-regression": "nixpkgs-regression_2" + }, + "locked": { + "lastModified": 1712911606, + "narHash": "sha256-BGvBhepCufsjcUkXnEEXhEVjwdJAwPglCC2+bInc794=", + "owner": "domenkozar", + "repo": "nix", + "rev": "b24a9318ea3f3600c1e24b4a00691ee912d4de12", + "type": "github" + }, + "original": { + "owner": "domenkozar", + "ref": "devenv-2.21", + "repo": "nix", + "type": "github" + } + }, "nixpkgs": { + "locked": { + "lastModified": 1711401922, + "narHash": "sha256-QoQqXoj8ClGo0sqD/qWKFWezgEwUL0SUh37/vY2jNhc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "07262b18b97000d16a4bdb003418bd2fb067a932", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1725233747, + "narHash": "sha256-Ss8QWLXdr2JCBPcYChJhz4xJm+h/xjl4G0c0XlP6a74=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz" + } + }, + "nixpkgs-regression": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + } + }, + "nixpkgs-regression_2": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1711460390, + "narHash": "sha256-akSgjDZL6pVHEfSE6sz1DNSXuYX6hq+P/1Z5IoYWs7E=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "44733514b72e732bd49f5511bd0203dea9b9a434", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1718811006, + "narHash": "sha256-0Y8IrGhRmBmT7HHXlxxepg2t8j1X90++qRN3lukGaIk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "03d771e513ce90147b65fe922d87d3a0356fc125", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1692808169, + "narHash": "sha256-x9Opq06rIiwdwGeK2Ykj69dNc2IvUH1fY55Wm7atwrE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9201b5ff357e781bf014d0330d18555695df7ba8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1719848872, + "narHash": "sha256-H3+EC5cYuq+gQW8y0lSrrDZfH71LB4DAf+TDFyvwCNA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "00d80d13810dbfea8ab4ed1009b09100cca86ba8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1719426051, + "narHash": "sha256-yJL9VYQhaRM7xs0M867ZFxwaONB9T2Q4LnGo1WovuR4=", + "path": "/nix/store/f0ddmw6s86y567yg06h5019z72szbzch-source", + "rev": "89c49874fb15f4124bf71ca5f42a04f2ee5825fd", + "type": "path" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1660551188, "narHash": "sha256-a1LARMMYQ8DPx1BgoI/UN4bXe12hhZkCNqdxNi6uS0g=", @@ -85,13 +996,13 @@ "type": "github" } }, - "nixpkgs_2": { + "nixpkgs_6": { "locked": { - "lastModified": 1725001927, - "narHash": "sha256-eV+63gK0Mp7ygCR0Oy4yIYSNcum2VQwnZamHxYTNi+M=", + "lastModified": 1725693463, + "narHash": "sha256-ZPzhebbWBOr0zRWW10FfqfbJlan3G96/h3uqhiFqmwg=", "owner": "nixos", "repo": "nixpkgs", - "rev": "6e99f2a27d600612004fbd2c3282d614bfee6421", + "rev": "68e7dce0a6532e876980764167ad158174402c6f", "type": "github" }, "original": { @@ -103,11 +1014,11 @@ }, "nur": { "locked": { - "lastModified": 1725475632, - "narHash": "sha256-is3Pft+K3MLR+nFQcjzmfvi4SVrguP7yDadfcFM0tQo=", + "lastModified": 1725824564, + "narHash": "sha256-tl7QZx6moG1rT8drttY4C/bztng1TafIr036Bf8yzeo=", "owner": "nix-community", "repo": "NUR", - "rev": "d7ea0f74c7194ded318f12320724f481899d196a", + "rev": "4ade93389a0440e7e65f96cbaa2d515d56f9f99e", "type": "github" }, "original": { @@ -116,23 +1027,244 @@ "type": "github" } }, + "poetry2nix": { + "inputs": { + "flake-utils": [ + "authentik-nix", + "flake-utils" + ], + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "authentik-nix", + "nixpkgs" + ], + "systems": [ + "authentik-nix", + "systems" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1725532428, + "narHash": "sha256-dCfawQDwpukcwQw++Cn/3LIh/RZMmH+k3fm91Oc5Pf0=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "a313fd7169ae43ecd1a2ea2f1e4899fe3edba4d2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, + "poetry2nix_2": { + "inputs": { + "flake-utils": "flake-utils_3", + "nix-github-actions": "nix-github-actions_2", + "nixpkgs": [ + "conduwuit", + "cachix", + "devenv", + "cachix", + "devenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1692876271, + "narHash": "sha256-IXfZEkI0Mal5y1jr6IRWMqK8GW2/f28xJenZIPQqkY0=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "d5006be9c2c2417dafb2e2e5034d83fabd207ee3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat_5", + "gitignore": "gitignore", + "nixpkgs": [ + "conduwuit", + "cachix", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable_2" + }, + "locked": { + "lastModified": 1719259945, + "narHash": "sha256-F1h+XIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "rocksdb": { + "flake": false, + "locked": { + "lastModified": 1720900786, + "narHash": "sha256-Vta9Um/RRuWwZ46BjXftV06iWLm/j/9MX39emXUvSAY=", + "owner": "girlbossceo", + "repo": "rocksdb", + "rev": "911f4243e69c2e320a7a209bf1f5f3ff5f825495", + "type": "github" + }, + "original": { + "owner": "girlbossceo", + "ref": "v9.4.0", + "repo": "rocksdb", + "type": "github" + } + }, "root": { "inputs": { + "authentik-nix": "authentik-nix", + "conduwuit": "conduwuit", + "flake-utils": "flake-utils_5", "hm-isolation": "hm-isolation", "home-manager": "home-manager", + "homepage": "homepage", + "impermanence": "impermanence", + "mediawikiSkinCitizen": "mediawikiSkinCitizen", "nixGL": "nixGL", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_6", "nur": "nur", - "unstable": "unstable" + "unstable": "unstable", + "vpsadminos": "vpsadminos" + } + }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1720717809, + "narHash": "sha256-6I+fm+nTLF/iaj7ffiFGlSY7POmubwUaPA/Wq0Bm53M=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "ffbc5ad993d5cd2f3b8bcf9a511165470944ab91", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_5": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "authentik-nix", + "poetry2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719749022, + "narHash": "sha256-ddPKHcqaKCIFSFc/cvxS14goUhCOAwsM1PbMr0ZtHMg=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "8df5ff62195d4e67e2264df0b7f5e8c9995fd0bd", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" } }, "unstable": { "locked": { - "lastModified": 1725103162, - "narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=", + "lastModified": 1725634671, + "narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=", "owner": "nixos", "repo": "nixpkgs", - "rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b", + "rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c", "type": "github" }, "original": { @@ -141,6 +1273,21 @@ "repo": "nixpkgs", "type": "github" } + }, + "vpsadminos": { + "locked": { + "lastModified": 1725810385, + "narHash": "sha256-+6UULi05KMHmLfhlrNGhMdLZUoQeC5Dc1nLFdINyeyI=", + "owner": "vpsfreecz", + "repo": "vpsadminos", + "rev": "37c5eb47ca3f11deac83e4ada20a6c21d5487f29", + "type": "github" + }, + "original": { + "owner": "vpsfreecz", + "repo": "vpsadminos", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 90e0a58..1afd240 100644 --- a/flake.nix +++ b/flake.nix @@ -12,77 +12,121 @@ impermanence.url = "github:nix-community/impermanence"; hm-isolation.url = "github:3442/hm-isolation"; nixGL.url = "github:guibou/nixGL"; - flake-utils.url = "github:numtide/flake-utils"; + vpsadminos.url = "github:vpsfreecz/vpsadminos"; + + homepage.url = "git+https://git.posixlycorrect.com/fabian/homepage.git?ref=master"; + + conduwuit = { + url = "github:girlbossceo/conduwuit?ref=v0.4.5"; + #FIXME: Podrá volver a "nixpkgs" una vez que rocksdb.enableLiburing llegue a stable + inputs.nixpkgs.follows = "unstable"; + }; + + authentik-nix = { + url = "github:nix-community/authentik-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + mediawikiSkinCitizen = { + url = "github:StarCitizenTools/mediawiki-skins-Citizen/v2.27.0"; + flake = false; + }; }; - outputs = { + outputs = flakes @ { self, nixpkgs, unstable, home-manager, nur, + impermanence, hm-isolation, nixGL, - ... + flake-utils, + vpsadminos, + homepage, + conduwuit, + mediawikiSkinCitizen, + authentik-nix, }: let system = "x86_64-linux"; - pkgs = import nixpkgs { - inherit system; - }; - - inherit (pkgs) lib; - - base = platform: { - name = platform; - value = nixpkgs.lib.nixosSystem { + importPkgs = flake: + import flake { inherit system; - modules = [(import ./base)]; + config = import ./pkgs/config nixpkgs.lib; + overlays = [nur.overlay self.overlays.default]; }; + + pkgs = importPkgs nixpkgs; + + inherit (pkgs.local.lib) importAll; + + local = import ./pkgs; + in + with pkgs.lib; { + formatter.${system} = pkgs.alejandra; + packages.${system} = pkgs.local; + + overlays.default = final: prev: let + locals = local final prev; + in + locals.override + // { + local = locals; + unstable = importPkgs unstable; + }; + + nixosConfigurations = let + nixosSystem = {modules}: + makeOverridable nixpkgs.lib.nixosSystem { + inherit modules pkgs system; + + specialArgs = { + inherit flakes; + }; + }; + + hostConfig = host: + nixosSystem { + modules = [ + ./sys + host + ]; + }; + in + mapAttrs (_: hostConfig) (importAll {root = ./sys/platforms;}); + + homeConfigurations = let + registry = {...}: { + config.nix.registry = mapAttrs (_: + value { + flake = value; + }) + flakes; + }; + + home = platform: + home-manager.lib.homeManagerConfiguration { + inherit pkgs; + + modules = [ + ./home + platforms + registry + hm-isolation.homeManagerModule + ]; + }; + + platformHome = platform: let + value = home platform; + in { + inherit value; + name = "${value.config.home.username}@${value.config.local.hostname}"; + }; + in + mapAttrs' (_: platformHome) (importAll {root = ./home/platforms;}); }; - - home = platform: { - name = "fabian@${platform}"; - value = home-manager.lib.homeManagerConfiguration { - inherit pkgs; - - modules = [ - (import ./home { - inherit self nixpkgs unstable hm-isolation nixGL; - }) - - ./home/platforms/${platform}.nix - - { - config.local = {inherit platform;}; - } - ]; - }; - }; - - localPkgs = import ./pkgs; - - platforms = domain: - map - (lib.removeSuffix ".nix") - (lib.attrNames (builtins.readDir ./${domain}/platforms)); - - configs = domain: builder: - lib.listToAttrs - (map builder (platforms domain)); - in { - nixosConfigurations = configs "base" base; - homeConfigurations = configs "home" home; - packages.${system} = localPkgs pkgs; - formatter.${system} = pkgs.alejandra; - - overlay = self: super: { - unstable = import unstable { - inherit (super) config system; - }; - local = localPkgs self; - }; - }; } diff --git a/home/accounts.nix b/home/accounts.nix deleted file mode 100644 index 97e7647..0000000 --- a/home/accounts.nix +++ /dev/null @@ -1,82 +0,0 @@ -{ - lib, - config, - ... -}: -with lib; { - config = mkIf (!config.home.isolation.active) { - accounts.email.maildirBasePath = "${config.home.homeDirectory}/mail"; - accounts.email.accounts = { - "default" = { - address = "fabian@posixlycorrect.com"; - userName = "fabianmontero@fastmail.com"; - realName = "fabian"; - primary = true; - flavor = "fastmail.com"; - - smtp = { - host = "smtp.fastmail.com"; - port = 465; - }; - imap = { - host = "imap.fastmail.com"; - port = 993; - tls.enable = true; - }; - - passwordCommand = "gpg -d ${config.home.homeDirectory}/secrets/fastmail.password.gpg 2> /dev/null"; - - gpg = { - encryptByDefault = true; - signByDefault = true; - key = "7AA277E604A4173916BBB4E91FFAC35E1798174F"; - }; - - thunderbird = { - enable = true; - settings = id: { - "mail.openpgp.allow_external_gnupg" = true; - }; - }; - neomutt = { - enable = true; - }; - - mbsync = { - enable = true; - create = "both"; - expunge = "both"; - remove = "both"; - }; - }; - }; - - programs = { - mbsync.enable = true; - thunderbird = { - enable = true; - profiles = { - "default" = { - isDefault = true; - }; - }; - }; - neomutt = { - enable = true; - sort = "date-received"; - vimKeys = true; - sidebar = { - enable = true; - }; - #settings = { - # maildir_check_cur = "yes"; - #}; - extraConfig = '' - mailboxes `find ~/mail/ -type d -name cur -printf '%h '` - timeout-hook 'echo `mbsync -a`' - startup-hook 'echo `mbsync -a`' - ''; - }; - }; - }; -} diff --git a/home/allowUnfreeWhitelist.nix b/home/allowUnfreeWhitelist.nix deleted file mode 100644 index a71519f..0000000 --- a/home/allowUnfreeWhitelist.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: -with lib; { - nixpkgs.config.allowUnfreePredicate = pkg: - builtins.elem (lib.getName pkg) [ - "discord" - "pycharm-professional" - "rar" - "spotify" - "spotify-unwrapped" - "steam" - "steam-original" - "steam-run" - "teams" - "vscode-extension-ms-vscode-cpptools" - "vmware-horizon-client" - "zoom" - ]; -} diff --git a/home/apps/default.nix b/home/apps/default.nix deleted file mode 100644 index 9155e3a..0000000 --- a/home/apps/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -with lib; let - cfg = config.local.apps; -in { - options.local.apps.enable = mkEnableOption "Applications and tools"; - imports = [ - ./library.nix - ./steam - ./terminal - ./virtmanager.nix - ]; -} diff --git a/home/apps/library.nix b/home/apps/library.nix deleted file mode 100644 index ffc3f5b..0000000 --- a/home/apps/library.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -with lib; let - cfg = config.local.apps.defaultApps; -in { - options.local.apps.defaultApps.enable = mkEnableOption "Default app library"; - config = mkIf cfg.enable { - home.packages = with pkgs; [ - chromium - darktable - deluge - discord - element-desktop - firefox - gperftools - gwenview - helix - libreoffice-fresh - lutris - mpv - neovim - obs-studio - openrct2 - pavucontrol - pdfarranger - prismlauncher - qpdfview - runelite - spotify - tdesktop - vlc - vpsfree-client - vscodium-fhs - zola - zoom-us - ]; - - xdg.mimeApps.defaultApplications = { - "application/x-extension-htm" = ["firefox.desktop"]; - "application/x-extension-html" = ["firefox.desktop"]; - "application/x-extension-shtml" = ["firefox.desktop"]; - "application/x-extension-xht" = ["firefox.desktop"]; - "application/x-extension-xhtml" = ["firefox.desktop"]; - "application/xhtml+xml" = ["firefox.desktop"]; - "text/html" = ["firefox.desktop"]; - "x-scheme-handler/http" = ["firefox.desktop"]; - "x-scheme-handler/https" = ["firefox.desktop"]; - "application/pdf" = ["qpdfview.desktop"]; - }; - }; -} diff --git a/home/apps/steam/default.nix b/home/apps/steam/default.nix deleted file mode 100644 index 534d4ae..0000000 --- a/home/apps/steam/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: -with lib; let - cfg = config.local.apps.steam; -in { - options.local.apps.steam.enable = mkEnableOption "Steam"; - config = mkIf cfg.enable { - home.packages = [ - (pkgs.callPackage ./package.nix {}) - pkgs.protonup - pkgs.winetricks - pkgs.protontricks - ]; - }; -} diff --git a/home/apps/steam/package.nix b/home/apps/steam/package.nix deleted file mode 100644 index 19f241f..0000000 --- a/home/apps/steam/package.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ - writeShellScriptBin, - steam-run, - steam, - ... -}: -writeShellScriptBin "steam" '' - exec ${steam-run}/bin/steam-run ${steam}/bin/steam -console -'' diff --git a/home/apps/terminal/default.nix b/home/apps/terminal/default.nix deleted file mode 100644 index a32486d..0000000 --- a/home/apps/terminal/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -with lib; let - cfg = config.local.apps.terminal; -in { - options.local.apps.terminal.enable = mkEnableOption "Terminal emulator settings"; - config.programs = mkIf cfg.enable { - kitty = { - enable = true; - extraConfig = import ./kitty.conf.nix; - }; - - tmux = { - enable = true; - aggressiveResize = true; - clock24 = true; - escapeTime = 10; - terminal = "xterm-256color"; - keyMode = "emacs"; - - extraConfig = '' - set -g mouse on - set -ga update-environment " LIFT_PID" - set -g set-titles on - set -g renumber-windows on - set -sa terminal-overrides ',xterm-termite:RGB' - set -g status-right "#{?window_bigger,[#{window_offset_x}#,#{window_offset_y}] ,} %H:%M %d-%b-%y" - ''; - }; - }; -} diff --git a/home/apps/terminal/kitty.conf.nix b/home/apps/terminal/kitty.conf.nix deleted file mode 100644 index 82904a9..0000000 --- a/home/apps/terminal/kitty.conf.nix +++ /dev/null @@ -1,87 +0,0 @@ -'' - # Fonts - font_family JetBrains Mono Medium - bold_font JetBrains Mono Bold - italic_font JetBrains Mono Italic - bold_italic_font JetBrains Mono Bold Italic - - font_size 15 - disable_ligatures cursor - - initial_window_width 1200 - initial_window_height 600 - - # Cursor - cursor_shape beam - cursor_beam_thickness 1.9 - cursor_stop_blinking_after 0 - - # Audio - enable_audio_bell no - - # Tabs - tab_bar_style separator - tab_separator " | " - tab_title_template "{index}: {title}" - - # Color - # special - foreground #ffffff - foreground_bold #ffffff - cursor #ffffff - background #000000 - background_opacity 1 - - # Shortcuts - map ctrl+shift+c copy_to_clipboard - map ctrl+shift+v paste_from_clipboard - map ctrl+shift+s paste_from_selection - map shift+insert paste_from_selection - - map ctrl+shift+up scroll_line_up - map ctrl+shift+down scroll_line_down - map ctrl+shift+page_up scroll_page_up - map ctrl+shift+page_down scroll_page_down - map ctrl+shift+home scroll_home - map ctrl+shift+end scroll_end - - map ctrl+shift+enter new_window - map ctrl+alt+enter launch --cwd=current - map ctrl+shift+w close_window - map ctrl+shift+] next_window - map ctrl+shift+[ previous_window - map ctrl+shift+1 first_window - map ctrl+shift+2 second_window - map ctrl+shift+3 third_window - map ctrl+shift+4 fourth_window - map ctrl+shift+5 fifth_window - map ctrl+shift+6 sixth_window - map ctrl+shift+7 seventh_window - map ctrl+shift+8 eighth_window - map ctrl+shift+9 ninth_window - map ctrl+shift+0 tenth_window - - map ctrl+shift+right next_tab - map ctrl+shift+left previous_tab - map ctrl+shift+t new_tab - map ctrl+shift+q close_tab - map ctrl+shift+. move_tab_forward - map ctrl+shift+, move_tab_backward - map ctrl+shift+alt+t set_tab_title - map ctrl+alt+1 goto_tab 1 - map ctrl+alt+2 goto_tab 2 - map ctrl+alt+3 goto_tab 3 - map ctrl+alt+4 goto_tab 4 - map ctrl+alt+5 goto_tab 5 - map ctrl+alt+6 goto_tab 6 - map ctrl+alt+7 goto_tab 7 - map ctrl+alt+8 goto_tab 8 - map ctrl+alt+9 goto_tab 9 - map ctrl+alt+0 goto_tab 10 - - map ctrl+shift+equal change_font_size all +1.0 - map ctrl+shift+minus change_font_size all -1.0 - map ctrl+shift+backspace change_font_size all 0 - - map ctrl+shift+delete clear_terminal reset active -'' diff --git a/home/apps/virtmanager.nix b/home/apps/virtmanager.nix deleted file mode 100644 index cca4dd7..0000000 --- a/home/apps/virtmanager.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -with lib; let - cfg = config.local.apps.virtmanager; -in { - options.local.apps.virtmanager.enable = mkEnableOption "Virtmanager"; - config = mkIf cfg.enable { - home.packages = with pkgs; [ - virt-manager - ]; - }; -} diff --git a/home/cli.nix b/home/cli.nix deleted file mode 100644 index c2ac1f4..0000000 --- a/home/cli.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -with lib; { - programs = { - ## talvez esto debería moverse a base - zsh = { - enable = true; - syntaxHighlighting.enable = true; - initExtra = import ./zshrc.nix pkgs; - }; - git = { - enable = true; - userEmail = "fabian@posixlycorrect.com"; - userName = "Fabian Montero"; - signing = { - key = "7AA277E604A4173916BBB4E91FFAC35E1798174F"; - signByDefault = true; - }; - }; - gpg = { - enable = true; - settings = { - default-key = "7AA277E604A4173916BBB4E91FFAC35E1798174F"; - }; - }; - }; - - services.gpg-agent = { - enable = true; - enableZshIntegration = true; - pinentryPackage = pkgs.pinentry-emacs; - }; - - home.packages = with pkgs; [ - calc - file - gcc - htop - killall - man-pages - man-pages-posix - neovim - rar - tree - units - unzip - usbutils - zip - ]; -} diff --git a/home/default.nix b/home/default.nix deleted file mode 100644 index 03fef94..0000000 --- a/home/default.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ - self, - nixpkgs, - unstable, - hm-isolation, - nixGL, -}: { - config, - pkgs, - lib, - ... -}: -with lib; { - imports = [ - (hm-isolation.homeManagerModule) - ./accounts.nix - ./apps - ./allowUnfreeWhitelist.nix - ./gui - ./isolation.nix - ./options.nix - ./cli.nix - ./systemd - ]; - - nixpkgs.overlays = [self.overlay nixGL.overlay]; - - services.ssh-agent.enable = true; - - home = { - stateVersion = "21.11"; # No tocar esto - username = "fabian"; - homeDirectory = "/home/fabian"; - sessionVariables = { - "EDITOR" = "nvim"; - "TERMINAL" = "kitty"; - }; - keyboard = { - layout = "us"; - variant = "altgr-intl"; - }; - }; - - xdg.enable = true; - - nix.registry = { - "system".to = { - type = "path"; - path = "/home/fabian/nix"; - }; - - "nixpkgs".flake = nixpkgs; - "unstable".flake = unstable; - }; - - programs.home-manager.enable = true; - - local = { - apps.enable = mkDefault (!config.home.isolation.active); - - gui = { - enable = mkDefault true; - desktop = mkDefault (!config.home.isolation.active); - }; - }; -} diff --git a/home/gui/autorandr.nix b/home/gui/autorandr.nix deleted file mode 100644 index c01ffe1..0000000 --- a/home/gui/autorandr.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: -with lib; let - cfg = config.local.gui.autorandr; -in { - options.local.gui.autorandr.enable = mkEnableOption "Autorandr"; - config = mkIf cfg.enable { - programs.autorandr = { - enable = true; - profiles."${config.local.platform}" = config.local.display.autorandrProfile; - }; - }; -} diff --git a/home/gui/default.nix b/home/gui/default.nix deleted file mode 100644 index 1b297a3..0000000 --- a/home/gui/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: -with lib; let - cfg = config.local.gui; -in { - options.local.gui = { - enable = mkEnableOption "GUI settings and programs"; - desktop = mkEnableOption "i3 desktop envirorment"; - }; - - imports = [ - ./autorandr.nix - ./fonts.nix - ./gtk.nix - ./i3.nix - ./polybar.nix - ./startx.nix - ]; - - config = mkIf cfg.enable { - local.gui = { - fonts.enable = mkDefault true; - gtk.enable = mkDefault true; - - autorandr.enable = mkDefault cfg.desktop; - i3.enable = mkDefault cfg.desktop; - polybar.enable = mkDefault cfg.desktop; - startx.enable = mkDefault cfg.desktop; - }; - - services = mkIf cfg.desktop { - picom = { - enable = true; - }; - - dunst = { - enable = true; - }; - - betterlockscreen = { - enable = true; - }; - }; - - xdg.mimeApps.enable = true; - }; -} diff --git a/home/gui/fonts.nix b/home/gui/fonts.nix deleted file mode 100644 index 7c38dbe..0000000 --- a/home/gui/fonts.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: -with lib; let - cfg = config.local.gui.fonts; -in { - options.local.gui.fonts.enable = mkEnableOption "Font management"; - config = mkIf cfg.enable { - fonts.fontconfig.enable = true; - - home.packages = with pkgs; [ - jetbrains-mono - ]; - }; -} diff --git a/home/gui/gtk.nix b/home/gui/gtk.nix deleted file mode 100644 index 0f14af6..0000000 --- a/home/gui/gtk.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -with lib; let - cfg = config.local.gui.gtk; -in { - options.local.gui.gtk.enable = mkEnableOption "GTK related programs"; - config = mkIf cfg.enable { - home.packages = with pkgs; [ - gruvbox-dark-icons-gtk - libsForQt5.breeze-gtk - ]; - }; -} diff --git a/home/gui/i3.nix b/home/gui/i3.nix deleted file mode 100644 index 687d6c6..0000000 --- a/home/gui/i3.nix +++ /dev/null @@ -1,110 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: -with lib; let - cfg = config.local.gui.i3; -in { - options.local.gui.i3.enable = mkEnableOption "i3 window manager"; - config = mkIf cfg.enable { - xsession.windowManager.i3 = { - enable = true; - package = pkgs.i3-gaps; - - config = let - mod = "Mod4"; - in { - modifier = mod; - # revisar luego si config.bars tiene un default danino - - fonts = { - names = ["JetBrains Mono"]; - style = "Regular"; - size = 8.0; - }; - - gaps = { - inner = 10; - outer = -10; - }; - - window = { - hideEdgeBorders = "both"; - }; - - colors = { - focused = { - background = "#222222"; - border = "#4c7899"; - childBorder = "#222222"; - indicator = "#292d2e"; - text = "#888888"; - }; - }; - - # mkOptionDefault hace que se ponga la config por default - # y se sobreescriba las cosas que pongo acA - # NO QUITARLO. ver man home-configuration.nix - keybindings = mkOptionDefault { - "${mod}+Return" = "exec ${pkgs.kitty}/bin/kitty ${pkgs.tmux}/bin/tmux"; - "${mod}+Tab" = "focus right"; - "${mod}+Shift+Tab" = "focus left"; - "${mod}+Shift+s" = "exec ${pkgs.maim}/bin/maim -s -u | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png -i"; - "${mod}+Shift+w" = "move workspace to output right"; - "${mod}+l" = "exec ${pkgs.betterlockscreen}/bin/betterlockscreen -l"; - }; - - startup = [ - { - command = "${pkgs.xss-lock}/bin/xss-lock --transfer-sleep-lock -- ${pkgs.i3lock}/bin/i3lock --nofork"; - notification = false; - } - { - command = "${pkgs.networkmanagerapplet}/bin/nm-applet"; - notification = false; - } - { - command = "${pkgs.feh}/bin/feh --bg-fill ${config.home.homeDirectory}/Pictures/wallpapers/jupiter.png"; - notification = false; - always = true; - } - { - command = "${pkgs.i3-gaps}/bin/i3-msg 'workspace 1; exec ${pkgs.firefox}/bin/firefox'"; - } - { - command = "${pkgs.i3-gaps}/bin/i3-msg 'workspace 2; exec ${pkgs.tdesktop}/bin/telegram-desktop'"; - } - #{ - # command = "${pkgs.i3-gaps}/bin/i3-msg 'workspace 2; exec ${pkgs.element-desktop}/bin/element-desktop'"; - #} - { - command = "${pkgs.systemd}/bin/systemctl --user restart polybar.service"; - notification = false; - always = true; - } - { - command = "${pkgs.autorandr}/bin/autorandr -c"; - notification = false; - always = true; - } - ]; - - workspaceOutputAssign = - [ - { - output = config.local.display."0"; - workspace = "1"; - } - ] - ++ optional (config.local.display."1" != null) { - output = config.local.display."1"; - workspace = "10"; - }; - - bars = []; - }; - }; - }; -} diff --git a/home/gui/polybar.nix b/home/gui/polybar.nix deleted file mode 100644 index 042c668..0000000 --- a/home/gui/polybar.nix +++ /dev/null @@ -1,464 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: -with lib; let - cfg = config.local.gui.polybar; -in { - options.local.gui.polybar.enable = mkEnableOption "Polybar"; - config = mkIf cfg.enable { - services.polybar = mkIf (!config.home.isolation.active) { - enable = true; - package = pkgs.polybarFull; - script = '' - # Terminate already running bar instances - killall -q polybar - - # Wait until the processes have been shut down - while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done - - # Launch Polybar, using default config location ~/.config/polybar/config - polybar -r main & polybar -r secondary & - ''; - - settings = { - "colors" = { - # background = "\${xrdb:color0:#222}"; - background = "#AA000000"; - background-alt = "#00000000"; - # foreground = "\${xrdb:color7:#222}"; - foreground = "#ffffff"; - foreground-alt = "#ffffff"; - primary = "#ffffff"; - secondary = "#e60053"; - alert = "#bd2c40"; - }; - - "bar/main" = { - monitor = "${config.local.display."0"}"; - width = "100%"; - height = 30; - offset-x = "0%"; - offset-y = "0%"; - radius = 0.0; - fixed-center = false; - - background = "\${colors.background}"; - foreground = "\${colors.foreground}"; - - line-size = 1; - line-color = "#f0000000"; - - border-size = 0; - border-color = "#00000000"; - - padding-left = 0; - padding-right = 0; - - module-margin-left = 1; - module-margin-right = 1; - - # font-0 = "fixed:pixelsize=10;1"; - font-0 = "JetBrains Mono Light:size=10;0"; - font-1 = "unifont:fontformat=truetype:size=8:antialias=false;0"; - font-2 = "siji:pixelsize=10;1"; - # font-2 = "FontAwesome5Free:style=Regular:size=10;4"; - - modules-left = "i3"; - modules-center = "xwindow"; - modules-right = "xkeyboard pulseaudio filesystem memory cpu temperature gputemperature nvmetemperature wlan eth date semanatec"; - separator = "|"; - - tray-position = "right"; - tray-padding = 2; - - # To allow other windows to be placed above the bar, or to avoid having the bar visible when in fullscreen mode, - # you need to use the following two parameters. Note that it will tell the window manager to back off so no - # area will be reserved, etc. - # - # wm-restack = "i3"; - # override-redirect = true; - - cursor-click = "pointer"; - cursor-scroll = "ns-resize"; - }; - - "bar/secondary" = optionalAttrs (config.local.display."1" != null) { - monitor = "${config.local.display."1"}"; - "inherit" = "bar/main"; - - modules-left = "i3"; - modules-center = "xwindow"; - modules-right = "xkeyboard pulseaudio date"; - tray-position = "none"; - }; - - "module/xwindow" = { - type = "internal/xwindow"; - label = "%title:0:30:...%"; - }; - - "module/xkeyboard" = { - type = "internal/xkeyboard"; - blacklist-0 = "num lock"; - - format-prefix = ""; - format-prefix-foreground = "\${colors.foreground-alt}"; - - label-layout = "%layout%"; - - label-indicator-padding = 2; - label-indicator-margin = 1; - label-indicator-background = "\${colors.secondary}"; - }; - - "module/filesystem" = { - type = "internal/fs"; - interval = 10; - - mount-0 = "/"; - - label-mounted = "%{F#0a81f5}%mountpoint%%{F-}: %used%/%total%"; - label-unmounted = ""; - }; - - "module/i3" = { - type = "internal/i3"; - format = " "; - index-sort = true; - wrapping-scroll = false; - - # Only show workspaces on the same output as the bar - # pin-workspaces = true - - label-mode-padding = 1; - label-mode-foreground = "#000"; - label-mode-background = "\${colors.primary}"; - - # focused = Active workspace on focused monitor - label-focused = "%index%"; - label-focused-background = "\${colors.background}"; - label-focused-underline = "\${colors.primary}"; - label-focused-padding = 1; - - # unfocused = Inactive workspace on any monitor - label-unfocused = "%index%"; - label-unfocused-padding = 1; - - # visible = Active workspace on unfocused monitor - label-visible = "%index%"; - label-visible-background = "\${self.label-focused-background}"; - label-visible-underline = "\${self.label-focused-underline}"; - label-visible-padding = "\${self.label-focused-padding}"; - - # urgent = Workspace with urgency hint set - label-urgent = "%index%"; - label-urgent-background = "\${colors.alert}"; - label-urgent-padding = 1; - }; - - "module/xbacklight" = { - type = "internal/xbacklight"; - - format = "