Files
samfelag/modules/desktop/env/grapheio.nix
2024-12-03 20:03:23 +01:00

92 lines
1.9 KiB
Nix

{ config, lib, pkgs, inputs, ... }:
with lib;
let
cfg = config.samfelag.modules.desktop.env.grapheio;
in
{
options.samfelag.modules.desktop.env.grapheio = {
enable = mkEnableOption "Grapheio desktop environment - hyprland based";
};
config = mkIf cfg.enable {
# - Packages ---------------------------------
environment.systemPackages = with pkgs; [
# - System ---------------------------------
# - Audio
alsa-utils
playerctl
brightnessctl
# - Appearance -----------------------------
# - Cursor
inputs.hyprcursor-rose-pine.packages.${pkgs.system}.default
# - Wallpaper
hyprpaper
];
# - Audio ------------------------------------
services = {
pipewire = {
enable = true;
};
};
# - Hyprpaper --------------------------------
hm.xdg.configFile."hypr/hyprpaper.conf".text = ''
preload = ${config.samfelag.modules.desktop.wallpaper}
wallpaper = ,${config.samfelag.modules.desktop.wallpaper}
'';
# - Cursor -----------------------------------
hm.home.pointerCursor = {
gtk.enable = true;
package = pkgs.rose-pine-cursor;
name = "BreezeX Cursor";
size = 24;
};
hm.gtk = {
enable = true;
cursorTheme = {
package = pkgs.rose-pine-cursor;
name = "BreezeX Cursor";
};
};
# - Modules ----------------------------------
samfelag.modules = {
desktop = {
# Window Manager
wm.hyprland.enable = true;
# Greeter (login screen)
greeter.greetd = {
enable = true;
wm_cmd = "Hyprland";
};
tools = {
# Status bars
eww.enable = true;
# Launcher
rofi.enable = true;
};
};
system.kanata.enable = true;
app = {
alacritty.enable = true;
firefox.enable = true;
};
};
};
}