consolidate

This commit is contained in:
2025-12-18 12:08:45 -06:00
parent 2d09cfeea1
commit 0c1f0a4639
35 changed files with 57 additions and 745 deletions

View File

@@ -1,8 +1,6 @@
{ config, lib, ... }: {
imports = [
./programs
./services
];
options.homeconfig = with lib; {

View File

@@ -1,14 +0,0 @@
{ config, lib, pkgs, ... }: {
options.homeconfig.calcurse.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.homeconfig.calcurse.enable {
home.packages = with pkgs; [
calcurse
libnotify
];
};
}

View File

@@ -1,24 +0,0 @@
{ config, lib, pkgs, inputs, ... }: {
imports = [
./git
./nh
./hyprland
./hyprpanel
./terminal
./rofi
./pywal
./hyprlock
./calcurse
./firefox
];
config = lib.mkIf (config.homeconfig.host != "android") {
home.packages = lib.mkIf (!config.homeconfig.wal.enable) [
inputs.nixvim.packages.${pkgs.system}.default
];
home.sessionVariables.EDITOR = "nvim";
};
}

View File

@@ -1,60 +0,0 @@
{ config, lib, pkgs, inputs, ... }: {
options.homeconfig.firefox.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.homeconfig.firefox.enable {
home.sessionVariables.BROWSER = "${config.programs.firefox.package}/bin/firefox";
home.packages = lib.mkIf config.homeconfig.wal.enable [
pkgs.pywalfox-native
];
home.file.".mozilla/native-messaging-hosts/pywalfox.json".text = let
pywalfox-wrapper = pkgs.writeShellScriptBin "pywalfox-wrapper" ''
${pkgs.pywalfox-native}/bin/pywalfox start
'';
in lib.replaceStrings [ "<path>" ] [
"${pywalfox-wrapper}/bin/pywalfox-wrapper"
] (lib.readFile "${pkgs.pywalfox-native}/lib/python3.12/site-packages/pywalfox/assets/manifest.json");
programs.firefox = {
enable = true;
package = pkgs.firefox;
profiles.nathan = {
search = {
default = "ddg";
privateDefault = "ddg";
force = true;
};
bookmarks = {
force = true;
settings = [
{
name = "toolbar";
toolbar = true;
bookmarks = [
{
name = "NixOS Search - Packages";
url = "https://search.nixos.org/packages";
}
];
}
];
};
extensions.packages = with inputs.firefox-addons.packages.${pkgs.system}; [
ublock-origin
keepassxc-browser
pywalfox
];
};
};
};
}

View File

@@ -1,44 +0,0 @@
{ config, lib, ... }: {
options.homeconfig.git.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.homeconfig.git.enable {
sops = {
secrets = {
"git/username" = {};
"git/email" = {};
};
templates.gitconfig.content = ''
[user]
name = "${config.sops.placeholder."git/username"}"
email = "${config.sops.placeholder."git/email"}"
'';
};
programs.git = {
enable = true;
includes = [
{ path = "${config.sops.templates.gitconfig.path}"; }
];
extraConfig = {
init = {
defaultBranch = "master";
};
url = {
"ssh://gitea@gitea.blunkall.us/" = {
insteadOf = [
"blunkall:"
];
};
};
};
};
};
}

View File

@@ -1,66 +0,0 @@
{ config, lib, pkgs, ... }: {
options.homeconfig.hyprland.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.homeconfig.hyprland.enable {
home.sessionVariables.NIX_OZONE_WL = "1";
programs.kitty.enable = lib.mkDefault true;
home.packages = with pkgs; [
pyprland
];
home.activation.extraHyprFile = lib.hm.dag.entryAfter ["writeBoundary"] ''
if [[ ! -f ${config.home.homeDirectory}/.config/hypr/otf.conf ]]; then
touch ${config.home.homeDirectory}/.config/hypr/otf.conf
fi
if [[ ! -f ${config.home.homeDirectory}/.config/background ]]; then
cp ${config.home.homeDirectory}/Pictures/Wallpaper/bluescape.jpg ${config.home.homeDirectory}/.config/background
chmod 600 ${config.home.homeDirectory}/.config/background
fi
'';
wayland.windowManager.hyprland = {
enable = true;
systemd = {
enable = true;
variables = [ "--all" ];
};
extraConfig = (if config.homeconfig.host == "laptop" then ''
bind = CTRL SHIFT, XF86Launch2, exec, bash -c 'if [[ $(hyprctl monitors | grep 0x0 | sed -n -e "s/\t*1920x1080@//" -e "s/.[1234567890]* at 0x0//p") == 300 ]]; then pkexec --user root /nix/var/nix/profiles/system/bin/switch-to-configuration switch; else pkexec --user root /nix/var/nix/profiles/system/specialisation/docked/bin/switch-to-configuration switch; fi'
bind = ALT, Escape, exec, if [[ $(hyprctl monitors | grep 0x0 | sed -n -e "s/\t*1920x1080@//" -e "s/.[1234567890]* at 0x0//p") == 300 ]]; then hyprctl keyword monitor eDP-1,1920x1080@60,0x0,1; else hyprctl keyword monitor eDP-1,1920x1080@300,0x0,1; fi
'' else if config.homeconfig.host == "homebox" then ''
monitor=HDMI-A-2,1920x1080@60,0x0,1
monitor=HEADLESS-2,1920x1080@60,0x0,1
exec-once=hyprctl output create headless HEADLESS-2
exec-once=hyprctl keyword monitor HDMI-A-2,disable
exec-once=${pkgs.wayvnc}/bin/wayvnc 0.0.0.0 -o HEADLESS-2
'' else if config.homeconfig.host == "container" then ''
monitor=HEADLESS-2,1920x1080@60,0x0,1
exec-once=hyprctl output create headless HEADLESS-2
exec-once=${pkgs.wayvnc}/bin/wayvnc 0.0.0.0 -o HEADLESS-2
'' else ''
monitor= , prefered, auto, 1
'') + (if config.homeconfig.hyprpanel.enable then ''
bind = , Print, exec, bash -c ${pkgs.hyprpanel}/share/scripts/screenshot.sh"
'' else ''
bind = , Print, exec, grim -g "$(slurp)"
'') + ''
source = ${config.home.homeDirectory}/.config/hypr/main.conf
exec-shutdown = if [[ -f ${config.home.homeDirectory}/.local/share/calcurse/.calcurse.pid ]]; then rm ${config.home.homeDirectory}/.local/share/calcurse/.calcurse.pid; fi
'';
};
};
}

View File

@@ -1,52 +0,0 @@
{ config, lib, pkgs, ... }: {
options.homeconfig.hyprlock.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.homeconfig.hyprlock.enable {
programs.hyprlock = {
enable = true;
};
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances.
before_sleep_cmd = "loginctl lock-session"; # lock before suspend.
after_sleep_cmd = "hyprctl --instance 0 dispatch dpms on"; # to avoid having to press a key twice to turn on the display.
};
listener = [
{
timeout = 150; # 2.5min.
on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor.
on-resume = "brightnessctl -r"; # monitor backlight restore.
}
{
timeout = 300; # 5min
on-timeout = "loginctl lock-session"; # lock screen when timeout has passed
}
{
timeout = 330; # 5.5min
on-timeout = "hyprctl --instance 0 dispatch dpms off"; # screen off when timeout has passed
on-resume = "hyprctl --instance 0 dispatch dpms on && brightnessctl -r"; # screen on when activity is detected after timeout has fired.
}
{
timeout = 1800; # 30min
on-timeout = "systemctl suspend"; # suspend pc
}
];
};
};
};
}

