How to programatically change Windows 10 accent color? - windows

I want to make a script to change my accent color to a random color every day, using a command line or whatever I can find.
I found that I can change the "AccentColorMenu" in Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent in the registry to immediately change the color of window title bars and borders (and thus use reg.exe on command line). But changing "StartColorMenu" does nothing.
And preferrably I would like to change the color the same way control panel does it so the same color conversions are done for start menu etc.

I found this program that can be used on the command line to do exactly what I want (in WSL because getting a random color was a lot easier):
'Windows 10 color control.exe' -accent_color $(openssl rand -hex 3)
While program is a few years out of date and some of its functionality doesn't seem to work anymore (Accent color always overrides DWM color and disabling new auto-color accent algorithm doesn't seem to do anything), it works perfectly to just set the system accent color just like if you were to set it in Settings.

Related

OSX Terminal/Vim Syntax Colors

I've spent a bunch of time going over my Vim and Tmux configurations lately, trying to refine my workflow and I have come across a (small but annoying) problem that is stumping me. I am currently using OSX, but I have had the same issue with Windows' terminal/powershell.
My issue is that I am unable to change the brown color that appears in the default vim syntax highlighting which is used many of the languages that I write in. The color that I am speaking of can be seen in this vim colortest:
In the default OSX terminal (and in powershell) you can set the ANSI colors via terminal preferences, however, the brown color is not included in the GUI configuration options. This results in some ugly syntax highlighting that does not fit in with my desired color scheme:
My question is, what is the most portable way to change this default color? I would love to be able to do something in my .vimrc that would just work around this ugly color so I don't have to reconfigure colors for any system that I might be on, but I understand this might not be possible. Another route would be changing the syntax highlighting colors, but my investigations into that have so been unfruitful.
Thanks!
Appedix:
Colors selected in OSX profile for screenshots:
Sadly, the default Vim colorscheme is not as tidy as one would hope. In this case, Brown is a bit of a "catchall" name that ends up being interpreted differently in different contexts.
In GUI Vim, Brown refers to the "Brown" in X11's rgb.txt: #A52A2A.
In TUI Vim with &t_Co == 256, you get #af5f00, AKA 130 in the "xterm palette".
In TUI Vim with &t_Co == 16 or &t_Co == 8, you get your terminal palette's "Yellow", AKA 3.
By the looks of it, you seem to be affected by the second case.
While there exist ways to change the so-called "xterm palette" wholesale, you will have a hard time changing that specific color in a straightforward, non-messy way.
What you can do…
Do :set background=dark to force Vim to use a different set of default colors that doesn't include "Brown".
Choose a built-in or third-party colorscheme that doesn't use that specific color.
Override the Statement highlight group as explained in this gist with whatever color you want from the xterm palette.

WIndows "start cmd" driving me crazy (setting colors)

I have searched high and low for the answer to this, to no avail.
I am on Windows 10.
I have a batch script to launch a bunch of command windows using "start cmd".
When I do that, it is not picking up the text color I have set.
I know how this is "shortcut dependent", and I have tried every way I can
using Properties and Defaults, without success.
It seems I can set MOST of the properties to my liking (Font, Layout), but
not the Text Color.
If I open the window from the Start menu (or Run command), I get my white text.
But if I used "start cmd" it is using different Properties (which I also tried to set)
and text color is some teal/blue color.
However: when I look at the properties for that window, and click text color,
the white box at the far right is highlighted, and when I click it, it shows
(255,255,255) - but that's not what it's using!!
How do I get it do what I want? [without using any 3rd-party apps, if possible]

How to change terminal font color in PyCharm?

