Giter VIP home page Giter VIP logo

workgroups.el's People

Contributors

bigjust avatar tlh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

workgroups.el's Issues

fname not saved

Hi there, this is most unusual and absurd thing. The one thing that is most important doesn't work. When saving session to a file, the workgroups are saved, but the buffer-file-name is not. Actually sometimes it is saved, but it seems to be totally random.

tried
emacs 24
emacs 25
emacs 26

clean init script only with workgroups enabled with standard customization.

i switched from using workgroups2 because it slows down emacs session over time. workgroups looked great at first, but this renders it unusable.. :/

it is possible i'm doing something wrong, but i don't know what..?

Small Spelling Error

The name of the buffer opened with the command -? (wg-help) is called "workroups help" (notice the missing "g.")

not saving the size of the window/buffer

on mac osx 10.7 when you save your worksgroups in fullscreen mode then reopen emacs, the sizes of the buffers are too big even though i'm not full screen anymore.

recently visited files ring for each workgroup?

I don't know if this is implemented or not, but one of the great features of escreen is that each screen has its own recently visited files ring. So you can edit a few files in each screen, change from each, and have each screen remember the recent buffers (when switching buffers).

Is this possible with workgroups?

buffers that aren't linked to a file

Hi tlh,

I finally decided (actually, had time) to migrate to workgroups over escreen for testing purposes. I currently have the following in my
(add-hook 'desktop-save-hook (lambda ()
(wg-update-all-workgroups)
(wg-save "~/.emacs.d/workgroups-save")
))
.emacs file. Since I use desktop mode to to have my opened files opened automatically, I just update my workgroups whenever desktop-mode saves, which includes when I close emacs. I guess in theory i wouldn't need desktop-mode anymore, since workgroups should open up those files that are apart of the workgroups. Well, I guess files that aren't visible in any workgroups wouldn't be re-opened...so I guess I'll still use desktop-mode.

Now, to my question. Suppose in a workgroup, one of the window is a buffer that is not linked to a file, e.g., the messages buffer. If I save the workgroup, and re-launch emacs at a later time, this window does not show the original buffer, which makes sense, because those buffers aren't linked to a file. Currently, what shows up in those window spaces are other files that are opened in emacs. Is it possible to always use the scratch buffer in those places? That way other files aren't mixed in with different workgroups/projects.

move a buffer from one workgroup to another

I couldn't find a way to change a workgroup to which a buffer is attached. This feature would be useful for several cases:

  • I have a "info" workgroup but I find myself opening an info file without switching to this group
  • ERC windows open by themselves, so they end up in the workgroup you were in. One would like to attach them to a "ERC" workgroup

Btw, is there a way to force all new buffers created by erc or gnus to open in a given workgroup ?

wrong-type-argument number-or-marker-p with wg-mode-line-add-display

At first, I thought this was because I was using spaceline. But after running in emacs -q I honestly have no idea whats causing this. I'm running on GNU Emacs 26.1 (build 1, x86_64-w64-mingw32) 2018-05-30.

I run the following commands in order:

emacs -q
M-x toggle-debug-on-error
M-x package-initialize
M-: (require 'workgroups)
M-x workgroups-mode

and then I recieve the following stacktrace.

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
  wg-mode-line-add-display()
  workgroups-mode(toggle)
  funcall-interactively(workgroups-mode toggle)
  call-interactively(workgroups-mode record nil)
  command-execute(workgroups-mode record)
  execute-extended-command(nil "workgroups-mode" "workgroups-mo")
  funcall-interactively(execute-extended-command nil "workgroups-mode" "workgroups-mo")
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)

because wg-mode-line-add-display is called after everything else is initted, it's not really a problem, in so far as because the mode is activated and works. It's just I don't like recieving a stacktrace or error message every time I activate the mode.

I've also tried setting wg-mode-line-on to nil after requiring workgroups, before initialising the mode. but I still get the stacktrace.

Weird error.

Running Emacs24 HEAD on OSX.

I save a couple layouts and update them. Update each individually and do update all. They are all setup the way I like them. I save that file then. I come back into Emacs and in my init file I have the following:

