Giter Site home page Giter Site logo

olical / dotfiles Goto Github PK

View Code? Open in Web Editor NEW
507.0 23.0 45.0 29.6 MB

Configuration for Linux, i3, Kitty, Fish, Neovim and more

Home Page: https://oli.me.uk

License: The Unlicense

Shell 22.16% Fennel 63.27% Lua 2.98% CSS 11.59%
fish arch-linux dotfiles vim vimrc neovim

dotfiles's Introduction

Olical’s dotfiles

This is a collection of configuration for things such as Kitty and Neovim Arch’s pacman package manager manager and stow for linking the configuration into the right places.

This is designed to be run within Arch Linux, I use archinstall to set everything up since it’s minimal and comes with KDE pre-configured.

Usage

Clone this repo somewhere neat, such as ~/repos/Olical/dotfiles, cd into the directory and execute script/bootstrap.sh. This will install all essential packages (as well as a few non-essential but useful ones) and then switch the terminal and shell over to kitty and fish respectively.

Your mileage may vary wildly, this is built for me and may break your entire machine. Be careful, read the code and just take the lines and files you’re interested in if you can.

License

Consider dotfiles unlicensed (https://unlicense.org/), do what you want with anything you want. Feel free to link back if you want, it could help others in the future but I don’t mind otherwise.

Questions?

Feel free to open issues if you’re interested in something or tweet me @OliverCaldwell.

dotfiles's People

Contributors

gitter-badger avatar l3afme avatar olical avatar phozzy avatar semperos 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dotfiles's Issues

Issues with autopairs setup

I'm in the process of yoinking some of your configuration (thank you for providing that, the plugins and blog posts) and noticed some small issues in the autopairs setup.

  1. It looks like you forgot to finish writing disable-rule-for-filetypes so that it accepts and makes use of the arguments you provide when calling it. It instead always uses autopairs.get_rule for "'" and the lisps table (the latter doesn't really matter).
  2. Making that change myself I noticed that it doesn't work for "`". Running :lua require(vim.inspect(require('nvim-autopairs').get_rule("`"))) reveals that because only a single rule exists, it can't be indexed.
  3. When debugging this, I noticed that there are two rules for "'", the second one being exclusive to Rust and more importantly, the first one excluding Rust using not_filetypes = { "rust" } (these rules disable autopairs for "'" when used in lifetime annotation position).
    Since your current code uses assoc-in, it overrides the existing table of excluded filetypes essentially disabling the rather useful rules for Rust.

Here is my (likely unidiomatic, this is my first LISP) code to address these issues:

(module dotfiles.plugin.autopairs
  {autoload {a aniseed.core}})

(def- lisps [:scheme :lisp :clojure :fennel])

(defn- extend [tbl items]
  (let [tbl (if (a.nil? tbl) [] tbl)]
    (each [_ item (ipairs items)]
      (table.insert tbl item))
    tbl))

(defn- get-if-not-nil [tbl index]
  (let [val (. tbl index)]
    (if (a.nil? val)
        tbl
        val)))

(let [(ok? autopairs) (pcall require :nvim-autopairs)]
  (when ok?
    (defn- disable-rule-for-filetypes [rule filetypes]
      (let [rule (autopairs.get_rule rule)]
        (let [rule (get-if-not-nil rule 1)]
          (a.assoc rule
                   :not_filetypes
                   (extend (. rule :not_filetypes) filetypes)))))

    (autopairs.setup)
    (disable-rule-for-filetypes "'" lisps)
    (disable-rule-for-filetypes "`" lisps)))

I hope this is useful to you 🙂

Explanation wanted

Hi!
Sorry for the trouble, I know very little lisp from emacs configs and tree-sitter queries.

Your neovim config looks really clean, I want to have this too
(I have only separated mine into plugins.vim which loads plugins, mappings.vim and definitions.vim which has all the let g:x = y stuff, this looks nowhere near as good as yours).

  1. Can you explain as to which files need to have
{require {core aniseed.core
            nvim aniseed.nvim}})

(I'm almost sure everything needs at least nvim aniseed.nvim.)

  1. I have gone through core.fnl but still need some basic vim to fennel, like how would you do:

    1. set guifont=xyz:h12
      huh this one was simpler than i expected

    2. set clipboard+=unnamedplus

    3. set listchars=eol:↴,tab:<->,space:·

    4. highlight LineNr term=bold cterm=NONE ctermfg=DarkGrey ctermbg=NONE gui=NONE guifg=DarkGrey guibg=NONE

    5. autocmd FileType dashboard set showtabline=0 | autocmd WinLeave <buffer> set showtabline=2

    6. map (as opposed to noremap)

  2. what does util.fnl do? can i/do i have to change it?

<Ctrl-Y>+KEY is bound within a bundle

Something has registered a combo in one of my bundles that starts with . This means whenever I use it to scroll up there is a second delay while it waits for the next key in the combo.

I need to find which bundle is stealing it and kill it. Violently.

Investigate a better alternative to EasyMotion

EasyMotion has been a staple of my vimming for as long as I can remember but I would like something that uses the features Neovim has to offer. EM's way of inserting the jump marker characters actually modifies the buffer for a brief time which freaks out my linters and LSP. One that uses virtual text or floating windows + Lua would be great.

tern and ycm

Hey,

I came here from a ycm issue threat. You mentioned using tern and ycm. I'm trying to set that up too. Is tern completion showing up for you in the ycm popup window? I find that "some" completion seems to be displayed, but certainly not context relevant stuff.

Browsing through your config, I didn't find any special setup for it except for the ctags/jcstags stuff. Is that the "magic" to get it working? Or did I miss something else?

My current ycm config is

let g:ycm_seed_identifiers_with_syntax=1
let g:ycm_add_preview_to_completeopt = 0
let g:ycm_confirm_extra_conf=0
set completeopt-=preview
let g:ycm_cache_omnifunc = 0

Fennel development assistance

Hi, Olical, I'm a big fan of your idea of making fennel as the only configuration language in neovim. I try to adapt your configuration to my daily use but some how stuck in some basic problems developing in fennel.

  1. How to make "jump to definition" and "jump to reference" actions?
  2. Is there a format tool for fennel ?
  3. Is there a "preview compilation" command ?

I assume that both fennel syntax support and the actions above are implemented in Aniseed, but I haven't found it yet. Could you help me please? Thanks !

LspConfig Out: Cannot access configuration for metadata

Hey hello! As you may know I have a very similar setup as yours and recently I'm getting this annoying warning while evaluating and using conjure autocomplete with fennel nvim config files on conjure's log buffer :

; eval (file): /home/delboni/.dotfiles/config/nvim/fnl/config/plugin/lspconfig.fnl
; (out) [lspconfig] Cannot access configuration for metadata. Ensure this server is listed in `server_configurations.md` or added as a custom server.
; (out) [lspconfig] Cannot access configuration for aniseed/locals. Ensure this server is listed in `server_configurations.md` or added as a custom server.
; (out) [lspconfig] Cannot access configuration for metadata. Ensure this server is listed in `server_configurations.md` or added as a custom server.tree/master/stowed

...

nil

Do you have any idea of what I'm doing wrong?

Ps: Everything is working as intended, it just this warning that keeps showing up when editing my fennel config files.

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.