View File

@@ -1,14 +0,0 @@
{ config, lib, ... }: {
options.homeconfig.hyprpanel.enable = with lib; mkOption {
type = with types; bool;
default = false;
};
config = lib.mkIf config.homeconfig.hyprpanel.enable {
programs.hyprpanel = {
enable = true;
};
};
}

View File

@@ -1,21 +0,0 @@
{ config, lib, ... }: {
options.homeconfig.nh.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.homeconfig.nh.enable {
programs.nh = {
enable = true;
flake = "${config.home.homeDirectory}/Projects/Olympus";
clean = {
enable = true;
dates = "weekly";
extraArgs = "--keep 5 --keep-since 5d";
};
};
};
}

View File

@@ -1,19 +0,0 @@
{ config, lib, pkgs, inputs, ... }: {
options.homeconfig.wal.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.homeconfig.wal.enable {
home.packages = with pkgs; [
inputs.nixvim.packages.${pkgs.system}.pywal
pywal16
imagemagick
];
};
}

View File

@@ -1,20 +0,0 @@
{ config, lib, pkgs, ... }: {
options.homeconfig.rofi.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.homeconfig.rofi.enable {
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
cycle = true;
theme = "/home/nathan/.cache/wal/colors-rofi-dark.rasi";
};
};
}

