Benjamin Bädorf
4c0991c7e1
Hibernation is now a core option: ``` pub-solar.core.hibernation.enable = true; ``` And there's a paranoia mode, that keeps the disk encrypted as much as possible by enabling hibernation and removing the options for sleep, screen locking. Idle locking now hibernates, and it does it on very short notice.
107 lines
3.3 KiB
Nix
107 lines
3.3 KiB
Nix
{ lib, config, pkgs, ... }:
|
|
with lib;
|
|
let
|
|
psCfg = config.pub-solar;
|
|
in
|
|
{
|
|
options.pub-solar.sway = {
|
|
enable = mkEnableOption "Life in boxes";
|
|
|
|
terminal = mkOption {
|
|
type = types.nullOr types.str;
|
|
default = "alacritty";
|
|
description = "Choose sway's default terminal";
|
|
};
|
|
|
|
v4l2loopback.enable = mkOption {
|
|
type = types.bool;
|
|
default = true;
|
|
description = "WebCam streaming tool";
|
|
};
|
|
};
|
|
|
|
config = mkIf psCfg.sway.enable (mkMerge [
|
|
(mkIf (psCfg.sway.v4l2loopback.enable) {
|
|
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
|
boot.kernelModules = [ "v4l2loopback" ];
|
|
boot.extraModprobeConfig = ''
|
|
options v4l2loopback exclusive_caps=1 devices=3
|
|
'';
|
|
})
|
|
|
|
({
|
|
environment.systemPackages = with pkgs; [
|
|
linuxPackages.v4l2loopback
|
|
];
|
|
|
|
programs.sway.enable = true;
|
|
|
|
xdg.portal = {
|
|
enable = true;
|
|
wlr = {
|
|
enable = true;
|
|
settings = {
|
|
screencast = {
|
|
max_fps = 30;
|
|
chooser_type = "simple";
|
|
chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or";
|
|
};
|
|
};
|
|
};
|
|
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
|
|
gtkUsePortal = true;
|
|
};
|
|
|
|
services.pipewire.enable = true;
|
|
|
|
home-manager = with pkgs; pkgs.lib.setAttrByPath [ "users" psCfg.user.name ] {
|
|
home.packages = with pkgs; [
|
|
sway
|
|
grim
|
|
kanshi
|
|
mako
|
|
slurp
|
|
swayidle
|
|
swaylock
|
|
swaybg
|
|
xwayland
|
|
|
|
libappindicator-gtk3
|
|
|
|
wl-clipboard
|
|
wf-recorder
|
|
brightnessctl
|
|
gammastep
|
|
geoclue2
|
|
xsettingsd
|
|
ydotool
|
|
|
|
sway-launcher
|
|
import-gtk-settings
|
|
s
|
|
wcwd
|
|
];
|
|
|
|
programs.waybar.enable = true;
|
|
#programs.waybar.systemd.enable = true;
|
|
|
|
systemd.user.services.mako = import ./mako.service.nix { inherit pkgs psCfg; };
|
|
systemd.user.services.sway = import ./sway.service.nix { inherit pkgs psCfg; };
|
|
systemd.user.services.swayidle = import ./swayidle.service.nix { inherit pkgs psCfg; };
|
|
systemd.user.services.xsettingsd = import ./xsettingsd.service.nix { inherit pkgs psCfg; };
|
|
systemd.user.services.waybar = import ./waybar.service.nix { inherit pkgs psCfg; };
|
|
systemd.user.targets.sway-session = import ./sway-session.target.nix { inherit pkgs psCfg; };
|
|
|
|
xdg.configFile."sway/config".text = import ./config/config.nix { inherit config pkgs; };
|
|
xdg.configFile."sway/config.d/colorscheme.conf".source = ./config/config.d/colorscheme.conf;
|
|
xdg.configFile."sway/config.d/theme.conf".source = ./config/config.d/theme.conf;
|
|
xdg.configFile."sway/config.d/gaps.conf".source = ./config/config.d/gaps.conf;
|
|
xdg.configFile."sway/config.d/custom-keybindings.conf".source = ./config/config.d/custom-keybindings.conf;
|
|
xdg.configFile."sway/config.d/mode_system.conf".text = import ./config/config.d/mode_system.config.nix { inherit psCfg; };
|
|
xdg.configFile."sway/config.d/applications.conf".source = ./config/config.d/applications.conf;
|
|
xdg.configFile."sway/config.d/systemd.conf".source = ./config/config.d/systemd.conf;
|
|
};
|
|
})
|
|
]);
|
|
}
|