Hide "make public" subtasks / project

I keep losing screen real estate for comments each time Asana does a big upgrade. I’ll never make a task public, nor will I have a project or subtasks. How can I hide these by default? It would be great to have this option in my settings.

If not, I guess it’s Grease Monkey to the rescue (so please don’t move your field IDs or class names around)

Since Asana started several years ago, I have never seen an option to hide anything from the settings… so you’re stuck with good old CSS filtering :stuck_out_tongue_winking_eye:

Just in case someone wants to do this, here is the TamperMonkey code:

// ==UserScript==
// @name         Asana
// @namespace    https://app.asana.com/
// @version      0.1
// @description  try to take over the world!
// @author       ss
// @match        https://app.asana.com/*
// @grant        none
// @require http://code.jquery.com/jquery-3.4.1.min.js
// ==/UserScript==
var $ = window.$;
var observer;

$( document ).ready(function() {
    observer = new MutationObserver(function(mutations) { // this will be called when the DOM changes
        // Hide Project
        $(".TaskProjects-labeledRowStructure").hide();

        // Hide Make Public Banner
        $(".TaskPrivacyBanner").hide();

        // Make Description large
        // get the description element
        var descText = document.evaluate(
            "//*[contains(text(),'Description')]/../../../div[@class='LabeledRowStructure-right']",
            document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
        // convert to JQuery
        var descTextJQ = $(descText.snapshotItem(0));
        descTextJQ.insertAfter(descTextJQ.parents(':eq(1)')); // same as parent().parent() - goes up two levels and then inserts
    });
    // just watch for everything in the body
    observer.observe(
        document.getElementsByTagName('body')[0],
        { childList: true, subtree: true } // get all children and trees.
        );
});