View File

@@ -1,31 +0,0 @@
{ config, lib, pkgs, ... }: {
home.packages = with pkgs; [ oh-my-posh ];
programs.bash = {
enable = true;
enableCompletion = true;
shellAliases = {
ls = "eza";
ll = "ls -l";
ksh = "kitten ssh";
vi = "nvim";
vim = "nvim";
};
bashrcExtra = ''
source ${pkgs.blesh}/share/blesh/ble.sh
'';
initExtra = if config.homeconfig.wal.enable then (lib.mkBefore ''
cat ${config.home.homeDirectory}/.cache/wal/sequences
eval "$(oh-my-posh init bash --config ${config.home.homeDirectory}/.cache/wal/ohmyposh.toml)"
'') else (lib.mkBefore ''
eval "$(oh-my-posh init bash --config ${config.home.homeDirectory}/.config/ohmyposh/ohmyposh.toml)"
'');
};
}

View File

@@ -1,18 +0,0 @@
{ config, lib, pkgs, ... }: {
programs.bat = {
enable = true;
extraPackages = with pkgs.bat-extras; [
batman
batpipe
batgrep
batdiff
batwatch
prettybat
];
};
}

View File

@@ -1,16 +0,0 @@
{ ... }: {
imports = [
./bat
./bash
./eza
./fzf
./lf
./tmux
./kitty
./zoxide
./zsh
./ssh
./ohmyposh
];
}

View File

@@ -1,17 +0,0 @@
{ config, lib, pkgs, ... }: {
programs.eza = {
enable = true;
enableZshIntegration = true;
extraOptions = [
"--color=auto"
];
git = true;
icons = "auto";
};
}

View File

@@ -1,15 +0,0 @@
{ config, lib, pkgs, ... }: {
programs.fzf = {
enable = true;
enableZshIntegration = true;
tmux = {
#enableShellIntegration = true;
#shellIntegrationOptions = [];
};
};
}

View File

@@ -1,33 +0,0 @@
{ config, lib, pkgs, ... }: {
programs.kitty = {
enable = true;
font = {
name = "FiraCode Nerd Font";
size = 12;
};
extraConfig = ''
confirm_os_window_close 0
include ${config.home.homeDirectory}/.cache/wal/colors-kitty.conf
disable_ligatures never
dynamic_background_opacity yes
tab_bar_edge top
map ctrl+shift+t new_tab
map ctrl+shift+w close_tab
map ctrl+tab next_tab
map ctrl+shift+tab previous_tab
'';
};
}

View File

