Skip to content

Instantly share code, notes, and snippets.

@asux
Last active December 11, 2015 20:39
Show Gist options
  • Save asux/4656834 to your computer and use it in GitHub Desktop.
Save asux/4656834 to your computer and use it in GitHub Desktop.
Sublime Text 2 URI Handler for subl:// and txmt://
#!/usr/bin/env ruby
# /usr/local/bin/open_subl
require 'cgi'
require 'uri'
begin
query = CGI.parse(URI.parse(ARGV.first).query)
url = query['url'].first
file = URI.parse(url).path
line = query['line'].first
column = query['column'].first
args = [file]
args << line unless line.nil?
args << column unless column.nil?
exec "subl #{args.join(':')}"
rescue URI::InvalidURIError
end

Install system-wide ruby:

sudo apt-get install ruby

Add this lines to ~/.local/share/applications/mimeapps.list in Added Associations section:

x-scheme-handler/subl=subl-uri.desktop
x-scheme-handler/txmt=txmt-uri.desktop

or run

xdg-mime default subl-uri.desktop x-scheme-handler/subl               
xdg-mime default txmt-uri.desktop x-scheme-handler/txmt

After run:

sudo update-desktop-database
#!/usr/bin/env xdg-open
# /usr/share/applications/subl-uri.desktop
[Desktop Entry]
Name=Sublime Text 2
GenericName=Text Editor
Comment=Open subl:// links in Sublime Text 2 editor
TryExec=/usr/local/bin/open_subl
Exec=/usr/local/bin/open_subl %U
Terminal=false
Type=Application
MimeType=x-scheme-handler/subl
Icon=sublime-text-2
Categories=TextEditor;Development;Utility;
Name[en_US]=Sublime Text 2
#!/usr/bin/env xdg-open
# /usr/share/applications/txmt-uri.desktop
[Desktop Entry]
Name=Sublime Text 2
GenericName=Text Editor
Comment=Open txmt:// links in Sublime Text 2 editor
TryExec=/usr/local/bin/open_subl
Exec=/usr/local/bin/open_subl %U
Terminal=false
Type=Application
MimeType=x-scheme-handler/txmt
Icon=sublime-text-2
Categories=TextEditor;Development;Utility;
Name[en_US]=Sublime Text 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment