style: add alejandra and format

This commit is contained in:
Michael Thomas 2023-11-16 10:55:39 -05:00
parent 754404ace1
commit 59624111cf
39 changed files with 666 additions and 612 deletions

5
Makefile Normal file
View File

@ -0,0 +1,5 @@
check:
alejandra --check ./**/*.nix
format:
alejandra ./**/*.nix

View File

@ -8,7 +8,7 @@
utils.url = "github:numtide/flake-utils"; utils.url = "github:numtide/flake-utils";
rust-overlay.url = "github:oxalica/rust-overlay"; rust-overlay.url = "github:oxalica/rust-overlay";
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"; nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
nixos-wsl = { nixos-wsl = {
url = "github:nix-community/NixOS-WSL"; url = "github:nix-community/NixOS-WSL";
@ -16,10 +16,10 @@
nixpkgs.follows = "nixpkgs"; nixpkgs.follows = "nixpkgs";
}; };
}; };
vscode-server = { vscode-server = {
url = "github:nix-community/nixos-vscode-server"; url = "github:nix-community/nixos-vscode-server";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
darwin = { darwin = {
url = "github:lnl7/nix-darwin/master"; url = "github:lnl7/nix-darwin/master";
@ -34,20 +34,32 @@
}; };
}; };
outputs = { self, nixpkgs, unstable, nur, utils, rust-overlay, nix-vscode-extensions, nixos-wsl, vscode-server, darwin, home-manager, ... }@inputs: { outputs = {
self,
nixpkgs,
unstable,
nur,
utils,
rust-overlay,
nix-vscode-extensions,
nixos-wsl,
vscode-server,
darwin,
home-manager,
...
} @ inputs: {
# This repo's overlay plus any other overlays you use # This repo's overlay plus any other overlays you use
# If you want to use packages from flakes that are not nixpkgs (such as NUR), add their overlays here.\ # If you want to use packages from flakes that are not nixpkgs (such as NUR), add their overlays here.\
overlays = { overlays = {
default = import ./overlays inputs; default = import ./overlays inputs;
pkg-sets = ( pkg-sets = (
final: prev: { final: prev: {
unstable = import inputs.unstable { system = final.system; }; unstable = import inputs.unstable {system = final.system;};
trunk = import inputs.trunk { system = final.system; }; trunk = import inputs.trunk {system = final.system;};
} }
); );
rust-overlay = rust-overlay.overlays.default; rust-overlay = rust-overlay.overlays.default;
vscode-extensions = nix-vscode-extensions.overlays.default; vscode-extensions = nix-vscode-extensions.overlays.default;
}; };
overlaysModule = { overlaysModule = {
@ -55,7 +67,6 @@
}; };
nixosConfigurations = { nixosConfigurations = {
loft = nixpkgs.lib.nixosSystem { loft = nixpkgs.lib.nixosSystem {
system = utils.lib.system.x86_64-linux; system = utils.lib.system.x86_64-linux;
modules = [ modules = [
@ -66,7 +77,7 @@
./machines/loft/configuration.nix ./machines/loft/configuration.nix
]; ];
specialArgs = { inherit inputs; }; specialArgs = {inherit inputs;};
}; };
kitchen = nixpkgs.lib.nixosSystem { kitchen = nixpkgs.lib.nixosSystem {
@ -79,7 +90,7 @@
./machines/kitchen/configuration.nix ./machines/kitchen/configuration.nix
]; ];
specialArgs = { inherit inputs; }; specialArgs = {inherit inputs;};
}; };
# WSL environment # WSL environment
@ -88,21 +99,20 @@
modules = [ modules = [
self.overlaysModule self.overlaysModule
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
vscode-server.nixosModules.default vscode-server.nixosModules.default
./modules/containers.nix ./modules/containers.nix
./modules/nix.nix ./modules/nix.nix
./machines/work/configuration.nix ./machines/work/configuration.nix
]; ];
specialArgs = { inherit inputs; }; specialArgs = {inherit inputs;};
}; };
}; };
darwinConfigurations = { darwinConfigurations = {
mac = darwin.lib.darwinSystem { mac = darwin.lib.darwinSystem {
system = "aarch64-darwin"; system = "aarch64-darwin";
specialArgs = { inherit inputs; }; specialArgs = {inherit inputs;};
modules = [ modules = [
self.overlaysModule self.overlaysModule
home-manager.darwinModules.home-manager home-manager.darwinModules.home-manager
@ -123,14 +133,17 @@
homeDirectory = "/home/michael"; homeDirectory = "/home/michael";
username = "michael"; username = "michael";
stateVersion = "21.05"; stateVersion = "21.05";
configuration = { config, pkgs, ... }: configuration = {
{ config,
programs.home-manager.enable = true; pkgs,
...
}: {
programs.home-manager.enable = true;
imports = [ imports = [
./user/environments/nixos/home.nix ./user/environments/nixos/home.nix
]; ];
}; };
}; };
wsl = inputs.home-manager.lib.homeManagerConfiguration { wsl = inputs.home-manager.lib.homeManagerConfiguration {
@ -138,14 +151,17 @@
homeDirectory = "/home/michael"; homeDirectory = "/home/michael";
username = "michael"; username = "michael";
stateVersion = "21.05"; stateVersion = "21.05";
configuration = { config, pkgs, ... }: configuration = {
{ config,
programs.home-manager.enable = true; pkgs,
...
}: {
programs.home-manager.enable = true;
imports = [ imports = [
./user/environments/wsl/home.nix ./user/environments/wsl/home.nix
]; ];
}; };
}; };
mac = inputs.home-manager.lib.homeManagerConfiguration { mac = inputs.home-manager.lib.homeManagerConfiguration {
@ -153,17 +169,19 @@
homeDirectory = "/Users/michael"; homeDirectory = "/Users/michael";
username = "michael"; username = "michael";
stateVersion = "22.05"; stateVersion = "22.05";
configuration = { config, pkgs, ... }: configuration = {
{ config,
programs.home-manager.enable = true; pkgs,
...
}: {
programs.home-manager.enable = true;
imports = [ imports = [
./user/environments/mac/home.nix ./user/environments/mac/home.nix
]; ];
}; };
}; };
}; };
}; };
# // utils.lib.eachSystem [ "aarch64-linux" "x86_64-darwin" "x86_64-linux" ] (system: { # // utils.lib.eachSystem [ "aarch64-linux" "x86_64-darwin" "x86_64-linux" ] (system: {
# nixpkgs = import nixpkgs { # nixpkgs = import nixpkgs {

