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; }; }; }