Welcome Dialog

Welcome to the Community!

We have a brand new look! Take a tour with us and explore the latest updates on Adobe Support Community.


Photoshop Purple Skin

New Here ,
Oct 05, 2020 Oct 05, 2020

Copy link to clipboard

Copied

Hello, I saw this Photoshop skin in purple on Youtube.

How can I set my Photoshop to purple.

Do I have to edit a skin file for this ?
Unfortunately I have not found anything on the internet.

I would be very grateful for help.

 

Photoshop Purple.jpg

 

TOPICS
Actions and scripting, Windows

Views

6.7K

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Adobe Community Professional , Oct 05, 2020 Oct 05, 2020
I do not know why, but let it be  Only view values. Maybe someone will come in handy. #target photoshop var f = File(app.path + '/Required/UIColors.txt') if (f.exists) { var s = '(' f.open('r') while (!f.eof) { s += f.readln() } f.close() s += ')' s = s.replace(/00\./g, '0.') //some lines contain numbers like 00.90 } var obj = eval(s) var w = new Window("dialog"), g = w.add("group"), s = w.add("scrollbar"), c = obj.Colors; w.text = "UIColors" w.maximumSize.height = 400 ...

Likes

Translate

Translate
Adobe Community Professional ,
Oct 05, 2020 Oct 05, 2020

Copy link to clipboard

Copied

The whole point of the Photoshop interface is that it should not interfere with the image, and it should not disturb your color perception. No doubt such modifications exist out there, but nothing like this is possible natively in Photoshop, and this is probably the wrong place to ask.

 

 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 05, 2020 Oct 05, 2020

Copy link to clipboard

Copied

There is no supported way to do that

 

Dave

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 05, 2020 Oct 05, 2020

Copy link to clipboard

Copied

\Adobe\Adobe Photoshop 2020\Required\UIColors.txt

 

There RGBA matrices for 4 themes (from dark to light)

Have some fun with it. 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 05, 2020 Oct 05, 2020

Copy link to clipboard

Copied

Nice to know … but this color modification itself would seem to be a degredation of Photoshop’s interface that no professional user should consider except for temporary »messing around«. 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 05, 2020 Oct 05, 2020

Copy link to clipboard

Copied

Everyone has their own intentions. Perhaps the author really needs it 🙂

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 05, 2020 Oct 05, 2020

Copy link to clipboard

Copied

In that case he probably doesn't need Photoshop. Photoshop is professional software that people use for a living, it's not a toy.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 06, 2020 Oct 06, 2020

Copy link to clipboard

Copied

it's both. some people use it professionally and some people use it as a toy. nobody's trying to change YOUR UI... they want to change their own. 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 07, 2020 Oct 07, 2020

Copy link to clipboard

Copied

If you see someone doing something that might be a huge mistake it does not seem improper to point it out. 

Sure, they may have made a deliberate choice and coconsiderd all the pertinent facts but they might also have overlooked something. 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 08, 2020 Oct 08, 2020

Copy link to clipboard

Copied

it would have been fine to say "i think that's a bad idea". But instead they implied that nobody is allowed to use this software unless they are a "professional" and they leave the UI alone. Then went further to say that photoshop is not a toy, as though it should never be used for fun to create joy and happiness for others.

photoshop can be pretty much whatever we want it to be.. why discourage people who want to use it for fun? 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jul 22, 2021 Jul 22, 2021

Copy link to clipboard

Copied

Besides there's a reason why the option of Customising th UI is there... No?

dude this guy totally woke up on the wrong side of the bed. [abuse removed by moderator] and enjoy the "Non customised life" man let us enjoy the Scrip... @jazz-y thanks bro you rocked it!!! #confusetheenemies

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 05, 2020 Oct 05, 2020

Copy link to clipboard

Copied

I do not know why, but let it be 🙂 Only view values. Maybe someone will come in handy.

2020-10-05_22-53-24.png

 

#target photoshop

var f = File(app.path + '/Required/UIColors.txt')
if (f.exists) {
  var s = '('
  f.open('r')
  while (!f.eof) { s += f.readln() }
  f.close()
  s += ')'
  s = s.replace(/00\./g, '0.') //some lines contain numbers like 00.90
}

