{ config, lib, ... }: with lib; { imports = [ ../common ./home.nix ../features/cli ../features/coding ../features/desktop ]; config = mkMerge [ { xdg = { # TODO: better structure enable = true; configFile."mimeapps.list".force = true; mimeApps = { enable = true; associations.added = { "application/zip" = ["org.gnome.FileRoller.desktop"]; "application/csv" = ["calc.desktop"]; "application/pdf" = ["vivaldi-stable.desktop"]; "x-scheme-handler/http" = ["vivaldi-stable.desktop"]; "x-scheme-handler/https" = ["vivaldi-stable.desktop"]; }; defaultApplications = { "application/zip" = ["org.gnome.FileRoller.desktop"]; "application/csv" = ["calc.desktop"]; "application/pdf" = ["vivaldi-stable.desktop"]; "application/md" = ["dev.zed.Zed.desktop"]; "application/text" = ["dev.zed.Zed.desktop"]; "x-scheme-handler/http" = ["vivaldi-stable.desktop"]; "x-scheme-handler/https" = ["vivaldi-stable.desktop"]; }; }; }; features = { cli = { fish.enable = true; nushell.enable = true; fzf.enable = true; nitch.enable = true; secrets.enable = true; starship.enable = true; }; desktop = { coding.enable = true; crypto.enable = true; gaming.enable = true; hyprland.enable = true; media.enable = true; obsidian.enable = true; office.enable = true; rofi.enable = true; fonts.enable = true; wayland.enable = true; wallpapers = true; }; }; } (mkIf config.features.desktop.hyprland.enable { wayland.windowManager.hyprland = { enable = true; settings = { exec-once = ["tuxedo-backlight"]; monitor = [ "eDP-1,preferred,0x0,1.25" "HDMI-A-1,1920x1080@120,2560x0,1" ]; workspace = [ "1, monitor:eDP-1, default:true" "2, monitor:eDP-1" "3, monitor:eDP-1" "4, monitor:HDMI-A-1," "5, monitor:HDMI-A-1,border:false,rounding:false" "6, monitor:HDMI-A-1" ]; windowrule = [ "match:class dev.zed.Zed, workspace 1" "match:class Msty, workspace 1" "match:class ^(com.obsproject.Studio)$, workspace 2" "match:class ^(brave-browser)$, workspace 4, opacity 1.0" "match:class ^(vivaldi-stable)$, workspace 4, opacity 1.0" "match:class ^steam_app_\\d+$, fullscreen on" "match:class ^steam_app_\\d+$, workspace 5" "match:class ^steam_app_\\d+$, idle_inhibit focus" ]; }; }; }) ]; }