{ config, pkgs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; # Basic Setup. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; networking.hostName = "liam-tpad"; networking.networkmanager.enable = true; time.timeZone = "America/New_York"; i18n.defaultLocale = "en_CA.UTF-8"; services.xserver.enable = true; services.libinput.enable = true; services.printing.enable = true; users.users.liam = { isNormalUser = true; description = "liam"; extraGroups = [ "networkmanager" "wheel" "libvirtd" "kvm" ]; packages = with pkgs; [ ]; }; users.users.liam.shell = pkgs.zsh ; virtualisation.libvirtd.enable = true; virtualisation.spiceUSBRedirection.enable = true; services.blueman.enable = true; hardware.bluetooth = { enable = true; powerOnBoot = true; settings = { General = { # Shows battery charge of connected devices on supported # Bluetooth adapters. Defaults to 'false'. Experimental = true; # When enabled other devices can connect faster to us, however # the tradeoff is increased power consumption. Defaults to # 'false'. FastConnectable = true; }; Policy = { # Enable all controllers when they are found. This includes # adapters present on start as well as adapters that are plugged # in later on. Defaults to 'true'. AutoEnable = true; }; }; }; # Graphics hardware.graphics = { enable = true; #extraPackages = with pkgs; [ #intel-media-driver #intel-compute-runtime #vpl-gpu-rt #]; }; services.displayManager.ly.enable = true; programs.hyprland.enable = true; services.hypridle.enable = true; programs.hyprlock.enable = true; # services.xserver.desktopManager.cinnamon.enable = true; # Configure keymap in X11 services.xserver.xkb = { layout = "us"; variant = ""; options = "caps:ctrl_modifier"; }; # Splash screen boot.plymouth.enable = true; boot.plymouth.theme = "breeze"; # Enable doas instead of sudo security.sudo.enable = false; security.doas.enable = true; security.doas.extraRules = [{ users = [ "liam" ]; keepEnv = true; persist = true; }]; # power powerManagement.cpuFreqGovernor = "powersave"; powerManagement.enable = true; powerManagement.powertop.enable = true; services.thermald.enable = true; # Set ZSH as Shell programs.zsh = { enable = true; shellAliases = { conf = "du -a ~/.config/* | awk '{print $2}' | fzf | xargs -r $EDITOR"; dox = "du -a ~/Documents/* | awk '{print $2}' | fzf | xargs -r $EDITOR"; config = "doas vim /etc/nixos/configuration.nix"; }; ohMyZsh = { enable = true; plugins = ["vi-mode"]; theme = "arrow"; }; }; # Enable sound with pipewire. services.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; # Programs programs.firefox.enable = true; programs.neovim = { enable = true; defaultEditor = true; vimAlias = true; configure = { customRC = '' set t_Co=256 set paste setlocal formatoptions=1 setlocal linebreak set thesaurus+=~/Documents/thesaur/mthesaur.txt set complete+=s set scrolloff=5 set number relativenumber set path+=,** colorscheme everforest set ignorecase set cursorline set smartcase set mouse=a let g:transparent_enabled = v:true set noswapfile map :Yazi map :Goyo map :Limelight!! map :Telescope find_files map :Yazi map :TypstWatch map :! pdflatex % map :! typst compile % map :! zathura $(echo % \| sed 's/tex$/pdf/') & disown set spell set spelllang=en_us set termguicolors ''; packages.myVimPackage = with pkgs.vimPlugins; {start = [ vim-nix limelight-vim oil-nvim typst-vim transparent-nvim nvim-cmp yazi-nvim vim-pandoc vimtex oceanic-next goyo gruvbox catppuccin-nvim rose-pine awesome-vim-colorschemes molokai everforest vim-airline vim-surround ]; }; }; }; # Applications environment.systemPackages = with pkgs; [ hugo obs-studio mangowc nix-search-cli dmenu networkmanager_dmenu waybar mpv qutebrowser timeshift swaybg waypaper hyprshot bluetuith pkgs.kitty pciutils gotop nemo yazi fzf kdePackages.kdenlive git qbittorrent wiremix alsa-utils brightnessctl cmus cava zathura texliveFull typst gnome-boxes dnsmasq ]; fonts.packages = with pkgs; [ nerd-fonts.ubuntu ubuntu-sans ubuntu-classic ubuntu-sans-mono ]; # Don't change this lol system.stateVersion = "25.05"; # Did you read the comment? }