{ config, pkgs, lib, inputs, ... }: { imports = [ ]; home.username = "ryan"; home.homeDirectory = "/home/ryan"; home.stateVersion = "23.11"; # Please read the comment before changing. nixpkgs.config.allowUnfree = true; xdg.configFile."nix/nix.conf".text = "experimental-features = nix-command flakes\n"; xdg.configFile."nix/registry.json".text = builtins.toJSON { version = 2; flakes = [ { from = { type = "indirect"; id = "nixpkgs"; }; to = { type = "path"; path = inputs.nixpkgs.outPath; lastModified = inputs.nixpkgs.lastModified; narHash = inputs.nixpkgs.narHash; }; } ]; }; fonts.fontconfig.enable = true; fonts.fontconfig.defaultFonts = { monospace = [ "DejaVu Sans Mono" ]; sansSerif = [ "DejaVu Sans" ]; serif = [ "DejaVu Serif" ]; }; home.pointerCursor = { enable = true; package = pkgs.bibata-cursors; name = "Bibata-Modern-Classic"; size = 24; gtk.enable = true; x11.enable = true; }; services.gpg-agent.pinentry.package = pkgs.pinentry-qt; wayland.windowManager.hyprland = { enable = true; package = pkgs.hyprland; portalPackage = pkgs.xdg-desktop-portal-hyprland; extraConfig = builtins.readFile ./linux/hypr/hyprland.conf; }; xdg.configFile = { "hypr/monitors.conf".source = ./linux/hypr/monitors.conf; "hypr/kanshi.conf".source = ./linux/hypr/kanshi.conf; "hypr/pyprland.toml".source = ./linux/hypr/pyprland.toml; "hypr/hypridle.conf".source = ./linux/hypr/hypridle.conf; "hypr/hyprlock.conf".source = ./linux/hypr/hyprlock.conf; "hypr/scripts" = { source = ./linux/hypr/scripts; recursive = true; }; "hypr/family_guy.mp4".source = ./linux/hypr/family_guy.mp4; "hypr/subwaysurfer.webm".source = ./linux/hypr/subwaysurfer.webm; "waybar" = { source = ./linux/waybar; recursive = true; }; "alacritty" = { source = ./linux/alacritty; recursive = true; }; "foot" = { source = ./linux/foot; recursive = true; }; "wpaperd" = { source = ./linux/wpaperd; recursive = true; }; "mpv" = { source = ./linux/mpv; recursive = true; }; "pulse/client.conf".source = ./linux/pulseaudio/client.conf; }; home.file = { # Files that need to be in ~ go here }; home.packages = with pkgs; [ gcc pkg-config wttrbar wl-clip-persist waypaper xwayland xdg-desktop-portal xdg-desktop-portal-gtk mpv imv libva libvdpau hypridle hyprpicker wpaperd wl-mirror pyprland satty sops restic bluetui supercell-wx chromium foot waybar fuzzel nerd-fonts.anonymice nerd-fonts.monofur nerd-fonts.lilex nerd-fonts.fira-code noto-fonts dejavu_fonts liberation_ttf noto-fonts-cjk-sans noto-fonts-color-emoji # hyprlock built by nix needs Guix's PAM/fontconfig libs preloaded to run # under the Guix system profile - same interop hack as before. (pkgs.writeScriptBin "hyprlock" '' #! ${pkgs.bash}/bin/bash export LD_PRELOAD="/run/current-system/profile/lib/libpam.so.0:/run/current-system/profile/lib/libfontconfig.so:$LD_PRELOAD" exec ${pkgs.hyprlock}/bin/hyprlock "$@" '') # Guix's mesa doesn't match nixpkgs', so GL apps built by nix need nixGL. inputs.nixgl.packages.${pkgs.system}.nixGLIntel inputs.clipboard-sync.packages.${pkgs.system}.default ]; }