default.nix 2.9 KB

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