var obj = eval(s)

var w = new Window("dialog"),
  g = w.add("group"),
  s = w.add("scrollbar"),
  c = obj.Colors;

w.text = "UIColors"
w.maximumSize.height = 400
w.orientation = "row"
g.orientation = "column"

for (a in c) {
  colorGroup(g, a, [c[a][0], c[a][1], c[a][2], c[a][3]])
}

s.onChanging = function () { g.location.y = -100 * this.value }

w.onShow = function () {
  s.size.height = w.size.height - 30
  s.size.width = 20
  s.location = [g.size.width + 30, 15]
  s.maxvalue = (g.size.height - w.size.height + 15) / 100
  w.size.width = 280
}

w.show()

function colorGroup(parent, cpt, color) {
  var g = parent.add("group"),
    s = g.add("statictext");
  g.orientation = "row"
  g.alignChildren = ["left", "center"]
  s.preferredSize.width = 100
  s.text = cpt

  for (var i = 0; i < 4; i++) {
    addColor(g, color[i])
  }

  function addColor(parent, c) {
    var img = parent.add("image")
    img.preferredSize.width = img.preferredSize.height = 20

    img.onDraw = function () {
      gfx = this.graphics
      gfx.ellipsePath(2, 2, 15, 15)
      gfx.fillPath(gfx.newBrush(gfx.BrushType.SOLID_COLOR, [c[0] / 255, c[1] / 255, c[2] / 255, c[3]]))
      gfx.strokePath(gfx.newPen(gfx.PenType.SOLID_COLOR, [0, 0, 0], 2))
    }
  }
}

 

 

EDIT 1:

Added the ability to change colors from the interface and save to file. In theory, the colors of the interface can be edited - in practice there are so many of them that it is still inconvenient to do it.
(forgive me)

2020-10-06_00-13-38.png

 

#target photoshop

var f = File(app.path + '/Required/UIColors.txt')
if (f.exists) {
  var s = '('
  f.open('r')
  while (!f.eof) { s += f.readln() }
  f.close()
  s += ')'
  s = s.replace(/00\./g, '0.') //some lines contain numbers like 00.90

  var obj = eval(s),
    w = new Window("dialog", "UIColors"),
    p = w.add("panel"),
    g = p.add("group"),
    b = w.add("button", undefined, "Save UIColors.txt", { name: "ok" }),
    s = w.add("scrollbar");

  p.maximumSize.height = 400
  g.orientation = "column"

  for (a in obj.Colors) {
    colorGroup(g, a, [obj.Colors[a][0], obj.Colors[a][1], obj.Colors[a][2], obj.Colors[a][3]])
  }

  s.onChanging = function () { g.location.y = -100 * this.value }

  b.onClick = function () {
    var s = obj.toSource()
    s = s.substr(1, s.length - 2)
    f = (new File(app.path + '/Required/UIColors.txt')).saveDlg("Save file", "*.txt");
    f.open('w');
    f.write(s)
    f.close()
    w.close()
  }

  w.onShow = function () {
    s.size.height = p.size.height
    s.size.width = 20
    s.location = [p.size.width + 30, 15]
    s.maxvalue = (g.size.height - p.size.height + 15) / 100
    w.size.width = s.location.x + 40
    w.size.height = b.location.y + 40
  }

  w.show()

  function colorGroup(parent, cpt, col) {
    var g = parent.add("group"),
      s = g.add("statictext", undefined, cpt);
    g.orientation = "row"
    g.alignChildren = ["left", "center"]
    s.preferredSize.width = 200

    for (var i = 0; i < 4; i++) {
      addColor(g, col[i], cpt, i)
    }

    function addColor(parent, col, cpt, idx) {
      var img = parent.add("image")
      img.preferredSize.width = img.preferredSize.height = 20

      img.onDraw = function () {
        var gfx = this.graphics
        gfx.ellipsePath(2, 2, 15, 15)
        gfx.fillPath(gfx.newBrush(gfx.BrushType.SOLID_COLOR, [col[0] / 255, col[1] / 255, col[2] / 255, col[3]]))
        gfx.strokePath(gfx.newPen(gfx.PenType.SOLID_COLOR, [0, 0, 0], 2))
      }

      img.onClick = function () {
        var a = new SolidColor
        a.rgb.red = col[0]
        a.rgb.green = col[1]
        a.rgb.blue = col[2]
        app.foregroundColor = a
        if (app.showColorPicker()) {
          var a = app.foregroundColor;
          obj.Colors[cpt][idx][0] = col[0] = a.rgb.red
          obj.Colors[cpt][idx][1] = col[1] = a.rgb.green
          obj.Colors[cpt][idx][2] = col[2] = a.rgb.blue
          parent.location.y = parent.location.y - 1
          parent.location.y = parent.location.y + 1
        }
      }
    }
  }
}

 

 

