{ config , pkgs , ... }: { imports = [ ./hardware-configuration.nix # Include the results of the hardware scan. ]; boot = { # Bootloader. loader = { grub = { enable = true; device = "/dev/sda"; }; #grub }; kernelModules = [ "i2c-dev" "i2c-piix4" ]; extraModulePackages = [ # config.boot.kernelPackages.v4l2loopback ]; }; networking = { hostName = "nixos"; networkmanager.enable = true; firewall.enable = false; }; # Set your time zone. time.timeZone = "America/Chicago"; # Select internationalisation properties. i18n = { defaultLocale = "en_US.UTF-8"; extraLocaleSettings = { LC_ADDRESS = "en_US.UTF-8"; LC_IDENTIFICATION = "en_US.UTF-8"; LC_MEASUREMENT = "en_US.UTF-8"; LC_MONETARY = "en_US.UTF-8"; LC_NAME = "en_US.UTF-8"; LC_NUMERIC = "en_US.UTF-8"; LC_PAPER = "en_US.UTF-8"; LC_TELEPHONE = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8"; }; }; services = { gvfs.enable = true; # Enable rgb controller hardware.openrgb.enable = true; # Enable CUPS to print documents. printing.enable = true; # I have a hp envy 4510 printing.drivers = [ pkgs.hplip ]; # Enable sound with pipewire. pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; # If you want to use JACK applications, uncomment this #jack.enable = true; }; # Enable the X11 windowing system. xserver = { enable = true; desktopManager.cinnamon.enable = true; # desktopManager.xfce.enable = true; videoDrivers = [ "nvidia" ]; # Enable touchpad support (enabled default in most desktopManager). # libinput.enable = false; # Configure keymap in X11 layout = "us"; xkbVariant = ""; # Auto log in displayManager = { lightdm.enable = true; defaultSession = "cinnamon"; autoLogin = { enable = true; user = "able"; }; }; }; }; hardware = { bluetooth.enable = true; keyboard.qmk.enable = true; opengl.enable = true; # Optionally, you may need to select the appropriate driver version for your specific GPU. nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable; # openrazer = { # enable = true; # users = [ "able" ]; # }; pulseaudio.enable = false; }; security.rtkit.enable = true; sound.enable = true; 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 }; #----=[ Fonts ]=----# fonts = { enableDefaultPackages = true; packages = with pkgs; [ noto-fonts noto-fonts-cjk ]; # fontconfig = { # defaultFonts = { }; # }; }; users.users.able = { openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE8hxhhfB2zomqQLw/o3MaFxHIhE9cfmuW55npfwVtOJ able@nixos" ]; isNormalUser = true; description = "able"; extraGroups = [ "networkmanager" "wheel" "input" "adbusers" ]; }; home-manager.users.able = { pkgs, ... }: { nixpkgs.config = { allowUnfree = true; permittedInsecurePackages = [ # "electron-12.2.3" "electron-19.1.9" "electron-24.8.6" ]; }; # "https://rycee.gitlab.io/home-manager/options.html" # opt-dconf.settings imports = [ ./dconf.nix ]; home = { stateVersion = "22.11"; packages = with pkgs; [ # Used for sidequest android-tools adoptopenjdk-bin appimage-run bottles cataclysm-dda cinnamon.nemo dconf2nix discord flameshot firefox gimp grapejuice gzdoom enyo-launcher etcher keepassxc nixfmt prismlauncher llvmPackages_16.clangUseLLVM lutris obs-studio obsidian openrgb openmw OVMFFull qemu_full rustup shattered-pixel-dungeon sidequest steam soundux spotify winePackages.full unityhub via vintagestory vtm # MonoTTY VTM ]; }; programs.bash = { enable = true; shellAliases = { cinnaback = "dconf dump / | dconf2nix > dconf.nix"; rebuild = "sudo nixos-rebuild switch"; # Git commands gcl = "git clone"; genpass = "strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo"; kilotime = "printf '%sK%sS\n' $(( $(($(date -d 'now' '+%s') - $(date -d 'today 00:00' '+%s'))) / 1000 )) $(( $(($(date -d 'now' '+%s') - $(date -d 'today 00:00' '+%s'))) % 1000 ))"; ################# # List Variants # ################# la = "ls -a"; labc = "ls -lap --color"; }; initExtra = '' up(){ local d="" limit=$1 for ((i=1 ; i <= limit ; i++)) do d=$d/.. done d=$(echo $d | sed 's/^\///') if [ -z "$d" ]; then d=.. fi cd $d } ######## # ANSI # ######## RED="\[\e[0;38;5;196m\]" GREEN="\[\e[0;92m\]" BLUE="\[\e[0;38;5;51m\]" GREY="\[\e[0;37m\]" RESET="\[\e[0m\]" ######### # PROMT # ######### PROMPT="$RED~> $RESET" LINE_ONE="[$GREEN\w$RESET]\n" LINE_TWO="$GREEN\u$GREY@$BLUE\h $PROMPT" PS1="$LINE_ONE$LINE_TWO" PS2="$PROMPT" ##################### # History managment # ##################### # See: https://unix.stackexchange.com/questions/18212/bash-history-ignoredups-and-erasedups-setting-conflict-with-common-history HISTCONTROL=ignoredboth:erasedups shopt -s histappend PROMPT_COMMAND="history -n; history -w; history -c; history -r; $PROMPT_COMMAND" ''; }; programs.vscode = { enable = true; extensions = with pkgs.vscode-extensions; [ bbenoist.nix b4dm4n.vscode-nixpkgs-fmt eamodio.gitlens mskelton.one-dark-theme rust-lang.rust-analyzer tamasfe.even-better-toml mhutchie.git-graph mattn.lisp ]; userSettings = { rust-analyzer.check.command = "clippy"; files = { autoSave = "off"; associations = { "*.hbasm" = "asm-intel-x86-generic"; "*.ali" = "lisp"; }; }; "editor.minimap.enabled" = false; "[nix]".editor.tabSize = 2; git = { autofetch = true; enableSmartCommit = true; }; gitlens.showWelcomeOnInstall = false; explorer.confirmDelete = false; editor = { multiCursorModifier = "ctrlCmd"; formatOnSave = true; formatOnPaste = true; find.addExtraSpaceOnTop = false; tokenColorCustomizations = { textMateRules = [ { name = "One Dark italic"; scope = [ "comment" "entity.other.attribute-name" "keyword" "markup.underline.link" "storage.modifier" "storage.type" "string.url" "variable.language.super" "variable.language.this" ]; settings = { fontStyle = "italic"; }; } { name = "One Dark italic reset"; scope = [ "keyword.operator" "keyword.other.type" "storage.modifier.import" "storage.modifier.package" "storage.type.built-in" "storage.type.function.arrow" "storage.type.generic" "storage.type.java" "storage.type.primitive" ]; settings = { fontStyle = ""; }; } ]; }; }; window.zoomLevel = 2; workbench.colorTheme = "One Dark"; }; }; programs.git = { package = pkgs.gitAndTools.gitFull; enable = true; userName = "able"; userEmail = "abl3theabove@gmail.com"; lfs.enable = true; signing = { key = ""; signByDefault = false; }; }; }; # Allow unfree packages nixpkgs.config.allowUnfree = true; programs.adb.enable = true; # List packages installed in system profile. To search, run: # $ nix search wget services.udev.extraRules = '' SUBSYSTEM=="usb", ATTRS{idVendor}=="0416", ATTRS{idProduct}=="5020", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="2833", ATTR{idProduct}=="0186", MODE="0666" KERNEL=="hidraw*", ATTRS{idVendor}=="0416", ATTRS{idProduct}=="5020", MODE="0666" ''; xdg.mime.defaultApplications = { "application/pdf" = "firefox.desktop"; "inode/directory" = [ "nemo.desktop" "code.desktop" ]; }; environment.systemPackages = with pkgs; [ linuxKernel.packages.linux_6_1.v4l2loopback cifs-utils ]; fileSystems."/home/able/Documents/media" = { device = "//10.0.0.28/media/"; fsType = "cifs"; options = let # this line prevents hanging on network split automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s"; in [ "${automount_opts},credentials=/etc/nixos/smb-secrets,uid=1000,gid=100" ]; }; # 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; # 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 = " 22.11 "; # Did you read the comment? }