 b9851a975e
			
		
	
	
		b9851a975e
		
	
	
	
	
		
			
			* bemenu: init at 2017-02-14 * velox: 2015-11-03 -> 2017-07-04 * orbment, velox: don't expose subprojects the development of orbment and velox got stuck their subprojects (bemenu, dmenu-wayland, st-wayland) don't work correctly outside of parent projects so hide them to not confuse people swc and wld libraries are unpopular and unlike wlc are not used by anything except velox * pythonPackages.pydbus: init at 0.6.0 * way-cooler: 0.5.2 -> 0.6.2 * nixos/way-cooler: add module * dconf module: use for wayland non-invasive approach for #31293 see discussion at #32210 * sway: embed LD_LIBRARY_PATH for #32755 * way-cooler: switch from buildRustPackage to buildRustCrate #31150
		
			
				
	
	
		
			79 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { config, pkgs, lib, ... }:
 | |
| 
 | |
| with lib;
 | |
| 
 | |
| let
 | |
|   cfg = config.programs.way-cooler;
 | |
|   way-cooler = pkgs.way-cooler;
 | |
| 
 | |
|   wcWrapped = pkgs.writeShellScriptBin "way-cooler" ''
 | |
|     ${cfg.extraSessionCommands}
 | |
|     exec ${pkgs.dbus.dbus-launch} --exit-with-session ${way-cooler}/bin/way-cooler
 | |
|   '';
 | |
|   wcJoined = pkgs.symlinkJoin {
 | |
|     name = "way-cooler-wrapped";
 | |
|     paths = [ wcWrapped way-cooler ];
 | |
|   };
 | |
|   configFile = readFile "${way-cooler}/etc/way-cooler/init.lua";
 | |
|   spawnBar = ''
 | |
|     util.program.spawn_at_startup("lemonbar");
 | |
|   '';
 | |
| in
 | |
| {
 | |
|   options.programs.way-cooler = {
 | |
|     enable = mkEnableOption "way-cooler";
 | |
| 
 | |
|     extraSessionCommands = mkOption {
 | |
|       default     = "";
 | |
|       type        = types.lines;
 | |
|       example = ''
 | |
|         export XKB_DEFAULT_LAYOUT=us,de
 | |
|         export XKB_DEFAULT_VARIANT=,nodeadkeys
 | |
|         export XKB_DEFAULT_OPTIONS=grp:caps_toggle,
 | |
|       '';
 | |
|       description = ''
 | |
|         Shell commands executed just before way-cooler is started.
 | |
|       '';
 | |
|     };
 | |
| 
 | |
|     extraPackages = mkOption {
 | |
|       type = with types; listOf package;
 | |
|       default = with pkgs; [
 | |
|         westonLite xwayland dmenu
 | |
|       ];
 | |
|       example = literalExample ''
 | |
|         with pkgs; [
 | |
|           westonLite xwayland dmenu
 | |
|         ]
 | |
|       '';
 | |
|       description = ''
 | |
|         Extra packages to be installed system wide.
 | |
|       '';
 | |
|     };
 | |
| 
 | |
|     enableBar = mkOption {
 | |
|       type = types.bool;
 | |
|       default = true;
 | |
|       description = ''
 | |
|         Whether to enable an unofficial bar.
 | |
|       '';
 | |
|     };
 | |
|   };
 | |
| 
 | |
|   config = mkIf cfg.enable {
 | |
|     environment.systemPackages = [ wcJoined ] ++ cfg.extraPackages;
 | |
| 
 | |
|     security.pam.services.wc-lock = {};
 | |
|     environment.etc."way-cooler/init.lua".text = ''
 | |
|       ${configFile}
 | |
|       ${optionalString cfg.enableBar spawnBar}
 | |
|     '';
 | |
| 
 | |
|     hardware.opengl.enable = mkDefault true;
 | |
|     fonts.enableDefaultFonts = mkDefault true;
 | |
|     programs.dconf.enable = mkDefault true;
 | |
|   };
 | |
| 
 | |
|   meta.maintainers = with maintainers; [ gnidorah ];
 | |
| }
 |