View File

@ -1,76 +1,76 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{ {
imports = config,
[ # Include the results of the hardware scan. pkgs,
./hardware-configuration.nix ...
]; }: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
];
networking.hostName = "kitchen-nixos"; # Define your hostname. networking.hostName = "kitchen-nixos"; # Define your hostname.
# The global useDHCP flag is deprecated, therefore explicitly set to false here. # 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 # Per-interface useDHCP will be mandatory in the future, so this generated config
# replicates the default behaviour. # replicates the default behaviour.
networking.useDHCP = false; networking.useDHCP = false;
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
# Set your time zone. # Set your time zone.
time.timeZone = "America/New_York"; time.timeZone = "America/New_York";
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
wget wget
micro micro
gnome.gnome-tweaks gnome.gnome-tweaks
]; ];
home-manager = { home-manager = {
users.michael = import ../../user/environments/nixos/home.nix pkgs; users.michael = import ../../user/environments/nixos/home.nix pkgs;
useGlobalPkgs = true; useGlobalPkgs = true;
}; };
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
# started in user sessions. # started in user sessions.
# programs.mtr.enable = true; # programs.mtr.enable = true;
# programs.gnupg.agent = { # programs.gnupg.agent = {
# enable = true; # enable = true;
# enableSSHSupport = true; # enableSSHSupport = true;
# pinentryFlavor = "gnome3"; # pinentryFlavor = "gnome3";
# }; # };
# List services that you want to enable: # List services that you want to enable:
# Enable the OpenSSH daemon. # Enable the OpenSSH daemon.
# services.openssh.enable = true; # services.openssh.enable = true;
# Open ports in the firewall. # Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; # networking.firewall.enable = false;
programs.adb.enable = true; programs.adb.enable = true;
programs.zsh.enable = true; programs.zsh.enable = true;
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
users.users.michael = { users.users.michael = {
isNormalUser = true; isNormalUser = true;
description = "Michael Thomas"; description = "Michael Thomas";
extraGroups = [ "wheel" "docker" "podman" "adbusers" "dialout" ]; extraGroups = ["wheel" "docker" "podman" "adbusers" "dialout"];
shell = pkgs.zsh; shell = pkgs.zsh;
}; };
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave # on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system. # this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "22.05"; # Did you read the comment? system.stateVersion = "22.05"; # Did you read the comment?
}
}

View File

@ -1,37 +1,41 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
boot.resumeDevice = "/dev/disk/by-uuid/9d98ce9b-236f-4a03-910a-84c5d5f12f03"; boot.resumeDevice = "/dev/disk/by-uuid/9d98ce9b-236f-4a03-910a-84c5d5f12f03";
boot.supportedFilesystems = [ "ntfs" ]; boot.supportedFilesystems = ["ntfs"];
fileSystems."/" = {
device = "/dev/disk/by-uuid/9d98ce9b-236f-4a03-910a-84c5d5f12f03";
fsType = "ext4";
};
fileSystems."/boot" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/D725-6983"; device = "/dev/disk/by-uuid/9d98ce9b-236f-4a03-910a-84c5d5f12f03";
fsType = "vfat"; fsType = "ext4";
}; };
swapDevices = [ fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/D725-6983";
device = "/swapfile"; fsType = "vfat";
priority = 0; };
size = 2048;
}
];
nix.settings.max-jobs = lib.mkDefault 12; swapDevices = [
# High-DPI console {
console.font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-u28n.psf.gz"; device = "/swapfile";
} priority = 0;
size = 2048;
}
];
nix.settings.max-jobs = lib.mkDefault 12;
# High-DPI console
console.font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-u28n.psf.gz";
}

