nixconfig/home.nix

496 lines
11 KiB
Nix

args@{ config, pkgs, hyprland, split-monitor-workspaces, flatpaks, ... }:
{
home.username = "zilti";
home.homeDirectory = "/home/zilti";
home.packages = with pkgs; [
pwvucontrol
sysstat
lm_sensors
pciutils
usbutils
coreutils-full
unzip
(nerdfonts.override { fonts = [ "VictorMono" "MPlus" ]; })
lagrange
stow
nixfmt
pinentry-qt
libsForQt5.ksshaskpass
swappy
grim
slurp
hyprpaper
gamescope
git-cola
fossil
nil
gcc
libgccjit
chicken
clojure
clojure-lsp
clj-kondo
babashka
podman-compose
sqlite
nodejs_20
sqlite
tofi
pinentry-qt
wlr-randr
nwg-displays
libsForQt5.okular
libsForQt5.dolphin
kteatime
discord
bitwarden
freetube
space-cadet-pinball
qtpass
ungoogled-chromium
slack
signal-desktop
telegram-desktop
zoom-us
git-filter-repo
git-doc
# For pharo
freetype
pixman
SDL2
libffi
libuuid
libsForQt5.ksshaskpass
perl538Packages.IOSocketSSL
perl538Packages.DigestHMAC
perl538Packages.TermReadKey
perl538Packages.MIMELite
perl538Packages.FileLibMagic
perl538Packages.IOSocketINET6
iconv
];
imports = [ ./hyprland/hyprland.nix ./waybar/settings.nix ./emacs/emacs.nix ];
home.stateVersion = "23.11";
programs.home-manager.enable = true;
home.sessionPath = [ "${config.home.homeDirectory}/.config/emacs/bin" ];
home.sessionVariables = {
PASSWORD_STORE_DIR =
"${config.home.homeDirectory}/.local/share/password-store";
SSH_ASKPASS = "${pkgs.libsForQt5.ksshaskpass}/bin/ksshaskpass";
};
home.pointerCursor = {
package = pkgs.catppuccin-cursors.lattePeach;
gtk.enable = true;
x11.enable = true;
name = "Catppuccin-Latte-Peach-Cursors";
size = 32;
};
accounts = {
calendar = {
basePath = "${config.home.homeDirectory}/calendars";
accounts = {
nextcloud = {
primary = true;
remote = {
type = "caldav";
url = "https://nextcloud.lyrion.ch/remote.php/dav/calendars/zilti";
userName = "dziltener@lyrion.ch";
passwordCommand = [ "pass" "Privat/Nextcloud" ];
};
vdirsyncer = {
enable = true;
auth = "guess";
itemTypes = "caldav";
};
khal = {
enable = true;
type = "discover";
};
};
};
};
contact = {
basePath = "${config.home.homeDirectory}/contacts";
accounts = {
nextcloud = {
remote = {
type = "carddav";
url =
"https://nextcloud.lyrion.ch/rempte.php/dav/addressbooks/users/zilti";
userName = "dziltener@lyrion.ch";
passwordCommand = [ "pass" "Privat/Nextcloud" ];
};
vdirsyncer = {
enable = false;
auth = "digest";
};
khal = { enable = true; };
khard = { enable = true; };
};
};
};
email = {
accounts = {
LMail = {
realName = "Daniel Ziltener";
userName = "dziltener";
passwordCommand = "pass Privat/Mailaccount | head -n 1";
primary = true;
address = "dziltener@lyrion.ch";
imap = {
host = "lyrion.ch";
tls = {
enable = true;
useStartTls = true;
};
};
smtp = {
host = "lyrion.ch";
tls = {
enable = true;
useStartTls = true;
};
};
thunderbird = { enable = true; };
aerc = { enable = true; };
};
RedSky = {
flavor = "gmail.com";
realName = "Daniel Ziltener";
userName = "dz@redsky.io";
passwordCommand = "pass Privat/RedSkyGMail";
address = "dz@redsky.io";
thunderbird = { enable = true; };
};
};
};
};
services.flatpak = {
enableModule = true;
remotes = {
"flathub" = "https://dl.flathub.org/repo/flathub.flatpakrepo";
"flathub-beta" =
"https://dl.flathub.org/beta-repo/flathub-beta.flatpakrepo";
};
packages = [
"flathub:app/com.github.tchx84.Flatseal//stable"
"flathub:app/com.usebottles.bottles//stable"
"flathub:app/com.valvesoftware.Steam//stable"
"flathub:app/info.beyondallreason.bar//stable"
];
};
fonts.fontconfig.enable = true;
services.plan9port = {
fontsrv.enable = true;
plumber.enable = true;
};
programs.kitty = {
enable = true;
environment = { };
settings = {
background_opacity = "0.85";
kitty_mod = "ctrl+shift";
enabled_layouts = "horizontal";
};
keybindings = { "kitty_mod+enter" = "new_window"; };
font = {
name = "VictorMono Nerd Font Mono";
size = 10;
};
theme = "Catppuccin-Frappe";
};
programs.bash = {
enable = true;
enableCompletion = true;
bashrcExtra = ''
eval "$(${pkgs.starship}/bin/starship init bash)"
'';
};
programs.tmux = {
enable = true;
mouse = true;
extraConfig = ''set-option -sa terminal-overrides ",xterm*:Tc"'';
};
# https://github.com/nix-community/nix-direnv
programs.direnv = {
enable = true;
enableBashIntegration = true;
nix-direnv.enable = true;
};
programs.starship = let flavour = "frappe";
in {
enable = true;
settings = {
aws.disabled = true;
gcloud.disabled = true;
format = "$all";
palette = "catppuccin_${flavour}";
} // builtins.fromTOML (builtins.readFile (pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "starship";
rev = "5629d2356f62a9f2f8efad3ff37476c19969bd4f";
sha256 = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0=";
} + /palettes/${flavour}.toml));
};
programs.hstr = { enable = true; };
programs.htop = { enable = true; };
programs.ripgrep = { enable = true; };
programs.gpg = { enable = true; };
# services.gpg-agent = {
# enable = true;
# pinentryFlavor = "qt";
# extraConfig = ''
# allow-emacs-pinentry
# allow-loopback-pinentry
# '';
# };
home.file.gpg-agent-conf = {
enable = true;
target = ".gnupg/gpg-agent.conf";
text = ''
grab
pinentry-program ${pkgs.pinentry-qt}/bin/pinentry-qt
allow-emacs-pinentry
allow-loopback-pinentry
'';
};
programs.rbw = {
enable = true;
settings = {
base_url = "vaultwarden.lyrion.ch";
email = "dziltener@lyrion.ch";
pinentry = "qt";
};
};
programs.git = {
enable = true;
userName = "Daniel Ziltener";
userEmail = "dziltener@lyrion.ch";
signing = {
key = "37F655BAF43BC0FF300A91A1B38976E82C9DAE42";
signByDefault = true;
};
diff-so-fancy = { enable = true; };
extraConfig = {
sendemail = {
smtpserver = "lyrion.ch";
smtpuser = "dziltener";
smtpencryption = "starttls";
smtpserverport = 465;
};
rebase.autoStash = true;
pull.rebase = true;
push.autoSetupRemote = true;
};
};
programs.git-cliff = {
enable = true;
# https://git-cliff.org/docs/configuration
settings = { };
};
programs.tealdeer = { enable = true; };
# https://github.com/ianthehenry/sd
programs.script-directory = {
enable = true;
settings = { SD_EDITOR = "vim"; };
};
programs.keychain = {
enable = true;
enableBashIntegration = true;
enableXsessionIntegration = true;
agents = [ "ssh" "gpg" ];
keys =
[ "id_rsa" "personal_ed" "37F655BAF43BC0FF300A91A1B38976E82C9DAE42" ];
};
programs.password-store = {
enable = true;
package = pkgs.pass.withExtensions (exts: [ exts.pass-otp ]);
};
programs.browserpass = { enable = true; };
services.pueue = { enable = true; };
services.network-manager-applet.enable = true;
services.batsignal = { enable = true; };
# services.fusuma = {
# enable = true;
# };
services.copyq = { enable = true; };
# programs.vdirsyncer = {
# enable = true;
# };
services.vdirsyncer = { enable = true; };
# programs.khal = {
# enable = true;
# };
# programs.khard = {
# enable = true;
# };
programs.aerc = {
enable = true;
extraConfig = { general = { unsafe-accounts-conf = true; }; };
};
services.kdeconnect = {
enable = true;
indicator = true;
};
programs.ssh = {
enable = true;
matchBlocks = {
"github.com" = {
user = "git";
hostname = "github.com";
identitiesOnly = true;
identityFile = "~/.ssh/personal_ed";
};
"gitea.lyrion.ch" = {
user = "git";
hostname = "gitea.lyrion.ch";
port = 7920;
identitiesOnly = true;
identityFile = "~/.ssh/personal_ed";
};
};
};
# services.ssh-agent.enable = true;
services.nextcloud-client = {
enable = true;
startInBackground = true;
};
programs.swaylock = {
enable = true;
package = "${pkgs.swaylock-effects}";
settings = {
screenshots = true;
clock = true;
indicator-idle-visible = true;
grace = 3;
fade-in = 3;
effect-blur = "7x5";
effect-vignette = "0.5:0.5";
};
};
services.swayidle = {
enable = true;
events = [ ];
timeouts = [{
timeout = 600;
command = "${pkgs.swaylock-effects}/bin/swaylock";
}];
};
services.mako = {
enable = true;
defaultTimeout = 5000;
};
services.gammastep = {
enable = true;
provider = "geoclue2";
temperature = {
day = 5500;
night = 2700;
};
};
# programs.waybar = {
# enable = true;
# systemd.enable = true;
# style = builtins.readFile ./waybar/style.css;
# settings = import ./waybar/settings.nix;
# };
programs.wlogout = { enable = true; };
programs.fuzzel = {
enable = true;
settings = {
main = {
terminal = "${pkgs.kitty}/bin/kitty";
width = 100;
fields = "filename,name,generic,exec";
filter-desktop = false;
layer = "overlay";
};
};
};
home.file.tofi-conf = {
enable = true;
target = ".config/tofi/config";
text = ''
drun-launch = true
font = Victor Mono Nerd Font
font-size = 12
text-cursor = true
terminal = kitty
width = 1200
height = 720
'' + (builtins.readFile (pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "tofi";
rev = "2e74ddba0c582b2ca2d9d06f67f5a902c3a093fb";
sha256 = "sha256-XUwixvy2WyfaSRHM8cTnOn8lKv+vbhheDA1Z47ap+Mc=";
} + /catppuccin-latte));
};
qt = {
enable = true;
style.name = "breeze";
};
programs.firefox = {
enable = true;
profiles.default = { isDefault = true; };
};
programs.thunderbird = {
enable = true;
profiles.default = { isDefault = true; };
};
}