/** Main entry point for the home-manager module configuration * * For some reason, access to the config.libkookie.* option tree * is not possible here, but instead needs to be deferred to an * imported expression. For that reason, this file only contains * key allocations, and no actual configuration content. */ { config, lib, pkgs, home-manager, ... } @ args: { xsession.windowManager.i3 = let config = (import ./config.nix args); in { enable = true; package = pkgs.i3; inherit config; # TODO: move this into the config module? extraConfig = with pkgs; '' # Setup compton compositor exec_always --no-startup-id "${coreutils}/bin/pkill compton; ${compton}/bin/compton --config ~/.config/i3/compton.conf" # Make CAPSLOCK into ESC because it's 2018 # # Okay actually this is slightly more complicated than that. I'm binding # CAPSLOCK to HYPER, so that I can use it as a modifier in emacs, but then # using xcape(1) to also make short CAPSLOCK presses into ESCAPE. exec_always --no-startup-id "${xorg.xmodmap}/bin/setxkbmap -layout us -variant altgr-intl -option caps:hyper" exec ${xcape}/bin/xcape -e "#66=Escape" -t 150 # Always set a wallpaper # exec_always --no-startup-id ${feh}/bin/feh --bg-fill config.libkookie.ui.i3.wallpaper ????? bar { status_command ${i3status}/bin/i3status -c ~/.config/i3/i3status.conf position bottom bindsym button4 nop bindsym button5 nop colors { background #0F0F0F statusline #D5D5D5 } } focus_follows_mouse no # Layout and design settings that should _really_ be in the module default_border pixel 3 client.focused #4c7899 #285577 #ffffff #F73E5F #666666 ''; }; xdg.configFile."i3/compton.conf" = (import ./compton.nix args); xdg.configFile."i3/i3status.conf" = (import ./i3status.nix args); }