View File

@ -1,104 +1,105 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{ {
imports = config,
[ # Include the results of the hardware scan. pkgs,
./hardware-configuration.nix ...
]; }: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
];
# Set your time zone. # Set your time zone.
time.timeZone = "America/New_York"; time.timeZone = "America/New_York";
# Configure suspend to disk # Configure suspend to disk
systemd.sleep.extraConfig = '' systemd.sleep.extraConfig = ''
SuspendState=disk SuspendState=disk
SuspendMode=suspend SuspendMode=suspend
HibernateMode=platform shutdown HibernateMode=platform shutdown
''; '';
############## ##############
# NETWORKING # # NETWORKING #
############## ##############
networking.useDHCP = false; networking.useDHCP = false;
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
networking.hostName = "loft"; # Define your hostname. networking.hostName = "loft"; # Define your hostname.
networking.firewall.enable = false; networking.firewall.enable = false;
home-manager = { home-manager = {
users.michael = import ../../user/environments/nixos/home.nix pkgs; users.michael = import ../../user/environments/nixos/home.nix pkgs;
useGlobalPkgs = true; useGlobalPkgs = true;
}; };
# Configure network proxy if necessary # Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Select internationalisation properties. # Select internationalisation properties.
# i18n.defaultLocale = "en_US.UTF-8"; # i18n.defaultLocale = "en_US.UTF-8";
# console = { # console = {
# font = "Lat2-Terminus16"; # font = "Lat2-Terminus16";
# keyMap = "us"; # keyMap = "us";
# }; # };
# Configure keymap in X11
# services.xserver.layout = "us";
# services.xserver.xkbOptions = "eurosign:e";
# Enable touchpad support (enabled default in most desktopManager). # Configure keymap in X11
# services.xserver.libinput.enable = true; # services.xserver.layout = "us";
# services.xserver.xkbOptions = "eurosign:e";
programs.adb.enable = true; # Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
programs.zsh.enable = true; programs.adb.enable = true;
users.defaultUserShell = pkgs.zsh; programs.zsh.enable = true;
# Define a user account. Don't forget to set a password with passwd.
users.users.michael = {
isNormalUser = true;
description = "Michael Thomas";
extraGroups = [ "wheel" "docker" "networkmanager" "adbusers" ]; # Enable sudo for the user.
shell = pkgs.zsh;
};
# List packages installed in system profile. To search, run: users.defaultUserShell = pkgs.zsh;
# $ nix search wget # Define a user account. Don't forget to set a password with passwd.
environment.systemPackages = with pkgs; [ users.users.michael = {
wget micro isNormalUser = true;
google-chrome description = "Michael Thomas";
gnome3.gnome-tweaks extraGroups = ["wheel" "docker" "networkmanager" "adbusers"]; # Enable sudo for the user.
gnomeExtensions.gsconnect shell = pkgs.zsh;
]; };
# Some programs need SUID wrappers, can be configured further or are # List packages installed in system profile. To search, run:
# started in user sessions. # $ nix search wget
# programs.mtr.enable = true; environment.systemPackages = with pkgs; [
# programs.gnupg.agent = { wget
# enable = true; micro
# enableSSHSupport = true; google-chrome
# }; gnome3.gnome-tweaks
gnomeExtensions.gsconnect
];
# List services that you want to enable: # Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# Enable the OpenSSH daemon. # List services that you want to enable:
# services.openssh.enable = true;
# Open ports in the firewall. # Enable the OpenSSH daemon.
# networking.firewall.allowedTCPPorts = [ ... ]; # services.openssh.enable = true;
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This value determines the NixOS release from which the default # Open ports in the firewall.
# settings for stateful data, like file locations and database versions # networking.firewall.allowedTCPPorts = [ ... ];
# on your system were taken. Its perfectly fine and recommended to leave # networking.firewall.allowedUDPPorts = [ ... ];
# this value at the release version of the first install of this system. # Or disable the firewall altogether.
# Before changing this value read the documentation for this option # networking.firewall.enable = false;
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "20.09"; # Did you read the comment?
# 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. Its 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 = "20.09"; # Did you read the comment?
} }

View File

