Advertisement
PROPESSOR

Home.nix

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