abstract screenshare selection
This commit is contained in:
parent
36252de722
commit
d29fabb044
7 changed files with 63 additions and 20 deletions
|
@ -12,6 +12,15 @@ in
|
|||
xdg-desktop-portal-kde
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
|
||||
wlr.settings = lib.mapAttrs'
|
||||
(name: value: lib.nameValuePair ("screencast_" + name) {
|
||||
output_name = value.id;
|
||||
max_fps = value.fps;
|
||||
chooser_type = "simple";
|
||||
chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or";
|
||||
})
|
||||
cfg.screens;
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
|
|
|
@ -37,6 +37,12 @@ in
|
|||
text = lib.strings.concatLines (
|
||||
(build_conf cfg.sway.config)
|
||||
++ lib.optional cfg.sway.bar.enable bar_config
|
||||
++ (lib.mapAttrsToList
|
||||
(name: value:
|
||||
"output ${value.id} mode ${value.mode}@${toString value.fps}Hz"
|
||||
+ (lib.optionalString (value.pos != null) " position ${value.pos}")
|
||||
)
|
||||
cfg.screens)
|
||||
);
|
||||
|
||||
sway_conf = pkgs.writeText "sway.conf" text;
|
||||
|
|
|
@ -17,6 +17,34 @@ let
|
|||
};
|
||||
});
|
||||
|
||||
screen = types.submodule {
|
||||
options = {
|
||||
fps = mkOption {
|
||||
type = types.int;
|
||||
default = 60;
|
||||
description = "max framerate of screen";
|
||||
};
|
||||
|
||||
mode = mkOption {
|
||||
type = types.nonEmptyStr;
|
||||
default = "1920x1080";
|
||||
description = "pixel format of the screen";
|
||||
};
|
||||
|
||||
id = mkOption {
|
||||
type = types.nonEmptyStr;
|
||||
description = "ID of the screen";
|
||||
};
|
||||
|
||||
pos = mkOption {
|
||||
type = types.nullOr types.nonEmptyStr;
|
||||
default = null;
|
||||
example = "0,0";
|
||||
description = "position where to place the screen";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sway_conf = types.submodule ({ config, ... }: rec {
|
||||
options = {
|
||||
keybinds = mkOption {
|
||||
|
@ -135,6 +163,12 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
screens = mkOption {
|
||||
type = types.attrsOf screen;
|
||||
default = { };
|
||||
description = "Screens to initialize";
|
||||
};
|
||||
|
||||
sway = {
|
||||
enable = mkEnableOption "grimm-sway";
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
./screenshare-select.nix
|
||||
];
|
||||
|
||||
age.identityPaths = [ "/home/grimmauld/.ssh/id_rsa" ];
|
||||
|
|
|
@ -32,6 +32,18 @@
|
|||
size = 48 * 1024;
|
||||
}];
|
||||
|
||||
grimmShared.screens = {
|
||||
external = {
|
||||
id = "HDMI-A-1";
|
||||
pos = "0,0";
|
||||
};
|
||||
|
||||
internal = {
|
||||
id = "eDP-1";
|
||||
fps = 144;
|
||||
};
|
||||
};
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
xdg.portal.wlr.settings = {
|
||||
screencastExternal = {
|
||||
output_name = "HDMI-A-1";
|
||||
max_fps = 60;
|
||||
chooser_type = "simple";
|
||||
chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or";
|
||||
};
|
||||
screencastInternal = {
|
||||
output_name = "eDP-1";
|
||||
max_fps = 144;
|
||||
chooser_type = "simple";
|
||||
chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -148,8 +148,7 @@
|
|||
];
|
||||
extraConfig = ''
|
||||
output * bg ${./wallpapers/switzerland.jpg} fill
|
||||
output HDMI-A-1 mode 1920x1080@60Hz position 0,0
|
||||
for_window [app_id="lxqt-policykit-agent"] floating enable;
|
||||
|
||||
floating_modifier $mod normal
|
||||
|
||||
input type:keyboard xkb_numlock enabled
|
||||
|
@ -172,6 +171,7 @@
|
|||
|
||||
for_window [app_id="swaymux"] floating enable
|
||||
for_window [app_id="rmenu"] floating enable
|
||||
for_window [app_id="lxqt-policykit-agent"] floating enable;
|
||||
'';
|
||||
|
||||
modes.resize.keybinds = {
|
||||
|
|
Loading…
Reference in a new issue