dots's People
dots's Issues
Use `.sh` for posix and `.bash` for bash, and `.zsh` for zsh
Google style guide says to always use .sh
, but now I prefer:
- Immediate differentiation on files that can use bashism
- Auto emacs mode detection
- Easier organization for what can be loaded on which rc file
Use more compatible function syntax `f() {}` instead of `function f() {}`
It doesnt work on sh for example
Split installs.sh in chunks of independent dockerfiles
It's better for testing and for referencing individual parts of my setup, eg dockerfiles/python
contains everything about pyenv, pipenv and jupyter setup
The first reason I noted for this is the confusion around apt-get dependencies, as of now, I don't know which is which
Also, a merged dockerfile can be made using any dockerfile-parser (saw one in npm for instance) and the pure-bash script can be easely made as well, maybe fusing and hoisting all the apt stuff and adding all the ENV to ~/.bashrc
Proper emacs bin wrapper
Should handle automatically resolving between normal emacs
bin and emacsclient
Also add option to read buffer from stdin (how does this not exist already?)
- handle buggy TERM and XLIB args
- Call it emax and put it in PATH
- Default to terminal mode
- Add
--stdin [mode]
flag
Just create a temporary file and open it, renaming the buffer to*stdin*
Optionalmode
parameter to start in given major mode - Add
-a [d | n | daemon | new]
Without this flag, this wrapper must default to 'auto daemon' ie, open in emacsclient mode if a daemon is running, otherwise, open a new instance but do not initiate a hanging daemon.
-a d
to force the start of a daemon (and so, leave it running after closing)
-a n
to force the creation of an idependent instance (even if a daemon is running)
Slugify bashrc function names
change '-' to '_' mostly, it's better for non-binary commands, sh for instance, complains about it
bashrc inspect module
::inspect::get_file <function name>
prints file path where its defined
::inspect::get_source <function name>
prints source lines (actual source lines from the file)
::inspect::edit <function name>
Opens source file in $EDITOR, if its emacs, opens at line
Check:
https://superuser.com/questions/144772/finding-the-definition-of-a-bash-function
Rename and generalize repo to `dotfiles` in general
Bash functions are exposing variables; use `local`
Wishlist/TODO
- Infinite Bash history
- Path setting centralization (as of today, I feel this is way superior than 'topical' path setting)
- Personal bin folder centralized
- Variable exporting centralization
- no aliases (and document the problems I'm having with them)
- .profile
- sh/bash and interactive/login shell conditionals indicated and organized
-
C-l
to clear+toggle alwaysontop or similar on bash -
sync.sh
script to fetch the settings files scattered though my system to their respective folder in this repo - fd + fzf integration
Refactors cliz to be more general-purpose
mental note: dont need to make a real project out of this, just do it in the current single file
cliz should be generalized to a configurable cli interface for python functions, the core is only the argument syntax:
cliz [processor...]
with processor being:
-<command> [args...]
eg:
cliz -sliding_window 4 -take 2 -map sum -sum
cliz should now be easily configurable with the following functions:
def comands() -> Dict[str, Callable]:
'''Returns the namespace in which <command> will be looked up'''
def expand_args(*args : str) -> [str]:
'''
Expand macros in the args for each <command>
eg: `cliz -map '$ ** 2'` will pass ['$ ** 2'] as `args`,
and can be exanded to `lambda __macro_arg: __macro_arg ** 2`
'''
def scope() -> Dict[str, Any]:
'''
Returns the local variable in which 'args' will have acess
eg: `cliz -map foo` the `foo` should come from here
'''
Enhance emacs bin wrapper
- wrap help flag
-
--kill
to kill the daemon
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.