diff --git a/.config/admiral.d/admiral.toml b/.config/admiral.d/admiral.toml index 1cbcf9b..6b59b30 100644 --- a/.config/admiral.d/admiral.toml +++ b/.config/admiral.d/admiral.toml @@ -29,7 +29,7 @@ reload = 5 path = "$HOME/.scripts/workspaces.sh" [title] -path = "zscroll -n -u 'xtitle -u'" +path = "zscroll -n -u 'xtitle -s'" [clock] path = "date '+%m/%d %H:%M' " @@ -48,5 +48,5 @@ path = "$HOME/.scripts/tasks.sh | grep /" reload = 5 [bitcoin] -path = "$HOME/.scripts/wink.sh" +path = "$HOME/.scripts/bitcoin.sh" reload = 20 diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc index a05d386..9b37fe3 100755 --- a/.config/bspwm/bspwmrc +++ b/.config/bspwm/bspwmrc @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh sxhkd & diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index 8a3c519..832abd9 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -15,8 +15,9 @@ Plug 'ntpeters/vim-better-whitespace' Plug 'jiangmiao/auto-pairs' Plug 'scrooloose/nerdcommenter' Plug 'neovimhaskell/haskell-vim', {'for' : 'haskell'} -Plug 'eagletmt/neco-ghc', {'for' : 'haskell'} +Plug 'mkasa/neco-ghc-lushtags', {'for' : 'haskell', 'do' : 'cp $HOME/.config/nvim/plugged/neco-ghc-lushtags/bin/ghc-mod-cache $HOME/.local/bin/'} Plug 'Twinside/vim-hoogle', {'for' : 'haskell'} +Plug 'mkasa/lushtags', {'for' : 'haskell'} Plug 'scrooloose/nerdtree', {'on' : 'NERDTreeToggle'} Plug 'mileszs/ack.vim' Plug 'easymotion/vim-easymotion' @@ -55,6 +56,8 @@ Plug 'bling/vim-bufferline' Plug 'reedes/vim-litecorrect' Plug 'xolox/vim-notes' Plug 'racer-rust/vim-racer', {'for' : 'rust'} +Plug 'LnL7/vim-nix' +Plug 'jceb/vim-orgmode' call plug#end() let g:ft_improved_ignorecase = 1 @@ -67,6 +70,7 @@ let g:easytags_async = 1 let g:easytags_events = ['BufWritePost'] set ttyfast set number +set relativenumber set hidden set nocompatible set lazyredraw @@ -103,6 +107,8 @@ endif let g:vim_markdown_folding_disabled = 1 +let g:necoghc_enable_detailed_browse = 1 + augroup pencil autocmd! autocmd FileType markdown,mkd call pencil#init() @@ -133,6 +139,9 @@ function! neomake#makers#ft#elixir#credo() \ } endfunction +function! neomake#makers#ft#haskell#EnabledMakers() + return ['ghcmod', 'hlint'] +endfunction function! neomake#makers#ft#elixir#EnabledMakers() return ['credo'] @@ -219,38 +228,6 @@ let g:tagbar_type_elixir = { \] \} - let g:tagbar_type_haskell = { - \ 'ctagsbin' : 'hasktags', - \ 'ctagsargs' : '-x -c -o-', - \ 'kinds' : [ - \ 'm:modules:0:1', - \ 'd:data: 0:1', - \ 'd_gadt: data gadt:0:1', - \ 't:type names:0:1', - \ 'nt:new types:0:1', - \ 'c:classes:0:1', - \ 'cons:constructors:1:1', - \ 'c_gadt:constructor gadt:1:1', - \ 'c_a:constructor accessors:1:1', - \ 'ft:function types:1:1', - \ 'fi:function implementations:0:1', - \ 'o:others:0:1' - \ ], - \ 'sro' : '.', - \ 'kind2scope' : { - \ 'm' : 'module', - \ 'c' : 'class', - \ 'd' : 'data', - \ 't' : 'type' - \ }, - \ 'scope2kind' : { - \ 'module' : 'm', - \ 'class' : 'c', - \ 'data' : 'd', - \ 'type' : 't' - \ } -\ } - "incsearch diff --git a/.spacemacs b/.spacemacs deleted file mode 100644 index b58b5a9..0000000 --- a/.spacemacs +++ /dev/null @@ -1,331 +0,0 @@ -;; -*- mode: emacs-lisp -*- -;; This file is loaded by Spacemacs at startup. -;; It must be stored in your home directory. - -(defun dotspacemacs/layers () - "Configuration Layers declaration. -You should not put any user code in this function besides modifying the variable -values." - (setq-default - ;; Base distribution to use. This is a layer contained in the directory - ;; `+distribution'. For now available distributions are `spacemacs-base' - ;; or `spacemacs'. (default 'spacemacs) - dotspacemacs-distribution 'spacemacs - ;; Lazy installation of layers (i.e. layers are installed only when a file - ;; with a supported type is opened). Possible values are `all', `unused' - ;; and `nil'. `unused' will lazy install only unused layers (i.e. layers - ;; not listed in variable `dotspacemacs-configuration-layers'), `all' will - ;; lazy install any layer that support lazy installation even the layers - ;; listed in `dotspacemacs-configuration-layers'. `nil' disable the lazy - ;; installation feature and you have to explicitly list a layer in the - ;; variable `dotspacemacs-configuration-layers' to install it. - ;; (default 'unused) - dotspacemacs-enable-lazy-installation 'unused - ;; If non-nil then Spacemacs will ask for confirmation before installing - ;; a layer lazily. (default t) - dotspacemacs-ask-for-lazy-installation t - ;; If non-nil layers with lazy install support are lazy installed. - ;; List of additional paths where to look for configuration layers. - ;; Paths must have a trailing slash (i.e. `~/.mycontribs/') - dotspacemacs-configuration-layer-path '() - ;; List of configuration layers to load. - dotspacemacs-configuration-layers - '( - ;; ---------------------------------------------------------------- - ;; Example of useful layers you may want to use right away. - ;; Uncomment some layer names and press (Vim style) or - ;; (Emacs style) to install them. - ;; ---------------------------------------------------------------- - (colors :variables colors-colorize-identifiers 'variables) - auto-completion - better-defaults - colors - docker - elixir - elm - emacs-lisp - erlang - git - haskell - helm - markdown - org - rust - spell-checking - syntax-checking - themes-megapack - version-control - ) - ;; List of additional packages that will be installed without being - ;; wrapped in a layer. If you need some configuration for these - ;; packages, then consider creating a layer. You can also put the - ;; configuration in `dotspacemacs/user-config'. - dotspacemacs-additional-packages '(atom-one-dark-theme - flycheck-credo - ) - ;; A list of packages that cannot be updated. - dotspacemacs-frozen-packages '() - ;; A list of packages that will not be installed and loaded. - dotspacemacs-excluded-packages '() - ;; Defines the behaviour of Spacemacs when installing packages. - ;; Possible values are `used-only', `used-but-keep-unused' and `all'. - ;; `used-only' installs only explicitly used packages and uninstall any - ;; unused packages as well as their unused dependencies. - ;; `used-but-keep-unused' installs only the used packages but won't uninstall - ;; them if they become unused. `all' installs *all* packages supported by - ;; Spacemacs and never uninstall them. (default is `used-only') - dotspacemacs-install-packages 'used-only)) - -(defun dotspacemacs/init () - "Initialization function. -This function is called at the very startup of Spacemacs initialization -before layers configuration. -You should not put any user code in there besides modifying the variable -values." - ;; This setq-default sexp is an exhaustive list of all the supported - ;; spacemacs settings. - (setq-default - ;; If non nil ELPA repositories are contacted via HTTPS whenever it's - ;; possible. Set it to nil if you have no way to use HTTPS in your - ;; environment, otherwise it is strongly recommended to let it set to t. - ;; This variable has no effect if Emacs is launched with the parameter - ;; `--insecure' which forces the value of this variable to nil. - ;; (default t) - dotspacemacs-elpa-https t - ;; Maximum allowed time in seconds to contact an ELPA repository. - dotspacemacs-elpa-timeout 5 - ;; If non nil then spacemacs will check for updates at startup - ;; when the current branch is not `develop'. Note that checking for - ;; new versions works via git commands, thus it calls GitHub services - ;; whenever you start Emacs. (default nil) - dotspacemacs-check-for-update nil - ;; If non-nil, a form that evaluates to a package directory. For example, to - ;; use different package directories for different Emacs versions, set this - ;; to `emacs-version'. - dotspacemacs-elpa-subdirectory nil - ;; One of `vim', `emacs' or `hybrid'. - ;; `hybrid' is like `vim' except that `insert state' is replaced by the - ;; `hybrid state' with `emacs' key bindings. The value can also be a list - ;; with `:variables' keyword (similar to layers). Check the editing styles - ;; section of the documentation for details on available variables. - ;; (default 'vim) - dotspacemacs-editing-style 'vim - ;; If non nil output loading progress in `*Messages*' buffer. (default nil) - dotspacemacs-verbose-loading nil - ;; Specify the startup banner. Default value is `official', it displays - ;; the official spacemacs logo. An integer value is the index of text - ;; banner, `random' chooses a random text banner in `core/banners' - ;; directory. A string value must be a path to an image format supported - ;; by your Emacs build. - ;; If the value is nil then no banner is displayed. (default 'official) - dotspacemacs-startup-banner 'official - ;; List of items to show in startup buffer or an association list of - ;; the form `(list-type . list-size)`. If nil then it is disabled. - ;; Possible values for list-type are: - ;; `recents' `bookmarks' `projects' `agenda' `todos'." - ;; List sizes may be nil, in which case - ;; `spacemacs-buffer-startup-lists-length' takes effect. - dotspacemacs-startup-lists '((recents . 5) - (projects . 7)) - ;; True if the home buffer should respond to resize events. - dotspacemacs-startup-buffer-responsive t - ;; Default major mode of the scratch buffer (default `text-mode') - dotspacemacs-scratch-mode 'text-mode - ;; List of themes, the first of the list is loaded when spacemacs starts. - ;; Press T n to cycle to the next theme in the list (works great - ;; with 2 themes variants, one dark and one light) - dotspacemacs-themes '(atom-one-dark - spacemacs-dark - spacemacs-light - ) - ;; If non nil the cursor color matches the state color in GUI Emacs. - dotspacemacs-colorize-cursor-according-to-state t - ;; Default font, or prioritized list of fonts. `powerline-scale' allows to - ;; quickly tweak the mode-line size to make separators look not too crappy. - dotspacemacs-default-font '("Source Code Pro" - :size 13 - :weight normal - :width normal - :powerline-scale 1.1) - ;; The leader key - dotspacemacs-leader-key "SPC" - ;; The key used for Emacs commands (M-x) (after pressing on the leader key). - ;; (default "SPC") - dotspacemacs-emacs-command-key "SPC" - ;; The key used for Vim Ex commands (default ":") - dotspacemacs-ex-command-key ":" - ;; The leader key accessible in `emacs state' and `insert state' - ;; (default "M-m") - dotspacemacs-emacs-leader-key "M-m" - ;; Major mode leader key is a shortcut key which is the equivalent of - ;; pressing ` m`. Set it to `nil` to disable it. (default ",") - dotspacemacs-major-mode-leader-key "," - ;; Major mode leader key accessible in `emacs state' and `insert state'. - ;; (default "C-M-m") - dotspacemacs-major-mode-emacs-leader-key "C-M-m" - ;; These variables control whether separate commands are bound in the GUI to - ;; the key pairs C-i, TAB and C-m, RET. - ;; Setting it to a non-nil value, allows for separate commands under - ;; and TAB or and RET. - ;; In the terminal, these pairs are generally indistinguishable, so this only - ;; works in the GUI. (default nil) - dotspacemacs-distinguish-gui-tab nil - ;; If non nil `Y' is remapped to `y$' in Evil states. (default nil) - dotspacemacs-remap-Y-to-y$ nil - ;; If non-nil, the shift mappings `<' and `>' retain visual state if used - ;; there. (default t) - dotspacemacs-retain-visual-state-on-shift t - ;; If non-nil, J and K move lines up and down when in visual mode. - ;; (default nil) - dotspacemacs-visual-line-move-text nil - ;; If non nil, inverse the meaning of `g' in `:substitute' Evil ex-command. - ;; (default nil) - dotspacemacs-ex-substitute-global nil - ;; Name of the default layout (default "Default") - dotspacemacs-default-layout-name "Default" - ;; If non nil the default layout name is displayed in the mode-line. - ;; (default nil) - dotspacemacs-display-default-layout nil - ;; If non nil then the last auto saved layouts are resume automatically upon - ;; start. (default nil) - dotspacemacs-auto-resume-layouts nil - ;; Size (in MB) above which spacemacs will prompt to open the large file - ;; literally to avoid performance issues. Opening a file literally means that - ;; no major mode or minor modes are active. (default is 1) - dotspacemacs-large-file-size 1 - ;; Location where to auto-save files. Possible values are `original' to - ;; auto-save the file in-place, `cache' to auto-save the file to another - ;; file stored in the cache directory and `nil' to disable auto-saving. - ;; (default 'cache) - dotspacemacs-auto-save-file-location 'cache - ;; Maximum number of rollback slots to keep in the cache. (default 5) - dotspacemacs-max-rollback-slots 5 - ;; If non nil, `helm' will try to minimize the space it uses. (default nil) - dotspacemacs-helm-resize nil - ;; if non nil, the helm header is hidden when there is only one source. - ;; (default nil) - dotspacemacs-helm-no-header nil - ;; define the position to display `helm', options are `bottom', `top', - ;; `left', or `right'. (default 'bottom) - dotspacemacs-helm-position 'bottom - ;; Controls fuzzy matching in helm. If set to `always', force fuzzy matching - ;; in all non-asynchronous sources. If set to `source', preserve individual - ;; source settings. Else, disable fuzzy matching in all sources. - ;; (default 'always) - dotspacemacs-helm-use-fuzzy 'always - ;; If non nil the paste micro-state is enabled. When enabled pressing `p` - ;; several times cycle between the kill ring content. (default nil) - dotspacemacs-enable-paste-transient-state nil - ;; Which-key delay in seconds. The which-key buffer is the popup listing - ;; the commands bound to the current keystroke sequence. (default 0.4) - dotspacemacs-which-key-delay 0.4 - ;; Which-key frame position. Possible values are `right', `bottom' and - ;; `right-then-bottom'. right-then-bottom tries to display the frame to the - ;; right; if there is insufficient space it displays it at the bottom. - ;; (default 'bottom) - dotspacemacs-which-key-position 'bottom - ;; If non nil a progress bar is displayed when spacemacs is loading. This - ;; may increase the boot time on some systems and emacs builds, set it to - ;; nil to boost the loading time. (default t) - dotspacemacs-loading-progress-bar t - ;; If non nil the frame is fullscreen when Emacs starts up. (default nil) - ;; (Emacs 24.4+ only) - dotspacemacs-fullscreen-at-startup nil - ;; If non nil `spacemacs/toggle-fullscreen' will not use native fullscreen. - ;; Use to disable fullscreen animations in OSX. (default nil) - dotspacemacs-fullscreen-use-non-native nil - ;; If non nil the frame is maximized when Emacs starts up. - ;; Takes effect only if `dotspacemacs-fullscreen-at-startup' is nil. - ;; (default nil) (Emacs 24.4+ only) - dotspacemacs-maximized-at-startup nil - ;; A value from the range (0..100), in increasing opacity, which describes - ;; the transparency level of a frame when it's active or selected. - ;; Transparency can be toggled through `toggle-transparency'. (default 90) - dotspacemacs-active-transparency 90 - ;; A value from the range (0..100), in increasing opacity, which describes - ;; the transparency level of a frame when it's inactive or deselected. - ;; Transparency can be toggled through `toggle-transparency'. (default 90) - dotspacemacs-inactive-transparency 90 - ;; If non nil show the titles of transient states. (default t) - dotspacemacs-show-transient-state-title t - ;; If non nil show the color guide hint for transient state keys. (default t) - dotspacemacs-show-transient-state-color-guide t - ;; If non nil unicode symbols are displayed in the mode line. (default t) - dotspacemacs-mode-line-unicode-symbols t - ;; If non nil smooth scrolling (native-scrolling) is enabled. Smooth - ;; scrolling overrides the default behavior of Emacs which recenters point - ;; when it reaches the top or bottom of the screen. (default t) - dotspacemacs-smooth-scrolling t - ;; If non nil line numbers are turned on in all `prog-mode' and `text-mode' - ;; derivatives. If set to `relative', also turns on relative line numbers. - ;; (default nil) - dotspacemacs-line-numbers 'relative - ;; Code folding method. Possible values are `evil' and `origami'. - ;; (default 'evil) - dotspacemacs-folding-method 'evil - ;; If non-nil smartparens-strict-mode will be enabled in programming modes. - ;; (default nil) - dotspacemacs-smartparens-strict-mode nil - ;; If non-nil pressing the closing parenthesis `)' key in insert mode passes - ;; over any automatically added closing parenthesis, bracket, quote, etc… - ;; This can be temporary disabled by pressing `C-q' before `)'. (default nil) - dotspacemacs-smart-closing-parenthesis nil - ;; Select a scope to highlight delimiters. Possible values are `any', - ;; `current', `all' or `nil'. Default is `all' (highlight any scope and - ;; emphasis the current one). (default 'all) - dotspacemacs-highlight-delimiters 'all - ;; If non nil, advise quit functions to keep server open when quitting. - ;; (default nil) - dotspacemacs-persistent-server nil - ;; List of search tool executable names. Spacemacs uses the first installed - ;; tool of the list. Supported tools are `ag', `pt', `ack' and `grep'. - ;; (default '("ag" "pt" "ack" "grep")) - dotspacemacs-search-tools '("ag" "pt" "ack" "grep") - ;; The default package repository used if no explicit repository has been - ;; specified with an installed package. - ;; Not used for now. (default nil) - dotspacemacs-default-package-repository nil - ;; Delete whitespace while saving buffer. Possible values are `all' - ;; to aggressively delete empty line and long sequences of whitespace, - ;; `trailing' to delete only the whitespace at end of lines, `changed'to - ;; delete only whitespace for changed lines or `nil' to disable cleanup. - ;; (default nil) - dotspacemacs-whitespace-cleanup nil - )) - -(defun dotspacemacs/user-init () - "Initialization function for user code. -It is called immediately after `dotspacemacs/init', before layer configuration -executes. - This function is mostly useful for variables that need to be set -before packages are loaded. If you are unsure, you should try in setting them in -`dotspacemacs/user-config' first." - ) - -(defun dotspacemacs/user-config () - "Configuration function for user code. -This function is called at the very end of Spacemacs initialization after -layers configuration. -This is the place where most of your configurations should be done. Unless it is -explicitly specified that a variable should be set before a package is loaded, -you should place your code here." - (eval-after-load 'flycheck - '(flycheck-credo-setup)) - (add-hook 'elixir-mode-hook 'flycheck-mode) - ) -;; Do not write anything past this comment. This is where Emacs will -;; auto-generate custom variable definitions. -(custom-set-variables - ;; custom-set-variables was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - '(package-selected-packages - (quote - (toml-mode racer flycheck-rust seq cargo rust-mode intero hlint-refactor hindent helm-hoogle haskell-snippets flycheck-haskell company-ghci company-ghc ghc haskell-mode company-cabal cmm-mode base16-theme solarized-theme flycheck-credo atom-one-dark-theme-theme atom-one-dark-theme zonokai-theme zenburn-theme zen-and-art-theme underwater-theme ujelly-theme twilight-theme twilight-bright-theme twilight-anti-bright-theme tronesque-theme toxi-theme tao-theme tangotango-theme tango-plus-theme tango-2-theme sunny-day-theme sublime-themes subatomic256-theme subatomic-theme spacegray-theme soothe-theme soft-stone-theme soft-morning-theme soft-charcoal-theme smyx-theme seti-theme reverse-theme railscasts-theme purple-haze-theme professional-theme planet-theme phoenix-dark-pink-theme phoenix-dark-mono-theme pastels-on-dark-theme organic-green-theme omtose-phellack-theme oldlace-theme occidental-theme obsidian-theme noctilux-theme niflheim-theme naquadah-theme mustang-theme monokai-theme monochrome-theme molokai-theme moe-theme minimal-theme material-theme majapahit-theme lush-theme light-soap-theme jbeans-theme jazz-theme ir-black-theme inkpot-theme heroku-theme hemisu-theme hc-zenburn-theme gruvbox-theme gruber-darker-theme grandshell-theme gotham-theme gandalf-theme flatui-theme flatland-theme firebelly-theme farmhouse-theme espresso-theme dracula-theme django-theme darktooth-theme darkokai-theme darkmine-theme darkburn-theme dakrone-theme cyberpunk-theme color-theme-sanityinc-tomorrow color-theme-sanityinc-solarized clues-theme cherry-blossom-theme busybee-theme bubbleberry-theme birds-of-paradise-plus-theme badwolf-theme apropospriate-theme anti-zenburn-theme ample-zen-theme ample-theme alect-themes afternoon-theme flycheck-elm elm-mode smeargle rainbow-mode rainbow-identifiers orgit org-projectile pcache org-present org-pomodoro alert log4e gntp org-download ob-elixir org mwim mmm-mode markdown-toc markdown-mode magit-gitflow htmlize helm-gitignore helm-company helm-c-yasnippet gnuplot gitignore-mode gitconfig-mode gitattributes-mode git-timemachine git-messenger git-link git-gutter-fringe+ git-gutter-fringe fringe-helper git-gutter+ git-gutter gh-md flyspell-correct-helm flyspell-correct flycheck-pos-tip pos-tip flycheck-mix flycheck evil-magit magit git-commit with-editor erlang dockerfile-mode docker json-mode tablist magit-popup docker-tramp json-snatcher json-reformat diff-hl company-statistics color-identifiers-mode auto-yasnippet yasnippet auto-dictionary alchemist company elixir-mode ac-ispell auto-complete ws-butler window-numbering which-key volatile-highlights vi-tilde-fringe uuidgen use-package toc-org spaceline powerline restart-emacs request rainbow-delimiters popwin persp-mode pcre2el paradox spinner org-plus-contrib org-bullets open-junk-file neotree move-text macrostep lorem-ipsum linum-relative link-hint info+ indent-guide ido-vertical-mode hydra hungry-delete hl-todo highlight-parentheses highlight-numbers parent-mode highlight-indentation hide-comnt help-fns+ helm-themes helm-swoop helm-projectile helm-mode-manager helm-make projectile pkg-info epl helm-flx helm-descbinds helm-ag google-translate golden-ratio flx-ido flx fill-column-indicator fancy-battery eyebrowse expand-region exec-path-from-shell evil-visualstar evil-visual-mark-mode evil-unimpaired evil-tutor evil-surround evil-search-highlight-persist evil-numbers evil-nerd-commenter evil-mc evil-matchit evil-lisp-state smartparens evil-indent-plus evil-iedit-state iedit evil-exchange evil-escape evil-ediff evil-args evil-anzu anzu evil goto-chg undo-tree eval-sexp-fu highlight elisp-slime-nav dumb-jump f s diminish define-word column-enforce-mode clean-aindent-mode bind-map bind-key auto-highlight-symbol auto-compile packed dash aggressive-indent adaptive-wrap ace-window ace-link ace-jump-helm-line helm avy helm-core popup async quelpa package-build spacemacs-theme)))) -(custom-set-faces - ;; custom-set-faces was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - ) diff --git a/.zshrc b/.zshrc index a906892..20cf072 100644 --- a/.zshrc +++ b/.zshrc @@ -46,7 +46,7 @@ export EDITOR="nvim" eval "$(hub alias -s)" alias vi="nvim" alias vim="nvim" -alias cl="clear && neofetch --ascii_distro Gentoo && task list" +alias cl="clear && screenfetch" alias prm=". $HOME/.prm/prm.sh" alias bar=". $HOME/.scripts/bar.sh" . $HOME/.asdf/asdf.sh @@ -54,7 +54,7 @@ alias bar=". $HOME/.scripts/bar.sh" export PATH="$HOME/.apps/Elm-Platform/0.18/.cabal-sandbox/bin":$PATH export PATH="$HOME/.apps/admiral/target/release":$PATH -export PATH="$HOME/.apps/roller/target/release":$PATH +export PATH="$HOME/.apps/icecat":$PATH export PATH="$HOME/.apps":$PATH export PATH="$HOME/.local/bin":$PATH export PATH="$HOME/.cargo/bin":$PATH diff --git a/nixos/configuration.nix b/nixos/configuration.nix index 65264f8..7d07bf4 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -10,30 +10,73 @@ ./hardware-configuration.nix ]; - nix = { - gc = { - automatic = true; - dates = "12:00"; - }; - }; + nixpkgs.config = { + allowUnfree = true; + #packageOverrides = pkgs: rec { + #st = pkgs.stdenv.lib.overrideDerivation pkgs.st (oldAttrs : { + #configFile = '' + #static const char *colorname[] = { - nixpkgs.config.allowUnfree = true; + #/* 8 normal colors */ + #[0] = "#3c3e42", /* black */ + #[1] = "#dd6880", /* red */ + #[2] = "#83b879", /* green */ + #[3] = "#dec790", /* yellow */ + #[4] = "#95b5e4", /* blue */ + #[5] = "#c1a3e0", /* magenta */ + #[6] = "#64c1d4", /* cyan */ + #[7] = "#9a9da3", /* white */ + + #/* 8 bright colors */ + #[8] = "#4f5558", /* black */ + #[9] = "#de889a", /* red */ + #[10] = "#99c490", /* green */ + #[11] = "#e7d09a", /* yellow */ + #[12] = "#a0beea", /* blue */ + #[13] = "#cbacea", /* magenta */ + #[14] = "#88d1df", /* cyan */ + #[15] = "#b4b7bb", /* white */ + + #/* special colors */ + #[256] = "#212121", /* background */ + #[257] = "#aeb1b7", /* foreground */ + #}; + + #/* + #* default colors (colorname index) + #* foreground, background, cursor + #*/ + #static unsigned int defaultfg = 257; + #static unsigned int defaultbg = 256; + #static unsigned int defaultcs = 257; + + #/* + #* colors used, when the specific fg == defaultfg. so in reverse mode this + #* will reverse too. another logic would only make the simple feature too + #* complex. + #*/ + #static unsigned int defaultitalic = 7; + #static unsigned int defaultunderline = 7; + + #static char font[] = "GohuFont:pixelsize=12:antialias=false"; + #''; + #}); + #}; + }; boot = { initrd = { - availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; - kernelModules = [ "fbcon" "wl" "kvm-intel" ]; luks.devices = [{ name = "rootfs"; device = "/dev/sda2"; preLVM = true; + allowDiscards = true; }]; }; loader = { - gummiboot.enable = true; + systemd-boot.enable = true; efi.canTouchEfiVariables = true; }; - extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; extraModprobeConfig = '' options hid_apple iso_layout=0 ''; @@ -42,17 +85,15 @@ networking = { hostName = "Caroyln_MacBookAir_NixOS"; firewall.enable = true; - interfaceMonitor.enable = false; - wireless.enable = false; # Don't run wpa_supplicant (wicd will do it when necessary) - useDHCP = false; # Don't run dhclient on wlan0 + wireless.enable = false; + useDHCP = false; wicd.enable = true; }; powerManagement.enable = true; - virtualisation = { - docker.enable = true; - }; + virtualisation.docker.enable = true; + virtualisation.virtualbox.host.enable = true; # Set your time zone. time.timeZone = "America/Los_Angeles"; @@ -62,38 +103,76 @@ programs.zsh.enable = true; - security.setuidPrograms = [ "slock" ]; + #security.wrappers = [ "slock" ]; environment.systemPackages = with pkgs; [ - dropbox-cli - neovim + acpi + audacity + bar-xft + bc + bitcoin + blueman bspwm - sxhkd - bar + cargo + chromium + compton-git + ctags + cura + cyrus_sasl + dropbox-cli + electrum + elmPackages.elm feh gcc - ghc + gimp git + gitAndTools.hub gnumake - chromium + gnupg1 + haskellPackages.apply-refact haskellPackages.cabal-install - haskellPackages.ghc-mod + haskellPackages.hakyll haskellPackages.hlint + haskellPackages.hoogle + haskellPackages.shake haskellPackages.stack haskellPackages.stylish-haskell htop kbdlight - networkmanagerapplet + kicad + libu2f-host + neomutt + neovim + nodejs + ntfs3g + openscad + pavucontrol python python27Packages.udiskie + rofi + rustc silver-searcher slock - st + steam sudo + sxhkd + termite + transmission unzip + vlc + weechat wget + wireshark xautolock + xfce.thunar xflux + xtitle + yubikey-personalization + yubikey-personalization-gui + zscroll + (pkgs.lib.overrideDerivation pkgs.st (attrs: { + configFile = builtins.readFile ./st-config.h; + })) ]; # List services that you want to enable: @@ -102,18 +181,28 @@ tlp.enable = true; openssh.enable = true; printing.enable = true; + pcscd.enable = true; + udev.extraRules = '' + ACTION!="add|change", GOTO="u2f_end" + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0113|0114|0115|0116|0120|0402|0403|0406|0407|0410", TAG+="uaccess" + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="f1d0", TAG+="uaccess" + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1e0d", ATTRS{idProduct}=="f1d0|f1ae", TAG+="uaccess" + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e|2ccf", ATTRS{idProduct}=="0880", TAG+="uaccess" + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0850|0852|0853|0854|0856|0858|085a|085b", TAG+="uaccess" + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="24dc", ATTRS{idProduct}=="0101", TAG+="uaccess" + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="8acf", TAG+="uaccess" + LABEL="u2f_end" + ''; + udev.packages = [ + pkgs.libu2f-host + pkgs.yubikey-personalization + ]; xserver = { enable = true; layout = "us"; - displayManager = { - lightdm = { - enable = true; - background = "/home/gigavinyl/Pictures/blook.png"; - }; + displayManager.lightdm.enable = true; windowManager = { - bspwm = { - enable = true; - }; + bspwm.enable = true; default = "bspwm"; }; synaptics = { @@ -140,7 +229,7 @@ isNormalUser = true; home = "/home/gigavinyl"; shell = "/run/current-system/sw/bin/zsh"; - extraGroups = [ "wheel" "networkmanager" "docker" ]; + extraGroups = [ "wheel" "docker" ]; }; # Enable Udiskie Daemon @@ -170,9 +259,20 @@ powerline-fonts gohufont ]; - }; + }; + + hardware = { + pulseaudio = { + enable = true; + support32Bit = true; + }; + opengl.driSupport32Bit = true; + facetimehd.enable = true; + cpu.intel.updateMicrocode = true; + bluetooth.enable = true; + }; # The NixOS release to be compatible with for stateful data such as databases. - system.stateVersion = "16.09"; - + system.stateVersion = "17.03"; + system.autoUpgrade.enable = true; } diff --git a/nixos/hardware-configuration.nix b/nixos/hardware-configuration.nix index 628a911..faaf3c1 100644 --- a/nixos/hardware-configuration.nix +++ b/nixos/hardware-configuration.nix @@ -8,30 +8,24 @@ [ ]; - fileSystems."/" = { - device = "/dev/disk/by-uuid/42a13316-4343-4d0b-98d9-fdedd8a6ad92"; - fsType = "ext4"; - }; + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; + boot.kernelModules = [ "fbcon" "kvm-intel" "wl" ]; + boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/AE28-30CF"; - fsType = "vfat"; - }; + fileSystems."/" = + { device = "/dev/disk/by-uuid/0a891d7e-a4db-4c93-ab49-1b5c0a464081"; + fsType = "ext4"; + options = ["noatime" "nodiratime" "discard"]; + }; - swapDevices = [ - { device = "/dev/disk/by-uuid/d499f710-532f-4d4d-bb10-dd080a93f95b"; } - ]; + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/6F68-23E6"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/1b0eb760-07c0-4919-bc2b-c41cb89fbea2"; } + ]; nix.maxJobs = lib.mkDefault 4; - - hardware = { - pulseaudio = { - enable = true; - support32Bit = true; - }; - opengl.driSupport32Bit = true; - facetimehd.enable = true; - cpu.intel.updateMicrocode = true; - bluetooth.enable = true; - }; }