@@ -1,132 +0,0 @@
{ config, lib, pkgs, ... }: {
home.packages = with pkgs; [
oh-my-posh
];
programs.zsh = {
initContent = if config.homeconfig.wal.enable then (lib.mkBefore ''
cat ${config.home.homeDirectory}/.cache/wal/sequences
eval "$(oh-my-posh init zsh --config ${config.home.homeDirectory}/.cache/wal/ohmyposh.toml)"
'') else (lib.mkBefore ''
eval "$(oh-my-posh init zsh --config ${config.home.homeDirectory}/.config/ohmyposh/ohmyposh.toml)"
'');
};
home.file.".config/wal/templates/ohmyposh.toml".text = ''
#:schema https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json
version = 2
final_space = true
console_title_template = '{{{{ .Shell }}}} in {{{{ .Folder }}}}'
[[blocks]]
type = 'prompt'
alignment = 'left'
newline = true
[[blocks.segments]]
type = 'os'
style = 'diamond'
trailing_diamond = ''
background = 'p:c1'
foreground = 'p:c12'
template = ' {{{{ .Icon }}}} '
[[blocks.segments]]
type = 'session'
style = 'diamond'
trailing_diamond = ''
background = 'p:c2'
foreground = 'p:c14'
template = '{{{{ .UserName }}}}@{{{{ .HostName }}}}'
[[blocks.segments]]
type = 'path'
style = 'diamond'
trailing_diamond = ''
background = 'p:c4'
foreground = 'p:c13'
template = '{{{{ .Path }}}}'
[blocks.segments.properties]
style = 'full'
[[blocks]]
type = 'prompt'
overflow = 'hidden'
alignment = 'right'
[[blocks.segments]]
type = 'executiontime'
style = 'diamond'
leading_diamond = ''
background = 'p:c4'
foreground = 'p:c13'
template = '{{{{ .FormattedMs }}}}'
[[blocks.segments]]
type = 'time'
style = 'diamond'
leading_diamond = ''
background = 'p:c2'
foreground = 'p:c14'
[[blocks.segments]]
type = 'shell'
style = 'diamond'
leading_diamond = ''
background = 'p:c1'
foreground = 'p:c12'
[[blocks]]
type = 'prompt'
alignment = 'left'
newline = true
[[blocks.segments]]
type = 'text'
style = 'plain'
background = 'transparent'
foreground_templates = [
"{{{{ if gt .Code 0 }}}}p:c13{{{{end}}}}",
"{{{{ if eq .Code 0 }}}}p:c14{{{{end}}}}",
]
template = "{{{{ if gt .Code 0 }}}}! {{{{else}}}} {{{{end}}}}"
[transient_prompt]
foreground_templates = [
"{{{{ if gt .Code 0 }}}}p:c13{{{{end}}}}",
"{{{{ if eq .Code 0 }}}}p:c14{{{{end}}}}",
]
background = 'transparent'
template = "{{{{ if gt .Code 0 }}}}! {{{{else}}}} {{{{end}}}}"
[secondary_prompt]
background = 'transparent'
forground = 'p:c14'
template = " "
[palette]
c0 = "{color0}"
c1 = "{color1}"
c2 = "{color2}"
c3 = "{color3}"
c4 = "{color4}"
c5 = "{color5}"
c6 = "{color6}"
c7 = "{color7}"
c8 = "{color8}"
c9 = "{color9}"
c10 = "{color10}"
c11 = "{color11}"
c12 = "{color12}"
c13 = "{color13}"
c14 = "{color14}"
c15 = "{color15}"
'';
}

View File

@@ -1,8 +0,0 @@
{ config, lib, pkgs, ... }: {
programs.ssh = {
enable = true;
};
}

View File

@@ -1,23 +0,0 @@
{ config, lib, pkgs, ... }: {
programs.tmux = {
enable = true;
clock24 = true;
mouse = true;
baseIndex = 1;
keyMode = "vi";
prefix = "C-b";
shell = "${pkgs.zsh}/bin/zsh";
};
}

View File

@@ -1,13 +0,0 @@
{ config, lib, pkgs, ... }: {
programs.zoxide = {
enable = true;
enableZshIntegration = true;
options = [
"--cmd cd"
];
};
}

View File

@@ -1,33 +0,0 @@
{ config, lib, pkgs, ... }: {
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
ls = "eza";
ll = "ls -l";
ksh = "kitten ssh";
vi = "nvim";
vim = "nvim";
python = "python3.13";
python3 = "python3.13";
};
history = {
size = 5000;
ignoreAllDups = true;
ignoreSpace = true;
share = true;
};
};
}

