dots/config/default.nix

184 lines
4.0 KiB
Nix
Raw Normal View History

{ pkgs, config, bob, ... }:
let
dotsDir = "${config.home.homeDirectory}/.dot_files/dots";
softLinkDots = dir:
(builtins.listToAttrs (map
(n: {
name = "${dir + "/" + n}";
value = {
source = config.lib.file.mkOutOfStoreSymlink "${dotsDir}/${dir}/${n}";
force = true;
};
})
# HACK: We don't use the absolute path in readDir to respect pure evaluation in nix flakes.
(builtins.attrNames (builtins.readDir ../dots/${dir}))));
gtkStyle = "gtk2";
in
{
2023-11-30 00:49:32 -06:00
programs.home-manager.enable = true;
home = {
packages = with pkgs; [
bob.packages.${pkgs.system}.default
2023-11-30 00:49:32 -06:00
sqlite
luajit
imagemagick
dotnet-sdk_8
cargo
rustc
shellcheck
openjdk
go
nodejs
poetry
python3
ruby
yamllint
curl
llvm
llvmPackages.libcxxStdenv
2023-11-30 00:49:32 -06:00
openssh
openssl
wget
rsync
readline
gnumake
cmake
git
gh
ffmpeg
silicon
man
jq
tectonic
fzf
2024-01-01 05:42:37 -06:00
delta
2023-11-30 00:49:32 -06:00
eza
nixd
2023-11-30 00:49:32 -06:00
luajit
ripgrep
fd
nixfmt
gtk2
lxappearance
webcord
gtk-engine-murrine
opensnitch-ui
twitter-color-emoji
open-sans
noto-fonts
fira-code
nerdfonts
direnv
passage
2023-12-19 10:57:38 -06:00
swappy
openssl
glibc
openssl.dev
glibc.static
2023-11-30 00:49:32 -06:00
];
file =
{
".local/" = {
source = ../dots/.local;
recursive = true;
force = true;
};
".omnisharp" = {
source = ../dots/.omnisharp;
force = true;
};
".latexmkrc" = {
source = ../dots/.latexmkrc;
force = true;
};
} // softLinkDots ".config";
sessionVariables = {
GTK_THEME = "Kanagawa-Borderless";
QT_QPA_PLATFORMTHEME = "${gtkStyle}";
LD_LIBRARY_PATH = "${config.home.homeDirectory}/.nix-profile/lib";
PKG_CONFIG_PATH = "${config.home.homeDirectory}/.nix-profile/lib/pkgconfig";
};
2023-11-30 00:49:32 -06:00
};
programs = {
zsh = {
enable = true;
initExtra = ''
source "$HOME/.config/zsh/zsh"
__HM_SESS_VARS_SOURCED= source "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
'';
};
neovim = {
enable = true;
extraPackages = with pkgs; [ sqlite gh ];
# Magick is required for image.nvim
extraLuaPackages = lp: [ lp.magick ];
};
};
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-Borderless";
package = pkgs.kanagawa-gtk-theme;
};
iconTheme = {
name = "Kanagawa";
package = pkgs.kanagawa-gtk-theme;
};
font = {
name = "Open Sans";
size = 11;
package = pkgs.open-sans;
};
gtk3.extraConfig = extraGtkConfig;
gtk4.extraConfig = extraGtkConfig;
};
systemd.user = {
targets.compositor = {
Unit = {
Description = "Compositor target for WM";
After = [ "graphical-session.target" ];
PartOf = [ "graphical-session.target" ];
};
};
services = {
opensnitch-ui = {
Unit = {
Description = "Opensnitch ui";
PartOf = [ "compositor.target" ];
After = [ "compositor.target" ];
ConditionEnvironment = [ "WAYLAND_DISPLAY" ];
};
Service = {
ExecStart = "${pkgs.opensnitch-ui}/bin/opensnitch-ui";
};
environment = {
QT_QPA_PLATFORMTHEME = "${gtkStyle}";
PATH = "${config.home.profileDirectory}/bin";
};
Install = { WantedBy = [ "compositor.target" ]; };
};
};
};
2023-11-30 00:49:32 -06:00
}