diff --git a/lib/colorls.rb b/lib/colorls.rb index 57f369d..33a350d 100644 --- a/lib/colorls.rb +++ b/lib/colorls.rb @@ -5,6 +5,7 @@ require 'etc' require 'English' require 'filesize' require 'io/console' +require 'io/console/size' require 'rainbow/ext/string' require 'clocale' require 'unicode/display_width' diff --git a/lib/colorls/core.rb b/lib/colorls/core.rb index 5ec1f3e..b7300b8 100644 --- a/lib/colorls/core.rb +++ b/lib/colorls/core.rb @@ -8,8 +8,17 @@ module ColorLS @file_encoding end - @screen_width = IO.console.winsize[1] - @screen_width = 80 if @screen_width.zero? + def self.terminal_width + console = IO.console + + width = IO.console_size[1] + + return width if console.nil? || console.winsize[1].zero? + + console.winsize[1] + end + + @screen_width = terminal_width def self.screen_width @screen_width