{ config, pkgs, lib, ... }: let tex = (pkgs.texlive.combine { inherit (pkgs.texlive) scheme-basic dvisvgm dvipng# for preview and export as html wrapfig amsmath ulem hyperref capt-of; #(setq org-latex-compiler "lualatex") #(setq org-preview-latex-default-process 'dvisvgm) }); dracula-gtk = pkgs.fetchFromGitHub { owner = "dracula"; repo = "gtk"; rev = "502f212d83bc67e8f0499574546b99ec6c8e16f9"; sha256 = "1wx9nzq7cqyvpaq4j60bs8g7gh4jk8qg4016yi4c331l4iw1ymsa"; }; in { # TODO modularize imports = [ ./battery-low-timer.nix ]; # Secrets used by home-manager modules age.secrets.fastmail.file = "${self}/secrets/fastmail.age"; age.secrets.fastmail.owner = "anish"; age.secrets.mossnet.file = "${self}/secrets/mossnet.age"; age.secrets.mossnet.owner = "anish"; services = { gnome.gnome-keyring.enable = true; upower.enable = true; dbus = { enable = true; packages = [ pkgs.dconf ]; }; }; security.pam.services.Default.enableGnomeKeyring = true; security.pam.services.Login.enableGnomeKeyring = true; security.pam.services.sddm.enableGnomeKeyring = true; environment.sessionVariables = rec { XDG_CACHE_HOME = "\${HOME}/.cache"; XDG_CONFIG_HOME = "\${HOME}/.config"; XDG_BIN_HOME = "\${HOME}/.local/bin"; XDG_DATA_HOME = "\${HOME}/.local/share"; PATH = [ "\${XDG_BIN_HOME}" ]; }; environment.systemPackages = with pkgs; [ unstable.signal-desktop # bridge to sealight? unstable.sublime-music unstable.nheko unstable.tootle scrot ripcord feh sxiv xkblayout-state vcv-rack zathura calibre fractal mpv newsflash zeal xclip xdotool rofi rofimoji rofi-calc eww obs-studio lightdm dunst libnotify (polybar.override { pulseSupport = true; nlSupport = true; }) papirus-icon-theme calendar-cli wyrd tex ]; location.provider = "geoclue2"; services = { redshift = { enable = true; temperature = { day = 5500; night = 3700; }; }; xserver = { enable = true; layout = "us,dvorak"; desktopManager.wallpaper.mode = "fill"; displayManager = { defaultSession = "none+bspwm"; sessionCommands = '' ${pkgs.xorg.xrdb}/bin/xrdb -merge <>/dev/null && connect || disconnect # keyboard on curve is busted get_keyboard_id() { xinput list | grep 'AT Translated Set' | cut -f2 | cut -d'=' -f2 | xinput float } disconnect_keyboard() { id=$(get_keyboard_id) xinput float $id unset id } attach_keyboard() { id=$(get_keyboard_id) xinput reattach $id 3 } disconnect_keyboard ''; lightdm = { enable = true; background = "/etc/nixos/users/profiles/desktop/background.jpg"; greeters.mini = { enable = true; user = "anish"; extraConfig = '' text-color = "#ff79c6" password-background-color = "#1E2029" window-color = "#181a23" border-color = "#181a23" ''; }; }; }; windowManager.bspwm.enable = true; #windowManager.bspwm.configFile = "/home/anish/.bspwm/bspwmrc"; windowManager.bspwm.sxhkd.configFile = "/home/anish/.config/sxhkdrc"; }; }; fonts.fonts = with pkgs; [ fira-code fira-code-symbols hermit #hack siji font-awesome proggyfonts (nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" "Iosevka" ]; }) ]; }