2022-08-05 22:47:53 +00:00
|
|
|
{ lib, config, pkgs, ... }:
|
2022-06-07 00:39:40 +00:00
|
|
|
|
|
|
|
with lib;
|
|
|
|
let
|
2022-08-01 07:23:49 +00:00
|
|
|
cfg = config.sane.gui.phosh;
|
2022-06-07 00:39:40 +00:00
|
|
|
in
|
|
|
|
{
|
|
|
|
options = {
|
2022-08-01 07:23:49 +00:00
|
|
|
sane.gui.phosh.enable = mkOption {
|
2022-06-07 00:39:40 +00:00
|
|
|
default = false;
|
|
|
|
type = types.bool;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
config = mkIf cfg.enable {
|
2022-08-01 07:23:49 +00:00
|
|
|
sane.gui.enable = true;
|
2022-08-02 23:00:37 +00:00
|
|
|
|
|
|
|
users.users.avahi.uid = config.sane.allocations.avahi-uid;
|
|
|
|
users.users.colord.uid = config.sane.allocations.colord-uid;
|
|
|
|
users.users.geoclue.uid = config.sane.allocations.geoclue-uid;
|
|
|
|
users.users.rtkit.uid = config.sane.allocations.rtkit-uid;
|
|
|
|
users.groups.avahi.gid = config.sane.allocations.avahi-gid;
|
|
|
|
users.groups.colord.gid = config.sane.allocations.colord-gid;
|
|
|
|
users.groups.geoclue.gid = config.sane.allocations.geoclue-gid;
|
|
|
|
users.groups.rtkit.gid = config.sane.allocations.rtkit-gid;
|
|
|
|
|
2022-06-07 00:39:40 +00:00
|
|
|
# docs: https://github.com/NixOS/nixpkgs/blob/nixos-22.05/nixos/modules/services/x11/desktop-managers/phosh.nix
|
|
|
|
services.xserver.desktopManager.phosh = {
|
|
|
|
enable = true;
|
|
|
|
user = "colin";
|
|
|
|
group = "users";
|
|
|
|
phocConfig = {
|
2022-06-07 01:10:19 +00:00
|
|
|
# xwayland = "true";
|
2022-06-07 00:39:40 +00:00
|
|
|
# find default outputs by catting /etc/phosh/phoc.ini
|
|
|
|
outputs.DSI-1 = {
|
|
|
|
scale = 1.5;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2022-08-03 23:23:36 +00:00
|
|
|
# XXX: phosh enables networkmanager by default; can probably disable these lines
|
|
|
|
networking.useDHCP = false;
|
|
|
|
networking.networkmanager.enable = true;
|
|
|
|
networking.wireless.enable = lib.mkForce false;
|
|
|
|
|
2022-08-05 22:47:53 +00:00
|
|
|
# XXX: not clear if these are actually needed?
|
|
|
|
hardware.bluetooth.enable = true;
|
|
|
|
services.blueman.enable = true;
|
|
|
|
|
2022-06-07 01:10:19 +00:00
|
|
|
hardware.opengl.enable = true;
|
|
|
|
hardware.opengl.driSupport = true;
|
|
|
|
|
2022-06-07 00:39:40 +00:00
|
|
|
environment.variables = {
|
|
|
|
# Qt apps won't always start unless this env var is set
|
|
|
|
QT_QPA_PLATFORM = "wayland";
|
2022-06-07 01:10:19 +00:00
|
|
|
# electron apps (e.g. Element) should use the wayland backend
|
|
|
|
# toggle this to have electron apps (e.g. Element) use the wayland backend.
|
|
|
|
# phocConfig.xwayland should be disabled if you do this
|
|
|
|
NIXOS_OZONE_WL = "1";
|
2022-06-07 00:39:40 +00:00
|
|
|
};
|
2022-08-05 22:47:53 +00:00
|
|
|
|
|
|
|
sane.home-manager.extraPackages = with pkgs; [
|
|
|
|
# TODO: see about removing this if the in-built gnome-settings bluetooth manager can work
|
|
|
|
gnome.gnome-bluetooth
|
|
|
|
];
|
2022-06-07 00:39:40 +00:00
|
|
|
};
|
|
|
|
}
|