merge from experimental
authorDieter Plaetinck <dieter@plaetinck.be>
Sat, 25 Apr 2009 11:15:32 +0000 (13:15 +0200)
committerDieter Plaetinck <dieter@plaetinck.be>
Sat, 25 Apr 2009 11:15:32 +0000 (13:15 +0200)
1  2 
README
TODO

diff --cc README
--- 1/README
--- 2/README
+++ b/README
@@@ -13,16 -14,47 +14,48 @@@ Right now uzbl is in a very early stat
    use xbindkeys to bind keys to call uzblctrl.
  - no bookmark management builtin.  make your own solution.  for pulling a bookmark a plaintxt-based program using dmenu would work great here. combine with uzbltcrl and xbindkeys.
    uzblctrl should support an option to query the current page so you can script something to add to your bookmarks.  use zenity or something to add tags.
- - similar story for history.
- - no ad blocking built in. use the power of /etc/hosts.  though uzblctrl should support an option to list all images on a page, so you can easily pick the links to ads to add them to your /etc/hosts. (dmenu can again be great here to automate this)
+ - history: log 'Y-m-d H:M:S <url>' entries to a plaintext file. you can then use dmenu or whatever to select an entry and pipe the output to uzbl's fifo.
+ - no ad blocking built in (I think). 
+   alternatives:
+   ->  /etc/hosts (not very good cause you need root and it affects the whole system)-> uzblctrl would need to support an option to list all images on a page, so you can easily pick the links to ads to add them to your /etc/hosts. (dmenu can again be great here to automate this)
+   -> privoxy looks cool and perfectly demonstrates the unix philosphy.
  - no download manager. allow user to pick wget/curl/a custom script/... 
  - no build in command interpreters like ubiquity.  uzbl should be accessible and you should use a shell or similar.
 +- no "clear cookies/cache/..." menu items. rm ~/$XDG_{DATA,CACHE}_DIR/uzbl/{cache,cookies}/* 
+ - vimperator/konqueror-like hyperlink following.
+ - password management. maybe an encrypted store that unlocks with an ssh key?
+ - use the XDG basedir spec for separation of config, data and cache. and state will be a subdir in the config dir (not part of the spec yet) too.
  
+ WIDGET ROADMAP:
+ * statusbar? (the bar you see in pretty much every gtk program at the bottom. eg firefox)
+   consumes too much space (if always visible) for the little it is used.  (+ you can put only 1 message in it at a time!)
+   -> option 1: no statusbar at all. when hovering over a link (or pressing key to preview the url without changing page) -> show url in tooltip on page.
+   -> option 2: toggle visibility of statusbar on/off when hovering over a link. since it's at the bottom I don't think it will disturb too much.
+ * viewing progress/state of pageload?  most programs use statusbar for this.
+   -> option 1: titlebar can show a percentage when it's loading a new page.
+   -> option 2: toggle a statusbar everytime we start loading a new page.
+ * uri bar -> yes, even though we can write stuff to the fifo, it can still be convenient to change the url manually and stuff, so a widget in uzbl itself is good.
+ * tabs -> yes. you don't have to use them, but you can.
+ * back/forward/.. buttons? -> no: use keyboard shortcuts.
+ * searching in a page? not sure.. maybe we can abuse the statusbar for that too.
+   eg toggle it on when the user wants to search for something and then do searching in some vim-like fashion.
+   we don't need a gtk text entry widget, just a feedback display of what the current command is.
+ * scrollbar? no: use keyboard shortcuts.  we should however have some info about the page length and where we are.
+   -> option 1: put a percentage in the window title
+   -> option 2: everytime you hit a key to change position, temporarily make a statusbar visible and put the percentage in the statusbar.
+   what will we do with pages who are too wide? horizontal scrolling?
+ all of the above goes in 1 bar at the top of the program. there should be a key to toggle visibility of it and one to toggle visibilety + focus on the entrybar at once.
  
- to figure out:
- - password management. maybe an encrypted store that unlocks with an ssh key?
- - how to handle hyperlinks? number them like konqueror does?
+ input welcome!
+ HISTORY FILE SIZE/PERFORMANCE
+ each new pageload -> fopen(history_file, "a"), fwrite one line, fclose.
+ I use utf8, so unless you use characters that are "special" (chinese etc)
+ each character takes 1 byte.
+ So, assume each entry is about 80 chars, you visit 100 pages per day (?), and you wonder when your history file will be 50MB big:
+ (50 * 1000 * 1000 ) / ( 80 * 100 ) = 6250 days or 17 years.
+ There is code to run a benchmark in the 'extra' dir.  For results & interpretation, see http://dieter.plaetinck.be/poor_mans_dmenu_benchmark
  
  
  
diff --cc TODO
--- 1/TODO
--- 2/TODO
+++ b/TODO
@@@ -1,6 -1,4 +1,10 @@@
  * implement all the ideas from README
- * see if we can get rid of gtk.  I need no widgets at all, only the webkit page display no scrollbar, no statusbar.
- * figure out caching with webkit and in general how we can speed everything up
 +* where to put proxy config? webkit support?
- * can we change the behavior of the rendering? eg to add numbers to all hyperlinks
- * figure out how webkit intercepts key input
+ * do not store the 'http://' part in the history file
+ * improve commandline arguments
+ * have a better look at /merge the fifo code from barrucadu and friends
++
++
++SOMEDAY:
++figure out caching with webkit and in general how we can speed everything
++figure out how webkit intercepts key input