Advertisement
PROPESSOR

Error Free Home.Nix

Jun 6th, 2025
15
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.93 KB | None | 0 0
  1. { config, pkgs, lib, ... }:
  2.  
  3. {
  4. home.username = "veagle";
  5. home.homeDirectory = "/home/veagle";
  6.  
  7. programs.home-manager.enable = true;
  8.  
  9. home.packages = with pkgs; [
  10. htop
  11. neofetch
  12. hyprland
  13. hyprlock
  14. hyprpaper
  15. pavucontrol # for audio controls
  16. waybar
  17. wlogout
  18. gtk3
  19. fuzzel
  20. kitty
  21. wl-clipboard
  22. cliphist
  23. grim
  24. slurp
  25. hyprshot
  26. blueman
  27. xdg-desktop-portal-gtk
  28. kdePackages.okular # Feature-rich
  29. # Or try: evince or zathura
  30. # 🛠 Optional helpful tools
  31. unzip
  32. wget
  33. git
  34. # Messaging Apps
  35. signal-desktop
  36. #whatsapp-for-linux
  37. #telegram-desktop
  38. brave
  39. # Youtube
  40. yt-dlp # for downloading videos
  41. mpv # to stream YouTube via CLI
  42. #freetube # GUI YouTube client (privacy-respecting)
  43. # VPN
  44. protonvpn-gui # ProtonVPN GUI client (needs setup and login)
  45. openvpn # Required for many VPNs
  46. #(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
  47. # File Manager
  48. xdg-desktop-portal # required for opening files with apps
  49. gvfs # Needed for mounting drives and trash support
  50. kdePackages.dolphin
  51. kdePackages.kio-extras
  52. kdePackages.baloo
  53. kdePackages.kdegraphics-thumbnailers
  54. kdePackages.ffmpegthumbs
  55. kdePackages.breeze
  56. kdePackages.breeze-icons
  57. kdePackages.oxygen
  58. kdePackages.polkit-kde-agent-1
  59. swaynotificationcenter
  60. # Add more user-level packages here
  61. ];
  62.  
  63. # Enable some basic programs
  64. programs.zsh.enable = true;
  65. programs.git.enable = true;
  66. programs.bash = {
  67. enable = true;
  68. shellAliases = {
  69. ns = "sudo nixos-rebuild switch --flake ~/nixos-config#veagle";
  70. #ns = "home-manager switch --flake /home/veagle/nixos-config#veagle";
  71. hm = "nix run ~/nixos-config#homeConfigurations.veagle.activationPackage";
  72. #Optional: clean, boot, etc., depending on what else you want
  73. nb = "sudo nixos-rebuild boot --flake /home/veagle/nixos-config#veagle";
  74. ntest = "sudo nixos-rebuild build --flake /home/veagle/nixos-config#veagle";
  75. nclean = "sudo nix-collect-garbage -d";
  76. };
  77. };
  78. programs.zoxide = {
  79. enable = true;
  80. enableZshIntegration = true;
  81. enableBashIntegration = true;
  82. };
  83.  
  84. # Wallpaper Via Hyprpaper ChatGPT Suggestion
  85. xdg.configFile."hypr/hyprpaper.conf".text = ''
  86. preload = ~/.config/wallpapers/mywall.png
  87. wallpaper = eDP-1,~/.config/wallpapers/mywall.png
  88. '';
  89.  
  90.  
  91. # Waybar Nick's modules/home/gui/desktop/wayland/waybar/config
  92. programs.waybar = {
  93. enable = true;
  94. settings = [
  95. {
  96. layer = "top";
  97. position = "bottom";
  98. height = 5;
  99. spacing = 10;
  100. margin-top = 0;
  101. margin-bottom = 5;
  102. margin-left = 10;
  103. margin-right = 10;
  104. modules-left = [
  105. "custom/launcher"
  106. "custom/exit"
  107. ];
  108. modules-center = [ "hyprland/workspaces" ];
  109. modules-right = [
  110. "bluetooth"
  111. "tray"
  112. "privacy"
  113. "pulseaudio"
  114. "battery"
  115. "network"
  116. "clock"
  117. ];
  118.  
  119. "custom/launcher" = {
  120. format = "";
  121. on-click = "fuzzel";
  122. tooltip = false;
  123. };
  124.  
  125. "custom/exit" = {
  126. format = "";
  127. on-click = "wlogout";
  128. tooltip-format = "Power Menu";
  129. };
  130.  
  131. "hyprland/workspaces" = {
  132. active-only = false;
  133. disable-scroll = true;
  134. format = "{name}: {icon}";
  135. on-click = "activate";
  136. format-icons = {
  137. "1" = " ";
  138. "2" = " ";
  139. "3" = " ";
  140. "4" = " ";
  141. "5" = " ";
  142. urgent = " ";
  143. default = " ";
  144. sort-by-number = true;
  145. };
  146. # persistent-workspaces = {
  147. # "1" = [ ];
  148. # "2" = [ ];
  149. # "3" = [ ];
  150. # "4" = [ ];
  151. # "5" = [ ];
  152. # };
  153. };
  154.  
  155. "bluetooth" = {
  156. format = "{status}";
  157. format-disabled = "";
  158. format-off = "";
  159. interval = 30;
  160. on-click = "blueman-applet";
  161. format-no-controller = "";
  162. };
  163.  
  164. "tray" = {
  165. icon-size = 12;
  166. spacing = 8;
  167. };
  168.  
  169. "privacy" = {
  170. icon-spacing = 8;
  171. icon-size = 12;
  172. transition-duration = 250;
  173. modules = {
  174. screenshare = {
  175. type = "screenshare";
  176. tooltip = true;
  177. tooltip-icon-size = 12;
  178. };
  179. audio-out = {
  180. type = "audio-out";
  181. tooltip = true;
  182. tooltip-icon-size = 12;
  183. };
  184. audio-in = {
  185. type = "audio-in";
  186. tooltip = true;
  187. tooltip-icon-size = 12;
  188. };
  189. };
  190. };
  191.  
  192. "pulseaudio" = {
  193. format = "{icon} {volume}%";
  194. tooltip = false;
  195. format-muted = " Muted";
  196. on-click = "pavucontrol";
  197. on-scroll-up = "pactl set-sink-volume @DEFAULT_SINK@ +5%";
  198. on-scroll-down = "pactl set-sink-volume @DEFAULT_SINK@ -5%";
  199. scroll-step = 5;
  200. format-icons = {
  201. headphone = "";
  202. hands-free = "";
  203. headset = "";
  204. phone = "";
  205. portable = "";
  206. car = "";
  207. default = [
  208. ""
  209. ""
  210. ""
  211. ];
  212. };
  213. };
  214.  
  215. "battery" = {
  216. format = "{icon} {capacity}%";
  217. format-alt = "{icon} {time}";
  218. format-charging = " {capacity}%";
  219. format-icons = [
  220. ""
  221. ""
  222. ""
  223. ""
  224. ""
  225. ];
  226. format-plugged = " {capacity}%";
  227. states = {
  228. critical = 15;
  229. warning = 30;
  230. };
  231. };
  232.  
  233. "network" = {
  234. format-wifi = " {signalStrength}%";
  235. format-ethernet = "󰀂 ";
  236. tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
  237. format-linked = "{ifname} (No IP)";
  238. format-disconnected = "󰖪 ";
  239. };
  240.  
  241. "clock" = {
  242. calendar = {
  243. format = {
  244. today = "<span color='#ff6699'><b><u>{}</u></b></span>";
  245. };
  246. };
  247. format = " {:%H:%M}";
  248. tooltip = true;
  249. tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
  250. format-alt = " {:%d/%m}";
  251. };
  252. }
  253. ];
  254.  
  255. style = ''
  256. * {
  257. min-height: 34px;
  258. border-radius:0;
  259. font-family: "TeX Gyre Termes";
  260. font-weight: bold;
  261. }
  262.  
  263. window#waybar {
  264. background: #000000;
  265. color: #d197d9;
  266. border: 2px solid;
  267. border-radius: 30px;
  268. border-color: #d197d9;
  269. opacity: 0.7;
  270. }
  271.  
  272. #workspaces {
  273. font-size: 18px;
  274. padding-left: 5px;
  275. margin-bottom: 0px;
  276. }
  277.  
  278. #workspaces button {
  279. color: #a0a09f;
  280. padding: 0px 5px 0px 5px;
  281. opacity: 1;
  282. }
  283.  
  284. #workspaces button.active {
  285. color: #a0a09f;
  286. }
  287.  
  288. #privacy {
  289. font-size: 3;
  290. color: #a0a09f;
  291. padding-right: 10px;
  292. }
  293.  
  294. #tray {
  295. font-size: 3;
  296. color: #a0a09f;
  297. padding-right: 10px;
  298. }
  299.  
  300. #pulseaudio {
  301. font-size: 3;
  302. color: #a0a09f;
  303. padding-right: 10px;
  304. }
  305.  
  306. #clock {
  307. font-size: 3;
  308. color: #a0a09f;
  309. padding-right: 10px;
  310. }
  311.  
  312. #battery {
  313. font-size: 3;
  314. color: #a0a09f;
  315. padding-right: 10px;
  316. }
  317.  
  318. #custom-launcher {
  319. font-size: 20px;
  320. color: #a0a09f;
  321. font-weight: bold;
  322. padding-left: 10px;
  323. padding-right: 10px;
  324. }
  325. '';
  326. };
  327.  
  328. # Wlogout
  329. programs.wlogout = {
  330. enable = true;
  331.  
  332. style = ''
  333. * {
  334. back-ground-image: none;
  335. box-shadow: none;
  336. window: {
  337. background-color: rgb(12, 12, 12, 1);
  338. }
  339. }
  340. '';
  341. };
  342.  
  343. # Kitty
  344. programs.kitty = {
  345. enable = true;
  346. themeFile = "Catppuccin-Mocha";
  347. };
  348.  
  349. # Blueman
  350. services.blueman-applet = {
  351. enable = true;
  352. };
  353.  
  354. gtk = {
  355. enable = true;
  356. theme.name = "Nordic";
  357. iconTheme.name = "Papirus-Dark";
  358. };
  359.  
  360.  
  361.  
  362. # Set home-manager version compatibility
  363. home.stateVersion = "24.11"; # Match your system.stateVersion
  364.  
  365. # In home.nix recommended by Chatgpt
  366. home.sessionVariables = {
  367. LANG = "en_US.UTF-8";
  368. };
  369. programs.fuzzel = {
  370. enable = true;
  371.  
  372. settings = {
  373. main = {
  374. font = "FiraCode Nerd Font:size=12";
  375. prompt = "Run: ";
  376. terminal = "alacritty";
  377. width = 50;
  378. };
  379.  
  380. colors = {
  381. background = "282a36dd";
  382. text = "f8f8f2ff";
  383. match = "ff79c6ff";
  384. selection = "44475add";
  385. selection-text = "f8f8f2ff";
  386. };
  387. };
  388. };
  389. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement