dotfiles/modules/default.nix

174 lines
4.3 KiB
Nix
Raw Normal View History

2021-09-08 19:43:08 +02:00
{ config, pkgs, ... }:
{
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
# paths it should manage.
home.username = "moritz";
home.homeDirectory = "/home/moritz";
programs = {
git = {
enable = true;
userName = "MoritzBoehme";
userEmail = "mr.x@moritzboeh.me";
};
zathura = {
enable = true;
options = {
recolor = true;
completion-bg = "#282a36";
completion-fg = "#ff79c6";
default-bg = "#44475a";
default-fg = "#bd93f9";
inputbar-bg = "#282a36";
inputbar-fg = "#8be9fd";
statusbar-bg = "#282a36";
statusbar-fg = "#bd93f9";
font = "Jetbrains Mono 9";
recolor-lightcolor = "#282a36";
recolor-darkcolor = "#f8f8f2";
};
};
zsh = {
enable = true;
shellGlobalAliases = {
ls = "exa -lh";
cat = "bat";
};
plugins = [
{
name = "zsh-autosuggestions";
src = pkgs.fetchFromGitHub {
owner = "zsh-users";
repo = "zsh-autosuggestions";
rev = "v0.4.0";
sha256 = "0z6i9wjjklb4lvr7zjhbphibsyx51psv50gm07mbb0kj9058j6kc";
};
}
{
name = "zsh-syntax-highlighting";
src = pkgs.fetchFromGitHub {
owner = "zsh-users";
repo = "zsh-syntax-highlighting";
rev = "0e1bb14452e3fc66dcc81531212e1061e02c1a61";
sha256 = "09ncmyqlk9a3h470z0wgbkrznb5zyc9dj96011wm89rdxc1irxk2";
};
}
];
};
kitty = {
enable = true;
settings = {
scrollback_lines = 10000;
enable_audio_bell = false;
cursor_shape = "underline";
};
extraConfig = builtins.readFile ~/.dotfiles/config/kitty/dracula.conf;
font = {
name = "FiraCode Nerd Font";
size = 10;
};
};
exa.enable = true;
bat.enable = true;
starship = {
enable = true;
enableZshIntegration = true;
};
rofi = {
enable = true;
theme = ~/.dotfiles/config/rofi/dracula_old.rasi;
};
emacs.enable = true;
};
xdg = {
enable = true;
configFile = {
"sxhkd/sxhkdrc" = {
source = ~/.dotfiles/config/sxhkd/sxhkdrc;
onChange = "pkill -USR1 -x sxhkd";
};
"bspwm/bspwmrc" = {
source = ~/.dotfiles/config/bspwm/bspwmrc;
onChange = "bspc wm -r";
};
"doom" = {
source = ~/.dotfiles/config/doom;
recursive = true;
onChange = builtins.readFile ~/.dotfiles/config/doom/reload.sh;
};
"dunst/dunstrc" = {
source = ~/.dotfiles/config/dunst/dunstrc;
};
};
};
services = {
polybar = {
enable = true;
script = ''for m in $(polybar --list-monitors | ${pkgs.coreutils}/bin/cut -d":" -f1); do
MONITOR=$m polybar --reload bottom &
done
'';
config = ~/.dotfiles/config/polybar/config.ini;
extraConfig = builtins.readFile ~/.dotfiles/config/polybar/modules.ini +
builtins.readFile ~/.dotfiles/config/polybar/colors.ini;
};
picom = {
enable = true;
inactiveOpacity = "0.95";
opacityRule = [
"100:fullscreen"
"80 :class_g = 'Polybar'"
];
blur = true;
inactiveDim = "0.1";
};
emacs = {
enable = true;
package = pkgs.emacsUnstable;
};
dunst.enable = true;
kdeconnect.enable = true;
};
home.packages = with pkgs; [
neofetch
feh
keepassxc
];
nixpkgs.overlays = [
(import (builtins.fetchTarball {
url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz;
}))
];
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "21.05";
}