{ config, pkgs, lib, inputs, ... }: let cfg = config.kyouma.graphical; in { options = { kyouma.graphical = { enable = lib.mkEnableOption "graphical profile"; compositor = lib.mkOption { type = with lib.types; nullOr (enum [ "hyprland" "niri" ]); default = null; }; }; }; imports = [ inputs.stylix.nixosModules.stylix ./files.nix ./hyprland.nix ./waybar-hyprland.nix ./hyprlock.nix ./nixvim.nix ]; config = lib.mkIf cfg.enable { kyouma.machine-type.graphical = true; boot.plymouth.enable = true; security.pam.services.hyprlock = {}; services.dbus.packages = [ pkgs.gcr ]; services.geoclue2.enable = true; services.pipewire = { enable = true; alsa.enable = true; pulse.enable = true; }; services.udisks2.enable = true; environment.variables = { CLUTTER_BACKEND = "wayland"; GDK_BACKEND = "wayland,x11"; MOZ_ENABLE_WAYLAND = "1"; QT_QPA_PLATFORM = "wayland;xcb"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; SDL_VIDEODRIVER = "wayland"; LIBVA_DRIVER_NAME = "radeonsi"; MESA_VK_DEVICE_SELECT = "1002:73df"; WLR_DRM_DEVICES = "$HOME/.config/hypr/external-gpu:$HOME/.config/hypr/internal-gpu"; }; xdg.icons.enable = true; xdg.portal = { enable = true; wlr.enable = true; configPackages = [ (if cfg.compositor == "hyprland" then pkgs.xdg-desktop-portal-hyprland else pkgs.xdg-desktop-portal-wlr ) ]; }; stylix= { image = pkgs.fetchurl { url = "https://kyouma.net/wallpaper.png"; sha256 = "1f46b439a864cd28b8ea93563b4762f1efb2648bae0148fd6b45f3033b10b0e8"; }; polarity = "dark"; #base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-macchiato.yaml"; fonts = { sansSerif = { package = pkgs.noto-fonts; name = "Noto Sans"; }; serif = config.stylix.fonts.sansSerif; monospace = { package = pkgs.jetbrains-mono; name = "JetBrains Mono Regular"; }; sizes.terminal = 11; }; cursor = { package = pkgs.capitaine-cursors; name = "capitaine"; size = 24; }; targets = { console.enable = false; gnome.enable = true; fish.enable = false; }; }; home-manager.users.emily = { stylix.targets = { hyprland.enable = false; sway.enable = false; kitty.enable = false; mako.enable = false; rofi.enable = false; swaylock.enable = false; waybar.enable = false; nixvim.enable = false; fish.enable = false; }; home.keyboard = { layout = "de"; variant = "neo_qwerty"; }; programs.imv.enable = true; programs.wpaperd = { enable = true; settings.default = { path = "/home/emily/Pictures/wallpapers/sylviaritter/"; duration = "60m"; sorting = "random"; }; }; programs.kitty = { enable = true; font.size = 13; font.name = "JetBrains Mono"; settings = { enable_audio_bell = false; scrollback_lines = 65536; remember_window_size = false; initial_window_width = 1200; initial_window_height = 800; bold_font = "auto"; italic_font = "auto"; bold_italic_font = "auto"; background = "#090312"; background_opacity = "0.7"; }; keybindings = { "shift+right" = "next_tab"; "ctrl+l" = "next_tab"; "shift+left" = "previous_tab"; "ctrl+h" = "previous_tab"; }; }; programs.rofi = { enable = true; package = pkgs.rofi-wayland; }; programs.zoxide = { enable = true; options = [ "--cmd cd" ]; }; programs.fzf.enable = true; qt = { enable = true; platformTheme.name = "qtct"; style.name = "kvantum-dark"; style.package = with pkgs; [ libsForQt5.qtstyleplugin-kvantum qt6Packages.qtstyleplugin-kvantum (catppuccin-kvantum.override { accent = "mauve"; variant = "macchiato"; }) ]; }; gtk.iconTheme.name = "Adwaita"; gtk.iconTheme.package = pkgs.gnome.adwaita-icon-theme; services.gammastep = { enable = true; provider = "geoclue2"; temperature.day = 6500; temperature.night = 3700; settings.general.adjustment-method = "wayland"; }; services.mako = { enable = true; anchor = "top-right"; backgroundColor = "#24273a"; borderColor = "#c6a0f6"; borderRadius = 15; borderSize = 2; defaultTimeout = 5000; layer = "overlay"; maxIconSize = 48; padding = "15"; progressColor = "over #B4A1DB"; sort = "-time"; textColor = "#cad3f5"; extraConfig = '' max-history=100 on-button-left=dismiss on-button-right=dismiss-all on-notify=exec ${pkgs.mpv}/bin/mpv /usr/share/sounds/freedesktop/stereo/message.oga [urgency=low] border-color=#B4A1DB default-timeout=2000 [urgency=normal] border-color=#B4A1DB default-timeout=5000 [urgency=high] border-color=#D04E9D text-color=#D04E9D default-timeout=0 [category=mpd] border-color=#E49186 default-timeout=2000 group-by=category ''; }; services.gpg-agent = { enable = true; enableSshSupport = true; pinentryPackage = pkgs.pinentry-gnome3; }; services.syncthing = { enable = true; tray.enable = true; tray.command = "syncthingtray --replace"; }; services.udiskie = { enable = true; automount = false; }; systemd.user.services.syncthingtray.Service = { ExecStartPre = "${pkgs.coreutils-full}/bin/sleep 2"; Restart = "on-failure"; RestartSec = "1s"; }; }; }; }