EDIT 2: add filter panel to fast search settings

2020-10-06_22-30-02.png

 

#target photoshop

var f = new File(app.path + '/Required/UIColors.txt')
if (!f.exists) f = File.openDialog("Select your UIColors.txt", "*.txt", false)
if (f.exists) {
  var s = '('
  f.open('r')
  while (!f.eof) { s += f.readln() }
  f.close()
  s += ')'
  s = s.replace(/00\./g, '0.') //some lines contain numbers like 00.90

  try { var obj = eval(s) } catch (e) { alert(e, decodeURI(f.name), true) }

  if (obj) {
    var w = new Window("dialog", "UIColors"),
      gt = w.add("group"),
      st = gt.add('statictext'),
      e = gt.add('edittext'),
      gc = w.add("group"),
      p = gc.add("panel"),
      s = gc.add("scrollbar {stepdelta: 100}", [0, 0, 20, 400]),
      g = p.add("group"),
      b = w.add("button", undefined, "Save UIColors.txt", { name: "ok" });

    gt.alignChildren = ["left", "fill"];
    gt.alignment = ["fill", "center"];
    st.text = "filter:"
    p.maximumSize.height = p.minimumSize.height = 400
    e.preferredSize.width = 310
    g.orientation = "column"

    loadLabels()

    s.onChanging = function () { g.location.y = -100 * this.value }

    b.onClick = function () {
      var s = obj.toSource()
      s = s.substr(1, s.length - 2)
      f = (new File(app.path + '/Required/UIColors.txt')).saveDlg("Save file", "*.txt");
      if (f) {
        f.open('w');
        f.write(s)
        f.close()
        w.close()
      }
    }

    e.onChanging = function () {
      var len = g.children.length - 1
      for (var i = len; i >= 0; i--) { g.remove(g.children[0]) }
      loadLabels(e.text)
      w.layout.layout(true)
      s.value = s.minvalue = 0
      s.maxvalue = (g.size.height - p.size.height + 15) / 100
    }

    w.onShow = function () {
      s.value = s.minvalue = 0
      s.maxvalue = (g.size.height - p.size.height + 15) / 100
    }

    w.show()

    function loadLabels(filter) {
      filter = filter ? filter.toUpperCase() : null
      for (a in obj.Colors) {
        if (a.toUpperCase().indexOf(filter) != -1 || !filter) {
          colorGroup(g, a, [obj.Colors[a][0], obj.Colors[a][1], obj.Colors[a][2], obj.Colors[a][3]])
        }
      }
    }

    function colorGroup(parent, cpt, col) {
      var g = parent.add("group"),
        s = g.add("statictext", undefined, cpt);
      g.orientation = "row"
      g.alignChildren = ["left", "center"]
      s.preferredSize.width = 200

      for (var i = 0; i < 4; i++) {
        addColor(g, col[i], cpt, i)
      }

      function addColor(parent, col, cpt, idx) {
        var img = parent.add("image")
        img.preferredSize.width = img.preferredSize.height = 20

        img.onDraw = function () {
          var gfx = this.graphics
          gfx.ellipsePath(2, 2, 15, 15)
          gfx.fillPath(gfx.newBrush(gfx.BrushType.SOLID_COLOR, [col[0] / 255, col[1] / 255, col[2] / 255, col[3]]))
          gfx.strokePath(gfx.newPen(gfx.PenType.SOLID_COLOR, [0, 0, 0], 2))
        }

        img.onClick = function () {
          var a = new SolidColor
          a.rgb.red = col[0]
          a.rgb.green = col[1]
          a.rgb.blue = col[2]
          app.foregroundColor = a
          if (app.showColorPicker()) {
            var a = app.foregroundColor;
            obj.Colors[cpt][idx][0] = col[0] = a.rgb.red
            obj.Colors[cpt][idx][1] = col[1] = a.rgb.green
            obj.Colors[cpt][idx][2] = col[2] = a.rgb.blue
            parent.location.y = parent.location.y - 1
            parent.location.y = parent.location.y + 1
          }
        }
      }
    }
  }
}

 

 

