feat: support new monitor

This commit is contained in:
Moritz Böhme 2023-09-22 10:14:12 +02:00
parent b234bdbd06
commit 271cbb359b
Signed by: moritz
GPG key ID: 970C6E89EB0547A9
6 changed files with 139 additions and 58 deletions

View file

@ -17,9 +17,14 @@
gaming.enable = true; gaming.enable = true;
personal.enable = true; personal.enable = true;
}; };
programs.hyprland.nvidiaSupport = true; programs.hyprland = {
programs.hyprland.keyboardLayouts = [ "us" "de" ]; nvidiaSupport = true;
monitors = [ "HDMI-A-1,3840x2160,auto,1.2" ",preferred,auto,1" ];
extraConfig = "exec=hyprctl keyword monitor HDMI-A-1,3840x2160@120,auto,1.2";
keyboardLayouts = [ "us" "de" ];
};
services.mullvad.enable = true; services.mullvad.enable = true;
services.wallpaper.enable = true;
programs.ledger.enable = true; programs.ledger.enable = true;
}; };

View file

@ -188,11 +188,14 @@ in
wget wget
]; ];
fonts.packages = with pkgs; [ fonts = {
enableDefaultPackages = true;
packages = with pkgs; [
(nerdfonts.override { (nerdfonts.override {
fonts = [ "FiraCode" ]; fonts = [ "FiraCode" ];
}) })
]; ];
};
programs = { programs = {
mtr.enable = true; mtr.enable = true;

View file

@ -17,7 +17,7 @@ in
# #
# See https://wiki.hyprland.org/Configuring/Monitors/ # See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,preferred,auto,1 ${concatLines (map (x: "monitor=${x}") cfg.monitors)}
# See https://wiki.hyprland.org/Configuring/Keywords/ for more # See https://wiki.hyprland.org/Configuring/Keywords/ for more
@ -110,6 +110,13 @@ in
workspace_swipe = on workspace_swipe = on
} }
misc {
# disable_hypr_chan = true
vrr = 1
mouse_move_enables_dpms = true
key_press_enables_dpms = true
}
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# Firefox Sharing Indicator # Firefox Sharing Indicator
${mkRules ["float" "move 49% 40" "noborder" "nofullscreenrequest"] ["title:^(.*Sharing Indicator.*)$"]} ${mkRules ["float" "move 49% 40" "noborder" "nofullscreenrequest"] ["title:^(.*Sharing Indicator.*)$"]}
@ -207,5 +214,9 @@ in
bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow bindm = $mainMod, mouse:273, resizewindow
exec-once=${getExe config.my.programs.wallpaper.package} -r # Toggle waybar
bindr = $mainMod, SUPER_L, exec, pkill -USR1 waybar
# Extra Config
${cfg.extraConfig}
'' ''

View file

@ -31,6 +31,15 @@ in
description = "list of keyboard layouts"; description = "list of keyboard layouts";
default = [ "de" "us" ]; default = [ "de" "us" ];
}; };
monitors = mkOption {
type = types.listOf types.str;
description = "monitor settings";
default = [ ",preferred,auto,1" ];
};
extraConfig = mkOption {
type = types.str;
default = "";
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@ -70,6 +79,7 @@ in
settings = { settings = {
mainBar = { mainBar = {
start_hidden = true;
layer = "top"; layer = "top";
position = "top"; position = "top";
height = 20; height = 20;
@ -81,8 +91,13 @@ in
}; };
# lock screen after timeout # lock screen after timeout
home-manager.users.moritz = { home-manager.users.moritz.programs.swaylock = {
services.swayidle = { enable = true;
settings = {
color = "000000";
};
};
home-manager.users.moritz.services.swayidle = {
enable = true; enable = true;
events = [ events = [
{ {
@ -120,7 +135,6 @@ in
}; };
systemdTarget = "hyprland-session.target"; systemdTarget = "hyprland-session.target";
}; };
};
# adds pam module for swaylock # adds pam module for swaylock
security.pam.services.swaylock = { }; security.pam.services.swaylock = { };
@ -184,16 +198,29 @@ in
alsa.support32Bit = true; alsa.support32Bit = true;
pulse.enable = true; pulse.enable = true;
}; };
xserver = { greetd = {
enable = true;
displayManager = {
lightdm.enable = true;
autoLogin = {
enable = true; enable = true;
settings =
let
hyprlandCommand = getExe' hyprland "Hyprland";
in
{
initial_session = {
command = hyprlandCommand;
user = "moritz"; user = "moritz";
}; };
defaultSession = "hyprland"; default_session = {
sessionPackages = [ hyprland ]; # can't set the defaultSession otherwise command = ''
${pkgs.greetd.tuigreet}/bin/tuigreet \
--time \
--asterisks \
--user-menu \
--remember \
--power-shutdown 'systemctl poweroff' \
--power-reboot 'systemctl reboot' \
--cmd ${hyprlandCommand}
'';
};
}; };
}; };
}; };

View file

@ -2,6 +2,7 @@
WALLPAPERS_PATH="$HOME/.config/wallpapers" WALLPAPERS_PATH="$HOME/.config/wallpapers"
WALLPAPERS=$(find "$WALLPAPERS_PATH" -type f,l) WALLPAPERS=$(find "$WALLPAPERS_PATH" -type f,l)
DEBUG=0
function help() { function help() {
echo "Usage:" echo "Usage:"
@ -22,7 +23,11 @@ function setWallpaperX {
} }
function setWallpaperWayland { function setWallpaperWayland {
if [[ $DEBUG -eq 1 ]]; then
swaybg --mode fill -i "$1" &
else
swaybg --mode fill -i "$1" 2>/dev/null & swaybg --mode fill -i "$1" 2>/dev/null &
fi
} }
function setWallpaper() { function setWallpaper() {
@ -53,6 +58,10 @@ while [[ $# -gt 0 ]]; do
shift # past argument shift # past argument
shift # past value shift # past value
;; ;;
-v | --verbose)
DEBUG=1
shift # past argument
;;
*) *)
POSITIONAL+=("$1") # save it in an array for later POSITIONAL+=("$1") # save it in an array for later
shift # past argument shift # past argument

View file

@ -0,0 +1,26 @@
{ lib, config, ... }:
with lib;
let
cfg = config.my.services.wallpaper;
in
{
options.my.services.wallpaper = {
enable = mkEnableOption "wallpaper changer";
frequency = mkOption {
type = types.str;
default = "30m";
};
};
config = mkIf cfg.enable {
systemd.user.services.wallpaper = {
script = "${getExe config.my.programs.wallpaper.package} -r -v";
wantedBy = [ "graphical-session.target" ];
serviceConfig = {
Restart = "always";
RuntimeMaxSec = cfg.frequency;
ExitType = "cgroup";
};
};
};
}