mirror of
https://github.com/donovanglover/nix-config.git
synced 2025-01-25 07:08:38 +01:00
dae5ca4b03
This is the start of making it possible to include desktop-related configuration options instead of only hyprland-related ones. This simplifies things a bit since opinionated configurations can be hidden behind an option and end users won't have to worry about all the different possible modules they could import.
93 lines
1.7 KiB
Nix
93 lines
1.7 KiB
Nix
{ pkgs, config, lib, ... }:
|
|
|
|
let
|
|
inherit (lib) mkEnableOption mkIf;
|
|
|
|
cfg = config.modules.desktop;
|
|
in
|
|
{
|
|
options.modules.desktop = {
|
|
};
|
|
|
|
config = {
|
|
programs.hyprland.enable = true;
|
|
|
|
i18n.inputMethod = {
|
|
enabled = "fcitx5";
|
|
|
|
fcitx5 = {
|
|
addons = with pkgs; [ fcitx5-mozc ];
|
|
waylandFrontend = true;
|
|
};
|
|
};
|
|
|
|
services.udisks2 = {
|
|
enable = true;
|
|
mountOnMedia = true;
|
|
};
|
|
|
|
services.xserver = {
|
|
enable = true;
|
|
excludePackages = [ pkgs.xterm ];
|
|
};
|
|
|
|
services.pipewire = {
|
|
enable = true;
|
|
|
|
alsa = {
|
|
enable = true;
|
|
support32Bit = true;
|
|
};
|
|
|
|
pulse.enable = true;
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
pulseaudio
|
|
];
|
|
|
|
services.greetd = {
|
|
enable = true;
|
|
restart = false;
|
|
|
|
settings = {
|
|
default_session = {
|
|
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland";
|
|
user = "greeter";
|
|
};
|
|
|
|
initial_session = {
|
|
command = "${pkgs.hyprland}/bin/Hyprland";
|
|
user = "user";
|
|
};
|
|
};
|
|
};
|
|
|
|
fonts = {
|
|
enableDefaultPackages = false;
|
|
|
|
packages = with pkgs; [
|
|
noto-fonts
|
|
noto-fonts-cjk-sans
|
|
noto-fonts-cjk-serif
|
|
noto-fonts-emoji
|
|
maple-mono
|
|
font-awesome
|
|
nerdfonts
|
|
kanji-stroke-order-font
|
|
liberation_ttf
|
|
];
|
|
|
|
fontconfig = {
|
|
defaultFonts = {
|
|
serif = [ "Noto Serif CJK JP" "Noto Serif" ];
|
|
sansSerif = [ "Noto Sans CJK JP" "Noto Sans" ];
|
|
monospace = [ "Noto Sans Mono CJK JP" "Noto Sans Mono" ];
|
|
};
|
|
|
|
allowBitmaps = false;
|
|
};
|
|
};
|
|
};
|
|
}
|