diff --git a/.gitignore b/.gitignore index 577b0a0e..b4f0da46 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -hardware-configuration.nix +# hardware-configuration.nix diff --git a/configurations/desktop/home.nix b/configurations/desktop/home.nix index cefc20fc..f17e314b 100644 --- a/configurations/desktop/home.nix +++ b/configurations/desktop/home.nix @@ -24,16 +24,16 @@ # org.gradle.console=verbose # org.gradle.daemon.idletimeout=3600000 # ''; - ".local/share/applications/ncmpcpp.desktop".text = '' - [Desktop Entry] - Name=NCMPCPP - Comment=Run ncurses music player CPP - Categories=Other; - Icon=konsole - Type=Application - Exec=konsole -e ncmpcpp - Terminal=false - ''; + # ".local/share/applications/ncmpcpp.desktop".text = '' + # [Desktop Entry] + # Name=NCMPCPP + # Comment=Run ncurses music player CPP + # Categories=Other; + # Icon=konsole + # Type=Application + # Exec=konsole -e ncmpcpp + # Terminal=false + # ''; }; # Roblox Curl Service diff --git a/global-home.nix b/global-home.nix index 8f8e6537..7fdb3e48 100644 --- a/global-home.nix +++ b/global-home.nix @@ -47,7 +47,7 @@ in firefox librewolf ungoogled-chromium - emacs + emacs-gtk telegram-desktop discord lutris @@ -71,6 +71,7 @@ in libnotify ]; + # Have to enable the mpd and mpd-discord-rpc user services manually for now services.mpd = { enable = true; musicDirectory = "${homedir}/Spool2_Secret/Music/Flac"; @@ -85,6 +86,50 @@ in services.mpd-discord-rpc.enable = true; programs.ncmpcpp.enable = true; + # Home Manager is pretty good at managing dotfiles. The primary way to manage + # plain files is through 'home.file'. + home.file = { + # # Building this configuration will create a copy of 'dotfiles/screenrc' in + # # the Nix store. Activating the configuration will then make '~/.screenrc' a + # # symlink to the Nix store copy. + # ".screenrc".source = dotfiles/screenrc; + + # # You can also set the file content immediately. + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; + ".local/share/applications/ncmpcpp.desktop".text = '' + [Desktop Entry] + Name=NCMPCPP + Comment=Run ncurses music player CPP + Categories=Other; + Icon=konsole + Type=Application + Exec=konsole -e ncmpcpp + Terminal=false + ''; + }; + + # Emacs Config Init Service + systemd.user.services.emacs-config-initialiser = let + script = pkgs.writeShellScript "emacs-config-initialiser-script" + '' + [[ ! -d %/.emacs.d ]] && git clone https://git.cspark.dev/cspark/Emacs-Configuration $HOME/.emacs.d + ''; + in + { + Unit = { + Description = "Initialises default emacs configuration if not available"; + }; + Service = { + ExecStart = "${script}"; + }; + Install = { + WantedBy = [ "multi-user.target" ]; + }; + }; + # Home Manager can also manage your environment variables through # 'home.sessionVariables'. If you don't want to manage your shell through Home # Manager then you have to manually source 'hm-session-vars.sh' located at diff --git a/hardware-configuration.nix b/hardware-configuration.nix new file mode 100644 index 00000000..5befae90 --- /dev/null +++ b/hardware-configuration.nix @@ -0,0 +1,41 @@ +# 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" "ahci" "usb_storage" "uas" "usbhid" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" "vendor-reset" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/f25f2830-a778-4ecd-ad9b-93331ec13ff0"; + fsType = "ext4"; + }; + + boot.initrd.luks.devices."luks-542de15a-e6a5-4c6d-8c6a-62f916805da8".device = "/dev/disk/by-uuid/542de15a-e6a5-4c6d-8c6a-62f916805da8"; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/386A-F58F"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/6a8760a6-b720-455d-8ff6-af76365374bf"; } + ]; + + # 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..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp7s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +}