1. { config, pkgs, ... }:
  2. let
  3. unstable = import <nixos-unstable> { config.allowUnfree = true; };
  4. packages = {
  5. internet = [
  6. pkgs.axel
  7. pkgs.firefox
  8. pkgs.openvpn
  9. pkgs.transmission
  10. pkgs.wget
  11. pkgs.wireguard
  12. ];
  13.  
  14. media = [
  15. pkgs.moc
  16. pkgs.vlc
  17. ];
  18.  
  19. administration = [
  20. pkgs.bpytop
  21. pkgs.gparted
  22. pkgs.htop
  23. ];
  24.  
  25. editors = [
  26. pkgs.gnome3.gedit
  27. pkgs.leafpad
  28. ];
  29.  
  30. terminals = [
  31. pkgs.alacritty
  32. pkgs.xfce.xfce4-terminal
  33. pkgs.xterm
  34. ];
  35.  
  36. development = [
  37. pkgs.vscode
  38. pkgs.python39Full
  39. unstable.python310
  40. pkgs.elixir
  41. unstable.elixir
  42. pkgs.rustc
  43. pkgs.git
  44. pkgs.nixfmt
  45. ];
  46.  
  47. documents = [
  48. pkgs.libreoffice
  49. pkgs.zotero
  50. ];
  51.  
  52. wm = [
  53. pkgs.sway
  54. pkgs.swaybg
  55. pkgs.swayidle
  56. pkgs.swaylock
  57. pkgs.ulauncher
  58. ];
  59.  
  60. system = [
  61. pkgs.brightnessctl
  62. pkgs.lm_sensors
  63. pkgs.pulseaudio-ctl
  64. ];
  65.  
  66. cli_tools = [
  67. pkgs.bc
  68. pkgs.dtrx
  69. pkgs.exa
  70. pkgs.fzf
  71. pkgs.gron
  72. pkgs.jq
  73. pkgs.ranger
  74. pkgs.rename
  75. ];
  76.  
  77. utilities = [
  78. pkgs.galculator
  79. pkgs.spaceFM
  80. pkgs.xfce.thunar
  81. ];
  82. };
  83. in
  84. environment.systemPackages = builtins.concatLists [
  85. packages.administration
  86. packages.cli_tools
  87. packages.development
  88. packages.documents
  89. packages.editors
  90. packages.internet
  91. packages.media
  92. packages.system
  93. packages.terminal
  94. packages.utilities
  95. packages.wm
  96. ];
  97. }