Back to homepage
·2 min read

How to enable native Gemini on Google Chrome for Linux

On recent versions of Google Chrome for Windows and macOS, the Gemini button is built directly into the top tab strip. On Linux, the button is missing and the artificial intelligence section in chrome://settings/ai does not appear.

Toggling flags inside chrome://flags does not resolve this. The omission is caused by compile-time rules in the Chromium source code alongside Google's geographical restrictions.


Why Gemini is disabled on Linux

Gemini integration (internally referred to as Glic) is restricted on Linux by four barriers:

  1. Platform compile flag: in chrome_features.cc, the kGlic feature is compiled as enabled by default (FEATURE_ENABLED_BY_DEFAULT) on Windows, macOS, and ChromeOS. On Linux, the compilation macro defaults to disabled.
  2. Geographical restrictions: in glic_enabling.cc, Google maintains an allowlist of supported countries. European Union nations are excluded due to regulatory compliance. If Google's variations service detects an unsupported region, the interface is disabled.
  3. Staged rollout gating: eligibility is tied to a per-account rollout flag.
  4. Tab strip anchoring: visual rendering of the button (TabStripGlicButton) requires pinned_to_tabstrip to be explicitly set to true in the profile preferences.

Step-by-step activation guide

To bypass all four restrictions without recompiling the browser, configure startup arguments and patch profile preferences.

1. Add startup flags

Close Google Chrome completely before proceeding.

On Linux, persistent launch arguments are managed via chrome-flags.conf:

bash
mkdir -p ~/.config
cat << 'EOF' >> ~/.config/chrome-flags.conf
--enable-features=Glic,GlicLiveMode,GlicRollout,GlicActor,GlicSidePanel,PromptAPIForGeminiNano,OptimizationGuideOnDeviceModel
--disable-features=GlicCountryFiltering
--variations-override-country=us
--glic-dev
EOF

What each flag does:

  • --enable-features=...: initializes Glic modules that are disabled in the Linux binary build.
  • --disable-features=GlicCountryFiltering: disables region checking.
  • --variations-override-country=us: overrides the location sent to Google's variations service to the United States.
  • --glic-dev: bypasses account rollout checks.

2. Update Chrome profile preferences

Chrome stores configuration state in ~/.config/google-chrome/. Run this Python script to update the required parameters across all profiles:

bash
python3 - << 'EOF'
import json, os, glob

base_dir = os.path.expanduser("~/.config/google-chrome")
local_state_path = os.path.join(base_dir, "Local State")

# 1. Update global Local State
if os.path.exists(local_state_path):
    with open(local_state_path, "r", encoding="utf-8") as f:
        state = json.load(f)
    
    state["is_glic_eligible"] = True
    if "variations_country" in state:
        state["variations_country"] = "us"
    if "variations_permanent_consistency_country" in state:
        state["variations_permanent_consistency_country"] = ["us"]
        
    with open(local_state_path, "w", encoding="utf-8") as f:
        json.dump(state, f, indent=2)

# 2. Enable button in profile preferences
pref_files = glob.glob(os.path.join(base_dir, "Default", "Preferences")) + \
             glob.glob(os.path.join(base_dir, "Profile *", "Preferences"))

for pref_path in pref_files:
    with open(pref_path, "r", encoding="utf-8") as f:
        prefs = json.load(f)
        
    prefs.setdefault("glic", {})
    prefs["glic"]["pinned_to_tabstrip"] = True
    prefs["glic"]["launcher_enabled"] = True
    prefs["glic"]["previously_not_allowed"] = False
    prefs["glic"]["completed_fre"] = True
    prefs["glic"]["tab_context_enabled"] = True
    prefs["glic"]["profile_enablement"] = {"last_ready_state": 1}
    
    with open(pref_path, "w", encoding="utf-8") as f:
        json.dump(prefs, f, indent=2)

print("Chrome preferences updated.")
EOF

3. Launch and verify

Launch Google Chrome from the terminal or your application launcher:

bash
google-chrome-stable

The Gemini icon will appear in the top-right corner of the tab strip next to the window controls. Clicking it opens the side panel with page context inspection enabled.

Community Status Check

Did this method work for you?

Let other readers know if this solution is still up to date.

Comments
Official replies always display the ADMIN badge. Never share confidential details.