Giter VIP home page Giter VIP logo

xfce-winxp-tc's Introduction

xfce-winxp-tc

This is my little chipping-away spot for a Windows XP Total Conversion for XFCE.

luna-blue-promo professional-promo classic-promo

What?

Essentially this repo is a 'project' to replicate the XP experience on XFCE / Linux in general. This includes everything from desktop themes, icons, cursors, all the way to programs and the shell itself.

Please be aware of the following:

  • This project is NOT for installing on your parents/grandparents/whoever's computer to 'ease them into Linux' or something, I share this project for the interest of Windows/Linux enthusiasts
  • There is no attempt to pretend the system is not Linux - consider this as 'Windows XP on the Linux kernel' (ie. you cannot expect there to be a C: drive under My Computer)
  • Everything is massively under construction, and I am one person, so please don't whinge to me about how x/y/z doesn't look 100% like Windows XP, or that I haven't made program a/b/c

Why?

I used to use Luna theme ports on Windows 7, which has now lost support, and customisability is non-existent/blown away by WU on Windows 10 - switching to Linux seemed like the best choice.

There are themes that aim to replicate the Windows XP visual styles already, however as anyone who has tried this stuff knows, themes are either lacking or only go so far. This project differs in that I aim for as close to pixel-perfect as possible, and write programs to recreate the complete Windows XP environment (themes alone cannot reproduce the Start menu in the screenshots above).

Building / Installation

For AUR (Arch User Repository) there is an xfce-winxp-tc-git package maintained by @SelfRef here.

Otherwise, please refer to /packaging/README.MD for build instructions. ๐Ÿ˜

The theme(s) are buggy!

This is almost certainly true, especially seeing as theming GTK isn't really a supported feature. If you're using themes from this repository and programs look broken, you should file issues here rather than pestering the developers of said program.

I hope to cover theming for standard GTK widgets across the board, but there will always be potential bugs with subclassed widgets and the like - they'll have to be handled on a case-by-case basis.

The theme is now based directly from Adwaita to hopefully maximise compatibility and make it easier to fix theme bugs. A refactored form of Adwaita from the upstream GTK 3 sources exists in this repo to make it easier to base themes from/fix problems.

Licence

The source code in this repository, essentially any text files, such as SASS, C, Bash script source code, are licensed under GPL 2.0.

This licence obviously does not cover the assets from Windows/Office (images, sounds, fonts etc.) - those are still Microsoft's copyright (packaging will mark components using these as non-free). They're in this repo because I am lazy. ๐Ÿ˜›

Roadmap?

I don't have a fancy looking roadmap document for this repo - there's too much to list really. Essentially, if something was in Windows XP, it's on my mind.

As part of that, user-friendliness is always a target - besides themes and programs, I aim to one day have a nice setup application/process akin to XP's. And perhaps an OOBE if I can figure that out (mostly for the nostalgic music).

xfce-winxp-tc's People

Contributors

comdlg32 avatar kfarwell avatar rjkilpatrick avatar rozniak avatar zuloyt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xfce-winxp-tc's Issues

Review title bar colour transition problem in Luna Blue

Reporting this as it's an outstanding issue that I can't help but notice - the title bar has a very sudden colour transition from the light->dark blue:
image

Really this is due to the fact that xfwm4 does not have any support for stretching a bitmap across the title bar, this was the best I could come up with originally. Essentially the transition takes place across the icon portion of the title bar, the rest is tiled.

Would like to see if there's a better looking workaround for this.

List boxes are unthemed

The list box control needs theming - not by much I think, maybe an adjustment to padding and remove the :hover style as shown here:

image

Review Adwaita - possibly refactor and base themes from there?

I've had this thought in my head for a while, and that is whether it is worth reviewing over Adwaita's upstream source and basing the themes from there.

This sounds like the obvious thing to do, but it's easier said than done. Though neither path is easy to be honest:

  • The current method has involved me going through GTK documentation and various other theme sources to try and piece things together - this has got us a number of themed controls so far, but with breakages unfortunately on a per-application basis
  • Basing the theme on Adwaita's upstream source and trying not to deviate too far in terms of structural styles should allow the themes to work without causing per-application breakages, however I need to invest time into understand the Adwaita source and probably refactor it to make it easier to work with

