mirror of
https://github.com/donovanglover/nix-config.git
synced 2024-11-25 01:33:17 +01:00
148 lines
2.7 KiB
Nix
148 lines
2.7 KiB
Nix
{
|
|
nix-config,
|
|
pkgs,
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
|
|
let
|
|
inherit (config.modules.system) username;
|
|
inherit (config.boot) isContainer;
|
|
|
|
inherit (lib)
|
|
mkEnableOption
|
|
mkIf
|
|
mkMerge
|
|
;
|
|
|
|
inherit (cfg) bloat;
|
|
|
|
isPhone = config.programs.calls.enable;
|
|
|
|
cfg = config.modules.desktop;
|
|
in
|
|
{
|
|
options.modules.desktop = {
|
|
bloat = mkEnableOption "GUI applications";
|
|
};
|
|
|
|
config = {
|
|
hardware.graphics.enable32Bit = mkIf (!isPhone) true;
|
|
|
|
programs = {
|
|
hyprland.enable = mkIf (!isContainer && !isPhone) true;
|
|
cdemu.enable = mkIf (!isPhone) true;
|
|
|
|
thunar = {
|
|
enable = mkIf (!isPhone) true;
|
|
|
|
plugins = with pkgs.xfce; [
|
|
thunar-volman
|
|
];
|
|
};
|
|
};
|
|
|
|
i18n.inputMethod = mkIf (!isPhone) {
|
|
enable = true;
|
|
type = "fcitx5";
|
|
|
|
fcitx5 = {
|
|
waylandFrontend = true;
|
|
|
|
addons = with nix-config.packages.${pkgs.system}; [
|
|
fcitx5-mozc
|
|
];
|
|
};
|
|
};
|
|
|
|
services = {
|
|
udisks2 = mkIf (!isPhone) {
|
|
enable = true;
|
|
mountOnMedia = true;
|
|
};
|
|
|
|
libinput = {
|
|
touchpad = {
|
|
naturalScrolling = true;
|
|
accelProfile = "flat";
|
|
accelSpeed = "0.75";
|
|
};
|
|
|
|
mouse = {
|
|
accelProfile = "flat";
|
|
};
|
|
};
|
|
|
|
xserver = mkIf (!isContainer) {
|
|
enable = true;
|
|
excludePackages = with pkgs; [ xterm ];
|
|
|
|
displayManager.startx.enable = true;
|
|
};
|
|
|
|
pipewire = mkIf (!isPhone) {
|
|
enable = true;
|
|
|
|
alsa = {
|
|
enable = true;
|
|
support32Bit = true;
|
|
};
|
|
|
|
pulse.enable = true;
|
|
};
|
|
|
|
greetd = mkIf (!isContainer && !isPhone) {
|
|
enable = true;
|
|
restart = false;
|
|
|
|
settings = {
|
|
default_session = {
|
|
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland --time-format '%F %R'";
|
|
user = "greeter";
|
|
};
|
|
|
|
initial_session = {
|
|
command = "${pkgs.hyprland}/bin/Hyprland";
|
|
user = username;
|
|
};
|
|
};
|
|
};
|
|
|
|
tumbler.enable = true;
|
|
gvfs.enable = true;
|
|
gnome.gnome-keyring.enable = true;
|
|
upower.enable = true;
|
|
};
|
|
|
|
environment.systemPackages = mkMerge [
|
|
(mkIf bloat (
|
|
with pkgs;
|
|
[
|
|
mullvad-browser
|
|
spek
|
|
audacity
|
|
gimp
|
|
libreoffice
|
|
element-desktop
|
|
signal-desktop
|
|
qbittorrent
|
|
popsicle
|
|
satty
|
|
srb2
|
|
ringracers
|
|
jamesdsp
|
|
texliveFull
|
|
]
|
|
))
|
|
|
|
(with pkgs; [
|
|
anki
|
|
pulseaudio
|
|
grim
|
|
wl-clipboard-rs
|
|
])
|
|
];
|
|
};
|
|
}
|