Changing time zone on qubes

Hello there, i am trying to change my time zone using $ sudo timedatectl set-timezone ‘Europe/Berlin’ on dom0, it display the timezone i choosed on terminal but the clock on the desktop doesn’t change

Please run this command and see if it makes any difference:

systemctl start qubes-sync-time
1 Like

The Xfce clock/datetime applets don’t use system timezone so you need to change timezone in its properties.

Timezone
Allows you to set a custom timezone for the clock by entering the name of a file in the zoneinfo database. If left blank, the clock uses the localtime.

https://docs.xfce.org/xfce/xfce4-panel/clock

1 Like

It does use the system timezone (unless overridden in its properties). To make it aware of the changed system timezone: xfce4-panel --restart

2 Likes

It display’s ’ Unit qubes-sync-time.service not found

I did it, clock isn’t changing.

You have to do it in your clockvm. That is usually sys-net

It was the first thing i’v tried, it doesn’t work either

I run the command on sys-net terminal but nothing comes up

It shouldn’t it is just supposed to sync the time from an NTP server and notify dom0. So the dom0 could update computer RTC. Qubes OS does this every 6 hours via a timer. I believe that the others are providing better suggestions. Your issue is not with the RTC but rather XFCE clock widget.

Something weird come up. Time changed, but not in timezone i choosed on terminal

What’s the output of timedatectl in dom0 and what time do you see in dom0 tray clock? Also what timezone is set in the clock applet properties? Is it empty?

Putting

TZ='Europe/Berlin'
export TZ

into dom0’s .bash_profile and logging out and back in works for me. You can find the correct time zone String by running tzselect.

On properties i have choose America/Chicago, on terminal it has the same timezone output, but on desktop’s clock it display’s another’s time zone time.

The output is
Local time: Tue 2024-04-16 01:35:07 UTC
Universal time: Tue 2024-04-16 01:35 UTC
RTC time: Tue 2024-04-16 01:35:07
Time zone: UTC (UTC, +0000)
System Clock synchronized: no
NTP service: active
RTC in local TZ: yes

This is wrong. usually the only operating system that stores local Time Zone the the Real-Time-Clock is Microsoft Windows. The default should be no. Was that the output of timedatectl in dom0?

OK. Here I provide some commands with proper explanation of what and why I would do it. All of them should be executed in dom0:

  1. Disable NTP in dom0. Since dom0 does not have network access and the network time sync is done via Qubes specific ways:
timedatectl set-ntp no
  1. Keep Universal Time (UTC) in your PC motherboard clock. Since this is the norm in UNIX like operating systems:
timedatectl set-local-rtc no
  1. Change your system Time Zone to Europe/Berlin
timedatectl set-timezone Europe/Berlin
  1. Set the actual time
timedatectl set-time ACTUALTIMEFROMWALLCLOCK

If you dual boot in Windows and Qubes OS on the same machine then you need to configure Windows to store the time in RTC in UTC:

Also:

To be honest guys, this will cause way more problems then gains.

The idea, can try to find references on github, is to change the representation of time on dom0, and keep qubesos and all vms having time representation in UTC.

This way, users are supposed to change the dom0 clock widget timezone when they move around (their timezone) and let the system clock, and all vms and logs, operate and log in UTC.

The reasoning is pretty simple if you think one second as a computer. UTC/GMT timezone is 0. Without daytime saving whatever, and the system is always having a straight storyline for logs and everything else. Otherwise, if you instruct your system to store system time in local timezone, a bunch of bad things can happen. For example, when cames the time to lose an hour, that is, putting the clock of your computer back an hour ago, logs alone will live the same hour a second time that day. Not good. And also, when it’s time to move the clock one hour later, there is a time jump in the logs. This is why computers generally keep system clock in UTC/GMT timezone, and rmwhen comes the time to do some auditing, a quick check up of what is your time offset difference does the trick.

Also, when comes the time of using time based tools, for example TOTP, the app on your phone, and your computer as well, will be in system time UTC, and the TOTP app, to be able to generate a code that fits in both computer and phone which generate it, needs to be generated/showed/confirmed in the same timezone. Your phone takes the time at UTC time, and for this to work, your computer clock, system time, also needs to be in UTC. Otherwise that won’t work. Keep system clock in UTC.

Tldr: you can ask your dom0 widget, or configure through timedatectl the time representation to be in your timezone (ex:UTC-4, EST) which will automatically change the dom0 widget as well, which offsets from system time here.

The whole thing happening here is that through the installer, timezone was set. So if you play without following documentation you will screw time big time.

I recommend not messing with time, and only changing time from dom0 widget.

Note timedatectl status:

RTC in local TZ: no

Click on widget, revert changes you did, never do that again :slight_smile: time is… A weird concept even if not mostly for computers which are always lost unless synced with an outside source and can easily time warp if misconfigured.

Always change time zone representation, not system time. Only ntp should do it and again, in UTC for system. Time.

Thanks mate, that worked fine!

2 Likes