Content type - manage display based on roles? Is there a way to define a custom display setting under Manage Display on a content type? I want to hide certain fields (when viewing, not editing) from non-authenticated users. I know I can do this with a custom .tpl file; just wondering if there's another way (without additional modules.)
As far as implementing a new view mode yourself goes it's pretty easy, without any contrib modules.

You can implement hook_entity_info_alter() to add a custom view mode to any entity. For example this code adds a new view mode called "Test View" to the node entity type:

function MYMODULE_entity_info_alter(&amp;$info) {
  $info['node']['view modes']['test_view'] = array(
    'label' =&gt; 'Test View',
    'custom settings' =&gt; TRUE
  );
}


After a cache clear that view mode will appear in all the places you'd expect (manage display, views, etc.)