EDIT 3:

Added compatibility with the hex format used in CS6 and fixed a couple of points for new versions of Photoshop.
Compatibility with CS6 is rather arbitrary, since a different approach to the organization of the script interface is required to remove hangs during rendering.

 

#target photoshop

var f = new File(app.path + '/Required/UIColors.txt')
if (!f.exists) f = File.openDialog('Select your UIColors.txt', '*.txt,*.cel', false)
if (f) {
  var s = '('
  f.open('r')
  while (!f.eof) { s += f.readln() }
  f.close()
  s = s.replace(/00\./g, '0.') + ')'
  var isHex = s.indexOf('0x') != -1 ? true : false
  try { var obj = eval(s) } catch (e) { alert(e, decodeURI(f.name), true) }


  if (obj) { if (isHex) HexColor(obj) }

  var w = new Window('dialog', 'UIColors'),
    gt = w.add('group'),
    st = gt.add('statictext', undefined, 'filter:'),
    e = gt.add('edittext'),
    gc = w.add('group'),
    p = gc.add('panel'),
    s = gc.add('scrollbar {stepdelta: 100}', [0, 0, 20, 400]),
    g = p.add('group'),
    b = w.add('button', undefined, 'Save UIColors.txt', { name: 'ok' });

  gt.alignChildren = ['left', 'fill'];
  gt.alignment = ['fill', 'center'];
  p.maximumSize.height = p.minimumSize.height = 400
  e.preferredSize.width = 310
  g.orientation = 'column'

  loadLabels()

  s.onChanging = function () { g.location.y = -100 * this.value }

  b.onClick = function () {
    var ext = isHex ? 'cel' : 'txt',
      f = new File(app.path + '/Required/UIColors.' + ext).saveDlg('Save file', '*.' + ext);
    if (f) {
      w.close()
      if (isHex) HexColor(obj, true)
      var s = obj.toSource()
      f.open('w')
      if (!f.write(s.substr(1, s.length - 2))) alert('File access error\nMake sure you have the required access rights')
      f.close()
    }
  }

  e.onChanging = function () {
    var len = g.children.length - 1
    for (var i = len; i >= 0; i--) { g.remove(g.children[0]) }
    loadLabels(e.text)
    w.layout.layout(true)
    s.value = s.minvalue = 0
    s.maxvalue = (g.size.height - p.size.height + 15) / 100
  }

  w.onShow = function () {
    s.value = s.minvalue = 0
    s.maxvalue = (g.size.height - p.size.height + 15) / 100
  }

  w.show()

  function loadLabels(filter) {
    filter = filter ? filter.toUpperCase() : null
    for (a in obj.Colors) {
      if (a.toUpperCase().indexOf(filter) != -1 || !filter) {
        colorGroup(g, a, [obj.Colors[a][0], obj.Colors[a][1], obj.Colors[a][2], obj.Colors[a][3]])
      }
    }
  }

  function colorGroup(parent, cpt, col) {
    var g = parent.add('group'),
      s = g.add('statictext', undefined, cpt);
    g.orientation = 'row'
    g.alignChildren = ['left', 'center']
    s.preferredSize.width = 200

    for (var i = 0; i < 4; i++) {
      addColor(g, col[i], cpt, i)
    }

    function addColor(parent, col, cpt, idx) {
      var img = parent.add('image')
      img.preferredSize.width = img.preferredSize.height = 20

      img.onDraw = function () {
        var gfx = this.graphics
        gfx.ellipsePath(2, 2, 15, 15)
        gfx.fillPath(gfx.newBrush(gfx.BrushType.SOLID_COLOR, [col[0] / 255, col[1] / 255, col[2] / 255, col[3]]))
        gfx.strokePath(gfx.newPen(gfx.PenType.SOLID_COLOR, [0, 0, 0], 2))
      }

      img.onClick = function () {
        var a = new SolidColor
        a.rgb.red = col[0]
        a.rgb.green = col[1]
        a.rgb.blue = col[2]
        app.foregroundColor = a
        if (app.showColorPicker()) {
          var a = app.foregroundColor;
          obj.Colors[cpt][idx][0] = col[0] = a.rgb.red
          obj.Colors[cpt][idx][1] = col[1] = a.rgb.green
          obj.Colors[cpt][idx][2] = col[2] = a.rgb.blue
          parent.visible = false
          parent.visible = true
        }
      }
    }
  }

  function HexColor(obj, backwardMode) {
    for (a in obj.Colors) {
      for (var i = 0; i < 4; i++) {
        for (var x = 0; x < 3; x++) {
          if (backwardMode) {
            obj.Colors[a][i][x] = '0x' + ((obj.Colors[a][i][x] / 255 * 65535) + Math.pow(16, 4)).toString(16).substr(-4)
          } else {
            obj.Colors[a][i][x] = obj.Colors[a][i][x] / 65535 * 255
          }
        }
      }
    }
  }
}

 

 

