Coder Social home page Coder Social logo

ibuffer-sidebar's Introduction

IBuffer Sidebar

https://travis-ci.org/jojojames/ibuffer-sidebar.svg?branch=master https://melpa.org/packages/ibuffer-sidebar-badge.svg

Screenshots

./screenshots/ibuffer-sidebar.png

When used with dired-sidebar.

./screenshots/with-dired-sidebar.png

Installation

(use-package ibuffer-sidebar
  :load-path "~/.emacs.d/fork/ibuffer-sidebar"
  :ensure nil
  :commands (ibuffer-sidebar-toggle-sidebar)
  :config
  (setq ibuffer-sidebar-use-custom-font t)
  (setq ibuffer-sidebar-face `(:family "Helvetica" :height 140)))

Sidebar can also be toggled together with dired-sidebar.

(defun +sidebar-toggle ()
  "Toggle both `dired-sidebar' and `ibuffer-sidebar'."
  (interactive)
  (dired-sidebar-toggle-sidebar)
  (ibuffer-sidebar-toggle-sidebar))

Contributing

cask
make compile
make test
make lint

ibuffer-sidebar's People

Contributors

jojojames avatar junker avatar

Stargazers

Joshua avatar Justin avatar GotW avatar  avatar  avatar  avatar Jong Hyeon Yeo avatar Space avatar yqrashawn avatar Robin Mattheussen avatar  avatar Nopanun Laochunhanun avatar  avatar Ajit avatar Burak Demirtas avatar DarkBuffalo avatar Mark Mulder avatar Rainer Poisel avatar Jeremy Friesen avatar Jonas Bernoulli avatar  avatar Alessandro avatar  avatar Cameron Stitt avatar Bruce D'Arcus avatar  avatar  avatar Jeetaditya Chatterjee  avatar Defiance avatar Akihiro Iwata avatar Furkan Karataş avatar Amol avatar H. Dieter Wilhelm avatar Hudson Couto avatar Anton Strilchuk avatar Dylan McDowell avatar Hady Mahmoud avatar Arthur Colombini Gusmão avatar Pablo avatar Panagiotis Vlantis avatar Vishal Belsare avatar  avatar Clemens Radermacher avatar ejmg avatar Lee Nelson avatar Simon Lindsay avatar Israel Jacquez avatar Nga Nguyen avatar Ha-Duong Nguyen avatar Akira Tamamori avatar Luke Inglis avatar Exceptionz Project avatar Alin Mechenici avatar Jimmy Yuen Ho Wong avatar  avatar Akira Komamura avatar Mengguan Pan avatar Dmitri avatar Trey Merkley avatar Anton Strukov avatar  avatar George Plymale II avatar Oleg Pykhalov avatar Davide Restivo avatar bharat avatar  avatar Greg Lucas avatar Terje Larsen avatar  avatar

Watchers

James Cloos avatar  avatar  avatar

ibuffer-sidebar's Issues

Shouldn't activate the buffer

I noticed (ibuffer-sidebar-toggle-sidebar), unlike (ibuffer-sidebar-show-sidebar) activates the buffer window automatically, IMO it's better if the cursor remains in the current buffer.

Note: not an actual issue. Perhaps, the default behavior is what's intended. Just wanted to keep this for posterity. Maybe someone else finds it useful.

The effect that I wanted can be achieved like this:

(add-to-list
   'display-buffer-alist
   `(,ibuffer-sidebar-name
     (display-buffer-no-window)
     (allow-no-window . t)
     (no-focus-on-display . t)))

Integration w/ `ibuffer-vc` or `ibuffer-projectile`

Hi,

From the screenshots I see it's possible to integrate with ibuffer-vc. What specific configurations are necessary to have it working like so? Also, is there the possibility of integrating with ibuffer-projectile? Currently I have the latter configured and working fine in an ibuffer buffer, but nothing changes on the sidebar.

Thank you very much for your support.

Frame-specific ibuffers (mainly for frame-purpose.el)

frame-purpose.el by alphapapa alters buffer-list function on a frame so that it serves a specific mode/directory. That is, with frame-purpose, ibuffer/switch-to-buffer/etc. can be restricted to a specific mode/directory.

ibuffer-sidebar does not seem to work well with frame-purpose at present, because it shares the same buffer name between all frames. I could invent a solution to this problem by overriding ibuffer-sidebar-get-or-create-buffer function as follows:

(defun ibuffer-sidebar-get-or-create-buffer ()
    "Get or create a `ibuffer-sidebar' buffer."
    (or (ibuffer-sidebar-buffer)
        (let ((new-buffer (generate-new-buffer ibuffer-sidebar-name)))
          (with-current-buffer new-buffer
            (ibuffer-sidebar-setup))
          new-buffer)))

This solution creates a new (number-suffixed) ibuffer-sidebar buffer if the current frame does not have one. This seem to work nicely with frame-purpose and makes an Emacs frame more like an IDE window, thanks to your sidebar packages.

Note that this is a proof of concept and may not be a practical solution. If you don't use frame-purpose, sharing the same ibuffer-sidebar buffer between all frames would be better. I think it needs refinement, but I would like to hear your comment before I (or you) may work on further implementation. Is there anything wrong with this solution?

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.