{ config, pkgs, inputs, lib, ... }: let me = { nickname = "noa"; fullName = "Noa Aarts"; email = "noa@voorwaarts.nl"; }; cursor_name = "Bibata-Rainbow-Modern"; cursor_src = pkgs.fetchzip { name = cursor_name; url = "https://github.com/ful1e5/Bibata_Cursor_Rainbow/releases/download/v1.1.2/Bibata-Rainbow-Modern.tar.gz"; hash = "sha256-Ps+IKPwQoRwO9Mqxwc/1nHhdBT2R25IoeHLKe48uHB8="; }; in { imports = [ ../../modules/hyprland.nix ../../modules/games ../../modules/applications ../../common/nvim/nvim.nix ../../common/discord/discord.nix ../../common/spotify.nix ]; home = { file = { ".gnupg/scdaemon.conf".text = "disable-ccid"; "programming".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Documents/programming/"; }; homeDirectory = "/home/${me.nickname}"; packages = with pkgs; [ file unzip zip dig mtr signal-desktop btop dconf pipewire localsend blueberry qbittorrent keepassxc yubico-piv-tool libreoffice-qt6 inputs.flurry.packages.${system}.flurry inputs.tsunami.packages.${system}.tsunami ]; pointerCursor = { gtk.enable = true; name = cursor_name; size = 32; package = pkgs.runCommandNoCC "moveUp" { } '' mkdir -p $out/share/icons ln -s ${cursor_src} $out/share/icons/${cursor_name} ''; }; sessionVariables = { EDITOR = "nvim"; TERM = "kitty"; GDK_BACKEND = "wayland,x11"; QT_QPA_PLATFORM = "wayland;xcb"; CLUTTER_BACKEND = "wayland"; XDG_CURRENT_DESKTOP = "Hyprland"; XDG_SESSION_TYPE = "wayland"; XDG_SESSION_DESKTOP = "Hyprland"; WLR_NO_HARDWARE_CURSORS = "1"; }; stateVersion = "23.11"; # Do not change :3 username = me.nickname; }; nixpkgs.config.allowUnfree = true; modules = { hyprland = { enable = true; displays = [ { name = "DP-3"; horizontal = 2560; vertical = 1440; horizontal-offset = 2560; vertical-offset = 0; refresh-rate = 360; scale = "1"; } { name = "DP-2"; horizontal = 2560; vertical = 1440; horizontal-offset = 0; vertical-offset = 0; refresh-rate = 144; scale = "1"; } ]; }; games.enable = true; apps = { enable = true; git = { name = me.fullName; email = me.email; do_sign = true; }; thunderbird = { enable = true; }; neovim.enableLanguages = true; }; }; xdg = { enable = true; userDirs = { enable = true; createDirectories = true; }; }; dconf = { enable = true; settings = { "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; }; }; }; gtk = { enable = true; gtk2.extraConfig = '' gtk-enable-animations=1 gtk-primary-button-warps-slider=1 gtk-toolbar-style=3 gtk-menu-images=1 gtk-button-images=1 gtk-sound-theme-name="ocean" gtk-font-name="Noto Sans, 10" ''; theme = { name = "Adwaita-dark"; package = pkgs.gnome-themes-extra; }; }; programs = { # Let Home Manager install and manage itself. home-manager.enable = true; # add `play funny video` as alias because why not zsh.shellAliases.bzzt = ''nix-shell -p mpv --command "mpv ~/Videos/BZZZM.mp4"''; # lsd makes files look better lsd = { enable = true; enableAliases = true; }; # manpages can be quite useful man.enable = true; obs-studio.enable = true; ssh = { enable = true; compression = true; # TODO: add host configurations for ssh }; }; services.syncthing = { enable = true; }; }