116 lines
3.0 KiB
Nix
116 lines
3.0 KiB
Nix
{ config, lib, pkgs, inputs, ... }:
|
||
|
||
with lib;
|
||
let
|
||
cfg = config.samfelag.modules.desktop.grapheio;
|
||
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
|
||
in
|
||
{
|
||
options.samfelag.modules.desktop.grapheio = {
|
||
enable = mkEnableOption "Γραφείο desktop environment - hyprland based";
|
||
};
|
||
|
||
config = mkIf cfg.enable {
|
||
|
||
# - Packages ---------------------------------
|
||
|
||
environment.systemPackages = with pkgs; [
|
||
# - Tools ----------------------------------
|
||
jq
|
||
# - Appearance -----------------------------
|
||
rose-pine-gtk-theme
|
||
rose-pine-icon-theme
|
||
# - Cursor
|
||
inputs.hyprcursor-rose-pine.packages.${pkgs.system}.default
|
||
rose-pine-cursor
|
||
];
|
||
|
||
# - Data files -------------------------------
|
||
hm.xdg.configFile."grapheio".source = ../../config/grapheio;
|
||
|
||
# - Cursor -----------------------------------
|
||
hm.home.pointerCursor = {
|
||
gtk.enable = true;
|
||
package = pkgs.rose-pine-cursor;
|
||
name = "BreezeX Cursor";
|
||
size = 24;
|
||
};
|
||
|
||
hm.gtk = {
|
||
enable = true;
|
||
theme = {
|
||
package = pkgs.rose-pine-gtk-theme;
|
||
name = "rose-pine-gtk-theme";
|
||
};
|
||
iconTheme = {
|
||
package = pkgs.rose-pine-icon-theme;
|
||
name = "rose-pine-icons";
|
||
};
|
||
cursorTheme = {
|
||
package = pkgs.rose-pine-cursor;
|
||
name = "BreezeX-RoséPine";
|
||
size = 24;
|
||
};
|
||
};
|
||
|
||
# - Hyprland keybindings ---------------------
|
||
hm.wayland.windowManager.hyprland.settings = lib.mkIf hyprCfg.enable {
|
||
bind = [
|
||
# Pulse Audio controls (mute)
|
||
", XF86AudioMute, exec, $HOME/.config/grapheio/scripts/volume.sh mute"
|
||
|
||
# Media player controls
|
||
", XF86AudioPlay, exec, playerctl play-pause"
|
||
", XF86AudioPause, exec, playerctl play-pause"
|
||
", XF86AudioNext, exec, playerctl next"
|
||
", XF86AudioPrev, exec, playerctl previous"
|
||
", XF86AudioStop, exec, playerctl stop"
|
||
];
|
||
|
||
binde = [
|
||
# Pulse Audio controls (volume)
|
||
", XF86AudioRaiseVolume, exec, $HOME/.config/grapheio/scripts/volume.sh set +5%"
|
||
", XF86AudioLowerVolume, exec, $HOME/.config/grapheio/scripts/volume.sh set -5%"
|
||
];
|
||
};
|
||
|
||
# - Modules ----------------------------------
|
||
|
||
samfelag.modules = {
|
||
|
||
system.audio.enable = true;
|
||
system.brightness.enable = true;
|
||
system.kanata.enable = true;
|
||
|
||
desktop = {
|
||
# Window Manager
|
||
wm.hyprland.enable = true;
|
||
|
||
tools = {
|
||
# Greeter (login screen)
|
||
greetd = {
|
||
enable = true;
|
||
wm_cmd = "Hyprland";
|
||
};
|
||
# Locker
|
||
hyprlock.enable = true;
|
||
# Status bars
|
||
eww.enable = true;
|
||
# Wallpapper
|
||
hyprpaper.enable = true;
|
||
# Launcher
|
||
rofi.enable = true;
|
||
# Notification center
|
||
swaync.enable = true;
|
||
};
|
||
};
|
||
|
||
app = {
|
||
alacritty.enable = true;
|
||
firefox.enable = true;
|
||
};
|
||
|
||
};
|
||
};
|
||
}
|