- # --------------------------------------------------
- # pqq/poq
- # -----
- # home manager options:
- # search:
- # https://home-manager-options.extranix.com/?query=
- # list
- # https://nix-community.github.io/home-manager/options.xhtml
- # --------------------------------------------------
- {
- inputs,
- outputs,
- lib,
- config,
- pkgs,
- ...
- }: {
- # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
- home.stateVersion = "23.11";
- # import home-manager modules
- imports = [
- ../packages/waybar/waybar.nix
- ../packages/hyprland/hyprland.nix
- ];
- # enable home-manager
- programs.home-manager.enable = true;
- # define information about the user and the path(s) it should manage
- home = {
- username = "poq";
- homeDirectory = "/home/poq";
- };
- # enable fontconfig configuration
- # https://nix-community.github.io/home-manager/options.xhtml#opt-fonts.fontconfig.enable
- fonts.fontconfig.enable = true;
- # add overlays
- # https://nix-community.github.io/home-manager/options.xhtml#opt-nixpkgs.overlays
- nixpkgs.overlays = [
- outputs.unstable-packages
- ];
- # add user packages
- home.packages = with pkgs; [
- neofetch # display system information
- htop # interactive process viewer
- nerdfonts # full nerfonts package, alt: "(nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" ]; })"
- pavucontrol # pulseaudio volume control
- pulseaudio # sound server system / proxy for your sound applications
- pcmanfm # file manager
- playerctl # cli utility for controlling media players
- unstable.hyprlock
- (pkgs.writeShellScriptBin "helloWorld_1" ''
- echo "Hello, World! (pkgs.writeShellScriptBin)";
- '')
- (pkgs.writeShellScriptBin "helloWorld_2"
- (builtins.readFile ../sources/scripts/helloWorld.sh)
- )
- ];
- # -----
- # add home-manager packages
- # -----
- programs.kitty.enable = true;
- programs.wofi.enable = true;
- services.mako.enable = true;
- # bash :: https://home-manager-options.extranix.com/?query=bash
- programs.bash.enable = true;
- # extra commands to run when initializing an interactive shell
- programs.bash.initExtra = ''
- #chmod a-x ~/.local/bin/*
- helloWorld_3 () {
- echo "Hello, World! (programs.bash.initExtra)";
- }
- alias curae="/home/.curae/curae.sh"
- # execute it immediately
- #setxkbmap -model pc105 -layout us,no -option grp:caps_toggle,grp_led:scroll
- # create alias for manual execution
- #alias keymap="setxkbmap -model pc105 -layout us,no -option grp:caps_toggle,grp_led:scroll"
- '';
- # extra commands placed in ~/.bashrc (will run even in non-interactive shells)
- programs.bash.bashrcExtra = ''
- '';
- # enable git
- programs.git.enable = true;
- # nicely reload system units when changing configs
- systemd.user.startServices = "sd-switch";
- # include sources
- # please note that source files has to be executable before the import
- # https://discourse.nixos.org/t/how-to-make-scripts-imported-via-home-manager-executable/41909
- home.file = {
- ".local/bin" = {
- source = ../sources/scripts;
- recursive = true;
- };
- ".local/wp" = {
- source = ../sources/wallpapers;
- recursive = true;
- };
- };
- }