Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2014
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. # Map color names to actual values
  2. SOLARIZED = {
  3. :base03 => '#002b36', # brblack
  4. :base02 => '#073642', # black
  5. :base01 => '#586e75', # brgreen
  6. :base00 => '#657b83', # bryellow
  7. :base0 => '#839496', # brblue
  8. :base1 => '#93a1a1', # brcyan
  9. :base2 => '#eee8d5', # white
  10. :base3 => '#fdf6e3', # brwhite
  11. :yellow => '#b58900', # yellow
  12. :orange => '#cb4b16', # brred
  13. :red => '#dc322f', # red
  14. :magenta => '#d33682', # magenta
  15. :violet => '#6c71c4', # brmagenta
  16. :blue => '#268bd2', # blue
  17. :cyan => '#2aa198', # cyan
  18. :green => '#859900' # green
  19. }
  20.  
  21. # Base terminal color mapping
  22. BASE = {
  23. 'color0' => :base02,
  24. 'color8' => :base03,
  25.  
  26. 'color1' => :red,
  27. 'color9' => :orange,
  28.  
  29. 'color2' => :green,
  30. 'color10' => :base01,
  31.  
  32. 'color3' => :yellow,
  33. 'color11' => :base00,
  34.  
  35. 'color4' => :blue,
  36. 'color12' => :orange,
  37.  
  38. 'color5' => :magenta,
  39. 'color13' => :violet,
  40.  
  41. 'color6' => :cyan,
  42. 'color14' => :base1,
  43.  
  44. 'color7' => :base2,
  45. 'color15' => :base3
  46. }
  47.  
  48. HEADER = '# Solarized theme'
  49.  
  50. def make_theme(colors)
  51. hash = Hash.new { |h, k| h[k] = BASE[k] }
  52. colors.each { |k, v| hash[k] = v }
  53. return hash
  54. end
  55.  
  56. def write_theme(file, theme)
  57. file.puts HEADER
  58. file.puts "*fading: 40"
  59. file.puts "*fadeColor: #{SOLARIZED[theme['background']]}"
  60. file.puts "*foreground: #{SOLARIZED[theme['foreground']]}"
  61. file.puts "*background: #{SOLARIZED[theme['background']]}"
  62. (0 .. 15).each do |i|
  63. file.puts "*color#{i}: #{SOLARIZED[theme["color#{i}"]]}"
  64. end
  65. end
  66.  
  67. DARK = make_theme({
  68. 'foreground' => :base0,
  69. 'background' => :base03
  70. })
  71.  
  72. BRIGHT = make_theme({
  73. 'foreground' => :base01,
  74. 'background' => :base3
  75. })
  76.  
  77. if ARGV.size < 1 then
  78. puts "Usage: #{$0} <dark|bright>"
  79. exit 1
  80. end
  81.  
  82. theme = nil
  83. case ARGV.first
  84. when 'dark'
  85. theme = DARK
  86. when 'bright'
  87. theme = BRIGHT
  88. else
  89. puts "Unknown theme"
  90. exit 1
  91. end
  92.  
  93. xdefaults = File.expand_path('~/.Xdefaults')
  94.  
  95. lines = []
  96. lines = File.readlines xdefaults
  97. lines = lines.take_while do |l|
  98. l.strip != HEADER
  99. end
  100.  
  101. File.open(xdefaults, 'w') do |f|
  102. lines.each { |l| f.puts l }
  103. write_theme(f, theme)
  104. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement