{ inputs, config, pkgs, ... }: { imports = [ ../_base ./hardware-configuration.nix ./hardware-configuration.override.nix ../../modules/sddm.nix ../../modules/hyprland.nix ../../modules/hyprpaper.nix ../../modules/bash.nix ../../modules/kitty.nix ../../modules/git.nix ../../modules/direnv.nix ../../modules/firefox.nix ../../modules/steam.nix ../../modules/nvim ]; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; services.btrfs.autoScrub.enable = true; networking.hostName = "kalle-pc"; networking.networkmanager.enable = true; time.timeZone = "Europe/Amsterdam"; services.xserver = { enable = true; xkb.layout = "us"; }; services.gvfs.enable = true; # Allow flashing ZSA keyboards hardware.keyboard.zsa.enable = true; # No need for firewall, since this machine is always at home networking.firewall.enable = false; hyprland = let mod = "SUPER"; uwsm = "${pkgs.uwsm}/bin/uwsm"; mkUwsmApp = pkg: name: "${uwsm} app -- ${pkg}/share/applications/${name}.desktop"; in { mod = mod; primaryMonitor = "DP-2"; monitors = [ { name = "DP-2"; width = 1920; height = 1080; refreshRate = 144; x = 0; y = 1080; vrr = 1; } { name = "HDMI-A-1"; width = 1920; height = 1080; x = 1500; y = 0; } { name = "HDMI-A-2"; width = 1920; height = 1080; x = 1920; y = 1080; transform = 3; } ]; autoStart = [ "${pkgs.ags}/bin/ags" (mkUwsmApp pkgs.firefox "firefox") (mkUwsmApp pkgs.discord "discord") ]; binds = { "${mod}, return" = "exec, ${mkUwsmApp pkgs.kitty "kitty"}"; "${mod}, E" = "exec, ${pkgs.ulauncher}/bin/ulauncher-toggle #wofi --show drun"; "${mod}, Print" = "exec, ${pkgs.bash}/bin/bash -c \"grim -g \\\"$(slurp)\\\" - | wl-copy\""; # Clipboard history # bind = $mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy }; sensitivity = 0.1; layerRules = { "gtk-layer-shell" = [ "blur" "ignorezero" ]; "notifications2" = [ "noanim" "blur" "ignorezero" ]; }; windowRules = { # Auto workspace firefox = [ "workspace 1 silent" ]; discord = [ "workspace name:HDMI-A-2" ]; }; windowRulesV2 = { # ULauncher "class:^(ulauncher)$" = [ "dimaround" ]; }; }; hyprpaper.wallpaperFolder = "/home/kalle/Pictures/Wallpapers"; home-manager.users.kalle = { home.packages = with pkgs; [ discord discord-canary vesktop chromium httpie kate dolphin ark rustup gcc prismlauncher pavucontrol difftastic sops unzip vlc feishin cachix ]; }; # 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 = "23.05"; # Did you read the comment? # This value determines the Home Manager release that your configuration is # compatible with. This helps avoid breakage when a new Home Manager release # introduces backwards incompatible changes. # # You should not change this value, even if you update Home Manager. If you do # want to update the value, then make sure to first check the Home Manager # release notes. home-manager.users.kalle.home.stateVersion = "23.05"; # Please read the comment before changing. }