EDIT 4:

- added macOS support (tnx to c.pfaffenbichler)
- added automatic creation of a backup of the original UIColors.txt

2020-10-14_12-33-30.png

 

 

#target photoshop

f = $.os.indexOf('Windows') != -1 ? new File(app.path + '/Required/UIColors.txt') : new File(app.path.getFiles('*.app')[0] + '/Contents/Required/UIColors.txt')
if (!f.exists) f = File.openDialog('Select your UIColors.txt', '*.txt,*.cel', false)
if (f) {
  var s = '('
  f.open('r')
  while (!f.eof) { s += f.readln() }
  f.close()
  s = s.replace(/00\./g, '0.') + ')'
  var isHex = s.indexOf('0x') != -1 ? true : false
  try { var obj = eval(s) } catch (e) { alert(e, decodeURI(f.name), true) }

  if (obj) {
    if (isHex) HexColor(obj)

    var w = new Window('dialog', 'UIColors'),
      gt = w.add('group {alignment : ["fill", "center"], alignChildren : ["left", "fill"]}'),
      st = gt.add('statictext {text : "filter:"}'),
      e = gt.add('edittext {preferredSize: [310,-1]}'),
      gc = w.add('group'),
      p = gc.add('panel {maximumSize: [355, 400], minimumSize: [355, 400]}'),
      s = gc.add('scrollbar {stepdelta: 100}', [0, 0, 20, 400]),
      g = p.add('group{orientation : "column"}'),
      b = w.add('button', undefined, 'Save UIColors.txt', { name: 'ok' });

    loadLabels()

    s.onChanging = function () { g.location.y = -100 * this.value }

    b.onClick = function () {
      var ext = isHex ? 'cel' : 'txt',
        n = f.saveDlg('Save file', '*.' + ext);
      if (n) {
        if (n.exists) {
          var b = new File(n.path + '/UIColors.bak')
          if (!b.exists) n.copy(b)
        }
        if (n.open('w')) {
          w.close()
          if (isHex) HexColor(obj, true)
          var s = obj.toSource()
          n.write(s.substr(1, s.length - 2))
          n.close()
        } else { alert(decodeURI(n) + '\nFile access error\nMake sure you have the required access rights') }
      }
    }

    e.onChanging = function () {
      var len = g.children.length - 1
      for (var i = len; i >= 0; i--) { g.remove(g.children[0]) }
      loadLabels(e.text)
      w.layout.layout(true)
      s.value = s.minvalue = 0
      s.maxvalue = (g.size.height - p.size.height + 15) / 100
    }

    w.onShow = function () {
      s.value = s.minvalue = 0
      s.maxvalue = (g.size.height - p.size.height + 15) / 100
    }

    w.show()

    function loadLabels(filter) {
      filter = filter ? filter.toUpperCase() : null
      for (a in obj.Colors) {
        if (a.toUpperCase().indexOf(filter) != -1 || !filter) {
          colorGroup(g, a, [obj.Colors[a][0], obj.Colors[a][1], obj.Colors[a][2], obj.Colors[a][3]])
        }
      }
    }

    function colorGroup(parent, cpt, col) {
      var g = parent.add('group{orientation : "row", alignChildren : ["left", "center"]}'),
        s = g.add('statictext', undefined, cpt);
      s.preferredSize.width = 200

      for (var i = 0; i < 4; i++) {
        addColor(g, col[i], cpt, i)
      }

      function addColor(parent, col, cpt, idx) {
        var img = parent.add('image {preferredSize : [20,20]}')

        img.onDraw = function () {
          var g = this.graphics
          g.ellipsePath(2, 2, 15, 15)
          g.fillPath(g.newBrush(g.BrushType.SOLID_COLOR, [col[0] / 255, col[1] / 255, col[2] / 255, col[3]]))
          g.strokePath(g.newPen(g.PenType.SOLID_COLOR, [0, 0, 0], 2))
        }

        img.onClick = function () {
          var a = new SolidColor
          a.rgb.red = col[0]
          a.rgb.green = col[1]
          a.rgb.blue = col[2]
          app.foregroundColor = a
          if (app.showColorPicker()) {
            var a = app.foregroundColor;
            obj.Colors[cpt][idx][0] = col[0] = a.rgb.red
            obj.Colors[cpt][idx][1] = col[1] = a.rgb.green
            obj.Colors[cpt][idx][2] = col[2] = a.rgb.blue
            parent.visible = false
            parent.visible = true
          }
        }
      }
    }

    function HexColor(obj, backwardMode) {
      for (a in obj.Colors) {
        for (var i = 0; i < 4; i++) {
          for (var x = 0; x < 3; x++) {
            obj.Colors[a][i][x] = backwardMode ? '0x' + ((obj.Colors[a][i][x] / 255 * 65535) + Math.pow(16, 4)).toString(16).substr(-4) : obj.Colors[a][i][x] / 65535 * 255
          }
        }
      }
    }
  }
} else { alert(decodeURI(f.name) + ' format is wrong!') }

 

 