(require 'workgroups)
(setq wg-prefix-key (kbd "C-\\"))
(setq wg-restore-position t)
(workgroups-mode 1)
(global-set-key (kbd "C-\\ C-\\") 'wg-switch-to-previous-workgroup)
(wg-load "~/.emacs.d/workspaces")

And i get this...

Debugger entered--Lisp error: (wrong-type-argument integerp (+ -36))
  set-frame-position(#<frame vaccination.tex 0x100722da0> 0 (+ -36))
  wg-restore-wconfig(((type . wconfig) (left . 0) (top + -36) (width . 103) (height . 66) (sbars) (sbwid . 0) (wtree (type . window) (edges 0 0 104 65) (bname . "init.el") (fname . "/Users/dcurtis/.emacs.d/init.el") (point . 17134) (mark . 267) (markx) (wstart . 16148) (hscroll . 0) (sbars 15 0 t nil) (margins nil) (fringes 8 0 nil) (selwin . t) (mbswin) (dedicated))))
  wg-restore-workgroup(((type . workgroup) (uid . 0) (name . "left") (wconfig (type . wconfig) (left . 0) (top . 22) (width . 103) (height . 66) (sbars) (sbwid . 0) (wtree (type . window) (edges 0 0 104 65) (bname . "init.el") (fname . "/Users/dcurtis/.emacs.d/init.el") (point . 17134) (mark . 267) (markx) (wstart . 16148) (hscroll . 0) (sbars 15 0 t nil) (margins nil) (fringes 8 0 nil) (selwin . t) (mbswin) (dedicated)))) nil)
  wg-switch-to-workgroup(((type . workgroup) (uid . 0) (name . "left") (wconfig (type . wconfig) (left . 0) (top . 22) (width . 103) (height . 66) (sbars) (sbwid . 0) (wtree (type . window) (edges 0 0 104 65) (bname . "init.el") (fname . "/Users/dcurtis/.emacs.d/init.el") (point . 17134) (mark . 267) (markx) (wstart . 16148) (hscroll . 0) (sbars 15 0 t nil) (margins nil) (fringes 8 0 nil) (selwin . t) (mbswin) (dedicated)))))
  wg-switch-right(((type . workgroup) (uid . 2) (name . "writing") (wconfig (type . wconfig) (left . 252) (top . 22) (width . 145) (height . 66) (sbars) (sbwid . 0) (wtree (type . window) (edges 0 0 146 65) (bname . "vaccination.tex") (fname . "/Users/dcurtis/Thesis/vaccination.tex") (point . 10249) (mark) (markx) (wstart . 8620) (hscroll . 0) (sbars 15 0 t nil) (margins 32 . 32) (fringes 8 0 nil) (selwin . t) (mbswin) (dedicated)))) nil)
  call-interactively(wg-switch-right nil nil)

If this is something that'll be fixed in the near future. I don't open emacs all that often from scratch so I can live with the screen-like reset each time.

Good Luck High Five.

On resizing the Emacs window, other workgroups resize it back.

I can't imagine this is the target functionality.

I use the same emacs fullscreen on remote desktop which has a smaller screen, and then at the desktop (where I can use the full screen) and everytime I have to resize the window once per workgroup.

I see wg-restore-position exists. Why no wg-restore-size, so I can set it to nil?

[Experimental Branch] Gnus new message association

I have a workgroup dedicated to Gnus. When I go to compose a new message (e.g. gnus-summary-mail-other-window), then switch away from that buffer while composing the message, `C-x C-b' gets me a choice of "associated" buffers that doesn't include the new message, which is very awkward.

window configuration not save properly with latex files?

I have a few latex files (.tex) files opened in one window configuration. wg-save does not include the files:
(-
-workgroups-_- ((type . workgroup) (uid . 1) (name . "test") (wconfig (type . wconfig) (left . 0) (top . 58) (width . 149) (height . 35) (sbars) (sbwid . 0) (wtree (type . window) (edges 0 0 151 34) (bname . "scratch") (fname) (point . 1) (mark) (markx) (wstart . 1) (hscroll . 0) (sbars 16 0 t nil) (margins nil) (fringes 9 9 nil) (selwin . t) (mbswin)))) ((type . workgroup) (uid . 0) (name . "temp") (wconfig (type . wconfig) (left . 0) (top . 58) (width . 149) (height . 35) (sbars) (sbwid . 0) (wtree (type . wtree) (dir) (edges 0 0 151 34) (wlist ((type . window) (edges 0 0 76 34) (bname . "init.el") (fname . "/home/vinh/.emacs.d/init.el") (point . 98030) (mark . 97998) (markx) (wstart . 97608) (hscroll . 0) (sbars 16 0 t nil) (margins nil) (fringes 9 9 nil) (selwin . t) (mbswin)) ((type . window) (edges 76 0 151 34) (bname . "scratch") (fname) (point . 1) (mark) (markx) (wstart . 1) (hscroll . 0) (sbars 16 0 t nil) (margins nil) (fringes 9 9 nil) (selwin) (mbswin)))))) ((type . workgroup) (uid . 2) (name . "hello") (wconfig (type . wconfig) (left . 0) (top . 58) (width . 149) (height . 35) (sbars) (sbwid . 0) (wtree (type . window) (edges 0 0 151 34) (bname . "_scratch*") (fname) (point . 1) (mark) (markx) (wstart . 1) (hscroll . 0) (sbars 16 0 t nil) (margins nil) (fringes 9 9 nil) (selwin . t) (mbswin)))))

Can you help?

emacsclient over SSH hangs with open workgroups

I use Emacs 23.2.1 on a 32-bit Debian box as my remote Emacs daemon. After connecting over ssh, I add new emacsclients using a script which runs
emacsclient -c --alternate-editor="" $@

If I update and save the working state of all workgroups (C-z U and C-z C-s), I can safely close the emacsclient frame with `save-buffers-kill-terminal' with no ill effects. However, if I forget to follow this procedure, or if my connection is interrupted, I can end up unable to access my emacs daemon--even resetting it with emacsclient --eval (server-start) becomes impossible.

Will add more info as I continue to poke the issue from this end.

emacs --daemon not loading

I'm using Workgroups with Emacs 24.0.9 in a 64 bits Linux machine. Emacs is compiled with GTK version 3.2.

Workgroup works fine otherwise but when I try to run emacs as a daemon I get the following message and emacsclient in not loaded:

Reset: Workgroups
Error in post-command-hook (global-highlight-changes-mode-check-buffers): (error X windows are not in use or not  initialized)

But I noticed that if I comment the line (wg-load "path/to/my/workgroups") in my .emacs everything works fine -- i.e., Emacs starts as a daemon. And once the Emacs daemon is up, I can load my workgroup file with M-x wg-load.

Cheers.
mak

Faces are illegible on light displays

The current face defs specify light-colored :foregrounds on color displays, but these are illegible when using a theme with a light background.

One solution would be to add the background class specifier to the faces so that those light foreground colors would only be applied when the display has a dark background.

A better and more general solution, and one which I would strongly advise, would be to follow the pattern of many other emacs packages (including org), and use :inherit to derive your faces from a variety of built-in faces, e.g. font-lock-keyword-face. This way, the workgroups faces will look okay by default with any theme, but can still be overridden if desired.

Keep up the great work!

Cheers,

-Steve

prefix ? not working

In Emacs 24.3, running "prefix ?" fails with
wg-help: Symbol's function definition is void: temp-output-buffer-show

Window layout is not restored

When restarting emacs (tested 24.0.91.1 and 23.3.1), the workgroup's window layout currently isn't restored. Please note that I've explicitly set wg-restore-position to non-nil, i.e. "t".

can't launch buffer

Since a recent upgrade of emacs (from a 24.xx to 24.2.50.1) wg-help fails with:
wg-help: Symbol's function definition is void: temp-output-buffer-show. What's going wrong ?

start ordering of workgroups with 1 instead of 0?

Hi,

I know this is a matter of personal taste, but would it be too much to ask for an option that starts the workgroup number at 1 instead of 0? 0 would thus refer to the 10'th workgroup. My preference is because I use the numbers on top of the QWERTY keys, and 1 is the first one.

Frivolous suggestion

Thanks for your awesome work!

I'm ashamed to admit it, but I kinda love the window-warping animations you implemented. Often I'm switching between workspaces that have the same window layout: two windows, side-by-side... but there's no animation. It always seemed logical to me that the animation would sweep the new windows in vertically over the old ones, e.g. descending from the top.

Thanks again

not compatible with (mark-even-if-inactive nil)

When variable mark-even-if-inactive is set to nil module stops working completely:
Commands like wg-create-workgroup print 'Mark is not active now' and do nothing,
then commands like wg-switch-to-workgroup fail with 'No workgroups are defined.'

Workaround: restore mark-even-if-inactive to original value t

no way to donate $ to this project

I'd like to add you to my flattr, or whichever other platform you use. This is a really helpful tool for me, and I'd like to support it.

Keep up the good work!

UIDs for buffers with reset local variables get munged

In the experimental branch, buffers are saved with their UID, which is a buffer local variable during the session. However, if an IRC channel is dropped then rejoined (for instance if the server disconnects and reconnects), erc seems to stomp the local variables, which confuses workgroups.el. It seems like we should be able to hash something like the buffer major mode and the name instead of having uuids, which might solve things like this? I realize there's corner cases that'd fail in though.

default-directroy per workgroup

Love Workgroup For Window. My biggest feature request would be a want to set a local default-directory per workgroup.

You should also set up a paypal account for people to donate money if that is helpful.

Thanks,

DKH

Typo

Line 2051: s/workroups/workgroups/

*scratch* or *Message* in saved in workgroup but not restored

Have (desktop-save-mode 1) and (workgroups-mode 1)

Save a workgroup. Change one of the buffers to, e.g., scratch. Update and save the workgroup. Now scratch will appear in workgroups file. But, reloading the workgroup has the previous buffer displayed.

wg-prefix-key doesn't work after a while

Regardless of what wg-prefix-key is defined, it stops working after a while. Don't know if this specific to me. If I leave the default, after a while, C-z suspends emacs. For other keys, it shows them as undefined.

Feature Request: "buffer association"

If I've recently been working with buffer A in workgroup W1, then switch to buffer B, then switch workgroups to W2 and kill a buffer, its replacement is likely to be A rather than any of the other buffers I was last using in W2. I would prefer if buffers had more affinity for their most recent workgroup.

(I think it might be possible to advise other-buffer such that it sees a different buffer list)

Thanks.

Multiple warnings when byte-compile-file

This might not be a big problem right now, I think you should know though, that when byte-compiling the workgroups.el, emacs warns:

workgroups.el:1410:30:Warning: `flet' is an obsolete macro (as of 24.3); use
either `cl-flet' or `cl-letf'.

I don't know elisp well, so I don't know if I can just go into the file and do a replace of the flets in there. There is also the following warning:

workgroups.el:55:1:Warning: cl package required at runtime

"buffer name X is in use" error disrupts workgroup switch

When switching workgroups I get this "buffer name in use" error quite often, not sure why. Maybe when two workgroups have a window open on the same buffer, or the new workgroup has two windows open on it.

Secondly, when it happens the windows have changed to the new workgroup's layout, but you are actually still in the old workgroup. You probably won't notice and will end up saving over the old workgroup and confusing yourself.

So it would be great to have this just work. Here's a (cropped) traceback in case it helps:

 Debugger entered--Lisp error: (error "Buffer name `ANNOUNCE' is in use") 
   ad-Orig-rename-buffer("ANNOUNCE" nil)                                  
   rename-buffer("ANNOUNCE")                                              
   wg-switch-to-window-buffer(((type . window) (edges 59 0 118 10) (bname 
   wg-restore-window(((type . window) (edges 59 0 118 10) (bname . "ANNOUN
   inner(((type . window) (edges 59 0 118 10) (bname . "ANNOUNCE") (fname 
   inner(((type . wtree) (dir . t) (edges 59 0 118 65) (wlist ((type . win
   inner(((type . wtree) (dir) (edges 0 0 239 65) (wlist ((type . wtree) (
   wg-restore-wtree(((type . wtree) (dir) (edges 0 0 239 65) (wlist ((type
   wg-restore-wconfig(((type . wconfig) (left . 3) (top . 22) (width . 236
   wg-restore-workgroup(((type . workgroup) (uid . 52) (name . "hledger do
   wg-switch-to-workgroup(((type . workgroup) (uid . 52) (name . "hledger 
   call-interactively(wg-switch-to-workgroup nil nil)                     

skip workgroup name

I guess I'm too used to screen and escreen/elscreen. I haven't found the use for named workgroups. Is there a way to not have to name the workgroups when they are created? I just refer them as 0-9.

workgroup creation sort of broken

I proceed like this:

.- C-x 2
.- create a workgroup named "h"
.- C-x 1
.- C-x 3
.- create a workgroup named "v"

but the last operation does not look okay. Unexpectedly the frame changes back to just one window and that window contains the scratch buffer. wg-save produced the output shown below.

All this on emacs 24.2.1.

Anybody else having this problem?

thanks,
Rodrigo

(workgroups ((type . workgroup) (uid . 0) (name . "h") (wconfig (type . wconfig) (left . 24) (top . 40) (width . 85) (height . 42) (sbars) (sbwid . 0) (wtree (type . wtree) (dir . t) (edges 0 0 87 41) (wlist ((type . window) (edges 0 0 87 20) (bname . "HEAD") (fname) (point . 244) (mark) (markx) (wstart . 1) (hscroll . 0) (sbars 10 0 t nil) (margins nil) (fringes 9 9 nil) (selwin . t) (mbswin) (dedicated)) ((type . window) (edges 0 20 87 41) (bname . "HEAD") (fname) (point . 244) (mark) (markx) (wstart . 1) (hscroll . 0) (sbars 10 0 t nil) (margins nil) (fringes 9 9 nil) (selwin) (mbswin) (dedicated)))))) ((type . workgroup) (uid . 1) (name . "v") (wconfig (type . wconfig) (left . 344) (top . 40) (width . 85) (height . 42) (sbars) (sbwid . 0) (wtree (type . window) (edges 0 0 87 41) (bname . "scratch") (fname) (point . :max) (mark) (markx) (wstart . 1) (hscroll . 0) (sbars 10 0 t nil) (margins nil) (fringes 9 9 nil) (selwin . t) (mbswin) (dedicated)))))

Fork workgroups.el to an organization?

So this is more for people watching than tlh, as I think he's pretty much gone for the foreseeable future...

If I forked this repo to an organization, would other people be interested in helping maintain it? I'd be happy to pitch in where I could just to see things keep moving. It looks like we're getting more pull requests that aren't making it in now, and I'd rather things not just pile up while we all update our own forks.

reorder workgroups

Is there a way to reorder them? I navigate using the "left" and "right" keybindings, and I would love to have this option to have similar projects near each other.

setq-default mode-line-format

Emacs : 24.0.92 from http://emacsformacosx.com/builds
workgroups.el installed with el-get

A line (setq-default mode-line-format (list "some_list_here")) with (workgroups-mode 1) gives a warning: "Wrong type argument: number-or-marker-p, nil". This did not fix the problem: (setq wg-mode-line-on nil).

Saving a workgroup inverts windows

Hi,

I just installed workgroups and did a C-x 3 and then a C-x 2. When I save the workgroup it inverts the windows. What am I doing wrong?

Thanks in advance.

load fails, junk in save file ?

Thanks, this looks really useful. I started by turning on workgroups mode, creating a workgroup, and saving. The saved workgroups file now contains:

(-*-workgroups-*- ((type . workgroup) (uid . 0) (name . "dashboard") (wconfig (type . wconfig) (left) (top) (width . 236) (height . 74) (sbars) (sbwid) (wtree ... ... ... ...))))

Loading gives an error, Messages looks like:

...
Starting Emacs daemon.
Restarting server
When done with this frame, type C-x 5 0
(wrong-number-of-arguments nil 0)
wg-switch-to-window-buffer: Wrong type argument: stringp, nil

I'm using emacsclient -t with emacs --daemon, 23.0.50.1 on ubuntu lucid.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.