From The Compiler, 5 Years ago, written in Plain Text.
Embed
  1. = Own todo list =
  2.     - Finish and send frame-objects patch
  3.     - clients as frame-children
  4.     - clients as tag-children
  5.     - frame-id (or -object?) as attr/child of client
  6.     - Finish and send maximize patch
  7.     - Writable custom objects
  8.     - foreach (cmd for all children of object)
  9.  
  10. = General todo list =
  11.     hint: also see BUGS file
  12.  
  13.     - shell
  14.       Some script/binary so you have a shell which executes every line with
  15.       herbstclient
  16.  
  17.     - libherbstclient
  18.       herbstclient-features as standalone C library, so people can do their own
  19.       clients or Python libs or whatever
  20.  
  21.     - Syntax for monitor names with set_monitors
  22.       e.g. hc set_monitors name:tag@1024x768+0+0 (or just name:... or tag@...)
  23.  
  24.     - use xrandr for screen detection [hard!] [[hlwmxrandr]]
  25.       Switching to xrandr instead of Xinerama to detect screens.
  26.  
  27.     - negative offsets for rectangles
  28.       HxW+X+Y also should accept negative offsets according to some standard
  29.  
  30.     - auto layout
  31.       Aligns windows either horizontally or vertically, depending on what's the
  32.       longer side.
  33.  
  34.     - CLAMP vs %=
  35.       At some points in the code CLAMP() is used, at others %= - maybe clean this up
  36.  
  37.     - hidden tags / monitors
  38.       Having some hidden-attribute for special tags/monitors so they don't show
  39.       up in the panel and are ignored when cycling, for floatmon, etc.
  40.  
  41.     - wmname as rule
  42.       wmname settable per client as a rule, probably impossible though
  43.  
  44.     - tagswitch: check for '-'
  45.       "your tagswitch command should also check for the '-' tag status for when
  46.       multiple monitors are in use"
  47.  
  48.     - floating layer
  49.       Seperate floating layer so single clients can be set as floating - check
  50.       how i3 or bspwm do this.
  51.  
  52.     - manpage formatting
  53.       Proofread manpage and fix formatting/spelling/...
  54.  
  55.     - testbench
  56.       Some script with Xephyr to test all hlwm features, for regression checks
  57.       and the like
  58.  
  59.     - --skip-used/--skip-free for use-index
  60.       Additional options for use-index with relative index, so no ugly scripts
  61.       are needed.
  62.  
  63.     - keybinding names
  64.       Improve (or at least document?) the names used for special keys when
  65.       keybinding
  66.  
  67.     - split along longest side
  68.       Command to open a new split along longest side
  69.  
  70.     - refactor panel.sh
  71.       Improve panel.sh clarity and comment it so it's readable for everyone.
  72.       see https://github.com/xiaq/hlwm-scripts maybe?
  73.  
  74.     - completion
  75.       Check if there's any command which could benefit from better completion
  76.  
  77.     - := vs = in makefile
  78.       When to use :=, when to use =? Now, only = is used.
  79.  
  80.     - pixel-exact sizing of frames
  81.       e.g.  hc resize exact 400x300
  82.  
  83.     - mousewheel switching of tags
  84.       Switching tags when using the mousewheel on the panel (?)
  85.  
  86.     - mouse resizing of frames
  87.       Resizing splits by dragging them with the mouse
  88.  
  89.     - reparenting
  90.       Reparenting of windows so we can do window decorations and stuff - check
  91.       how i3 does this.
  92.  
  93.     - window decorations
  94.       see reparenting
  95.  
  96.     - herbstclient version
  97.       hc should display its own version mayhaps [HolySmoke]
  98.  
  99.     - Switch monitor on border
  100.       Switch to another monitor if Mod+hjkl is pressed on the edge of an existing one [eto]
  101.  
  102.     - click-focus for empty frames
  103.       should be able to focus empty frames with click, or with the mouse if focus_follows_mouse is on
  104.  
  105. = Bugs =
  106.     - Focus stealing bug
  107.       Sometimes, dwb or mpv steal the focus, and switching keyboard focus does not work
  108.  
  109.       Related (?): Some clients (steam) create windows which have focus without having the focus border
  110.  
  111.     - Window sizing bug
  112.       A lot of different symptoms
  113.         - gvim is cut off
  114.         - spotify as well
  115.         - gvim flickers when switching windows
  116.         - libvte seems to act weird, crash, crash X, explode
  117.         - emacs also has some issues