160 lines
3.9 KiB
Nix
160 lines
3.9 KiB
Nix
{
|
|
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.
|
|
}
|