File tree Expand file tree Collapse file tree 6 files changed +52
-34
lines changed Expand file tree Collapse file tree 6 files changed +52
-34
lines changed Original file line number Diff line number Diff line change @@ -9,11 +9,11 @@ class NotificationObserver < NSObject
99 when /light/i
1010 # 🌝 🌞 🌕 🌙 🌜
1111 puts(" 🌕 #{ LIGHT_THEME } " )
12- ThemeController .set_theme(Mode ::LIGHT )
12+ ThemeController .set_theme(Mode ::Light )
1313 when /dark/i
1414 # 🌚 🌑
1515 puts(" 🌑 #{ DARK_THEME } " )
16- ThemeController .set_theme(Mode ::DARK )
16+ ThemeController .set_theme(Mode ::Dark )
1717 else
1818 puts(" 💀 #{ current_theme } " )
1919 end
Original file line number Diff line number Diff line change 1+ require " ./theme_setter"
2+
3+ class ShellThemeSetter < ThemeSetter
4+ @zsh : Process
5+
6+ def initialize
7+ pipe_file = File .open(Path [" ~/color_pipe.txt" ].expand, " wb" )
8+ @zsh = Process .new(" zsh" , [" -s" ],
9+ input: Process ::Redirect ::Pipe ,
10+ output: pipe_file,
11+ error: Process ::Redirect ::Inherit ,
12+ )
13+ @zsh .input << %( eval "$($DOTDIR/base16/base16-shell/profile_helper.sh)"\n )
14+ end
15+
16+ def set_theme (mode : Mode )
17+ @zsh .input << " eval base16_#{ mode.theme } \n "
18+ end
19+ end
Original file line number Diff line number Diff line change 11require " ./*"
22
33ThemeController .register(ShellThemeSetter .new)
4+ ThemeController .register(VimThemeSetter .new)
45
56handler = NotificationObserver .new
67dnc = NSDistributedNotificationCenter .default_center
Original file line number Diff line number Diff line change 11require " ./*"
22
3- enum Mode
4- DARK
5- LIGHT
6- end
7-
83DARK_THEME = " gruvbox-dark-hard"
94LIGHT_THEME = " one-light"
105
6+ enum Mode
7+ Dark
8+ Light
9+
10+ def theme
11+ case self
12+ when .dark? then DARK_THEME
13+ when .light? then LIGHT_THEME
14+ else raise " unknown mode #{ self } "
15+ end
16+ end
17+ end
18+
1119class ThemeController
1220 @@setters : Array (ThemeSetter ) = [] of ThemeSetter
1321
@@ -16,11 +24,6 @@ class ThemeController
1624 end
1725
1826 def self.set_theme (mode : Mode )
19- theme = case mode
20- when .dark? then DARK_THEME
21- when .light? then LIGHT_THEME
22- else raise " unknown mode #{ mode } "
23- end
24- @@setters .each & .set_theme(theme)
27+ @@setters .each & .set_theme(mode)
2528 end
2629end
Original file line number Diff line number Diff line change 1- require " ./*"
2-
31abstract class ThemeSetter
4- abstract def set_theme (theme : String )
5- end
6-
7- class ShellThemeSetter < ThemeSetter
8- @zsh : Process
9-
10- def initialize
11- pipe_file = File .open(Path [" ~/color_pipe.txt" ].expand, " wb" )
12- @zsh = Process .new(" zsh" , [" -s" ],
13- input: Process ::Redirect ::Pipe ,
14- output: pipe_file,
15- error: Process ::Redirect ::Inherit ,
16- )
17- @zsh .input << %( eval "$($DOTDIR/base16/base16-shell/profile_helper.sh)"\n )
18- end
19-
20- def set_theme (theme : String )
21- @zsh .input << " eval base16_#{ theme } \n "
22- end
2+ abstract def set_theme (mode : Mode )
233end
Original file line number Diff line number Diff line change 1+ require " ./theme_setter"
2+
3+ class VimThemeSetter < ThemeSetter
4+ @file : File
5+
6+ def initialize
7+ @file = File .open(Path [" ~/vim_pipe.txt" ].expand, " w" )
8+ end
9+
10+ def set_theme (mode : Mode )
11+ @file .puts(mode.to_s.downcase)
12+ @file .puts(" base16-#{ mode.theme } " )
13+ @file .flush
14+ end
15+ end
You can’t perform that action at this time.
0 commit comments