EDIT 5:

- added the ability to change the color of an element at once for all color themes
- for fun added a mode for generating random colors of elements. It can work in conjunction with a filter and helps to find the name of the element responsible for a particular interface element (visually by color)

This is the last revision. Sometime i need to stop 😄

2020-10-15_00-02-56.png

 

#target photoshop

f = $.os.indexOf('Windows') != -1 ? new File(app.path + '/Required/UIColors.txt') : new File(app.path.getFiles('*.app')[0] + '/Contents/Required/UIColors.txt')
if (!f.exists) f = File.openDialog('Select your UIColors.txt', '*.txt,*.cel', false)
if (f) {
  var s = '('
  f.open('r')
  while (!f.eof) { s += f.readln() }
  f.close()
  s = s.replace(/00\./g, '0.') + ')'
  var isHex = s.indexOf('0x') != -1 ? true : false
  try { var obj = eval(s) } catch (e) { alert(e, decodeURI(f.name), true) }

  if (obj) {
    if (isHex) HexColor(obj)

    var w = new Window('dialog', 'UIColors'),
      gt = w.add('group {alignment : ["fill", "center"], alignChildren : ["left", "fill"]}'),
      st = gt.add('statictext {text : "filter:"}'),
      e = gt.add('edittext {preferredSize: [310,-1]}'),
      gc = w.add('group'),
      p = gc.add('panel {maximumSize: [355, 400], minimumSize: [355, 400]}'),
      s = gc.add('scrollbar {stepdelta: 100}', [0, 0, 20, 400]),
      g = p.add('group{orientation : "column"}'),
      gh = w.add('group {alignment : ["fill", "center"], alignChildren : ["left", "fill"], orientation : "row"}'),
      c = gh.add('checkbox', [0,0,200,20], 'one element color for all themes'),
      r = gh.add('button', [0,0,145,20], 'random colors'),
      b = w.add('button', undefined, 'Save UIColors.txt', { name: 'ok' });

    w.filter = null
    w.changeAll = false

    e.onChanging = function () {
      w.filter = this.text.toUpperCase()
      for (var i = g.children.length - 1; i >= 0; i--) { g.remove(g.children[0]) }
      loadLabels()
    }

    s.onChanging = function () { g.location.y = -100 * this.value }
    c.onClick = function () { w.changeAll = this.value }

    r.onClick = function () {
      for (a in obj.Colors) {
        if (a.toUpperCase().indexOf(w.filter) != -1 || !w.filter) {
          var rnd = [Math.random(), Math.random(), Math.random()]
          for (var i = 0; i < 4; i++) {
            for (var x = 0; x < 3; x++) {
              obj.Colors[a][i][x] = w.changeAll ? rnd[x] * 255 : Math.random() * 255
            }
          }
        }
      }
      w.layout.layout(true)
    }

    b.onClick = function () {
      var ext = isHex ? 'cel' : 'txt',
        n = f.saveDlg('Save file', '*.' + ext);
      if (n) {
        if (n.exists) {
          var b = new File(n.path + '/UIColors.bak')
          if (!b.exists) n.copy(b)
        }
        if (n.open('w')) {
          w.close()
          if (isHex) HexColor(obj, true)
          var s = obj.toSource()
          n.write(s.substr(1, s.length - 2))
          n.close()
        } else { alert(decodeURI(n) + '\nFile access error\nMake sure you have the required access rights') }
      }
    }

    w.onShow = function () {
      loadLabels()
    }

    w.show()

    function loadLabels() {
      for (a in obj.Colors) {
        if (a.toUpperCase().indexOf(w.filter) != -1 || !w.filter) {
          colorGroup(g, a, [obj.Colors[a][0], obj.Colors[a][1], obj.Colors[a][2], obj.Colors[a][3]])
        }
      }
      w.layout.layout(true)
      s.value = s.minvalue = 0
      s.maxvalue = (g.size.height - p.size.height + 15) / 100
    }

    function colorGroup(parent, cpt, col) {
      var g = parent.add('group{orientation : "row", alignChildren : ["left", "center"]}'),
        s = g.add('statictext', undefined, cpt);
      s.preferredSize.width = 200

      for (var i = 0; i < 4; i++) { addColor(g, col[i], cpt, i) }

      function addColor(parent, col, cpt, idx) {
        var img = parent.add('image {preferredSize : [20,20]}')

        img.onDraw = function () {
          var g = this.graphics
          g.ellipsePath(2, 2, 15, 15)
          g.fillPath(g.newBrush(g.BrushType.SOLID_COLOR, [col[0] / 255, col[1] / 255, col[2] / 255, col[3]]))
          g.strokePath(g.newPen(g.PenType.SOLID_COLOR, [0, 0, 0], 2))
        }

        img.onClick = function () {
          var a = new SolidColor
          a.rgb.red = col[0]
          a.rgb.green = col[1]
          a.rgb.blue = col[2]
          app.foregroundColor = a
          if (app.showColorPicker()) {
            var a = app.foregroundColor,
              from = w.changeAll ? 0 : idx,
              to = w.changeAll ? 3 : idx;
            for (var i = from; i <= to; i++) {
              obj.Colors[cpt][i][0] = col[0] = a.rgb.red
              obj.Colors[cpt][i][1] = col[1] = a.rgb.green
              obj.Colors[cpt][i][2] = col[2] = a.rgb.blue
              parent.visible = false
              parent.visible = true
            }
          }
        }
      }
    }

    function HexColor(obj, backwardMode) {
      for (a in obj.Colors) {
        for (var i = 0; i < 4; i++) {
          for (var x = 0; x < 3; x++) {
            obj.Colors[a][i][x] = backwardMode ? '0x' + ((obj.Colors[a][i][x] / 255 * 65535) + Math.pow(16, 4)).toString(16).substr(-4) : obj.Colors[a][i][x] / 65535 * 255
          }
        }
      }
    }
  }
} else { alert(decodeURI(f.name) + ' format is wrong!') }

 

 

