143 lines
3.9 KiB
Nix
143 lines
3.9 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
{
|
|
# Let Home Manager install and manage itself.
|
|
programs.home-manager.enable = true;
|
|
|
|
# Home Manager needs a bit of information about you and the
|
|
# paths it should manage.
|
|
home.username = "moritz";
|
|
home.homeDirectory = "/home/moritz";
|
|
|
|
programs.git = {
|
|
enable = true;
|
|
userName = "MoritzBoehme";
|
|
userEmail = "mr.x@moritzboeh.me";
|
|
};
|
|
|
|
# Zathura
|
|
programs.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
|
|
programs.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
|
|
programs.kitty = {
|
|
enable = true;
|
|
settings = {
|
|
scrollback_lines = 10000;
|
|
enable_audio_bell = false;
|
|
cursor_shape = "underline";
|
|
};
|
|
extraConfig = builtins.readFile .config/kitty/dracula.conf;
|
|
font = {
|
|
name = "FiraCode Nerd Font";
|
|
size = 10;
|
|
};
|
|
};
|
|
|
|
programs.exa.enable = true;
|
|
programs.bat.enable = true;
|
|
|
|
programs.starship = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
};
|
|
|
|
services.polybar = {
|
|
enable = true;
|
|
script = ''
|
|
# Terminate already running bar instances
|
|
killall -q polybar
|
|
|
|
# Wait until the processes have been shut down
|
|
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
|
while ! pgrep -x bspwm >/dev/null; do sleep 1; done
|
|
|
|
# Launch Polybar
|
|
for m in $(polybar --list-monitors | cut -d":" -f1); do
|
|
MONITOR=$m polybar --reload bottom &
|
|
done
|
|
'';
|
|
config = {
|
|
"bar/bottom" = {
|
|
monitor = "\${env:MONITOR}";
|
|
bottom = true;
|
|
fixed-center = true;
|
|
width = "100%";
|
|
height = 25;
|
|
background = "\${color.background-alt}";
|
|
foreground = "\${color.foreground}";
|
|
line-size = 3;
|
|
border-size = 0;
|
|
padding-left = 1;
|
|
padding-right = 1;
|
|
module-margin-left = 3;
|
|
module-margin-right = 3;
|
|
font-0 = "NotoSans Nerd Font:size=11;0";
|
|
modules-left = "cpu memory wlan eth battery";
|
|
modules-center = "bspwm";
|
|
modules-right = "pulseaudio date powermenu";
|
|
tray-position = "right";
|
|
tray-background = "\${color.background-alt}";
|
|
tray-padding = 2;
|
|
wm-restack = "bspwm";
|
|
cursor-click = "pointer";
|
|
};
|
|
};
|
|
};
|
|
|
|
# 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";
|
|
}
|