Windows 10 Theme for Qubes

Hello Qubes forum! I just released a brand new XFCE Win 10 look-alike theme and I’m pleased to announce that I’ve just added dedicated Qubes OS support for it! Example screenshots below:






You can choose between 5 different window border options for Qubes: Standard (no coloring), Colored 1 (tints borders on focus), Colored 2 (tints borders always), Colored 3 (tint titlebars+borders on focus), and Colored 4 (tints titlebar on focus, borders always)

The theme also contains a unique “accent color” feature, which works like Windows 10. This lets you set a single main color which gets mixed and reused in lots of places (such as the taskbar, Start menu, text highlight colors, sliders, menu items, etc). As you can probably imagine, this feature can also be put to use for differentiating VMs and complementing the window border colors.

You can find the theme here. The instructions to set it up (which are mostly copy pasted from the guide txt file) are below.

QUBES OS 4.3 GUIDED SETUP (~10-20 minutes depending on VM count)
Populate and run the following command in Dom0 to copy the theme to Dom0 [DISCOURAGED BY QUBES DEVS FOR OBVIOUS REASONS]

qvm-run --pass-io <source-vm-name> "cat ~/Downloads/Fake10-v4.tar.gz" > ~/Desktop/Fake10.tar.gz

Extract the theme by running “tar -xvzf ~/Desktop/Fake10.tar.gz”
Review reload-theme.sh to ensure there is nothing malicious inside
Review the entire install.sh file to ensure there is nothing malicious inside
Compare the installer SHA256 hash to the one the download page (check in changelogs)
Run install.sh
Answer the prompts, read, and follow instructions
The installer will list the remaining steps when it finishes
On the unlikely chance your XFCE panel breaks, run “xfconf-query -c xfce4-panel -p / -R -r” and reboot to restore the panel [TROUBLESHOOTING]

QUBES OS 4.3 MANUAL SETUP (~40-70 minutes depending on VM count)
—Dom0—
Populate and run the following command in Dom0 to copy the theme to Dom0 [DISCOURAGED BY QUBES DEVS FOR OBVIOUS REASONS]

qvm-run --pass-io <source-vm-name> "cat ~/Downloads/Fake10-v4.tar.gz" > ~/Desktop/Fake10.tar.gz

Extract the theme by running “tar -xvzf ~/Desktop/Fake10.tar.gz”
Modify the following CSS by running “nano ~/Desktop/Fake10/Theme/Fake10/gtk-3.0/gtk.css”

.xfce4-panel .tasklist button box image {
	background-color: transparent;
	margin-left: 5px; <----- [CHANGE TO 9PX]
}
.xfce4-panel .tasklist button:checked box image,
.xfce4-panel .tasklist button:hover box image {
	margin-left: 9px; <----- [CHANGE TO 13PX]
}

This fixes the taskbar program icon alignment since they render smaller on this version of XFCE/Qubes.

Also modify the following line of CSS

#whiskermenu-window .category-button {
	border: none;
	background-color: transparent;
	min-width: 33px; <----- [CHANGE TO 36PX]
	min-height: 36px;
	-gtk-icon-style: symbolic;
}

This fixes start menu category button alignment with the persistent scroll bars. Since Qubes has a ton of categories, not all are visible at once usually, which changes the behavior.

Install Fake10 like normal (guide below)
Copy the window borders from ~/Desktop/Fake10/Qubes/Themes/ to ~/.themes/ and apply one in Window Manager
Modify the following line by running “sudo nano /usr/lib/qubes/icon-receiver” to prevent icon tinting [OPTIONAL]

icon_tinted = icon.tint(color) <----- [CHANGE TO "icon_tinted = icon"]

Change the VM colors to gray if you don’t like the colored context menu borders [OPTIONAL]
If the cursor theme isn’t working, overwrite the Adwaita cursors in /usr/share/icons/Adwaita/cursors/ [TROUBLESHOOTING]
Reboot system to fix icons, cursors, fonts, scrollbars, and alignment
—Other VMs—
Install the UNMODIFIED Fake10 theme in the rest of the VMs (setting accent colors is recommended, skip the taskbar section) (again, guide below)
For sys-net specifically, change the VM color to gray and overwrite the icons in ~/.icons/Fake10/16/ with icons from ./Qubes/Icons/SysNet/
For whonix-gateway, run " qvm-run -u root whonix-gateway-18 ‘pcmanfm-qt’ " to open a file explorer in root
Copy the sdwdate icons from ./Qubes/Icons/ to the Whonix Gateway VM and overwrite the old icons in /usr/share/sdwdate-gui/icons/

STANDARD SETUP GUIDE
—Main—

