dots/users/price/home.nix

483 lines
12 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
[
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
2024-06-02 12:35:31 -05:00
zathura
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
cargo
2024-07-10 03:20:06 -05:00
clippy
2024-05-03 14:35:00 -05:00
rustc
rustfmt
python3
shfmt
2024-02-02 11:58:59 -06:00
bob-nvim
2024-05-03 14:35:00 -05:00
neovide
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
clang-tools
ninja
ccache
2024-05-03 14:35:00 -05:00
llvm
llvmPackages.libcxxStdenv
pkg-config
openssl.dev
curl.dev
2024-05-04 15:42:09 -05:00
]
++ [ rust-analyzer ];
file = softLinkDots ".config";
2024-02-29 02:07:22 -06:00
sessionVariables = {
_ZL_DATA = "${config.xdg.cacheHome}/zlua";
RUSTUP_HOME = "${config.xdg.dataHome}/rustup";
CARGO_HOME = "${config.xdg.dataHome}/cargo";
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.xdg.dataHome}/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;
associations.added = {
"x-scheme-handler/http" = [ "firefox-devedition.desktop" ];
"x-scheme-handler/https" = [ "firefox-devedition.desktop" ];
"x-scheme-handler/chrome" = [ "firefox-devedition.desktop" ];
"text/html" = [ "firefox-devedition.desktop" ];
"application/x-extension-htm" = [ "firefox-devedition.desktop" ];
"application/x-extension-html" = [ "firefox-devedition.desktop" ];
"application/x-extension-shtml" = [ "firefox-devedition.desktop" ];
"application/xhtml+xml" = [ "firefox-devedition.desktop" ];
"application/x-extension-xhtml" = [ "firefox-devedition.desktop" ];
"application/x-extension-xht" = [ "firefox-devedition.desktop" ];
};
defaultApplications = {
"application/pdf" = [ "org.pwmt.zathura.desktop" ];
"x-scheme-handler/http" = [ "firefox-devedition.desktop" ];
"x-scheme-handler/https" = [ "firefox-devedition.desktop" ];
"x-scheme-handler/chrome" = [ "firefox-devedition.desktop" ];
"text/html" = [ "firefox-devedition.desktop" ];
"application/x-extension-htm" = [ "firefox-devedition.desktop" ];
"application/x-extension-html" = [ "firefox-devedition.desktop" ];
"application/x-extension-shtml" = [ "firefox-devedition.desktop" ];
"application/xhtml+xml" = [ "firefox-devedition.desktop" ];
"application/x-extension-xhtml" = [ "firefox-devedition.desktop" ];
"application/x-extension-xht" = [ "firefox-devedition.desktop" ];
};
};
configFile = {
2024-05-03 14:35:00 -05:00
"hypr/hyprland.conf".enable = false;
};
};
programs = {
2024-02-29 02:07:22 -06:00
wofi.enable = true;
firefox = {
enable = true;
package = pkgs.firefox-devedition;
};
waybar = {
enable = true;
systemd.enable = true;
};
git = {
enable = true;
userName = "Price Hiller";
userEmail = "price@orion-technologies.io";
2024-04-19 22:27:46 -05:00
aliases = {
unstage = "reset HEAD --";
};
extraConfig = {
init.defaultBranch = "main";
merge.conflictstyle = "zdiff3";
branch.autosetupmerge = "always";
remote.pushDefault = "origin";
am.threeWay = true;
apply.ignoreWhitespace = "change";
# SEC: Integrate https://github.com/git-ecosystem/git-credential-manager with GPG to improve
# security stance around the credential store
credential.helper = "store";
pull.rebase = true;
commit.gpgsign = true;
transfer.fsckObjects = true;
receive.fsckObjects = true;
status.submoduleSummary = true;
submodule.recurse = true;
fetch = {
fsckObjects = true;
prune = true;
prunetags = true;
};
rebase = {
autosquash = true;
autostash = true;
updateRefs = true;
};
log = {
abbrevCommit = true;
decorate = "short";
date = "iso";
};
rerere = {
enabled = true;
autoUpdate = true;
};
core = {
ignorecase = false;
quotePath = false;
};
diff = {
colorMoved = "default";
submodule = "log";
tool = "nvimdiff";
};
push = {
autoSetupRemote = true;
default = "current";
};
};
signing = {
signByDefault = true;
key = null;
};
delta = {
enable = true;
options = {
navigate = true;
features = "interactive decorations";
2024-04-19 22:27:46 -05:00
interactive = {
keep-plus-minus-markers = false;
};
decorations = {
commit-decoration-style = "bold box ul";
dark = true;
file-style = "omit";
hunk-header-decoration-style = ''"#022b45" box ul'';
hunk-header-file-style = ''"#999999"'';
hunk-header-style = "file line-number syntax";
line-numbers = true;
line-numbers-left-style = ''"#022b45"'';
minus-emph-style = ''normal "#80002a"'';
minus-style = ''normal "#330011"'';
plus-emph-style = ''syntax "#003300"'';
plus-style = ''syntax "#001a00"'';
syntax-theme = "Solarized (dark)";
};
};
};
};
};
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" ];
};
};
2024-05-27 12:15:30 -05:00
polkit-gnome-authentication-agent-1 = {
Unit = {
Description = "Gnome Polkit authentication agent";
Documentation = "https://gitlab.freedesktop.org/polkit/polkit/";
After = [ "graphical-session-pre.target" ];
PartOf = [ "graphical-session.target" ];
};
Service = {
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "always";
};
Install.WantedBy = [ "graphical-session.target" ];
};
};
};
2023-11-30 00:49:32 -06:00
}