autorandr works!!!!
This commit is contained in:
parent
eb6bbf5962
commit
fa2bff4aca
3 changed files with 43 additions and 13 deletions
|
@ -1,25 +1,21 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
# TODO: this shit ain't working
|
||||
home-manager.users.krizej.programs.autorandr = {
|
||||
enable = true;
|
||||
hooks.postswitch = {
|
||||
"notify-i3" = "${pkgs.i3}/bin/i3-msg restart";
|
||||
};
|
||||
profiles = {
|
||||
"main" = {
|
||||
fingerprint = {
|
||||
"DP-3" = "00ffffffffffff0026cd5961830600001d1f0104b5361e783b4c70a5574ea4260b5054a56b80710081408180a940b3009500950fd1c0023a801871382d40582c4500202f2100001e000000ff0031313737393132393031363637000000fd0030f0ffff3c010a202020202020000000fc00504c3235393048530a20202020019202033bf1529005040302011112131f203f140607151640e200d52309070783010000e305c301e60605016666006d1a0000020130f00000000000005a8780a070384d4030203500202f2100001ad09480a070381e4008203500202f2100001a23e88078703887401c40980c202f2100001a000000000000000000000000000063";
|
||||
"HDMI-3" = "00ffffffffffff0026cd326162190000291c010380361e782a9055a75553a028135054a56b80710081408180a940b3009500950fd1c0023a801871382d40582c4500202f2100001e000000ff0031313534333834313036343938000000fd00374c1e5312000a202020202020000000fc00504c32353330480a2020202020016202032bf14f90050403020111121314060715161f230907078301000065030c001000681a00000101284be6023a801871382d40582c4500202f2100001f011d8018711c1620582c2500202f2100009e011d007251d01e206e285500202f2100001e2a4480a07038274030203500202f2100001a000000000000000000000000ab";
|
||||
"Left" = "00ffffffffffff0026cd5961830600001d1f0104b5361e783b4c70a5574ea4260b5054a56b80710081408180a940b3009500950fd1c0023a801871382d40582c4500202f2100001e000000ff0031313737393132393031363637000000fd0030f0ffff3c010a202020202020000000fc00504c3235393048530a20202020019202033bf1529005040302011112131f203f140607151640e200d52309070783010000e305c301e60605016666006d1a0000020130f00000000000005a8780a070384d4030203500202f2100001ad09480a070381e4008203500202f2100001a23e88078703887401c40980c202f2100001a000000000000000000000000000063";
|
||||
"Right" = "00ffffffffffff0026cd326162190000291c010380361e782a9055a75553a028135054a56b80710081408180a940b3009500950fd1c0023a801871382d40582c4500202f2100001e000000ff0031313534333834313036343938000000fd00374c1e5312000a202020202020000000fc00504c32353330480a2020202020016202032bf14f90050403020111121314060715161f230907078301000065030c001000681a00000101284be6023a801871382d40582c4500202f2100001f011d8018711c1620582c2500202f2100009e011d007251d01e206e285500202f2100001e2a4480a07038274030203500202f2100001a000000000000000000000000ab";
|
||||
};
|
||||
config = {
|
||||
"DP-3" = {
|
||||
"Left" = {
|
||||
enable = true;
|
||||
mode = "1920x1080";
|
||||
rate = "239.76";
|
||||
position = "0x0";
|
||||
};
|
||||
"HDMI-3" = {
|
||||
"Right" = {
|
||||
enable = true;
|
||||
mode = "1920x1080";
|
||||
rate = "74.97";
|
||||
|
@ -30,4 +26,18 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
# the autorandr service from home-manager sucks, can't customize flags
|
||||
home-manager.users.krizej.services.autorandr.enable = false;
|
||||
home-manager.users.krizej.systemd.user.services.autorandr = {
|
||||
Unit = {
|
||||
Description = "autorandr";
|
||||
After = [ "graphical-session-pre.target" ];
|
||||
PartOf = [ "graphical-session.target" ];
|
||||
};
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${pkgs.autorandr}/bin/autorandr --match-edid -l main";
|
||||
};
|
||||
Install.WantedBy = [ "graphical-session.target" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{ config, pkgs, ... }:
|
||||
args @ { config, pkgs, lib, ... }:
|
||||
let
|
||||
HOME = config.home-manager.users.krizej.home.homeDirectory;
|
||||
monitors = import ../utils/monitors.nix args;
|
||||
in {
|
||||
services.xserver.windowManager.i3.enable = true;
|
||||
home-manager.users.krizej = {
|
||||
|
@ -50,8 +51,8 @@ in {
|
|||
|
||||
defaultWorkspace = "workspace number 1";
|
||||
workspaceOutputAssign = [
|
||||
{ workspace = "1"; output = "DP-3"; }
|
||||
{ workspace = "2"; output = "HDMI-3"; }
|
||||
{ workspace = "1"; output = "DisplayPort-2"; } # monitors.left; }
|
||||
{ workspace = "2"; output = "HDMI-A-0"; } # monitors.right; }
|
||||
];
|
||||
|
||||
focus = {
|
||||
|
@ -68,8 +69,6 @@ in {
|
|||
{ command = "i3-msg \"workspace 2; append_layout ~/.config/i3/workspace2.json\""; notification = false; }
|
||||
{ command = "discord &"; notification = false; }
|
||||
{ command = "element-desktop &"; notification = false; }
|
||||
|
||||
{ command = "xrandr --output DP-3 --mode 1920x1080 --rate 239.76 --primary --output HDMI-3 --mode 1920x1080 --rate 74.97 --right-of DP-3 &"; notification = false; }
|
||||
];
|
||||
|
||||
modes = let
|
||||
|
@ -242,6 +241,7 @@ in {
|
|||
home.file = {
|
||||
".config/i3/workspace2.json".source = ../files/workspace2.json;
|
||||
".config/i3/i3gtk.css".source = ../files/i3gtk.css;
|
||||
"dupa".text = "[${monitors.left}][${monitors.right}]";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
20
utils/monitors.nix
Normal file
20
utils/monitors.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
# fixme: when rebuiling the commands are ran as some nixos builder user probably and autorandr does not use my config
|
||||
{ pkgs, ... }: let
|
||||
autorandr = "${pkgs.autorandr}/bin/autorandr";
|
||||
rg = "${pkgs.ripgrep}/bin/rg";
|
||||
rev = "${pkgs.util-linux}/bin/rev";
|
||||
cut = "${pkgs.coreutils-full}/bin/cut";
|
||||
# epically stolen from https://git.jacekpoz.pl/jacekpoz/nte/src/branch/master/stdlib.nix
|
||||
# but i changed lib.strings.readFile to lib.fileContents
|
||||
inherit (pkgs) lib runCommand;
|
||||
inherit (lib) fileContents;
|
||||
run = script: builtins.toString (runCommand "run" {} ''
|
||||
echo $(${script}) > $out
|
||||
'');
|
||||
in {
|
||||
# this parses "main: renaming display Left to DisplayPort-2"
|
||||
# and i am interested in "DisplayPort-2"
|
||||
# and also it's printed to stderr so 2>&1
|
||||
left = run "${autorandr} --match-edid 2>&1 | ${rg} Left | ${rev} | ${cut} -d' ' -f1 | ${rev}";
|
||||
right = run "${autorandr} --match-edid 2>&1 | ${rg} Right | ${rev} | ${cut} -d' ' -f1 | ${rev}";
|
||||
}
|
Loading…
Reference in a new issue