You can customize a column's menu and provide your own functionality. Each menu item can have:

The column menu will add the column's GridColumn object to the context as this.context.col. You can then show/hide the the menu item based on conditions that use the grid and column. You could also use a custom column builder to add some item to the every column definition.

You can remove the column hide option using the enableHiding: false columnDef option, which will also prevent this column being hidden in the gridMenu (once it is finished and merged). You can disable the column menu entirely using the enableColumnMenu: false columnDef option.

You can disable all column menus using the enableColumnMenus: false grid option.

You can supply an icon class with the icon property.