dots/users/price/home.nix

372 lines
8.0 KiB
Nix
Raw Normal View History

2024-04-19 22:27:46 -05:00
{
pkgs,
config,
lib,
clib,
2024-04-19 22:27:46 -05:00
...
}:
let
2024-05-03 14:35:00 -05:00
dotsDir = "${config.home.homeDirectory}/.config/home-manager/users/price/dots";
2024-04-19 22:27:46 -05:00
softLinkDots =
dir:
(builtins.listToAttrs (
2024-05-03 14:35:00 -05:00
map (n: {
name = "${dir + "/" + n}";
value = {
source = config.lib.file.mkOutOfStoreSymlink "${dotsDir}/${dir}/${n}";
force = true;
};
}) (builtins.attrNames (builtins.readDir ./dots/${dir}))
2024-04-19 22:27:46 -05:00
));
in
{
imports = (clib.recurseFilesInDirs [ ./conf ] ".nix");
2023-11-30 00:49:32 -06:00
programs.home-manager.enable = true;
2024-05-03 14:35:00 -05:00
nixpkgs = {
config = {
allowUnfree = true;
};
2024-05-03 14:35:00 -05:00
};
2023-11-30 00:49:32 -06:00
home = {
2024-05-03 14:35:00 -05:00
language.base = "en_US.UTF-8";
2024-04-19 22:27:46 -05:00
packages =
with pkgs;
2024-02-02 11:58:59 -06:00
[
dig
nethogs
lsof
strace
ltrace
iotop
iftop
usbutils
nmap
zip
2024-09-21 14:57:44 -05:00
killall
2024-08-31 03:58:03 -05:00
nixd
2024-07-31 08:36:54 -05:00
inkscape
2024-07-31 08:36:17 -05:00
sqlx-cli
postgresql
2024-07-26 01:45:28 -05:00
htop
2024-07-24 22:16:34 -05:00
devenv
2024-06-22 06:22:05 -05:00
plantuml
2024-06-27 23:38:02 -05:00
libnotify
2024-06-22 06:22:05 -05:00
graphviz
2024-06-13 15:37:23 -05:00
gcolor3
typescript
deno
powershell
2024-06-11 23:49:25 -05:00
vesktop
2024-06-03 17:24:51 -05:00
kooha
libreoffice-fresh
nix-prefetch-scripts
2024-05-03 14:35:00 -05:00
mako
wl-clipboard
grim
2024-05-27 13:12:53 -05:00
slurp
2024-05-03 14:35:00 -05:00
unzip
Fmt
screen-cap
nodePackages.prettier
2024-05-03 14:35:00 -05:00
python3
shfmt
2024-05-03 14:35:00 -05:00
wezterm
kitty
2024-02-02 11:58:59 -06:00
sqlite
swaylock-effects
2024-02-02 11:58:59 -06:00
luajit
2024-06-26 09:39:33 -05:00
luarocks
2024-02-02 11:58:59 -06:00
imagemagick
shellcheck
nodejs
poetry
ruby
yamllint
curl
openssh
2024-06-03 15:03:17 -05:00
gradle
2024-05-24 13:44:57 -05:00
maven
pavucontrol
2024-02-02 11:58:59 -06:00
openssl
wget
rsync
readline
gh
ffmpeg
man
jq
tectonic
fzf
delta
eza
ripgrep
fd
playerctl
nixfmt-rfc-style
2024-02-02 11:58:59 -06:00
lxappearance
direnv
swappy
stylua
typstyle
2024-02-02 11:58:59 -06:00
typst
hurl
mullvad-vpn
2024-02-04 22:26:55 -06:00
easyeffects
egl-wayland
2024-02-17 17:04:19 -06:00
helvum
brightnessctl
keyd
2024-04-19 04:51:08 -05:00
tidal-hifi
2024-04-19 22:23:47 -05:00
nix-output-monitor
2024-05-03 14:35:00 -05:00
sops
chromium
2024-05-03 14:35:00 -05:00
tree-sitter
qt6Packages.qt6gtk2
qt6Packages.qt6ct
libsForQt5.qt5ct
strawberry
2024-04-19 22:27:46 -05:00
]
++ [
age
age-plugin-yubikey
passage
]
++ [
ansible
ansible-lint
]
++ [
2024-05-03 14:35:00 -05:00
gnumake
cmake
clang-tools
clang
nasm
asm-lsp
2024-10-27 18:11:47 -05:00
asmfmt
ninja
ccache
2024-05-03 14:35:00 -05:00
llvm
pkg-config
2024-10-28 16:12:41 -05:00
];
file = softLinkDots ".config";
2024-02-29 02:07:22 -06:00
sessionVariables = {
_ZL_DATA = "${config.xdg.cacheHome}/zlua";
OMNISHARPHOME = "${config.xdg.configHome}/omnisharp";
NPM_CONFIG_USERCONFIG = "${config.xdg.configHome}/npm/npmrc";
TERMINFO_DIRS = "${config.home.profileDirectory}/share/terminfo";
WSLENV = "TERMINFO_DIRS";
LD_LIBRARY_PATH = lib.strings.makeLibraryPath [
"${config.home.profileDirectory}"
"${pkgs.sqlite.out}"
];
PKG_CONFIG_PATH = "${config.home.profileDirectory}/lib/pkgconfig";
2024-05-03 14:35:00 -05:00
GTK_PATH = "${pkgs.gtk-engine-murrine}/lib/gtk-2.0";
ANDROID_USER_HOME = "${config.xdg.dataHome}/android";
ANSIBLE_HOME = "${config.xdg.dataHome}/ansible";
CUDA_CACHE_PATH = "${config.xdg.cacheHome}/nv";
DOCKER_CONFIG = "${config.xdg.configHome}/docker";
GRADLE_USER_HOME = "${config.xdg.dataHome}/gradle";
_JAVA_OPTIONS = "-Djava.util.prefs.userRoot='${config.xdg.configHome}/java'";
};
sessionPath = [
"${config.home.homeDirectory}/.local/bin"
];
2023-11-30 00:49:32 -06:00
};
xdg = {
enable = true;
mime.enable = true;
systemDirs.data = [ "${config.home.profileDirectory}/share/" ];
cacheHome = "${config.home.homeDirectory}/.local/cache";
mimeApps.enable = true;
configFile = {
2024-05-03 14:35:00 -05:00
"hypr/hyprland.conf".enable = false;
};
};
programs = {
2024-09-21 14:51:37 -05:00
nix-index.enable = true;
2024-02-29 02:07:22 -06:00
wofi.enable = true;
waybar = {
enable = true;
systemd.enable = true;
};
};
2024-02-04 22:26:55 -06:00
qt = {
enable = true;
2024-05-03 14:35:00 -05:00
style = {
name = "gtk2";
package = pkgs.libsForQt5.breeze-qt5;
};
platformTheme.name = "gtk";
2024-02-04 22:26:55 -06:00
};
home.pointerCursor = {
name = "Adwaita";
package = pkgs.adwaita-icon-theme;
size = 24;
};
2024-04-19 22:27:46 -05:00
gtk =
let
extraGtkConfig = {
gtk-application-prefer-dark-theme = true;
gtk-cursor-theme-size = 0;
gtk-enable-event-sounds = 1;
gtk-enable-input-feedback-sounds = 1;
gtk-xft-antialias = 1;
gtk-xft-hinting = 1;
gtk-xft-hintstyle = "hintfull";
};
in
{
enable = true;
theme = {
name = "Kanagawa-BL";
package = pkgs.kanagawa-gtk-theme;
};
iconTheme = {
name = "Kanagawa";
2024-05-03 14:35:00 -05:00
package = pkgs.kanagawa-icon-theme;
2024-04-19 22:27:46 -05:00
};
gtk3.extraConfig = extraGtkConfig;
gtk4.extraConfig = extraGtkConfig;
};
2024-02-04 22:26:55 -06:00
services = {
blueman-applet.enable = true;
2024-03-16 00:33:11 -05:00
gromit-mpx = {
enable = true;
tools = [
{
device = "default";
type = "pen";
size = 5;
color = "red";
}
{
device = "default";
type = "pen";
size = 5;
color = "blue";
modifiers = [ "SHIFT" ];
}
{
device = "default";
type = "pen";
size = 5;
color = "yellow";
modifiers = [ "CONTROL" ];
}
{
device = "default";
type = "pen";
size = 6;
color = "green";
arrowSize = 1;
modifiers = [ "2" ];
}
{
device = "default";
type = "eraser";
size = 75;
modifiers = [ "3" ];
}
{
device = "default";
color = "red";
arrowSize = 5;
2024-04-19 22:27:46 -05:00
modifiers = [
"CONTROL"
"SHIFT"
];
2024-03-16 00:33:11 -05:00
}
{
device = "default";
color = "blue";
arrowSize = 5;
2024-04-19 22:27:46 -05:00
modifiers = [
"CONTROL"
"SHIFT"
"2"
];
2024-03-16 00:33:11 -05:00
}
{
device = "default";
color = "yellow";
arrowSize = 5;
2024-04-19 22:27:46 -05:00
modifiers = [
"CONTROL"
"SHIFT"
"3"
];
2024-03-16 00:33:11 -05:00
}
];
};
2024-02-04 22:26:55 -06:00
easyeffects.enable = true;
};
2024-02-02 11:58:59 -06:00
systemd.user = {
2024-05-03 14:35:00 -05:00
startServices = "sd-switch";
targets.compositor = {
Unit = {
Description = "Unit for DE to launch";
2024-04-19 22:27:46 -05:00
ConditionEnvironment = [
"WAYLAND_DISPLAY"
"DISPLAY"
];
};
};
services = {
keyd-application-mapper = {
Unit = {
Description = "Keyd - Linux Keyboard Remapper";
PartOf = [ "keyd.service" ];
};
Service = {
2024-05-29 01:05:01 -05:00
ExecStart = "${pkgs.keyd}/bin/keyd-application-mapper";
RestartSec = 3;
};
Install.WantedBy = [ "compositor.target" ];
};
waybar = {
Service = {
Environment = [ "GTK_THEME='THIS THEME DOES NOT EXIST!'" ];
RestartSec = 3;
};
Install.WantedBy = [ "compositor.target" ];
Unit = {
PartOf = [ "compositor.target" ];
After = [ "compositor.target" ];
};
};
2024-04-19 22:27:46 -05:00
gromit-mpx.Service.ExecStart = lib.mkForce "echo 'Disabled, managed by WM'";
easyeffects = {
Install.WantedBy = [ "compositor.target" ];
Unit = {
PartOf = [ "compositor.target" ];
After = [ "compositor.target" ];
};
};
polkit-hyprpolkitagent = {
2024-05-27 12:15:30 -05:00
Unit = {
Description = "Hyprland Polkit authentication agent";
Documentation = "https://wiki.hyprland.org/Hypr-Ecosystem/hyprpolkitagent/";
After = [ "graphical-session.target" ];
2024-05-27 12:15:30 -05:00
};
Service = {
ExecStart = "${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent";
2024-05-27 12:15:30 -05:00
Restart = "always";
RestartSec = 2;
TimeoutStopSec = 10;
2024-05-27 12:15:30 -05:00
};
Install.WantedBy = [ "graphical-session.target" ];
};
};
};
2023-11-30 00:49:32 -06:00
}