@ -1,35 +1,39 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.availableKernelModules = ["xhci_pci" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.blacklistedKernelModules = [ "radeon" "amdgpu" ]; boot.blacklistedKernelModules = ["radeon" "amdgpu"];
# boot.kernelParams = [ "radeon.si_support=0" "radeon.cik_support=0" "amdgpu.si_support=1" "amdgpu.cik_support=1" ]; # boot.kernelParams = [ "radeon.si_support=0" "radeon.cik_support=0" "amdgpu.si_support=1" "amdgpu.cik_support=1" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/76737cbf-9b6b-4236-ac9d-7d0daa9c1bf2"; device = "/dev/disk/by-uuid/76737cbf-9b6b-4236-ac9d-7d0daa9c1bf2";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-uuid/BA82-2808"; device = "/dev/disk/by-uuid/BA82-2808";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ swapDevices = [
{ {
device = "/dev/disk/by-uuid/9943357a-de4b-498b-b408-0b79b74435d1"; device = "/dev/disk/by-uuid/9943357a-de4b-498b-b408-0b79b74435d1";
} }
]; ];
powerManagement.cpuFreqGovernor = lib.mkDefault "performance"; powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
hardware.cpu.intel.updateMicrocode = true; hardware.cpu.intel.updateMicrocode = true;
} }

View File

