Files
dotfiles/home.nix
2024-04-01 16:42:51 +02:00

130 lines
3.5 KiB
Nix

{ config, pkgs, lib, system, user, allowed, secrets, ... }:
{
imports = [
./home-modules/vscode.nix
./home-modules/discord.nix
./home-modules/meli/meli.nix
# ./home-modules/mutt/neomutt.nix
./home-modules/gestures.nix
./home-modules/pnx/pnx.nix
# ./home-modules/hsmw.nix
./home-modules/hyprland/hyprland.nix
./home-modules/hyprland/hyprland-autoname-workspaces.nix
./home-modules/hyprland/waybar.nix
./home-modules/shell/fish.nix
./home-modules/shell/starship.nix
./home-modules/shell/yazi.nix
./home-modules/shell/zoxide.nix
./home-modules/ssh.nix
./home-modules/git.nix
./home-modules/mako.nix
./home-modules/theme/gtk.nix
./home-modules/theme/qt.nix
];
home.username = "nx2";
home.homeDirectory = "/home/nx2";
home.stateVersion = "23.11";
nixpkgs.config = {
allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) allowed.unfree-packages;
permittedInsecurePackages = allowed.inecure-packages;
};
home.packages = with pkgs; [
firefox chromium chatterino2
gimp inkscape
kitty
zathura
element-desktop
zoom-us
discord
signal-desktop
obsidian
spotify spicetify-cli
obs-studio bitwarden
waybar swww rofi wlogout
imv mpv mediainfo exiftool ffmpeg
pavucontrol fontpreview gtk2fontsel
lynx bat du-dust eza neofetch tldr fzf figlet delta ripgrep lolcat jq glow
brightnessctl wev
element sssnake pipes
nodejs
speedtest-go
(pkgs.python3.withPackages (python-pkgs: [
python-pkgs.ipython
python-pkgs.pipdeptree
python-pkgs.requests
]))
(writeShellScriptBin "nxrbs-nix" ''
set -e
pushd ~/.nix-dots/
git diff
'')
# only works on spec arch, chage url for others
(stdenv.mkDerivation {
name = "easycommit";
src = pkgs.fetchurl {
url = "https://github.com/blackironj/easycommit/releases/download/v0.0.1/easycommit-v0.0.1-linux-amd64.tar.gz";
sha256 = "sha256-Ip5wfVe/RzCxGGh1YFBllAn84nD7mUXbnMko+ue/C2E=";
};
phases = ["installPhase"];
installPhase = ''
mkdir -p $out/bin
tar xf $src -C $out/
ls -la $out
mv $out/easycommit $out/bin/
chmod +x $out/bin/easycommit
'';
})
];
home.file = {
};
# Home Manager can also manage your environment variables through
# 'home.sessionVariables'. If you don't want to manage your shell through Home
# Manager then you have to manually source 'hm-session-vars.sh' located at
# either
#
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# /etc/profiles/per-user/nx2/etc/profile.d/hm-session-vars.sh
#
xdg = {
enable = true;
configHome = /home/${user}/.config;
cacheHome = /home/${user}/.cache;
dataHome = /home/${user}/.local/share;
stateHome = /home/${user}/.local/state;
mimeApps = {
enable = true;
defaultApplications = {
"default-web-browser" = [ "firefox.desktop" ];
"text/html" = [ "firefox.desktop" ];
"x-scheme-handler/http" = [ "firefox.desktop" ];
"x-scheme-handler/https" = [ "firefox.desktop" ];
"x-scheme-handler/about" = [ "firefox.desktop" ];
"x-scheme-handler/unknown" = [ "firefox.desktop" ];
"image/png" = "imv.desktop";
"image/gif" = "imv.desktop";
};
};
};
# Wayland, X, etc. support for session vars
# systemd.user.sessionVariables = home.sessionVariables;
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}