🎨 Generate and change color-schemes on the fly.

Overview

Generate and change color-schemes on the fly.

img

Pywal is a tool that generates a color palette from the dominant colors in an image. It then applies the colors system-wide and on-the-fly in all of your favourite programs.

There are currently 5 supported color generation backends, each providing a different palette of colors from each image. You're bound to find an appealing color-scheme.

Pywal also supports predefined themes and has over 250 themes built-in. You can also create your own theme files to share with others.

The goal of Pywal was to be as out of the way as possible. It doesn't modify any of your existing configuration files. Instead it works around them and provides tools to integrate your system as you see fit.

Terminal emulators and TTYs have their color-schemes updated in real-time with no delay. With minimal configuration this functionality can be extended to almost anything running on your system.

More: [Installation] [Getting Started] [Customization] [Wiki] [Screenshots]

Issues
  • OS X Problems

    OS X Problems

    Downloaded pywal with pip3, used wal -i image.jpg then background turned black and Dock disappeared, so I'm unable to change background and show dock + some bugs appeared. No such problem as another user

    OS Mojave MacBook Pro Mid 2012

    opened by ForsHant 41
  • Matching GTK and icon themes

    Matching GTK and icon themes

    Could you implement matching GTK and icon themes like how wpgtk does it?

    enhancement 
    opened by ohmree 29
  • Added emacs colors

    Added emacs colors

    I tried to add an emacs colorscheme, it's basically xresources-theme but with the xresources bits ripped out of it and replaced with pywal templates.
    It does look a bit weird but it's better than no color-hot-swapping:

    image

    Usage is simply (load-file "~/.cache/wal/colors.el") in ielm and/or .emacs.el, M-x load-file or from the command line (can also be automated after wal is executed), something like $ emacs -batch --eval='(load-file "~/.cache/wal/colors.el")'

    enhancement 
    opened by ohmree 23
  • rofi color don't change

    rofi color don't change

    I have i3-gaps, I've runned wal -i <path to image> and the color changed on everything except for rofi

    my config.rasi [rofi config color scheme]

    /* global settings and color variables */
    * {
       maincolor:        #ed8712;
       highlight:        bold #ed8712;
       urgentcolor:      #e53714;
    
       fgwhite:          #cfcfcf;
       blackdarkest:     #1d1d1d;
       blackwidget:      #262626;
       blackentry:       #292929;
       blackselect:      #303030;
       darkgray:         #848484;
       scrollbarcolor:   #505050;
       font: "Hack 8";
       background-color: @blackdarkest;
    }
    

    i run rofi via i3 config using

    bindsym $mod+d exec rofi -show run -separator-style solid -font "Hack 8"
    bindsym $mod+shift+d exec rofi -show window -separator-style solid -font "Hack 8"
    

    my .Xresource

    ! freetype2-infinality
    Xft.autohint: 0
    Xft.lcdfilter:  lcddefault
    Xft.hintstyle:  hintslight
    Xft.hinting: 1
    Xft.antialias: 1
    Xft.rgba: rgb
    
    ! special
    *.foreground:   #a8a19f
    *.background:   #1b1918
    *.cursorColor:  #a8a19f
    
    ! black
    *.color0:       #1b1918
    *.color8:       #766e6b
    
    ! red
    *.color1:       #f22c40
    *.color9:       #f22c40
    
    ! green
    *.color2:       #5ab738
    *.color10:      #5ab738
    
    ! yellow
    *.color3:       #d5911a
    *.color11:      #d5911a
    
    ! blue
    *.color4:       #407ee7
    *.color12:      #407ee7
    
    ! magenta
    *.color5:       #6666ea
    *.color13:      #6666ea
    
    ! cyan
    *.color6:       #00ad9c
    *.color14:      #00ad9c
    
    ! white
    *.color7:       #a8a19f
    *.color15:      #f1efee
    
    
    
    URxvt.termName:    rxvt-256color
    URxvt.transparent: true
    URxvt.shading:     10
    URxvt.fading:      15
    URxvt.font:        xft:Hack:pixelsize=10, xft:Hack:antialias=false, xft:Hack:antialias=false
    
    URxvt.saveLines:         4096
    URxvt.scrollBar:         false
    URxvt.scrollTtyOutput:   false
    URxvt.scrollWithBuffer:  true
    URxvt.scrollTtyKeypress: true
    URxvt.urgentOnBell:      true
    URxvt.iconFile:          /usr/share/icons/Numix-Circle/48x48/apps/xterm-color_48x48.svg
    
    URxvt.perl-lib:       ~/.config/urxvt
    URxvt.perl-ext:       default,cspace,font-size,url-select,tabbedex
    
    URxvt.url-launcher:   /usr/bin/xdg-open
    
    ! Tabbedex features
    URxvt.tabbed.new-button:       no
    URxvt.tabbed.autohide:         yes
    URxvt.tabbed.no-tabbedex-keys: yes
    
    ! Tabbedex colors
    URxvt.tabbed.tabbar-fg:   244
    URxvt.tabbed.tabbar-bg:   16
    URxvt.tabbed.tab-fg:      255
    URxvt.tabbed.tab-bg:      52
    URxvt.tabbed.bell-tab-fg: 255
    URxvt.tabbed.bell-tab-bg: 160
    URxvt.tabbed.bell-fg:     244
    URxvt.tabbed.bell-bg:     17
    URxvt.tabbed.title-fg:    28
    URxvt.tabbed.title-bg:    16
    
    ! Tabbedex keybindings (4-1: Super + Alt)
    URxvt.keysym.4-1-Down:    perl:tabbedex:new_tab
    URxvt.keysym.4-1-Left:    perl:tabbedex:prev_tab
    URxvt.keysym.4-1-Right:   perl:tabbedex:next_tab
    URxvt.keysym.4-1-Up:      perl:tabbedex:rename_tab
    URxvt.keysym.4-1-C-Left:  perl:tabbedex:move_tab_left
    URxvt.keysym.4-1-C-Right: perl:tabbedex:move_tab_right
    
    ! Font-size (C-1: Ctrl + Alt)
    URxvt.keysym.C-1-Up:     perl:font-size:increase
    URxvt.keysym.C-1-Down:   perl:font-size:decrease
    URxvt.keysym.C-S-1-Up:   perl:font-size:incglobal
    URxvt.keysym.C-S-1-Down: perl:font-size:decglobal
    
    ! url-select
    URxvt.keysym.M-u: perl:url-select:select_next
    URxvt.url-select.launcher: /usr/bin/xdg-open
    URxvt.url-select.underline: yes
    
    ! rofi -- dmenu clone
    rofi.opacity:  100
    rofi.width:    90
    rofi.lines:    25
    rofi.font:     Iosevka Medium 10
    rofi.location: 0
    rofi.padding:  5
    
    rofi.color-enabled: true
    rofi.color-window: #3f3f3f, #000000, #000000
    
    ! State:           bg,      fg,      bgalt    hlbg,    hlfg
    ! zenburn:         bg,      fg,      bg-05,   bg+1,    fg+1
    rofi.color-normal: #3f3f3f, #dcdccc, #383838, #4f4f4f, #ffffef
    !                  blue-4,  fg,      blue-5,  blue-3,  fg+1
    rofi.color-active: #4c7073, #dcdccc, #366060, #5c888b, #ffffef
    !                  red-4,   fg,      red-5,   red-3,   fg+1
    rofi.color-urgent: #8c5353, #dcdccc, #7c4343, #9c6363, #ffffef
    
    !(call-process-shell-command "xrdb -load ~/.Xresources")
    

    i have no clue why is not changing rofi color scheme

    P.S. does pywal works with polybar, if yes how can i change the color of that too?

    bug 
    opened by nautilor 23
  • Alacritty doesn't seem to be working with wal

    Alacritty doesn't seem to be working with wal

    I installed Void Linux today and finally managed to get pywal working (it only has py3.5 so I compiled 3.6.1 with pyenv) and since it doesn't have Termite (my go-to terminal) in it's repos I decided to try Alacritty (it's supposed to be fast). So turns out it's dash-fast, as in "lacks too many useful features" (probably because it's still in alpha). The printf "%b" "\033]11;#ff0000\007" does nothing so I guess you should add it to the list. I tried to make it work with wal by having a config.yml that contains non-color options and an auto-generated colors.yml that has colors (used termcolors to convert to Alacritty's format), what I did was add this function:

    function fix_alacritty() {
    	local dir="${HOME}/.config/alacritty"
    	rm "${dir}/alacritty.yml"
    	cat "${dir}/config.yml" "${dir}/colors.yml" >> "${dir}/alacritty.yml"
    }
    
    

    And call it in the script that gets executed after wal, turns out Alacritty needs everything to be in specific positions for the thing to work (it is possible with some mad regex-foo or yaml parsing, both of which I'm no good at and not going to try doing since the benefits aren't that good, not being able to change colors on the fly is a bummer)

    So I guess it's not really an issue with wal but I'm just letting you know

    bug 
    opened by ohmree 20
  • cat sequences causes ]708;[100]#040805 to appear in new termite terminal

    cat sequences causes ]708;[100]#040805 to appear in new termite terminal

    $ wal -v wal 3.2.1

    For me it seems that commit https://github.com/dylanaraps/pywal/commit/da0e2ff05a885422dfc61fc87ae3c68ec713751b introduced the issue. In my opinion set_color should be used instead of set_special (at least for me that resolved it). (Also adding 4; before 708; in .cache/wal/sequences solves the issue temporarily)

    During the debugging of this I found another minor coding issue: in set_special() the default value for alpha is 100 (the number), while later in the function the alpha is compared to the string "100"(in python the number and string 100 are different), thus even if the alpha parameter is omitted and the value of it is 100 it will be added to the sequence. (Again, this is nothing serious, just wanted to leave a note about it)

    opened by pucerpocok 19
  • Wallpaper turning black

    Wallpaper turning black

    Hey there, I've been having an issue where wal seems to change the desktop to an all black image. It changes the colorscheme in the open terminals and vim but the wallpaper gets messed up. It may have to do with a messy install I had, since Python 3.6 doesn't seem to be what pip uses on my system, so I installed it via "sudo -H python3.6 -m pip install pywal". I installed pywal once before and it was working great, but uninstalled and reinstalled it and that's when the issues started. As for my system, I'm running Ubuntu 17.04 with Gnome using the Gnome terminal. The command I'm using for wal is simply "wal -t -i ~/Pictures/Wallpapers/wallpaper.jpg"

    can't reproduce 
    opened by westfelia 19
  • Macos broke after using wal command

    Macos broke after using wal command

    Alright I am going to try to give as much relevant information as I can, but I am in a specific scenario. I install yabai on my mac and also disabled SIP, so this is what I think is the main issue. I used this for about a week with no issues. I then installed pywal with pip3. Upon using the "wal -i" command with an image, my background went black, the dock.app stopped running, workspaces and mission control stopped running. Applications will still run and finder works, but dock.app wont restart, and upon trying to kill any instances of it already running, there are none to be found. I think this is an issue with running wal with SIP disabled, does it edit any system files that could be an issue? Also let me know if you need more information to diagnose this.

    opened by AWOLASAP 18
  • System alert sound always present when running wal.

    System alert sound always present when running wal.

    • GNOME Terminal 3.24.2 Using VTE version 0.48.4 +GNUTLS -PCRE2
    • Zsh 5.2

    Possibly from the garbage workaround or VTE sequence?

    bug 
    opened by cj-sv 17
  • Wallpaper is not set

    Wallpaper is not set

    While everything works (every colors change!) the wallpaper itself does not. Even when I run ~/.fehbg nothing happens.

    invalid 
    opened by shizonic 15
  • Cursor becomes invisible

    Cursor becomes invisible

    I'm using the base16-nord theme but after having installed it my cursor becomes "invisible" or rather has the same colour as my back -and foreground. I tried several things like

    highlight nCursor guibg=#51afef
    set guicursor=n-v-c-i:block-nCursor
    set guicursor+=i:ver25-nCursor
    set guicursor+=o:hor50-nCursor
    

    or

    set guicursor=n-v-c:block,i-ci-ve:ver25,r-cr-o:hor20
    

    but they didn't change anything.

    opened by L1szt 0
  • Small error in Rofi import documentation: The import should be placed outside the brackets

    Small error in Rofi import documentation: The import should be placed outside the brackets

    Hello,

    First off; thank you very much for all efforts put into pywal! I'm really enjoying it so far!

    I just had some issues when I tried to import the theme-settings into Rofi. I followed the instructions, but it kept giving me parsing errors whenever I opened up Rofi.

    After a while I found an example in the Rofi's documentation where an import was placed inside the configuration{...} block, but after the block. After making that change to my config it started working as intended.

    Edit: Forgot to add a link to Rofi's documentation

    opened by flubberding 0
  • Kitty and transparency

    Kitty and transparency

    The issue

    My issue is that wal overrides the background_opacity setting in the kitty.conf. What I am wondering is how am I supposed to have that transparency setting work with wal?

    What I have tried

    I tried to make a template in $HOME/.config/wal/templates/colors-kitty.conf, without success.

    foreground	   {foreground}
    background	   {background}
    background_opacity 0.6
    cursor		   {cursor}
    
    active_tab_foreground		{active_tab_foreground}
    active_tab_background		{active_tab_background}
    inactive_tab_foreground		{inactive_tab_foreground}
    inactive_tab_background		{inactive_tab_background}
    
    active_border_color		{active_border_color}
    inactive_border_color		{inactive_border_color}
    bell_border_color		{bell_border_color}
     
    color0		{color0}
    color8		{color8}
    color1		{color1}
    color9		{color9}
    color2		{color2}
    color10		{color10}
    color3		{color3}
    color11		{color11}
    color4		{color4}
    color12		{color12}
    color5		{color5}
    color13		{color13}
    color6		{color6}
    color14		{color14}
    color7		{color7}
    color15		{color15}
    

    This didn't work, so I was wondering what I could do to make it finally work. Could I exclude the background_opacity setting from wal so it takes the one from kitty.conf?

    opened by Lanhild 1
  • Foreground becomes background when sending colors to active terminals

    Foreground becomes background when sending colors to active terminals

    This behavior only happens in my Dell Inspiron (AMD Radeon), not in my Asus computer, both using Arch. Cutting to the cheese:

    Here is what I get after running Pywal on an image (wal -i image.png):

    20210512132444_screenshot_1920x1080

    Closing the terminal and opening it again results in this:

    20210512134343_screenshot_1920x1080

    Somehow pywal sends incorrect colors to active terminals. But everything is corrected when opening new ones. That's really odd... What do you think it could be?

    I know it is in the sending part (wal.sequences.send) because the cached files make sense (colors 0 and 7, as well as foreground and background, make sense: each element of these pairs are different from the other). Also, I made a little script like the one in the documentation and saw that colors are managed fine through the code. But when the wal.sequences.send line is NOT commented, the current terminal colors become odd.

    Thank you beforehand!

    opened by marcosrdac 0
  • 16colors2shades

    16colors2shades

    • I changed the generic_adjust function, so it produces 16 colors by default.
    • Added command line option "--nine". which reverts to the original 9 color output.
    • Colors 1-7 are darker shades of the latter 8.
    • All backend scripts, use the generic_adjust function, instead of "manualy adjusting". This means that the different backends, produce similar outputs, but not with the same palletes.
    opened by sonjiku 5
  • Washed out colors

    Washed out colors

    Everything is updated to the latest version.

    Right when I set a theme the colors look great and exactly how they are supposed to. 1

    But after I exit the file and return in vim it looks like this... 2

    What issue could this be? vim? alacritty? i3??

    Dist: Arch Terminal: Alacritty Editor: Nvim Wm: i3

    Thanks.

    opened by ghost 0
  • Add --active-only flag to only run pywal on active ttys

    Add --active-only flag to only run pywal on active ttys

    This adds a flag to only run pywal on active ttys when sending colors to those ttys. This solves the problem of hangingsend`s or trying to write colors to effectively closed ttys.

    Fixes https://github.com/dylanaraps/pywal/issues/597

    opened by havulv 0
  • Add option to only send sequence data to active TTYs

    Add option to only send sequence data to active TTYs

    Exact same behavior as https://github.com/dylanaraps/pywal/issues/260 I ran into an issue where saving the wallpaper would just hang for an indeterminate period of time (macOS). Digging into it further I found that I had pushed my system into a weird state where there were some /dev/ttys00* file descriptors that existed but were not attached to any process or actual tty.

    cating any data to them would hang and force me to quit. Interestingly enough, who listed these as old and inactive (indicating that /var/run/utmpx knows about them, but the system is not cleaning them up for whatever reason):

    A regular who shows only the active sessions:

    havulv-mbp:~ havulv$ who
    havulv console  Mar 12 06:16
    havulv ttys000  Apr  6 10:26
    havulv ttys002  Apr  6 11:09
    havulv ttys005  Apr  6 11:16
    

    Listing all of them shows exited terminals with the file descriptors still hanging around in /dev/

    havulv-mbp:~ havulv$ who -a
    reboot    ~        Mar 12 06:15 00:04 	     1
    havulv console  Mar 12 06:16  old  	   103
    havulv ttys000  Apr  6 10:26 00:05 	   554
    havulv ttys001  Apr  6 11:14   .   	  6005	term=0 exit=0
    havulv ttys002  Apr  6 11:09 00:05 	  4901
    havulv ttys003  Mar 27 12:08  old  	 35702	term=0 exit=0
    havulv ttys004  Mar 17 13:13  old  	 16586	term=0 exit=0
    havulv ttys005  Apr  6 11:16   .   	  8244
    havulv ttys006  Mar 25 09:34   .   	 27105	term=0 exit=0
    havulv ttys007  Apr  6 10:18   .   	 98616	term=0 exit=0
    

    The try-except block won't catch this, as Python will happily try to pump data into the file as a blocking operation (and there is not timeout thread to stop it) because it does not know that the tty is effectively dead.

    As a workaround, there should be a flag to only send sequence data to active ttys (which can be determined by who, continuing with the tty if who is not available to subprocess). This is kind of an edge case and, I think, represents a not good state of the system, so it probably should not be on by default.

    opened by havulv 0
  • [Feature request] KDE Color Scheme support (includes ready made template)

    [Feature request] KDE Color Scheme support (includes ready made template)

    Well, as per with the other request regarding KDE Plasma wallpaper support, I have both a feature request and a request to merge something.

    The request is to reload KDE color schemes upon successful wal invocation (I still did not get a way to do that); the "something to merge" is the color scheme template (maybe it can be tweaked a bit before merge).

    Click to view the color scheme template
    [ColorEffects:Disabled]
    Color={color10.rgb}
    ColorAmount=0
    ColorEffect=3
    ContrastAmount=0.55
    ContrastEffect=1
    IntensityAmount=-1
    IntensityEffect=0
    
    [ColorEffects:Inactive]
    ChangeSelectionColor=true
    Color=112,111,110
    ColorAmount=0
    ColorEffect=0
    ContrastAmount=0
    ContrastEffect=0
    Enable=false
    IntensityAmount=-1
    IntensityEffect=0
    
    [Colors:Button]
    BackgroundAlternate={background.rgb}
    BackgroundNormal={background.rgb}
    DecorationFocus={color14.rgb}
    DecorationHover={color7.rgb}
    ForegroundActive={color2.rgb}
    ForegroundInactive={color10.rgb}
    ForegroundLink={color4.rgb}
    ForegroundNegative={color5.rgb}
    ForegroundNeutral={color10.rgb}
    ForegroundNormal={foreground.rgb}
    ForegroundPositive={color6.rgb}
    ForegroundVisited={color13.rgb}
    
    [Colors:Selection]
    BackgroundAlternate={color12.rgb}
    BackgroundNormal={color14.rgb}
    DecorationFocus={color14.rgb}
    DecorationHover={color7.rgb}
    ForegroundActive={color2.rgb}
    ForegroundInactive={color0.rgb}
    ForegroundLink={color4.rgb}
    ForegroundNegative={color5.rgb}
    ForegroundNeutral={color10.rgb}
    ForegroundNormal={color0.rgb}
    ForegroundPositive={color6.rgb}
    ForegroundVisited={color13.rgb}
    
    [Colors:Tooltip]
    BackgroundAlternate={background.rgb}
    BackgroundNormal={background.rgb}
    DecorationFocus={color14.rgb}
    DecorationHover={color7.rgb}
    ForegroundActive={color2.rgb}
    ForegroundInactive={color10.rgb}
    ForegroundLink={color4.rgb}
    ForegroundNegative={color5.rgb}
    ForegroundNeutral={color10.rgb}
    ForegroundNormal={foreground.rgb}
    ForegroundPositive={color6.rgb}
    ForegroundVisited={color13.rgb}
    
    [Colors:View]
    BackgroundAlternate={color0.rgb}
    BackgroundNormal={background.rgb}
    DecorationFocus={color6.rgb}
    DecorationHover={color14.rgb}
    ForegroundActive={color2.rgb}
    ForegroundInactive={color10.rgb}
    ForegroundLink={color4.rgb}
    ForegroundNegative={color5.rgb}
    ForegroundNeutral={color10.rgb}
    ForegroundNormal={foreground.rgb}
    ForegroundPositive={color6.rgb}
    ForegroundVisited={color13.rgb}
    
    [Colors:Window]
    BackgroundAlternate={color0.rgb}
    BackgroundNormal={color0.rgb}
    DecorationFocus={color14.rgb}
    DecorationHover={color7.rgb}
    ForegroundActive={color2.rgb}
    ForegroundInactive={color10.rgb}
    ForegroundLink={color4.rgb}
    ForegroundNegative={color5.rgb}
    ForegroundNeutral={color10.rgb}
    ForegroundNormal={foreground.rgb}
    ForegroundPositive={color6.rgb}
    ForegroundVisited={color13.rgb}
    
    [General]
    ColorScheme=Wal
    Name=Wal
    shadeSortColumn=true
    
    [KDE]
    contrast=5
    
    [WM]
    activeBackground={background.rgb}
    activeBlend={color10.rgb}
    activeForeground={foreground.rgb}
    inactiveBackground={color0.rgb}
    inactiveBlend={color11.rgb}
    inactiveForeground={color10.rgb}
    
    opened by AryToNeX 0
  • Pass socket as an argument if reloading kitty from outside

    Pass socket as an argument if reloading kitty from outside

    By default kitty remote control only works if invoked from within one of the kitty processes. Which is not the case when the driver process running pywal is an independent daemon or another program. In those cases, we need to specify the socket that kitty listens on for remote commands.

    opened by spolakh 0
Releases(3.3.0)
  • 3.3.0(Jan 21, 2019)

    • Fixed issue with garbage printed to terminals. Use --vte with each wal invocation.
    • Fixed URxvt borders not respecting background opacity. @rstacruz
    • Fixed rofi templates. @14rcole
    • Removed oomox support. No one was maintaining it. Use wpgtk
    • Added template for waybar. @surrealpie
    • Added template for speedcrunch . @lasers
    • Added template for xmonad. @sraysmith
    • Added template for dmenu. @Khoyo
    • Added environment variable PYWAL_CACHE_DIR to change cache dir.
    • Added rgba support to template files.
    Source code(tar.gz)
    Source code(zip)
    3.3.0.tar.gz.asc(488 bytes)
  • 3.2.1(Oct 24, 2018)

  • 3.2.0(Oct 23, 2018)

    • alpha: fixed transparency issue in urxvt.
    • args: -c now exits.
    • args: show usage when no args passed.
    • args: added --palette to view current colors. @D-Vaillant
    • args: -o can now be repeated.
    • colors: simplified colorz.
    • general: added support for kitty terminal. @vxid
    • general: fix quiet mode with cached color-schemes.
    • general: fixed major macOS bug.
    • theme: removed broken theme file.
    • theme: fixed issues with putty. @tadly
    • reload: fixed reload bug.
    • reload: only restart programs if they're running.
    • sequences: removed vte hack.
    • sequences: cursor color is now changed in st.
    • wallpaper: added support for awesome wm. @vesiv
    Source code(tar.gz)
    Source code(zip)
  • 3.1.0(Jun 20, 2018)

    • Added --saturate to change color saturation.
      • Takes a float as its value: 0.0 to 1.0.
    • Added vim output file.
    • Fixed LS_COLORS issue.
    • Fixed issues in iTerm2 on macOS.
    • Fixed hang caused by imagemagick.
    • Fixed issue with -i and transparency.
    Source code(tar.gz)
    Source code(zip)
  • 3.0.1(May 27, 2018)

    • Added Tempus themes.
    • Added LS_COLORS to colors.sh to fix color issues.
    • Compressed all theme files.
    • Don’t print directory of image used.
    • Fixed alpha value not persisting with wal -R.
    • Fixed vim-airline theme when used with light color-schemes.
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0(May 5, 2018)

    Pywal now has 250 included themes! If there are any other themes you'd like to see added. Open an issue.

    • Added all of @dkeg's themes.
    • Added all themes from terminal.sexy
    • Themes are now split between light and dark.
      • Local themes now need to be put into ~/.config/wal/colorschemes/{light,dark}.
    • Added unity wallpaper support.
    Source code(tar.gz)
    Source code(zip)
  • 2.1.0(Apr 29, 2018)

    • Added all base16 themes to pywal. @metalelf0
    • Added --iterative to iterate over a directory in order (instead of random).
    • Fix minor theme issue in rofi. @esp10mm
    • Fix some conflicting arguments.
    • Fixed bug causing nested directory structure.
    • Fixed bug where the configuration directory wouldn't be created early enough.
    • Fixed missing color in st cache file. @jameh
    • Limit color palette width in output.
    • Removed -nocpp from xrdb call.
    Source code(tar.gz)
    Source code(zip)
  • 2.0.5(Apr 5, 2018)

  • 2.0.4(Apr 3, 2018)

  • 2.0.3(Apr 2, 2018)

  • 2.0.2(Apr 2, 2018)

  • 2.0.1(Apr 1, 2018)

  • 2.0.0(Apr 1, 2018)

    This is a big release and I've probably broken something. Expect a minor release or two to fix any bugs that arise. ~~Users of wpgtk I recommend not updating pywal until @deviantfero adds support for the new release.~~ wpgtk is now supported.

    It's going to take me some time to update the documentation (I've got a total rewrite planned). Bear with me.

    General

    • xrdb: Added missing background and foreground values.
    • image: Fixed crash when using light themes and gifs.
    • args: Added -t to disable pywal in ttys.
    • args: -R now works with theme files.
    • sequences: Save sequence file with -s. @Amar1729
    • misc: Added proper logging to pywal.
    • misc: Added palette to console output.
    • misc: Added colors/bold to console output.

    Backends

    pywal now has support for different color generation backends. In addition to pywal's default color generation, support was added for:

    • schemer2: https://github.com/thefryscorer/schemer2
    • colorthief: https://github.com/fengsp/color-thief-py
    • colorz: https://github.com/metakirby5/colorz
    • haishoku: https://github.com/LanceGin/haishoku

    Usage:

    • wal --backend lists all available backends.
    • wal --backend colorz -i img.jpg sets the backend.
    • wal --backend random uses a backend at random.

    If you know of any other color generation programs let me know and I'll see if I can add backends for them.

    Themes

    You can now store colorschemes in files and manage them using pywal. There are a bunch of colorschemes included with pywal and I will happily accept PRs to add more.

    • wal --theme lists all available built-in themes.
    • wal --theme theme-name applies a theme.
    • wal --theme random applies a theme at random.
    • Themes can be added locally at ~/.config/wal/colorschemes.
    • wal --theme can be used with colorschemes exported in json format from https://terminal.sexy/. wal --theme /path/to/file loads a scheme from a file.
    Source code(tar.gz)
    Source code(zip)
  • 1.3.3(Mar 3, 2018)

    • rofi: Added colon to template.
    • tty.sh: Cleanup.
    • sequences: Fixed terminal highlight colors.
    • templates: Added octal color format. @MitchWeaver
    • macOS: Fixed error with .DS_Store files. @blahsd
    • macOS: Disabled travis (It's really broken)
    Source code(tar.gz)
    Source code(zip)
  • 1.3.2(Feb 4, 2018)

  • 1.3.0(Feb 2, 2018)

    • Added light colorscheme support.
      • Use -l to generate a light scheme.
      • You can use wal -R -l (swap to light) and wal -R (swap to dark) to swap between light and dark.

    scrot

    Source code(tar.gz)
    Source code(zip)
  • 1.2.3(Jan 31, 2018)

    • Fixed typo in help. @gillescastel
    • Scheme files are now versioned.
    • Changed rofi theme to use the new rasi format.
      • New instructions: https://github.com/dylanaraps/pywal/wiki/Customization#rofi
    • Added light/dark themes for rofi.
    • Oomox is now off by default.
      • -g now enables oomox.
    Source code(tar.gz)
    Source code(zip)
  • 1.2.2(Jan 9, 2018)

  • 1.2.1(Jan 8, 2018)

  • 1.2.0(Jan 8, 2018)

    Remember to use wal -c after every release.

    • Added support for oomox.
      • See: https://github.com/dylanaraps/pywal/wiki/Customization#gtk2gtk3
    • Removed support for flatabulous-wal.
    Source code(tar.gz)
    Source code(zip)
  • 1.1.2(Jan 6, 2018)

  • 1.1.1(Jan 6, 2018)

  • 1.1.0(Jan 2, 2018)

    general

    • Added support for changing colors in linux ttys.
    • Fixed bug with transparency in urxvt.
    • Added imagemagick display as a wallpaper setter fallback.

    api

    • Added missing export options.

    misc

    • Code cleanup.
    • Minor optimizations.
    Source code(tar.gz)
    Source code(zip)
  • 1.0.4(Dec 31, 2017)

  • 1.0.3(Dec 30, 2017)

  • 1.0.2(Dec 29, 2017)

  • 1.0.1(Dec 28, 2017)

  • 1.0.0(Dec 27, 2017)

    [Installation] [Getting Started] [Customization] [Wiki]

    This release of pywal contains some large changes and may very well break things for some users. Expect bugs and expect additional releases to fix them. The version has been bumped to 1.0.0 as I'm now happy with where pywal is feature-wise.

    The goal for the future is improving the schemes that pywal generates. Feel free to send me your wallpapers that generate subpar schemes and I'll use them in my testing data.

    Removal of -r

    The flag -r was removed as it was basically a glorified cat of the sequences file with 300ms of python overhead. The new recommended way to load the schemes is to replace wal -r with cat ~/.cache/wal/sequences.

    Removal of -t

    Yup! The -t flag to fix garbage in VTE terminals (termite, xfce4-terminal, gnome-terminal) is no longer needed. I've come up with a workaround that really shouldn't work but does. ¯\_(ツ)_/¯

    The problem: The sequence \033[708;#000000\007 is unsupported by VTE and VTE's sequence parsing doesn't hide unknown sequences, instead it just displays them as plain text. We can't add an if statement or a check for VTE terminals as we're writing to each terminal via it's file descriptor. The only thing that is interpreted is escape sequences.

    The workaround: The problem sequence is wrapped in a series of other escape sequences so that the unsupported sequence isn't echo'd to the terminal.

    How it works:

    # \0337                # Save cursor position.
    # \033[1000H           # Move the cursor off screen.
    # \033[8m              # Conceal text.
    # \033]708;#000000\007 # Garbage sequence.
    # \0338                # Restore cursor position.
    
    \0337\033[1000H\033[8m\033]708;#000000\007\0338
    

    This took a lot of trial and error to make sure it works across all terminals and doesn't cause issues for underlying terminal programs.

    Added User Template Support

    You can now define your own custom pywal template files or you can overwrite the default template files. Any files stored in ~/.config/wal/templates will be processed and exported to ~/.cache/wal/ under the same name.

    The user template files follow the exact same syntax as the built-in templates. See the built-in templates for syntax examples: https://github.com/dylanaraps/pywal/tree/master/pywal/templates

    For example: To define a custom rofi template file to set the background transparent.

    Save this file to ~/.config/wal/templates/colors-rofi.Xresources and re-run wal. Rofi will now use the colors defined below instead.

    #define BG #CC{background.strip}
    #define HI #CC{color1.strip}
    #define FG {color15}
    #define TX {color15}
    
    ! State:           bg, fg, bg2,  hlbg, hlfg
    rofi.color-normal: BG, FG, BG,   HI,   TX
    rofi.color-active: BG, FG, BG,   HI,   TX
    rofi.color-urgent: BG, HI, BG,   HI,   FG
    rofi.color-window: BG, BG, BG
    

    Templates

    • Added template file for rofi.
    • Added template file for st.
    • Added template file for tabbed.
    • Added template file for dwm.

    Args

    • Added -s to disable changing terminal colors on the fly.
    Source code(tar.gz)
    Source code(zip)
  • 0.7.5(Dec 18, 2017)

  • 0.7.4(Dec 18, 2017)

Owner
dylan
22, self taught, creator of @kisslinux
dylan
🎨 Generate and change color-schemes on the fly.

Generate and change color-schemes on the fly. Pywal is a tool that generates a color palette from the dominant colors in an image. It then applies the

dylan 5.3k Jun 5, 2021
A Ruby gem that beautifies the terminal's ls command, with color and font-awesome icons. :tada:

Color LS A Ruby script that colorizes the ls output with color and icons. Here are the screenshots of working example on an iTerm2 terminal (Mac OS),

Athitya Kumar 3.7k Jun 6, 2021
:mag: Google from the terminal

googler is a power tool to Google (web, news, videos and site search) from the command-line. It shows the title, URL and abstract for each result, whi

Piña Colada 5.2k Jun 6, 2021
:cherry_blossom: A command-line fuzzy finder

fzf is a general-purpose command-line fuzzy finder. It's an interactive Unix filter for command-line that can be used with any list; files, command hi

Junegunn Choi 37.1k Jun 6, 2021
:duck: DuckDuckGo from the terminal

ddgr ddgr is a cmdline utility to search DuckDuckGo (html version) from the terminal. While googler is extremely popular among cmdline users, in many

Piña Colada 2.1k Jun 5, 2021
The next gen ls command

LSD (LSDeluxe) Table of Contents Description Screenshot Installation Configuration External Configurations Required Optional F.A.Q. Contributors Credi

Pierre Peltier 5.8k Jun 6, 2021
cloc counts blank lines, comment lines, and physical lines of source code in many programming languages.

cloc Count Lines of Code cloc counts blank lines, comment lines, and physical lines of source code in many programming languages. Latest release: v1.9

null 11.7k Jun 7, 2021
:speech_balloon: Command-line translator using Google Translate, Bing Translator, Yandex.Translate, etc.

Translate Shell Translate Shell (formerly Google Translate CLI) is a command-line translator powered by Google Translate (default), Bing Translator, Y

Mort Yao 5k Jun 6, 2021
Command-line program to download videos from YouTube.com and other video sites

youtube-dl - download videos from youtube.com or other video platforms INSTALLATION DESCRIPTION OPTIONS CONFIGURATION OUTPUT TEMPLATE FORMAT SELECTION

youtube-dl 95.9k Jun 5, 2021
:bookmark: Browser-independent bookmark manager

buku buku in action! Introduction buku is a powerful bookmark manager written in Python3 and SQLite3. When I started writing it, I couldn't find a fle

Piña Colada 4.5k Jun 6, 2021
:zap: A new cd command that helps you navigate faster by learning your habits.

z.lua A command line tool which helps you navigate faster by learning your habits ⚡ An alternative to z.sh with windows and posix shells support and v

Linwei 2k Jun 6, 2021
Notifies you when long-running terminal commands complete

undistract-me Notifies you when long-running terminal commands complete. What is this? Does this ever happen to you? You're doing some work, and as pa

Jonathan Lange 471 Jun 2, 2021
A smart and nice Twitter client on terminal written in Python.

A Note about Twitter API Change Heads-up! As Twitter discontinues supporting Stream API, RainbowStream's stream function has been stopped working for

orakaro.targaryen 3.3k May 31, 2021