@ -1,6 +1,8 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
users.users.michael = { users.users.michael = {
home = "/Users/michael"; home = "/Users/michael";
shell = pkgs.zsh; shell = pkgs.zsh;
@ -12,7 +14,7 @@
}; };
environment = { environment = {
shells = with pkgs; [ zsh ]; shells = with pkgs; [zsh];
variables = { variables = {
EDITOR = "nvim"; EDITOR = "nvim";
VISUAL = "nvim"; VISUAL = "nvim";
@ -45,7 +47,7 @@
}; };
}; };
security.pam.enableSudoTouchIdAuth = true; security.pam.enableSudoTouchIdAuth = true;
services = { services = {
nix-daemon.enable = true; nix-daemon.enable = true;

View File

@ -1,10 +1,13 @@
{ lib, pkgs, modulesPath, inputs, ... }:
with lib;
let
defaultUser = "michael";
in
{ {
lib,
pkgs,
modulesPath,
inputs,
...
}:
with lib; let
defaultUser = "michael";
in {
imports = [ imports = [
"${modulesPath}/profiles/minimal.nix" "${modulesPath}/profiles/minimal.nix"
@ -46,7 +49,7 @@ in
users.users.${defaultUser} = { users.users.${defaultUser} = {
uid = pkgs.lib.mkForce 1001; uid = pkgs.lib.mkForce 1001;
extraGroups = [ "wheel" "docker" "podman" ]; extraGroups = ["wheel" "docker" "podman"];
shell = pkgs.zsh; shell = pkgs.zsh;
}; };

View File

@ -1,5 +1,5 @@
{ {
# Enable automatic updates # Enable automatic updates
system.autoUpgrade.enable = true; system.autoUpgrade.enable = true;
system.autoUpgrade.allowReboot = false; system.autoUpgrade.allowReboot = false;
} }

View File

@ -1,9 +1,9 @@
{ {
# Enable Avahi Network Discovery # Enable Avahi Network Discovery
services.avahi = { services.avahi = {
enable = true; enable = true;
nssmdns = true; nssmdns = true;
publish.enable = true; publish.enable = true;
publish.addresses = true; publish.addresses = true;
}; };
} }

View File

@ -1,7 +1,7 @@
{ {
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot.loader.timeout = 0; boot.loader.timeout = 0;
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = false; boot.loader.efi.canTouchEfiVariables = false;
boot.plymouth.enable = true; boot.plymouth.enable = true;
} }

View File

@ -1,13 +1,13 @@
{ {
imports = [ imports = [
./auto-upgrades.nix ./auto-upgrades.nix
./avahi.nix ./avahi.nix
./bootloader.nix ./bootloader.nix
./cups.nix ./cups.nix
./flatpak.nix ./flatpak.nix
./fonts.nix ./fonts.nix
./gnome.nix ./gnome.nix
./nix.nix ./nix.nix
./sound.nix ./sound.nix
]; ];
} }

View File

@ -1,14 +1,13 @@
{ pkgs, ... }: {pkgs, ...}: {
{ # Enable Podman w/ docker compose compatibility
# Enable Podman w/ docker compose compatibility virtualisation.podman = {
virtualisation.podman = { enable = true;
enable = true; dockerSocket.enable = true;
dockerSocket.enable = true; defaultNetwork.settings.dns_enabled = true;
defaultNetwork.settings.dns_enabled = true; };
};
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
docker-client docker-client
docker-compose docker-compose
]; ];
} }

View File

@ -1,8 +1,7 @@
{ pkgs, ... }: {pkgs, ...}: {
{ # Enable CUPS to print documents.
# Enable CUPS to print documents. services.printing = {
services.printing = { enable = true;
enable = true; drivers = [pkgs.epson-escpr2];
drivers = [ pkgs.epson-escpr2 ]; };
}; }
}

View File

@ -1,6 +1,6 @@
{ {
# Enable Flatpak support # Enable Flatpak support
services.flatpak.enable = true; services.flatpak.enable = true;
services.fwupd.enable = true; services.fwupd.enable = true;
appstream.enable = true; appstream.enable = true;
} }

View File

@ -1,24 +1,23 @@
{ pkgs, ... }: {pkgs, ...}: {
{ # Font Settings
# Font Settings fonts = {
fonts = { fonts = with pkgs; [
fonts = with pkgs; [ roboto
roboto inter
inter ];
]; fontconfig = {
fontconfig = { localConf = ''
localConf = '' <alias>
<alias> <family>system-ui</family>
<family>system-ui</family> <prefer>
<prefer> <family>Inter</family>
<family>Inter</family> <family>Roboto</family>
<family>Roboto</family> <family>Cantarell</family>
<family>Cantarell</family> <family>Liberation Sans</family>
<family>Liberation Sans</family> <family>DejaVu Sans</family>
<family>DejaVu Sans</family> </prefer>
</prefer> </alias>
</alias> '';
''; };
}; };
}; }
}

View File

@ -1,9 +1,9 @@
{ {
# Enable the GNOME Desktop Environment. # Enable the GNOME Desktop Environment.
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true; services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true; services.xserver.desktopManager.gnome.enable = true;
services.gnome.gnome-browser-connector.enable = true; services.gnome.gnome-browser-connector.enable = true;
programs.dconf.enable = true; programs.dconf.enable = true;
security.polkit.enable = true; security.polkit.enable = true;
} }

View File

@ -1,21 +1,20 @@
{ pkgs, ... }: {pkgs, ...}: {
{ nix = {
nix = { extraOptions = ''
extraOptions = '' experimental-features = flakes nix-command
experimental-features = flakes nix-command '';
''; # this is required until nix 2.4 is released
# this is required until nix 2.4 is released package = pkgs.nixFlakes;
package = pkgs.nixFlakes;
settings.auto-optimise-store = true; settings.auto-optimise-store = true;
gc = { gc = {
automatic = true; automatic = true;
dates = "weekly"; dates = "weekly";
options = "--delete-older-than 30d"; options = "--delete-older-than 30d";
}; };
}; };
nixpkgs.config = { nixpkgs.config = {
allowUnfree = true; allowUnfree = true;
}; };
} }

View File

@ -1,5 +1,5 @@
{ {
# Enable sound. # Enable sound.
sound.enable = true; sound.enable = true;
hardware.pulseaudio.enable = true; hardware.pulseaudio.enable = true;
} }

View File

@ -1,10 +1,13 @@
{ nixpkgs, unstable, ... }: {
nixpkgs,
let unstable,
...
}: let
inherit (nixpkgs.lib) composeManyExtensions; inherit (nixpkgs.lib) composeManyExtensions;
inherit (builtins) attrNames readDir; inherit (builtins) attrNames readDir;
localOverlays = map localOverlays =
map
(f: import (./default + "/${f}")) (f: import (./default + "/${f}"))
(attrNames (readDir ./default)); (attrNames (readDir ./default));
in in
composeManyExtensions (localOverlays) composeManyExtensions localOverlays

View File

@ -1,13 +1,15 @@
self: super: { self: super: {
gnomeExtensions = super.gnomeExtensions // { gnomeExtensions =
paperwm = super.gnomeExtensions.paperwm.overrideDerivation (old: { super.gnomeExtensions
version = "43.0"; // {
src = super.fetchFromGitHub { paperwm = super.gnomeExtensions.paperwm.overrideDerivation (old: {
owner = "paperwm"; version = "43.0";
repo = "PaperWM"; src = super.fetchFromGitHub {
rev = "64960df6cde10bcf47c33ce56a2d35e99d8d02bf"; owner = "paperwm";
sha256 = "sha256-ejyWIa4HX1lEIHc9qax8jgrgi992W6rkTK60FGzKI/E="; repo = "PaperWM";
}; rev = "64960df6cde10bcf47c33ce56a2d35e99d8d02bf";
}); sha256 = "sha256-ejyWIa4HX1lEIHc9qax8jgrgi992W6rkTK60FGzKI/E=";
}; };
});
};
} }

View File

@ -1,5 +1,5 @@
self: super: { self: super: {
iptables = super.iptables.override { iptables = super.iptables.override {
nftablesCompat = false; nftablesCompat = false;
}; };
} }

View File

@ -1,3 +1,3 @@
{ {
allowUnfree = true; allowUnfree = true;
} }

View File

