summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevin Finlinson <devin.finlinson@pm.me>2023-09-29 21:10:20 -0600
committerDevin Finlinson <devin.finlinson@pm.me>2023-09-29 21:10:20 -0600
commitcc6c2ad12e8df38456d43293d2ad627df80d1c1b (patch)
tree369faf5dc4de4d44cee9624d8db371e81a1418de
parent8a5a019f21e0597dd24588c6364dd1bba075451c (diff)
parent5265ac12ec68637b725562e5762d464d57864617 (diff)
changing tons of stuff it will definitely break
-rw-r--r--flake.nix146
-rw-r--r--home-manager/home.nix18
-rw-r--r--machines/khad/configuration.nix133
-rw-r--r--machines/khad/hardware-configuration.nix50
-rw-r--r--machines/zenbook/configuration.nix2
-rw-r--r--modules/environment.nix2
-rw-r--r--modules/system-packages.nix1
7 files changed, 342 insertions, 10 deletions
diff --git a/flake.nix b/flake.nix
index 50a89d7..3823638 100644
--- a/flake.nix
+++ b/flake.nix
@@ -6,15 +6,128 @@
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
- url = "github:nix-community/home-manager/release-23.05";
+ url = "github:nix-community/home-manager/release-23.05";
+ # The `follows` keyword in inputs is used for inheritance.
+ # Here, `inputs.nixpkgs` of home-manager isn't kept consistent with the `inputs.nixpkgs` of the current flake,
+ # to not avoid problems caused by different versions of nixpkgs dependencies.
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
- # hyprland.url = "github:hyprwm/Hyprland";
+ # modern window compositor
+ hyprland.url = "github:hyprwm/Hyprland";
+
+ #community wayland nixpkgs
+ # nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
+ # anyrun - a wayland launcher
+ # anyrun = {
+ # url = "github:Kirottu/anyrun";
+ # inputs.nixpkgs.follows = "nixpkgs-unstable";
+ # };
+
+ # # generate iso/qcow2/docker/... image from nixos configuration
+ # nixos-generators = {
+ # url = "github:nix-community/nixos-generators";
+ # inputs.nixpkgs.follows = "nixpkgs";
+ # };
+
+ #secrets management, lock with git commit at 20xx/x/xx
+ #.........
+
+ ##################### Some non-flake repositories #########################################
+
+ # # AstroNvim is an aesthetic and feature-ruch neovim config.
+ # astronvim = {
+ # url = "github:AstroNvim/AstroVnim/v3.36.0";
+ # flake = false;
+ # };
+
+ # # useful nushell scripts, such as auto_completion
+ # nushell-scripts = {
+ # url = "github:nushell/nu_scripts"
+ # flake = false;
+ # };
+
+ # ryan4yin wallpapers
+ wallpapers = {
+ url = "github:ryan4yin/wallpapers";
+ flake = false;
+ };
+
+ # # nur-ryan4yin = {
+ # url = "github:ryan4yin/nur-packages";
+ # # inputs.nixpkgs.follows "nixpkgs";
+ # };
+
+ # # riscv64 SBCs
+ # nixos-licheepi4a.url = "github:ryan4yin/nixos-licheepi4a";
+ # # nixos-jh7110.url = "github:ryan4yin/nixos-jh7110";
+
+ # aarch64 SBCs
+ # nixos-rk3588.url = "github:ryan4yin/nixos-rk3588";
+
+ ############# Personal repositories ########################################
+
+ # # my private secrets, it's a private repository, you need to replace it with your own.
+ # # use ssh protocol to authenticate via ssh-agent/ssh-key, and shallow clone to save time
+ # mysecrets = {
+ # url = "";
+ # flake = false;
+ # };
+
+ ##################### Color Schemes #######################################
+
+ #color scheme -catppuccin
+ catppuccin-btop = {
+ url = "github:catppuccin/btop";
+ flake = false;
+ };
+ catppuccin-bat = {
+ url = "github:catppuccin/bat";
+ flake = false;
+ };
+ catppuccin-alacritty = {
+ url = "github:catppuccing/alacritty";
+ flake = false;
+ };
+ catppuccin-helix = {
+ url = "github:catppuccin/helix";
+ flake = false;
+ };
+ catppuccin-starship = {
+ url = "github:catppuccin/starship";
+ flake = false;
+ };
+ catppuccin-hyprland = {
+ url = "github:catppuccin/hyprland";
+ flake = false;
+ };
+
+
+ # # the nixConfig here only affects the flake inself, not the system configuration!
+ # nixConfig = {
+ # experimental-features = ["nix-command" "flakes"];
+
+ # substituters = [
+ # #my own cache server
+ # "url-here"
+ # "https://cache.nixos.org"
+ # "https://hyprland.cachix.org"
+ # ];
+
+ # # nix community's cache server
+ # extra-substituters = [
+ # "https://nix-community.cachix.org"
+ # "https://nixpkgs-wayland.cachix.org"
+ # ];
+ # extra-trusted-public-keys = [
+ # "keys here"
+ # ];
+ # };
+
};
# outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, home-manager, hyprland, ... }: {
- outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, home-manager, ... }: {
+ outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, home-manager, wallpapers, catppuccin-btop, catppuccin-bat, catppuccin-alacritty, catppuccin-starship, catppuccin-hyprland, ... }: {
nixosConfigurations = {
@@ -27,6 +140,7 @@
# Default users
./modules/user-profiles/defin.nix
+ ./modules/user-profiles/root.nix
home-manager.nixosModules.home-manager {
@@ -57,6 +171,32 @@
# nix.registry.nixpkgs.flake = nixpkgs;
];
};
+
+ khad = nixpkgs.lib.nixosSystem {
+ modules = [
+ ./machines/khad/configuration.nix
+
+ ./machines/khad/hardware-configuration.nix
+
+ ./modules/user-profiles/defin.nix
+
+ home-manager.nixosModules.home-manager {
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
+ home-manager.users.defin = import ./home-manager/home.nix;
+ }
+ ./modules/hyprland.nix
+
+ ./modules/bluetooth.nix
+ ./modules/environment.nix
+ ./modules/kde-connect.nix
+ ./modules/nix-common.nix
+ ./modules/services.nix
+ ./modules/steam.nix
+ ./modules/sway.nix
+ ./modules/system-packages.nix
+ ];
+ };
};
};
}
diff --git a/home-manager/home.nix b/home-manager/home.nix
index 2e40074..8ce8d5e 100644
--- a/home-manager/home.nix
+++ b/home-manager/home.nix
@@ -45,14 +45,19 @@
yakuake
pass
btop
+ helvum
mpv
+ lutris
+ wine
# unstable.yt-dlp
yt-dlp
telegram-desktop
obsidian
- zettlr
+ zettlr
+ element-desktop
discord
- steam-tui
+ lutris
+ heroic
# texlive-combined-full
# nushell
starship
@@ -128,10 +133,11 @@
};
};
- # helix = {
- # enable = true;
- # # defaultEditor = true;
- # };
+ helix = {
+ enable = true;
+ # defaultEditor = true;
+ settings.theme = "base16_transparent";
+ };
# Let Home Manager install and manage itself.
# home-manager.enable = true;
};
diff --git a/machines/khad/configuration.nix b/machines/khad/configuration.nix
new file mode 100644
index 0000000..7a754cf
--- /dev/null
+++ b/machines/khad/configuration.nix
@@ -0,0 +1,133 @@
+# Edit 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, ... }:
+
+{
+ imports =
+ [ # Include the results of the hardware scan.
+ ./hardware-configuration.nix
+ ];
+
+ # Use the systemd-boot EFI boot loader.
+ # boot.loader.grub.enable = true;
+ # boot.loader.grub.efiSupport = true;
+ # boot.loader.grub.devices = [
+ # "/dev/sda"
+ # ];
+ # boot.loader.grub.theme = pkgs.nixos-grub2-theme;
+ boot.loader.systemd-boot.enable = true;
+ # boot.loader.efi.canTouchEfiVariables = true;
+ boot.loader.systemd-boot.graceful = true;
+
+ networking.hostName = "khad"; # Define your hostname.
+ # Pick only one of the below networking options.
+ # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
+ networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
+
+ nixpkgs = {
+ # texlive.combined.scheme-medium;
+ system = "x84_64-linux";
+ config.allowUnfree = true;
+ };
+
+ services.xserver.videoDrivers = [ "nvidia" ];
+ hardware.opengl.driSupport32Bit = true;
+ environment.shellInit = ''export NIXPATH="/nix/var/nix/profiles/per-user/$USER/channels:nixos-config=/etc/nixos/machines/khad/configuration.nix"'';
+
+ # Set your time zone.
+ time.timeZone = "US/Mountain";
+
+ # Configure network proxy if necessary
+ # networking.proxy.default = "http://user:password@proxy:port/";
+ # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
+
+ # Select internationalisation properties.
+ # i18n.defaultLocale = "en_US.UTF-8";
+ # console = {
+ # font = "Lat2-Terminus16";
+ # keyMap = "us";
+ # useXkbConfig = true; # use xkbOptions in tty.
+ # };
+
+ # # Enable the X11 windowing system.
+ # services.xserver.enable = true;
+
+
+ # # Enable the Plasma 5 Desktop Environment.
+ # services.xserver.displayManager.sddm.enable = true;
+ # services.xserver.desktopManager.plasma5.enable = true;
+
+
+ # Configure keymap in X11
+ # services.xserver.layout = "us";
+ # services.xserver.xkbOptions = "eurosign:e,caps:escape";
+
+ # Enable CUPS to print documents.
+ # services.printing.enable = true;
+
+ # Enable sound.
+ sound.enable = true;
+ # hardware.pulseaudio.enable = true;
+
+ # Enable touchpad support (enabled default in most desktopManager).
+ # services.xserver.libinput.enable = true;
+
+ # Define a user account. Don't forget to set a password with ‘passwd’.
+ # users.users.defin= {
+ # isNormalUser = true;
+ # description = "Devin finlinson";
+ # extraGroups = [ "wheel" "builders" "video" "input"]; # Enable ‘sudo’ for the user.
+ # shell = pkgs.nushell;
+ # hashedPassword = "$6$UljPNAdxZ22lP3Bc$8VaEAacZxtXM3Zji2IA7Jf5fXs9pFnAVQff1d8IbfFOKCvjibceyopOAjRXa8lXtpOSJgPW1OO1dzOspqhWnz0";
+ # packages = with pkgs; [
+ # firefox
+ # nushell
+ # tree
+ # ];
+ # };
+
+ # List packages installed in system profile. To search, run:
+ # $ nix search wget
+ # environment.systemPackages = with pkgs; [
+ # # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
+ # helix
+ # wget
+ # ];
+
+ # Some programs need SUID wrappers, can be configured further or are
+ # started in user sessions.
+ programs.light.enable = true;
+ programs.mtr.enable = true;
+ programs.gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ };
+
+ # List services that you want to enable:
+
+ # Enable the OpenSSH daemon.
+ # services.openssh.enable = true;
+
+ # Open ports in the firewall.
+ # networking.firewall.allowedTCPPorts = [ ... ];
+ # networking.firewall.allowedUDPPorts = [ ... ];
+ # Or disable the firewall altogether.
+ # networking.firewall.enable = false;
+
+ # Copy the NixOS configuration file and link it from the resulting system
+ # (/run/current-system/configuration.nix). This is useful in case you
+ # accidentally delete configuration.nix.
+ # system.copySystemConfiguration = true;
+
+ # This value determines the NixOS release from which the default
+ # settings for stateful data, like file locations and database versions
+ # on your system were taken. It's perfectly fine and recommended to leave
+ # this value at the release version of the first install of this system.
+ # Before changing this value read the documentation for this option
+ # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
+ system.stateVersion = "23.05"; # Did you read the comment?
+
+}
+
diff --git a/machines/khad/hardware-configuration.nix b/machines/khad/hardware-configuration.nix
new file mode 100644
index 0000000..dc32bab
--- /dev/null
+++ b/machines/khad/hardware-configuration.nix
@@ -0,0 +1,50 @@
+# Do not modify this file! It was generated by ‘nixos-generate-config’
+# and may be overwritten by future invocations. Please make changes
+# to /etc/nixos/configuration.nix instead.
+{ config, lib, pkgs, modulesPath, ... }:
+
+{
+ imports =
+ [ (modulesPath + "/installer/scan/not-detected.nix")
+ ];
+
+ boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "sd_mod" "sr_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/d7025289-0e65-4ff8-a774-1a8a7b104858";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/B741-9318";
+ fsType = "vfat";
+ };
+
+ fileSystems."/home" =
+ { device = "/dev/disk/by-uuid/9aa90dd0-4123-4caf-ac6e-8a299dda3ad4";
+ fsType = "ext4";
+ };
+
+ fileSystems."/home/defin/Drives" =
+ { device = "/dev/disk/by-uuid/ba4e233d-d31a-4e5a-9054-0241bd58ba8e";
+ fsType = "ext4";
+ };
+
+ swapDevices =
+ [ { device = "/dev/disk/by-uuid/e75daaf1-d6c6-43c3-8a61-ff26b4304f71"; }
+ ];
+
+ # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
+ # (the default) this is the recommended approach. When using systemd-networkd it's
+ # still possible to use this option, but it's recommended to use it in conjunction
+ # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
+ networking.useDHCP = lib.mkDefault true;
+ # networking.interfaces.eno1.useDHCP = lib.mkDefault true;
+ # networking.interfaces.enp0s20u4.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/machines/zenbook/configuration.nix b/machines/zenbook/configuration.nix
index cf55eed..77e7fe6 100644
--- a/machines/zenbook/configuration.nix
+++ b/machines/zenbook/configuration.nix
@@ -17,6 +17,8 @@
config.allowUnfree = true;
};
+ environment.shellInit = ''export NIXPATH="/nix/var/nix/profiles/per-user/$USER/channels:nixos-config=/etc/nixos/machines/zenbook/configuration.nix"'';
+
networking = {
firewall = {
# Open ports in the firewall.
diff --git a/modules/environment.nix b/modules/environment.nix
index 07bef00..6842a8c 100644
--- a/modules/environment.nix
+++ b/modules/environment.nix
@@ -1,7 +1,7 @@
{ config, lib, ... }: {
environment = {
# include user channels in NIX_PATH
- shellInit = ''export NIXPATH="/nix/var/nix/profiles/per-user/$USER/channels:nixos-config=/etc/nixos/machines/zenbook/configuration.nix"'';
+ # shellInit = ''export NIXPATH="/nix/var/nix/profiles/per-user/$USER/channels:nixos-config=/etc/nixos/machines/zenbook/configuration.nix"'';
# List packages installed in system profile. To search, run:
# $ nix search wget
variables = {
diff --git a/modules/system-packages.nix b/modules/system-packages.nix
index 2c640ba..1ffa540 100644
--- a/modules/system-packages.nix
+++ b/modules/system-packages.nix
@@ -52,6 +52,7 @@ in
unzip
git
wl-clipboard
+ pciutils
#For hyprland
waybar
#For sway