Hi all! someone mentioned this script on youtube and now my personal messages are full - with all the desire I can not answer all your questions.

2021-02-05_23-00-25.png

Once again - the script was written for fun, I do not guarantee its workability in 100% of cases. Use it at your own risk and do not forget to backup the original UIColors.txt

 

--> The latest version of the script in that post (with tag EDIT 5) <---

Copy code from that post into a empty text file, change its extension to jsx, drag it into the Photoshop window, or double click to run (if you plan to run it often, you can put this file to the \ Presets \ Scripts \ folder of your photoshop - in this case it will appear in the application scripts menu).

 

After you've changed the colors of the controls you want, save the UIColors.txt file to disk and place it in your photoshop directory:

In Windows: path to your version of Photoshop\Required\UIColors.txt
In MacOS, you need to go to Programs -> Photoshop, open the menu and select 'Show Package Contents', then move saved file to the /Contents/Required/UIColors.txt

 

And don't forget that your clients are not interested in the beauty of your Photoshop interface, but in the beauty of your work!

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 05, 2020 Oct 05, 2020

Copy link to clipboard

Copied

I found too that 00.90 bug when I wanted to evel json. Then I corrected it and wanted to play more with, but I realised that has no sense, as if I'm right changes to UIColors.txt will be applied with next Ps launch?

 

 