@ -1,12 +1,11 @@
{ pkgs, ... }: {pkgs, ...}: {
{
imports = [ imports = [
../../modules/zsh.nix ../../modules/zsh.nix
../../modules/dev.nix ../../modules/dev.nix
../../modules/git.nix ../../modules/git.nix
../../modules/fonts.nix ../../modules/fonts.nix
../../modules/nvim.nix ../../modules/nvim.nix
../../modules/vscode.nix ../../modules/vscode.nix
]; ];
home.packages = with pkgs; [ home.packages = with pkgs; [
@ -16,8 +15,8 @@
# Add homebrew applications to path # Add homebrew applications to path
programs.zsh = { programs.zsh = {
profileExtra = '' profileExtra = ''
PATH=/opt/homebrew/bin:$PATH PATH=/opt/homebrew/bin:$PATH
''; '';
prezto.pmodules = [ prezto.pmodules = [
"osx" "osx"
]; ];

View File

@ -1,3 +1,3 @@
{ {
allowUnfree = true; allowUnfree = true;
} }

View File

@ -1,14 +1,14 @@
{ {
imports = [ imports = [
../../modules/dev.nix ../../modules/dev.nix
../../modules/firefox.nix ../../modules/firefox.nix
../../modules/fonts.nix ../../modules/fonts.nix
../../modules/git.nix ../../modules/git.nix
../../modules/git_nixos.nix ../../modules/git_nixos.nix
../../modules/gnome.nix ../../modules/gnome.nix
../../modules/vscode.nix ../../modules/vscode.nix
../../modules/zsh.nix ../../modules/zsh.nix
]; ];
home.stateVersion = "21.05"; home.stateVersion = "21.05";
} }

View File

@ -1,3 +1,3 @@
{ {
allowUnfree = true; allowUnfree = true;
} }

View File

@ -1,28 +1,27 @@
{ pkgs, ... }: {pkgs, ...}: {
{ imports = [
imports = [ ../../modules/dev.nix
../../modules/dev.nix ../../modules/git.nix
../../modules/git.nix ../../modules/nvim.nix
../../modules/nvim.nix ../../modules/zsh.nix
../../modules/zsh.nix ];
];
home.packages = with pkgs; [ home.packages = with pkgs; [
neofetch neofetch
pfetch pfetch
fortune fortune
micro micro
]; ];
programs.git.extraConfig = { programs.git.extraConfig = {
safe.directory = "*"; safe.directory = "*";
}; };
programs.zsh = { programs.zsh = {
shellAliases = { shellAliases = {
code = "/mnt/c/Program\\ Files/Microsoft\\ VS\\ Code/Code.exe"; code = "/mnt/c/Program\\ Files/Microsoft\\ VS\\ Code/Code.exe";
}; };
}; };
home.stateVersion = "22.05"; home.stateVersion = "22.05";
} }

View File

@ -1,5 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
home.packages = with pkgs; [ home.packages = with pkgs; [
# devbox # devbox
unstable.devbox unstable.devbox
@ -18,10 +17,10 @@
kubernetes-helm kubernetes-helm
# Nix # Nix
nil nil
nixpkgs-fmt alejandra
# Rust # Rust
(rust-bin.stable.latest.default.override { (rust-bin.stable.latest.default.override {
extensions = [ "rust-src" ]; extensions = ["rust-src"];
}) })
]; ];
home.file.npmrc = { home.file.npmrc = {

View File

@ -1,5 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
# Add Firefox GNOME theme directory # Add Firefox GNOME theme directory
home.file."firefox-gnome-theme" = { home.file."firefox-gnome-theme" = {
target = ".mozilla/firefox/default/chrome/firefox-gnome-theme"; target = ".mozilla/firefox/default/chrome/firefox-gnome-theme";
@ -23,7 +22,7 @@
}; };
userChrome = '' userChrome = ''
@import "firefox-gnome-theme/userChrome.css"; @import "firefox-gnome-theme/userChrome.css";
@import "firefox-gnome-theme/theme/colors/dark.css"; @import "firefox-gnome-theme/theme/colors/dark.css";
''; '';
}; };
}; };

View File

@ -1,11 +1,10 @@
{ pkgs, ... }: {pkgs, ...}: {
{ home.packages = with pkgs; [
home.packages = with pkgs; [ (nerdfonts.override {fonts = ["FiraCode"];})
(nerdfonts.override { fonts = [ "FiraCode" ]; }) google-fonts
google-fonts inter
inter cascadia-code
cascadia-code ];
];
# fonts.fontconfig.enable = true; # fonts.fontconfig.enable = true;
} }

View File

@ -1,18 +1,21 @@
{ pkgs, lib, ... }:
{ {
home.packages = with pkgs; [ pkgs,
git-lfs lib,
]; ...
}: {
home.packages = with pkgs; [
git-lfs
];
# Use pkgs.gitAndTools.gitFull in order to get libsecret support # Use pkgs.gitAndTools.gitFull in order to get libsecret support
programs.git = { programs.git = {
enable = true; enable = true;
userEmail = "michaelhthomas@outlook.com"; userEmail = "michaelhthomas@outlook.com";
userName = "Michael Thomas"; userName = "Michael Thomas";
extraConfig = { extraConfig = {
credential.helper = lib.mkDefault "store"; credential.helper = lib.mkDefault "store";
pull.rebase = "false"; pull.rebase = "false";
init.defaultBranch = "main"; init.defaultBranch = "main";
}; };
}; };
} }

View File

@ -1,10 +1,9 @@
{ pkgs, ... }: {pkgs, ...}: {
{ # Use pkgs.gitAndTools.gitFull in order to get libsecret support
# Use pkgs.gitAndTools.gitFull in order to get libsecret support programs.git = {
programs.git = { package = pkgs.gitAndTools.gitFull;
package = pkgs.gitAndTools.gitFull; extraConfig = {
extraConfig = { credential.helper = "libsecret";
credential.helper = "libsecret"; };
}; };
}; }
}

View File

@ -1,35 +1,34 @@
{ pkgs, ... }: {pkgs, ...}: {
{ home.packages = with pkgs; [
home.packages = with pkgs; [ gnomeExtensions.caffeine
gnomeExtensions.caffeine unstable.gnomeExtensions.paperwm
unstable.gnomeExtensions.paperwm gnomeExtensions.cleaner-overview
gnomeExtensions.cleaner-overview unstable.gnomeExtensions.vertical-overview
unstable.gnomeExtensions.vertical-overview gnomeExtensions.disable-workspace-switch-animation-for-gnome-40
gnomeExtensions.disable-workspace-switch-animation-for-gnome-40 gnomeExtensions.blur-my-shell
gnomeExtensions.blur-my-shell ];
];
gtk = { gtk = {
enable = true; enable = true;
theme = { theme = {
name = "Adwaita-dark"; name = "Adwaita-dark";
# package = pkgs.arc-theme; # package = pkgs.arc-theme;
}; };
font.name = "Inter 11"; font.name = "Inter 11";
iconTheme = { iconTheme = {
name = "Papirus"; name = "Papirus";
package = pkgs.papirus-icon-theme; package = pkgs.papirus-icon-theme;
}; };
}; };
programs.gnome-terminal = { programs.gnome-terminal = {
enable = true; enable = true;
profile = { profile = {
"5ddfe964-7ee6-4131-b449-26bdd97518f7" = { "5ddfe964-7ee6-4131-b449-26bdd97518f7" = {
default = true; default = true;
visibleName = "Michael"; visibleName = "Michael";
font = "FiraCode Nerd Font 12"; font = "FiraCode Nerd Font 12";
}; };
}; };
}; };
} }

View File

@ -1,19 +1,19 @@
{ {
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.
programs.home-manager.enable = true; programs.home-manager.enable = true;
# Home Manager needs a bit of information about you and the # Home Manager needs a bit of information about you and the
# paths it should manage. # paths it should manage.
home.username = builtins.getEnv "USER"; home.username = builtins.getEnv "USER";
home.homeDirectory = builtins.getEnv "HOME"; home.homeDirectory = builtins.getEnv "HOME";
# This value determines the Home Manager release that your # This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage # configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards # when a new Home Manager release introduces backwards
# incompatible changes. # incompatible changes.
# #
# You can update Home Manager without changing this value. See # You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version # the Home Manager release notes for a list of state version
# changes in each release. # changes in each release.
home.stateVersion = "21.03"; home.stateVersion = "21.03";
} }

View File

@ -1,5 +1,8 @@
{ pkgs, config, ... }:
{ {
pkgs,
config,
...
}: {
programs.neovim = { programs.neovim = {
enable = true; enable = true;
}; };
@ -9,12 +12,13 @@
}; };
# Copy Neovim config # Copy Neovim config
xdg.configFile.nvim.source = config.lib.file.mkOutOfStoreSymlink xdg.configFile.nvim.source =
config.lib.file.mkOutOfStoreSymlink
"${config.home.homeDirectory}/Projects/nix-dots/user/modules/nvim"; "${config.home.homeDirectory}/Projects/nix-dots/user/modules/nvim";
home.packages = with pkgs; [ home.packages = with pkgs; [
ripgrep ripgrep
gnumake gnumake
gcc gcc
]; ];
} }

View File

@ -42,4 +42,14 @@ return {
}, },
}, },
}, },
{
"stevearc/conform.nvim",
---@class ConformOpts
opts = {
---@type table<string, conform.FormatterUnit[]>
formatters_by_ft = {
nix = { "alejandra" },
},
},
},
} }