Move the font folders from ./Fonts/ to ~/.local/share/fonts/
Move everything inside ./Icons/ to ~/.icons/
Move the images in ./Wallpaper/ to your wallpaper folder [OPTIONAL]
Set your desired accent color hex code inside ./Theme/Fake10/gtk-3.0/gtk.css (Refer to colors.png for default Windows accent colors) [OPTIONAL]
Set your accent color hex code at the bottom of ./Theme/Fake10 Accent Color/xfwm4/themerc [OPTIONAL]
Move the folders inside ./Theme/ to ~/.themes/
Add the following text to the last line of ~/.bash_profile, ~/.profile, and ~/.xsessionrc: export GTK_OVERLAY_SCROLLING=0
Run "rm -rf ~/.cache/fontconfig && rm -rf ~/.fontconfig && fc-cache -rv"
Run "gtk-update-icon-cache -f -t ~/.icons/Fake10/"
Run "xfce4-panel -r"
Appearance > Style > Fake10
           > Icons > Fake10
           > Fonts > Default Font = Segoe UI Regular 9px
                   > Default Monospace Font  = Consolas Regular 12px
                   > Sub-pixel order = RGB (unless you aren't on a RGB monitor)
                   > Custom DPI setting = Disabled
Window Manager > Style > Theme = Fake10 (you will set it to the Qubes theme later)
                       > Title Font = Segoe UI Regular 9px
                       > Title Alignment = Left
                       > Shade Button = Hidden [OPTIONAL]
Mouse and Touchpad > Theme > Fake10 or Fake10 Evil

—Taskbar and Start Menu—

Panel Preferences > Delete Panel 2
                  > Panel 1 > Display > Unlock the panel, drag it to the bottom, re-lock
                                      > Row size (pixels) = 40px
                            > Appearance > Style = Solid color (required to remove 1px border)
                                         > Color = #101010
                                         > Fixed icon size (pixels) = 24px
                            > Items > Set in order: Whisker Menu, Window Buttons, Separator, Status Tray, PulseAudio, Clock, Notification Plugin, Separator
                                    > Replace right separator with Show Desktop [OPTIONAL]
                                    > Left Separator > Style = Transparent
                                                     > Expand = Enabled
                                    > Right Separator > Style = Transparent
                                    > Window Buttons > Show handle = Disabled
                                                     > Show button labels = Enabled
                                    > Status Tray Plugin > Fixed icon size (pixels) = 16px
                                                         > Square items = Enabled
                                    > Clock > Date Font > Segoe UI Regular 9px
                                            > Time Font > Segoe UI Regular 9px
                                            > Set layout and format to your country standard
                                    > Whisker Menu > General > Show category names = Disabled
                                                             > Show application descriptions = Disabled
                                                             > Category icon size = Very small
                                                             > Menu width = 392 [OPTIONAL]
                                                             > Menu height = 640 [OPTIONAL]
                                                   > Appearance > Position categories on left = Enabled
                                                                > Position search entry on bottom = Enabled
                                                                > Position commands next to search entry = Enabled
                                                                > Profile = Hidden [OPTIONAL]
                                                                > Set the icon to your preferred start menu icon
                                                   > Behavior > Show confirmation dialog = Disabled
                                                   > Commands > Enable Shut Down, disable the other buttons
Keyboard > Application Shortcuts > Add "xfce4-popup-whiskermenu" and bind it to your start keys [OPTIONAL]
Window Manager Tweaks > Compositor > Show shadows under dock windows = Disabled
Move ./reload-theme.sh to ~/.config/autostart/ (NECESSARY TO MAKE THE TASKBAR WORK, MAKE SURE IT IS SAFE!)
Run "chmod +x reload-theme.sh" in the same directory as the shell script
Session and Startup > Application Autostart > Add the reload-theme shell script to trigger on login
Power Manager > System > Critical Battery Power Level = 20 (to match theme icons, if you have a battery)
                       > System tray icon = Enabled (if you have a battery)

—Terminal—

Terminal > General > Initial title = "Command Prompt"
                   > Dynamically-set title = Isn't displayed [OPTIONAL]
                   > Cursor Shape = Underline
                   > Cursor blinks = Enabled
         > Appearance > Font = Consolas Regular 11px
                      > Allow bold text = Disabled
                      > Display menubar in new windows = Disabled
         > Colors > Text Color = #CCCCCC
                  > Background Color = #0C0C0C

—Thunar File Explorer—

Thunar > Preferences > Side Pane > Shortcuts Pane Icon Size = 16px
       > Toolbar > Disable Home
       > View > Location Selector = Buttons Style [OPTIONAL]
Install xdg-user-dirs and run "xdg-user-dirs-update" to create user directories which use theme icons [OPTIONAL]
Bookmark the user directories (in order: Desktop, Documents, Downloads, Music, Pictures, Videos) [OPTIONAL]

—Final Touches—

Ristretto > View > Show Toolbar = Disabled
                 > Show Status Bar = Disabled
Notifications > General > Fade out = Disabled [OPTIONAL]
			> Slide out = Enabled [OPTIONAL]
              > Appearance > Theme = Fake10
                           > Opacity = 100%
                           > Default position = Bottom right [OPTIONAL]
              > Log > Log notifications = Enabled, Always
Desktop > Desktop Icons > Icon Size = 48px [OPTIONAL]
        > File/Launcher Icons > Disable Home, File System, and Devices [OPTIONAL]
Workspaces > Number of workspaces = 1 [OPTIONAL]
XFCE Screensaver > Lock Screen > User Switching = Disabled [OPTIONAL]
Customize desktop icon label colors and shadows based on your wallpaper near the bottom of Fake10/gtk-3.0/gtk.css [OPTIONAL]
Firefox > Settings > Extensions & Themes > Dark = Enabled (if you use Firefox)
Reboot system to fix fonts, scrollbars, and alignment

WINDOWS 10 ACCENT COLOR CODES (& QUBE COLORS)

If you really like this theme and/or are using it, please leave a comment or rate it on the download page. I worked hard on it and would love to hear your feedback!
If you have any questions you can ask them here. Have a nice day!

16 Likes

Cool theme for this topic Windows Camouflage for Qubes

4 Likes

This is incredible!

4 Likes

Thank you!

Just revised the guide and did some slight polishing:

  • Brightened window borders to be more accurate to real world usage (borders in W10 are semi-transparent)
  • Updated the shell script to ensure the GTK theme is applied to the show desktop button
  • Added an icon for the sdwdate program in Whonix so you don’t need to hide it anymore
  • Modified the Qubes device manager tray icon (now looks like a USB stick instead of a keyboard and speaker)

This will probably be the last dedicated theme update for Qubes or the Qubes guide so I won’t post further changelogs to this forum.

1 Like

Thank you for your contribution.

1 Like

:face_vomiting:

1 Like

:rofl: Love this! Look forward to trying it sometime!

2 Likes

Do you have a Windows 7 version of this? I am a “fruiter aero enjoyer”
myself.

1 Like

Pic for reference:

2 Likes

Hello,

Do I have to run the commands for this specific Win10 Theme or any XFCE theme? or the theme has to be compatible with Qubes as an OS ?!

Never tried to download an external XFCE theme on Qubes OS, wondering if it will working with no issues.

Thank you

1 Like

No - but you can probably port your own to Qubes fairly easily. There are plenty of Win7 XFWM4/GTK themes already available at the moment. For the XFCE window borders, Qubes is only able to recolor/tint .xpm files. Any .png files will be unchanged and conveniently you can layer pngs on top of the xpm files to enforce exact colors for the things you want (For example, ensuring the minimize, maximize, & close buttons stay white). I accidentally found this “feature” when I was cycling through pre-installed themes and applied a Linux Mint one (which used pngs). You can read XFCE’s official guide on making window borders here.

This is what I do for the “title-left-inactive” portion of my XFWM4 theme border:


Basically, leave the stuff you want tinted in xpm format, and use pngs otherwise.

For Win7 specifically, the only stuff that you would probably need to do is make png overlays for the buttons. However, if you don’t feel like doing this, you can always install the theme normally and deal with slightly tinted colors on the buttons or I could make it myself if you really want me to, but you’d have to give me a bit. I’m trying to explain this as well as I can in case any other users want to port/make their own themes, so no worries if that’s the case.

After the borders are done you can just apply any Win7/WinAPI looking GTK theme to Dom0 and the VMs and it’d be passable. Finally, if you or other readers are interested, here are the names of the GTK icons I modify for Qubes specifically (used in the system tray and context menus):

  • qubes-delete
  • qubes-devices
  • qubes-files
  • qubes-terminal
  • qubes-vm-kill
  • qubes-vm-pause
  • qubes-vm-restart
  • qubes-vm-settings
  • qubes-vm-shutdown
  • qubes-vm-unpause
  • qui-clipboard
  • qui-disk-space
  • qui-domains-scalable
  • qui-updates
  • sdwdate-success (FOR WHONIX)
  • sdwdate-wait (FOR WHONIX)
  • nm-device-wired (FOR NETVM)
  • nm-no-connection (FOR NETVM)
  • nm-signal-00 (FOR NETVM)
  • nm-signal-25 (FOR NETVM)
  • nm-signal-50 (FOR NETVM)
  • nm-signal-75 (FOR NETVM)
  • nm-signal-100 (FOR NETVM)

Further theming info: NetworkManager icons are modified here to prevent them from displaying all white, since all system tray icons passed from VMs have RGB255,255,255 backgrounds which clash with the dark theme/taskbar color.

2 Likes

absolutely love the camouflage approach. thanks for your contribution!

2 Likes

Thanks for your interest! The only commands you really need to run to install any XFCE theme on Qubes are the ones to move the theme to Dom0 and extract it. Most of the stuff (CSS modification, XFCE setting changes) in this guide are to help make your desktop more accurate to Windows 10 in spirit of this theme.

To summarize the stuff being done in the guide with the commands:

  • Reloading the font cache so you don’t need to restart your PC immediately to apply newly installed fonts
  • Reloading the XFCE4 panel (specifically to restart the clock plugin since it refuses to acknowledge the new fonts otherwise)
  • Updating the GTK icon cache once the theme is installed (good practice)

What’s going on in the shell script:

  • Changes the theme back and forth immediately on user log on (to specifically fix how the taskbar looks)
  • Reloads the XFCE4 panel (because the GTK theme isn’t applied to the show desktop plugin button occasionally and this fixes it)

As good practice, VERIFY the contents of the shell script to make sure it wasn’t modified en route to you/isn’t malicious, especially since you’re running it on Dom0

You can ignore the part where I tell you to install xdg-user-dirs since they’re installed on most of the standard Qubes VMs already (the non-Qubes guide was written for Arch Linux).

For the settings changes, I highly recommend that you do them if you want to make your desktop look like Windows. Of course, it’s your system so you can do whatever you want. I labeled some things not completely necessary as optional in case you’re wondering what’s important or not. The only reason this theme is different than other XFCE/GTK themes is that I have dedicated icons and window borders to specifically handle Qubes. You can always install any other theme. :grinning:

3 Likes

Thanks for the extra info @honu :+1:

Sure will try to play around with it as soon as I fix and set some settings on Qubes.

2 Likes

Hello @honu Can you add a qube color for the window title? So the qubes stand out more brightly? I really like your theme! but sometimes I get confused with the windows because of my old habit (when the default Qubes theme highlighted the window borders and title very heavily) :slightly_smiling_face: I’m not a very advanced user and I don’t know how to add it myself

upd: Oh sorry, it looks like I just didn’t add the theme correctly. The window title is highlighted very nicely. But could the dom0 title bar be changed to white (it’s currently black)? and add the gray qube gray color (it’s currently also black)
The text‑selection and menu highlight colors use the qube color shown in your screenshot – is that something that needs to be activated separately (add the theme to each qube)?

1 Like

The screenshots show a thin colored outline around the apps windows. Is it possible for the window manager border and title bar to match the apps qube as they do with the default theme?

1 Like

The text selection highlight, rubberband color, slider bars, etc. are based on the theme’s accent color which you can define in the very first line of the gtk.css file in the GTK3 theme folders. You’ll have to go in manually to each VM and set the desired color for them. If you have an extra Windows 10 PC, you can go to the accent color customization and hover over a similar color to get the name to reference to the respective hex code listed in the guide:


Of course, you can also use whatever color you want (or color pick the exact color Qubes uses for the UI), but I like using the colors by the Microsoft designers because white text is very easy to read on the majority of these.

For the window title coloring, I only currently have the 4 XFWM4 themes (with 3 dedicated for Qubes). The differences between the three Qubes themes are only with how the 1px border is handled, so I don’t have one which has the entire title bar recolored. However, you might be able to use the non-Qubes theme in the meantime if you want more color contrast (the buttons will be recolored too, though, which I don’t like). @xahare just left a post when I was typing this asking the same thing so I’ll probably add a new fourth Qubes border which handles this the next time I update the theme.

If you’re talking about the actual title as in the font/text color, Qubes OS forces the color of the title text to be the most optimal monochrome shade/tint for contrast purposes. This seems to be hardcoded so I can’t change it. code here Even if I were able to change it, I wouldn’t know how to differentiate the windows. However, this isn’t a big deal and I didn’t expect to be able to do this anyways.

For Dom0, the reason it’s black is because Dom0 doesn’t have colors applied to it/isn’t tinted and the theme is dark by default. For gray VMs, the color is being applied but it’s probably very hard to notice. I should be able to fix both of these issues if I’m coloring the entire title bar color, though. You might have to give me a couple weeks as I’m working on other projects but stay tuned. :slight_smile:

2 Likes

Thanks!

1 Like

@xahare @newqube I created two new window borders: Colored 3 and Colored 4. Check the updated guide for pictures. I’ll add a fifth colored border (which would tint every title bar always) eventually, if I can manage to make it look good. I was having some issues with the text coloring but I might be able to fix it. Other than that, I also added a brand new auto-installer script which substantially reduces the installation time. The script should work great with Dom0, the standard template VMs, and regular Arch/Debian installs.

1 Like

This looks so cool. Does it work on Qubes 4.2.4? I cant upgrade to 4.3 yet

2 Likes