diff --git a/.gitignore b/.gitignore deleted file mode 100644 index b2be92b..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -result diff --git a/README.md b/README.md index 14f00b3..9fcdfbc 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# My NixOS Configurations ❄️👨‍💻 +# My Nix Configurations ❄️‍💻 -My modular NixOS🔥 +My modular Nix configs🔥 If you need a list of available packages and options: @@ -8,35 +8,24 @@ If you need a list of available packages and options: - [nixpkgs Options](https://search.nixos.org/options?) 🔍️ - [home-manager Options](https://mipmip.github.io/home-manager-option-search/) ☕️ -## Get Inspired 🌟 - -Ready to go down the Nix 🐇🕳️❓️ - Fork this repo and create your own NixOS config✨ Take inspiration💡, borrow ideas💭 and customize it to your 💖 content ⚠️ Be sure to tailor any settings related to my hardware and system to your own hardware⚠️ -👉️Run `nixos-generate-config` if you need a new `hardware-configuration.nix` - ## Requirements ⚙️ -- Nix package manager ❄️ -- Nix 2.0 `flakes` enabled⚡️ +- [Nix package manager](https://www.nixos.org/) +- [Nix 2.0 `flakes` enabled](https://nixos.wiki/wiki/Flakes#Enable_flakes_permanently_in_NixOS) +- [home-manager installed](https://nix-community.github.io/home-manager/index.xhtml#sec-flakes-standalone)*optional* -Install by visiting [nixos.org](https://www.nixos.org/) or through your package manager🚀 +# End-Points Exposed ❄️🔧💻️❄️ -### Enabling Flakes ❄️ +NixOS Configurations: + - desktop + - wsl + - server (wip) -Unleash Nix💥 - -Add to your `nix.conf` or `configuration.nix`👇️ -```nix -nix = { - package = pkgs.nixFlakes; - extraOptions = "experimental-features = nix-command flakes"; -}; -``` - -# Happy Nix Hacking! ❄️🔧💻️❄️ +Home-Manager Configurations: + - workstation diff --git a/flake.nix b/flake.nix index fb62b86..c120394 100644 --- a/flake.nix +++ b/flake.nix @@ -3,7 +3,7 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; - home-manager= { + home-manager = { url = "github:nix-community/home-manager/release-23.11"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -25,23 +25,39 @@ in { - nixosConfigurations.desktop = nixpkgs.lib.nixosSystem { - inherit system pkgs; - modules = [ - ./src/systems/desktop - home-manager.nixosModules.home-manager - (import ./src/systems/desktop/home.nix) - ]; + nixosConfigurations = { + desktop = nixpkgs.lib.nixosSystem { + inherit system pkgs; + modules = [ + ./src/system/machines/desktop + home-manager.nixosModules.home-manager + (import ./src/system/machines/desktop/home.nix) + ]; + }; + + wsl = nixpkgs.lib.nixosSystem { + inherit system pkgs; + modules = [ + ./src/system/machines/wsl + nixos-wsl.nixosModules.wsl + (import ./src/system/machines/wsl/wsl.nix) + home-manager.nixosModules.home-manager + (import ./src/system/machines/wsl/home.nix) + ]; + }; + + server = nixpkgs.lib.nixosSystem { + inherit system pkgs; + modules = [ + ./src/system/machines/server + home-manager.nixosModules.home-manager + (import ./src/system/machines/server/home.nix) + ]; + }; }; - nixosConfigurations.windows = nixpkgs.lib.nixosSystem { - inherit system pkgs; - modules = [ - ./src/systems/wsl - nixos-wsl.nixosModules.wsl - (import ./src/systems/wsl/wsl.nix) - home-manager.nixosModules.home-manager - (import ./src/systems/wsl/home.nix) - ]; + homeConfigurations."work" = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + modules = [ ./src/system/machines/workstation ]; }; }; } diff --git a/src/modules/gui/default.nix b/src/modules/gui/default.nix deleted file mode 100644 index 936f908..0000000 --- a/src/modules/gui/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - imports = [ ./desktopEnvironments ]; -} diff --git a/src/systems/desktop/default.nix b/src/system/machines/desktop/default.nix similarity index 72% rename from src/systems/desktop/default.nix rename to src/system/machines/desktop/default.nix index 5d6cab9..5237d0c 100644 --- a/src/systems/desktop/default.nix +++ b/src/system/machines/desktop/default.nix @@ -2,7 +2,7 @@ { imports = [ - ../../user + ../../../user/configs ./hardware.nix ./system.nix ]; diff --git a/src/systems/desktop/disks.nix b/src/system/machines/desktop/disks.nix similarity index 100% rename from src/systems/desktop/disks.nix rename to src/system/machines/desktop/disks.nix diff --git a/src/systems/desktop/hardware.nix b/src/system/machines/desktop/hardware.nix similarity index 89% rename from src/systems/desktop/hardware.nix rename to src/system/machines/desktop/hardware.nix index 1f2732d..f99b551 100644 --- a/src/systems/desktop/hardware.nix +++ b/src/system/machines/desktop/hardware.nix @@ -14,12 +14,12 @@ # FStab fileSystems = { "/" = { - device = "/dev/disk/by-uuid/af24c5b3-8a6e-4333-a61d-922a97928cae"; + device = "/dev/disk/by-uuid/d4e0a913-9ba8-451e-9086-b6d5d483dd9f"; fsType = "ext4"; }; "/home" = { - device = "/dev/disk/by-uuid/1639ee20-28d6-4649-814d-ba981c138b35"; + device = "/dev/disk/by-uuid/e1780967-0b87-46ff-8200-430d79d59e47"; fsType = "ext4"; }; @@ -53,4 +53,3 @@ powerManagement.cpuFreqGovernor = lib.mkDefault "performance"; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } - diff --git a/src/systems/desktop/home.nix b/src/system/machines/desktop/home.nix similarity index 96% rename from src/systems/desktop/home.nix rename to src/system/machines/desktop/home.nix index 3a28a7b..50a2669 100644 --- a/src/systems/desktop/home.nix +++ b/src/system/machines/desktop/home.nix @@ -5,8 +5,7 @@ home-manager.useUserPackages = true; home-manager.users.${config.user.name} = { imports = [ - ../../user - ../../modules + ../../../user ]; programs.home-manager.enable = true; diff --git a/src/systems/desktop/system.nix b/src/system/machines/desktop/system.nix similarity index 88% rename from src/systems/desktop/system.nix rename to src/system/machines/desktop/system.nix index 85fb8da..94e7eff 100644 --- a/src/systems/desktop/system.nix +++ b/src/system/machines/desktop/system.nix @@ -1,17 +1,16 @@ { pkgs, lib, config, ... }: -{ system.stateVersion = "22.11"; +{ system.stateVersion = "23.11"; -# Users users.users = { ${config.user.name} = { isNormalUser = true; - extraGroups = config.user.groups; + extraGroups = config.user.groups + ++ [ "video" "audio" "kvm" "libvirtd" "docker" ]; openssh.authorizedKeys.keys = config.user.sshKeys; }; }; -# Nix nix = { channel.enable = false; package = pkgs.nixFlakes; @@ -27,7 +26,6 @@ }; }; -# Bootloader boot.loader = { timeout = null; grub = { @@ -36,6 +34,7 @@ devices = [ "nodev" ]; efiSupport = true; configurationLimit = 5; + splashImage = null; }; efi = { @@ -47,19 +46,16 @@ pavucontrol ]; -# DE programs.sway = { enable = true; package = null; }; -# Fonts fonts.packages = with pkgs; [ terminus_font terminus-nerdfont ]; -# Audio services.pipewire = { enable = true; audio.enable = true; @@ -72,21 +68,11 @@ alsa.support32Bit = true; }; -# Sudo Options security.sudo = { wheelNeedsPassword = false; execWheelOnly = true; }; -# System Services - services = { - cron = { - enable = true; - systemCronJobs = []; - }; - }; - -# Locale time = { timeZone = "America/New_York"; hardwareClockInLocalTime = true; @@ -109,7 +95,6 @@ useXkbConfig = true; }; -# Networking networking = { hostName = "socrates"; useDHCP = lib.mkDefault true; diff --git a/src/systems/laptop/default.nix b/src/system/machines/laptop/default.nix similarity index 100% rename from src/systems/laptop/default.nix rename to src/system/machines/laptop/default.nix diff --git a/src/system/machines/server/default.nix b/src/system/machines/server/default.nix new file mode 100644 index 0000000..5237d0c --- /dev/null +++ b/src/system/machines/server/default.nix @@ -0,0 +1,9 @@ +{ ... }: + +{ + imports = [ + ../../../user/configs + ./hardware.nix + ./system.nix + ]; +} diff --git a/src/system/machines/server/home.nix b/src/system/machines/server/home.nix new file mode 100644 index 0000000..fb18dc2 --- /dev/null +++ b/src/system/machines/server/home.nix @@ -0,0 +1,32 @@ +{ config, ... }: + +{ + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.${config.user.name} = { + imports = [ + ../../../user + ]; + + programs.home-manager.enable = true; + programs.bash.shellAliases = { + nixup = "sudo nixos-rebuild switch --flake /etc/nixos/.#server"; + }; + + home.stateVersion = "23.11"; + + home.username = "${config.user.name}"; + home.homeDirectory = "/home/${config.user.name}"; + + modules = { + user = { + bash.enable = true; + git.enable = true; + gui.enable = false; + gpg.enable = true; + utils.enable = true; + vim.enable = true; + }; + }; + }; +} diff --git a/src/system/machines/server/system.nix b/src/system/machines/server/system.nix new file mode 100644 index 0000000..ee785d0 --- /dev/null +++ b/src/system/machines/server/system.nix @@ -0,0 +1,106 @@ +{ pkgs, lib, config, ... }: + +{ system.stateVersion = "23.11"; + + imports = [ + ../modules + ]; + + modules = { + bitcoin = { + enable = true; + clightning = true; + electrs = true; + sparrow-server = true; + }; + }; + + users.users = { + ${config.user.name} = { + isNormalUser = true; + extraGroups = config.user.groups; + openssh.authorizedKeys.keys = config.user.sshKeys; + }; + }; + + nix = { + channel.enable = false; + package = pkgs.nixFlakes; + extraOptions = "experimental-features = nix-command flakes"; + settings = { + auto-optimise-store = true; + trusted-users = [ "${config.user.name}" ]; + }; + gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 30d"; + }; + }; + + boot.loader = { + timeout = null; + grub = { + enable = true; + useOSProber = true; + devices = [ "nodev" ]; + efiSupport = true; + configurationLimit = 5; + }; + + efi = { + canTouchEfiVariables = true; + }; + }; + + fonts.packages = with pkgs; [ + terminus_font + terminus-nerdfont + ]; + + security.sudo = { + wheelNeedsPassword = false; + execWheelOnly = true; + }; + + time = { + timeZone = "America/New_York"; + hardwareClockInLocalTime = true; + }; + + services.timesyncd = { + enable = true; + servers = [ + "0.pool.ntp.org" + "1.pool.ntp.org" + "2.pool.ntp.org" + "3.pool.ntp.org" + ]; + }; + + i18n.defaultLocale = "en_US.UTF-8"; + + console = { + font = "Lat2-Terminus16"; + useXkbConfig = true; + }; + + networking = { + hostName = "archimedes"; + useDHCP = lib.mkDefault true; + networkmanager.enable = true; + firewall = { + enable = true; + allowedTCPPorts = [ 22 80 443 ]; + }; + }; + + services.openssh = { + enable = true; + startWhenNeeded = true; + settings = { + X11Forwarding = false; + PasswordAuthentication = false; + }; + }; +} diff --git a/src/system/machines/workstation/default.nix b/src/system/machines/workstation/default.nix new file mode 100644 index 0000000..baf8fb6 --- /dev/null +++ b/src/system/machines/workstation/default.nix @@ -0,0 +1,7 @@ +{ ... }: + +{ + imports = [ + ./home.nix + ]; +} diff --git a/src/system/machines/workstation/home.nix b/src/system/machines/workstation/home.nix new file mode 100644 index 0000000..b4d6156 --- /dev/null +++ b/src/system/machines/workstation/home.nix @@ -0,0 +1,50 @@ +{ config, pkgs, ... }: + +{ + imports = [ ../../../user ]; + + home = { + stateVersion = "23.11"; + username = "${config.user.name}"; + homeDirectory = "/home/${config.user.name}"; + + file.".config/home-manager" = { + source = ../../../..; + recursive = true; + }; + }; + + programs.home-manager.enable = true; + programs.bash.shellAliases = { + #nixup = "home-manager switch --flake"; + }; + + nix = { + package = pkgs.nixFlakes; + extraOptions = "experimental-features = nix-command flakes"; + settings = { + auto-optimise-store = true; + trusted-users = [ "${config.user.name}" ]; + }; + }; + modules = { + user = { + bash.enable = true; + git.enable = true; + gpg.enable = true; + security.enable = false; + gui = { + alacritty.enable = true; + browsers.enable = true; + neovim.enable = true; + }; + utils = { + enable = true; + dev.enable = true; + email.enable = true; + irc.enable = true; + vim.enable = true; + }; + }; + }; +} diff --git a/src/systems/wsl/default.nix b/src/system/machines/wsl/default.nix similarity index 65% rename from src/systems/wsl/default.nix rename to src/system/machines/wsl/default.nix index d97c4da..4f15952 100644 --- a/src/systems/wsl/default.nix +++ b/src/system/machines/wsl/default.nix @@ -2,7 +2,7 @@ { imports = [ - ../../user + ../../../user/configs ./system.nix ]; } diff --git a/src/systems/wsl/home.nix b/src/system/machines/wsl/home.nix similarity index 87% rename from src/systems/wsl/home.nix rename to src/system/machines/wsl/home.nix index 65b3881..7b207e4 100644 --- a/src/systems/wsl/home.nix +++ b/src/system/machines/wsl/home.nix @@ -5,13 +5,12 @@ home-manager.useUserPackages = true; home-manager.users.${config.user.name} = { imports = [ - ../../user - ../../modules + ../../../user ]; programs.home-manager.enable = true; programs.bash.shellAliases = { - nixup = "sudo nixos-rebuild switch --flake /etc/nixos/.#windows"; + nixup = "sudo nixos-rebuild switch --flake /etc/nixos/.#wsl"; }; home.stateVersion = "23.11"; diff --git a/src/systems/wsl/system.nix b/src/system/machines/wsl/system.nix similarity index 99% rename from src/systems/wsl/system.nix rename to src/system/machines/wsl/system.nix index 756aff7..332885e 100644 --- a/src/systems/wsl/system.nix +++ b/src/system/machines/wsl/system.nix @@ -27,6 +27,7 @@ options = "--delete-older-than 30d"; }; }; + # Sudo Options security.sudo = { wheelNeedsPassword = false; diff --git a/src/systems/wsl/wsl.nix b/src/system/machines/wsl/wsl.nix similarity index 94% rename from src/systems/wsl/wsl.nix rename to src/system/machines/wsl/wsl.nix index cd9cbcf..bcde209 100644 --- a/src/systems/wsl/wsl.nix +++ b/src/system/machines/wsl/wsl.nix @@ -2,7 +2,7 @@ { imports = [ - ../../user + ../../../user ]; wsl = { diff --git a/src/system/modules/bitcoin/default.nix b/src/system/modules/bitcoin/default.nix new file mode 100644 index 0000000..a18f739 --- /dev/null +++ b/src/system/modules/bitcoin/default.nix @@ -0,0 +1,63 @@ +{ pkgs, lib, config, ... }: + +with lib; +let + cfg = config.modules.system.bitcoin; + +in +{ options.modules.system.bitcoin = { enable = mkEnableOption "system.bitcoin"; }; + + imports = [ ./modules ]; + + config = mkIf cfg.enable { + programs.bash.shellAliases = { + btc = "bitcoin-cli"; + }; + + users = { + users = { + "bitcoind" = { + description = "bitcoind system user"; + isSystemUser = true; + group = "bitcoin"; + home = /var/lib/bitcoind; + createHome = true; + }; + }; + groups = { + "bitcoin" = { + members = [ "clightning" "electrs" ]; + }; + }; + }; + + services.bitcoind = { + "bitcoind" = { + enable = true; + testnet = false; + user = "bitcoind"; + group = "bitcoin"; + configFile = /var/lib/bitcoind/bitcoin.conf; + + rpc = { + port = 8332; + }; + + extraConfig = '' + server=1 + mempoolfullrbf=1 + v2transport=1 + + rpcbind=127.0.0.1 + rpcallowip=127.0.0.1 + + proxy=127.0.0.1:9050 + listen=1 + listenonion=1 + torcontrol=127.0.0.1:9051 + torenablecircuit=1 + ''; + }; + }; + }; +} diff --git a/src/system/modules/bitcoin/modules/core-lightning/default.nix b/src/system/modules/bitcoin/modules/core-lightning/default.nix new file mode 100644 index 0000000..19e59fd --- /dev/null +++ b/src/system/modules/bitcoin/modules/core-lightning/default.nix @@ -0,0 +1,73 @@ +{ lib, pkgs, config, ... }: +#TODO: c-lightning config file + +with lib; + let cfg = config.modules.system.bitcoin.core-lightning; + +in +{ options.modules.system.bitcoin.core-lightning = { enable = mkEnableOption "system.bitcoin.core-lightning"; }; + config = mkIf cfg.enable { + imports = [ ./modules ]; + programs.bash.shellAliases = { + cln = "lightningd"; + }; + + environment.systemPackages = with pkgs; [ + clightning + ]; + + users = { + users = { + "c-lightning" = { + description = "core-lightning system user"; + isSystemUser = true; + group = "bitcoin"; + home = /var/lib/c-lightning; + createHome = true; + }; + }; + }; + + systemd.services.lightningd = { + Unit = { + Description = "Core Lightning daemon"; + Requires = [ "bitcoind.service" ]; + After = [ "bitcoind.service" "network-online.target" ]; + Wants = [ "network-online.target" ]; + }; + Service = { + ExecStartPre = + let + lightningConf = '' + ''; #put lightning conf here + in + "${pkgs.writeShellScript "prepare-clightning-config" '' + mkdir -p /var/lib/c-lightning/.lightning + chown -R c-lightning:bitcoin /var/lib/c-lightning + echo "${lightningConf}" > /var/lib/c-lightning/.lightning/config + chmod 600 /var/lib/c-lightning/.lightning/config + ''}"; + + ExecStart = "${pkgs.clightning}/bin/lightningd --conf=/var/lib/c-lightning/.lightning/config"; + + RuntimeDirectory = "lightningd"; + + User = "c-lightning"; + Group = "bitcoin"; + + Type = "forking"; + PIDFile = "/run/lightningd/lightningd.pid"; + Restart = "on-failute"; + + PrivateTmp = true; + ProtectSystem = "full"; + NoNewPrivileges = true; + PrivateDevies = true; + MemoryDenyWriteAccess = false; + }; + Install = { + WantedBy = [ "multi-user.target" ]; + }; + }; + }; +} diff --git a/src/system/modules/bitcoin/modules/core-lightning/modules/c-lightning-REST/default.nix b/src/system/modules/bitcoin/modules/core-lightning/modules/c-lightning-REST/default.nix new file mode 100644 index 0000000..c04a9e8 --- /dev/null +++ b/src/system/modules/bitcoin/modules/core-lightning/modules/c-lightning-REST/default.nix @@ -0,0 +1,18 @@ +{ lib, pkgs, config, ... }: + +with lib; + let + cfg = config.modules.system.bitcoin.core-lightning.REST; + cln = config.modules.system.bitcoin.core-lightning; + c-lightning-REST = import ./derivation.nix { inherit pkgs; }; + +in +{ options.modules.system.bitcoin.core-lightning.REST = { + enable = mkEnableOption "system.bitcoin.core-lightning.REST"; + }; + config = mkIf (cfg.enable && cln.enable) { + environment.systemPackages = with pkgs; [ + c-lightning-REST + ]; + }; +} diff --git a/src/system/modules/bitcoin/modules/core-lightning/modules/c-lightning-REST/derivation.nix b/src/system/modules/bitcoin/modules/core-lightning/modules/c-lightning-REST/derivation.nix new file mode 100644 index 0000000..4c7dd7e --- /dev/null +++ b/src/system/modules/bitcoin/modules/core-lightning/modules/c-lightning-REST/derivation.nix @@ -0,0 +1,28 @@ +{ pkgs, ... }: + +with pkgs; +stdenv.mkDerivation rec { + pname = "c-lightning-REST"; + version = "0.10.7"; + + src = fetchurl { + url = "https://github.com/Ride-The-Lightning/c-lightning-REST/archive/refs/tags/v${version}.tar.gz"; + sha256 = "1swg53vbacsrsgy79lni07dy2h44b0yf2kad7j4fv17az4gwnxk7"; + }; + + buildInputs = with pkgs; [ + nodejs + ]; + + installPhase = '' + mkdir -p $out + cp -r * $out/ + ''; + + meta = { + description = "c-lighting REST API"; + homepage = "https://github.com/Ride-The-Lightning/c-lightning-REST"; + license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/src/system/modules/bitcoin/modules/core-lightning/modules/default.nix b/src/system/modules/bitcoin/modules/core-lightning/modules/default.nix new file mode 100644 index 0000000..2b2fd49 --- /dev/null +++ b/src/system/modules/bitcoin/modules/core-lightning/modules/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./c-lightning-REST + ]; +} diff --git a/src/system/modules/bitcoin/modules/default.nix b/src/system/modules/bitcoin/modules/default.nix new file mode 100644 index 0000000..bbb0cbc --- /dev/null +++ b/src/system/modules/bitcoin/modules/default.nix @@ -0,0 +1,7 @@ +{ + imports = [ + ./core-lightning + ./electrs + ./sparrow-server + ]; +} diff --git a/src/system/modules/bitcoin/modules/electrs/default.nix b/src/system/modules/bitcoin/modules/electrs/default.nix new file mode 100644 index 0000000..677bafd --- /dev/null +++ b/src/system/modules/bitcoin/modules/electrs/default.nix @@ -0,0 +1,49 @@ +{ lib, pkgs, config, ... }: +#TODO: electrs configuration file + +with lib; + let cfg = config.modules.bitcoin.electrs; +in +{ options.modules.bitcoin.electrs = { enable = mkEnableOption "bitcoin.electrs"; }; + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + electrs + ]; + + users = { + users = { + "electrs" = { + description = "electrs system user"; + isSystemUser = true; + group = "bitcoin"; + home = /var/lib/electrs; + createHome = true; + }; + }; + }; + + systemd.services.electrs = { + Unit = { + Description = "Electrs Bitcoin Indexer"; + After = [ "network.target" "bitcoind.service" ]; + Requires = [ "bitcoind.service" ]; + }; + Service = { + ExecStartPre = "/usr/bin/sleep 10"; + ExecStart = "${pkgs.electrs}/bin/electrs"; + + User = "electrs"; + Group = "bitcoin"; + Type = "simple"; + + KillMode = "process"; + TimeoutSec = 60; + Restart = "always"; + RestartSec = 60; + }; + Install = { + WantedBy = [ "multi-user.target" ]; + }; + }; + }; +} diff --git a/src/system/modules/bitcoin/modules/sparrow-server/default.nix b/src/system/modules/bitcoin/modules/sparrow-server/default.nix new file mode 100644 index 0000000..6629f8c --- /dev/null +++ b/src/system/modules/bitcoin/modules/sparrow-server/default.nix @@ -0,0 +1,14 @@ +{ lib, pkgs, config, ... }: + +with lib; + let + cfg = config.modules.system.bitcoin.sparrow-server; + sparrow-server = import ./derivation.nix { inherit pkgs; }; +in +{ options.modules.system.bitcoin.sparrow-server = { enable = mkEnableOption "system.bitcoin.sparrow-server"; }; + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + sparrow-server + ]; + }; +} diff --git a/src/system/modules/bitcoin/modules/sparrow-server/derivation.nix b/src/system/modules/bitcoin/modules/sparrow-server/derivation.nix new file mode 100644 index 0000000..8e5e698 --- /dev/null +++ b/src/system/modules/bitcoin/modules/sparrow-server/derivation.nix @@ -0,0 +1,24 @@ +{ pkgs, ... }: + +with pkgs; +stdenv.mkDerivation rec { + pname = "sparrow-server"; + version = "1.8.2"; + + src = fetchurl { + url = "https://github.com/sparrowwallet/sparrow/releases/download/${version}/sparrow-server-${version}-x86_64.tar.gz"; + sha256 = "16hyrf8j7mv3m1ry7r2k3w70yxbf6smgcm5d35xy2hjqfmahv65m"; + }; + + installPhase = '' + mkdir -p $out/bin + cp -r * $out/bin + ''; + + meta = { + description = "Sparrow Server"; + homepage = "https://sparrowwallet.com/"; + license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/src/system/modules/default.nix b/src/system/modules/default.nix new file mode 100644 index 0000000..77c150a --- /dev/null +++ b/src/system/modules/default.nix @@ -0,0 +1,7 @@ +{ + imports = [ + ./bitcoin + ./nginx + ./tor + ]; +} diff --git a/src/system/modules/nginx/default.nix b/src/system/modules/nginx/default.nix new file mode 100644 index 0000000..6079a17 --- /dev/null +++ b/src/system/modules/nginx/default.nix @@ -0,0 +1,21 @@ +{ lib, config, pkgs, ... }: + +with lib; +let + cfg = config.modules.system.nginx; + +in +{ options.modules.system.nginx = { enable = mkEnableOption "system.nginx"; }; + config = mkIf cfg.enable { + imports = [ ./sites ]; + security.acme = { + defaults = { + email = config.user.email; + }; + }; + services.nginx = { + enable = true; + package = pkgs.nginxMainLine; + }; + }; +} diff --git a/src/system/modules/nginx/sites/default.nix b/src/system/modules/nginx/sites/default.nix new file mode 100644 index 0000000..94b7201 --- /dev/null +++ b/src/system/modules/nginx/sites/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./mySite + ]; +} diff --git a/src/system/modules/nginx/sites/mySite/default.nix b/src/system/modules/nginx/sites/mySite/default.nix new file mode 100644 index 0000000..56932e2 --- /dev/null +++ b/src/system/modules/nginx/sites/mySite/default.nix @@ -0,0 +1,30 @@ +{ lib, config, ... }: + +with lib; +let + cfg = config.modules.system.nginx.mySite; + nginxCfg = config.modules.system.nginx; + +in +{ options.modules.system.nginx.mySite = { enable = mkEnableOption "system.nginx.mySite"; }; + config = mkIf (cfg.enable && nginxCfg) { + security.acme = { + certs = { + "*.ramos.codes" = { + #TODO: configure ACME certs + }; + }; + }; + services.nginx = { + #TODO: check if configure as vhost or stream + virtualHosts = { + "*.ramos.codes" = { + addSSL = true; + onlySSL = true; + forceSSL = true; + acmeRoot = null; + }; + }; + }; + }; +} diff --git a/src/system/modules/nginx/sites/mySite/modules/btc/default.nix b/src/system/modules/nginx/sites/mySite/modules/btc/default.nix new file mode 100644 index 0000000..fa7f50c --- /dev/null +++ b/src/system/modules/nginx/sites/mySite/modules/btc/default.nix @@ -0,0 +1,31 @@ +{ lib, config, ... }: + +with lib; +let + cfg = config.modules.system.nginx.mySite.btc; + mySiteCfg = config.modules.system.nginx.mySite; + btcCfg = config.modules.system.bitcoin; + +in +{ options.modules.system.nginx.mySite.btc = { enable = mkEnableOption "system.nginx.mySite.btc"; }; + config = mkIf (cfg.enable && mySiteCfg && btcCfg) { + #security.acme = { + # certs = { + # "btc.ramos.codes" = { + # #TODO: configure ACME certs + # }; + # }; + #}; + #services.nginx = { + # #TODO: check if configure as vhost or stream + # virtualHosts = { + # "btc.ramos.codes" = { + # addSSL = true; + # onlySSL = true; + # forceSSL = true; + # acmeRoot = null; + # }; + # }; + #}; + }; +} diff --git a/src/system/modules/nginx/sites/mySite/modules/git/default.nix b/src/system/modules/nginx/sites/mySite/modules/git/default.nix new file mode 100644 index 0000000..62b8f66 --- /dev/null +++ b/src/system/modules/nginx/sites/mySite/modules/git/default.nix @@ -0,0 +1,30 @@ +{ lib, config, ... }: + +with lib; +let + cfg = config.modules.system.nginx.mySite.git; + mySiteCfg = config.modules.system.nginx.mySite; + +in +{ options.modules.system.nginx.mySite.git = { enable = mkEnableOption "system.nginx.mySite.git"; }; + config = mkIf (cfg.enable && mySiteCfg) { + #security.acme = { + # certs = { + # "ramos.codes" = { + # #TODO: configure ACME certs + # }; + # }; + #}; + #services.nginx = { + # #TODO: check if configure as vhost or stream + # streamConfig = services.nginx.streamConfig ++ { + # "*.ramos.codes" = { + # addSSL = true; + # onlySSL = true; + # forceSSL = true; + # acmeRoot = null; + # }; + # }; + #}; + }; +} diff --git a/src/system/modules/tor/default.nix b/src/system/modules/tor/default.nix new file mode 100644 index 0000000..efdf41c --- /dev/null +++ b/src/system/modules/tor/default.nix @@ -0,0 +1,23 @@ +{ lib, config, ... }: + +with lib; +let + cfg = config.modules.system.tor; + +in +{ options.modules.system.tor = { enable = mkEnableOption "system.tor"; }; + config = mkIf cfg.enable { + imports = [ ./modules ]; + services.tor = { + enable = true; + client = { + enable = lib.mkDefault true; + dns.enable = mkIf services.tor.client.enable true; + }; + relay.enable = lib.mkDefault false; + enableGeoIP = false; + DoSConnectionEnabled = true; + DoSCircuitCreationEnabled = true; + }; + }; +} diff --git a/src/system/modules/tor/modules/default.nix b/src/system/modules/tor/modules/default.nix new file mode 100644 index 0000000..893538e --- /dev/null +++ b/src/system/modules/tor/modules/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./relay + ]; +} diff --git a/src/system/modules/tor/modules/relay.nix b/src/system/modules/tor/modules/relay.nix new file mode 100644 index 0000000..17044a6 --- /dev/null +++ b/src/system/modules/tor/modules/relay.nix @@ -0,0 +1,16 @@ +{ lib, config, ... }: + +with lib; +let + cfg = config.modules.system.tor.relay; + torCfg = config.modules.system.tor; + +in +{ options.modules.system.tor.relay = { enable = mkEnableOption "system.tor.relay"; }; + config = mkIf (cfg.enable && torCfg.enable) { + services.tor = { + client.enable = false; + relay.enable = true; + }; + }; +} diff --git a/src/systems/server/default.nix b/src/systems/server/default.nix deleted file mode 100644 index 3744368..0000000 --- a/src/systems/server/default.nix +++ /dev/null @@ -1 +0,0 @@ -# TODO: nixify the server diff --git a/src/user/configs/default.nix b/src/user/configs/default.nix new file mode 100644 index 0000000..d0acf2d --- /dev/null +++ b/src/user/configs/default.nix @@ -0,0 +1,63 @@ +{ lib, pkgs, ... }: + +let + userConfigs = rec { + name = "bryan"; + email = "bryan@ramos.codes"; + shell = pkgs.bash; + + # This will pull an image from your ~Pictures/wallpapers directory + wallpaper = "mountains.jpg"; + + groups = [ "wheel" "networkmanager" "home-manager" "input" ]; + + sshKeys = [ + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDl4895aB9P5p/lp8Hq5rHun4clvhyTSHFi3U2d6OOBoW5Fm+VcQnW/xbjmCBsXk5BdiowsBxQhwnzdfz/KJL7J5RobomUEaVRwb9UwT88eJveLp14BG8j2J3SjfyhrCX+4jkPx0bPQk1HGcuYY+tPEXf1q/ps88Dhu0CARBIzYQOTYY6b1qWzxpDoFZGHjKG8g5iY6FIu65yKKvvVy1f8IgZ3l3IpwBWVamxgkTcYY0QYSrmzo1n7TXxwrWbvenAqBsQ0cBPs+gVa3uIr+1TJl0Az5SElBVGu3LvUdlk58trtPUj6TQR3YUkg7Vjll7WHOdqhux5ZQNhjkOsHerf0Tw86e6cEzgeTuIbQHIb0LcsUunwKcuh2+au7RO599cvHn0+xZE5MZBxloDDaJ3JsiliM8kyPP/U3ERj03cWLW7BqbT+sfjAOl21RCzk0iQxk1wt/8VmtCr9Adv7IyrtaYvf/bwRP+g+9ldmzKGt8Mdb605uVzZ70H/LLm17f40Te+QHaex5by/6p6cuwEEZtgIg53Wpglu0rA6UxrBfQEHKl/Jt3FLeE0mnEyYkkR2MnHNtyWRIXtuqYZMAm2Ub1pFHH7jQV1gGiDVTw6a2eIwK21a/hXtRjFUpFd1nB1n+KNfJBE4zT3wm3Ud7mKw/6rWnoRyhYZvGXkFdp+iEs49Q==" + "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK2ROz7EVvE+nzF5k9EYZ2v3JhBzk058uh3QJTzcG4t70fkZgh9y56AOx26eXlKQWuuV05e8EkWRuVI8gfA2ROI=" + ]; + + gitConfig = { + userName = "Bryan Ramos"; + userEmail = email; + signing = { + key = "F1F3466458452B2DF351F1E864D12BA95ACE1F2D"; + signByDefault = true; + }; + + extraConfig = { + init = { defaultBranch = "master"; }; + mergetool = { + lazygit = { + cmd = "lazygit"; + trustExitCode = true; + }; + }; + merge = { tool = "lazygit"; }; + safe = { directory = "/etc/nixos"; }; + }; + + ignores = [ + "node_modules" + ".direnv" + "dist-newstyle" + ".nuxt/" + ".output/" + "dist" + ]; + }; + + pgpKey = { + text = import ./pgpKey.nix; + trust = 5; + }; + }; +in +{ + options = { + user = lib.mkOption { + type = lib.types.attrs; + default = userConfigs; + description = "User Configurations"; + }; + }; +} diff --git a/src/user/pgpKey.nix b/src/user/configs/pgpKey.nix similarity index 100% rename from src/user/pgpKey.nix rename to src/user/configs/pgpKey.nix diff --git a/src/user/default.nix b/src/user/default.nix index fcdd4e6..da87894 100644 --- a/src/user/default.nix +++ b/src/user/default.nix @@ -1,64 +1,6 @@ -{ lib, pkgs, ... }: - -# Replace with your user configurations { - options = { - user = lib.mkOption { - type = lib.types.attrs; - default = { - name = "bryan"; - shell = pkgs.bash; - - groups = [ - "wheel" "networkmanager" "home-manager" - "input" "video" "audio" - "kvm" "libvirtd" "docker" - ]; - - sshKeys = [ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDl4895aB9P5p/lp8Hq5rHun4clvhyTSHFi3U2d6OOBoW5Fm+VcQnW/xbjmCBsXk5BdiowsBxQhwnzdfz/KJL7J5RobomUEaVRwb9UwT88eJveLp14BG8j2J3SjfyhrCX+4jkPx0bPQk1HGcuYY+tPEXf1q/ps88Dhu0CARBIzYQOTYY6b1qWzxpDoFZGHjKG8g5iY6FIu65yKKvvVy1f8IgZ3l3IpwBWVamxgkTcYY0QYSrmzo1n7TXxwrWbvenAqBsQ0cBPs+gVa3uIr+1TJl0Az5SElBVGu3LvUdlk58trtPUj6TQR3YUkg7Vjll7WHOdqhux5ZQNhjkOsHerf0Tw86e6cEzgeTuIbQHIb0LcsUunwKcuh2+au7RO599cvHn0+xZE5MZBxloDDaJ3JsiliM8kyPP/U3ERj03cWLW7BqbT+sfjAOl21RCzk0iQxk1wt/8VmtCr9Adv7IyrtaYvf/bwRP+g+9ldmzKGt8Mdb605uVzZ70H/LLm17f40Te+QHaex5by/6p6cuwEEZtgIg53Wpglu0rA6UxrBfQEHKl/Jt3FLeE0mnEyYkkR2MnHNtyWRIXtuqYZMAm2Ub1pFHH7jQV1gGiDVTw6a2eIwK21a/hXtRjFUpFd1nB1n+KNfJBE4zT3wm3Ud7mKw/6rWnoRyhYZvGXkFdp+iEs49Q==" - "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK2ROz7EVvE+nzF5k9EYZ2v3JhBzk058uh3QJTzcG4t70fkZgh9y56AOx26eXlKQWuuV05e8EkWRuVI8gfA2ROI=" - ]; - - gitConfig= { - userName = "Bryan Ramos"; - userEmail = "bryan@ramos.codes"; - signing = { - key = "F1F3466458452B2DF351F1E864D12BA95ACE1F2D"; - signByDefault = true; - }; - - extraConfig = { - init = { defaultBranch = "master"; }; - mergetool = { - lazygit = { - cmd = "lazygit"; - trustExitCode = true; - }; - }; - merge = { - tool = "lazygit"; - }; - safe = { - directory = "/etc/nixos"; - }; - }; - - ignores = [ - "node_modules" - ".direnv" - "dist-newstyle" - ".nuxt/" - ".output/" - "dist" - ]; - }; - - pgpKey = { - text = import ./pgpKey.nix; - trust = 5; - }; - }; - }; - }; + imports = [ + ./configs + ./modules + ]; } diff --git a/src/modules/bash/config/alias.nix b/src/user/modules/bash/config/alias.nix similarity index 100% rename from src/modules/bash/config/alias.nix rename to src/user/modules/bash/config/alias.nix diff --git a/src/modules/bash/config/bashprofile.nix b/src/user/modules/bash/config/bashprofile.nix similarity index 100% rename from src/modules/bash/config/bashprofile.nix rename to src/user/modules/bash/config/bashprofile.nix diff --git a/src/modules/bash/config/bashrc.nix b/src/user/modules/bash/config/bashrc.nix similarity index 97% rename from src/modules/bash/config/bashrc.nix rename to src/user/modules/bash/config/bashrc.nix index f437a83..2ebcc48 100644 --- a/src/modules/bash/config/bashrc.nix +++ b/src/user/modules/bash/config/bashrc.nix @@ -54,8 +54,6 @@ function penpot() { esac } -source ~/Documents/projects/ldv/ldv.sh - set -o vi bind 'set completion-ignore-case on' diff --git a/src/modules/bash/config/prompt.nix b/src/user/modules/bash/config/prompt.nix similarity index 98% rename from src/modules/bash/config/prompt.nix rename to src/user/modules/bash/config/prompt.nix index b6db41e..07b844c 100644 --- a/src/modules/bash/config/prompt.nix +++ b/src/user/modules/bash/config/prompt.nix @@ -9,7 +9,7 @@ check_ssh() { add_icon() { local icon=$1 if [[ ! $venv_icons =~ $icon ]]; then - venv_icons+="$icon" + venv_icons+="$icon " fi } diff --git a/src/modules/bash/default.nix b/src/user/modules/bash/default.nix similarity index 100% rename from src/modules/bash/default.nix rename to src/user/modules/bash/default.nix diff --git a/src/modules/default.nix b/src/user/modules/default.nix similarity index 100% rename from src/modules/default.nix rename to src/user/modules/default.nix diff --git a/src/modules/git/default.nix b/src/user/modules/git/default.nix similarity index 100% rename from src/modules/git/default.nix rename to src/user/modules/git/default.nix diff --git a/src/modules/gpg/default.nix b/src/user/modules/gpg/default.nix similarity index 100% rename from src/modules/gpg/default.nix rename to src/user/modules/gpg/default.nix diff --git a/src/user/modules/gui/default.nix b/src/user/modules/gui/default.nix new file mode 100644 index 0000000..1ed120c --- /dev/null +++ b/src/user/modules/gui/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./desktopEnvironments + ./modules + ]; +} diff --git a/src/modules/gui/desktopEnvironments/default.nix b/src/user/modules/gui/desktopEnvironments/default.nix similarity index 100% rename from src/modules/gui/desktopEnvironments/default.nix rename to src/user/modules/gui/desktopEnvironments/default.nix diff --git a/src/modules/gui/desktopEnvironments/sway/config/rofi.nix b/src/user/modules/gui/desktopEnvironments/sway/config/rofi.nix similarity index 100% rename from src/modules/gui/desktopEnvironments/sway/config/rofi.nix rename to src/user/modules/gui/desktopEnvironments/sway/config/rofi.nix diff --git a/src/modules/gui/desktopEnvironments/sway/config/shellHook.nix b/src/user/modules/gui/desktopEnvironments/sway/config/shellHook.nix similarity index 100% rename from src/modules/gui/desktopEnvironments/sway/config/shellHook.nix rename to src/user/modules/gui/desktopEnvironments/sway/config/shellHook.nix diff --git a/src/modules/gui/desktopEnvironments/sway/config/sway.nix b/src/user/modules/gui/desktopEnvironments/sway/config/sway.nix similarity index 93% rename from src/modules/gui/desktopEnvironments/sway/config/sway.nix rename to src/user/modules/gui/desktopEnvironments/sway/config/sway.nix index 5eec3b2..2ba0682 100644 --- a/src/modules/gui/desktopEnvironments/sway/config/sway.nix +++ b/src/user/modules/gui/desktopEnvironments/sway/config/sway.nix @@ -17,13 +17,13 @@ in HDMI-A-1 = { resolution = "1920x1080"; position = "0,0"; - bg = "/etc/nixos/src/modules/gui/wallpapers/mountains.jpg fill"; + bg = "~/Pictures/wallpapers/${config.user.wallpaper} fill"; }; DP-1 = { resolution = "1080x1920"; position = "1920,0"; transform = "90"; - bg = "/etc/nixos/src/modules/gui/wallpapers/mountains.jpg fill"; + bg = "~/Pictures/wallpapers/${config.user.wallpaper} fill"; }; }; modifier = "Mod1"; diff --git a/src/modules/gui/desktopEnvironments/sway/default.nix b/src/user/modules/gui/desktopEnvironments/sway/default.nix similarity index 91% rename from src/modules/gui/desktopEnvironments/sway/default.nix rename to src/user/modules/gui/desktopEnvironments/sway/default.nix index 100d7e3..82caa5e 100644 --- a/src/modules/gui/desktopEnvironments/sway/default.nix +++ b/src/user/modules/gui/desktopEnvironments/sway/default.nix @@ -6,7 +6,6 @@ let in { options.modules.user.gui.sway = { enable = mkEnableOption "user.gui.sway"; }; - imports = [ ../../modules ]; config = mkIf cfg.enable { wayland.windowManager.sway = import ./config/sway.nix { inherit pkgs config lib; }; programs.rofi = import ./config/rofi.nix { inherit pkgs config lib; }; @@ -55,5 +54,10 @@ in }; fonts.fontconfig.enable = true; + + home.file."Pictures/wallpapers" = { + source = ../../wallpapers; + recursive = true; + }; }; } diff --git a/src/modules/gui/modules/alacritty/config/alacritty.nix b/src/user/modules/gui/modules/alacritty/config/alacritty.nix similarity index 100% rename from src/modules/gui/modules/alacritty/config/alacritty.nix rename to src/user/modules/gui/modules/alacritty/config/alacritty.nix diff --git a/src/modules/gui/modules/alacritty/default.nix b/src/user/modules/gui/modules/alacritty/default.nix similarity index 100% rename from src/modules/gui/modules/alacritty/default.nix rename to src/user/modules/gui/modules/alacritty/default.nix diff --git a/src/modules/gui/modules/browsers/default.nix b/src/user/modules/gui/modules/browsers/default.nix similarity index 96% rename from src/modules/gui/modules/browsers/default.nix rename to src/user/modules/gui/modules/browsers/default.nix index 2a79193..fe150bb 100644 --- a/src/modules/gui/modules/browsers/default.nix +++ b/src/user/modules/gui/modules/browsers/default.nix @@ -11,6 +11,7 @@ in home.packages = with pkgs; [ tor-browser + brave ]; }; } diff --git a/src/modules/gui/modules/corn/default.nix b/src/user/modules/gui/modules/corn/default.nix similarity index 100% rename from src/modules/gui/modules/corn/default.nix rename to src/user/modules/gui/modules/corn/default.nix diff --git a/src/modules/gui/modules/default.nix b/src/user/modules/gui/modules/default.nix similarity index 100% rename from src/modules/gui/modules/default.nix rename to src/user/modules/gui/modules/default.nix diff --git a/src/modules/gui/modules/fun/default.nix b/src/user/modules/gui/modules/fun/default.nix similarity index 100% rename from src/modules/gui/modules/fun/default.nix rename to src/user/modules/gui/modules/fun/default.nix diff --git a/src/modules/gui/modules/neovim/config/lazyvim/init.lua b/src/user/modules/gui/modules/neovim/config/lazyvim/init.lua similarity index 100% rename from src/modules/gui/modules/neovim/config/lazyvim/init.lua rename to src/user/modules/gui/modules/neovim/config/lazyvim/init.lua diff --git a/src/modules/gui/modules/neovim/config/lazyvim/lua/config/autocmds.lua b/src/user/modules/gui/modules/neovim/config/lazyvim/lua/config/autocmds.lua similarity index 100% rename from src/modules/gui/modules/neovim/config/lazyvim/lua/config/autocmds.lua rename to src/user/modules/gui/modules/neovim/config/lazyvim/lua/config/autocmds.lua diff --git a/src/modules/gui/modules/neovim/config/lazyvim/lua/config/keymaps.lua b/src/user/modules/gui/modules/neovim/config/lazyvim/lua/config/keymaps.lua similarity index 100% rename from src/modules/gui/modules/neovim/config/lazyvim/lua/config/keymaps.lua rename to src/user/modules/gui/modules/neovim/config/lazyvim/lua/config/keymaps.lua diff --git a/src/modules/gui/modules/neovim/config/lazyvim/lua/config/lazy.lua b/src/user/modules/gui/modules/neovim/config/lazyvim/lua/config/lazy.lua similarity index 100% rename from src/modules/gui/modules/neovim/config/lazyvim/lua/config/lazy.lua rename to src/user/modules/gui/modules/neovim/config/lazyvim/lua/config/lazy.lua diff --git a/src/modules/gui/modules/neovim/config/lazyvim/lua/config/options.lua b/src/user/modules/gui/modules/neovim/config/lazyvim/lua/config/options.lua similarity index 100% rename from src/modules/gui/modules/neovim/config/lazyvim/lua/config/options.lua rename to src/user/modules/gui/modules/neovim/config/lazyvim/lua/config/options.lua diff --git a/src/modules/gui/modules/neovim/config/lazyvim/lua/plugins/core.lua b/src/user/modules/gui/modules/neovim/config/lazyvim/lua/plugins/core.lua similarity index 100% rename from src/modules/gui/modules/neovim/config/lazyvim/lua/plugins/core.lua rename to src/user/modules/gui/modules/neovim/config/lazyvim/lua/plugins/core.lua diff --git a/src/modules/gui/modules/neovim/config/servers.nix b/src/user/modules/gui/modules/neovim/config/servers.nix similarity index 100% rename from src/modules/gui/modules/neovim/config/servers.nix rename to src/user/modules/gui/modules/neovim/config/servers.nix diff --git a/src/modules/gui/modules/neovim/default.nix b/src/user/modules/gui/modules/neovim/default.nix similarity index 100% rename from src/modules/gui/modules/neovim/default.nix rename to src/user/modules/gui/modules/neovim/default.nix diff --git a/src/modules/gui/modules/utils/default.nix b/src/user/modules/gui/modules/utils/default.nix similarity index 100% rename from src/modules/gui/modules/utils/default.nix rename to src/user/modules/gui/modules/utils/default.nix diff --git a/src/modules/gui/modules/writing/default.nix b/src/user/modules/gui/modules/writing/default.nix similarity index 100% rename from src/modules/gui/modules/writing/default.nix rename to src/user/modules/gui/modules/writing/default.nix diff --git a/src/modules/gui/wallpapers/mountains.jpg b/src/user/modules/gui/wallpapers/mountains.jpg similarity index 100% rename from src/modules/gui/wallpapers/mountains.jpg rename to src/user/modules/gui/wallpapers/mountains.jpg diff --git a/src/modules/security/default.nix b/src/user/modules/security/default.nix similarity index 100% rename from src/modules/security/default.nix rename to src/user/modules/security/default.nix diff --git a/src/modules/utils/default.nix b/src/user/modules/utils/default.nix similarity index 100% rename from src/modules/utils/default.nix rename to src/user/modules/utils/default.nix diff --git a/src/modules/utils/modules/default.nix b/src/user/modules/utils/modules/default.nix similarity index 100% rename from src/modules/utils/modules/default.nix rename to src/user/modules/utils/modules/default.nix diff --git a/src/modules/utils/modules/dev/default.nix b/src/user/modules/utils/modules/dev/default.nix similarity index 91% rename from src/modules/utils/modules/dev/default.nix rename to src/user/modules/utils/modules/dev/default.nix index 11f807f..58c7306 100644 --- a/src/modules/utils/modules/dev/default.nix +++ b/src/user/modules/utils/modules/dev/default.nix @@ -11,10 +11,7 @@ in nix-init nix-prefetch-git - glibc gcc - - docker ]; }; } diff --git a/src/modules/utils/modules/email/config/aerc.conf b/src/user/modules/utils/modules/email/config/aerc.conf similarity index 100% rename from src/modules/utils/modules/email/config/aerc.conf rename to src/user/modules/utils/modules/email/config/aerc.conf diff --git a/src/modules/utils/modules/email/config/binds.conf b/src/user/modules/utils/modules/email/config/binds.conf similarity index 100% rename from src/modules/utils/modules/email/config/binds.conf rename to src/user/modules/utils/modules/email/config/binds.conf diff --git a/src/modules/utils/modules/email/default.nix b/src/user/modules/utils/modules/email/default.nix similarity index 100% rename from src/modules/utils/modules/email/default.nix rename to src/user/modules/utils/modules/email/default.nix diff --git a/src/modules/utils/modules/irc/default.nix b/src/user/modules/utils/modules/irc/default.nix similarity index 100% rename from src/modules/utils/modules/irc/default.nix rename to src/user/modules/utils/modules/irc/default.nix diff --git a/src/modules/utils/modules/vim/config/vimrc b/src/user/modules/utils/modules/vim/config/vimrc similarity index 96% rename from src/modules/utils/modules/vim/config/vimrc rename to src/user/modules/utils/modules/vim/config/vimrc index 4dd4ca7..e8d3055 100644 --- a/src/modules/utils/modules/vim/config/vimrc +++ b/src/user/modules/utils/modules/vim/config/vimrc @@ -13,7 +13,7 @@ autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)')) \| endif call plug#begin('~/.vim/plugged') - Plug 'joshdick/onedark.vim' + Plug 'petobens/colorish' Plug 'tpope/vim-surround' Plug 'jiangmiao/auto-pairs' Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } @@ -26,7 +26,8 @@ call plug#begin('~/.vim/plugged') call plug#end() let mapleader = "\" -colorscheme onedark +set background=dark +colorscheme onedarkish highlight CursorLine ctermbg=NONE guibg=NONE highlight CursorLineNr ctermfg=magenta guifg=magenta diff --git a/src/modules/utils/modules/vim/default.nix b/src/user/modules/utils/modules/vim/default.nix similarity index 92% rename from src/modules/utils/modules/vim/default.nix rename to src/user/modules/utils/modules/vim/default.nix index 5a2133e..8805e0f 100644 --- a/src/modules/utils/modules/vim/default.nix +++ b/src/user/modules/utils/modules/vim/default.nix @@ -7,8 +7,12 @@ let in { options.modules.user.utils.vim = { enable = mkEnableOption "user.utils.vim"; }; config = mkIf cfg.enable { + programs.bash.shellAliases = { + vi = "${pkgs.vim}/bin/vim"; + }; + home = { - packages = with pkgs; [ + packages = with pkgs; [ vim ]; file.".vim" = { @@ -16,8 +20,5 @@ in recursive = true; }; }; - programs.bash.shellAliases = { - vi = "${pkgs.vim}/bin/vim"; - }; }; } diff --git a/user.configs.nix b/user.configs.nix new file mode 120000 index 0000000..b671e3c --- /dev/null +++ b/user.configs.nix @@ -0,0 +1 @@ +src/user/configs/default.nix \ No newline at end of file