View File

@ -1,68 +1,75 @@
{ config, pkgs, ... }: {
config,
pkgs,
...
}: let
package = pkgs.vscodium;
let vscodePname = package.pname;
package = pkgs.vscodium;
vscodePname = package.pname; configDir =
{
"vscode" = "Code";
"vscode-insiders" = "Code - Insiders";
"vscodium" = "VSCodium";
}
.${vscodePname};
configDir = { userDir =
"vscode" = "Code"; if pkgs.stdenv.hostPlatform.isDarwin
"vscode-insiders" = "Code - Insiders"; then "Library/Application Support/${configDir}/User"
"vscodium" = "VSCodium"; else "${config.xdg.configHome}/${configDir}/User";
}.${vscodePname};
userDir = if pkgs.stdenv.hostPlatform.isDarwin then
"Library/Application Support/${configDir}/User"
else
"${config.xdg.configHome}/${configDir}/User";
configFilePath = "${userDir}/settings.json"; configFilePath = "${userDir}/settings.json";
keybindingsFilePath = "${userDir}/keybindings.json"; keybindingsFilePath = "${userDir}/keybindings.json";
in { in {
xdg.configFile."${config.home.homeDirectory}/${configFilePath}".source = xdg.configFile."${config.home.homeDirectory}/${configFilePath}".source =
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/nix-dots/user/modules/vscode/settings.json"; config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/nix-dots/user/modules/vscode/settings.json";
xdg.configFile."${config.home.homeDirectory}/${keybindingsFilePath}".source = xdg.configFile."${config.home.homeDirectory}/${keybindingsFilePath}".source =
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/nix-dots/user/modules/vscode/keybindings.json"; config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/nix-dots/user/modules/vscode/keybindings.json";
programs = { programs = {
vscode = { vscode = {
enable = true; enable = true;
inherit package; inherit package;
extensions = with pkgs.open-vsx; [ extensions = with pkgs.open-vsx; [
# Editor # Editor
vscodevim.vim vscodevim.vim
pkgs.vscode-marketplace.miguelsolorio.min-theme pkgs.vscode-marketplace.miguelsolorio.min-theme
streetsidesoftware.code-spell-checker streetsidesoftware.code-spell-checker
# Git # Git
mhutchie.git-graph mhutchie.git-graph
waderyan.gitblame waderyan.gitblame
# Web Development
astro-build.astro-vscode
redwan-hossain.auto-rename-tag-clone
bradlc.vscode-tailwindcss
johnsoncodehk.volar
svelte.svelte-vscode
dbaeumer.vscode-eslint
esbenp.prettier-vscode
antfu.iconify
csstools.postcss
# Dart / Flutter # Web Development
dart-code.dart-code astro-build.astro-vscode
redwan-hossain.auto-rename-tag-clone
bradlc.vscode-tailwindcss
johnsoncodehk.volar
svelte.svelte-vscode
dbaeumer.vscode-eslint
esbenp.prettier-vscode
antfu.iconify
csstools.postcss
ms-playwright.playwright
# Java # Dart / Flutter
redhat.java dart-code.dart-code
vscjava.vscode-java-debug
vscjava.vscode-java-test
vscjava.vscode-maven
vscjava.vscode-java-dependency
# Nix # Java
jnoortheen.nix-ide redhat.java
]; vscjava.vscode-java-debug
}; vscjava.vscode-java-test
}; vscjava.vscode-maven
vscjava.vscode-java-dependency
# Nix
jnoortheen.nix-ide
kamadorueda.alejandra
];
};
};
} }

