Commit Graph

285 Commits

Author SHA1 Message Date
Chris Jones 4516d991a5 Support custom TERM and COLORTERM env vars. Patch from John Feuerstein. Closes LP#794561 2012-10-18 20:51:39 -07:00
Chris Jones 5185657010 Strip newline from text being dragged into the terminal 2012-10-18 14:12:44 -07:00
Chris Jones 6a4e47090b Automatically inject a UUID into any factory object, rather than special-casing terminals. This will be very useful for introspection via dbus 2012-10-18 11:39:28 -07:00
Stephen Boddy a4c0eb453d Merge updates from trunk 2012-07-23 15:30:03 +02:00
Chris Jones 88e65af3a9 Merge a branch from Stephen J Boddy that fixes titlebars not refreshing when using some keyboard shortcuts 2012-07-10 20:27:34 +01:00
Chris Jones 3dd931e19a Merge a branch from Stephen J Boddy to add a keyboard shortcut for changing the window title 2012-07-10 19:41:26 +01:00
Stephen Boddy e5eda24a21 Add shortcut (no default) to edit window title. 2012-06-26 20:29:54 +02:00
Stephen Boddy b4ef645a2f Add shortcuts (no defaults) to insert the group menu numbers. 2012-06-26 20:23:39 +02:00
Stephen Boddy 618e38d18b Clicking with modifier on the group button gives more powerful control. (Shift: Rename, Ctrl: Join current, Super: Include siblings) 2012-06-24 20:42:12 +02:00
Stephen Boddy b85f7c402c Collection of changes that don't add/remove anything, but needed for next checkin to work 2012-06-24 20:36:39 +02:00
Stephen Boddy 383a4b614f Fix titlebars not refreshing when using broadcast shortcut keys 2012-06-24 00:48:23 +02:00
Chris Jones 0a2f1ba7a7 Merge branch from Andre Hilsendeger that fixes initial terminal sizing with non-default font sizes 2012-04-19 11:03:51 +01:00
Chris Jones bca4b8b89f Merge branch from Andre Hilsendeger that implements container rotation 2012-04-19 10:59:33 +01:00
Chris Jones c844184f9f Clear up a signal when closing a terminal and add some debugging 2012-04-19 09:18:05 +01:00
Andre Hilsendeger 5c1bd46177 Set window size after applying font config to ensure a 80x24 terminal. 2012-04-14 13:15:50 +02:00
Andre Hilsendeger e95bdcf964 Add possibility to rotate the paned containers. 2012-04-04 17:48:29 +02:00
Chris Jones 4e2897fa05 Allow users to override the URL handler with a custom executable 2012-01-14 20:39:00 +00:00
Chris Jones cd5c4c1056 Allow plugins to override the open/copy menu items in the terminal context menu. Also set these values for all of the default plugins. When copying a URL, run it through the URL preparer - this means wusers will get the resulting URI on their clipboard, rather than the original text sometimes and the URI some other times, depending on the type of URI 2012-01-14 20:09:25 +00:00
Chris Jones 780c295cf0 Allow font dimming in inactive terminals 2011-10-07 01:20:54 +01:00
Chris Jones 7dc34e7eaf set anti-aliasing even when vte is old and we are on RHEL5 or CentOS5 2011-09-23 21:37:20 +01:00
Chris Jones 007ca36723 Add dbus mechanism to obtain a list of terminals 2011-08-25 22:10:04 +01:00
Chris Jones 2590b36a75 assign each terminal a uuid and expose it via $TERMINATOR_UUID 2011-08-23 23:58:08 +01:00
Chris Jones 807947399f Improved drag&drop support to be more generic and correct. Fixes LP #643425 2011-08-20 23:18:56 +01:00
Chris Jones 8ba7213409 Fix cursor blink/colour issues (Tony Baker) 2011-08-20 16:51:30 +01:00
Chris Jones 32b8d04695 Optimise various low level parts (Stephen Boddy) 2011-08-20 14:53:23 +01:00
Chris Jones ee1d7f1fcf emitting made a poor assumption about focus, which was broken in multiple window situations. No more. 2011-05-11 13:36:47 +01:00
Stephen Boddy 8f90c582a6 Defer the resize callbacks into the gobject.idle_add queue. Huge difference in splitter dragging in complex layouts 2011-02-23 22:46:55 +01:00
Stephen Boddy 05520fd5a7 Replace the get_top_window with the much quicker builtin get_toplevel widget call 2011-02-23 22:35:10 +01:00
Tony Baker 472ad50c6e Changed set_cursor_blinks() to set_cursor_blink_mode(), set_cursor_blinks is deprecated as of vte 0.17.1. Made change to set_color_cursor to fix Launchpad Bug# 700969. 2011-02-07 23:17:46 -05:00
Chris Jones b5c6662359 For now TERM is hardcoded to xterm 2010-08-20 10:58:36 +01:00
Chris Jones f20b437caf Allow disabling of dbus from the command line, and make use of that when spawning a new terminator process 2010-07-22 13:59:06 +01:00
Chris Jones bab0cc27d5 Make font antialiasing configurable 2010-07-13 13:50:33 +01:00
Chris Jones d1989ec4a6 When a window loses focus, update all the terminals within to show the inactive titlebar colours. Closes LP #576276 2010-07-03 20:00:04 +01:00
Chris Jones 597f4ff75d Expose keybindings for setting the broadcast modes. Closes LP #598410 2010-07-03 18:54:53 +01:00
Chris Jones 581a738c62 Preserve cwd into new windows. Closes LP #597651 2010-07-03 16:16:50 +01:00
Chris Jones 838d27bb60 Be even more defensive about URL handling. Closes LP #554571 2010-07-03 16:05:15 +01:00
Chris Jones 45a9c26cf2 Switch the plugin prefs pane back to live loading/unloading of plugins without silly compromises 2010-06-23 00:48:06 +01:00
Chris Jones df43e67239 Fix pasting so we always use our own paste method rather than VTE's so pasting with the keyboard shortcut works in groups 2010-06-17 14:08:54 +01:00
Chris Jones 5b5739df0e Add some more debugging to layout creation 2010-06-15 15:19:05 +01:00
Chris Jones 6cdd57c67c This is an ugly, ugly method to be adding, but it's probably necessary, sadly 2010-06-15 14:54:43 +01:00
Chris Jones c64d71b809 Restore the command line -p option to specify a particular profile. This is then enforced as the default for new terminals 2010-05-15 15:51:20 +02:00
Chris Jones 4184acef3c Add a fixme 2010-05-15 14:18:22 +02:00
Chris Jones 4fca314259 Note the deprecation of Terminal::get_cursor_position 2010-05-05 09:46:09 +01:00
Chris Jones 70ab3b0f71 Store terminal titles in layouts 2010-04-22 23:14:03 +01:00
Chris Jones 5eba5c7751 Actually set a profile if it's specified in a layout 2010-04-20 12:30:43 +01:00
Chris Jones dfaaec5458 Store a Terminal's group in a layout, if it has one. Restore it too. Closes LP #566925 2010-04-19 23:41:54 +01:00
Chris Jones da8df9daa2 seriously, pygtk does some weird things. Make the url handler even more defensive about which scheme it chooses. Closes LP #554571 2010-04-12 22:45:45 +01:00
Chris Jones bd3da1e8ff When removing a notebook child and adding a new one we need to do it in one move so we can preserve the tab ordering. Closes LP #490627 2010-04-12 21:35:24 +01:00
Chris Jones 4b1b58544e gtk.Widget.has_focus() is too new, look for gtk.HAS_FOCUS in flags() instead 2010-04-11 00:54:07 +01:00
Chris Jones 68da0b24b3 Tidy up some focus grabbing on new Terminal creation. Closes LP #558376 2010-04-09 12:58:46 +01:00
Chris Jones b3e1f3750b Handle older gtk versions that lack gtk.show_uri(), making them use xdg-open with a fallback to webbrowser.open(). Closes LP#554571 2010-04-07 12:27:39 +01:00
Chris Jones fd8bc65654 remove enable_real_transparency setting and instead attempt to determine it based on the actual capabilities of the current display 2010-04-06 21:11:11 +01:00
Chris Jones 23dd4e0b2a Attempt to use the VTE API more correctly, working around a python bindings bug in vte 0.24 2010-04-05 23:28:03 +01:00
Chris Jones 364a833324 Add support for preserving cwd across tab creation events. Fixes a regression reported by jkaker 2010-04-02 16:45:32 +01:00
Chris Jones 14e4b4d3fe Fix --working-directory. Closes LP #552497 2010-03-31 14:02:55 +01:00
Chris Jones bbdf055477 Rather than having people use an ugly value of -1 for infinite scrollback, have it as a separate setting, with all of the extra gubbins involved in making that work neatly. Closes LP #532513 2010-03-24 13:22:37 +00:00
Chris Jones 82af1ddba8 We shouldn't need to push {un,}group_tab up to Terminator() and we haven't been handling it anyway 2010-03-23 21:40:03 +00:00
Chris Jones f4b1c2cce0 If a profile is configured to not show the titlebar, actually only show 2px of it until it's clicked on. Poor man's autohide, but it achieves all of my objectives - the colour is hinted to people with no visible titlebar and they can still summon the grouping menu 2010-03-23 20:48:04 +00:00
Chris Jones 16bc247b0e Attach the debug server to the context menu 2010-03-19 22:16:08 +00:00
Chris Jones 8ed1613951 Describe the current profile if it's non-default 2010-03-18 23:11:07 +00:00
Chris Jones 2164f32ddb Kludge the layout creation until it works 2010-03-11 13:04:01 +00:00
Chris Jones 4d1d293804 Update to use the new split_axis method signature 2010-03-08 21:46:45 +00:00
Chris Jones 706180976e Set cwd when spawning new shells to be that of the shell being split. Does not currently persist across tab creations 2010-03-05 22:44:38 +00:00
Chris Jones 8732754794 Don't grab focus when we're respawning a child 2010-03-05 19:54:39 +00:00
Chris Jones b213e76461 Fix up drag and drop to work more often, between more widgets 2010-03-02 12:39:47 +00:00
Chris Jones 45708d267b Remove terminal zoom scaling handler with the correct signal name, and be more errorial when we're refusing to change the font size 2010-02-27 14:38:01 +00:00
Chris Jones 499206f3e9 Config.options is not suitable for use as Terminal layout command overrides. Add a simple thing that is 2010-02-27 15:02:16 +01:00
Chris Jones 98c3979b88 Don't debug print the layout 2010-02-27 14:05:08 +01:00
Chris Jones 94a568ee1c Drag and drop ordering was not paying attention to the requested order. Now it is 2010-02-27 11:26:30 +01:00
Chris Jones bdac9e620a Revert that and instead make the Terminal usage of the options object be more optional 2010-02-21 11:58:17 +00:00
Chris Jones ad1b1ecc79 Fix drag and drop, which had become horribly sensitive to the internal widget structure of Terminal 2010-02-20 23:05:51 +00:00
Chris Jones 8e8c33b5b8 Make this debug actually be a debug 2010-02-17 21:04:57 +01:00
Chris Jones 71919fce55 Create a layout if requested, otherwise create a default one or just open a window 2010-02-17 20:57:05 +01:00
Chris Jones b3eaa85cc9 default to an icon based terminal bell indication, and add such an icon from Tango. 2010-02-11 13:05:12 +00:00
Chris Jones 5520fe11c8 Remove ad-hoc titlebar visibility control and make the preferences setting be applied by Terminal::reconfigure() 2010-02-09 13:08:07 +00:00
Chris Jones 79a340539b Make the titlebar presence configurable by config file and context menu. If it's missing, draw a frame around the Terminal, to indicae colour 2010-02-09 00:23:21 +00:00
Chris Jones 8806c97612 We need to improve the vte mouse enter handler 2010-02-07 11:59:57 +00:00
Chris Jones 1aadbae30b Rework layout config to flatten and build up trees 2010-02-02 00:39:41 +00:00
Chris Jones 9ac5f913fa Ensure we don't set a zero sized font when zooming. Doing so causes vte to explode 2010-02-01 20:15:53 +00:00
Chris Jones 678057a0d3 First run at layout loading, creating, enumerating and saving. It sucks and works poorly at the moment, but here it is 2010-02-01 12:11:44 +00:00
Chris Jones e3438b3bdf Fix up the startup cwd tracking so self-spawning works in non-absolute paths, and handle the key_new_window => key_new_terminator switch 2010-01-29 23:52:21 +00:00
Chris Jones a8748fbbeb This FIXME is fixed 2010-01-26 11:06:28 +00:00
Chris Jones 9bb77729b4 Enhance earlier os.kill() commit by ignoring all failures from that 2010-01-25 13:00:29 +00:00
Chris Jones 8d8681e63f This makes us very UNIX dependent (as if we weren't before anyway), but we now specifically send a SIGHUP to the child of a terminal when that terminal is explicitly close()d 2010-01-25 12:35:34 +00:00
Chris Jones ab02add397 Make the move-tab keyboard shortcuts work 2010-01-24 22:15:54 +00:00
Chris Jones 9f348c349a Fix backspace/delete bindings to actually do what they say they should, per GNOME Terminal behaviour. Closes LP #511875 2010-01-24 15:45:47 +00:00
Chris Jones 6beba121be further pylint appeasement 2010-01-23 00:50:28 +00:00
Chris Jones 055e6f837b This FIXME is no longer true 2010-01-22 13:24:42 +00:00
Chris Jones e9e1101d26 Pay attention to the other optional value for the scrollbar_position when reconfiguring a Terminal 2010-01-21 22:38:52 +00:00
Chris Jones df992c284e Look up GNOME system font and focus settings via gconf 2010-01-21 21:39:05 +00:00
Chris Jones a5222ba6b2 Add various bits of debugging and fix solid backgrounds 2010-01-21 20:58:07 +00:00
Chris Jones 356f9e90bf fix up transparent background functioning 2010-01-21 20:36:18 +00:00
Chris Jones 81e00fca0b Mask some incompatibilities with older gtk 2010-01-21 13:23:39 +00:00
Chris Jones 21caae2517 Start implementing a tab moving signal. It isn't handled yet. This is a regression from trunk until it is handled 2010-01-21 13:02:37 +00:00
Chris Jones 14f98c1b89 Implement (un)group_all and (un)group_tab 2010-01-21 12:55:57 +00:00
Chris Jones 9c72b6287d Implement tab changing keyboard shortcuts 2010-01-21 12:33:42 +00:00
Chris Jones 0f5b6e97a7 Fix WM_URGENT removal by using the right signal name 2010-01-21 12:14:12 +00:00
Chris Jones e2db10fc09 Implement urgent bell handler 2010-01-21 00:13:56 +00:00
Chris Jones 29d0414a04 Fix inverted groupsend handling and generally make it clearer what we mean here by not using the magic groupsend type values 2010-01-20 23:46:13 +00:00
Chris Jones a10babeb5d Port geometry hinting from trunk to epic-refactor. HEY THEO. 2010-01-20 23:36:11 +00:00
Chris Jones ddce3a862d URL dragging was broken because Terminator::get_target_terms() makes no assumptions about which terminal to examine, but it used to 2010-01-20 12:11:02 +00:00
Chris Jones db7b0cc0a0 Directional navigation. Only works for going left yet, see included FIXME 2010-01-20 00:54:35 +00:00
Chris Jones 35910b7a85 Tidy up the email match, and fix the nntp one (thanks dutchie) 2010-01-19 19:44:23 +00:00
Chris Jones abe9b24518 Implement titlebar colours 2010-01-18 23:27:22 +00:00
Chris Jones bdbe359767 Restore -e and -x support 2010-01-18 22:56:43 +00:00
Chris Jones 3f214bf686 Restore ctrl-tab/ctrl-shit-tab 2010-01-18 20:39:46 +00:00
Chris Jones 7d08d790e2 port Terminal to use Signalman 2010-01-18 19:48:24 +00:00
Chris Jones 8ad7ac07b1 Create a new class Signalman which is used to track the glib signals on a widget since at least two of our classes were doing this themselves. Also integrated it into one of those classes, Container() where it is only used by VPaned and HPaned. Also add doctests for it 2010-01-18 13:17:35 +00:00
Chris Jones 8f88537bc5 obvious stupid reason why the email URL matching wasn't working. excess whitespace 2010-01-14 13:52:48 +00:00
Chris Jones df7a3b978d The titlebar is no longer optional, it probably never should have been, it's just too complicated 2010-01-13 23:06:42 +00:00
Chris Jones 02c1a482df Add a get_profile() to Config and use it in Terminal::set_profile() to make sure we don't set a profile that already is 2010-01-13 23:02:17 +00:00
Chris Jones 606ca3707b Extend previous commit to cover the titlebar itself, which previously would suffer subtle focus failures 2010-01-12 01:05:53 +00:00
Chris Jones 8276a6de77 Fix silly focus issue when creating groups - terminals were instantly stealing focus and cancelling the group name creation 2010-01-12 00:58:50 +00:00
Chris Jones 8846328137 scrollbar toggling is now significantly more useful and consistent 2010-01-12 00:33:55 +00:00
Chris Jones 257cc3ead6 Remove the old terminator.py, rename newterminator.py accordingly and update all the references to it 2010-01-11 20:06:53 +00:00
Chris Jones 949dc81574 Clear up some import errors found by pyflakes 2010-01-11 20:03:54 +00:00
Chris Jones e5d52fee52 Implement most of Terminal::reconfigure 2010-01-10 23:47:55 +00:00
Chris Jones b7fa984a52 config dependent signal handling should be marshalled by Terminal::reconfigure 2010-01-10 17:35:03 +00:00
Chris Jones be413d3622 Track a couple of pre-existing connection IDs in Terminal.cnxid 2010-01-10 17:17:31 +00:00
Chris Jones cc11effd3b Store a reference to the signal handlers for config-dependent features, so they can be cancelled later 2010-01-10 17:15:14 +00:00
Chris Jones be224f3016 Undo previous change that had Factory registering windows and terminals. Instead make them self-register since they already have a Terminator reference anyway. Remove calls to register_terminla from elsewhere. 2010-01-04 13:11:16 +00:00
Chris Jones 26f0b2be69 Rename the Profile editor to a general preferences editor and only show a choice of profiles if there's more than one 2010-01-03 17:53:25 +00:00
Chris Jones a13581a4c8 Handle exceptions in a way that doesn't make python 2.5 really angry 2009-12-30 01:50:47 +00:00
Chris Jones 4cfc1c6fd2 Improve debugging relating to URL mangler plugins 2009-12-30 01:05:51 +00:00
Chris Jones 4c025273c9 rename and import the profile editor 2009-12-27 01:01:34 +00:00
Chris Jones ee81bd4f76 Make the terminal context menu list available profiles and switch between them 2009-12-26 20:09:16 +00:00
Chris Jones 30f5225884 Add crashproof code for adding URL handlers from plugins, and reacting to them 2009-12-17 23:17:32 +00:00
Chris Jones ecdbe15420 Add some fixmes for things I know are currently broken, and improve a couple of logging messages 2009-12-16 09:15:53 +00:00
Chris Jones f10f43fa8a pylint 2009-12-10 11:52:26 +00:00
Chris Jones a432d10d24 Add a quick debugging entry 2009-12-09 13:02:45 +00:00
Chris Jones 9cbc6f1282 Add the very barest of support for tabs. 2009-11-21 22:28:39 -06:00
Chris Jones 5e104972a7 Fix keybinding for closing ourself 2009-11-21 12:11:50 -06:00
Chris Jones c5711cbe15 get_top_window moved to util 2009-11-20 16:53:06 -06:00
Chris Jones 279ebf55d6 use the paned hoovering function introduced in revision 910 2009-11-20 09:31:07 -06:00
Chris Jones 39098fdefb Add functions for emitting events 2009-11-20 00:18:21 -06:00
Chris Jones a51454e9f6 make the broadcast menu items activate correctly 2009-11-20 00:11:12 -06:00
Chris Jones 0ff5aa3159 Tidy up some debugging and fix group hoovering 2009-11-19 23:40:31 -06:00
Chris Jones 7d9575df5f Make drag and drop of terminals work 2009-11-16 22:56:55 -06:00
Chris Jones c48c1d4fd6 fix up debugging statements 2009-11-14 23:12:58 +00:00
Chris Jones 4ee756b5ec fix up zoom signal, add an unzoom signal. generally make zooming work 2009-11-14 18:55:51 +00:00
Chris Jones e5301362e4 tidy up some pylint issues 2009-11-14 17:30:03 +00:00
Chris Jones 095ba4dbe3 decouple a little more 2009-11-09 22:35:55 +00:00
Chris Jones 4284cf67ee Start making some navigation work 2009-11-09 22:33:17 +00:00
Chris Jones 5dd6ae0154 improve container signal registration function to never double-register. add a fake resize-term signal to Paned for nested terminal resizes. Implement terminal resizing. 2009-11-08 23:06:26 +00:00
Chris Jones 5352731984 make paneds be splittable, set their initial position properly and don't call reconfigure() all the time 2009-11-08 01:06:31 +00:00
Chris Jones 6b4c660cbc Start implementing our Paned container and switch to it 2009-11-07 01:40:43 +00:00
Chris Jones c60aae8bed make closing of group terminals work 2009-11-04 23:42:54 +00:00
Chris Jones 830863d711 more group work 2009-11-04 23:28:09 +00:00
Chris Jones 8d19561f85 fix up Terminal some more and make the searching work, and include a hacky backwards search 2009-11-04 18:06:34 +00:00
Chris Jones 565257672a fix terminal spawning and font zooming 2009-10-28 23:07:42 +00:00