{ inputs, pkgs, moduleRel, ... }: { imports = [ ./hardware-configuration.nix ./hardware-configuration.override.nix ] ++ moduleRel [ # Roles "desktop" "development" "gaming" # Desktop environment "hyprland" "theming" "sddm.nix" # Communication "signal.nix" "discord.nix" # Browsers - Yes I need them all "browsers/firefox.nix" "browsers/zen-browser.nix" "browsers/chromium.nix" # Hardware "hardware/zsa.nix" ]; services.btrfs.autoScrub.enable = true; monitors = [ { isPrimary = true; name = "DP-2"; width = 1920; height = 1080; refreshRate = 144; x = 1080; y = 420; vrr = true; } { name = "HDMI-A-2"; width = 1920; height = 1080; x = 0; y = 0; transform = "counterclockwise"; } { name = "HDMI-A-1"; width = 1920; height = 1080; x = 1080 + 1920; y = 0; transform = "clockwise"; } ]; hyprland = let mod = "SUPER"; uwsm = "${pkgs.uwsm}/bin/uwsm"; mkUwsmApp = pkg: name: "${uwsm} app -- ${pkg}/share/applications/${name}.desktop"; in { mod = mod; autoStart = [ "uwsm-app -- ags run" (mkUwsmApp inputs.zen-browser.packages.x86_64-linux.default "zen-beta") (mkUwsmApp pkgs.discord "discord") ]; binds = let grimPre = "${pkgs.grimblast}/bin/grimblast --freeze"; in { "${mod}, return" = "exec, ${mkUwsmApp pkgs.kitty "kitty"}"; "${mod}, E" = "exec, ${pkgs.ulauncher}/bin/ulauncher-toggle #wofi --show drun"; ", Print" = "exec, ${grimPre} copy area"; "SHIFT, Print" = "exec, ${grimPre} copy output"; "CTRL, Print" = "exec, ${grimPre} copy screen"; "${mod}, Print" = "exec, ${pkgs.hyprpicker}/bin/hyprpicker -anf hex"; # 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 = { # ULauncher "class:^(ulauncher)$" = [ "dimaround" ]; # Auto workspace "class:zen-beta" = [ "workspace 1 silent" ]; "class:discord" = [ "workspace name:HDMI-A-1" ]; }; }; hyprpaper.wallpaperFolder = "/home/kalle/Pictures/Wallpapers"; home-manager.users.kalle = { home.packages = with pkgs; [ unzip podman ]; }; services.udev.packages = [ # Allow flashing android devices and using ADB pkgs.android-udev-rules ]; # ROCm support hardware.graphics.extraPackages = with pkgs; [ rocmPackages.clr.icd ]; # 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. }