View File

@ -1,47 +1,46 @@
{ pkgs, ... }: {pkgs, ...}: {
{ programs.zsh = {
programs.zsh = { enable = true;
enable = true; plugins = [
plugins = [ {
{ name = "zsh-nix-shell";
name = "zsh-nix-shell"; file = "nix-shell.plugin.zsh";
file = "nix-shell.plugin.zsh"; src = pkgs.fetchFromGitHub {
src = pkgs.fetchFromGitHub { owner = "chisui";
owner = "chisui"; repo = "zsh-nix-shell";
repo = "zsh-nix-shell"; rev = "v0.1.0";
rev = "v0.1.0"; sha256 = "0snhch9hfy83d4amkyxx33izvkhbwmindy0zjjk28hih1a9l2jmx";
sha256 = "0snhch9hfy83d4amkyxx33izvkhbwmindy0zjjk28hih1a9l2jmx"; };
}; }
} ];
]; prezto = {
prezto = { enable = true;
enable = true; pmodules = [
pmodules = [ "archive"
"archive" "docker"
"docker" "environment"
"environment" "git"
"git" "terminal"
"terminal" "editor"
"editor" "history"
"history" "directory"
"directory" "spectrum"
"spectrum" "utility"
"utility" "completion"
"completion" "command-not-found"
"command-not-found" "syntax-highlighting"
"syntax-highlighting" "history-substring-search"
"history-substring-search" "autosuggestions"
"autosuggestions" "prompt"
"prompt" ];
]; };
}; };
}; programs.starship = {
programs.starship = { enable = true;
enable = true; enableZshIntegration = true;
enableZshIntegration = true; settings = {
settings = { character.success_symbol = "[](green)";
character.success_symbol = "[](green)"; character.error_symbol = "[](red)";
character.error_symbol = "[](red)"; };
}; };
}; }
}