{ config, lib, pkgs, ... }: { imports = [ ./. ]; environment = { systemPackages = with pkgs; [ lightdm bspwm dunst libnotify (polybar.override { mpdSupport = true; pulseSupport = true; nlSupport = true; }) killall rofi (writeScriptBin "rofi" '' #!${stdenv.shell} exec ${rofi}/bin/rofi -config "$XDG_CONFIG_HOME/rofi/config" $@ '') xst # st + nice-to-have extensions # A quick 'n dirty script for opening a scratch terminal. (writeScriptBin "st-scratch" '' #!${stdenv.shell} SCRID=st-scratch focused=$(xdotool getactivewindow) scratch=$(xdotool search --onlyvisible --classname $SCRID) if [[ -n $scratch ]]; then if [[ $focused == $scratch ]]; then xdotool windowkill $scratch else xdotool windowactivate $scratch fi else xst -t $SCRID -n $SCRID -c $SCRID \ -f "$(xrdb -query | grep 'st-scratch\.font' | cut -f2)" \ -g 100x26 \ -e $SHELL fi '') ]; }; fonts.fonts = [ pkgs.siji ]; services = { xserver = { desktopManager.xterm.enable = false; displayManager.lightdm.enable = true; windowManager.bspwm.enable = true; }; compton = { enable = true; backend = "glx"; vSync = true; inactiveOpacity = "0.90"; opacityRules = ["100:class_g = 'Firefox'"]; }; }; home-manager.users.hlissner.xdg.configFile = { "sxhkd".source = ; # link recursively so other modules can link files in their folders, e.g. # ~/.config/bspwm/rc.d and ~/.config/rofi/theme "bspwm" = { source = ; recursive = true; }; "rofi" = { source = ; recursive = true; }; }; }