Twitter fixes

Display whole images, display whole tweets, and various enhancements here and there

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Greasemonkey lub Violentmonkey.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana będzie instalacja rozszerzenia Tampermonkey lub Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, musisz zainstalować rozszerzenie menedżera skryptów użytkownika.

(Mam już menedżera skryptów użytkownika, pozwól mi to zainstalować!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Musisz zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

(Mam już menedżera stylów użytkownika, pozwól mi to zainstalować!)

/* ==UserStyle==
@name           Twitter fixes
@namespace      zezombye.dev
@version        1.0.2
@description    Display whole images, display whole tweets, and various enhancements here and there
@author         Zezombye
@license        MIT
==/UserStyle== */

@-moz-document domain("x.com") {
    
    /*Display the whole images*/
    
    .r-4gszlv {
        background-size: contain;
    }
    
    /* Remove image border radius */
    
    article[data-testid="tweet"] > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(2) > div:nth-child(3) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) {
        border-radius: 0;
    }
    article[data-testid="tweet"] > div:nth-child(1) > div:nth-child(1) > div:nth-child(3) > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) {
        border-radius: 0;
    }
    
    /* Remove image useless padding on tweets with 2+ images */
    
    /*article[data-testid="tweet"] > div:nth-child(1) > div:nth-child(1) > div:nth-child(3) > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) div[data-testid="tweetPhoto"] > img,
    article[data-testid="tweet"] > div:nth-child(1) > div:nth-child(1) > div:nth-child(3) > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) div[data-testid="tweetPhoto"] > div {
        position: relative;
    }
    
    article[data-testid="tweet"] div[style="padding-bottom: 56.25%;"] {
        padding-bottom: 0 !important;
    }
    article[data-testid="tweet"] div[style="padding-bottom: 56.25%;"] + div,
    article[data-testid="tweet"] div[style="padding-bottom: 56.25%;"] + div a,
    article[data-testid="tweet"] div[style="padding-bottom: 56.25%;"] + div div {
        position: relative;
    }*/
    
    /* Remove quote tweet border radius */
    
    article[data-testid="tweet"] > div:nth-child(1) > div:nth-child(1) > div > div:nth-child(2) > div > div > div[tabindex="0"][role="link"] {
        border-radius: 0;
    }
    
    /* Hide "subscribe to premium"*/
    
    div[aria-label="Trending"] div:has(> aside[aria-label="Subscribe to Premium"]),
    div[aria-label="Trending"] div:has(> div > div[data-testid="super-upsell-UpsellCardRenderProperties"]),
    div[aria-label="Trending"] div:has(> div > div[data-testid="super-upsell-UpsellButtonRenderProperties"]) {
        display: none;
    }
    div[aria-label="Trending"] div:has(> div > aside[aria-label="Subscribe to Premium to write your own longer posts"]) {
        display: none;
    }
    
    /* Hide "who to follow" */
        
    div[aria-label="Trending"] div:has(> div > aside[aria-label="Who to follow"]) {
        display: none;
    }
    
    /* Hide "suggested videos" */
    
    div[aria-label="Trending"] div:has(> div > div > div > div[data-testid^="suggested-video-card-"]) {
        display: none;
    }
    
    /* Hide trending tab */
    
    div[aria-label="Trending"] div:has(> section > div[aria-label="Timeline: Trending now"]) {
        display: none;
    }
    div[aria-label="Trending"] div:has(> div > div > div[aria-label="Loading timeline"]) {
        display: none;
    }
    
    /* Hide "today's news" tab */
    
    div[aria-label="Trending"] div:has(> div[data-testid="news_sidebar"]) {
        display: none;
    }
    
    /* Hide tos, privacy policy, etc */
    
    div[aria-label="Trending"] div:has(> nav[aria-label="Footer"]) {
        display: none;
    }
    
    /* Hide "new tweets" thing */
    
    div[aria-label="New posts are available. Push the period key to go to the them."] {
        display: none;
    }
    
    /* Hide "unread items" home icon */
    
    nav[role="navigation"] > a[data-testid="AppTabBar_Home_Link"] div[aria-label="undefined unread items"] {
        display: none;
    }
    
    /* Remove line clamp on long tweets */
    
    div[data-testid="tweetText"] {
        -webkit-line-clamp: unset !important;
    }
    
    /* Remove "show more" link */
    
    div[data-testid="tweet-text-show-more-link"], a[data-testid="tweet-text-show-more-link"], button[data-testid="tweet-text-show-more-link"]  {
        display: none;
    }
    
    /* Unstick "for you/following" */
    
    div[aria-label="Home timeline"] > div:nth-child(1) {
        position: unset;
    }
    
    /* Remove post prompt on home timeline */
    
    div[aria-label="Home timeline"] > div:nth-child(3) > div:has(div[data-testid="tweetTextarea_0_label"]) {
        display: none;
    }
    
    /* Remove "push notifications" prompt */
    
    div[aria-label="Timeline: Your Home Timeline"] > div > div:has(>div > div > div > div[data-testid="inlinePrompt"] > div[data-testid="inlinePrompt-primaryAction"]) {
        display: none;
    }
    
    /* Remove "verified accounts can reply" */
    
    div:has(> div[aria-live="polite"][role="status"] > div > div > a[href="/i/premium_sign_up"]) {
        display: none;
    }
    
    /* Remove jobs on profile */
    
    div[data-testid="jobs"] {
        display: none;
    }
    
    /* Remove useless stuff on profile */
    
    button[aria-label="Send a tip"] {
        display: none;
    }
    
    button[aria-label^="Subscribe to @"] {
        display: none;
    }
    
    /* Remove useless stuff from the sidebar */
    
    nav[aria-label="Primary"] > a[data-testid="AppTabBar_Explore_Link"] {
        display: none;
    }
    nav[aria-label="Primary"] > a[data-testid="AppTabBar_Follow_Link"] {
        display: none;
    }
    nav[aria-label="Primary"] > a[data-testid="jobs-tab-item"] {
        display: none;
    }
    nav[aria-label="Primary"] > a[data-testid="premium-business-signup-tab"] {
        display: none;
    }
    nav[aria-label="Primary"] > a[data-testid="premium-signup-tab"] {
        display: none;
    }
    nav[aria-label="Primary"] > a[data-testid="vo-signup-tab"] {
        display: none;
    }
    nav[aria-label="Primary"] > a[aria-label="Creator Studio"] {
        display: none;
    }
    
    
    /* Remove grok suggestions on tweets */
    
    article[data-testid="tweet"] div:has(> nav[role="navigation"] > div > div[data-testid="ScrollSnap-SwipeableList"]) {
        display: none;
    }
    
    /* Remove grok buttons */
    
    /*article[data-testid="tweet"] button[aria-label="Grok actions"] {
        display: none;
    }*/
    
    /*div[data-testid="GrokDrawer"] {
        display: none;
    }*/
    
    /* Remove annoying glow on grok + msg drawer */
    
    div[data-testid="GrokDrawer"] > div, div[data-testid="chat-drawer-main"] {
        box-shadow: none;
    }
    div[data-testid="GrokDrawer"] > div {
        border: 1px solid hsl(var(--color-gray-400));
    }
    
    /* Remove "Discover more" */
    
    div[aria-label="Timeline: Conversation"] > div > div:has(> div > div > div > h2[role="heading"]):has(> div > div > div > div > span) {
        display: none;
        & ~ div {
            display: none;
        }
    }
    
    
    /* ----- Mobile stuff ----- */
    
    /* Unstick navbar */
    div#layers div:has(div[data-testid="TopNavBar"]):has([data-testid="DashButton_ProfileIcon_Link"]) {
        position: relative;
    }
    /* Stick navbar when it has the back button (eg when viewing a post)*/
    div[data-testid="TopNavBar"] {
        
        transform: none !important;
        backdrop-filter: none;
        background-color: black;
        &:has([data-testid="app-bar-back"]) {
            border-bottom: 1px solid rgb(47, 51, 54);
        }
    }
    /* Remove the "new posts" blue bubble */
    div[data-testid="TopNavBar"] ~ div {
        display: none;
    }
    
        
    
    
}