--- /dev/null
+{ config, pkgs, ... }:
+
+{
+ imports = [
+ ./hardware-configuration.nix
+ ];
+
+ # Bootloader.
+ boot.loader.systemd-boot.enable = true;
+ boot.loader.efi.canTouchEfiVariables = true;
+
+ # Use latest kernel.
+ boot.kernelPackages = pkgs.linuxPackages_latest;
+
+ networking.hostName = "nepsis";
+ networking.networkmanager.enable = true;
+ # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
+
+ # Configure network proxy if necessary
+ # networking.proxy.default = "http://user:password@proxy:port/";
+ # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
+
+ time.timeZone = "America/Toronto";
+
+ i18n.defaultLocale = "en_CA.UTF-8";
+
+ # Define a user account. Don't forget to set a password with ‘passwd’.
+ users.users.andrew = {
+ isNormalUser = true;
+
+ extraGroups = [
+ "networkmanager"
+ "wheel"
+ ];
+ packages = with pkgs; [ ];
+ };
+
+ hjem.users.andrew = {
+ directory = "/home/andrew";
+ files = {
+
+ ".config/sxhkd/sxhkdrc".text = ''
+ super + space
+ ${pkgs.dmenu}/bin/dmenu_run
+
+ super + Return
+ ${pkgs.st}/bin/st
+
+ super + b
+ ${pkgs.librewolf}/bin/librewolf
+
+ XF86AudioRaiseVolume
+ ${pkgs.pamixer}/bin/pamixer -i 5
+
+ XF86AudioLowerVolume
+ ${pkgs.pamixer}/bin/pamixer -d 5
+
+ XF86AudioMute
+ ${pkgs.pamixer}/bin/pamixer -t
+
+ super + s
+ ${pkgs.maim}/bin/maim -i $(${pkgs.xdotool}/bin/xdotool getactivewindow) | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png
+
+ super + shift + s
+ ${pkgs.maim}/bin/maim -s | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png
+ '';
+ };
+ packages = with pkgs; [
+ discord
+ ];
+ };
+
+ # Allow unfree packages
+ nixpkgs.config.allowUnfree = true;
+ nix.settings.experimental-features = [
+ "nix-command"
+ "flakes"
+ ];
+
+ # List packages installed in system profile. To search, run:
+ # $ nix search wget
+ environment.systemPackages = with pkgs; [
+ vim
+ nvi
+ wget
+ git
+ neovim
+ librewolf
+ nixfmt
+ st
+ dmenu
+ feh
+ fastfetch
+ sxhkd
+ betterlockscreen
+ pamixer
+ maim
+ slop
+ xclip
+ xdotool
+ ];
+
+ programs.git = {
+ enable = true;
+ config = {
+ user = {
+ name = "Skullheadx";
+ email = "admonty1@protonmail.com";
+ };
+ pull.rebase = true;
+ url = {
+ "git@github.com:".insteadOf = "https://github.com/";
+ };
+
+ };
+ };
+
+ programs.i3lock = {
+ enable = true;
+ package = pkgs.i3lock-color;
+ };
+
+ programs.steam = {
+ enable = true;
+ remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
+ dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
+ localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
+ };
+
+ programs.nix-ld.enable = true;
+ programs.nix-ld.libraries = with pkgs; [
+ # Add any missing dynamic libraries for unpackaged
+ # programs here, NOT in environment.systemPackages
+ ];
+
+ services.pipewire = {
+ enable = true;
+ audio.enable = true;
+ pulse.enable = true;
+ alsa.enable = true;
+ };
+ services.pipewire.wireplumber.enable = true;
+ hardware = {
+ graphics = {
+ enable = true;
+ };
+ };
+
+ # 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;
+ };
+
+ # Services
+ services.openssh.enable = true;
+
+ services.displayManager.ly = {
+ enable = true;
+ settings = {
+ animation = "gameoflife";
+ clock = "%c";
+ vi_mode = true;
+ vi_default_mode = "insert";
+ numlock = true;
+ bigclock = "en";
+ bigclock_seconds = true;
+ };
+
+ };
+ services.dunst = {
+ enable = true;
+ };
+ security.pam.services.betterlockscreen = { };
+
+ services.xserver = {
+ enable = true;
+ autorun = true;
+ enableTearFree = true;
+ windowManager.dwm.enable = true;
+ desktopManager.runXdgAutostartIfNone = false;
+ displayManager = {
+ setupCommands = '''';
+ sessionCommands = ''
+ #!/bin/sh
+ ${pkgs.xrandr}/bin/xrandr --output DP-3 --primary --mode 2560x1440 --rate 180 --pos 0x0 --output DP-2 --mode 1920x1080 --rate 160 --pos 2560x360
+ ${pkgs.feh}/bin/feh --no-fehbg --bg-fill '/home/andrew/Wallpapers/Daniel_in_the_Lions_Den_by_Briton_Riviere.jpg'
+ ${pkgs.sxhkd}/bin/sxhkd &
+ '';
+ };
+ xkb = {
+ layout = "us";
+ options = "caps:escape";
+ };
+ xautolock = {
+ enable = true;
+ enableNotifier = true;
+ notifier = "${pkgs.dunst}/bin/notify-send 'Locking in 10 seconds'";
+ locker = "${pkgs.betterlockscreen}/bin/betterlockscreen -l dimblur";
+ };
+ config = ''
+ Section "InputClass"
+ Identifier "Kinesis Advantage 360"
+ MatchIsKeyboard "on"
+ MatchVendor "Kinesis"
+ Option "XkbModel" "kinesis"
+ Option "XkbLayout" "us"
+ EndSection
+ '';
+ };
+
+ # Open ports in the firewall.
+ # networking.firewall.allowedTCPPorts = [ ... ];
+ # networking.firewall.allowedUDPPorts = [ ... ];
+ # Or disable the firewall altogether.
+ # networking.firewall.enable = false;
+
+ # 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 = "25.05"; # Did you read the comment?
+}
--- /dev/null
+{
+ "nodes": {
+ "hjem": {
+ "inputs": {
+ "nix-darwin": "nix-darwin",
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1777061801,
+ "narHash": "sha256-a0O56qWfPEKe0mBKgvcQL5UDpWmon70AKJspHNkEJV8=",
+ "owner": "feel-co",
+ "repo": "hjem",
+ "rev": "35c2158ba101d7b42b05debfcb169ba32dad3bbc",
+ "type": "github"
+ },
+ "original": {
+ "owner": "feel-co",
+ "repo": "hjem",
+ "type": "github"
+ }
+ },
+ "nix-darwin": {
+ "inputs": {
+ "nixpkgs": [
+ "hjem",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1775037210,
+ "narHash": "sha256-KM2WYj6EA7M/FVZVCl3rqWY+TFV5QzSyyGE2gQxeODU=",
+ "owner": "nix-darwin",
+ "repo": "nix-darwin",
+ "rev": "06648f4902343228ce2de79f291dd5a58ee12146",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-darwin",
+ "repo": "nix-darwin",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1776877367,
+ "narHash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "0726a0ecb6d4e08f6adced58726b95db924cef57",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "hjem": "hjem",
+ "nixpkgs": "nixpkgs"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
--- /dev/null
+# 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 = [
+ "nvme"
+ "xhci_pci"
+ "ahci"
+ "usbhid"
+ "usb_storage"
+ "sd_mod"
+ ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-amd" ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" = {
+ device = "/dev/disk/by-uuid/a0aa3a6b-4970-4c7d-b793-57561ed4ae03";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot" = {
+ device = "/dev/disk/by-uuid/5239-A4D8";
+ fsType = "vfat";
+ options = [
+ "fmask=0077"
+ "dmask=0077"
+ ];
+ };
+
+ swapDevices = [
+ { device = "/dev/disk/by-uuid/1efeebba-c2ce-4ab9-87d6-e986933d7678"; }
+ ];
+
+ # 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.enp10s0.useDHCP = lib.mkDefault true;
+ # networking.interfaces.wlp9s0.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}