The difficulty really is that Adwaita's CSS, even 'split up' into SASS/SCSS it's like 4000 lines of style. It's a mammoth basically, and I wonder if it's possible to make it easier to understand before basing the XP themes on it:

  • First step would be to have a gloss over the Adwaita CSS as it stands
  • Understand the hierarchy of the rules defined
  • Try to group things into individual documents, akin to this repo with a stylesheet per control / element in the UI
  • Begin refactoring the existing work on the Luna theme to this refactored Adwaita source

I will begin looking at how viable this is, as I would really like some way of working closely with Adwaita itself since that is the theme that application developers will be working with. If the XP theme is a 'visual' modification of this theme then in theory there should not be compatibility issues (or at least, they should be very minor).

Numeric spin buttons are unthemed

The numeric spin button control needs theming - it's partially taking from the default button styles, needs some work on it specifically.

image
image

I'm not sure how accurate I can make it to XP, since XP arranges the horizontal buttons differently.

CSD windows are unthemed

The CSD window borders and embedded controls along the 'header bar' are unthemed, and mismash with default Adwaita styles.

Here's an example of a CSD dialog from the widgets factory:
image

I'm including the embedded button controls in this too - imo these should be styled as the blue caption buttons, except for :last-child which I think we can safely assume will be the red close button.
image


For reference (since it might be useful) here are examples of a couple borderless, but themed, windows made in Windows XP.
image
image

Might be worth looking at for ideas on handling these CSD windows.

Disabled button state is not styled

There is no theming for GtkButton in the disabled state - I must've forgotten about it, the necessary bitmap is present in the Resources folder.

GtkNotebook has only been themed tabs at top

As in title, I have so far only themed GtkNotebook when the orientation has tabs at the top of the control. When the orientation is anything else, the theming appears broken:
image

Selected rows in tree views in Mozilla applications have no style

I presume this to affect Mozilla applications in general though of course I notice this in Thunderbird since it is primarily using GtkTreeView.

The GtkTreeView styles work in other applications, notably the gtk3-widget-factory, but in Mozilla applications the selected row has no style.

Here's an example - the email is selected, but you wouldn't know it from the screenshot!
image

Similar to scrollbars there must be something specific to their widgets.

Start menu xfce-panel plugin

Whilst theming the built in task switcher and application launcher plugins for xfce-panel is nice, it would be neat to have a proper Start menu (with the Start button) and XP-like taskbar for a closer experience to XP.

With my tiny knowledge of GTK, I suppose the Start stuff could be put together using subclassed GtkButton for the button itself and GtkPopover for the Start menu flyout. Perhaps could reference existing launchers to see how this is achieved.

For the taskbar, I know how to use WNCK for watching open windows so it is mostly the GUI portion that needs looking into.

Fix unit warnings from GTK

Usually not visible, but if you run GTK 3 apps from command line you'll get a bunch of warning spam regarding the theme because some CSS rules do not have any units (like px).

Simple enough fix: add the missing units.

Switches are unthemed

The switch control needs theming - it's a mishmash of styles inherited by button and Adwaita at the moment.

image
image

Bit of an odd one... Windows XP has no direct counterpart for this control so not entirely sure how to go about this one in terms of design.

Overlapping text in GtkComboBox widgets

GtkComboBox widgets with autosize, where the width of the widget is determined by the longest text size contained, will result in text overlapping the drop-down button if the longest value is selected.

Example:
image

Separate theme structure and theme resources

Right now the project layout is designed around the Luna (Blue) theme - the common structural stuff should be separated from the theme resources. That way the build script should be able to 'swap in' resources from whatever theme to make it easier to port across more of them.

Button images should be removed

Icons/images on standard GtkButton widgets should be removed as buttons didn't natively support this in Windows XP - it looks out of place and Linux-y.

Popovers are unthemed

The popover control need theming - it's largely unchanged from Adwaita other than picking up the base colours.

image

Reckon these should probably look like borderless toolbar windows like this volume control from XP:
image

Linked buttons are unthemed

Buttons that are within a container (GtkBox) with the linked style are not themed and fall back to the Adwaita styles where the borders are removed.

A couple of examples from the widget factory:
image
image

Build script should support other package formats (or none at all)

As title says - currently there is a single build script build-deb.sh. It works well enough to package the theme into a .deb file for easy installation on distros that use that package format, for others it's a bit of a pain currently.

Need things done:

  • Support using no package manager - output the files into a nice directory structure ready for copying in, so at least users using a format not implemented by the build script can still install the files themselves (not ideal but so it works)
  • Look into other popular package formats (like AUR?) and see about supporting them

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.