Advertisement
PROPESSOR

Latest Error Free Home.Nix

Jun 7th, 2025
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 9.21 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.       hm = "nix run ~/nixos-config#homeConfigurations.veagle.activationPackage";
  71.       nb = "sudo nixos-rebuild boot --flake /home/veagle/nixos-config#veagle";
  72.       ntest = "sudo nixos-rebuild build --flake /home/veagle/nixos-config#veagle";
  73.       nclean = "sudo nix-collect-garbage -d";
  74.       hland = "nano ~/.config/hypr/hyprland.conf";
  75.       home = "nano nixos-config/hosts/veagle/home.nix";
  76.       config = "nano nixos-config/hosts/veagle/configuration.nix";
  77.       flake = "nano nixos-config/flake.nix";
  78.     };
  79.   };
  80.   programs.zoxide = {
  81.      enable = true;
  82.      enableZshIntegration = true;
  83.      enableBashIntegration = true;
  84.     };
  85.  
  86.   # Wallpaper Via Hyprpaper ChatGPT Suggestion
  87.   xdg.configFile."hypr/hyprpaper.conf".text = ''
  88.     preload = ~/.config/wallpapers/mywall.png
  89.     wallpaper = eDP-1,~/.config/wallpapers/mywall.png
  90.   '';
  91.  
  92.  
  93.   # Waybar Nick's modules/home/gui/desktop/wayland/waybar/config
  94.   programs.waybar = {
  95.   enable = true;
  96.   settings = [
  97.     {
  98.       layer = "top";
  99.       position = "bottom";
  100.       height = 50;
  101.       spacing = 10;
  102.       margin-top = 0;
  103.       margin-bottom = 5;
  104.       margin-left = 10;
  105.       margin-right = 10;
  106.       modules-left = [
  107.        "custom/launcher"
  108.        "tray"
  109.        "custom/exit"
  110.       ];
  111.       modules-center = [ "hyprland/workspaces" ];
  112.       modules-right = [
  113.        "bluetooth"
  114.        "privacy"
  115.        "pulseaudio"
  116.        "battery"
  117.        "network"
  118.        "clock"
  119.        ];
  120.      
  121.       "custom/launcher" = {
  122.          format = "";
  123.          on-click = "fuzzel";
  124.         tooltip = false;
  125.        };
  126.  
  127.       "custom/exit" = {
  128.         format = " ";
  129.         on-click = "wlogout";
  130.         tooltip-format = "Power Menu";
  131.        };
  132.  
  133.       "hyprland/workspaces" = {
  134.         active-only = false;
  135.         disable-scroll = true;
  136.         format = "{icon}";
  137.         on-click = "activate";
  138.         format-icons = {
  139.          "1" = "◉";
  140.          "2" = "◉";
  141.          "3" = "◉";
  142.          "4" = "◉";
  143.          "5" = "◉";
  144.         urgent = "";
  145.         default = "◉";
  146.         sort-by-number = true;
  147.         };
  148.        };
  149.  
  150.       "bluetooth" = {
  151.          format = "{status}";
  152.          format-disabled = "";
  153.          format-off = "";
  154.          interval = 30;
  155.          on-click = "blueman-applet";
  156.          format-no-controller = "";
  157.        };
  158.        
  159.       "tray" = {
  160.         icon-size = 20;
  161.         spacing = 10;
  162.        };
  163.        
  164.       "privacy" = {
  165.          icon-spacing = 8;
  166.          icon-size = 12;
  167.          transition-duration = 250;
  168.          modules = {
  169.           screenshare = {
  170.           type = "screenshare";
  171.           tooltip = true;
  172.           tooltip-icon-size = 12;
  173.          };
  174.          audio-out = {
  175.           type = "audio-out";
  176.           tooltip = true;
  177.           tooltip-icon-size = 12;
  178.          };
  179.          audio-in = {
  180.           type = "audio-in";
  181.           tooltip = true;
  182.           tooltip-icon-size = 12;
  183.          };
  184.         };
  185.        };
  186.  
  187.        "pulseaudio" = {
  188.          format = "{icon}{volume}%";
  189.          tooltip = false;
  190.          format-muted = " Muted";
  191.          on-click = "pavucontrol";
  192.          on-scroll-up = "pactl set-sink-volume @DEFAULT_SINK@ +5%";
  193.          on-scroll-down = "pactl set-sink-volume @DEFAULT_SINK@ -5%";
  194.          scroll-step = 5;
  195.          format-icons = {
  196.          headphone = "";
  197.          hands-free = "";
  198.          headset = "";
  199.          phone = "";
  200.          portable = "";
  201.          car = "";
  202.          default = [
  203.           ""
  204.           ""
  205.           " "
  206.          ];
  207.          };
  208.         };
  209.  
  210.       "battery" = {
  211.         format = "{icon}{capacity}%";
  212.         format-alt = "{icon} {time}";
  213.         format-charging = "{capacity}%";
  214.         format-icons = [
  215.          " "
  216.          " "
  217.          " "
  218.          " "
  219.          " "
  220.         ];
  221.         format-plugged = "{capacity}%";
  222.         states = {
  223.          critical = 15;
  224.          warning = 30;
  225.         };
  226.        };
  227.      
  228.       "network" = {
  229.         format-wifi = " {signalStrength}%";
  230.         format-ethernet = "󰀂";
  231.         tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
  232.         format-linked = "{ifname} (No IP)";
  233.         format-disconnected = "󰖪 ";
  234.        };
  235.  
  236.        "clock" = {
  237.         calendar = {
  238.          format = {
  239.           today = "<span color='#ff6699'><b><u>{}</u></b></span>";
  240.          };
  241.         };
  242.         format = "{:%H:%M}";
  243.         tooltip = true;
  244.         tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
  245.         format-alt = "{:%d/%m}";
  246.        };
  247.  }
  248.   ];    
  249.    
  250.   style = ''
  251.     * {
  252.        min-height: 34px;
  253.        border-radius:0;
  254.        font-family: "MonaspiceNe Nerd Font";
  255.        font-weight: bold;
  256.       }
  257.      
  258.       window#waybar {
  259.        background: #262626;  
  260.        color: #d197d9;
  261.        border: 2px solid;
  262.        border-radius: 30px;
  263.        border-color: #ce38fd;
  264.        opacity: 0.8;
  265.       }
  266.      
  267.      #workspaces {
  268.       font-size: 50px;
  269.       padding-left: 5px;
  270.       margin-bottom: 5px;
  271.      }
  272.    
  273.      #workspaces button {
  274.       color: #ce38fd;
  275.       padding: 0px 5px 0px 5px;
  276.       opacity: 1;
  277.      }
  278.    
  279.      #workspaces button.active {
  280.       color: #eecef4;
  281.      }
  282.      
  283.      #privacy {
  284.        font-size: 20px;
  285.        color: #ce38fd;
  286.        padding-right: 20px;
  287.       }
  288.      
  289.      #tray {
  290.        font-size: 20px;
  291.        color: #ce38fd;
  292.        padding-right: 5px;
  293.        padding-left: 5px;
  294.       }
  295.      
  296.      #pulseaudio {
  297.        font-size: 20px;
  298.        color: #ce38fd;
  299.        padding-right: 10px;
  300.       }
  301.  
  302.      #clock {
  303.        font-size: 50px;
  304.        color: #ce38fd;
  305.        padding-right: 10px;
  306.       }
  307.      
  308.      #network {
  309.        font-size: 20px;
  310.        color: #ce38fd;
  311.        padding-right: 10px;
  312.       }
  313.  
  314.      #bluetooth {
  315.        font-size: 20px;
  316.        color: #ce38fd;
  317.        padding-right: 10px;
  318.       }
  319.      
  320.      #battery {
  321.       font-size: 20px;
  322.       color: #ce38fd;
  323.       padding-right: 10px;
  324.      }
  325.  
  326.      #custom-launcher {
  327.        font-size: 50px;
  328.        color: #ce38fd;
  329.        font-weight: bold;
  330.        padding-left: 10px;
  331.        padding-right: 10px;
  332.       }
  333.    
  334.      #custom-exit {
  335.        color: #ce38fd;
  336.        font-size: 50px;
  337.        font-weight: bold;
  338.       }
  339.  
  340.    '';
  341.  };
  342.  
  343.   # Wlogout
  344.   programs.wlogout = {
  345.      enable = true;
  346.      
  347.      style = ''
  348.        * {
  349.           back-ground-image: none;
  350.           box-shadow: none;
  351.           window: {
  352.             background-color: rgb(12, 12, 12, 1);
  353.            }
  354.          }
  355.       '';
  356.   };
  357.  
  358.   # Kitty
  359.     programs.kitty = {
  360.     enable = true;
  361.     themeFile = "Catppuccin-Mocha";
  362.   };
  363.  
  364.   # Blueman
  365.   services.blueman-applet = {
  366.    enable = true;
  367.   };
  368.  
  369.   gtk = {
  370.    enable = true;
  371.    theme.name = "Nordic";
  372.    iconTheme.name = "Papirus-Dark";
  373.   };
  374.  
  375.  
  376.  
  377.   # Set home-manager version compatibility
  378.   home.stateVersion = "24.11"; # Match your system.stateVersion
  379.  
  380.   # In home.nix recommended by Chatgpt
  381.   home.sessionVariables = {
  382.     LANG = "en_US.UTF-8";
  383.    };
  384.    programs.fuzzel = {
  385.     enable = true;
  386.  
  387.     settings = {
  388.       main = {
  389.         font = "FiraCode Nerd Font:size=12";
  390.         prompt = "Run: ";
  391.         terminal = "alacritty";
  392.         width = 50;
  393.       };
  394.  
  395.       colors = {
  396.         background = "282a36dd";
  397.         text = "f8f8f2ff";
  398.         match = "ff79c6ff";
  399.         selection = "44475add";
  400.         selection-text = "f8f8f2ff";
  401.       };
  402.     };
  403.   };
  404. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement