---
title: GNOME Restart
description: Reloads `gnome-shell` so that the theme is properly loaded
sidebar_label: 99 GNOME Restart
slug: /scripts/after/run_onchange_after_99-restart-gnome.sh.tmpl
githubLocation: https://github.com/megabyte-labs/install.doctor/blob/master/home/.chezmoiscripts/universal/run_onchange_after_99-restart-gnome.sh.tmpl
scriptLocation: https://github.com/megabyte-labs/install.doctor/raw/master/home/.chezmoiscripts/universal/run_onchange_after_99-restart-gnome.sh.tmpl
repoLocation: home/.chezmoiscripts/universal/run_onchange_after_99-restart-gnome.sh.tmpl
---
# GNOME Restart

Reloads `gnome-shell` so that the theme is properly loaded

## Overview

This script reloads the `gnome-shell` so that the theme is properly loaded without having to reboot. This
only runs when the `HEADLESS_INSTALL` variable is passed because, unless you are provisioning the session headlessly,
you probably want to retain the terminal window that initialized the provisioning process since it contains
all the logs.

## Logs

Regardless of whether or not this script runs, you can access the provisioning logs by browsing through
`${XDG_DATA_HOME:-$HOME/.local/share}/megabyte-labs/betelgeuse.$(date +%s).log`



## Source Code

```
{{- if eq .host.distro.family "linux" -}}
#!/usr/bin/env bash
# @file GNOME Restart
# @brief Reloads `gnome-shell` so that the theme is properly loaded
# @description
#     This script reloads the `gnome-shell` so that the theme is properly loaded without having to reboot. This
#     only runs when the `HEADLESS_INSTALL` variable is passed because, unless you are provisioning the session headlessly,
#     you probably want to retain the terminal window that initialized the provisioning process since it contains
#     all the logs.
#
#     ## Logs
#
#     Regardless of whether or not this script runs, you can access the provisioning logs by browsing through
#     `${XDG_DATA_HOME:-$HOME/.local/share}/megabyte-labs/betelgeuse.$(date +%s).log`

### Restart GNOME if `HEADLESS_INSTALL` is defined and `gnome-shell` is available
if [ -n "$HEADLESS_INSTALL" ] && command -v gnome-shell > /dev/null; then
    logg info 'Reloading gnome-shell'
    killall -3 gnome-shell
else
    logg info 'Manually reload gnome-shell to see changes'
fi

{{ end -}}
```
