{ pkgs, lib, ... }: let inherit (import ./const.nix) fontSize homedir gpgid; inherit (import ./theme.nix { inherit pkgs lib; }) theme colors base16-scheme base16-scheme-filename xresourcesFile; xmonadPackages = self: [ self.xmonad-contrib #self.taffybar # fails to build self.xmonad-extras self.monad-logger ]; in { imports = [ ./common.nix # nix-channel --add https://github.com/catppuccin/nix/archive/main.tar.gz catppuccin # ]; home = { pointerCursor = { package = pkgs.phinger-cursors; name = "phinger-cursors"; }; keyboard.options = [ "caps:ctrl_modifier" ]; sessionVariables = { LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive"; }; file = { mutt = { text = (builtins.readFile ./muttrc) + (builtins.readFile ./mutt/solarized.muttrc); target = ".muttrc"; }; mailcap = { source = ./mailcap; target = ".mailcap"; }; xbindkeys = { source = ./xbindkeysrc; target = ".xbindkeysrc"; }; }; packages = with pkgs; [ acpi apvlv beets bind blueman cmdtree dict dmenu feh firefox flameshot gajim glibcLocales # rofi locale fix -- https://github.com/rycee/home-manager/issues/354#issuecomment-415914278 gnumake gnupg # keybase-gui libnotify lshw mplayer muchsync mumble nyxt pandoc pavucontrol pinentry tdesktop thunderbird # texlive.combined.scheme-full #tor-browser-bundle-bin usbutils vlc xbindkeys xclip xdotool xlayoutdisplay xorg.xmodmap xsel #xterm yank yt-dlp zathura ]; }; #catppuccin.flavor = "latte"; #catppuccin.enable = true; fonts.fontconfig.enable = true; gtk.enable = false; # this fails because of some missing service file gtk.font.name = "Fira Sans"; gtk.font.size = fontSize; gtk.font.package = pkgs.fira; gtk.theme.name = "Breeze"; gtk.iconTheme.name = "hicolor"; gtk.cursorTheme.name = "breeze_cursors"; xresources = { properties = { #"XTerm*font" = "-*-FiraMono-medium-r-normal--${toString fontSize}-*-*-*-*-*-iso10646-1"; #"XTerm*faceName" = "FireMono"; #"XTerm*faceSize" = toString fontSize; #"XTerm*termName" = "xterm-256color"; #"XTerm*metaSendsEscape" = true; #"XTerm*utf8" = true; #"Xautolock.time:" = 1; #"Xautolock.locker:" = "xlock"; #"Xautolock.corners:" = "+0-0"; #"Xautolock.cornerdelay:" = 3; #"Xautolock.notify:" = 30; #"Xautolock.notifier:" = "notify-send -u critical -t 10000 -- 'Locking screen in 30 seconds'"; }; extraConfig = builtins.readFile xresourcesFile; }; services = { lorri.enable = false; emacs.enable = true; kbfs.enable = false; keybase.enable = false; mbsync = { frequency = "*:0/5"; postExec = "${pkgs.notmuch}/bin/notmuch new"; }; dunst = { enable = true; settings = { global = { geometry = "320x5-10+30"; transparency = 0; frame_color = colors."${theme}".highlight; frame_width = 3; # same as xmonad border separator_color = "frame"; font = "Fira Sans"; background = colors."${theme}".background; foreground = colors."${theme}".foreground; padding = 10; horizontal_padding = 10; word_wrap = "yes"; markup = "full"; format = "%s\\n%b\\n"; }; urgency_normal = { background = colors."${theme}".background; foreground = colors."${theme}".foreground; timeout = 10; }; }; }; redshift = { enable = false; latitude = "40.80"; longitude = "-81.52"; temperature = { # orange = 1000, white = 5000 day = 5000; night = 1800; }; }; random-background = { enable = false; enableXinerama = true; imageDirectory = "%h/wallpaper"; interval = "30m"; }; gpg-agent = { defaultCacheTtl = 7200; # 2 hours enable = true; enableExtraSocket= true; enableScDaemon = true; # smart card support enableSshSupport = true; maxCacheTtl = 86400; # 24 hours #pinentryPackage = pkgs.pinentry-all; verbose = true; extraConfig = '' allow-emacs-pinentry ''; #sshKeys = [ # "8278B6132877C1911B07814D94FC4F29DF23FCA4" #]; }; }; xsession = { enable = true; windowManager = { xmonad = { enable = true; extraPackages = xmonadPackages; enableContribAndExtras = true; config = ./xmonad.hs; }; }; }; programs.gpg.enable = true; programs = { git.signing.signByDefault = true; qutebrowser = { enable = true; settings = { "colors.webpage.darkmode.enabled" = if theme == "dark" then true else false; "content.user_stylesheets" = "~/.userstyles.css"; # generated in common.nix # attempting to fix gl rendering "qt.force_software_rendering" = "qt-quick"; #"backend" = "webkit"; }; }; rofi = { enable = true; pass.enable = true; font = "Fira Mono 16"; theme = "purple"; plugins = with pkgs; [ rofi-calc rofi-emoji rofi-file-browser rofi-menugen rofi-mpd rofi-pass rofi-systemd ]; }; }; systemd.user = { services = { #"gpg-refresh".Service.ExecStart = "${pkgs.gnupg}/bin/gpg --refresh"; # make it the same as 'systemctl show mpd | grep LimitMEMLOCK" # might not be necessary? #mpd.Service.LimitMEMLOCK = "2085444096"; }; timers = { #"gpg-refresh" = { # Install.WantedBy = ["timers.target"]; # Timer.OnCalendar = "daily"; #}; }; }; }