args@{ config, pkgs, split-monitor-workspaces, flatpaks, ... }: { home.username = "zilti"; home.homeDirectory = "/home/zilti"; home.packages = with pkgs; [ appimage-run binutils bitwarden brightnessctl coreutils-full discord edwood file fossil fprintd-tod freetube freetype gamescope gcc git-cola git-doc git-filter-repo grim home-manager hyprpaper iconv kteatime lagrange libffi libgccjit liquidprompt kdePackages.dolphin kdePackages.ksshaskpass kdePackages.okular libuuid lm_sensors gnumake # (nerdfonts.override { fonts = [ "VictorMono" "MPlus" ]; }) nerdfonts nil nixfmt-classic nwg-displays pciutils # perl538Packages.DigestHMAC # perl538Packages.FileLibMagic # perl538Packages.IOSocketINET6 # perl538Packages.IOSocketSSL # perl538Packages.MIMELite # perl538Packages.TermReadKey pharo pijul pinentry-qt pixman plan9port pwvucontrol senpai signal-desktop slurp space-cadet-pinball sqlite stow swappy sysstat telegram-desktop ungoogled-chromium unzip usbutils vlc wlr-randr ]; imports = [ ./hyprland/hyprland.nix ./waybar/settings.nix ./emacs/emacs.nix # ./chicken/chicken.nix ]; home.stateVersion = "24.05"; programs.home-manager.enable = true; home.sessionPath = [ "${config.home.homeDirectory}/.config/emacs/bin" "${config.home.homeDirectory}/.local/bin" ]; home.sessionVariables = { #PASSWORD_STORE_DIR = "${config.home.homeDirectory}/.local/share/password-store"; PATH = "$PATH:~/.local/bin"; #PASSWORD_STORE_DIR = "$XDG_DATA_HOME/password-store"; SSH_ASKPASS = "${pkgs.libsForQt5.ksshaskpass}/bin/ksshaskpass"; CHICKEN_DOC_REPOSITORY = "$XDG_DATA_HOME/chicken/doc"; CHICKEN_INSTALL_REPOSITORY = "$XDG_DATA_HOME/chicken/eggs"; CHICKEN_INSTALL_PREFIX = "/home/zilti/.local"; RTC_USE_PIPEWIRE = "true"; }; # 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 = false; # 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" ]; }; services.syncthing = { enable = true; tray.enable = true; }; 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; }; home.file.".config/senpai/senpai.scfg" = { enable = true; text = '' address ircs://lyrion.ch nickname zilti realname "Daniel Ziltener" password-cmd pass show Privat/Soju ''; }; programs.gpg = { enable = true; settings = { utf8-strings = true; auto-key-retrieve = true; }; }; services.gpg-agent = { enable = true; enableSshSupport = true; defaultCacheTtl = 7200; maxCacheTtl = 7200; defaultCacheTtlSsh = 7200; maxCacheTtlSsh = 7200; pinentryPackage = pkgs.pinentry-qt; extraConfig = '' allow-emacs-pinentry allow-loopback-pinentry ''; }; programs.rbw = { enable = true; settings = { base_url = "vaultwarden.lyrion.ch"; email = "dziltener@lyrion.ch"; pinentry = pkgs.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; # }; # 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.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"; # }; # }; programs.hyprlock = { enable = true; settings = { general = { grace = 3; }; background = { path = "screenshot"; blur_passes = 2; blur_size = 5; noise = 0.0117; contrast = 0.8916; brightness = 0.8172; vibrancy = 0.1696; vibrancy_darkness = 0.0; }; input-field = { size = "200, 50"; outline_thickness = 3; dots_size = 0.33; dots_spacing = 0.15; dots_center = true; dots_rounding = -1; outer_color = "rgb(151515)"; inner_color = "rgb(200,200,200)"; font_color = "rgb(10,10,10)"; fade_on_empty = true; fade_timeout = 1000; placeholder_text = "Input Password..."; hide_input = false; rounding = -1; check_color = "rgb(204,136,34)"; fail_color = "rgb(204,34,34)"; fail_text = "$FAIL ($ATTEMPTS)"; fail_transition = 300; capslock_color = -1; numlock_color = -1; bothlock_color = -1; invert_numlock = false; position = "0, -20"; halign = "center"; valign = "center"; }; }; }; # services.swayidle = { # enable = true; # events = [ ]; # timeouts = [{ # timeout = 600; # command = "${pkgs.swaylock-effects}/bin/swaylock"; # }]; # }; services.hypridle = { enable = true; settings = { general = { after_sleep_cmd = "hyprctl dispatch dpms on"; lock_cmd = "pgrep hyprlock || hyprlock"; }; listener = [ { timeout = 300; on-timeout = "$lock_cmd"; } { timeout = 1200; on-timeout = "hyprctl dispatch dpms off"; on-resume = "hyprctl dispatch dpms on"; } ]; }; }; # services.mako = { # enable = true; # defaultTimeout = 5000; # }; # services.gammastep = { # enable = true; # provider = "geoclue2"; # temperature = { # day = 5500; # night = 2700; # }; # }; services.swaync = { enable = true; # https://github.com/ErikReider/SwayNotificationCenter/blob/main/src/configSchema.json settings = { notification-inline-replies = true; }; }; programs.wlogout = { enable = true; }; programs.fuzzel = { enable = true; settings = { main = { terminal = "${pkgs.kitty}/bin/kitty"; width = 100; fields = "filename,name,generic,exec"; show-actions = true; filter-desktop = false; layer = "overlay"; }; }; }; qt = { enable = true; style.name = "breeze"; }; programs.firefox = { enable = true; profiles.default = { isDefault = true; }; }; programs.thunderbird = { enable = true; profiles.default = { isDefault = true; }; }; }