default.nix 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. { config, pkgs, lib, inputs, ... }:
  2. {
  3. config = {
  4. home.file.".config/hypr/hyprland.lua".source = ./hypr/hyprland.lua;
  5. home.file.".config/hypr/modules/autostart.lua".source = ./hypr/modules/autostart.lua;
  6. home.file.".config/hypr/modules/environment.lua".source = ./hypr/modules/environment.lua;
  7. home.file.".config/hypr/modules/look_and_feel.lua".source = ./hypr/modules/look_and_feel.lua;
  8. home.file.".config/hypr/modules/misc.lua".source = ./hypr/modules/misc.lua;
  9. home.file.".config/hypr/modules/input.lua".source = ./hypr/modules/input.lua;
  10. home.file.".config/hypr/modules/keybindings.lua".source = ./hypr/modules/keybindings.lua;
  11. home.file.".config/hypr/modules/windows_and_workspaces.lua".source = ./hypr/modules/windows_and_workspaces.lua;
  12. home.file.".config/hypr/modules/monitors.lua".text = config.custom.hyprExtras.monitors;
  13. home.file.".config/hypr/modules/shell.lua".text = config.custom.hyprExtras.shell;
  14. xdg = {
  15. userDirs = {
  16. enable = true;
  17. createDirectories = true;
  18. documents = "$HOME/Documents";
  19. download = "$HOME/Downloads";
  20. desktop = "$HOME/Desktop";
  21. music = "$HOME/Music";
  22. pictures = "$HOME/Pictures";
  23. videos = "$HOME/Videos";
  24. projects = "$HOME/Projects";
  25. };
  26. mimeApps = {
  27. enable = true;
  28. defaultApplications = {
  29. "inode/directory" = [ "org.kde.dolphin.desktop" ];
  30. "x-scheme-handler/http" = "firefox.desktop";
  31. "x-scheme-handler/https" = "firefox.desktop";
  32. "text/plain" = "code.desktop";
  33. "text/csv" = "code.desktop";
  34. "application/pdf" = "firefox.desktop";
  35. "image/jpeg" = "org.nomacs.ImageLounge.desktop";
  36. "image/png" = "org.nomacs.ImageLounge.desktop";
  37. "image/gif" = "org.nomacs.ImageLounge.desktop";
  38. "image/webp" = "org.nomacs.ImageLounge.desktop";
  39. "image/bmp" = "org.nomacs.ImageLounge.desktop";
  40. "image/tiff" = "org.nomacs.ImageLounge.desktop";
  41. "image/svg+xml" = "org.nomacs.ImageLounge.desktop";
  42. "image/x-icon" = "org.nomacs.ImageLounge.desktop";
  43. "audio/mpeg" = "vlc.desktop";
  44. "video/mp4" = "vlc.desktop";
  45. "video/quicktime" = "vlc.desktop";
  46. "video/vnd.avi" = "vlc.desktop";
  47. "application/x-compressed-tar" = "org.kde.ark.desktop";
  48. "x-scheme-handler/unknown" = "dms-open.desktop";
  49. };
  50. };
  51. };
  52. };
  53. options.custom.hyprExtras = {
  54. monitors = lib.mkOption {
  55. type = lib.types.lines;
  56. default = ''
  57. hl.monitor({ output = "", mode = "preferred", position = "auto", scale = 1 })
  58. '';
  59. description = "Host-specific monitor configuration for Hyprland";
  60. };
  61. shell = lib.mkOption {
  62. type = lib.types.lines;
  63. default = '''';
  64. };
  65. };
  66. }