View File

@@ -1 +0,0 @@
{}: {}

View File

@@ -1,5 +0,0 @@
{ ... }: {
imports = [
./mpd
];
}

View File

@@ -1,41 +0,0 @@
{ config, lib, pkgs, ... }: {
options = {
homeconfig.mpd.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
};
config = lib.mkIf config.homeconfig.mpd.enable {
services.mpd = {
enable = true;
network.startWhenNeeded = true;
network.port = 6600;
network.listenAddress = "127.0.0.1";
musicDirectory = "/home/nathan/Music";
extraConfig = ''
audio_output {
type "pipewire"
name "Audio1"
}
audio_output {
type "fifo"
name "visualizer"
path "/tmp/mpd.fifo"
format "44100:16:1"
}
'';
};
services.mpdris2 = {
enable = true;
mpd.host = "127.0.0.1";
mpd.port = 6600;
package = pkgs.mpdris2;
mpd.musicDirectory = "/home/nathan/Music";
notifications = true;
};
};
}

View File

@@ -1,8 +1,8 @@
{ config, lib, pkgs, inputs, ... }: {
imports = [
# ./programs
# ./services
./programs
./services
./packages
./dotfiles
];

View File

@@ -20,7 +20,7 @@ source = ~/.cache/wal/colors-hypr.conf
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us,jp
kb_layout = us
kb_variant =
kb_model =
kb_options =
@@ -122,9 +122,9 @@ bind = $mainMod SHIFT, B, exec, firefox --private-window
bind = $mainMod, Q, killactive,
bind = $mainMod, R, exec, colorPrefix kitty -e _systemRebuild
#bind = $mainMod, R, exec, colorPrefix kitty -e _systemRebuild
bind = $mainMod SHIFT, R, exec, colorPrefix kitty -e _homeRebuild
#bind = $mainMod SHIFT, R, exec, colorPrefix kitty -e _homeRebuild
bind = $mainMod, F, exec, thunar
bind = $mainMod SHIFT, F, fullscreen
@@ -249,7 +249,7 @@ bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle
bind = $mainMod, F9, exec, pavucontrol
#screen lock key
bind = $mainMod, F12, exec, swaylock
#bind = $mainMod, F12, exec, swaylock
#logout shortcut
bind = CTRL ALT, Delete, exec, loginctl kill-session self
@@ -281,12 +281,12 @@ windowrulev2 = float, $cal
windowrulev2 = $scratchpadsize, $cal
windowrulev2 = workspace special silent, $cal
bind = $mainMod, semicolon, exec, colorPrefix pypr toggle lf
bind = $mainMod, E, exec, colorPrefix pypr toggle kitty
bind = $mainMod, C, exec, colorPrefix pypr toggle calendar
bind = $mainMod, semicolon, exec, pypr toggle lf
bind = $mainMod, E, exec, pypr toggle kitty
bind = $mainMod, C, exec, pypr toggle calendar
bind = CTRL SHIFT, Home, exec, ssh nathan@blunkall.us -fL 5900:localhost:5900 sleep 10; vncviewer localhost:5900 -fullscreen
bind = CTRL SHIFT, Home, exec, ssh nathan@esotericbytes.com -fL 5900:localhost:5900 sleep 10; vncviewer localhost:5900 -fullscreen
bind = CTRL SHIFT, Home, submap, clean

View File

@@ -5,8 +5,8 @@
[scratchpads.lf]
animation = "fromTop"
command = "kitty --class scratchpad-lf -e lf ~"
lazy = false
command = "kitty --class scratchpad-lf lf ~"
lazy = true
class = "scratchpad-lf"
margin = 100
multi = true
@@ -14,9 +14,9 @@
[scratchpads.kitty]
animation = "fromBottom"
command = "kitty --class scratchpad-kitty -e tmux"
command = "kitty --class scratchpad-kitty"
class = "scratchpad-kitty"
lazy = false
lazy = true
margin = 100
multi = true
excludes = "*"
@@ -25,7 +25,7 @@
animation = "fromTop"
command = "kitty --class scratchpad-cal -e calcurse"
class = "scratchpad-cal"
lazy = false
lazy = true
margin = 100
multi = true
excludes = "*"

View File

@@ -37,8 +37,8 @@
};
extraConfig = (if config.homeconfig.host == "laptop" then ''
monitor=eDP-1,1920x1080@300,0x0,1
bind = CTRL SHIFT, XF86Launch2, exec, if [[ $(hyprctl monitors | grep 0x0 | sed -n -e "s/\t*1920x1080@//" -e "s/.[1234567890]* at 0x0//p") == 300 ]]; then hyprctl keyword monitor eDP-1,1920x1080@60,0x0,1; else hyprctl keyword monitor eDP-1,1920x1080@300,0x0,1; fi
bind = CTRL SHIFT, XF86Launch2, exec, bash -c 'if [[ $(hyprctl monitors | grep 0x0 | sed -n -e "s/\t*1920x1080@//" -e "s/.[1234567890]* at 0x0//p") == 300 ]]; then pkexec --user root /nix/var/nix/profiles/system/bin/switch-to-configuration switch; else pkexec --user root /nix/var/nix/profiles/system/specialisation/docked/bin/switch-to-configuration switch; fi'
bind = ALT, Escape, exec, if [[ $(hyprctl monitors | grep 0x0 | sed -n -e "s/\t*1920x1080@//" -e "s/.[1234567890]* at 0x0//p") == 300 ]]; then hyprctl keyword monitor eDP-1,1920x1080@60,0x0,1; else hyprctl keyword monitor eDP-1,1920x1080@300,0x0,1; fi
'' else if config.homeconfig.host == "homebox" then ''
monitor=HDMI-A-2,1920x1080@60,0x0,1
monitor=HEADLESS-2,1920x1080@60,0x0,1

View File

@@ -13,6 +13,40 @@
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances.
before_sleep_cmd = "loginctl lock-session"; # lock before suspend.
after_sleep_cmd = "hyprctl --instance 0 dispatch dpms on"; # to avoid having to press a key twice to turn on the display.
};
listener = [
{
timeout = 150; # 2.5min.
on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor.
on-resume = "brightnessctl -r"; # monitor backlight restore.
}
{
timeout = 300; # 5min
on-timeout = "loginctl lock-session"; # lock screen when timeout has passed
}
{
timeout = 330; # 5.5min
on-timeout = "hyprctl --instance 0 dispatch dpms off"; # screen off when timeout has passed
on-resume = "hyprctl --instance 0 dispatch dpms on && brightnessctl -r"; # screen on when activity is detected after timeout has fired.
}
{
timeout = 1800; # 30min
on-timeout = "systemctl suspend"; # suspend pc
}
];
};
};
};
}

View File

@@ -9,7 +9,6 @@
programs.hyprpanel = {
enable = true;
systemd.enable = false;
};
};
}

View File

@@ -5,6 +5,7 @@
./bash
./eza
./fzf
./lf
./tmux
./kitty
./zoxide

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: {
{ config, ... }: {
programs.kitty = {

View File

@@ -29,18 +29,18 @@
systemd.extraConfig = "DefaultLimitNOFILE=2048";
specialisation = {
/*specialisation = {
docked.configuration = {
home-manager.users.nathan.wayland.windowManager.hyprland.extraConfig = ''
monitor=eDP-1,1920x1080@300,0x0,1
'';
};
};
};*/
home-manager.users.nathan.wayland.windowManager.hyprland.extraConfig = lib.mkIf (config.specialisation != {}) ''
home-manager.users.nathan.wayland.windowManager.hyprland.extraConfig = /*lib.mkIf (config.specialisation != {})*/ ''
monitor=eDP-1,1920x1080@60,0x0,1
monitor=eDP-1, addreserved, 40,0,0,0
'';
#monitor=eDP-1, addreserved, 40,0,0,0
hardware = {
graphics.enable = true;