system/hm/home.nix
2024-10-14 15:35:04 -07:00

225 lines
6.6 KiB
Nix

# Last stable generation 359 10/13/24
{ inputs, outputs, lib, config, pkgs, systemSettings, userSettings, zen-browser, hyprland, nix-colors, ... }:
let
myAliases = {
# Sysadmin
ll = "ls -alF";
la = "ls -A";
l = "ls -CF";
".." = "cd ..";
version = "lsb_release -cs";
cpu-speed = "cat /proc/cpuinfo | grep 'cpu MHz'";
update = "sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y";
listServices = "systemctl list-units --all --type=service --no-pager";
listUserServices = "systemctl list-units --all --type=service --no-pager --user";
ls = "eza --icons -l -T -L=1";
cat = "bat";
htop = "btm";
fd = "fd -Lu";
w3m = "w3m -no-cookie -v";
neofetch = "disfetch";
fetch = "disfetch";
# NixOS
pkgsList="nix-env -qaP \\'*\\' --description";
nixUpdate="nix-env -u \\'*\\'";
updateChannel="nix-channel --update nixos";
nixOptimize="nix-store --optimise";
mkhome="cd ~/Flakes && home-manager switch --flake .";
buildsys="cd ~/Flakes && sudo nixos-rebuild switch --flake '.#'";
# Zoxide
# cd="z";
# Kitty
icat="kitten icat";
s="kitten ssh";
init_0="sudo systemctl isolate emergency.target";
init_1="sudo systemctl isolate rescue.target";
init_3="sudo systemctl isolate multi-user.target";
init_5="sudo systemctl isolate graphical.target";
# history="history | fzf";
};
# URL of your dotfiles repository
dotfilesRepo = "http://nas.local/git/wayne/dotfiles.git";
# Path where the dotfiles repository will be cloned
dotfilesPath = "${config.home.homeDirectory}/.dotfiles";
# Path to the directory within the dotfiles repository that contains home directory dotfiles
homeStowPath = "${dotfilesPath}/home";
# pip hack
# system = "x86_64-linux";
# pkgs = pkgs.legacyPackages.${system};
# buildPythonPackage = pkgs.python311Packages.buildPythonPackage;
# fetchPypi = pkgs.python311Packages.fetchPypi;
# Mopidy-WebSettings = buildPythonPackage rec {
# pname = "Mopidy-WebSettings";
# version = "0.2.3";
# format = "mopidyPlugin";
# src = fetchPypi {
# inherit pname version;
# sha256 = "6aa2284cd7af4a34cb10e60e721e92b98f06b2f064be2e1e2191f73374baa1ff";
# };
# doCheck = false;
# propogateBuildInputs = with pkgs.python311Packages; [];
# };
polycat = pkgs.callPackage ../pkgs/derivations/polycat {};
in
{
imports = [
./hypr.nix
./xdg.nix
./wayland.nix
(import ../pkgs/shell/stow.nix { pkgs = pkgs; lib = lib; config = config; })
(import ../pkgs/shell/cli-collection.nix { pkgs = pkgs; })
(import ../pkgs/shell/sh.nix { inherit myAliases; pkgs = pkgs;})
(import ../pkgs/shell/zsh.nix { inherit myAliases; pkgs = pkgs;})
(import ../pkgs/git/git.nix { inherit userSettings; pkgs = pkgs; })
(import ../pkgs/app/terminal/tmux.nix { pkgs = pkgs; lib = lib; config = config; })
(import ../pkgs/app/terminal/kitty.nix { pkgs = pkgs; lib = lib; nix-colors = nix-colors; config = config; })
# (import ../pkgs/app/terminal/starship.nix { pkgs = pkgs; })
(import ../pkgs/app/terminal/parrot-starship.nix { pkgs = pkgs; })
(import ../pkgs/app/terminal/yazi.nix { pkgs = pkgs; })
(import ../pkgs/lang/cc/cc.nix { pkgs = pkgs; })
# (import ../pkgs/lang/python/python.nix { pkgs = pkgs; })
# (import ../pkgs/lang/python/python-packages.nix { pkgs = pkgs; })
# (import ../pkgs/app/editor/nvim.nix { pkgs = pkgs; })
# (import ../pkgs/app/terminal/alacritty.nix { pkgs = pkgs; })
(import ../pkgs/app/audio/mopidy.nix { pkgs = pkgs; })
];
nixpkgs = {
config = {
allowUnfree = true;
};
};
systemd.user.sessionVariables = config.home.sessionVariables;
home = {
username = "${userSettings.username}";
homeDirectory = "/home/${userSettings.username}";
sessionVariables = {
PYTHONPATH = "${pkgs.mopidy}/lib/python3.11/site-packages:${pkgs.mopidy-tidal}/lib/python3.11/site-packages:${pkgs.mopidy-musicbox-webclient}/lib/python3.11/site-packages";
};
};
fonts.fontconfig.enable = true;
# colorScheme = nix-colors.colorSchemes.nord;
home.packages = with pkgs; [
(python3.withPackages (ps: with ps; [
pip pynvim # mopidy-tidal # Mopidy-WebSettings
]))
# mopidy mopidy-tidal mopidy-musicbox-webclient gst_all_1.gstreamer gst_all_1.gst-plugins-bad
# Core
zsh bash git stow tmux tmuxPlugins.tmux-fzf
vim neovim lunarvim # vimPlugins.vim-kitty-navigator
zoxide # vimPlugins.telescope-zoxide vimPlugins.zoxide-vim
bottom htop jq
# Lunarvim Dependencies
gnumake42 nodejs_22 cargo ripgrep cmake
starship
yazi mapscii tidal-dl
# IDE's
sublime3 vscode # vscode.languages.web vscode.languages.python vscode.languages.nix vscode.languages.bash
typora obsidian obsidian-export # vimPlugins.obsidian-nvim
appimage-run
# studio
krita inkscape blender gimp-with-plugins
reaper
# System/Rescue
ddrescue gparted
nerdfonts ubuntu_font_family
# openrgb-with-all-plugins
# Cloud/Remote
restic
nextcloud-client
keepassxc git-credential-keepassxc keybase-gui keybase kbfs
remmina
# Browsers
firefox-devedition w3m ungoogled-chromium librewolf
# https://github.com/MarceColl/zen-browser-flake/tree/master
zen-browser.packages."${system}".default
mailspring betterbird doublecmd
# pentablet-flake
libreoffice
wdisplays
waybar hyprpaper hyprlock hypridle wlogout rofi-wayland wev clipman cliphist wl-clip-persist wl-clipboard
polycat qt5.qtwayland qt6.qtwayland qt5ct qt6ct hyprshot hyprpicker dconf wayland-utils wayland-protocols qalculate-qt
blueman networkmanagerapplet swayosd
base16-schemes base16-shell-preview
# hyprcursor nordzy-icon-theme
# LLM's
# lmstudio
];
programs = {
home-manager.enable = true;
vscode.enable = true;
ripgrep.enable = true;
};
services = {
blueman-applet.enable = true;
keybase.enable = true;
kbfs = {
enable = true;
mountPoint = "keybase";
extraFlags = [
"-label: kbfs"
"-mount-type: normal"
];
};
nextcloud-client = {
enable = false;
startInBackground = false;
};
udiskie = {
enable = true;
settings = {
program_options = {
tray = "auto";
notify = true;
};
icon_names.media = [ "media-optical" ];
};
};
};
home.sessionVariables = {
EDITOR = userSettings.editor;
SPAWNEDITOR = userSettings.spawnEditor;
TERM = userSettings.term;
};
news.display = "silent";
systemd.user.startServices = "sd-switch";
home.stateVersion = "24.05";
}