I want to set my terminal color scheme, such that I will have black text on light background (white or light yellow for example).
I changed "Console Colors" settings, such as Background, Standard output, and System output, under Editor > Colors & Fonts > Console Colors, but I keep running into the same problem.
If I change Background color to let's say white. It also changes text (Standard output and my user input to the same color). I can't figure out, which setting controls the color of the font, which appears in the terminal window. In fact, it appears that font color is the same as background color, which is confusing to me. I would expect to be able to independently control background color, and font color, which to me represents "Foreground".
<
Changing colour in
Preferences->Editor->Color Scheme->Console Colors->Standard Output
should change the terminal font's colour.
I suppose it happened on Windows. If yes then it is affected/controlled by Windows registry. Try one of the following method:
Open Windows cmd and from drop down menu selects defaults. Then change the Text and Background colors to match your choice in PyCharm. The problem occurs if you have different color settings in Windows cmd instead of default.
Delete HKEY_CURRENT_USER\Console key from Windows registry.
More information available on this link
To configure color and font scheme for consoles
Make sure you are working with an editable scheme.
Open the IDE Settings, and under Colors&Fonts, scroll through the list of components, and select the ones related to consoles:
Console Colors
Console Fonts
In the right-hand pane, click the desired component in the list, and change color settings and font type:
See Image of how to do it

how to get current terminal color pair in bash

I would like to query and store the current terminal color pair in BASH e.g.:
#!/bin/bash
#some ANSI colour escape sequences
red="\033[0;31m"
grn="\033[0;32m"
blu="\033[0;34m"
def="\033[0;00m" # default
echo -e "Change to ${red} red to ${def} default to ${blu} blue."
# now store the current color (which happens to be blue) e.g.:
cur=????
echo -e "Change to ${grn} green and back to what I had before ${cur}"
echo -e "This would be in blue if variable cur contained e.g.: 0;34m."
echo -e "Back to default${def}"
exit 0
The answer that eludes me is how to capture the current color
cur=????
The question was about the current color, not the cursor position.
Both are "nonstandard" (though the latter, cursor position report is implemented by anything which has a valid claim to "VT100 emulator").
However, xterm implements a set of escape sequences referred to as dynamic colors, which predate the ANSI color functionality. Those set the working colors including text foreground and background. I modified this in 2002 to allow an application to send the sequence with a "?" rather than a color to tell xterm to return the color value, e.g.,
OSC 1 1 ? ST
using the notation given in XTerm Control Sequences
You can't; there is no standard control sequence to report the current cursor attributes.
What does exist, however, is a sequence to save and restore the current cursor position and attributes:
\e7 (DECSC) will save the cursor position and attributes.
\e8 (DECRC) will restore the saved cursor position and attributes.
There is no standard way to restore only the cursor attributes; however, as rici mentioned, you can get a report of the current position using \e[6n (DSR), then use the response to manually "un-restore" the cursor position after restoring its position and attributes.
Again, though, it's probably easier (and better) to just keep track of the colors in your application, rather than making the terminal responsible for that.
It's important to understand that the terminal state has nothing to do with bash. Bash doesn't care. It simply reads from stdin and writes to stdout and stderr. (See Note 1)
All terminal effects are implemented by the terminal emulator you happen to be using, of which there are many. In a graphical environment, you might be using, for example, xterm or konsole. You'll need to search the documentation for those emulators for specific terminal control codes which they interpret.
As far as I know, there is no standard code to get a report of the current terminal state, other than the cursor position (ESC[6n).
So your best bet is to remember the changes you made when you make them.
You can find a list of the standard codes implemented by the Linux console using man console_codes (although few people use the Linux console these days); most of those are also interpreted by xterm and other graphical consoles. There's an list of xterm sequences in Thomas Dickey's xterm site; it's a more or less de facto standard for terminal emulators but, as I said, you'll need to search in each emulator's documentation for idiosyncratic control sequences.
Notes
In interactive mode, bash uses a library called readline to help it handle some terminal effects. In particular, readline tries to maintain the current console cursor position, although it is easy to fool it. In PS1 you need to surround console control sequences with \[ and \] precisely because readline does not know that they are control sequences.
What I understood, is that u are asking to to get the default profile color of the user, of which u have change color of!
Eg: User is using 'Bright Green font color on Black background', you change it to 'Red font color on White background'. Now how to get/know the default colors and set them back to it!
You can use the sequence \033[0m in bash [also for command prompt (batch scripting) / powershell (ps scripting)]

change font color in evernote mac with automator

Can any one give some hints for a script that on a keystroke changes the font color in Evernote? I need to let's say, change the color beforehand. Like am writing and press a hotkey and then on, text is red... another keystroke black again. If I use the color picker I have to change colors after I wrote them.
Thanks
dan

Resources