{ config, pkgs, lib, ... }: let dracula-gtk = pkgs.fetchFromGitHub { owner = "dracula"; repo = "gtk"; rev = "502f212d83bc67e8f0499574546b99ec6c8e16f9"; sha256 = "1wx9nzq7cqyvpaq4j60bs8g7gh4jk8qg4016yi4c331l4iw1ymsa"; }; in { # TODO modularize imports = [ ./battery-low-timer.nix ]; services = { gnome.gnome-keyring.enable = true; upower.enable = true; dbus = { enable = true; packages = [ pkgs.gnome3.dconf ]; }; }; 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}" ]; }; nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "ripcord" "vcv-rack" ]; environment.systemPackages = with pkgs; [ signal-desktop # bridge to sealight? scrot ripcord feh sxiv xkblayout-state sublime-music vcv-rack zathura calibre nheko 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 tootle ]; 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; lightdm.greeters.mini.enable = true; lightdm.greeters.mini.user = "anish"; # TODO hardcoded lightdm.background = "/etc/nixos/users/profiles/desktop/background.jpg"; lightdm.greeters.mini.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-ttf proggyfonts (nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" "Iosevka" ]; }) ]; }