From 6b7ce7d1337345f35fae47097646a82952be7acf Mon Sep 17 00:00:00 2001 From: ISnortPennies Date: Mon, 23 Jan 2023 21:10:16 -0500 Subject: [PATCH] fixed refreshrate on desktop switch to neovim as a pager added parrot and mining modules deleted amd module moved the rest of vfio configuration to vfio.nix moved git from home-manager to system configuration --- configuration.nix | 22 +++++----- flake.nix | 30 +++++++------ home-manager/config/discord/settings.json | 3 +- home-manager/git.nix | 8 ---- home-manager/home.nix | 8 ++-- home-manager/librewolf.nix | 2 +- home-manager/neovim/config/init.lua | 6 ++- home-manager/root.nix | 9 +--- home-manager/spicetify.nix | 1 - home-manager/theme.nix | 6 +-- modules/amd.nix | 7 --- modules/boot.nix | 1 - modules/git.nix | 15 +++++++ modules/mining.nix | 27 ++++++++++++ modules/nvidia.nix | 14 ------ modules/packages.nix | 3 +- modules/parrot.nix | 19 +++++++++ modules/prime.nix | 10 ++++- modules/refreshrate.nix | 24 +++++------ modules/scripts.nix | 6 +-- modules/smb.nix | 6 +-- modules/vfio.nix | 6 +-- modules/xserver.nix | 12 ++---- systems/desktop.nix | 52 +++++------------------ systems/laptop.nix | 20 ++++----- 25 files changed, 152 insertions(+), 165 deletions(-) delete mode 100644 home-manager/git.nix delete mode 100644 modules/amd.nix create mode 100644 modules/git.nix create mode 100644 modules/mining.nix delete mode 100644 modules/nvidia.nix create mode 100644 modules/parrot.nix diff --git a/configuration.nix b/configuration.nix index 20fe3e6..d27862b 100644 --- a/configuration.nix +++ b/configuration.nix @@ -1,27 +1,27 @@ { - config, pkgs, - lib, + settings, ... }: { - system.stateVersion = "23.05"; + system.stateVersion = settings.version; environment = { defaultPackages = []; #don't install anything by default binsh = "${pkgs.dash}/bin/dash"; #use dash for speed variables = { EDITOR = "vi"; VISUAL = "vi"; + PAGER = "page"; + SYSTEMD_PAGERSECURE = "true"; TERMINAL = "st"; }; }; - #nix stuff - nix = { - settings = { - auto-optimise-store = true; #save space - cores = 0; # use all cores - keep-outputs = false; #don't make ./results files - keep-derivations = false; #^ - experimental-features = "nix-command flakes"; + #hardware stuff + hardware = { + enableRedistributableFirmware = true; + opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; }; }; #sound settings diff --git a/flake.nix b/flake.nix index 4908002..d82c76b 100644 --- a/flake.nix +++ b/flake.nix @@ -25,25 +25,22 @@ suckless, ... } @ inputs: let - username = "gerg"; + settings = { + username = "gerg"; + version = "23.05"; + }; system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; - config = { - allowUnfree = true; - packageOverrides = super: let - self = super.pkgs; - in { - nerdfonts-overpass = self.nerdfonts.override { - fonts = ["Overpass"]; - }; - }; - }; + config.allowUnfree = true; overlays = [ (final: prev: rec { t-rex-miner = final.callPackage ./pkgs/t-rex-miner {}; afk-cmds = final.callPackage ./pkgs/afk-cmds {}; parrot = final.callPackage ./pkgs/parrot {}; + nerdfonts-overpass = prev.nerdfonts.override { + fonts = ["Overpass"]; + }; discord = prev.discord.override { withOpenASAR = true; nss = prev.nss_latest; @@ -59,7 +56,7 @@ nixosConfigurations = { gerg-desktop = lib.nixosSystem { inherit system pkgs; - specialArgs = {inherit inputs username;}; + specialArgs = {inherit inputs settings;}; modules = [ ./configuration.nix ./systems/desktop.nix @@ -77,6 +74,11 @@ nixpkgs.flake = nixpkgs; suckless.flake = suckless; }; + settings = { + experimental-features = ["nix-command" "flakes"]; + auto-optimise-store = true; + warn-dirty = false; + }; }; } home-manager.nixosModules.home-manager @@ -84,9 +86,9 @@ home-manager = { useGlobalPkgs = true; useUserPackages = false; - extraSpecialArgs = {inherit spicetify-nix username;}; + extraSpecialArgs = {inherit spicetify-nix settings;}; users = { - ${username} = import ./home-manager/home.nix; + ${settings.username} = import ./home-manager/home.nix; root = import ./home-manager/root.nix; }; }; diff --git a/home-manager/config/discord/settings.json b/home-manager/config/discord/settings.json index 7fe9cbf..f1eae8a 100644 --- a/home-manager/config/discord/settings.json +++ b/home-manager/config/discord/settings.json @@ -11,5 +11,6 @@ "MIN_WIDTH": 0, "MIN_HEIGHT": 0, "OPEN_ON_STARTUP": false, - "MINIMIZE_TO_TRAY": false + "MINIMIZE_TO_TRAY": false, + "SKIP_HOST_UPDATE": true } diff --git a/home-manager/git.nix b/home-manager/git.nix deleted file mode 100644 index 3116778..0000000 --- a/home-manager/git.nix +++ /dev/null @@ -1,8 +0,0 @@ -{pkgs, ...}: { - programs.git = { - enable = true; - package = pkgs.gitMinimal; - userName = "ISnortPennies"; - userEmail = "ISnortPennies@protonmail.com"; - }; -} diff --git a/home-manager/home.nix b/home-manager/home.nix index 777d100..53329ba 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -1,7 +1,6 @@ { - config, pkgs, - username, + settings, ... }: { imports = [ @@ -9,14 +8,13 @@ ./sxhkd.nix ./theme.nix ./picom.nix - ./git.nix ./spicetify.nix ./neovim ]; xsession.numlock.enable = true; home = { - homeDirectory = "/home/${username}"; - stateVersion = "23.05"; + homeDirectory = "/home/${settings.username}"; + stateVersion = settings.version; file = { ".background-image".source = ../images/nix-stars.png; ".config" = { diff --git a/home-manager/librewolf.nix b/home-manager/librewolf.nix index 474d81a..478832f 100644 --- a/home-manager/librewolf.nix +++ b/home-manager/librewolf.nix @@ -1,4 +1,4 @@ -{pkgs, ...}: { +{ programs = { librewolf = { enable = true; diff --git a/home-manager/neovim/config/init.lua b/home-manager/neovim/config/init.lua index 502a025..bbfd8e0 100644 --- a/home-manager/neovim/config/init.lua +++ b/home-manager/neovim/config/init.lua @@ -31,7 +31,7 @@ vim.g.indentLine_setConceal = 0 vim.g.loaded = 1 vim.g.loaded_netrwPlugin = 1 require("nvim-tree").setup { - open_on_setup = true, + open_on_setup = false, sort_by = "case_sensitive", view = { adaptive_size = true, @@ -63,7 +63,9 @@ vim.cmd[[colorscheme moonfly]] -- pretty colors require("colorizer").setup() require("telescope").load_extension("fzy_native") -require("gitsigns").setup() +require("gitsigns").setup { + current_line_blame = true, +} require("nvim-autopairs").setup() -- telescope keybinds diff --git a/home-manager/root.nix b/home-manager/root.nix index a68b435..64fd257 100644 --- a/home-manager/root.nix +++ b/home-manager/root.nix @@ -1,17 +1,12 @@ -{ - config, - pkgs, - ... -}: { +{settings, ...}: { imports = [ ./theme.nix - ./git.nix ./neovim ]; home = { username = "root"; homeDirectory = "/root"; - stateVersion = "23.05"; + stateVersion = settings.version; file = { ".config/neofetch/config.conf" = { source = ./config/neofetch/config.conf; diff --git a/home-manager/spicetify.nix b/home-manager/spicetify.nix index 6d50b36..5bc9b55 100644 --- a/home-manager/spicetify.nix +++ b/home-manager/spicetify.nix @@ -1,6 +1,5 @@ { pkgs, - lib, spicetify-nix, ... }: let diff --git a/home-manager/theme.nix b/home-manager/theme.nix index da2fe35..7a8ebeb 100644 --- a/home-manager/theme.nix +++ b/home-manager/theme.nix @@ -1,8 +1,4 @@ -{ - pkgs, - home-manager, - ... -}: { +{pkgs, ...}: { gtk = { enable = true; theme = { diff --git a/modules/amd.nix b/modules/amd.nix deleted file mode 100644 index 54f560b..0000000 --- a/modules/amd.nix +++ /dev/null @@ -1,7 +0,0 @@ -{pkgs, ...}: { - boot.initrd.kernelModules = ["amdgpu"]; - hardware.opengl = { - driSupport = true; - driSupport32Bit = true; - }; -} diff --git a/modules/boot.nix b/modules/boot.nix index 7417139..e0c5aad 100644 --- a/modules/boot.nix +++ b/modules/boot.nix @@ -1,5 +1,4 @@ { - hardware.enableRedistributableFirmware = true; boot = { blacklistedKernelModules = ["nouveau" "lbm-nouveau" "pcspkr"]; kernelParams = ["fbcon=nodefer" "bgrt_disable" "quiet" "splash"]; diff --git a/modules/git.nix b/modules/git.nix new file mode 100644 index 0000000..aa59e4f --- /dev/null +++ b/modules/git.nix @@ -0,0 +1,15 @@ +{pkgs, ...}: { + programs.git = { + enable = true; + package = pkgs.gitMinimal; + config = { + user = { + name = "ISnortPennies"; + email = "ISnortPennies@protonmail.com"; + }; + init = { + defaultBranch = "master"; + }; + }; + }; +} diff --git a/modules/mining.nix b/modules/mining.nix new file mode 100644 index 0000000..d415c80 --- /dev/null +++ b/modules/mining.nix @@ -0,0 +1,27 @@ +{ + pkgs, + settings, + ... +}: { + boot = { + kernelModules = ["msr"]; + kernelParams = ["iomem=relaxed" "msr.allow_writes=on"]; + }; + systemd.services.mining = { + enable = true; + path = with pkgs; [t-rex-miner afk-cmds st zsh dbus xmrig]; + wantedBy = ["multi-user.target"]; + wants = ["graphical.target"]; + script = '' + afk-cmds -c /home/${settings.username}/afk-cmds.json + ''; + environment = { + # PATH="/run/current-system/sw/bin"; missing something with dbus + XAUTHORITY = "/home/${settings.username}/.Xauthority"; + DISPLAY = ":0"; + XDG_DATA_DIRS = "/nix/var/nix/profiles/default/share:/run/current-system/sw/share"; + DBUS_SESSION_BUS_ADDRESS = "unix:path=/run/user/1000/bus"; + NO_AT_BRIDGE = "1"; + }; + }; +} diff --git a/modules/nvidia.nix b/modules/nvidia.nix deleted file mode 100644 index 77ebb77..0000000 --- a/modules/nvidia.nix +++ /dev/null @@ -1,14 +0,0 @@ -{config, ...}: { - hardware = { - nvidia = { - nvidiaPersistenced = false; - nvidiaSettings = false; - modesetting.enable = true; - }; - opengl = { - enable = true; - driSupport = true; - driSupport32Bit = true; - }; - }; -} diff --git a/modules/packages.nix b/modules/packages.nix index 9650c45..da4c242 100644 --- a/modules/packages.nix +++ b/modules/packages.nix @@ -1,7 +1,6 @@ { config, pkgs, - inputs, ... }: { environment.systemPackages = with pkgs; [ @@ -13,7 +12,6 @@ btrfs-progs #for external harddrive vlc #play stuff bitwarden #store stuff - gimp #edit stuff qbittorrent #steal stuff discord # talk to people (gross) feh #for wallpaper @@ -32,5 +30,6 @@ pcmanfm #file manager nix-tree #view packages bc #terminal calculator + page #use nvim as a pager ]; } diff --git a/modules/parrot.nix b/modules/parrot.nix new file mode 100644 index 0000000..9e6d141 --- /dev/null +++ b/modules/parrot.nix @@ -0,0 +1,19 @@ +{ + pkgs, + settings, + ... +}: { + #discord bot stuff + virtualisation.docker.enable = false; + systemd.services.parrot = { + enable = true; + path = with pkgs; [parrot yt-dlp ffmpeg]; + wantedBy = ["multi-user.target"]; + wants = ["NetworkManager-wait-online.service"]; + after = ["NetworkManager-wait-online.service"]; + script = "parrot"; + serviceConfig = { + EnvironmentFile = "/home/${settings.username}/parrot/.env"; + }; + }; +} diff --git a/modules/prime.nix b/modules/prime.nix index 5df6841..2fb3c12 100644 --- a/modules/prime.nix +++ b/modules/prime.nix @@ -1,7 +1,15 @@ -{config, ...}: { +{ hardware.nvidia.prime = { sync.enable = true; amdgpuBusId = "PCI:5:0:0"; nvidiaBusId = "PCI:1:0:0"; + nvidia = { + nvidiaPersistenced = false; + nvidiaSettings = false; + modesetting.enable = true; + }; + }; + services.xserver = { + videoDrivers = ["modesetting" "nvidia"]; }; } diff --git a/modules/refreshrate.nix b/modules/refreshrate.nix index 6ff1d8c..0923483 100644 --- a/modules/refreshrate.nix +++ b/modules/refreshrate.nix @@ -1,26 +1,26 @@ { services.xserver = { - xrandrHeads = [ - { - output = "HDMI-0"; - primary = true; - monitorConfig = '' - Option "DPMS" "false" - ''; - } - ]; + #set drivers for igpu + videoDrivers = ["amdgpu"]; + #fix nasty screen tearing screenSection = '' - Option "metamodes" "1920x1080_144 +0+0" + Option "TearFree" "true" ''; + #set monitor as primary + #set refreshrate to 144 instead of default(60) + #disable DPMS(screen turning off) monitorSection = '' + Option "Primary" "true" + Modeline "1920x1080_144" 332.75 1920 1952 2016 2080 1080 1084 1089 1111 +HSync +VSync + Option "PreferredMode" "1920x1080_144" Option "DPMS" "false" ''; + #disable screen blanking in total serverFlagsSection = '' - Option "BlankTime" "0" Option "StandbyTime" "0" Option "SuspendTime" "0" Option "OffTime" "0" - Option "DPMS" "false" + Option "BlankTime" "0" ''; }; } diff --git a/modules/scripts.nix b/modules/scripts.nix index 9e3a070..c2236a4 100644 --- a/modules/scripts.nix +++ b/modules/scripts.nix @@ -1,8 +1,4 @@ -{ - pkgs, - config, - ... -}: let +{pkgs, ...}: let update-system = pkgs.writeShellScriptBin "update-system" '' if ! [ $(id -u) = 0 ]; then echo "RUN AS ROOT" diff --git a/modules/smb.nix b/modules/smb.nix index c050124..9c30eca 100644 --- a/modules/smb.nix +++ b/modules/smb.nix @@ -1,4 +1,4 @@ -{username, ...}: { +{settings, ...}: { services.samba-wsdd.enable = true; # make shares visible for windows 10 clients networking.firewall = { allowedTCPPorts = [139 445]; @@ -10,11 +10,11 @@ openFirewall = true; shares = { Share = { - path = "/home/${username}/Share"; + path = "/home/${settings.username}/Share"; browseable = "no"; "read only" = "no"; "guest ok" = "no"; - "force user" = "${username}"; + "force user" = "${settings.username}"; "force group" = "users"; }; }; diff --git a/modules/vfio.nix b/modules/vfio.nix index 29cdafd..e504830 100644 --- a/modules/vfio.nix +++ b/modules/vfio.nix @@ -1,11 +1,11 @@ { pkgs, - username, + settings, ... }: { boot = { kernelParams = ["amd_iommu=on" "iommu=pt" "vfio_iommu_type1.allow_unsafe_interrupts=1" "kvm.ignore_msrs=1"]; - kernelModules = ["vfio_virqfd" "vfio_pci" "vfio_iommu_type1" "vfio"]; + kernelModules = ["amd-kvm" "vfio_virqfd" "vfio_pci" "vfio_iommu_type1" "vfio"]; initrd.kernelModules = ["vfio_virqfd" "vfio_pci" "vfio_iommu_type1" "vfio"]; extraModprobeConfig = '' options vfio-pci ids=10de:228e,10de:2504 @@ -18,7 +18,7 @@ runAsRoot = true; ovmf.enable = true; verbatimConfig = '' - user = "${username}" + user = "${settings.username}" group = "kvm" namespaces = [] ''; diff --git a/modules/xserver.nix b/modules/xserver.nix index b14977c..89fb60f 100644 --- a/modules/xserver.nix +++ b/modules/xserver.nix @@ -1,16 +1,11 @@ { - config, pkgs, - username, - inputs, + settings, ... }: { services.xserver = { enable = true; - videoDrivers = - if (config.networking.hostName == "gerg-laptop") - then ["modesetting" "nvidia"] - else ["amdgpu"]; + exportConfiguration = true; #make config debuggable layout = "us"; libinput.enable = true; xautolock.enable = false; @@ -25,7 +20,7 @@ enable = true; extraConfig = '' [greeter] - user = ${username} + user = ${settings.username} show-password-label = false password-label-text = invalid-password-text = @@ -62,7 +57,6 @@ password-border-color = "#000000" password-border-width = 2px password-border-radius = 0.341125em - ''; }; }; diff --git a/systems/desktop.nix b/systems/desktop.nix index 62eeaff..3dc56a4 100644 --- a/systems/desktop.nix +++ b/systems/desktop.nix @@ -1,14 +1,10 @@ { - config, pkgs, - callPackage, - lib, - username, + settings, ... }: { #important stuff first imports = [ - ../modules/amd.nix ../modules/packages.nix ../modules/boot.nix ../modules/fonts.nix @@ -18,29 +14,31 @@ ../modules/xserver.nix ../modules/smb.nix ../modules/zsh.nix + ../modules/git.nix + #../modules/mining.nix + ../modules/parrot.nix ]; networking.hostName = "gerg-desktop"; boot.kernelPackages = pkgs.linuxPackages_latest; hardware.cpu.amd.updateMicrocode = true; #end important stuff environment.systemPackages = with pkgs; [ - #afk-cmds - xmrig - t-rex-miner vscodium + gimp ]; #user managment users = { defaultUserShell = pkgs.zsh; - users."${username}" = { + users."${settings.username}" = { isNormalUser = true; extraGroups = ["wheel" "audio" "networkmanager" "kvm" "libvirtd"]; }; }; boot = { - initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "uas" "sd_mod"]; - kernelModules = ["kvm-amd" "msr"]; - kernelParams = ["iomem=relaxed" "msr.allow_writes=on"]; + initrd = { + kernelModules = ["amdgpu"]; + availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "uas" "sd_mod"]; + }; }; fileSystems = { @@ -53,34 +51,4 @@ fsType = "vfat"; }; }; - #discord bot stuff - virtualisation.docker.enable = false; - systemd.services.parrot = { - enable = true; - path = with pkgs; [parrot yt-dlp ffmpeg]; - wantedBy = ["multi-user.target"]; - wants = ["NetworkManager-wait-online.service"]; - after = ["NetworkManager-wait-online.service"]; - script = "parrot"; - serviceConfig = { - EnvironmentFile = "/home/${username}/parrot/.env"; - }; - }; - #mining stuff - systemd.services.mining = { - enable = false; - path = with pkgs; [t-rex-miner afk-cmds st zsh dbus xmrig]; - wants = ["graphical.target"]; - script = '' - afk-cmds -c /home/${username}/afk-cmds.json - ''; - environment = { - # PATH="/run/current-system/sw/bin"; missing something with dbus - XAUTHORITY = "/home/${username}/.Xauthority"; - DISPLAY = ":0"; - XDG_DATA_DIRS = "/nix/var/nix/profiles/default/share:/run/current-system/sw/share"; - DBUS_SESSION_BUS_ADDRESS = "unix:path=/run/user/1000/bus"; - NO_AT_BRIDGE = "1"; - }; - }; } diff --git a/systems/laptop.nix b/systems/laptop.nix index d529750..a4f7d98 100644 --- a/systems/laptop.nix +++ b/systems/laptop.nix @@ -1,18 +1,15 @@ { - config, pkgs, - callPackage, - lib, - username, + settings, ... }: { #important stuff first imports = [ ../modules/boot.nix - ../modules/prime.nix - ../modules/nvidia.nix - ../modules/packages.nix ../modules/fonts.nix + ../modules/git.nix + ../modules/packages.nix + ../modules/prime.nix ../modules/scripts.nix ../modules/xserver.nix ../modules/zsh.nix @@ -22,13 +19,14 @@ hardware.cpu.amd.updateMicrocode = true; # end important stuff - environment.systemPackages = with pkgs; [ - xorg.xf86videoamdgpu - ]; + #environment.systemPackages = with pkgs; [ + # xorg.xf86videoamdgpu + #]; + #don't think i need this^ # user managment users = { defaultUserShell = pkgs.zsh; - users."${username}" = { + users."${settings.username}" = { isNormalUser = true; extraGroups = ["wheel" "audio" "networkmanager"]; };