Monitor specific configs in hosts

This commit is contained in:
Martin Berg Alstad 2025-04-15 17:48:57 +02:00
parent 980334b44b
commit 4a884f5e6e
Signed by: martials
GPG Key ID: 706F53DD087A91DE
12 changed files with 63 additions and 65 deletions

4
hosts/desktop/common.nix Normal file
View File

@ -0,0 +1,4 @@
{
monitor1 = "DP-1";
monitor2 = "DP-3";
}

View File

@ -6,6 +6,8 @@
{ {
imports = [ imports = [
(lib.custom.relativeToRoot "shared/home-manager") (lib.custom.relativeToRoot "shared/home-manager")
./hyprpaper.nix
./settings.nix
]; ];
programs.git.signing.key = "706F53DD087A91DE"; programs.git.signing.key = "706F53DD087A91DE";

View File

@ -0,0 +1,29 @@
# Wallpapers
{
lib,
theme,
...
}:
{
services.hyprpaper.settings =
let
wallpaper1 = builtins.toString theme.wallpaper.monitor1;
wallpaper2 = builtins.toString theme.wallpaper.monitor2;
in
{
preload = lib.mkDefault [
wallpaper1
wallpaper2
];
wallpaper =
let
common = import ../common.nix;
in
lib.mkDefault [
"${common.monitor1},${wallpaper1}"
"${common.monitor2},${wallpaper2}"
];
};
}

View File

@ -0,0 +1,12 @@
{ lib, ... }:
{
wayland.windowManager.hyprland.settings.monitor =
let
common = import ../common.nix;
in
lib.mkForce [
"${common.monitor1}, 3440x1440@175, 0x0, 1"
"${common.monitor2}, 3840x2160@60, 3440x0, 1.5, transform, 1"
];
}

View File

@ -1,25 +1,4 @@
rec { {
default = { # Empty matches all monitors
browser = "zen";
calculator = "gnome-calculator";
fileManager = "nautilus";
imageViewer = "loupe";
lockScreen = "hyprlock";
terminal = "kitty";
};
dir = {
home = "/home/${username}";
pictures = "${dir.home}/Pictures";
};
keymaps = {
layout = "gb,no";
options = "grp:alt_shift_toggle"; # Toggle using ALT + SHIFT
};
# Empty matches all
monitor1 = ""; monitor1 = "";
username = "martin";
} }

View File

@ -1,23 +0,0 @@
# Wallpapers
{
lib,
theme,
common,
...
}:
{
services.hyprpaper.settings =
let
monitor1 = builtins.toString theme.wallpaper.monitor1;
in
{
preload = lib.mkDefault [
monitor1
];
wallpaper = lib.mkDefault [
"${common.monitor1},${monitor1}"
];
};
}

View File

@ -1,12 +1,15 @@
{ {
lib, lib,
common,
... ...
}: }:
{ {
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
monitor = lib.mkDefault [ monitor =
let
common = import ../common.nix;
in
lib.mkForce [
"${common.monitor1}, 1920x1080@60.05, 0x0, 1" "${common.monitor1}, 1920x1080@60.05, 0x0, 1"
]; ];

View File

@ -18,10 +18,6 @@ rec {
options = "grp:alt_shift_toggle"; # Toggle using ALT + SHIFT options = "grp:alt_shift_toggle"; # Toggle using ALT + SHIFT
}; };
# Empty matches all
monitor1 = "DP-1";
monitor2 = "DP-3";
username = "martin"; username = "martin";
root = ../.; root = ../.;

View File

@ -1,4 +1,4 @@
# Home configurations for Hyprland. For system configs, see ./modules/hyprland # Home configurations for Hyprland. For system configs, see ./shared/modules/hyprland
{ {
imports = [ imports = [
./binds.nix ./binds.nix

View File

@ -1,7 +1,6 @@
# Wallpapers # Wallpapers
{ {
pkgs, pkgs,
common,
theme, theme,
... ...
}: }:
@ -13,8 +12,7 @@
enable = true; enable = true;
settings = settings =
let let
monitor1 = builtins.toString theme.wallpaper.monitor1; defaultWallpaper = builtins.toString theme.wallpaper.default;
monitor2 = builtins.toString theme.wallpaper.monitor2;
in in
{ {
ipc = "on"; ipc = "on";
@ -22,13 +20,11 @@
splash_offset = 2.0; splash_offset = 2.0;
preload = [ preload = [
monitor1 defaultWallpaper
monitor2
]; ];
wallpaper = [ wallpaper = [
"${common.monitor1},${monitor1}" ",${defaultWallpaper}"
"${common.monitor2},${monitor2}"
]; ];
}; };
}; };

View File

@ -10,8 +10,7 @@ in
{ {
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
monitor = [ monitor = [
"${common.monitor1}, 3440x1440@175, 0x0, 1" ", preferred, auto, 1"
"${common.monitor2}, 3840x2160@60, 3440x0, 1.5, transform, 1"
]; ];
# Autostart # Autostart

View File

@ -5,8 +5,9 @@ rec {
nerdFont = "JetBrainsMono"; nerdFont = "JetBrainsMono";
wallpaper = { wallpaper = rec {
lockscreen = ./assets/catppuccin_page_curl.png; lockscreen = ./assets/catppuccin_page_curl.png;
default = monitor1;
monitor1 = ./assets/nixos_waves.png; monitor1 = ./assets/nixos_waves.png;
monitor2 = ./assets/ekg_v2.png; monitor2 = ./assets/ekg_v2.png;
}; };