From 9cecd0dd413491938909c06c77b3b2a24f189223 Mon Sep 17 00:00:00 2001 From: Seb Shader Date: Thu, 4 Nov 2021 01:03:22 -0700 Subject: [PATCH] First Commit --- color-themes-plugin.tcl | 473 ++++++++++++++++++++ themes/colorsgrey-plugin.tcl | 47 ++ themes/mariahs-colors-plugin.tcl | 100 +++++ themes/pd-extended-theme-plugin.tcl | 20 + themes/sebs-colors-plugin.tcl | 107 +++++ themes/theme-gruvboxMaterialDark-plugin.tcl | 99 ++++ themes/theme-monokai-plugin.tcl | 98 ++++ themes/theme-softpaper-plugin.tcl | 100 +++++ themes/vanilla-colors-plugin.tcl | 1 + 9 files changed, 1045 insertions(+) create mode 100644 color-themes-plugin.tcl create mode 100644 themes/colorsgrey-plugin.tcl create mode 100644 themes/mariahs-colors-plugin.tcl create mode 100644 themes/pd-extended-theme-plugin.tcl create mode 100644 themes/sebs-colors-plugin.tcl create mode 100755 themes/theme-gruvboxMaterialDark-plugin.tcl create mode 100755 themes/theme-monokai-plugin.tcl create mode 100755 themes/theme-softpaper-plugin.tcl create mode 100644 themes/vanilla-colors-plugin.tcl diff --git a/color-themes-plugin.tcl b/color-themes-plugin.tcl new file mode 100644 index 0000000..3f66520 --- /dev/null +++ b/color-themes-plugin.tcl @@ -0,0 +1,473 @@ +namespace eval color-themes { + variable this_path + variable current_name + variable current_theme + variable hover_theme + variable selected_theme + variable num_themes + variable canvas_height +} + +# found https://comp.lang.tcl.narkive.com/39ezTJaO/string-trimright-bug +proc ::color-themes::trimsubstringright {str substr} { + set l [expr {[string length $substr]-1}] + if {[string range $str end-$l end] == $substr} { + incr l + return [string range $str 0 end-$l] + } else { + return -code error "$str does not end in $substr" + } +} + +proc ::color-themes::reset_defaults {} { + array set ::pd_colors { + selected "#00f" + selection_rectangle "#000" + txt_highlight "" + txt_highlight_front "" + msg_iolet "#000" + msg_iolet_border "#000" + signal_iolet "#000" + signal_iolet_border "#000" + obj_box_outline "#000" + obj_box_fill "" + obj_box_text "#000" + msg_box_outline "#000" + msg_box_fill "" + msg_box_text "#000" + atom_box_outline "#000" + atom_box_fill "" + atom_box_text "#000" + atom_box_label "#000" + msg_cord "#000" + signal_cord "#000" + obj_box_outline_broken "#000" + canvas_fill "#FFFFFF" + canvas_text_cursor "" + comment "#000" + graph_outline "#000" + graph_text "#000" + array_name "#000" + array_values "#000" + gop_box "#FF8080" + text_window_fill "#FFFFFF" + text_window_text "#000" + text_window_highlight "" + text_window_cursor "#000" + pdwindow_fill "#FFFFFF" + pdwindow_fatal_text "#D00" + pdwindow_fatal_highlight "#FFE0E8" + pdwindow_error_text "#D00" + pdwindow_post_text "#000" + pdwindow_debug_text "#484848" + helpbrowser_fill "#FFFFFF" + helpbrowser_text "" + helpbrowser_highlight "" + helpbrowser_hl_text "" + } +} + +proc ::color-themes::set_theme {name} { + variable this_path + variable current_name + variable current_theme + # check for theme + if { ![file exists $this_path/themes/$name-plugin.tcl] } { + ::pdwindow::error "no theme '$name-plugin.tcl'\n" + return + } + #store name + set current_name $name + #reset defaults + ::color-themes::reset_defaults + #load theme + source $this_path/themes/${name}-plugin.tcl + # redraw everything + foreach wind [wm stackorder .] { + if {[winfo class $wind] eq "PatchWindow"} { + pdsend "$wind map 0" + pdsend "$wind map 1" + ${wind}.c configure -background [::pdtk_canvas::get_color canvas_fill] + } + } + ::pdwindow::set_colors +} + +proc ::color-themes::make_default {} { + variable current_name + variable this_path + if {[catch {set fp [open $this_path/current-theme.txt w]}]} { + ::pdwindow::error "couldn't open file for writing\n" + return + } + puts -nonewline $fp $current_name + close $fp + ::pdwindow::post "saved $current_name as the theme\n" +} + +proc ::color-themes::print {} { + variable this_path + ::pdwindow::post "color themes in $this_path/themes:\n" + foreach theme [lsort [glob -path $this_path/themes/ *-plugin.tcl]] { + + ::pdwindow::post "[{::color-themes::trimsubstringright} [file tail $theme] -plugin.tcl]\n" + } +} + +proc ::color-themes::motion {box} { + + #::pdwindow::post "box: $box\n" + if {$box ne ${::color-themes::hover_theme}} { + if {${::color-themes::hover_theme} ne "" && \ + ${::color-themes::hover_theme} ne \ + ${::color-themes::selected_theme} } { + .colortheme_dialog.theme_list.c.f${::color-themes::hover_theme}.c \ + itemconfigure box${::color-themes::hover_theme} -outline \ + black -width 1 + .colortheme_dialog.theme_list.c \ + itemconfigure box${::color-themes::hover_theme} -outline \ + black -width 1 + } + if {$box ne ${::color-themes::selected_theme}} { + .colortheme_dialog.theme_list.c.f$box.c itemconfigure \ + box$box -outline blue -width 7 + .colortheme_dialog.theme_list.c itemconfigure \ + box$box -outline blue -width 7 + } + set {::color-themes::hover_theme} $box + } +} + +proc ::color-themes::click {box} { + if {${::color-themes::hover_theme} eq ""} {return} + if {${::color-themes::selected_theme} ne "" && \ + ${::color-themes::selected_theme} ne ${::color-themes::hover_theme}} { + .colortheme_dialog.theme_list.c.f${::color-themes::selected_theme}.c \ + itemconfigure box${::color-themes::selected_theme} -outline \ + black -width 1 + .colortheme_dialog.theme_list.c \ + itemconfigure box${::color-themes::selected_theme} -outline \ + black -width 1 + } + set {::color-themes::selected_theme} ${::color-themes::hover_theme} + + .colortheme_dialog.theme_list.c.f$box.c itemconfigure \ + box${::color-themes::hover_theme} -outline \ + green -width 7 + .colortheme_dialog.theme_list.c itemconfigure \ + box${::color-themes::hover_theme} -outline \ + green -width 7 +} + +proc ::color-themes::apply {names} { + variable selected_theme + if {$selected_theme eq ""} {return} + {::color-themes::set_theme} [lindex $names $selected_theme] +} + +proc ::color-themes::save_dark {names} { + variable this_path + variable selected_theme + if {$selected_theme eq ""} {return} + set name [lindex $names $selected_theme] + if {[catch {set fp [open $this_path/dark-theme.txt w]}]} { + ::pdwindow::error "couldn't open file for writing\n" + return + } + puts -nonewline $fp $name + close $fp + ::pdwindow::post "saved $name as the dark theme\n" +} + +proc ::color-themes::delete_dark {} { + variable this_path + if {[catch [file delete $this_path/dark-theme.txt]]} { + ::pdwindow::error "couldn't delete dark theme file\n" + return + } + ::pdwindow::post "deleted dark-theme.txt\n" +} + +proc ::color-themes::opendialog {} { + variable this_path + variable current_name + variable hover_theme + variable selected_theme + variable num_themes + variable canvas_height + set hover_theme "" + set selected_theme "" + # save current theme + array set temp_theme [array get ::pd_colors] + if {[winfo exists .colortheme_dialog]} { + wm deiconify .colortheme_dialog + raise .colortheme_dialog + focus .colortheme_dialog + return + } else { + toplevel .colortheme_dialog -class ColorThemeDialog + wm title .colortheme_dialog [_ "Color Themes"] + wm group .colortheme_dialog . + wm resizable .colortheme_dialog 0 1 + wm transient .colortheme_dialog + wm minsize .colortheme_dialog 400 380 + } + if {$::windowingsystem eq "aqua"} { + .colortheme_dialog configure -menu $::dialog_menubar + } + set themes [lsort [glob -path $this_path/themes/ *-plugin.tcl]] + frame .colortheme_dialog.theme_list + scrollbar .colortheme_dialog.theme_list.sy -command \ + ".colortheme_dialog.theme_list.c yview" + canvas .colortheme_dialog.theme_list.c -yscrollcommand \ + ".colortheme_dialog.theme_list.sy set" -width 400 + + + grid .colortheme_dialog.theme_list -sticky nwes -row 0 -column 0 \ + -padx 5 -pady 5 -columnspan 3 + grid .colortheme_dialog.theme_list.c -sticky ns -row 0 -column 0 + grid .colortheme_dialog.theme_list.sy -sticky ns -row 0 -column 1 + grid columnconfigure .colortheme_dialog.theme_list 0 -weight 1 + grid rowconfigure .colortheme_dialog.theme_list 0 -weight 1 + + grid rowconfigure .colortheme_dialog 0 -weight 1 + + set height 5 + set fontinfo [list $::font_family -14 $::font_weight] + set mwidth [font measure $fontinfo M] + set mheight [expr {[font metrics $fontinfo -linespace] + 5}] + set boxheight [expr {$mheight * 3 + 18}] + set boxincr [expr {$boxheight + 5}] + set corner [expr {$mheight/4}] + set counter 0 + set names "" + foreach i $themes { + source ${i} + set name [{::color-themes::trimsubstringright} [file tail ${i}] -plugin.tcl] + lappend names $name + # canvas for txt_highlight + frame .colortheme_dialog.theme_list.c.f$counter + .colortheme_dialog.theme_list.c create rectangle 0 $height 400 \ + [expr {$height + $boxheight}] -outline black -width 1 -tags \ + box$counter + .colortheme_dialog.theme_list.c create window 0 $height -window \ + .colortheme_dialog.theme_list.c.f$counter -anchor nw -width \ + 400 -height $boxheight + canvas .colortheme_dialog.theme_list.c.f$counter.c -width 400 -height \ + $boxheight -background $::pd_colors(canvas_fill) \ + -highlightthickness 0 + grid .colortheme_dialog.theme_list.c.f$counter.c + bind .colortheme_dialog.theme_list.c.f$counter.c { + .colortheme_dialog.theme_list.c yview scroll [expr {- (%D)}] units + } + bind .colortheme_dialog.theme_list.c.f$counter.c \ + [list {::color-themes::motion} $counter] + bind .colortheme_dialog.theme_list.c.f$counter.c \ + [list {::color-themes::click} $counter] + .colortheme_dialog.theme_list.c.f$counter.c create rectangle 0 0 \ + 400 $boxheight -outline black -width 1 -tags box$counter + # name + set twidth [expr {$mwidth * [string length $name] + 4}] + .colortheme_dialog.theme_list.c.f$counter.c create rectangle 2 0 \ + [expr {2 + $twidth}] [expr {$mheight}] -fill black + .colortheme_dialog.theme_list.c.f$counter.c create text 4 3 \ + -text ${name} -anchor nw -font $fontinfo -fill white + # (signal) object box + set twidth [expr {$mwidth * 13 + 4}] + .colortheme_dialog.theme_list.c.f$counter.c create rectangle 5 \ + [expr {$mheight + 4}] [expr {$twidth + 5}] \ + [expr {$mheight*2 + 4}] -fill $::pd_colors(obj_box_fill) \ + -outline $::pd_colors(obj_box_outline) + .colortheme_dialog.theme_list.c.f$counter.c create text 7 \ + [expr {$mheight + 7}] -text signal_object -anchor nw \ + -font $fontinfo -fill $::pd_colors(obj_box_text) + # signal outlet + cable + .colortheme_dialog.theme_list.c.f$counter.c create rectangle 5 \ + [expr {$mheight*2 + 1}] 16 [expr {$mheight*2 + 4}] \ + -fill $::pd_colors(signal_iolet) -outline \ + $::pd_colors(signal_iolet_border) + .colortheme_dialog.theme_list.c.f$counter.c create line 11 \ + [expr {$mheight*2 + 4}] 11 $boxheight \ + -fill $::pd_colors(signal_cord) -width 3 + # broken object + .colortheme_dialog.theme_list.c.f$counter.c create rectangle \ + [expr {$twidth + 15}] \ + [expr {$mheight + 5}] [expr {$twidth*2 + 15}] \ + [expr {$mheight*2 + 5}] -fill $::pd_colors(obj_box_fill) \ + -outline $::pd_colors(obj_box_outline_broken) -dash - + .colortheme_dialog.theme_list.c.f$counter.c create text [expr {$twidth + 17}] \ + [expr {$mheight + 8}] -text broken_object -anchor nw \ + -font $fontinfo -fill $::pd_colors(obj_box_text) + # message box + set twidth [expr {$mwidth * 11 + 4}] + set tempy [expr {$mheight*2 + 8}] + set tempx [expr {$twidth + 20}] + .colortheme_dialog.theme_list.c.f$counter.c create polygon 20 \ + $tempy [expr {$tempx + $corner}] $tempy \ + $tempx [expr {$tempy + $corner}] $tempx \ + [expr {$tempy + $mheight - $corner}] \ + [expr {$tempx + $corner}] [expr {$tempy + $mheight}] \ + 20 [expr {$tempy + $mheight}] -fill $::pd_colors(msg_box_fill) \ + -outline $::pd_colors(msg_box_outline) + .colortheme_dialog.theme_list.c.f$counter.c create text 22 \ + [expr {$mheight*2 + 11}] -text message_box -anchor nw \ + -font $fontinfo -fill $::pd_colors(msg_box_text) + # message outlet + cable + set tempy [expr {$tempy + $mheight}] + .colortheme_dialog.theme_list.c.f$counter.c create rectangle 20 \ + [expr {$tempy - 3}] 31 $tempy -fill $::pd_colors(msg_iolet) \ + -outline $::pd_colors(msg_iolet_border) + .colortheme_dialog.theme_list.c.f$counter.c create line 26 \ + $tempy 26 [expr {$boxheight + $height}] -fill \ + $::pd_colors(msg_cord) -width 2 + # atom box + .colortheme_dialog.theme_list.c.f$counter.c create text \ + [expr {$tempx + 15}] [expr {$mheight*2 + 14}] -text label \ + -anchor nw -font $fontinfo -fill $::pd_colors(atom_box_label) + set twidth [expr {$mwidth * 5 + 4}] + set tempx [expr {$tempx + $twidth + 14}] + set tempy [expr {$mheight*2 + 12}] + .colortheme_dialog.theme_list.c.f$counter.c create polygon $tempx \ + $tempy [expr {$tempx + $twidth - $corner}] $tempy \ + [expr {$tempx + $twidth}] [expr {$tempy + $corner}] \ + [expr {$tempx + $twidth}] [expr {$tempy + $mheight}] \ + $tempx [expr {$tempy + $mheight}] -fill \ + $::pd_colors(atom_box_fill) -outline $::pd_colors(atom_box_outline) + .colortheme_dialog.theme_list.c.f$counter.c create text \ + [expr {$tempx + 2}] [expr {$tempy + 3}] -text gatom -anchor nw \ + -font $fontinfo -fill $::pd_colors(atom_box_text) + incr tempx [expr {$twidth + 15}] + set twidth [expr {$mwidth * 8 + 4}] + # selected box/text + .colortheme_dialog.theme_list.c.f$counter.c create rectangle \ + $tempx $tempy [expr {$tempx + $twidth}] \ + [expr {$tempy + $mheight}] -fill $::pd_colors(obj_box_fill) \ + -outline $::pd_colors(selected) + # can't figure out how to do text_highlight after all + .colortheme_dialog.theme_list.c.f$counter.c create text \ + [expr {$tempx + 2}] [expr {$tempy + 3}] -text selected -anchor nw \ + -font $fontinfo -fill $::pd_colors(selected) + # comment + .colortheme_dialog.theme_list.c.f$counter.c create text \ + [expr {$mwidth * 26 + 31}] [expr {$mheight + 8}] -text comment \ + -anchor nw -font $fontinfo -fill $::pd_colors(comment) + # array + incr tempx [expr {$twidth + 6}] + set tempy [expr {$mheight*3 + 12}] + set twidth [expr {$mwidth * 5 + 4}] + .colortheme_dialog.theme_list.c.f$counter.c create text \ + $tempx 9 -text array \ + -anchor nw -font $fontinfo -fill $::pd_colors(array_name) + .colortheme_dialog.theme_list.c.f$counter.c create rectangle \ + $tempx [expr {$mheight + 5}] [expr {$tempx + $twidth}] \ + $tempy -outline $::pd_colors(graph_outline) + set tempy [expr {2*$mheight + 9}] + .colortheme_dialog.theme_list.c.f$counter.c create line \ + $tempx $tempy [expr {$tempx + $twidth}] \ + $tempy -fill $::pd_colors(array_values) -width 2 + # pd window/console + incr tempx [expr {$twidth + 5}] + .colortheme_dialog.theme_list.c.f$counter.c create rectangle \ + $tempx 0 [expr {$tempx + $twidth}] \ + $boxheight -fill $::pd_colors(pdwindow_fill) + .colortheme_dialog.theme_list.c.f$counter.c create text \ + [expr {$tempx + 2}] 3 -text debug \ + -anchor nw -font $fontinfo -fill $::pd_colors(pdwindow_debug_text) + set tempy [expr {$mheight - 1}] + .colortheme_dialog.theme_list.c.f$counter.c create text \ + [expr {$tempx + 2}] $tempy -text post \ + -anchor nw -font $fontinfo -fill $::pd_colors(pdwindow_post_text) + incr tempy [expr {$mheight - 4}] + .colortheme_dialog.theme_list.c.f$counter.c create text \ + [expr {$tempx + 2}] $tempy -text error \ + -anchor nw -font $fontinfo -fill $::pd_colors(pdwindow_error_text) + incr tempy [expr {$mheight - 4}] + .colortheme_dialog.theme_list.c.f$counter.c create rectangle \ + [expr {$tempx + 1}] $tempy [expr {$tempx + $twidth - 1}] \ + [expr {$tempy + $mheight - 4}] -fill \ + $::pd_colors(pdwindow_fatal_highlight) -outline \ + $::pd_colors(pdwindow_fatal_highlight) + .colortheme_dialog.theme_list.c.f$counter.c create text \ + [expr {$tempx + 2}] $tempy -text fatal \ + -anchor nw -font $fontinfo -fill $::pd_colors(pdwindow_fatal_text) + incr height $boxincr + incr counter + ::color-themes::reset_defaults + } + set canvas_height $height + set num_themes $counter + .colortheme_dialog.theme_list.c configure -scrollregion \ + [list 0 0 400 $height] + button .colortheme_dialog.apply -text [_ "Apply"] \ + -command [list {::color-themes::apply} $names] + button .colortheme_dialog.close -text [_ "Close"] \ + -command "destroy .colortheme_dialog" + button .colortheme_dialog.save -text [_ "Save Current"] \ + -command {::color-themes::make_default} + grid .colortheme_dialog.apply -row 1 -column 0 + grid .colortheme_dialog.close -row 1 -column 1 + grid .colortheme_dialog.save -row 1 -column 2 + grid columnconfigure .colortheme_dialog 0 -weight 1 -uniform a + grid columnconfigure .colortheme_dialog 1 -weight 1 -uniform a + grid columnconfigure .colortheme_dialog 2 -weight 1 -uniform a + if {$::windowingsystem eq "aqua"} { + button .colortheme_dialog.dark -text [_ "Save as Dark Theme"] \ + -command [list {::color-themes::save_dark} $names] + button .colortheme_dialog.undark -text [_ "Delete Dark Theme"] \ + -command {::color-themes::delete_dark} + grid .colortheme_dialog.dark -row 2 -column 0 -pady 5 + grid .colortheme_dialog.undark -row 2 -column 1 -pady 5 + grid configure .colortheme_dialog.apply -pady 1 + } else { + grid configure .colortheme_dialog.apply -pady 5 + grid configure .colortheme_dialog.close -pady 5 + grid configure .colortheme_dialog.save -pady 5 + } + bind .colortheme_dialog.theme_list.c { + .colortheme_dialog.theme_list.c yview scroll [expr {- (%D)}] units + } + + bind .colortheme_dialog.theme_list.c { + if {${::color-themes::hover_theme} ne "" && \ + ${::color-themes::selected_theme} ne ${::color-themes::hover_theme}} { + .colortheme_dialog.theme_list.c.f${::color-themes::hover_theme}.c \ + itemconfigure box${::color-themes::hover_theme} -outline \ + black -width 1 + .colortheme_dialog.theme_list.c \ + itemconfigure box${::color-themes::hover_theme} -outline \ + black -width 1 + } + set {::color-themes::hover_theme} "" + } + array set ::pd_colors [array get temp_theme] +} + +proc ::color-themes::init {mymenu} { + set ::color-themes::this_path $::current_plugin_loadpath + #::pdwindow::post "menu: $mymenu\n" + $mymenu add command -label [_ "Color Themes..."] \ + -command {::color-themes::opendialog} + if {[catch {set darkmode [exec defaults read -g AppleInterfaceStyle]}]} { + set darkmode "" + } + if {$::windowingsystem eq "aqua" && $darkmode eq "Dark" && [file exists \ + $::current_plugin_loadpath/dark-theme.txt] } { + if {![catch {set fp [open $::current_plugin_loadpath/dark-theme.txt r]}]} { + # not sure if the console is ready.. + ::color-themes::set_theme [read -nonewline $fp] + close $fp + } + return + } + if {[catch {set fp [open $::current_plugin_loadpath/current-theme.txt r]}]} { + return + } + ::color-themes::set_theme [read -nonewline $fp] + close $fp +} + +if {$::windowingsystem eq "aqua"} { + ::color-themes::init .menubar.apple.preferences +} else { + ::color-themes::init .menubar.file.preferences +} \ No newline at end of file diff --git a/themes/colorsgrey-plugin.tcl b/themes/colorsgrey-plugin.tcl new file mode 100644 index 0000000..94704d2 --- /dev/null +++ b/themes/colorsgrey-plugin.tcl @@ -0,0 +1,47 @@ +# theme by 60hz on the pure data forum +# https://forum.puredata.info/topic/10943/a-little-pd-mod + +array set ::pd_colors { +selected "orange" +selection_rectangle "orange" +txt_highlight "grey" +txt_highlight_front "orange" +msg_iolet "grey15" +signal_iolet "grey15" +msg_iolet_border "grey15" +signal_iolet_border "blue" +obj_box_outline "grey35" +obj_box_fill "grey35" +obj_box_text "grey80" +msg_box_outline "grey80" +msg_box_fill "grey80" +msg_box_text "#000" +atom_box_outline "grey35" +atom_box_fill "grey80" +atom_box_text "#000" +atom_box_label "#000" +msg_cord "grey35" +signal_cord "blue" +obj_box_outline_broken "blue" +canvas_fill "grey60" +comment "#000" +graph_outline "grey25" +graph_text "#000" +array_name "#000" +array_values "#000" +gop_box "#FF8080" +text_window_fill "grey25" +text_window_text "#FFFFFF" +text_window_highlight "orange" +text_window_cursor "#FFFFFF" +canvas_text_cursor "orange" +pdwindow_fill "grey25" +pdwindow_fatal_text "#D00" +pdwindow_fatal_highlight "#FFE0E8" +pdwindow_error_text "#D00" +pdwindow_post_text "#FFFFFF" +pdwindow_debug_text "#808080" +helpbrowser_fill "grey25" +helpbrowser_text "#FFFFFF" +helpbrowser_highlight "" +} diff --git a/themes/mariahs-colors-plugin.tcl b/themes/mariahs-colors-plugin.tcl new file mode 100644 index 0000000..0899406 --- /dev/null +++ b/themes/mariahs-colors-plugin.tcl @@ -0,0 +1,100 @@ +# canvas_fill - the canvas (patch background) +# gop_box - the GOP rectangle (when editing GOP patches) +# obj_box_text - text in an object box +# msg_box_text - text in a message box +# comment +# selected - selection +# obj_box_outline_broken - outline of "broken" object +# (that failed to create) +# obj_box_outline +# msg_box_outline +# msg_box_fill - fill of a message box +# obj_box_fill - " " object box +# signal_cord - signal cord and outline of signal inlets +# msg_cord - message cord and outline of message inlets +# msg_iolet - message inlet/outlet fill +# signal_iolet - signal inlet/outlet fill +# graph_outline - outline of arrays and GOP patches in the parent patch +# graph_text - color of the names of GOP patches in the parent patch +# selection_rectangle - selection rectangle color in edit mode +# txt_highlight - color text is highlighted +# (in the "background") when selected +# array_name - garray names +# array_values - array elements +# atom_box_fill - fill of gatoms (number box, symbol box) +# atom_box_text - text of gatoms +# atom_box_label - label of gatoms +# atom_box_outline - outline of gatoms +# text_window_fill - [text] window background +# text_window_text - [text] window text +# text_window_highlight - like txt_highlight but for [text] window +# text_window_cursor - [text] window cursor +# pdwindow_fill - background of post window +# pdwindow_fatal_text - text for fatal errors +# pdwindow_fatal_highlight - highlight (background) for fatal errors +# pdwindow_error_text - text for errors +# pdwindow_post_text - text for posting +# pdwindow_debug_text - text for verbose logs +# helpbrowser_fill +# helpbrowser_text +# helpbrowser_highlight - like txt_highlight but for help browser + +array set ::pd_colors { +canvas_fill "magenta" +gop_box "black" +selected "yellow" +obj_box_outline_broken "light blue" + +msg_box_fill "cyan" +obj_box_fill "lime green" +signal_cord "orange" +msg_cord "orange" +msg_iolet "pink" +signal_iolet "red" +signal_iolet_border "orange" +msg_iolet_border "orange" +graph_outline "blue" +selection_rectangle "light green" +txt_highlight "white" +graph_text "purple" +array_name "#0B8100" +array_values "purple" +atom_box_fill "cyan" +atom_box_outline "cyan" +text_window_fill "black" +text_window_text "magenta" +text_window_highlight "green" +text_window_cursor "green" +pdwindow_fill "#000" +pdwindow_fatal_text "#D00" +pdwindow_fatal_highlight "#FFE0E8" +pdwindow_error_text "#D00" +pdwindow_post_text "deep sky blue" +pdwindow_debug_text "green" +helpbrowser_fill "#000" +helpbrowser_highlight "red" +canvas_text_cursor "deep sky blue" +helpbrowser_hl_text "white" +helpbrowser_text "lime green" +} + + +#random colors for everything +#proc ::pdtk_canvas::get_color {type {window 0}} { +# return [format #%06x [expr {int(rand() * 0xFFFFFF)}]] +#} + +# proc redraw_cords {name, blank, op} { +# foreach wind [wm stackorder .] { +# if {[winfo class $wind] eq "PatchWindow"} { +# set canv ${wind}.c +# foreach record [$canv find withtag cord] { +# set tag [lindex [$canv gettags $record] 0] +# set coords [lreplace [$canv coords $tag] 2 end-2] +# ::pdtk_canvas::pdtk_coords {*}$coords $tag $canv +# } +# } +# } +# } +# +# trace variable ::curve_cords w redraw_cords \ No newline at end of file diff --git a/themes/pd-extended-theme-plugin.tcl b/themes/pd-extended-theme-plugin.tcl new file mode 100644 index 0000000..a0e74aa --- /dev/null +++ b/themes/pd-extended-theme-plugin.tcl @@ -0,0 +1,20 @@ +array set ::pd_colors { +selected "#00f" +signal_iolet "#558" +signal_iolet_border "#558" +msg_iolet "#fff" +obj_box_outline "#ccc" +obj_box_fill "#f6f8f8" +msg_box_outline "#ccc" +msg_box_fill "#f8f8f6" +atom_box_outline "#ccc" +atom_box_fill "#eee" + +msg_cord "#121" +signal_cord "#558" +obj_box_outline_broken "#f00" +canvas_fill "white" + +} +set ::pd_colors(signal_iolet_border) $::pd_colors(signal_cord) +set ::pd_colors(msg_iolet_border) $::pd_colors(msg_cord) \ No newline at end of file diff --git a/themes/sebs-colors-plugin.tcl b/themes/sebs-colors-plugin.tcl new file mode 100644 index 0000000..8442067 --- /dev/null +++ b/themes/sebs-colors-plugin.tcl @@ -0,0 +1,107 @@ +# canvas_fill - the canvas (patch background) +# gop_box - the GOP rectangle (when editing GOP patches) +# obj_box_text - text in an object box +# msg_box_text - text in a message box +# comment +# selected - selection +# obj_box_outline_broken - outline of "broken" object +# (that failed to create) +# obj_box_outline +# msg_box_outline +# msg_box_fill - fill of a message box +# obj_box_fill - " " object box +# signal_cord - signal cord and outline of signal inlets +# msg_cord - message cord and outline of message inlets +# msg_iolet - message inlet/outlet fill +# signal_iolet - signal inlet/outlet fill +# graph_outline - outline of arrays and GOP patches in the parent patch +# graph_text - color of the names of GOP patches in the parent patch +# selection_rectangle - selection rectangle color in edit mode +# txt_highlight - color text is highlighted +# (in the "background") when selected +# array_name - garray names +# array_values - array elements +# atom_box_fill - fill of gatoms (number box, symbol box) +# atom_box_text - text of gatoms +# atom_box_label - label of gatoms +# atom_box_outline - outline of gatoms +# text_window_fill - [text] window background +# text_window_text - [text] window text +# text_window_highlight - like txt_highlight but for [text] window +# text_window_cursor - [text] window cursor +# pdwindow_fill - background of post window +# pdwindow_fatal_text - text for fatal errors +# pdwindow_fatal_highlight - highlight (background) for fatal errors +# pdwindow_error_text - text for errors +# pdwindow_post_text - text for posting +# pdwindow_debug_text - text for verbose logs +# helpbrowser_fill +# helpbrowser_text +# helpbrowser_highlight - like txt_highlight but for help browser + +array set ::pd_colors { +canvas_fill "#FF8800" +gop_box "black" +obj_box_text "#00FF00" +msg_box_text "white" +comment "blue" +selected "yellow" +obj_box_outline_broken "light blue" +obj_box_outline "#0B8100" +msg_box_outline "purple" +msg_box_fill "purple" +obj_box_fill "#0B8100" +signal_cord "blue" +msg_cord "black" +msg_iolet "white" +signal_iolet "blue" +graph_outline "blue" +selection_rectangle "light green" +txt_highlight "black" +graph_text "purple" +array_name "#0B8100" +array_values "purple" +atom_box_fill "black" +atom_box_text "cyan" +atom_box_label "black" +atom_box_outline "cyan" +text_window_fill "black" +text_window_text "white" +text_window_highlight "green" +text_window_cursor "green" +pdwindow_fill "#000" +pdwindow_fatal_text "#D00" +pdwindow_fatal_highlight "#FFE0E8" +pdwindow_error_text "#D00" +pdwindow_post_text "deep sky blue" +pdwindow_debug_text "green" +helpbrowser_fill "#000" +helpbrowser_text "deep sky blue" +helpbrowser_highlight "red" +canvas_text_cursor "deep sky blue" +helpbrowser_hl_text "white" +} +set ::pd_colors(txt_highlight_front) "$::pd_colors(selected)" +set ::pd_colors(msg_iolet_border) "blue" +set ::pd_colors(signal_iolet_border) $::pd_colors(signal_cord) + + +#random colors for everything +#proc ::pdtk_canvas::get_color {type {window 0}} { +# return [format #%06x [expr {int(rand() * 0xFFFFFF)}]] +#} + +# proc redraw_cords {name, blank, op} { +# foreach wind [wm stackorder .] { +# if {[winfo class $wind] eq "PatchWindow"} { +# set canv ${wind}.c +# foreach record [$canv find withtag cord] { +# set tag [lindex [$canv gettags $record] 0] +# set coords [lreplace [$canv coords $tag] 2 end-2] +# ::pdtk_canvas::pdtk_coords {*}$coords $tag $canv +# } +# } +# } +# } +# +# trace variable ::curve_cords w redraw_cords \ No newline at end of file diff --git a/themes/theme-gruvboxMaterialDark-plugin.tcl b/themes/theme-gruvboxMaterialDark-plugin.tcl new file mode 100755 index 0000000..1adc114 --- /dev/null +++ b/themes/theme-gruvboxMaterialDark-plugin.tcl @@ -0,0 +1,99 @@ +# theme from https://github.com/Eric-Lennartson/pd-themes +# canvas_fill - the canvas (patch background) +# canvas_text_cursor - text insertion cursor for all canvas objects +# gop_box - the GOP rectangle (when editing GOP patches) +# obj_box_text - text in an object box +# msg_box_text - text in a message box +# comment +# selected - selection +# obj_box_outline_broken - outline of "broken" object +# (that failed to create) +# obj_box_outline +# msg_box_outline +# msg_box_fill - fill of a message box +# obj_box_fill - " " object box +# signal_cord - signal cord and outline of signal inlets +# msg_cord - message cord and outline of message inlets +# msg_iolet - message inlet/outlet fill +# signal_iolet - signal inlet/outlet fill +# graph_outline - outline of arrays and GOP patches in the parent patch +# graph_text - color of the names of GOP patches in the parent patch +# selection_rectangle - selection rectangle color in edit mode +# txt_highlight - color text is highlighted (in the "background") when selected +# array_name - garray names +# array_values - array elements +# atom_box_fill - fill of gatoms (number box, symbol box) +# atom_box_text - text of gatoms +# atom_box_label - label of gatoms +# atom_box_outline - outline of gatoms +# text_window_fill - [text] window background +# text_window_text - [text] window text +# text_window_highlight - like txt_highlight but for [text] window +# text_window_cursor - [text] window cursor +# pdwindow_fill - background of post window +# pdwindow_fatal_text - text for fatal errors +# pdwindow_fatal_highlight - highlight (background) for fatal errors +# pdwindow_error_text - text for errors +# pdwindow_post_text - text for posting +# pdwindow_debug_text - text for verbose logs +# helpbrowser_fill +# helpbrowser_text +# helpbrowser_highlight - like txt_highlight but for help browser + +# gruvbox +array set ::pd_colors { + gop_box "#b85651" + + canvas_fill "#32302f" + pdwindow_fill "#32302f" + helpbrowser_fill "#32302f" + text_window_fill "#32302f" + + obj_box_text "#a9b665" + msg_box_text "#a9b665" + atom_box_text "#a9b665" + pdwindow_post_text "#c5b18d" + atom_box_label "#c5b18d" + helpbrowser_text "#c5b18d" + text_window_text "#c5b18d" + comment "#928374" + + obj_box_outline "#5a524c" + msg_box_outline "#5a524c" + atom_box_outline "#5a524c" + msg_box_fill "#5a524c" + obj_box_fill "#5a524c" + atom_box_fill "#5a524c" + + signal_cord "#c18f41" + signal_iolet "#c18f41" + signal_iolet_border "#c18f41" + msg_cord "#a89984" + msg_iolet "#a89984" + msg_iolet_border "#a89984" + + graph_outline "#5a524c" + graph_text "#a9b665" + array_name "#a9b665" + array_values "#d3869b" + + obj_box_outline_broken "#ea6962" + pdwindow_fatal_text "#ea6962" + pdwindow_fatal_highlight "#32302f" + pdwindow_error_text "#ea6962" + pdwindow_debug_text "#8f9a52" + + selected "#7daea3" + selection_rectangle "#7daea3" + helpbrowser_highlight "#7c6f64" + txt_highlight_front "#7daea3" + text_window_highlight "#7c6f64" + txt_highlight "#7c6f64" + + text_window_cursor "#FFFFFF" + canvas_text_cursor "#FFFFFF" + cursor "#FFFFFF" + + scrollbox_fill "#45403d" + text "#ddc7a1" +} diff --git a/themes/theme-monokai-plugin.tcl b/themes/theme-monokai-plugin.tcl new file mode 100755 index 0000000..be7a8bb --- /dev/null +++ b/themes/theme-monokai-plugin.tcl @@ -0,0 +1,98 @@ +# theme from https://github.com/Eric-Lennartson/pd-themes +# canvas_fill - the canvas (patch background) +# canvas_text_cursor - text insertion cursor for all canvas objects +# gop_box - the GOP rectangle (when editing GOP patches) +# obj_box_text - text in an object box +# msg_box_text - text in a message box +# comment +# selected - selection +# obj_box_outline_broken - outline of "broken" object +# (that failed to create) +# obj_box_outline +# msg_box_outline +# msg_box_fill - fill of a message box +# obj_box_fill - " " object box +# signal_cord - signal cord and outline of signal inlets +# msg_cord - message cord and outline of message inlets +# msg_iolet - message inlet/outlet fill +# signal_iolet - signal inlet/outlet fill +# graph_outline - outline of arrays and GOP patches in the parent patch +# graph_text - color of the names of GOP patches in the parent patch +# selection_rectangle - selection rectangle color in edit mode +# txt_highlight - color text is highlighted (in the "background") when selected +# array_name - garray names +# array_values - array elements +# atom_box_fill - fill of gatoms (number box, symbol box) +# atom_box_text - text of gatoms +# atom_box_label - label of gatoms +# atom_box_outline - outline of gatoms +# text_window_fill - [text] window background +# text_window_text - [text] window text +# text_window_highlight - like txt_highlight but for [text] window +# text_window_cursor - [text] window cursor +# pdwindow_fill - background of post window +# pdwindow_fatal_text - text for fatal errors +# pdwindow_fatal_highlight - highlight (background) for fatal errors +# pdwindow_error_text - text for errors +# pdwindow_post_text - text for posting +# pdwindow_debug_text - text for verbose logs +# helpbrowser_fill +# helpbrowser_text +# helpbrowser_highlight - like txt_highlight but for help browser + +# monokai +array set ::pd_colors { + gop_box "#D8447A" + + canvas_fill "#272822" + pdwindow_fill "#272822" + scrollbox_fill "#272822" + helpbrowser_fill "#272822" + text_window_fill "#272822" + + obj_box_text "#A1D044" + msg_box_text "#D6CC78" + atom_box_text "#AE81FF" + atom_box_label "#88846f" + pdwindow_post_text "#CFCFCF" + helpbrowser_text "#CFCFCF" + text_window_text "#CFCFCF" + text "#CFCFCF" + comment "#88846f" + + obj_box_outline "#403f34" + msg_box_outline "#403f34" + atom_box_outline "#403f34" + msg_box_fill "#403f34" + obj_box_fill "#403f34" + atom_box_fill "#403f34" + + signal_cord "#D99A53" + signal_iolet "#D99A53" + signal_iolet_border "#D99A53" + msg_cord "#A3A28F" + msg_iolet "#A3A28F" + msg_iolet_border "#A3A28F" + + graph_outline "#403f34" + graph_text "#88846f" + array_name "#AE81FF" + array_values "#AE81FF" + + obj_box_outline_broken "#DC5E5E" + pdwindow_fatal_text "#DC5E5E" + pdwindow_error_text "#DC5E5E" + pdwindow_fatal_highlight "#272822" + pdwindow_debug_text "#A1D044" + + selected "#90BFC9" + selection_rectangle "#90BFC9" + helpbrowser_highlight "#716F5B" + txt_highlight_front "#060901" + text_window_highlight "#90BFC9" + txt_highlight "#716F5B" + + text_window_cursor "#FFFFFF" + canvas_text_cursor "#FFFFFF" + cursor "#FFFFFF" +} \ No newline at end of file diff --git a/themes/theme-softpaper-plugin.tcl b/themes/theme-softpaper-plugin.tcl new file mode 100755 index 0000000..015a714 --- /dev/null +++ b/themes/theme-softpaper-plugin.tcl @@ -0,0 +1,100 @@ +# theme from https://github.com/Eric-Lennartson/pd-themes +# canvas_fill - the canvas (patch background) +# canvas_text_cursor - text insertion cursor for all canvas objects +# gop_box - the GOP rectangle (when editing GOP patches) +# obj_box_text - text in an object box +# msg_box_text - text in a message box +# comment +# selected - selection +# obj_box_outline_broken - outline of "broken" object +# (that failed to create) +# obj_box_outline +# msg_box_outline +# msg_box_fill - fill of a message box +# obj_box_fill - " " object box +# signal_cord - signal cord and outline of signal inlets +# msg_cord - message cord and outline of message inlets +# msg_iolet - message inlet/outlet fill +# signal_iolet - signal inlet/outlet fill +# graph_outline - outline of arrays and GOP patches in the parent patch +# graph_text - color of the names of GOP patches in the parent patch +# selection_rectangle - selection rectangle color in edit mode +# txt_highlight - color text is highlighted (in the "background") when selected +# array_name - garray names +# array_values - array elements +# atom_box_fill - fill of gatoms (number box, symbol box) +# atom_box_text - text of gatoms +# atom_box_label - label of gatoms +# atom_box_outline - outline of gatoms +# text_window_fill - [text] window background +# text_window_text - [text] window text +# text_window_highlight - like txt_highlight but for [text] window +# text_window_cursor - [text] window cursor +# pdwindow_fill - background of post window +# pdwindow_fatal_text - text for fatal errors +# pdwindow_fatal_highlight - highlight (background) for fatal errors +# pdwindow_error_text - text for errors +# pdwindow_post_text - text for posting +# pdwindow_debug_text - text for verbose logs +# helpbrowser_fill +# helpbrowser_text +# helpbrowser_highlight - like txt_highlight but for help browser + +# softpaper +array set ::pd_colors { + gop_box "#AB6526" + + atom_box_label "#939e53" + comment "#AAAAAA" + + obj_box_outline "#DCD6C5" + msg_box_outline "#DCD6C5" + atom_box_outline "#DCD6C5" + msg_box_fill "#DCD6C5" + obj_box_fill "#DCD6C5" + atom_box_fill "#DCD6C5" + + obj_box_text "#5F5F5E" + msg_box_text "#5F5F5E" + atom_box_text "#5F5F5E" + pdwindow_post_text "#5F5F5E" + helpbrowser_text "#5F5F5E" + text_window_text "#5F5F5E" + + signal_cord "#869438" + signal_iolet "#869438" + signal_iolet_border "#869438" + msg_cord "#AAAAAA" + msg_iolet "#AAAAAA" + msg_iolet_border "#AAAAAA" + + graph_outline "#5F5F5E" + graph_text "#5F5F5E" + array_name "#5F5F5E" + array_values "#9C5FBF" + + canvas_fill "#F3F1EB" + pdwindow_fill "#F3F1EB" + text_window_fill "#F3F1EB" + helpbrowser_fill "#F3F1EB" + + obj_box_outline_broken "#FF4747" + pdwindow_fatal_text "#FF4747" + pdwindow_error_text "#FF4747" + pdwindow_fatal_highlight "#F3F1EB" + pdwindow_debug_text "#205988" + + helpbrowser_highlight "#c2baa1" + selection_rectangle "#9C5FBF" + selected "#AE7CCB" + txt_highlight_front "#AE7CCB" + text_window_highlight "#AAAAAA" + txt_highlight "#AAAAAA" + + text_window_cursor "#2B2B2B" + canvas_text_cursor "#2B2B2B" + cursor "#2B2B2B" + + scrollbox_fill "#DCD6C5" + text "#5F5F5E" +} diff --git a/themes/vanilla-colors-plugin.tcl b/themes/vanilla-colors-plugin.tcl new file mode 100644 index 0000000..8b09e9c --- /dev/null +++ b/themes/vanilla-colors-plugin.tcl @@ -0,0 +1 @@ +# just let the default colors get and set \ No newline at end of file