Advertisement
PROPESSOR

Latest Error Free Home.Nix

Jun 13th, 2025
593
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 11.78 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.   services.network-manager-applet.enable = true;  
  10.  
  11.   home.packages =
  12.    (with pkgs; [
  13.     htop
  14.     neofetch
  15.     fastfetch
  16.     #vscode
  17.     hyprland
  18.     hyprlock
  19.     hyprpaper
  20.     pavucontrol     # for audio controls
  21.     waybar
  22.     wlogout
  23.     qt6ct
  24.     libsForQt5.qt5ct
  25.     # GTK
  26.     gtk3
  27.     bibata-cursors
  28.     adw-gtk3
  29.     #gruvboxPlus
  30.     # Calendar
  31.     gnome-calendar
  32.     brightnessctl
  33.     #fuzzel
  34.     rofi
  35.     kitty
  36.     wl-clipboard
  37.     cliphist
  38.     grim
  39.     slurp
  40.     hyprshot
  41.     obs-studio
  42.     # blueman
  43.     # kdePackages.bluedevil
  44.     # bluetuith
  45.     blueberry
  46.     wireplumber
  47.     networkmanagerapplet
  48.     #xdg-desktop-portal-gtk
  49.     kdePackages.okular    # Feature-rich
  50.     # Or try: evince or zathura
  51.     # 🛠 Optional helpful tools
  52.     unzip
  53.     wget
  54.     git
  55.     # Doc-Reader
  56.     sioyek
  57.     # PKMS/Editor
  58.     vim
  59.     # Messaging Apps
  60.     signal-desktop
  61.     # Browser
  62.     brave
  63.     # Youtube
  64.     yt-dlp         # for downloading videos
  65.     mpv            # to stream YouTube via CLI
  66.     # For Running.exe files
  67.     steam
  68.     # VPN
  69.     protonvpn-gui  # ProtonVPN GUI client (needs setup and login)
  70.     openvpn        # Required for many VPNs
  71.     # File Manager
  72.     xdg-desktop-portal  # required for opening files with apps
  73.     kdePackages.xdg-desktop-portal-kde
  74.     gvfs                # Needed for mounting drives and trash support
  75.     kdePackages.dolphin
  76.     kdePackages.kio-extras
  77.     kdePackages.baloo
  78.     kdePackages.kdegraphics-thumbnailers
  79.     kdePackages.ffmpegthumbs
  80.     kdePackages.breeze
  81.     kdePackages.breeze-icons
  82.     kdePackages.oxygen
  83.     kdePackages.polkit-kde-agent-1
  84.     # Notifications
  85.     swaynotificationcenter
  86.     # Add more user-level packages here
  87.    ]);  
  88.  
  89.   # # Notion-WebApp
  90.   # home.file.".local/bin/notion-web".text = ''
  91.   #  #!${pkgs.stdenv.shell}
  92.   #  exec xdg-open https://www.notion.so
  93.   # '';
  94.   # home.file.".local/bin/notion-web".executable = true;
  95.   # home.file.".local/share/applications/notion-web.desktop".text = ''
  96.   #  [Desktop Entry]
  97.   #  Name=Notion (Web)
  98.   #  Comment=Open Notion in web browser
  99.   #  Exec=${home.homeDirectory}/.local/bin/notion-web
  100.   #  Terminal=false
  101.   #  Type=Application
  102.   #  Icon=web-browser
  103.   #  Categories=Office;
  104.   #'';
  105.  
  106.   # Enable some basic programs
  107.   programs.zsh.enable = true;
  108.   programs.git.enable = true;
  109.   programs.bash = {
  110.     enable = true;
  111.     initExtra = ''
  112.       eval "$(starship init bash)"
  113.     '';
  114.     shellAliases = {
  115.       ns = "sudo nixos-rebuild switch --flake ~/nixos-config#veagle";
  116.       hm = "nix run ~/nixos-config#homeConfigurations.veagle.activationPackage";
  117.       nb = "sudo nixos-rebuild boot --flake /home/veagle/nixos-config#veagle";
  118.       ntest = "sudo nixos-rebuild build --flake /home/veagle/nixos-config#veagle";
  119.       le = "sudo nix-env --list-generations --profile /nix/var/nix/profiles/system";
  120.       nclean = "sudo nix-collect-garbage -d";
  121.       hland = "nano ~/.config/hypr/hyprland.conf";
  122.       hlock = "nano ~/.config/hypr/hyprlock.conf";
  123.       home = "nano nixos-config/hosts/veagle/home.nix";
  124.       ship = "nano ~/nixos-config/hosts/veagle/starship.toml";
  125.       config = "nano nixos-config/hosts/veagle/configuration.nix";
  126.       flake = "nano nixos-config/flake.nix";
  127.       vs = "vim ~/.vimrc";
  128.       nf = "neofetch";
  129.       ff = "fastfetch";
  130.       hc = "hyprctl clients";
  131.       cond = "cd .config";
  132.     };
  133.   };
  134.  
  135.   # Starship
  136.   programs.starship = {
  137.   enable = true;
  138.   settings = builtins.fromTOML (builtins.readFile ./starship.toml);
  139.   };
  140.  
  141.   programs.zoxide = {
  142.      enable = true;
  143.      enableZshIntegration = true;
  144.      enableBashIntegration = true;
  145.     };
  146.  
  147.   #programs.rofi = {
  148.   #   enable = true;
  149.   #  };
  150.  
  151.   # Wallpaper Via Hyprpaper ChatGPT Suggestion
  152.   xdg.configFile."hypr/hyprpaper.conf".text = ''
  153.     preload = ~/.config/wallpapers/mywall.png
  154.     wallpaper = eDP-1,~/.config/wallpapers/mywall.png
  155.   '';
  156.  
  157.  
  158.   # Waybar Nick's modules/home/gui/desktop/wayland/waybar/config
  159.   programs.waybar = {
  160.   enable = true;
  161.   settings = [
  162.     {
  163.       layer = "top";
  164.       position = "bottom";
  165.       height = 50;
  166.       spacing = 10;
  167.       margin-top = 0;
  168.       margin-bottom = 5;
  169.       margin-left = 10;
  170.       margin-right = 10;
  171.       modules-left = [
  172.        "custom/launcher"
  173.        "tray"
  174.        "custom/exit"
  175.       ];
  176.       modules-center = [ "hyprland/workspaces" ];
  177.       modules-right = [
  178.        "bluetooth"
  179.        "privacy"
  180.        "pulseaudio"
  181.        "battery"
  182.        "network"
  183.        "clock"
  184.        ];
  185.      
  186.       "custom/launcher" = {
  187.          format = "";
  188.          on-click = "rofi -show drun";
  189.          tooltip = false;
  190.        };
  191.  
  192.       "custom/exit" = {
  193.         format = " ";
  194.         on-click = "wlogout";
  195.         tooltip-format = "Power Menu";
  196.        };
  197.  
  198.       "hyprland/workspaces" = {
  199.         active-only = false;
  200.         disable-scroll = true;
  201.         format = "{icon}";
  202.         on-click = "activate";
  203.         format-icons = {
  204.          "1" = "◉";
  205.          "2" = "◉";
  206.          "3" = "◉";
  207.          "4" = "◉";
  208.          "5" = "◉";
  209.         urgent = "";
  210.         default = "◉";
  211.         sort-by-number = true;
  212.         };
  213.         persistent-workspaces = {
  214.          "1" = [ ];
  215.          "2" = [ ];
  216.          "3" = [ ];
  217.          "4" = [ ];
  218.          "5" = [ ];
  219.         };
  220.        };
  221.  
  222.       "bluetooth" = {
  223.          format = " {status}";
  224.          format-disabled = "";
  225.          format-off = "";
  226.          interval = 30;
  227.          on-click = "blueberry";
  228.          format-no-controller = "";
  229.        };
  230.        
  231.       "tray" = {
  232.         icon-size = 20;
  233.         spacing = 10;
  234.        };
  235.        
  236.       "privacy" = {
  237.          icon-spacing = 8;
  238.          icon-size = 12;
  239.          transition-duration = 250;
  240.          modules = {
  241.           screenshare = {
  242.           type = "screenshare";
  243.           tooltip = true;
  244.           tooltip-icon-size = 12;
  245.          };
  246.          audio-out = {
  247.           type = "audio-out";
  248.           tooltip = true;
  249.           tooltip-icon-size = 12;
  250.          };
  251.          audio-in = {
  252.           type = "audio-in";
  253.           tooltip = true;
  254.           tooltip-icon-size = 12;
  255.          };
  256.         };
  257.        };
  258.  
  259.        "pulseaudio" = {
  260.          format = "{icon} {volume}%";
  261.          tooltip = false;
  262.          format-muted = " Muted";
  263.          on-click = "pavucontrol";
  264.          on-scroll-up = "pactl set-sink-volume @DEFAULT_SINK@ +5%";
  265.          on-scroll-down = "pactl set-sink-volume @DEFAULT_SINK@ -5%";
  266.          scroll-step = 5;
  267.          format-icons = {
  268.          headphone = "";
  269.          hands-free = "";
  270.          headset = "";
  271.          phone = "";
  272.          portable = "";
  273.          car = "";
  274.          default = [
  275.           ""
  276.           ""
  277.           " "
  278.           ];
  279.          };
  280.         };
  281.  
  282.       "battery" = {
  283.         format = "{icon}{capacity}%";
  284.         format-alt = "{icon} {time}";
  285.         format-charging = "{capacity}%";
  286.         format-icons = [
  287.          " "
  288.          " "
  289.          " "
  290.          " "
  291.          " "
  292.         ];
  293.         format-plugged = "{capacity}%";
  294.         states = {
  295.          critical = 15;
  296.          warning = 30;
  297.         };
  298.        };
  299.      
  300.       "network" = {
  301.         format-wifi = " {signalStrength}%";
  302.         format-ethernet = "󰀂";
  303.         tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
  304.         format-linked = "{ifname} (No IP)";
  305.         format-disconnected = "󰖪 ";
  306.        };
  307.  
  308.        "clock" = {
  309.         calendar = {
  310.          format = {
  311.           today = "<span color='#ff6699'><b><u>{}</u></b></span>";
  312.          };
  313.         };
  314.         format = "{:%I:%M%p}";
  315.         tooltip = true;
  316.         tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
  317.         format-alt = "{:%d/%m}";
  318.         on-click = "gnome-calendar";
  319.        };
  320.     }
  321.   ];    
  322.    
  323.   style = ''
  324.     * {
  325.        min-height: 34px;
  326.        border-radius:0;
  327.        font-family: "MonaspiceNe Nerd Font";
  328.        font-weight: bold;
  329.       }
  330.      
  331.       window#waybar {
  332.        background: #262626;  
  333.        color: #d197d9;
  334.        border: 2px solid;
  335.        border-radius: 30px;
  336.        border-color: #ce38fd;
  337.        opacity: 0.8;
  338.       }
  339.      
  340.      #workspaces {
  341.       font-size: 50px;
  342.       padding-left: 5px;
  343.       margin-bottom: 5px;
  344.      }
  345.    
  346.      #workspaces button {
  347.       color: #ce38fd;
  348.       padding: 0px 5px 0px 5px;
  349.       opacity: 1;
  350.      }
  351.    
  352.      #workspaces button.active {
  353.       color: #eecef4;
  354.      }
  355.      
  356.      #privacy {
  357.        font-size: 20px;
  358.        color: #ce38fd;
  359.        padding-right: 20px;
  360.       }
  361.  
  362.      #tray {
  363.        font-size: 20px;
  364.        color: #ce38fd;
  365.        padding-right: 5px;
  366.        padding-left: 5px;
  367.       }
  368.      
  369.      #pulseaudio {
  370.        font-size: 20px;
  371.        color: #ce38fd;
  372.        padding-right: 10px;
  373.       }
  374.  
  375.      #clock {
  376.        font-size: 50px;
  377.        color: #ce38fd;
  378.        padding-right: 10px;
  379.       }
  380.      
  381.      #network {
  382.        font-size: 20px;
  383.        color: #ce38fd;
  384.        padding-right: 10px;
  385.       }
  386.  
  387.      #bluetooth {
  388.        font-size: 20px;
  389.        color: #ce38fd;
  390.        padding-right: 10px;
  391.       }
  392.      
  393.      #battery {
  394.       font-size: 20px;
  395.       color: #ce38fd;
  396.       padding-right: 10px;
  397.      }
  398.  
  399.      #custom-launcher {
  400.        font-size: 50px;
  401.        color: #ce38fd;
  402.        font-weight: bold;
  403.        padding-left: 10px;
  404.        padding-right: 10px;
  405.       }  
  406.  
  407.      #custom-exit {
  408.        color: #ce38fd;
  409.        font-size: 50px;
  410.        font-weight: bold;
  411.       }
  412.    '';
  413.  };
  414.  
  415.   # NM-Applet
  416.   # programs.nm-applet.enable = true;  
  417.  
  418.   # Wlogout
  419.   programs.wlogout = {
  420.      enable = true;
  421.   };
  422.  
  423.   # File Manager
  424.   xdg.portal = {
  425.     enable = true;
  426.     extraPortals = [ pkgs.kdePackages.xdg-desktop-portal-kde ];
  427.     config = {
  428.       common = {
  429.         default = [ "kde" ];
  430.       };
  431.     };
  432.   };
  433.  
  434.  
  435.   # Kitty
  436.     programs.kitty = {
  437.     enable = true;
  438.     themeFile = "Catppuccin-Mocha";
  439.     font = {
  440.       name = "FiraCode Nerd Font";
  441.       size = 10;
  442.     };
  443.     extraConfig = ''
  444.       background_opacity 0.2
  445.     '';
  446.   };
  447.  
  448.   # Blueman
  449.   #services.blueman-applet = {
  450.   # enable = true;
  451.   #};
  452.  
  453.   # Gtk  
  454.   gtk = {
  455.    enable = true;
  456.    cursorTheme.package = pkgs.bibata-cursors;
  457.    cursorTheme.name = "Bibata-Modern-Ice";
  458.    theme.package = pkgs.adw-gtk3;
  459.    theme.name = "adw-gtk3";
  460.    #iconTheme.package = gruvboxPlus;
  461.    iconTheme.name = "Paprikus Dark";
  462.   };
  463.  
  464.   # Qt
  465.   #qt = {
  466.   # enable = true;
  467.   # platformTheme.name = "gtk";
  468.   #};
  469.  
  470.   # For Showing Up Bluedevil on App Launcher
  471.   #xdg.desktopEntries.bluedevil-wizard = {
  472.   # name = "Bluetooth Wizard";
  473.   # genericName = "Bluetooth Device Setup";
  474.   # exec = "bluedevil-wizard";
  475.   # icon = "preferences-system-bluetooth";
  476.   # type = "Application";
  477.   # categories = [ "Utility" "Settings" ];
  478.   # terminal = false;
  479.   #};
  480.  
  481.  
  482.   # Set home-manager version compatibility
  483.   home.stateVersion = "24.11"; # Match your system.stateVersion
  484.  
  485.   # In home.nix recommended by Chatgpt
  486.   home.sessionVariables = {
  487.     LANG = "en_US.UTF-8";
  488.     QT_QPA_PLATFORMTHEME = "qt6ct"; # Or "qt5ct" for Qt 5 apps
  489.     QT_STYLE_OVERRIDE = "Breeze";
  490.    };
  491.  #  programs.fuzzel = {
  492.  #   enable = true;
  493.  
  494.  #   settings = {
  495.  #     main = {
  496.  #       font = "FiraCode Nerd Font:size=12";
  497.  #       prompt = "Run: ";
  498.  #       terminal = "alacritty";
  499.  #       width = 50;
  500.  #     };
  501.  
  502.  #     colors = {
  503.  #       background = "282a36dd";
  504.  #       text = "f8f8f2ff";
  505.  #       match = "ff79c6ff";
  506.  #       selection = "44475add";
  507.  #       selection-text = "f8f8f2ff";
  508.  #     };
  509.  #   };
  510.  # };
  511. }
  512.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement