dots/config/default.nix

279 lines
7.0 KiB
Nix
Raw Normal View History

{ self, pkgs, config, inputs, lib, ... }:
let
dotsDir = "${self}/dots";
softLinkDots = dir:
2024-02-02 11:58:59 -06:00
(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";
2024-02-02 11:58:59 -06:00
in {
2023-11-30 00:49:32 -06:00
programs.home-manager.enable = true;
home = {
2024-02-02 11:58:59 -06:00
packages = with pkgs;
[
bob-nvim
emacs-pgtk
sqlite
luajit
imagemagick
dotnet-sdk_8
shellcheck
openjdk
nodejs
poetry
ruby
yamllint
curl
openssh
openssl
wget
rsync
readline
git
gh
ffmpeg
silicon
man
jq
tectonic
fzf
delta
eza
nixd
luajit
ripgrep
fd
nixfmt
gtk2
lxappearance
webcord
gtk-engine-murrine
opensnitch-ui
twitter-color-emoji
open-sans
noto-fonts
fira-code
nerdfonts
direnv
swappy
stylua
typstfmt
typst
hurl
2024-02-04 22:26:55 -06:00
easyeffects
egl-wayland
2024-02-13 12:13:48 -06:00
] ++ [
go
(lib.hiPrio gotools)
] ++ [
age
age-plugin-yubikey
passage
2024-02-04 22:26:55 -06:00
] ++ [
libsForQt5.qtstyleplugins
libsForQt5.qtcurve
qt6Packages.qt6gtk2
gtk-engine-murrine
gnome.gnome-themes-extra
gtk_engines
2024-02-02 11:58:59 -06:00
] ++ [ ansible ansible-lint ] ++ [
# gnumake
# cmake
# gcc
# glibc
# openssl.dev
# glibc.static
# llvm
# llvmPackages.libcxxStdenv
];
2024-02-02 11:58:59 -06:00
file = {
".local/share/wallpapers" = {
source = ../dots/.local/share/wallpapers;
2024-02-02 11:58:59 -06:00
force = true;
};
".omnisharp" = {
source = ../dots/.omnisharp;
force = true;
};
".latexmkrc" = {
source = ../dots/.latexmkrc;
force = true;
};
} // softLinkDots ".config";
2023-11-30 00:49:32 -06:00
};
xdg = {
enable = true;
mime.enable = true;
mimeApps = {
enable = true;
associations.added = {
"x-scheme-handler/http" = [ "firefoxdeveloperedition.desktop" ];
"x-scheme-handler/https" = [ "firefoxdeveloperedition.desktop" ];
"x-scheme-handler/chrome" = [ "firefoxdeveloperedition.desktop" ];
"text/html" = [ "firefoxdeveloperedition.desktop" ];
"application/x-extension-htm" = [ "firefoxdeveloperedition.desktop" ];
"application/x-extension-html" = [ "firefoxdeveloperedition.desktop" ];
"application/x-extension-shtml" = [ "firefoxdeveloperedition.desktop" ];
"application/xhtml+xml" = [ "firefoxdeveloperedition.desktop" ];
"application/x-extension-xhtml" = [ "firefoxdeveloperedition.desktop" ];
"application/x-extension-xht" = [ "firefoxdeveloperedition.desktop" ];
};
defaultApplications = {
"application/pdf" = [ "org.pwmt.zathura.desktop" ];
"x-scheme-handler/http" = [ "firefoxdeveloperedition.desktop" ];
"x-scheme-handler/https" = [ "firefoxdeveloperedition.desktop" ];
"x-scheme-handler/chrome" = [ "firefoxdeveloperedition.desktop" ];
"text/html" = [ "firefoxdeveloperedition.desktop" ];
"application/x-extension-htm" = [ "firefoxdeveloperedition.desktop" ];
"application/x-extension-html" = [ "firefoxdeveloperedition.desktop" ];
"application/x-extension-shtml" = [ "firefoxdeveloperedition.desktop" ];
"application/xhtml+xml" = [ "firefoxdeveloperedition.desktop" ];
"application/x-extension-xhtml" = [ "firefoxdeveloperedition.desktop" ];
"application/x-extension-xht" = [ "firefoxdeveloperedition.desktop" ];
};
};
systemDirs.data = [
"${config.home.homeDirectory}/.nix-profile/share"
"/usr/share"
"/usr/local/share"
];
};
programs = {
gpg = {
enable = true;
scdaemonSettings = {
pcsc-driver = "/usr/lib/libpcsclite.so";
disable-ccid = true;
};
};
firefox = {
enable = true;
package = pkgs.firefox-devedition;
};
waybar = {
enable = true;
systemd.enable = true;
};
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 ];
};
};
2024-02-04 22:26:55 -06:00
qt = {
enable = true;
platformTheme = "gtk";
};
2024-02-02 11:58:59 -06: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";
};
2024-02-02 11:58:59 -06:00
in {
enable = true;
theme = {
name = "Kanagawa-BL";
2024-02-02 11:58:59 -06:00
package = pkgs.kanagawa-gtk-theme;
};
iconTheme = {
name = "Kanagawa";
package = pkgs.kanagawa-gtk-icon-theme;
2024-02-02 11:58:59 -06:00
};
font = {
name = "Open Sans";
size = 11;
package = pkgs.open-sans;
};
2024-02-02 11:58:59 -06:00
gtk3.extraConfig = extraGtkConfig;
gtk4.extraConfig = extraGtkConfig;
};
2024-02-04 22:26:55 -06:00
services = {
cliphist.enable = true;
easyeffects.enable = true;
opensnitch-ui.enable = true;
gpg-agent = {
enable = true;
enableSshSupport = true;
enableZshIntegration = true;
maxCacheTtl = 14400;
maxCacheTtlSsh = 14400;
sshKeys = [
"530D3EC95C32AB9EC33714AAF865738D6E77680A"
];
extraConfig = ''
pinentry-program /usr/bin/pinentry-gtk-2
allow-loopback-pinentry
'';
};
2024-02-04 22:26:55 -06:00
};
2024-02-02 11:58:59 -06:00
systemd.user = {
targets.compositor = {
Unit = {
Description = "Unit for DE to launch";
ConditionEnvironment = [ "WAYLAND_DISPLAY" "DISPLAY" ];
};
};
services = {
waybar = {
Service.Environment = [ "GTK_THEME='THIS THEME DOES NOT EXIST!'" ];
Service.ExecStartPre = "env";
Install.WantedBy = [ "compositor.target" ];
Unit = {
PartOf = [ "compositor.target" ];
After = [ "compositor.target" ];
};
};
opensnitch-ui = {
Install.WantedBy = [ "compositor.target" ];
Unit = {
PartOf = [ "compositor.target" ];
After = [ "compositor.target" "waybar.service" ];
};
};
easyeffects = {
Install.WantedBy = [ "compositor.target" ];
Unit = {
PartOf = [ "compositor.target" ];
After = [ "compositor.target" ];
};
};
cliphist = {
Install.WantedBy = [ "compositor.target" ];
Unit = {
PartOf = [ "compositor.target" ];
After = [ "compositor.target" ];
};
};
};
};
2023-11-30 00:49:32 -06:00
}