From a052c6a758d40e49578e4a805c859365da2209f6 Mon Sep 17 00:00:00 2001 From: randomuser Date: Thu, 28 Dec 2023 00:20:13 -0600 Subject: [PATCH] changes --- bootstrap.nix | 9 ++-- boxes/virtbox.nix | 7 +++ builds/flake.nix | 32 ++++++++++++ common/desktop.nix | 115 +------------------------------------------- common/main.nix | 33 +------------ flake.lock | 20 +++++++- flake.nix | 10 ++-- home/terminal.nix | 23 --------- home/tty-progs.nix | 17 +++++++ home/tty.nix | 16 ++++++ home/x11-progs.nix | 13 +++++ home/x11.nix | 18 +++++++ modules/bash.nix | 13 +++++ modules/common.nix | 33 +++++++++++++ modules/discord.nix | 7 +++ modules/fonts.nix | 7 +++ modules/gnupg.nix | 9 ++++ modules/polybar.nix | 12 +++++ modules/pulse.nix | 6 +++ modules/x11.nix | 18 +++++++ 20 files changed, 239 insertions(+), 179 deletions(-) create mode 100644 builds/flake.nix delete mode 100644 home/terminal.nix create mode 100644 home/tty-progs.nix create mode 100644 home/tty.nix create mode 100644 home/x11-progs.nix create mode 100644 home/x11.nix create mode 100644 modules/bash.nix create mode 100644 modules/common.nix create mode 100644 modules/discord.nix create mode 100644 modules/fonts.nix create mode 100644 modules/gnupg.nix create mode 100644 modules/polybar.nix create mode 100644 modules/pulse.nix create mode 100644 modules/x11.nix diff --git a/bootstrap.nix b/bootstrap.nix index 6f35be0..d2a053b 100644 --- a/bootstrap.nix +++ b/bootstrap.nix @@ -1,11 +1,10 @@ { config, pkgs, ... }: { - imports = - [ - ./hardware-configuration.nix - ]; - + imports = [ + ./hardware-configuration.nix + ]; + environment.systemPackages = with pkgs; [ git neovim diff --git a/boxes/virtbox.nix b/boxes/virtbox.nix index 2efc0f2..9dd9134 100644 --- a/boxes/virtbox.nix +++ b/boxes/virtbox.nix @@ -1,6 +1,13 @@ { lib, config, pkgs, ...}: { + imports = [ + ../bootstrap.nix + ../modules/common.nix + ../modules/x11.nix + ../modules/discord.nix + ]; + boot.loader.grub.enable = true; boot.loader.grub.device = "/dev/vda"; diff --git a/builds/flake.nix b/builds/flake.nix new file mode 100644 index 0000000..12ff458 --- /dev/null +++ b/builds/flake.nix @@ -0,0 +1,32 @@ +{ + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; + + outputs = + { nixpkgs, ... }: + let + inherit (nixpkgs) lib; + withSystem = + f: + lib.fold lib.recursiveUpdate { } ( + map f [ + "x86_64-linux" + "x86_64-darwin" + "aarch64-linux" + "aarch64-darwin" + ] + ); + mkPackages = pkgs: { + st = pkgs.callPackage ./st.nix { }; + rebuild = pkgs.callPackage ./rebuild.nix { }; + utils = pkgs.callPackage ./utils.nix { }; + pash = pkgs.callPackage ./pash.nix { }; + }; + in + withSystem ( + system: { + overlays.default = final: _: mkPackages final; + + packages.${system} = mkPackages nixpkgs.legacyPackages.${system}; + } + ); +} diff --git a/common/desktop.nix b/common/desktop.nix index cfe137c..65506e4 100644 --- a/common/desktop.nix +++ b/common/desktop.nix @@ -1,120 +1,7 @@ { lib, config, pkgs, ...}: -let - customPolybar = pkgs.polybar.override { - alsaSupport = true; - pulseSupport = true; - }; -in { +{ imports = [ ./main.nix ]; - - services.xserver = { - enable = true; - libinput.enable = true; - layout = "us"; - - displayManager.sx.enable = true; - }; - - sound.enable = true; - hardware.pulseaudio.enable = true; - - nixpkgs.config = { - allowUnfree = true; - permittedInsecurePackages = [ - "libxls-1.6.2" - ]; - }; - - environment.systemPackages = with pkgs; [ - sx - fzy - xclip - xcape - ffmpeg - man-pages - - ncmpcpp - pciutils - tor-browser-bundle-bin - xscreensaver - ncpamixer - gpick - calcurse - dunst - libnotify - tig - mpv - yt-dlp - tmux - lynx - feh - elinks - sc-im - ledger - remind - python3 - pinentry-curses - magic-wormhole - xbrightness - xdotool - figlet - neomutt - - unzip - lua-language-server - rnix-lsp - python311Packages.jedi-language-server - - ungoogled-chromium - discord - - customPolybar - (pkgs.callPackage ../builds/utils.nix {}) - (pkgs.callPackage ../builds/st.nix {}) - (pkgs.callPackage ../builds/pash.nix {}) - ]; - - fonts.packages = with pkgs; [ - fantasque-sans-mono - ]; - - programs.gnupg.agent = { - enable = true; - pinentryFlavor = "gtk2"; - enableSSHSupport = true; - }; - - users.users.usr = { - isNormalUser = true; - extraGroups = [ "wheel" ]; - initialPassword = "usr"; - packages = with pkgs; [ - tree - bspwm - sxhkd - ]; - }; - - # honking impure, but who's counting anyway? - system.activationScripts.test-script.text = '' - #!${pkgs.bash}/bin/bash - - if [ "$(${pkgs.coreutils}/bin/whoami)" = "usr"]; then - ${pkgs.coreutils}/bin/mkdir -p /home/usr/git - ${pkgs.git}/bin/git https://git.beepboop.systems/rndusr/dot /home/usr/git/dot - ${pkgs.git}/bin/git https://git.beepboop.systems/rndusr/privdata /home/usr/git/privdata - fi - ''; - - environment.etc = { - "profile.local" = { - text = "source /home/usr/.config/bash/profile"; - }; - "bashrc.local" = { - text = "source /home/usr/.config/bash/bashrc"; - }; - }; } diff --git a/common/main.nix b/common/main.nix index fe07f0b..f500090 100644 --- a/common/main.nix +++ b/common/main.nix @@ -1,36 +1,5 @@ { lib, config, pkgs, ... }: -let -my_neovim = pkgs.neovim.overrideAttrs (oldAttrs: { - buildInputs = oldAttrs.buildInputs or [] ++ [ pkgs.luajitPackages.luaexpat ]; -}); -in { - imports = - [ - ../hardware-configuration.nix # include the results of the hardware scan - ]; - - networking.networkmanager.enable = true; - - time.timeZone = "America/Chicago"; - - i18n.defaultLocale = "en_US.UTF-8"; - console = { - font = "Lat2-Terminus16"; - keyMap = "us"; - }; - - environment.systemPackages = with pkgs; [ - curl - htop - git - tree - dig - htop - gnumake - - (pkgs.callPackage ../builds/rebuild.nix {}) - ]; - +{ system.stateVersion = "23.11"; # don't change this, lol } diff --git a/flake.lock b/flake.lock index 4cc3329..091d1e1 100644 --- a/flake.lock +++ b/flake.lock @@ -79,7 +79,25 @@ "inputs": { "firefox-addons": "firefox-addons", "home-manager": "home-manager", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "utils": "utils" + } + }, + "utils": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1, + "narHash": "sha256-WtyNlVS46B3e7GlJY0S5p9lKfp++kVudfkzinGtTP+8=", + "path": "/nix/store/4910sx6j7s74xb9ywmp0piqfgkr2v3lx-source/builds", + "type": "path" + }, + "original": { + "path": "/nix/store/4910sx6j7s74xb9ywmp0piqfgkr2v3lx-source/builds", + "type": "path" } } }, diff --git a/flake.nix b/flake.nix index 577b9a5..65f3a9c 100644 --- a/flake.nix +++ b/flake.nix @@ -11,23 +11,25 @@ url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; }; + utils = { + url = "./builds"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; - outputs = { self, nixpkgs, home-manager, firefox-addons, ... }@inputs: { + outputs = { self, nixpkgs, home-manager, firefox-addons, utils, ... }@inputs: { nixosConfigurations = { virtbox = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; }; modules = [ - ./bootstrap.nix ./boxes/virtbox.nix - ./common/desktop.nix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { inherit inputs; }; - home-manager.users.usr = import ./home/terminal.nix; + home-manager.users.usr = import ./home/x11.nix; } ]; }; diff --git a/home/terminal.nix b/home/terminal.nix deleted file mode 100644 index dd74e0a..0000000 --- a/home/terminal.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, inputs, config, pkgs, home, ... }: - -{ - imports = [ - ./bash/default.nix - ./bspwm/default.nix - ./git/default.nix - ./htop/default.nix - ./nvim/default.nix - ./python/default.nix - ./polybar/default.nix - ./sx/default.nix - ./sxhkd/default.nix - ./tridactyl/default.nix - ./zathura/default.nix - ./wallpapers/default.nix - ./firefox/default.nix - ./gnupg/default.nix - ./emacs/default.nix - ]; - - home.stateVersion = "23.11"; -} diff --git a/home/tty-progs.nix b/home/tty-progs.nix new file mode 100644 index 0000000..e69e739 --- /dev/null +++ b/home/tty-progs.nix @@ -0,0 +1,17 @@ +{ lib, config, pkgs, ...}: + +{ + home.packages = with pkgs; [ + cmus # music player + ncpamixer # audio mixer + yt-dlp # youtube downloader + tmux # (t)erminal (mu)ltiple(x)er + elinks # tty web browser + ledger # accounting + neomutt # mail + curl + tree + dig + python3 # nice interactive calculator and shell + ]; +} diff --git a/home/tty.nix b/home/tty.nix new file mode 100644 index 0000000..1d3b784 --- /dev/null +++ b/home/tty.nix @@ -0,0 +1,16 @@ +{ lib, inputs, config, pkgs, home, ... }: + +{ + imports = [ + ./bash + ./git + ./htop + ./nvim + ./python + ./gnupg + + ./tty-progs.nix + ]; + + home.stateVersion = "23.11"; +} diff --git a/home/x11-progs.nix b/home/x11-progs.nix new file mode 100644 index 0000000..74b7f82 --- /dev/null +++ b/home/x11-progs.nix @@ -0,0 +1,13 @@ +{ lib, config, pkgs, ...}: + +{ + home.packages = with pkgs; [ + xclip + xcape + xscreensaver + mpv + feh + xbrightness + xdotool + ]; +} diff --git a/home/x11.nix b/home/x11.nix new file mode 100644 index 0000000..299f1e3 --- /dev/null +++ b/home/x11.nix @@ -0,0 +1,18 @@ +{ lib, inputs, config, pkgs, home, ... }: + +{ + imports = [ + ./bspwm + ./polybar + ./sx + ./sxhkd + ./tridactyl + ./zathura + ./wallpapers + ./firefox + ./emacs + + ./x11-progs.nix + ./tty.nix + ]; +} diff --git a/modules/bash.nix b/modules/bash.nix new file mode 100644 index 0000000..c774a3a --- /dev/null +++ b/modules/bash.nix @@ -0,0 +1,13 @@ +{ lib, config, pkgs, ...}: + +{ + # make the home-manager .config/bash/(profile/bashrc) work + environment.etc = { + "profile.local" = { + text = "source /home/usr/.config/bash/profile"; + }; + "bashrc.local" = { + text = "source /home/usr/.config/bash/bashrc"; + }; + }; +} diff --git a/modules/common.nix b/modules/common.nix new file mode 100644 index 0000000..7f90a13 --- /dev/null +++ b/modules/common.nix @@ -0,0 +1,33 @@ +{ lib, config, pkgs, inputs, ...}: + +{ + imports = [ + ./bash.nix + ]; + + environment.systemPackages = [ +# inputs.utilpkg.packages.st +# inputs.utilpkg.packages.rebuild +# inputs.utilpkg.packages.utils +# inputs.utilpkg.st +# inputs.utilpkg.rebuild +# inputs.utilpkg.utils + pkgs.man-pages + ]; + + + networking.networkmanager.enable = true; + time.timeZone = "America/Chicago"; + + i18n.defaultLocale = "en_US.UTF-8"; + console = { + font = "Lat2-Terminus16"; + keyMap = "us"; + }; + + users.users.usr = { + isNormalUser = true; + extraGroups = [ "wheel" ]; + initialPassword = "usr"; + }; +} diff --git a/modules/discord.nix b/modules/discord.nix new file mode 100644 index 0000000..a319095 --- /dev/null +++ b/modules/discord.nix @@ -0,0 +1,7 @@ +{ lib, config, pkgs, ...}: + +{ + environment.systemPackages = with pkgs; [ + discord + ]; +} diff --git a/modules/fonts.nix b/modules/fonts.nix new file mode 100644 index 0000000..7847549 --- /dev/null +++ b/modules/fonts.nix @@ -0,0 +1,7 @@ +{ lib, config, pkgs, ...}: + +{ + fonts.packages = with pkgs; [ + fantasque-sans-mono + ]; +} diff --git a/modules/gnupg.nix b/modules/gnupg.nix new file mode 100644 index 0000000..8784ba1 --- /dev/null +++ b/modules/gnupg.nix @@ -0,0 +1,9 @@ +{ lib, config, pkgs, ...}: + +{ + programs.gnupg.agent = { + enable = true; + pinentryFlavor = "gtk2"; + enableSSHSupport = true; + }; +} diff --git a/modules/polybar.nix b/modules/polybar.nix new file mode 100644 index 0000000..33bd46f --- /dev/null +++ b/modules/polybar.nix @@ -0,0 +1,12 @@ +{ lib, config, pkgs, ...}: + +let + customPolybar = pkgs.polybar.override { + alsaSupport = true; + pulseSupport = true; + }; +in { + environment.systemPackages = with pkgs; [ + customPolybar + ]; +} diff --git a/modules/pulse.nix b/modules/pulse.nix new file mode 100644 index 0000000..ed477eb --- /dev/null +++ b/modules/pulse.nix @@ -0,0 +1,6 @@ +{ lib, config, pkgs, ...}: + +{ + sound.enable = true; + hardware.pulseaudio.enable = true; +} diff --git a/modules/x11.nix b/modules/x11.nix new file mode 100644 index 0000000..d6e3d52 --- /dev/null +++ b/modules/x11.nix @@ -0,0 +1,18 @@ +{ lib, config, pkgs, ...}: + +{ + imports = [ + ./polybar.nix + ./gnupg.nix + ./fonts.nix + ./pulse.nix + ]; + + services.xserver = { + enable = true; + libinput.enable = true; + layout = "us"; + + displayManager.sx.enable = true; + }; +}