args@{ config, pkgs, split-monitor-workspaces, nix-flatpak, ... }: { home.username = "zilti"; home.homeDirectory = "/home/zilti"; home.packages = with pkgs; [ appimage-run binutils bitwarden-cli blueman brightnessctl coreutils-full clojure-lsp discord edwood file fossil fprintd-tod freetube freetype gamescope gamescope-wsi gcc ghostscript gimp-with-plugins git-cola git-doc git-filter-repo gparted grim home-manager #hyprcursor iconv inkscape-with-extensions krita kteatime lagrange libreoffice-qt6-fresh liquidprompt kdePackages.ark kdePackages.breeze-icons kdePackages.dolphin # kdePackages.kdesu # kdePackages.kde-cli-tools kdePackages.kitinerary kdePackages.ksshaskpass kdePackages.ktorrent kdePackages.okular kdePackages.partitionmanager kdePackages.qtsvg kdePackages.qtwayland kdePackages.wayland kdePackages.wayland-protocols libsForQt5.kde-cli-tools libuuid lm_sensors gnumake mattermost-desktop # (nerdfonts.override { fonts = [ "VictorMono" "MPlus" ]; }) nerdfonts nixd nixfmt-rfc-style nwg-displays obs-studio pciutils pharo pijul pinentry-qt pixman plan9port # pynitrokey # nitrokey-app2 pwvucontrol rar # retroarchFull rlwrap senpai signal-desktop slurp sshfs subversionClient sqlite stow swappy sysstat telegram-desktop ungoogled-chromium unzip usbutils vlc wine64Packages.waylandFull wlr-randr ]; imports = [ ./hyprland/hyprland.nix ./waybar/settings.nix ./emacs/emacs.nix # ./chicken/chicken.nix # ./kodi/kodi.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 = "${config.home.homeDirectory}/.local/chicken/doc/chicken-doc"; # CHICKEN_INSTALL_REPOSITORY = "${config.home.homeDirectory}/.local/chicken/eggs"; # CHICKEN_REPOSITORY_PATH = "$CHICKEN_REPOSITORY_PATH:${config.home.sessionVariables.CHICKEN_INSTALL_REPOSITORY}"; # CHICKEN_INSTALL_PREFIX = "/home/zilti/.local"; RTC_USE_PIPEWIRE = "true"; HYPRCURSOR_SIZE = 32; BW_SESSION = (builtins.readFile "${config.home.homeDirectory}/.vw-session-key"); QT_QPA_PLATFORM = "wayland"; }; home.shellAliases = { "git-init" = "git init --object-format=sha256"; }; 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"; port = 993; tls = { enable = true; }; }; smtp = { host = "lyrion.ch"; port = 465; tls = { enable = true; }; }; thunderbird = { enable = true; }; aerc = { enable = true; }; }; bevuta = { realName = "Daniel Ziltener"; userName = "daniel.ziltener@bevuta.com"; passwordCommand = "pass Bevuta/E-Mail | head -n 1"; address = "daniel.ziltener@bevuta.com"; imap = { host = "mail.networkname.de"; port = 993; tls = { enable = true; }; }; smtp = { host = "mail.networkname.de"; port = 465; tls = { enable = true; }; }; thunderbird = { enable = true; }; aerc = { enable = true; }; }; }; }; }; programs.msmtp = { enable = true; extraAccounts = '' account lmail host lyrion.ch port 465 auth on tls on tls_starttls off from dziltener@lyrion.ch user dziltener passwordeval "pass Privat/Mailaccount | head -n 1" ''; }; services.flatpak = { enable = true; uninstallUnmanaged = true; update = { onActivation = true; auto = { enable = true; onCalendar = "weekly"; }; }; remotes = [ { name = "flathub"; location = "https://dl.flathub.org/repo/flathub.flatpakrepo"; } { name = "flathub-beta"; location = "https://dl.flathub.org/beta-repo/flathub-beta.flatpakrepo"; } ]; packages = [ "com.github.tchx84.Flatseal" "com.usebottles.bottles" "info.beyondallreason.bar" "com.valvesoftware.Steam" "net.lutris.Lutris" "tv.kodi.Kodi" "org.kde.itinerary" "net.scribus.Scribus" "org.libretro.RetroArch" "org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/23.08" "org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/24.08" "com.stremio.Stremio" ]; }; gtk.enable = true; home.pointerCursor = { package = pkgs.hackneyed; name = "Hackneyed"; size = 32; }; 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; }; }; programs.bash = { enable = true; enableCompletion = true; bashrcExtra = '' shopt -s histappend shopt -s checkwinsize shopt -s extglob shopt -s globstar shopt -s checkjobs eval "$(cat ${pkgs.liquidprompt}/bin/liquidprompt)" eval "$(cat ${pkgs.liquidprompt}/share/liquidprompt/themes/alternate_vcs/alternate_vcs.theme)" ''; }; 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.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 ''; }; home.file.".config/xdg-desktop-portal/hyprland-portals.conf" = { enable = true; text = '' [preferred] default=hyprland;gtk org.freedesktop.impl.portal.FileChooser=kde ''; }; programs.gpg = { enable = true; settings = { utf8-strings = true; auto-key-retrieve = true; }; }; services.gpg-agent = { enable = true; enableScDaemon = 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 = { annotate = true; smtpserver = "lyrion.ch"; smtpuser = "dziltener"; smtpencryption = "ssl"; smtpserverport = 465; }; rebase.autoStash = true; pull.rebase = true; push.autoSetupRemote = true; init = { defaultBranch = "master"; }; extensions = { objectFormat = "sha256"; }; "gitlab.dev.bevuta.com/api/v4" = { user = "daniel.ziltener@bevuta.com"; }; }; }; 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 = "emacsclient"; }; }; 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; package = pkgs.kdePackages.kdeconnect-kde; indicator = true; }; programs.ssh = { enable = true; addKeysToAgent = "yes"; matchBlocks = { "dev.bevuta.com" = { user = "git"; hostname = "dev.bevuta.com"; identitiesOnly = true; identityFile = "~/.ssh/personal_ed"; }; "git.sr.ht" = { user = "git"; hostname = "git.sr.ht"; identitiesOnly = true; identityFile = "~/.ssh/personal_ed"; }; "github.com" = { user = "git"; hostname = "github.com"; identitiesOnly = true; identityFile = "~/.ssh/personal_ed"; }; "forgejo.lyrion.ch" = { user = "git"; hostname = "forgejo.lyrion.ch"; port = 7920; identitiesOnly = true; identityFile = "~/.ssh/personal_ed"; }; }; }; # services.nextcloud-client = { # enable = true; # startInBackground = true; # }; programs.hyprlock = { enable = true; settings = { general = { grace = 3; }; background = { path = "screenshot"; blur_passes = 2; blur_size = 8; noise = 1.17e-2; 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.hypridle = { enable = true; settings = { general = { after_sleep_cmd = "hyprctl dispatch dpms on"; }; listener = [ { timeout = 300; on-timeout = "${pkgs.hyprlock}/bin/hyprlock"; } # { # timeout = 1200; # on-timeout = "hyprctl dispatch dpms off"; # on-resume = "hyprctl dispatch dpms on"; # } ]; }; }; services.hyprpaper = { enable = true; settings = { ipc = "on"; splash = true; splash_offset = 2.0; preload = [ "${config.home.homeDirectory}/Stow/Desktop/config/wallpapers/Next/contents/images/3840x2160.png" ]; wallpaper = [ ",${config.home.homeDirectory}/Stow/Desktop/config/wallpapers/Next/contents/images/3840x2160.png" ]; }; }; # 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"; package = pkgs.kdePackages.breeze; }; }; programs.firefox = { enable = true; profiles.default = { isDefault = true; }; }; programs.thunderbird = { enable = true; profiles.default = { isDefault = true; }; }; }