There's similar file in Requied folder of Bridge CS6 (but not later in current CC), that is much longer, complex and though you see many arrays and RGBA values it seems to be written in binary format: GlobalResources

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 05, 2020 Oct 05, 2020

Copy link to clipboard

Copied

Yes, only after a restart.
Question - I was drawing color circles in the onDraw() element. After adding the colorPicker, I needed to update the color of the element. I was unable to re-call onDraw() or drawing in the body of the function (there was an error when I tried to fill, but it actually ran). To solve this problem, I just moved the element +/- 1 pixel by calling onDraw() indirectly. Is there a more adequate way to redraw the element?

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 06, 2020 Oct 06, 2020

Copy link to clipboard

Copied

The same bug is with transformation. When you don't do any change you'll have error. Contrary to Document Object Model in ActionManager to avoid that, it would be enough use all values, even if all were set to zero.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Oct 06, 2020 Oct 06, 2020

Copy link to clipboard

Copied

Hi there, how do I change the colors tho ? where do I edit that code ?

thank you

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 06, 2020 Oct 06, 2020

Copy link to clipboard

Copied

If you are using a mac, then (it seems) this file with interface colors settings is not there. In windows, you just run the script, change the colors you want, save the file instead of the old one (don't forget to make a backup)

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 07, 2020 Oct 07, 2020

Copy link to clipboard

Copied

I work on Mac and it seems to be in the Packahe Contents: 

Screenshot 2020-10-07 at 09.04.16.png

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 07, 2020 Oct 07, 2020

Copy link to clipboard

Copied

Yes, I assumed that it might be inside the package, but I couldn't open it 🙂

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 05, 2020 Oct 05, 2020

Copy link to clipboard

Copied

Comment.
This unfinished useless file has existed since CS6, as indicated by the text inside - "Version: 13.0". In CS6 it is called UIColors.cel. The files in the OWL folder are a similar rubbish lingering since then.
 
 
Cool script.
For some reason it doesn't work in CS6. Control colors do not change. And it starts up for a very loooooooooong time.
 
For 2020, you can try replacing
    parent.location.y = parent.location.y - 1
    parent.location.y = parent.location.y + 1
with
    img.visible = false;
    img.visible = true;

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 05, 2020 Oct 05, 2020

Copy link to clipboard

Copied

True, that version 13 was for me significant, as often I still use Ps CS6 😉

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 06, 2020 Oct 06, 2020

Copy link to clipboard

Copied

It's just for fun. I have not tested it for compatibility with anything other than the latest version of Photoshop. In CS6, each RGB value is encoded with a HEX triplet.
Toggling the visibility of an element causes it to redraw. Thanks!

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 14, 2020 Oct 14, 2020

Copy link to clipboard

Copied

"This is the last revision. Sometime i need to stop."

And for that, we are truly grateful Nancy_OShea_0-1588967747902.png

 

Nancy O'Shea, Adobe Product User & Community Professional
Alt-Web Design & Publishing ~ Web : Print : Graphics : Media

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Oct 26, 2021 Oct 26, 2021

Copy link to clipboard

Copied

LATEST

Thank you for this !

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 10, 2021 Jun 10, 2021

Copy link to clipboard

Copied

Thank you for making this script! It works brilliantly and is very helpful.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
    • 1
    • 2