nix/home/aselimov/home.nix

147 lines
2.8 KiB
Nix

{config, pkgs, ... }:
let
xremap-niri = pkgs.rustPlatform.buildRustPackage rec {
pname = "xremap";
version = "0.15.11";
src = pkgs.fetchFromGitHub {
owner = "xremap";
repo = "xremap";
rev = "v${version}";
hash = "sha256-N5JItxzg0nU9hsW+fOEJ9FHiq6L0rt8jXvieefuHc5k=";
};
cargoHash = "sha256-45YN1ZjM485phmvMNOna/hXE+EorZcz3xLpTVZIWZn8=";
buildFeatures = [ "niri" ];
};
in
{
imports = [
../shell/shell.nix
../neovim/neovim.nix
./firefox/firefox.nix
./theme/theme.nix
./fuzzel.nix
./mako.nix
];
home.username = "aselimov";
home.homeDirectory = "/home/aselimov";
home.stateVersion = "26.05";
programs.home-manager.enable = true;
programs.ghostty.enable = true;
programs.mpv = {
enable = true;
config = {
save-position-on-quit = true;
cache = true;
demuxer-max-bytes = "500MiB";
demuxer-max-back-bytes = "200MiB";
demuxer-readahead-secs = 300;
hr-seek = false;
ytdl-format="bestvideo[vcodec^=avc1]+bestaudio/best";
gpu-context = "wayland";
};
};
home.packages = with pkgs; [
ripgrep
waybar
mako
wl-clipboard
pavucontrol
xremap-niri
zip
unzip
glib
jujutsu
gnupg
codex
awww
imv
yt-dlp
pass
dino
wtype
libnotify
];
home.pointerCursor = {
enable = true;
package = pkgs.phinger-cursors;
name = "phinger-cursors-dark";
size = 16;
gtk.enable = true;
};
gtk = {
enable = true;
theme = {
name = "Adwaita";
package = pkgs.gnome-themes-extra;
};
};
dconf.enable = true;
xdg.configFile."niri/config.kdl".source = ./niri/config.kdl;
xdg.configFile."ghostty" = {
source = ./ghostty;
recursive = true;
};
xdg.configFile."waybar" = {
source = ./waybar;
recursive = true;
};
xdg.configFile."xremap/config.yml".source = ./xremap.yml;
home.sessionPath = [
"$HOME/bin"
];
systemd.user.services.xremap = {
Unit = {
Description = "xremap";
};
Service = {
ExecStart =
"${xremap-niri}/bin/xremap --watch --ignore 'AT Translated Set 2 keyboard' %h/.config/xremap/config.yml";
Restart = "on-failure";
RestartSec = 1;
};
};
services.gpg-agent = {
enable = true;
pinentry.package = pkgs.pinentry-gnome3;
defaultCacheTtl = 86400;
maxCacheTtl = 86400;
};
home.file."bin/passmenu" = {
executable= true;
text = ''
#!/bin/sh
prefix="$HOME/.password-store"
password_file="$(
find "$prefix" -type f -name '*.gpg' |
sed "s|^$prefix/||; s|\.gpg$||" |
fuzzel --dmenu
)"
[ -n "$password_file" ] || exit
pass show "$password_file" | head -n1 | wtype -
'';
};
home.file."bin/volume.sh".source = ./scripts/volume.sh;
}