diff options
| author | Quentin Aristote <quentin@aristote.fr> | 2021-08-06 18:51:59 +0200 |
|---|---|---|
| committer | Quentin Aristote <quentin@aristote.fr> | 2021-08-06 18:51:59 +0200 |
| commit | a1f7f43c95c049628e826856ec589b339cd4f5db (patch) | |
| tree | a0f5bb10fc36f02ad6dbaebf1232ca2548f9ccfa /home/config | |
initial commit
Diffstat (limited to 'home/config')
27 files changed, 1463 insertions, 0 deletions
diff --git a/home/config/alacritty.nix b/home/config/alacritty.nix new file mode 100644 index 0000000..c54696e --- /dev/null +++ b/home/config/alacritty.nix @@ -0,0 +1,27 @@ +{ config, ... }: + +let + user = config.home.username; + host = config.networking.hostname; +in { + programs.alacritty = { + enable = true; + + settings = { + window = { + title = "${user}@{hostname}"; + + padding = { + x = 10; + y = 10; + }; + dimensions = { + lines = 75; + columns = 100; + }; + }; + + font = { size = 8.0; }; + }; + }; +} diff --git a/home/config/default.nix b/home/config/default.nix new file mode 100644 index 0000000..0d02561 --- /dev/null +++ b/home/config/default.nix @@ -0,0 +1,18 @@ +{ ... }: + +{ + imports = [ + ./alacritty.nix + ./environment.nix + ./emacs.nix + ./firefox + ./git.nix + ./i3 + ./kdeconnect.nix + ./picom.nix + ./redshift.nix + ./rofi.nix + ./syncthing.nix + ./xsession.nix + ]; +} diff --git a/home/config/dotfiles/background-image b/home/config/dotfiles/background-image Binary files differnew file mode 100644 index 0000000..4288f3e --- /dev/null +++ b/home/config/dotfiles/background-image diff --git a/home/config/dotfiles/spacemacs b/home/config/dotfiles/spacemacs new file mode 100644 index 0000000..86ed29d --- /dev/null +++ b/home/config/dotfiles/spacemacs @@ -0,0 +1,566 @@ +;; -*- mode: emacs-lisp; lexical-binding: t -*- +;; This file is loaded by Spacemacs at startup. +;; It must be stored in your home directory. + +(defun dotspacemacs/layers () + "Layer configuration: +This function should only modify configuration layer settings." + (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 + + ;; 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 `SPC f e R' (Vim style) or + ;; `M-m f e R' (Emacs style) to install them. + ;; ---------------------------------------------------------------- + auto-completion + better-defaults + emacs-lisp + ;; eww + git + helm + javascript + ;; lsp + multiple-cursors + nixos + org + ;; (shell :variables + ;; shell-default-height 30 + ;; shell-default-position 'bottom) + ;; spell-checking + ;; syntax-checking + version-control + treemacs + ;; ---------------------------------------------------------------- + ;; Programming (and markup) languages ) + ;; ---------------------------------------------------------------- + ;; latex + csv + go + markdown + ocaml + python + ;; ---------------------------------------------------------------- + ;; Private layers + ;; ---------------------------------------------------------------- + direnv + ) + + ;; List of additional packages that will be installed without being wrapped + ;; in a layer (generally the packages are installed only and should still be + ;; loaded using load/require/use-package in the user-config section below in + ;; this file). If you need some configuration for these packages, then + ;; consider creating a layer. You can also put the configuration in + ;; `dotspacemacs/user-config'. To use a local version of a package, use the + ;; `:location' property: '(your-package :location "~/path/to/your-package/") + ;; Also include the dependencies as they will not be resolved automatically. + dotspacemacs-additional-packages '() + + ;; 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 deletes any unused + ;; packages as well as their unused dependencies. `used-but-keep-unused' + ;; installs only the used packages but won't delete unused ones. `all' + ;; installs *all* packages supported by Spacemacs and never uninstalls them. + ;; (default is `used-only') + dotspacemacs-install-packages 'used-but-keep-unused)) + +(defun dotspacemacs/init () + "Initialization: +This function is called at the very beginning of Spacemacs startup, +before layer configuration. +It should only modify the values of Spacemacs settings." + ;; This setq-default sexp is an exhaustive list of all the supported + ;; spacemacs settings. + (setq-default + ;; If non-nil then enable support for the portable dumper. You'll need + ;; to compile Emacs 27 from source following the instructions in file + ;; EXPERIMENTAL.org at to root of the git repository. + ;; (default nil) + dotspacemacs-enable-emacs-pdumper nil + + ;; Name of executable file pointing to emacs 27+. This executable must be + ;; in your PATH. + ;; (default "emacs") + dotspacemacs-emacs-pdumper-executable-file "emacs" + + ;; Name of the Spacemacs dump file. This is the file will be created by the + ;; portable dumper in the cache directory under dumps sub-directory. + ;; To load it when starting Emacs add the parameter `--dump-file' + ;; when invoking Emacs 27.1 executable on the command line, for instance: + ;; ./emacs --dump-file=$HOME/.emacs.d/.cache/dumps/spacemacs-27.1.pdmp + ;; (default (format "spacemacs-%s.pdmp" emacs-version)) + dotspacemacs-emacs-dumper-dump-file (format "spacemacs-%s.pdmp" emacs-version) + + ;; 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. + ;; (default 5) + dotspacemacs-elpa-timeout 5 + + ;; Set `gc-cons-threshold' and `gc-cons-percentage' when startup finishes. + ;; This is an advanced option and should not be changed unless you suspect + ;; performance issues due to garbage collection operations. + ;; (default '(100000000 0.1)) + dotspacemacs-gc-cons '(100000000 0.1) + + ;; Set `read-process-output-max' when startup finishes. + ;; This defines how much data is read from a foreign process. + ;; Setting this >= 1 MB should increase performance for lsp servers + ;; in emacs 27. + ;; (default (* 1024 1024)) + dotspacemacs-read-process-output-max (* 1024 1024) + + ;; If non-nil then Spacelpa repository is the primary source to install + ;; a locked version of packages. If nil then Spacemacs will install the + ;; latest version of packages from MELPA. Spacelpa is currently in + ;; experimental state please use only for testing purposes. + ;; (default nil) + dotspacemacs-use-spacelpa nil + + ;; If non-nil then verify the signature for downloaded Spacelpa archives. + ;; (default t) + dotspacemacs-verify-spacelpa-archives t + + ;; 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 t + + ;; 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'. (default 'emacs-version) + dotspacemacs-elpa-subdirectory 'emacs-version + + ;; 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 show the version string in the Spacemacs buffer. It will + ;; appear as (spacemacs version)@(emacs version) + ;; (default t) + dotspacemacs-startup-buffer-show-version t + + ;; 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' `recents-by-project' `bookmarks' `projects' `agenda' `todos'. + ;; List sizes may be nil, in which case + ;; `spacemacs-buffer-startup-lists-length' takes effect. + ;; The exceptional case is `recents-by-project', where list-type must be a + ;; pair of numbers, e.g. `(recents-by-project . (7 . 5))', where the first + ;; number is the project limit and the second the limit on the recent files + ;; within a project. + dotspacemacs-startup-lists '((recents . 5) + (projects . 7)) + + ;; True if the home buffer should respond to resize events. (default t) + dotspacemacs-startup-buffer-responsive t + + ;; Default major mode for a new empty buffer. Possible values are mode + ;; names such as `text-mode'; and `nil' to use Fundamental mode. + ;; (default `text-mode') + dotspacemacs-new-empty-buffer-major-mode 'text-mode + + ;; Default major mode of the scratch buffer (default `text-mode') + dotspacemacs-scratch-mode 'text-mode + + ;; If non-nil, *scratch* buffer will be persistent. Things you write down in + ;; *scratch* buffer will be saved and restored automatically. + dotspacemacs-scratch-buffer-persistent t + + ;; If non-nil, `kill-buffer' on *scratch* buffer + ;; will bury it instead of killing. + dotspacemacs-scratch-buffer-unkillable nil + + ;; Initial message in the scratch buffer, such as "Welcome to Spacemacs!" + ;; (default nil) + dotspacemacs-initial-scratch-message nil + + ;; List of themes, the first of the list is loaded when spacemacs starts. + ;; Press `SPC T n' to cycle to the next theme in the list (works great + ;; with 2 themes variants, one dark and one light) + dotspacemacs-themes '(spacemacs-dark + spacemacs-light) + + ;; Set the theme for the Spaceline. Supported themes are `spacemacs', + ;; `all-the-icons', `custom', `doom', `vim-powerline' and `vanilla'. The + ;; first three are spaceline themes. `doom' is the doom-emacs mode-line. + ;; `vanilla' is default Emacs mode-line. `custom' is a user defined themes, + ;; refer to the DOCUMENTATION.org for more info on how to create your own + ;; spaceline theme. Value can be a symbol or list with additional properties. + ;; (default '(spacemacs :separator wave :separator-scale 1.5)) + dotspacemacs-mode-line-theme '(spacemacs :separator wave :separator-scale 1.5) + + ;; If non-nil the cursor color matches the state color in GUI Emacs. + ;; (default t) + dotspacemacs-colorize-cursor-according-to-state t + + ;; Default font or prioritized list of fonts. The `:size' can be specified as + ;; a non-negative integer (pixel size), or a floating-point (point size). + ;; Point size is recommended, because it's device independent. (default 10.0) + dotspacemacs-default-font '("Source Code Pro" + :size 10.0 + :weight normal + :width normal) + + ;; The leader key (default "SPC") + 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 `<leader> 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" for terminal mode, "<M-return>" for GUI mode). + ;; Thus M-RET should work as leader key in both GUI and terminal modes. + ;; C-M-m also should work in terminal mode, but not in GUI mode. + dotspacemacs-major-mode-emacs-leader-key (if window-system "<M-return>" "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 `C-i' + ;; and TAB or `C-m' and `RET'. + ;; In the terminal, these pairs are generally indistinguishable, so this only + ;; works in the GUI. (default nil) + dotspacemacs-distinguish-gui-tab 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 resumed automatically upon + ;; start. (default nil) + dotspacemacs-auto-resume-layouts nil + + ;; If non-nil, auto-generate layout name when creating new layouts. Only has + ;; effect when using the "jump to layout by number" commands. (default nil) + dotspacemacs-auto-generate-layout-names 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, the paste transient-state is enabled. While enabled, after you + ;; paste something, pressing `C-j' and `C-k' several times cycles through the + ;; elements in the `kill-ring'. (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 + + ;; Control where `switch-to-buffer' displays the buffer. If nil, + ;; `switch-to-buffer' displays the buffer in the current window even if + ;; another same-purpose window is available. If non-nil, `switch-to-buffer' + ;; displays the buffer in a same-purpose window even if the buffer can be + ;; displayed in the current window. (default nil) + dotspacemacs-switch-to-buffer-prefers-purpose nil + + ;; 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 + + ;; If non-nil the frame is undecorated when Emacs starts up. Combine this + ;; variable with `dotspacemacs-maximized-at-startup' in OSX to obtain + ;; borderless fullscreen. (default nil) + dotspacemacs-undecorated-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. + ;; If you use Emacs as a daemon and wants unicode characters only in GUI set + ;; the value to quoted `display-graphic-p'. (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 + + ;; Control line numbers activation. + ;; If set to `t', `relative' or `visual' then line numbers are enabled in all + ;; `prog-mode' and `text-mode' derivatives. If set to `relative', line + ;; numbers are relative. If set to `visual', line numbers are also relative, + ;; but lines are only visual lines are counted. For example, folded lines + ;; will not be counted and wrapped lines are counted as multiple lines. + ;; This variable can also be set to a property list for finer control: + ;; '(:relative nil + ;; :visual nil + ;; :disabled-for-modes dired-mode + ;; doc-view-mode + ;; markdown-mode + ;; org-mode + ;; pdf-view-mode + ;; text-mode + ;; :size-limit-kb 1000) + ;; When used in a plist, `visual' takes precedence over `relative'. + ;; (default nil) + dotspacemacs-line-numbers nil + + ;; Code folding method. Possible values are `evil', `origami' and `vimish'. + ;; (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, start an Emacs server if one is not already running. + ;; (default nil) + dotspacemacs-enable-server nil + + ;; Set the emacs server socket location. + ;; If nil, uses whatever the Emacs default is, otherwise a directory path + ;; like \"~/.emacs.d/server\". It has no effect if + ;; `dotspacemacs-enable-server' is nil. + ;; (default nil) + dotspacemacs-server-socket-dir nil + + ;; 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 `rg', `ag', `pt', `ack' and `grep'. + ;; (default '("rg" "ag" "pt" "ack" "grep")) + dotspacemacs-search-tools '("rg" "ag" "pt" "ack" "grep") + + ;; Format specification for setting the frame title. + ;; %a - the `abbreviated-file-name', or `buffer-name' + ;; %t - `projectile-project-name' + ;; %I - `invocation-name' + ;; %S - `system-name' + ;; %U - contents of $USER + ;; %b - buffer name + ;; %f - visited file name + ;; %F - frame name + ;; %s - process status + ;; %p - percent of buffer above top of window, or Top, Bot or All + ;; %P - percent of buffer above bottom of window, perhaps plus Top, or Bot or All + ;; %m - mode name + ;; %n - Narrow if appropriate + ;; %z - mnemonics of buffer, terminal, and keyboard coding systems + ;; %Z - like %z, but including the end-of-line format + ;; (default "%I@%S") + dotspacemacs-frame-title-format "%I@%S" + + ;; Format specification for setting the icon title format + ;; (default nil - same as frame-title-format) + dotspacemacs-icon-title-format nil + + ;; Show trailing whitespace (default t) + dotspacemacs-show-trailing-whitespace t + + ;; 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 + + ;; If non nil activate `clean-aindent-mode' which tries to correct + ;; virtual indentation of simple modes. This can interfer with mode specific + ;; indent handling like has been reported for `go-mode'. + ;; If it does deactivate it here. + ;; (default t) + dotspacemacs-use-clean-aindent-mode t + + ;; If non-nil shift your number row to match the entered keyboard layout + ;; (only in insert state). Currently supported keyboard layouts are: + ;; `qwerty-us', `qwertz-de' and `querty-ca-fr'. + ;; New layouts can be added in `spacemacs-editing' layer. + ;; (default nil) + dotspacemacs-swap-number-row nil + + ;; Either nil or a number of seconds. If non-nil zone out after the specified + ;; number of seconds. (default nil) + dotspacemacs-zone-out-when-idle nil + + ;; Run `spacemacs/prettify-org-buffer' when + ;; visiting README.org files of Spacemacs. + ;; (default nil) + dotspacemacs-pretty-docs nil + + ;; If nil the home buffer shows the full path of agenda items + ;; and todos. If non nil only the file name is shown. + dotspacemacs-home-shorten-agenda-source nil + + ;; If non-nil then byte-compile some of Spacemacs files. + dotspacemacs-byte-compile nil)) + +(defun dotspacemacs/user-env () + "Environment variables setup. +This function defines the environment variables for your Emacs session. By +default it calls `spacemacs/load-spacemacs-env' which loads the environment +variables declared in `~/.spacemacs.env' or `~/.spacemacs.d/.spacemacs.env'. +See the header of this file for more information." + (spacemacs/load-spacemacs-env)) + +(defun dotspacemacs/user-init () + "Initialization for user code: +This function is called immediately after `dotspacemacs/init', before layer +configuration. +It is mostly for variables that should be set before packages are loaded. +If you are unsure, try setting them in `dotspacemacs/user-config' first." + ) + +(defun dotspacemacs/user-load () + "Library to load while dumping. +This function is called only while dumping Spacemacs configuration. You can +`require' or `load' the libraries of your choice that will be included in the +dump." + ) + +(defun dotspacemacs/user-config () + "Configuration for user code: +This function is called at the very end of Spacemacs startup, after layer +configuration. +Put your configuration code here, except for variables that should be set +before packages are loaded." + ;; Variables customization + (custom-set-variables + '(merlin-command "ocamlmerlin")) + (global-company-mode t) + ;; Key bindings + (spacemacs/set-leader-keys-for-major-mode 'nix-mode "=" 'nix-format-buffer)) + +;; Do not write anything past this comment. This is where Emacs will +;; auto-generate custom variable definitions. +(defun dotspacemacs/emacs-custom-settings () + "Emacs custom settings. +This is an auto-generated function, do not modify its content directly, use +Emacs customize menu instead. +This function is called at the very end of Spacemacs initialization." +(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 + '(yapfify utop tuareg caml sphinx-doc pytest pyenv-mode py-isort poetry pippel pipenv pyvenv pip-requirements ocp-indent ocamlformat merlin-eldoc live-py-mode importmagic epc ctable concurrent deferred helm-pydoc flycheck-ocaml merlin dune cython-mode company-reftex company-math math-symbol-lists company-auctex company-anaconda blacken auctex anaconda-mode pythonic yasnippet-snippets unfill treemacs-magit smeargle orgit-forge orgit org-rich-yank org-projectile org-category-capture org-present org-pomodoro alert log4e gntp org-mime org-download org-cliplink org-brain nix-mode mwim mmm-mode markdown-toc magit-svn magit-section magit-gitflow magit-popup htmlize helm-org-rifle helm-nixos-options helm-gitignore helm-git-grep helm-company helm-c-yasnippet gnuplot gitignore-templates gitignore-mode gitconfig-mode gitattributes-mode git-timemachine git-messenger git-link git-gutter-fringe+ fringe-helper git-gutter+ gh-md fuzzy forge markdown-mode magit ghub closql emacsql-sqlite emacsql treepy git-commit with-editor transient flyspell-correct-helm flyspell-correct flycheck-pos-tip pos-tip evil-org company-nixos-options nixos-options company browse-at-remote auto-yasnippet yasnippet auto-dictionary ac-ispell auto-complete ws-butler writeroom-mode visual-fill-column winum volatile-highlights vi-tilde-fringe uuidgen undo-tree treemacs-projectile treemacs-persp treemacs-icons-dired treemacs-evil treemacs cfrs ht pfuture posframe toc-org symon symbol-overlay string-inflection string-edit spaceline-all-the-icons memoize all-the-icons spaceline powerline restart-emacs request rainbow-delimiters popwin persp-mode password-generator paradox spinner overseer org-superstar open-junk-file nameless multi-line shut-up macrostep lorem-ipsum link-hint indent-guide hungry-delete hl-todo highlight-parentheses highlight-numbers parent-mode highlight-indentation helm-xref helm-themes helm-swoop helm-purpose window-purpose imenu-list helm-projectile helm-org helm-mode-manager helm-make helm-ls-git helm-flx helm-descbinds helm-ag google-translate golden-ratio flycheck-package package-lint flycheck flycheck-elsa flx-ido flx fancy-battery eyebrowse expand-region evil-visualstar evil-visual-mark-mode evil-unimpaired f evil-tutor evil-textobj-line evil-surround evil-numbers evil-nerd-commenter evil-mc evil-matchit evil-lisp-state evil-lion evil-indent-plus evil-iedit-state evil-goggles evil-exchange evil-escape evil-ediff evil-easymotion evil-collection annalist evil-cleverparens smartparens evil-args evil-anzu anzu eval-sexp-fu emr iedit clang-format projectile paredit list-utils pkg-info epl elisp-slime-nav editorconfig dumb-jump s drag-stuff dired-quick-sort devdocs define-word dash column-enforce-mode clean-aindent-mode centered-cursor-mode auto-highlight-symbol auto-compile packed aggressive-indent ace-window ace-link ace-jump-helm-line helm avy helm-core popup which-key use-package pcre2el org-plus-contrib hydra lv hybrid-mode font-lock+ evil goto-chg dotenv-mode diminish bind-map bind-key async))) +(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/home/config/emacs.nix b/home/config/emacs.nix new file mode 100644 index 0000000..2308433 --- /dev/null +++ b/home/config/emacs.nix @@ -0,0 +1,14 @@ +{ pkgs, ... }: + +{ + programs.emacs = { + enable = true; + package = pkgs.emacs.overrideAttrs (oldAttrs: rec { nativeComp = true; }); + }; + services.emacs = { + enable = true; + client.enable = true; + }; + + home.file.".spacemacs.d/init.el".source = ./dotfiles/spacemacs; +} diff --git a/home/config/environment.nix b/home/config/environment.nix new file mode 100644 index 0000000..f3181a9 --- /dev/null +++ b/home/config/environment.nix @@ -0,0 +1,66 @@ +{ config, pkgs, ... }: + +{ + home.packages = with pkgs; + [ + # Various + evince + gimp + gnupg + imagemagick + ghostscript + keepassxc + moreutils + pavucontrol + transmission-gtk + vlc + zotero + ] ++ [ + # Social + signal-desktop + thunderbird + ] ++ [ + # Fonts + material-design-icons + roboto + ] ++ [ + # Programming languages + python3Minimal + ] ++ (with texlive; + [ + # Tex + # Uncomment when full disk available + # combined.scheme-full + ]); + + home.wallpaper = ./dotfiles/background-image; + + programs.bash = { + enable = true; + shellAliases = { + amimullvad = "curl -Ls https://am.i.mullvad.net/connected"; + nixos-update-config = + "sudo cp -rf ~/documents/nix/latitude-7490/nixos/ /etc/"; + rm = "rm -f"; + ssh = "sTERM=xterm-256color ssh"; + mkenv = '' + cp ~/documents/nix/shells/shell.nix . ; + echo "use_nix" >> .envrc ; + direnv allow ; + $EDITOR shell.nix ; + ''; + fftmp = "firefox --profile $(mktemp -d)"; + edit = "$EDITOR"; + }; + sessionVariables = { + CDPATH = "~"; + EDITOR = "emacsclient -c"; + BROWSER = "firefox"; + }; + }; + + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; +} diff --git a/home/config/firefox/default.nix b/home/config/firefox/default.nix new file mode 100644 index 0000000..8397f01 --- /dev/null +++ b/home/config/firefox/default.nix @@ -0,0 +1,142 @@ +{ pkgs, lib, config, fetchurl, stdenv, ... }: + +with lib; +let + mkUserJs = prefs: '' + ${concatStrings (mapAttrsToList (name: value: '' + user_pref("${name}", ${builtins.toJSON value}); + '') prefs)} + ''; + config-template = + builtins.readFile "${pkgs.personal.firefoxPackages.arkenfox-userjs}"; + config-default = config-template + mkUserJs { + "browser.shell.checkDefaultBrowser" = true; # 0101 + "keyword.enabled" = true; # 0801 + "signon.rememberSignons" = false; # 0901 + "security.nocertdb" = true; # 1222 + "dom.allow_cut_copy" = true; # 2404 + "dom.battery.enabled" = false; # 2502 + "dom.vr.enabled" = false; # 2520 + "permissions.default.xr" = 2; # 2521 + + # Personal + "browser.tabs.warnOnClose" = false; + "browser.tabs.warnOnCloseOtherTabs" = false; + "clipboard.autocopy" = false; + "browser.quitShortcut.disabled" = true; + "browser.tabs.closeWindowWithLastTab" = false; + "extensions.pocket.enabled" = false; + "identity.fxaccounts.enabled" = false; + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; + }; + + userchrome-treestyletabs = '' + /* Hide main tabs toolbar */ + #TabsToolbar { + visibility: collapse; + } + /* Sidebar min and max width removal */ + #sidebar { + max-width: none !important; + min-width: 0px !important; + } + /* Hide sidebar header, when using Tree Style Tab. */ + #sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header { + visibility: collapse; + } + ''; + +in { + programs.firefox = { + enable = true; + + extensions = attrValues pkgs.personal.firefoxPackages.addons; + # to add : + # floccus + LoFloccus + # Zotero + + profiles = { + default = { + id = 0; # isDefault = true + + extraConfig = config-default; + userChrome = userchrome-treestyletabs; + }; + + # For video streaming + streaming = { + id = 1; + + extraConfig = config-default + mkUserJs { + # Widevine (DRMs) + "media.gmp-widevinecdm.enabled" = true; + "media.eme.enabled" = true; + # Cache + "browser.cache.disk.enable" = true; + "browser.cache.offline.storage" = true; + # Privacy + "privacy.clearOnShutdown.cache" = false; + "privacy.clearOnShutdown.cookies" = false; + "privacy.clearOnShutdown.siteSettings" = false; + }; + userChrome = userchrome-treestyletabs; + }; + + videoconferencing = { + id = 2; + + extraConfig = config-default + mkUserJs { + # IMPORTANT: uncheck "Prevent WebRTC from leaking local IP addresses" in uBlock Origin's settings + # NOTE: if using RFP (4501) + # some sites, e.g. Zoom, need a canvas site exception [Right Click>View Page Info>Permissions] + # Discord video does not work: it thinks you are FF78: use a separate profile or spoof the user agent + "media.peerconnection.enabled" = true; + "media.peerconnection.ice.no_host" = + false; # may or may not be required + "webgl.disabled" = false; # required for Zoom + "webgl.min_capability_mode" = false; + "media.getusermedia.screensharing.enabled" = true; # optional + "media.autoplay.blocking_policy" = + 0; # optional (otherwise add site exceptions) + "javascript.options.wasm" = + true; # optional (some platforms may require this) + "dom.webaudio.enabled" = true; + }; + userChrome = userchrome-treestyletabs; + }; + }; + }; + + xdg.desktopEntries = let + icons = pkgs.personal.icons; + firefox-profiles-dir = "${config.home.homeDirectory}/.mozilla/firefox"; + in { + netflix = { + name = "Netflix"; + genericName = "Streaming service"; + icon = "${icons.netflix}"; + comment = "Unlimited movies, TV shows, and more."; + exec = + "${pkgs.firefox}/bin/firefox --profile ${firefox-profiles-dir}/streaming https://www.netflix.com/fr-en/login"; + categories = [ "AudioVideo" "Video" "Player" ]; + }; + mubi = { + name = "MUBI"; + genericName = "Streaming service"; + icon = "${icons.mubi}"; + comment = "Watch hand-picked cinema."; + exec = + "${pkgs.firefox}/bin/firefox --profile ${firefox-profiles-dir}/streaming https://mubi.com"; + categories = [ "AudioVideo" "Video" "Player" ]; + }; + deezer = { + name = "Deezer"; + genericName = "Streaming service"; + icon = "${icons.deezer}"; + comment = "Listen to music online"; + exec = + "${pkgs.firefox}/bin/firefox --profile ${firefox-profiles-dir}/streaming https://deezer.com/login"; + categories = [ "AudioVideo" "Audio" "Player" "Music" ]; + }; + }; +} diff --git a/home/config/git.nix b/home/config/git.nix new file mode 100644 index 0000000..4914d87 --- /dev/null +++ b/home/config/git.nix @@ -0,0 +1,14 @@ +{ pkgs, ... }: + +{ + programs.git = { + enable = true; + + userName = "Quentin Aristote"; + userEmail = "quentin@aristote.fr"; + + ignores = builtins.map builtins.readFile (with pkgs.personal.gitignore; [ + emacs linux + ]); + }; +} diff --git a/home/config/i3/bar/.direnv/cache-pre295280.fa0326ce523 b/home/config/i3/bar/.direnv/cache-pre295280.fa0326ce523 new file mode 100644 index 0000000..0f4fba3 --- /dev/null +++ b/home/config/i3/bar/.direnv/cache-pre295280.fa0326ce523 @@ -0,0 +1 @@ +export NIX_STORE=$'/nix/store';export NIX_INDENT_MAKE=1;export STRINGS=$'strings';export _=$'/nix/store/ailc5fvai6byhdgdv6y6z7ydfgpjrhx1-direnv-2.28.0/bin/direnv';export $'propagatedBuildInputs'='';export $'stdenv'=$'/nix/store/qg8qhrxiab3r87xmaxbq565g1g8bnl57-stdenv-linux';export $'shellHook'='';export HOME=$'/home/qaristote';export $'depsBuildBuild'='';export DETERMINISTIC_BUILD=1;export TEMP=$'/run/user/1000';export $'nativeBuildInputs'=$'/nix/store/vwjjqgfg9gd4l0zb8h2p0zgpj2w3p4cd-nixfmt-0.4.0 /nix/store/h92k7hcwbbnkslr72v80xcfjnykwdqml-python3.8-nix-prefetch-github-4.0.3';export $'buildInputs'=$'/nix/store/hvbf1wk66pbvps49rq2lf1lmx9aff2sl-go-1.16.5 /nix/store/y61b17l51rnwv450yl1gamhbc5xwkxcy-gofumpt-0.1.1';export $'system'=$'x86_64-linux';export $'shell'=$'/nix/store/a4yw1svqqk4d8lhwinn9xp847zz9gfma-bash-4.4-p23/bin/bash';export PATH=$'/nix/store/fgbzvd4c6nly9m4dpczrxybdpkm8mnk3-bash-interactive-4.4-p23/bin:/nix/store/vwjjqgfg9gd4l0zb8h2p0zgpj2w3p4cd-nixfmt-0.4.0/bin:/nix/store/h92k7hcwbbnkslr72v80xcfjnykwdqml-python3.8-nix-prefetch-github-4.0.3/bin:/nix/store/66fbv9mmx1j4hrn9y06kcp73c3yb196r-python3-3.8.9/bin:/nix/store/nn70k5w99m6y59ldxlnb1x6j4q8bbjbq-patchelf-0.12/bin:/nix/store/35pnk5kwi26m3ph2bc7dxwjnavpzl8cn-gcc-wrapper-10.3.0/bin:/nix/store/h3f8rn6wwanph9m3rc1gl0lldbr57w3l-gcc-10.3.0/bin:/nix/store/d32ym7m2p7lfb6gsghq1dhi61f694k0f-glibc-2.32-46-bin/bin:/nix/store/0vkw1m51q34dr64z5i87dy99an4hfmyg-coreutils-8.32/bin:/nix/store/pd21dgf1vdpxbfx7ilbwb8hs9l3wd6xd-binutils-wrapper-2.35.1/bin:/nix/store/77i6h1kjpdww9zzpvkmgyym2mz65yff1-binutils-2.35.1/bin:/nix/store/hvbf1wk66pbvps49rq2lf1lmx9aff2sl-go-1.16.5/bin:/nix/store/y61b17l51rnwv450yl1gamhbc5xwkxcy-gofumpt-0.1.1/bin:/nix/store/0vkw1m51q34dr64z5i87dy99an4hfmyg-coreutils-8.32/bin:/nix/store/j1pkn9109012wwi992xnfj53razgbdvm-findutils-4.7.0/bin:/nix/store/frf2p5qmgs88f3c77j3zs92rpylxh84w-diffutils-3.7/bin:/nix/store/s7crpcbda751bx87jyrf989ln8l6vbg3-gnused-4.8/bin:/nix/store/0i6vphc3vnr8mg0gxjr61564hnp0s2md-gnugrep-3.6/bin:/nix/store/yihw9g7f4b1qcvblj3kr03jfy1nj3kq1-gawk-5.1.0/bin:/nix/store/rc34ffh62g42vavbsiw5aididd1dmwl4-gnutar-1.34/bin:/nix/store/9hxb506q8285gckhdacr72qx3zlkxrl6-gzip-1.10/bin:/nix/store/wqgk4p3hch2mz8yl7giy4dm0yk3n89gf-bzip2-1.0.6.0.2-bin/bin:/nix/store/g2fna66r9m081w1h1zj857j06jigx6cq-gnumake-4.3/bin:/nix/store/a4yw1svqqk4d8lhwinn9xp847zz9gfma-bash-4.4-p23/bin:/nix/store/8gglmz7sf4l587n38vh3z7y8h8lflaa3-patch-2.7.6/bin:/nix/store/4h03bnxv1c21yzl4vff0z8h2gh55k07y-xz-5.2.5-bin/bin';export CXX=$'g++';export LD=$'ld';export AR=$'ar';export NIX_CFLAGS_COMPILE=$' -frandom-seed=9iy857dq3k -isystem /nix/store/66fbv9mmx1j4hrn9y06kcp73c3yb196r-python3-3.8.9/include -isystem /nix/store/66fbv9mmx1j4hrn9y06kcp73c3yb196r-python3-3.8.9/include';export $'configureFlags'='';export $'doCheck'='';export OBJCOPY=$'objcopy';export NIX_BUILD_CORES=8;export _PYTHON_HOST_PLATFORM=$'linux-x86_64';export DISPLAY=$':0';export USER=$'qaristote';export SSL_CERT_FILE=$'/no-cert-file.crt';export TERM=$'dumb';export $'outputs'=$'out';export TMPDIR=$'/run/user/1000';export NIX_BINTOOLS=$'/nix/store/pd21dgf1vdpxbfx7ilbwb8hs9l3wd6xd-binutils-wrapper-2.35.1';export $'NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export HOST_PATH=$'/nix/store/hvbf1wk66pbvps49rq2lf1lmx9aff2sl-go-1.16.5/bin:/nix/store/y61b17l51rnwv450yl1gamhbc5xwkxcy-gofumpt-0.1.1/bin:/nix/store/0vkw1m51q34dr64z5i87dy99an4hfmyg-coreutils-8.32/bin:/nix/store/j1pkn9109012wwi992xnfj53razgbdvm-findutils-4.7.0/bin:/nix/store/frf2p5qmgs88f3c77j3zs92rpylxh84w-diffutils-3.7/bin:/nix/store/s7crpcbda751bx87jyrf989ln8l6vbg3-gnused-4.8/bin:/nix/store/0i6vphc3vnr8mg0gxjr61564hnp0s2md-gnugrep-3.6/bin:/nix/store/yihw9g7f4b1qcvblj3kr03jfy1nj3kq1-gawk-5.1.0/bin:/nix/store/rc34ffh62g42vavbsiw5aididd1dmwl4-gnutar-1.34/bin:/nix/store/9hxb506q8285gckhdacr72qx3zlkxrl6-gzip-1.10/bin:/nix/store/wqgk4p3hch2mz8yl7giy4dm0yk3n89gf-bzip2-1.0.6.0.2-bin/bin:/nix/store/g2fna66r9m081w1h1zj857j06jigx6cq-gnumake-4.3/bin:/nix/store/a4yw1svqqk4d8lhwinn9xp847zz9gfma-bash-4.4-p23/bin:/nix/store/8gglmz7sf4l587n38vh3z7y8h8lflaa3-patch-2.7.6/bin:/nix/store/4h03bnxv1c21yzl4vff0z8h2gh55k07y-xz-5.2.5-bin/bin';export $'builder'=$'/nix/store/a4yw1svqqk4d8lhwinn9xp847zz9gfma-bash-4.4-p23/bin/bash';export $'depsTargetTarget'='';export NIX_ENFORCE_NO_NATIVE=1;export $'depsTargetTargetPropagated'='';export NIX_SSL_CERT_FILE=$'/no-cert-file.crt';export PYTHONPATH=$'/nix/store/h92k7hcwbbnkslr72v80xcfjnykwdqml-python3.8-nix-prefetch-github-4.0.3/lib/python3.8/site-packages:/nix/store/d48frzb4hhm96c5ghjnmk4l47hz84vrc-python3.8-attrs-20.3.0/lib/python3.8/site-packages:/nix/store/66fbv9mmx1j4hrn9y06kcp73c3yb196r-python3-3.8.9/lib/python3.8/site-packages:/nix/store/9sw60i0739x51sxl95bj57f226jpbgkx-python3.8-click-7.1.2/lib/python3.8/site-packages:/nix/store/72a9av5jg24pas1i3fiblfgv8lkyvf5k-python3.8-effect-1.1.0/lib/python3.8/site-packages:/nix/store/14sil57w425v7ncx8jk9rwb1zz7ix204-python3.8-six-1.15.0/lib/python3.8/site-packages';export NIX_BUILD_TOP=$'/run/user/1000';export SIZE=$'size';export CONFIG_SHELL=$'/nix/store/a4yw1svqqk4d8lhwinn9xp847zz9gfma-bash-4.4-p23/bin/bash';export $'NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export OBJDUMP=$'objdump';export $'depsBuildTargetPropagated'='';export XDG_DATA_DIRS=$'/nix/store/vwjjqgfg9gd4l0zb8h2p0zgpj2w3p4cd-nixfmt-0.4.0/share:/nix/store/66fbv9mmx1j4hrn9y06kcp73c3yb196r-python3-3.8.9/share:/nix/store/nn70k5w99m6y59ldxlnb1x6j4q8bbjbq-patchelf-0.12/share';export NIX_CC=$'/nix/store/35pnk5kwi26m3ph2bc7dxwjnavpzl8cn-gcc-wrapper-10.3.0';export $'depsBuildBuildPropagated'='';export NIX_HARDENING_ENABLE=$'fortify stackprotector pic strictoverflow format relro bindnow';export RANLIB=$'ranlib';export AS=$'as';export CC=$'gcc';export READELF=$'readelf';export PYTHONNOUSERSITE=1;export TMP=$'/run/user/1000';export $'propagatedNativeBuildInputs'='';export $'name'=$'nix-shell';export __ETC_PROFILE_SOURCED=1;export PAGER=$'less -R';export $'depsBuildTarget'='';export $'nobuildPhase'=$'echo\necho "This derivation is not meant to be built, aborting";\necho\nexit 1\n';export PYTHONHASHSEED=0;export SHLVL=3;export $'patches'='';export $'depsHostHost'='';export STRIP=$'strip';export IN_NIX_SHELL=$'pure';export SHELL=$'/nix/store/fgbzvd4c6nly9m4dpczrxybdpkm8mnk3-bash-interactive-4.4-p23/bin/bash';export TEMPDIR=$'/run/user/1000';export NIX_LDFLAGS=$'-rpath /nix/store/9iy857dq3k15ic4097acb5h47dg27vjf-nix-shell/lib64 -rpath /nix/store/9iy857dq3k15ic4097acb5h47dg27vjf-nix-shell/lib -L/nix/store/66fbv9mmx1j4hrn9y06kcp73c3yb196r-python3-3.8.9/lib -L/nix/store/66fbv9mmx1j4hrn9y06kcp73c3yb196r-python3-3.8.9/lib';export SOURCE_DATE_EPOCH=315532800;export LOGNAME=$'qaristote';export _PYTHON_SYSCONFIGDATA_NAME=$'_sysconfigdata__linux_x86_64-linux-gnu';export $'doInstallCheck'='';export NM=$'nm';export $'depsHostHostPropagated'='';export $'out'=$'/nix/store/9iy857dq3k15ic4097acb5h47dg27vjf-nix-shell';export $'phases'=$'nobuildPhase';export $'strictDeps'='';export $'exitHook'=''; diff --git a/home/config/i3/bar/.direnv/cache-pre297476.1905f5f2e55 b/home/config/i3/bar/.direnv/cache-pre297476.1905f5f2e55 new file mode 100644 index 0000000..00e450f --- /dev/null +++ b/home/config/i3/bar/.direnv/cache-pre297476.1905f5f2e55 @@ -0,0 +1 @@ +export CONFIG_SHELL=$'/nix/store/kxj6cblcsd1qcbbxlmbswwrn89zcmgd6-bash-4.4-p23/bin/bash';export PYTHONNOUSERSITE=1;export SSL_CERT_FILE=$'/no-cert-file.crt';export CXX=$'g++';export $'depsBuildBuildPropagated'='';export $'stdenv'=$'/nix/store/4dlhsl4kxp9p632mbv1rcq9kjc0y6zdy-stdenv-linux';export HOME=$'/home/qaristote';export $'strictDeps'='';export AR=$'ar';export HOST_PATH=$'/nix/store/ybmznqd9958gmksnwfdqnvzax0il5hxz-go-1.16.5/bin:/nix/store/9dak6bqcaxi0n1gim4r0a243032w10q8-gofumpt-0.1.1/bin:/nix/store/a4v1akahda85rl9gfphb07zzw79z8pb1-coreutils-8.32/bin:/nix/store/1hvm45djn8wkfg64gbmlqpfj4dnjh594-findutils-4.7.0/bin:/nix/store/gja14nhwl1dh0nrmsx0rljfvp0pcnsj3-diffutils-3.7/bin:/nix/store/g34ldykl1cal5b9ir3xinnq70m52fcnq-gnused-4.8/bin:/nix/store/7n3yzh9wza4bdqc04v01xddnfhkrwk2a-gnugrep-3.6/bin:/nix/store/vqwk0h76mrpnckxcn30hlvansds8jvm1-gawk-5.1.0/bin:/nix/store/hlmzk7zf3xp54dgf6kmk0qg13wc9ma8j-gnutar-1.34/bin:/nix/store/rah6k4r1qxa0qs1626d20cp5620da4xd-gzip-1.10/bin:/nix/store/d37nqclglccygk9plqxpmy1asqj12qiv-bzip2-1.0.6.0.2-bin/bin:/nix/store/lxmh13cqvd2kwc3qbmnjknvynw6lc2si-gnumake-4.3/bin:/nix/store/kxj6cblcsd1qcbbxlmbswwrn89zcmgd6-bash-4.4-p23/bin:/nix/store/gqgbksw2s4vngrpyj3dnwyr9nsk0z441-patch-2.7.6/bin:/nix/store/dcma4ddpkl1b8s3rn1pr4phpd41cy2aw-xz-5.2.5-bin/bin';export __ETC_PROFILE_SOURCED=1;export OBJCOPY=$'objcopy';export NIX_CFLAGS_COMPILE=$' -frandom-seed=yc3fnqn6hp -isystem /nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/include -isystem /nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/include';export $'shell'=$'/nix/store/kxj6cblcsd1qcbbxlmbswwrn89zcmgd6-bash-4.4-p23/bin/bash';export XDG_DATA_DIRS=$'/nix/store/f9jz71i2fbnvda096jjasgl7aisc0ki7-nixfmt-0.4.0/share:/nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/share:/nix/store/yayg9xvxq3f8avpvw81p7a45zqadpgvb-patchelf-0.12/share';export OBJDUMP=$'objdump';export NIX_CC=$'/nix/store/gg2rq3hrl3rf92nq6dnqhdyyxaa89aqf-gcc-wrapper-10.3.0';export NIX_LDFLAGS=$'-rpath /nix/store/yc3fnqn6hp9lk0dnc00l4mp23xbcpr1q-nix-shell/lib64 -rpath /nix/store/yc3fnqn6hp9lk0dnc00l4mp23xbcpr1q-nix-shell/lib -L/nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/lib -L/nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/lib';export $'NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export _=$'/nix/store/mcmpbrvgv16x1lmnnd2w3a4fplyxxykl-direnv-2.28.0/bin/direnv';export $'depsBuildTarget'='';export $'nobuildPhase'=$'echo\necho "This derivation is not meant to be built, aborting";\necho\nexit 1\n';export $'depsBuildBuild'='';export $'doCheck'='';export SHLVL=3;export _PYTHON_HOST_PLATFORM=$'linux-x86_64';export DISPLAY=$':0';export _PYTHON_SYSCONFIGDATA_NAME=$'_sysconfigdata__linux_x86_64-linux-gnu';export NIX_STORE=$'/nix/store';export NIX_BINTOOLS=$'/nix/store/wp3f8kbdaw6hm6k40yp0cpxnvs6dqqk9-binutils-wrapper-2.35.1';export $'nativeBuildInputs'=$'/nix/store/f9jz71i2fbnvda096jjasgl7aisc0ki7-nixfmt-0.4.0 /nix/store/5r6n1h4pwwr9dpnx6jgmmlx07f403nq3-nix-prefetch-scripts /nix/store/v7zha1cmv3rmi6j6b7s6ys630pcax62s-python3.8-nix-prefetch-github-4.0.3';export SIZE=$'size';export READELF=$'readelf';export PYTHONHASHSEED=0;export $'shellHook'='';export $'phases'=$'nobuildPhase';export RANLIB=$'ranlib';export $'buildInputs'=$'/nix/store/ybmznqd9958gmksnwfdqnvzax0il5hxz-go-1.16.5 /nix/store/9dak6bqcaxi0n1gim4r0a243032w10q8-gofumpt-0.1.1';export NM=$'nm';export $'configureFlags'='';export IN_NIX_SHELL=$'pure';export $'depsHostHostPropagated'='';export $'propagatedBuildInputs'='';export $'builder'=$'/nix/store/kxj6cblcsd1qcbbxlmbswwrn89zcmgd6-bash-4.4-p23/bin/bash';export $'NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export NIX_ENFORCE_NO_NATIVE=1;export $'outputs'=$'out';export SHELL=$'/nix/store/ca5hi4m78vhqarchh9p71pl98lbpbh2f-bash-interactive-4.4-p23/bin/bash';export NIX_HARDENING_ENABLE=$'fortify stackprotector pic strictoverflow format relro bindnow';export NIX_SSL_CERT_FILE=$'/no-cert-file.crt';export TERM=$'dumb';export PYTHONPATH=$'/nix/store/v7zha1cmv3rmi6j6b7s6ys630pcax62s-python3.8-nix-prefetch-github-4.0.3/lib/python3.8/site-packages:/nix/store/ff7sb12wm61577n681rfsq43vhb56s91-python3.8-attrs-20.3.0/lib/python3.8/site-packages:/nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/lib/python3.8/site-packages:/nix/store/2hdbkrisr351wry8cgh791kdx9mp11z5-python3.8-click-7.1.2/lib/python3.8/site-packages:/nix/store/qxrjjv7i4w6s1iivxblzqwjw2c2pa0l8-python3.8-effect-1.1.0/lib/python3.8/site-packages:/nix/store/wb6630cfygi775rvy4r68l5clvlll0c5-python3.8-six-1.15.0/lib/python3.8/site-packages';export NIX_BUILD_CORES=8;export USER=$'qaristote';export PAGER=$'less -R';export STRIP=$'strip';export $'exitHook'='';export TMPDIR=$'/run/user/1000';export AS=$'as';export NIX_INDENT_MAKE=1;export $'depsTargetTargetPropagated'='';export DETERMINISTIC_BUILD=1;export $'doInstallCheck'='';export SOURCE_DATE_EPOCH=315532800;export $'out'=$'/nix/store/yc3fnqn6hp9lk0dnc00l4mp23xbcpr1q-nix-shell';export CC=$'gcc';export $'propagatedNativeBuildInputs'='';export $'depsTargetTarget'='';export $'system'=$'x86_64-linux';export LOGNAME=$'qaristote';export NIX_BUILD_TOP=$'/run/user/1000';export $'depsBuildTargetPropagated'='';export PATH=$'/nix/store/ca5hi4m78vhqarchh9p71pl98lbpbh2f-bash-interactive-4.4-p23/bin:/nix/store/f9jz71i2fbnvda096jjasgl7aisc0ki7-nixfmt-0.4.0/bin:/nix/store/5r6n1h4pwwr9dpnx6jgmmlx07f403nq3-nix-prefetch-scripts/bin:/nix/store/v7zha1cmv3rmi6j6b7s6ys630pcax62s-python3.8-nix-prefetch-github-4.0.3/bin:/nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/bin:/nix/store/yayg9xvxq3f8avpvw81p7a45zqadpgvb-patchelf-0.12/bin:/nix/store/gg2rq3hrl3rf92nq6dnqhdyyxaa89aqf-gcc-wrapper-10.3.0/bin:/nix/store/cfkfpca5ymx2rf66k6f16sa3lb6ndgc2-gcc-10.3.0/bin:/nix/store/sf9gqfm6479kd3ysq3c9n9pp1ybr2cpv-glibc-2.32-46-bin/bin:/nix/store/a4v1akahda85rl9gfphb07zzw79z8pb1-coreutils-8.32/bin:/nix/store/wp3f8kbdaw6hm6k40yp0cpxnvs6dqqk9-binutils-wrapper-2.35.1/bin:/nix/store/qvc6cz5d43jhhm4a3r48xkrc82xh1s95-binutils-2.35.1/bin:/nix/store/ybmznqd9958gmksnwfdqnvzax0il5hxz-go-1.16.5/bin:/nix/store/9dak6bqcaxi0n1gim4r0a243032w10q8-gofumpt-0.1.1/bin:/nix/store/a4v1akahda85rl9gfphb07zzw79z8pb1-coreutils-8.32/bin:/nix/store/1hvm45djn8wkfg64gbmlqpfj4dnjh594-findutils-4.7.0/bin:/nix/store/gja14nhwl1dh0nrmsx0rljfvp0pcnsj3-diffutils-3.7/bin:/nix/store/g34ldykl1cal5b9ir3xinnq70m52fcnq-gnused-4.8/bin:/nix/store/7n3yzh9wza4bdqc04v01xddnfhkrwk2a-gnugrep-3.6/bin:/nix/store/vqwk0h76mrpnckxcn30hlvansds8jvm1-gawk-5.1.0/bin:/nix/store/hlmzk7zf3xp54dgf6kmk0qg13wc9ma8j-gnutar-1.34/bin:/nix/store/rah6k4r1qxa0qs1626d20cp5620da4xd-gzip-1.10/bin:/nix/store/d37nqclglccygk9plqxpmy1asqj12qiv-bzip2-1.0.6.0.2-bin/bin:/nix/store/lxmh13cqvd2kwc3qbmnjknvynw6lc2si-gnumake-4.3/bin:/nix/store/kxj6cblcsd1qcbbxlmbswwrn89zcmgd6-bash-4.4-p23/bin:/nix/store/gqgbksw2s4vngrpyj3dnwyr9nsk0z441-patch-2.7.6/bin:/nix/store/dcma4ddpkl1b8s3rn1pr4phpd41cy2aw-xz-5.2.5-bin/bin';export $'depsHostHost'='';export LD=$'ld';export $'patches'='';export TMP=$'/run/user/1000';export $'name'=$'nix-shell';export TEMPDIR=$'/run/user/1000';export TEMP=$'/run/user/1000';export STRINGS=$'strings'; diff --git a/home/config/i3/bar/.direnv/cache-pre297796.e1f8852faac b/home/config/i3/bar/.direnv/cache-pre297796.e1f8852faac new file mode 100644 index 0000000..87232a8 --- /dev/null +++ b/home/config/i3/bar/.direnv/cache-pre297796.e1f8852faac @@ -0,0 +1 @@ +export READELF=$'readelf';export AR=$'ar';export $'shellHook'='';export $'doInstallCheck'='';export CXX=$'g++';export STRINGS=$'strings';export _PYTHON_HOST_PLATFORM=$'linux-x86_64';export $'out'=$'/nix/store/yc3fnqn6hp9lk0dnc00l4mp23xbcpr1q-nix-shell';export CONFIG_SHELL=$'/nix/store/kxj6cblcsd1qcbbxlmbswwrn89zcmgd6-bash-4.4-p23/bin/bash';export XDG_DATA_DIRS=$'/nix/store/f9jz71i2fbnvda096jjasgl7aisc0ki7-nixfmt-0.4.0/share:/nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/share:/nix/store/yayg9xvxq3f8avpvw81p7a45zqadpgvb-patchelf-0.12/share';export DETERMINISTIC_BUILD=1;export TMPDIR=$'/run/user/1000';export $'depsHostHostPropagated'='';export TEMPDIR=$'/run/user/1000';export SIZE=$'size';export PAGER=$'less -R';export TMP=$'/run/user/1000';export NIX_CC=$'/nix/store/gg2rq3hrl3rf92nq6dnqhdyyxaa89aqf-gcc-wrapper-10.3.0';export NIX_LDFLAGS=$'-rpath /nix/store/yc3fnqn6hp9lk0dnc00l4mp23xbcpr1q-nix-shell/lib64 -rpath /nix/store/yc3fnqn6hp9lk0dnc00l4mp23xbcpr1q-nix-shell/lib -L/nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/lib -L/nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/lib';export NIX_SSL_CERT_FILE=$'/no-cert-file.crt';export $'depsBuildTargetPropagated'='';export $'depsBuildTarget'='';export $'nobuildPhase'=$'echo\necho "This derivation is not meant to be built, aborting";\necho\nexit 1\n';export $'buildInputs'=$'/nix/store/ybmznqd9958gmksnwfdqnvzax0il5hxz-go-1.16.5 /nix/store/9dak6bqcaxi0n1gim4r0a243032w10q8-gofumpt-0.1.1';export $'NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export AS=$'as';export NM=$'nm';export SHELL=$'/nix/store/ca5hi4m78vhqarchh9p71pl98lbpbh2f-bash-interactive-4.4-p23/bin/bash';export HOST_PATH=$'/nix/store/ybmznqd9958gmksnwfdqnvzax0il5hxz-go-1.16.5/bin:/nix/store/9dak6bqcaxi0n1gim4r0a243032w10q8-gofumpt-0.1.1/bin:/nix/store/a4v1akahda85rl9gfphb07zzw79z8pb1-coreutils-8.32/bin:/nix/store/1hvm45djn8wkfg64gbmlqpfj4dnjh594-findutils-4.7.0/bin:/nix/store/gja14nhwl1dh0nrmsx0rljfvp0pcnsj3-diffutils-3.7/bin:/nix/store/g34ldykl1cal5b9ir3xinnq70m52fcnq-gnused-4.8/bin:/nix/store/7n3yzh9wza4bdqc04v01xddnfhkrwk2a-gnugrep-3.6/bin:/nix/store/vqwk0h76mrpnckxcn30hlvansds8jvm1-gawk-5.1.0/bin:/nix/store/hlmzk7zf3xp54dgf6kmk0qg13wc9ma8j-gnutar-1.34/bin:/nix/store/rah6k4r1qxa0qs1626d20cp5620da4xd-gzip-1.10/bin:/nix/store/d37nqclglccygk9plqxpmy1asqj12qiv-bzip2-1.0.6.0.2-bin/bin:/nix/store/lxmh13cqvd2kwc3qbmnjknvynw6lc2si-gnumake-4.3/bin:/nix/store/kxj6cblcsd1qcbbxlmbswwrn89zcmgd6-bash-4.4-p23/bin:/nix/store/gqgbksw2s4vngrpyj3dnwyr9nsk0z441-patch-2.7.6/bin:/nix/store/dcma4ddpkl1b8s3rn1pr4phpd41cy2aw-xz-5.2.5-bin/bin';export $'propagatedBuildInputs'='';export $'doCheck'='';export $'shell'=$'/nix/store/kxj6cblcsd1qcbbxlmbswwrn89zcmgd6-bash-4.4-p23/bin/bash';export NIX_BUILD_TOP=$'/run/user/1000';export OBJCOPY=$'objcopy';export NIX_STORE=$'/nix/store';export NIX_INDENT_MAKE=1;export PATH=$'/nix/store/ca5hi4m78vhqarchh9p71pl98lbpbh2f-bash-interactive-4.4-p23/bin:/nix/store/f9jz71i2fbnvda096jjasgl7aisc0ki7-nixfmt-0.4.0/bin:/nix/store/5r6n1h4pwwr9dpnx6jgmmlx07f403nq3-nix-prefetch-scripts/bin:/nix/store/v7zha1cmv3rmi6j6b7s6ys630pcax62s-python3.8-nix-prefetch-github-4.0.3/bin:/nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/bin:/nix/store/yayg9xvxq3f8avpvw81p7a45zqadpgvb-patchelf-0.12/bin:/nix/store/gg2rq3hrl3rf92nq6dnqhdyyxaa89aqf-gcc-wrapper-10.3.0/bin:/nix/store/cfkfpca5ymx2rf66k6f16sa3lb6ndgc2-gcc-10.3.0/bin:/nix/store/sf9gqfm6479kd3ysq3c9n9pp1ybr2cpv-glibc-2.32-46-bin/bin:/nix/store/a4v1akahda85rl9gfphb07zzw79z8pb1-coreutils-8.32/bin:/nix/store/wp3f8kbdaw6hm6k40yp0cpxnvs6dqqk9-binutils-wrapper-2.35.1/bin:/nix/store/qvc6cz5d43jhhm4a3r48xkrc82xh1s95-binutils-2.35.1/bin:/nix/store/ybmznqd9958gmksnwfdqnvzax0il5hxz-go-1.16.5/bin:/nix/store/9dak6bqcaxi0n1gim4r0a243032w10q8-gofumpt-0.1.1/bin:/nix/store/a4v1akahda85rl9gfphb07zzw79z8pb1-coreutils-8.32/bin:/nix/store/1hvm45djn8wkfg64gbmlqpfj4dnjh594-findutils-4.7.0/bin:/nix/store/gja14nhwl1dh0nrmsx0rljfvp0pcnsj3-diffutils-3.7/bin:/nix/store/g34ldykl1cal5b9ir3xinnq70m52fcnq-gnused-4.8/bin:/nix/store/7n3yzh9wza4bdqc04v01xddnfhkrwk2a-gnugrep-3.6/bin:/nix/store/vqwk0h76mrpnckxcn30hlvansds8jvm1-gawk-5.1.0/bin:/nix/store/hlmzk7zf3xp54dgf6kmk0qg13wc9ma8j-gnutar-1.34/bin:/nix/store/rah6k4r1qxa0qs1626d20cp5620da4xd-gzip-1.10/bin:/nix/store/d37nqclglccygk9plqxpmy1asqj12qiv-bzip2-1.0.6.0.2-bin/bin:/nix/store/lxmh13cqvd2kwc3qbmnjknvynw6lc2si-gnumake-4.3/bin:/nix/store/kxj6cblcsd1qcbbxlmbswwrn89zcmgd6-bash-4.4-p23/bin:/nix/store/gqgbksw2s4vngrpyj3dnwyr9nsk0z441-patch-2.7.6/bin:/nix/store/dcma4ddpkl1b8s3rn1pr4phpd41cy2aw-xz-5.2.5-bin/bin';export $'depsTargetTargetPropagated'='';export RANLIB=$'ranlib';export NIX_BINTOOLS=$'/nix/store/wp3f8kbdaw6hm6k40yp0cpxnvs6dqqk9-binutils-wrapper-2.35.1';export $'configureFlags'='';export CC=$'gcc';export $'exitHook'='';export $'outputs'=$'out';export USER=$'qaristote';export $'phases'=$'nobuildPhase';export $'depsBuildBuildPropagated'='';export TERM=$'dumb';export __ETC_PROFILE_SOURCED=1;export $'propagatedNativeBuildInputs'='';export $'depsHostHost'='';export $'system'=$'x86_64-linux';export LOGNAME=$'qaristote';export OBJDUMP=$'objdump';export SSL_CERT_FILE=$'/no-cert-file.crt';export $'NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export PYTHONPATH=$'/nix/store/v7zha1cmv3rmi6j6b7s6ys630pcax62s-python3.8-nix-prefetch-github-4.0.3/lib/python3.8/site-packages:/nix/store/ff7sb12wm61577n681rfsq43vhb56s91-python3.8-attrs-20.3.0/lib/python3.8/site-packages:/nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/lib/python3.8/site-packages:/nix/store/2hdbkrisr351wry8cgh791kdx9mp11z5-python3.8-click-7.1.2/lib/python3.8/site-packages:/nix/store/qxrjjv7i4w6s1iivxblzqwjw2c2pa0l8-python3.8-effect-1.1.0/lib/python3.8/site-packages:/nix/store/wb6630cfygi775rvy4r68l5clvlll0c5-python3.8-six-1.15.0/lib/python3.8/site-packages';export TEMP=$'/run/user/1000';export _=$'/nix/store/mcmpbrvgv16x1lmnnd2w3a4fplyxxykl-direnv-2.28.0/bin/direnv';export _PYTHON_SYSCONFIGDATA_NAME=$'_sysconfigdata__linux_x86_64-linux-gnu';export HOME=$'/home/qaristote';export IN_NIX_SHELL=$'pure';export NIX_HARDENING_ENABLE=$'fortify stackprotector pic strictoverflow format relro bindnow';export $'patches'='';export DISPLAY=$':0';export STRIP=$'strip';export PYTHONNOUSERSITE=1;export $'strictDeps'='';export NIX_ENFORCE_NO_NATIVE=1;export $'name'=$'nix-shell';export SHLVL=3;export $'builder'=$'/nix/store/kxj6cblcsd1qcbbxlmbswwrn89zcmgd6-bash-4.4-p23/bin/bash';export PYTHONHASHSEED=0;export SOURCE_DATE_EPOCH=315532800;export $'nativeBuildInputs'=$'/nix/store/f9jz71i2fbnvda096jjasgl7aisc0ki7-nixfmt-0.4.0 /nix/store/5r6n1h4pwwr9dpnx6jgmmlx07f403nq3-nix-prefetch-scripts /nix/store/v7zha1cmv3rmi6j6b7s6ys630pcax62s-python3.8-nix-prefetch-github-4.0.3';export $'depsTargetTarget'='';export NIX_BUILD_CORES=8;export $'depsBuildBuild'='';export LD=$'ld';export $'stdenv'=$'/nix/store/4dlhsl4kxp9p632mbv1rcq9kjc0y6zdy-stdenv-linux';export NIX_CFLAGS_COMPILE=$' -frandom-seed=yc3fnqn6hp -isystem /nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/include -isystem /nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/include'; diff --git a/home/config/i3/bar/.direnv/cache-pre299942.09c38c29f2c b/home/config/i3/bar/.direnv/cache-pre299942.09c38c29f2c new file mode 100644 index 0000000..2e135d9 --- /dev/null +++ b/home/config/i3/bar/.direnv/cache-pre299942.09c38c29f2c @@ -0,0 +1 @@ +export CC=$'gcc';export XDG_DATA_DIRS=$'/nix/store/nxlj55zaqrgdi7i4424086k8yqk3r94i-nixfmt-0.4.0/share:/nix/store/2nhfiak8a30vw67mxksc2kdb69np2jcw-python3-3.8.9/share:/nix/store/b92bv871ikpy48w6fw01lz0x91hd2m2h-patchelf-0.12/share';export $'shell'=$'/nix/store/26a78ync552m8j4sbjavhvkmnqir8c9y-bash-4.4-p23/bin/bash';export NIX_BUILD_CORES=8;export _=$'/nix/store/bbxlj6k92wzv0122nibb3sqjvvplq6db-direnv-2.28.0/bin/direnv';export PATH=$'/nix/store/v0l9wrv33iz51kgkh1imgmrb2pqrllcj-bash-interactive-4.4-p23/bin:/nix/store/nxlj55zaqrgdi7i4424086k8yqk3r94i-nixfmt-0.4.0/bin:/nix/store/f02cwdpfr50z7gf1mfab9hazpgzw86rx-nix-prefetch-scripts/bin:/nix/store/qiq35p5clyklvmc9p5zjd1v2gri303g8-python3.8-nix-prefetch-github-4.0.3/bin:/nix/store/2nhfiak8a30vw67mxksc2kdb69np2jcw-python3-3.8.9/bin:/nix/store/b92bv871ikpy48w6fw01lz0x91hd2m2h-patchelf-0.12/bin:/nix/store/x0xd1vp2w7n38g0hzflzy8p6hyl0dwic-gcc-wrapper-10.3.0/bin:/nix/store/bqgh2vm981wscyqhvv0fyzdih52hwc7n-gcc-10.3.0/bin:/nix/store/z57kx5xkjigwbgdk8dg85yd58izf0dgr-glibc-2.32-48-bin/bin:/nix/store/203srbndvymk3pngvndmfcmprzk14333-coreutils-8.32/bin:/nix/store/isj4lw7csr8pcal9zal3sqw58a0brvi5-binutils-wrapper-2.35.1/bin:/nix/store/aigvlxh2aqjqd1wcnk1dr8cjml6dq846-binutils-2.35.1/bin:/nix/store/fkbrgzgj24qqjw5m0qdbcdfazwsy27qz-go-1.16.5/bin:/nix/store/a7v7qixcpfk0l2rf4kr85m4p179qhw71-gofumpt-0.1.1/bin:/nix/store/85wx85mgzl8vgxsaq327ybynq4vz2k14-lint-20201208-83fdc39/bin:/nix/store/203srbndvymk3pngvndmfcmprzk14333-coreutils-8.32/bin:/nix/store/al1x84ykihyf0yd6f1hh6llrlj7as23s-findutils-4.7.0/bin:/nix/store/1rz07gzbf4p2l1v0r6idag6gfncgblmy-diffutils-3.7/bin:/nix/store/fvyll1a0lxcny4jb817l9aqlsm2v371z-gnused-4.8/bin:/nix/store/1ismzpy211c3wlj7mg75mrkih9k0w5i1-gnugrep-3.6/bin:/nix/store/as093a69gbw9nsyd6y320hcim0z214dm-gawk-5.1.0/bin:/nix/store/ndzg51fshjcbzrd9mpm56ccv6nykaf16-gnutar-1.34/bin:/nix/store/03mk28nb2iplxs68cvjnnk9jmbigzaja-gzip-1.10/bin:/nix/store/1qcbk59wdmzv6w64i9lkasnk9f11knx0-bzip2-1.0.6.0.2-bin/bin:/nix/store/qwxz3m0xpqk9sjdgcpzjwbnzi911q5jp-gnumake-4.3/bin:/nix/store/26a78ync552m8j4sbjavhvkmnqir8c9y-bash-4.4-p23/bin:/nix/store/ba9vnjihlsqibrirx0jh10pjv1k6y2rn-patch-2.7.6/bin:/nix/store/i21d0gvqylil237bwbxxywi938yhh77a-xz-5.2.5-bin/bin';export $'builder'=$'/nix/store/26a78ync552m8j4sbjavhvkmnqir8c9y-bash-4.4-p23/bin/bash';export $'phases'=$'nobuildPhase';export SSL_CERT_FILE=$'/no-cert-file.crt';export $'depsHostHostPropagated'='';export PYTHONPATH=$'/nix/store/qiq35p5clyklvmc9p5zjd1v2gri303g8-python3.8-nix-prefetch-github-4.0.3/lib/python3.8/site-packages:/nix/store/ljfa8djbj86q380s51dp1iwwg06mgnvg-python3.8-attrs-21.2.0/lib/python3.8/site-packages:/nix/store/2nhfiak8a30vw67mxksc2kdb69np2jcw-python3-3.8.9/lib/python3.8/site-packages:/nix/store/s6a73ssai10wpz50nnk2cy3k48wydl05-python3.8-click-8.0.1/lib/python3.8/site-packages:/nix/store/xxc64zrd1kai8ligsq29ppm6vpv172ac-python3.8-effect-1.1.0/lib/python3.8/site-packages:/nix/store/zn4haxpv5j9ilccvw7vxxwbfb84vhl5i-python3.8-six-1.16.0/lib/python3.8/site-packages';export $'depsTargetTarget'='';export HOME=$'/home/qaristote';export NIX_INDENT_MAKE=1;export NIX_BUILD_TOP=$'/run/user/1000';export __ETC_PROFILE_SOURCED=1;export $'buildInputs'=$'/nix/store/fkbrgzgj24qqjw5m0qdbcdfazwsy27qz-go-1.16.5 /nix/store/a7v7qixcpfk0l2rf4kr85m4p179qhw71-gofumpt-0.1.1 /nix/store/85wx85mgzl8vgxsaq327ybynq4vz2k14-lint-20201208-83fdc39';export $'depsBuildBuild'='';export SHLVL=3;export $'patches'='';export HOST_PATH=$'/nix/store/fkbrgzgj24qqjw5m0qdbcdfazwsy27qz-go-1.16.5/bin:/nix/store/a7v7qixcpfk0l2rf4kr85m4p179qhw71-gofumpt-0.1.1/bin:/nix/store/85wx85mgzl8vgxsaq327ybynq4vz2k14-lint-20201208-83fdc39/bin:/nix/store/203srbndvymk3pngvndmfcmprzk14333-coreutils-8.32/bin:/nix/store/al1x84ykihyf0yd6f1hh6llrlj7as23s-findutils-4.7.0/bin:/nix/store/1rz07gzbf4p2l1v0r6idag6gfncgblmy-diffutils-3.7/bin:/nix/store/fvyll1a0lxcny4jb817l9aqlsm2v371z-gnused-4.8/bin:/nix/store/1ismzpy211c3wlj7mg75mrkih9k0w5i1-gnugrep-3.6/bin:/nix/store/as093a69gbw9nsyd6y320hcim0z214dm-gawk-5.1.0/bin:/nix/store/ndzg51fshjcbzrd9mpm56ccv6nykaf16-gnutar-1.34/bin:/nix/store/03mk28nb2iplxs68cvjnnk9jmbigzaja-gzip-1.10/bin:/nix/store/1qcbk59wdmzv6w64i9lkasnk9f11knx0-bzip2-1.0.6.0.2-bin/bin:/nix/store/qwxz3m0xpqk9sjdgcpzjwbnzi911q5jp-gnumake-4.3/bin:/nix/store/26a78ync552m8j4sbjavhvkmnqir8c9y-bash-4.4-p23/bin:/nix/store/ba9vnjihlsqibrirx0jh10pjv1k6y2rn-patch-2.7.6/bin:/nix/store/i21d0gvqylil237bwbxxywi938yhh77a-xz-5.2.5-bin/bin';export $'propagatedBuildInputs'='';export _PYTHON_SYSCONFIGDATA_NAME=$'_sysconfigdata__linux_x86_64-linux-gnu';export AS=$'as';export NIX_STORE=$'/nix/store';export PAGER=$'less -R';export $'shellHook'='';export NIX_CC=$'/nix/store/x0xd1vp2w7n38g0hzflzy8p6hyl0dwic-gcc-wrapper-10.3.0';export NIX_HARDENING_ENABLE=$'fortify stackprotector pic strictoverflow format relro bindnow';export SIZE=$'size';export NIX_LDFLAGS=$'-rpath /nix/store/ardmbx92k2r6x5dbs0ginzx2xf1cvygv-nix-shell/lib64 -rpath /nix/store/ardmbx92k2r6x5dbs0ginzx2xf1cvygv-nix-shell/lib -L/nix/store/2nhfiak8a30vw67mxksc2kdb69np2jcw-python3-3.8.9/lib -L/nix/store/2nhfiak8a30vw67mxksc2kdb69np2jcw-python3-3.8.9/lib';export $'depsBuildTargetPropagated'='';export CONFIG_SHELL=$'/nix/store/26a78ync552m8j4sbjavhvkmnqir8c9y-bash-4.4-p23/bin/bash';export STRIP=$'strip';export $'strictDeps'='';export TMPDIR=$'/run/user/1000';export $'depsBuildBuildPropagated'='';export DISPLAY=$':0';export NIX_CFLAGS_COMPILE=$' -frandom-seed=ardmbx92k2 -isystem /nix/store/2nhfiak8a30vw67mxksc2kdb69np2jcw-python3-3.8.9/include -isystem /nix/store/2nhfiak8a30vw67mxksc2kdb69np2jcw-python3-3.8.9/include';export NM=$'nm';export $'stdenv'=$'/nix/store/dj40kjgp5lhs55v4hc47vyrarhq4qycz-stdenv-linux';export OBJCOPY=$'objcopy';export $'system'=$'x86_64-linux';export $'doCheck'='';export IN_NIX_SHELL=$'pure';export $'name'=$'nix-shell';export NIX_BINTOOLS=$'/nix/store/isj4lw7csr8pcal9zal3sqw58a0brvi5-binutils-wrapper-2.35.1';export _PYTHON_HOST_PLATFORM=$'linux-x86_64';export $'out'=$'/nix/store/ardmbx92k2r6x5dbs0ginzx2xf1cvygv-nix-shell';export CXX=$'g++';export NIX_SSL_CERT_FILE=$'/no-cert-file.crt';export $'nativeBuildInputs'=$'/nix/store/nxlj55zaqrgdi7i4424086k8yqk3r94i-nixfmt-0.4.0 /nix/store/f02cwdpfr50z7gf1mfab9hazpgzw86rx-nix-prefetch-scripts /nix/store/qiq35p5clyklvmc9p5zjd1v2gri303g8-python3.8-nix-prefetch-github-4.0.3';export NIX_ENFORCE_NO_NATIVE=1;export $'doInstallCheck'='';export SHELL=$'/nix/store/v0l9wrv33iz51kgkh1imgmrb2pqrllcj-bash-interactive-4.4-p23/bin/bash';export TERM=$'dumb';export TEMP=$'/run/user/1000';export DETERMINISTIC_BUILD=1;export $'NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export $'depsHostHost'='';export READELF=$'readelf';export USER=$'qaristote';export PYTHONHASHSEED=0;export $'nobuildPhase'=$'echo\necho "This derivation is not meant to be built, aborting";\necho\nexit 1\n';export $'exitHook'='';export LD=$'ld';export $'depsBuildTarget'='';export SOURCE_DATE_EPOCH=315532800;export $'depsTargetTargetPropagated'='';export TMP=$'/run/user/1000';export AR=$'ar';export $'outputs'=$'out';export $'configureFlags'='';export STRINGS=$'strings';export TEMPDIR=$'/run/user/1000';export LOGNAME=$'qaristote';export $'NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export $'propagatedNativeBuildInputs'='';export PYTHONNOUSERSITE=1;export RANLIB=$'ranlib';export OBJDUMP=$'objdump'; diff --git a/home/config/i3/bar/.direnv/cache-pre301044.87807e64a5e b/home/config/i3/bar/.direnv/cache-pre301044.87807e64a5e new file mode 100644 index 0000000..bec6b7d --- /dev/null +++ b/home/config/i3/bar/.direnv/cache-pre301044.87807e64a5e @@ -0,0 +1 @@ +export STRINGS=$'strings';export NIX_BUILD_TOP=$'/run/user/1000';export TEMP=$'/run/user/1000';export RANLIB=$'ranlib';export NM=$'nm';export CXX=$'g++';export NIX_BUILD_CORES=8;export NIX_CFLAGS_COMPILE=$' -frandom-seed=9rj4znix06 -isystem /nix/store/6cfajs6lsy9b4wxp3jvyyl1g5x2pjmpr-python3-3.8.9/include -isystem /nix/store/6cfajs6lsy9b4wxp3jvyyl1g5x2pjmpr-python3-3.8.9/include';export $'configureFlags'='';export $'doInstallCheck'='';export NIX_BINTOOLS=$'/nix/store/1xmid45vayj917km02cvkwq5054mz2ms-binutils-wrapper-2.35.1';export $'out'=$'/nix/store/9rj4znix06vkxijjk3gmymgj02bnf0hc-nix-shell';export CONFIG_SHELL=$'/nix/store/x0dcb2rxlzf32g0ddfkqqz1sfcyx4yay-bash-4.4-p23/bin/bash';export CC=$'gcc';export NIX_CC=$'/nix/store/fdy0bnh3x01rysv3cig42wq3sfcqf0zz-gcc-wrapper-10.3.0';export TERM=$'dumb';export $'NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export NIX_INDENT_MAKE=1;export TEMPDIR=$'/run/user/1000';export NIX_HARDENING_ENABLE=$'fortify stackprotector pic strictoverflow format relro bindnow';export $'nativeBuildInputs'=$'/nix/store/kmqcnqjyn1xy7nrkpwl7x7ljmhpa5mv0-nixfmt-0.4.0 /nix/store/4mmwbprakwrpn9z3vy978mlirk5c1as7-nix-prefetch-scripts /nix/store/wnc91hqwppjdcj1vghf9ga4wsm2c92ls-python3.8-nix-prefetch-github-4.0.3';export IN_NIX_SHELL=$'pure';export NIX_SSL_CERT_FILE=$'/no-cert-file.crt';export PYTHONPATH=$'/nix/store/wnc91hqwppjdcj1vghf9ga4wsm2c92ls-python3.8-nix-prefetch-github-4.0.3/lib/python3.8/site-packages:/nix/store/53adfplcaykyzcgd2rrgpwaaqhq4b43x-python3.8-attrs-21.2.0/lib/python3.8/site-packages:/nix/store/6cfajs6lsy9b4wxp3jvyyl1g5x2pjmpr-python3-3.8.9/lib/python3.8/site-packages:/nix/store/wj2z6qly1qjhw2fjliyxk12vb45i873x-python3.8-click-8.0.1/lib/python3.8/site-packages:/nix/store/vv3cs0wmvv6ryzri9d7q4r2cwd5g4sx1-python3.8-effect-1.1.0/lib/python3.8/site-packages:/nix/store/hllx5h4hsrk6v0lcgnvibg7vfi5xkxmb-python3.8-six-1.16.0/lib/python3.8/site-packages';export $'depsHostHost'='';export __ETC_PROFILE_SOURCED=1;export $'depsTargetTarget'='';export $'phases'=$'nobuildPhase';export $'depsBuildBuild'='';export TMPDIR=$'/run/user/1000';export $'doCheck'='';export $'depsHostHostPropagated'='';export $'shell'=$'/nix/store/x0dcb2rxlzf32g0ddfkqqz1sfcyx4yay-bash-4.4-p23/bin/bash';export $'buildInputs'=$'/nix/store/fjjvisp7bgz27v7xr1kf6a6rqb0cpajg-go-1.16.5 /nix/store/vfjxl8m18c24v8v3jzr3mqsmnpb7n2p7-gofumpt-0.1.1 /nix/store/yqsnpg1b6sp6hmkpmkvyxmmgyij3bc8s-lint-20201208-83fdc39';export STRIP=$'strip';export $'depsBuildTarget'='';export HOME=$'/home/qaristote';export _=$'/nix/store/x5y8paz3gvz6pk6y9q2w0i5n02d0hkld-direnv-2.28.0/bin/direnv';export SIZE=$'size';export PYTHONHASHSEED=0;export _PYTHON_SYSCONFIGDATA_NAME=$'_sysconfigdata__linux_x86_64-linux-gnu';export SHELL=$'/nix/store/xmxgxig6zxrixicc7905ssgb4yc3lysa-bash-interactive-4.4-p23/bin/bash';export SHLVL=3;export XDG_DATA_DIRS=$'/nix/store/kmqcnqjyn1xy7nrkpwl7x7ljmhpa5mv0-nixfmt-0.4.0/share:/nix/store/6cfajs6lsy9b4wxp3jvyyl1g5x2pjmpr-python3-3.8.9/share:/nix/store/3ifl0pag31nkcgwna9mrlw23d9pb4g6j-patchelf-0.12/share';export $'outputs'=$'out';export READELF=$'readelf';export USER=$'qaristote';export $'NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export $'propagatedNativeBuildInputs'='';export $'nobuildPhase'=$'echo\necho "This derivation is not meant to be built, aborting";\necho\nexit 1\n';export NIX_LDFLAGS=$'-rpath /nix/store/9rj4znix06vkxijjk3gmymgj02bnf0hc-nix-shell/lib64 -rpath /nix/store/9rj4znix06vkxijjk3gmymgj02bnf0hc-nix-shell/lib -L/nix/store/6cfajs6lsy9b4wxp3jvyyl1g5x2pjmpr-python3-3.8.9/lib -L/nix/store/6cfajs6lsy9b4wxp3jvyyl1g5x2pjmpr-python3-3.8.9/lib';export $'stdenv'=$'/nix/store/qdf49mvm79r83n9c9s7pkmmjqwhrw8jv-stdenv-linux';export $'builder'=$'/nix/store/x0dcb2rxlzf32g0ddfkqqz1sfcyx4yay-bash-4.4-p23/bin/bash';export PAGER=$'less -R';export OBJCOPY=$'objcopy';export $'exitHook'='';export AR=$'ar';export DISPLAY=$':0';export TMP=$'/run/user/1000';export SSL_CERT_FILE=$'/no-cert-file.crt';export LD=$'ld';export $'patches'='';export $'depsTargetTargetPropagated'='';export PYTHONNOUSERSITE=1;export $'shellHook'='';export LOGNAME=$'qaristote';export PATH=$'/nix/store/xmxgxig6zxrixicc7905ssgb4yc3lysa-bash-interactive-4.4-p23/bin:/nix/store/kmqcnqjyn1xy7nrkpwl7x7ljmhpa5mv0-nixfmt-0.4.0/bin:/nix/store/4mmwbprakwrpn9z3vy978mlirk5c1as7-nix-prefetch-scripts/bin:/nix/store/wnc91hqwppjdcj1vghf9ga4wsm2c92ls-python3.8-nix-prefetch-github-4.0.3/bin:/nix/store/6cfajs6lsy9b4wxp3jvyyl1g5x2pjmpr-python3-3.8.9/bin:/nix/store/3ifl0pag31nkcgwna9mrlw23d9pb4g6j-patchelf-0.12/bin:/nix/store/fdy0bnh3x01rysv3cig42wq3sfcqf0zz-gcc-wrapper-10.3.0/bin:/nix/store/f10dpikqnzqndzigrgwmvszsdlpv3f9i-gcc-10.3.0/bin:/nix/store/sj841q2yidqzfyqjpsbwmhq0jqisssda-glibc-2.32-48-bin/bin:/nix/store/937f5738d2frws07ixcpg5ip176pfss1-coreutils-8.32/bin:/nix/store/1xmid45vayj917km02cvkwq5054mz2ms-binutils-wrapper-2.35.1/bin:/nix/store/scs241fp7dlrvm45d2fjbpjvygirn0ml-binutils-2.35.1/bin:/nix/store/fjjvisp7bgz27v7xr1kf6a6rqb0cpajg-go-1.16.5/bin:/nix/store/vfjxl8m18c24v8v3jzr3mqsmnpb7n2p7-gofumpt-0.1.1/bin:/nix/store/yqsnpg1b6sp6hmkpmkvyxmmgyij3bc8s-lint-20201208-83fdc39/bin:/nix/store/937f5738d2frws07ixcpg5ip176pfss1-coreutils-8.32/bin:/nix/store/aa4zln9ih27zqf5mncdaxq1sp89wps40-findutils-4.7.0/bin:/nix/store/bizkvxwm3972081hvjfgirf9w7v5nqkr-diffutils-3.7/bin:/nix/store/klwhsp6f58mqkil6aq59zcj4k7zgcqix-gnused-4.8/bin:/nix/store/aggfj36xik83sf1hp8rsfsxxdilxpz9m-gnugrep-3.6/bin:/nix/store/bm4284zs7ln7vdzfipdhn9bkfqvc5rir-gawk-5.1.0/bin:/nix/store/xy5g28kzmgr4ld8g4dxx6lz9cfanx8l7-gnutar-1.34/bin:/nix/store/p299gw4f0i2kzxs7rdq5lscj42401wkh-gzip-1.10/bin:/nix/store/jggvqk1xsvsbr017kd19qdp04mmgk2wv-bzip2-1.0.6.0.2-bin/bin:/nix/store/2bij00cvzv64arnb0gpz8qrf9m47vmh7-gnumake-4.3/bin:/nix/store/x0dcb2rxlzf32g0ddfkqqz1sfcyx4yay-bash-4.4-p23/bin:/nix/store/4vi49x50b59phjnl4rq4n1sxs0z8g8dc-patch-2.7.6/bin:/nix/store/mzwh5p2nypwpxsqxd0dcl4g67fav3g50-xz-5.2.5-bin/bin';export HOST_PATH=$'/nix/store/fjjvisp7bgz27v7xr1kf6a6rqb0cpajg-go-1.16.5/bin:/nix/store/vfjxl8m18c24v8v3jzr3mqsmnpb7n2p7-gofumpt-0.1.1/bin:/nix/store/yqsnpg1b6sp6hmkpmkvyxmmgyij3bc8s-lint-20201208-83fdc39/bin:/nix/store/937f5738d2frws07ixcpg5ip176pfss1-coreutils-8.32/bin:/nix/store/aa4zln9ih27zqf5mncdaxq1sp89wps40-findutils-4.7.0/bin:/nix/store/bizkvxwm3972081hvjfgirf9w7v5nqkr-diffutils-3.7/bin:/nix/store/klwhsp6f58mqkil6aq59zcj4k7zgcqix-gnused-4.8/bin:/nix/store/aggfj36xik83sf1hp8rsfsxxdilxpz9m-gnugrep-3.6/bin:/nix/store/bm4284zs7ln7vdzfipdhn9bkfqvc5rir-gawk-5.1.0/bin:/nix/store/xy5g28kzmgr4ld8g4dxx6lz9cfanx8l7-gnutar-1.34/bin:/nix/store/p299gw4f0i2kzxs7rdq5lscj42401wkh-gzip-1.10/bin:/nix/store/jggvqk1xsvsbr017kd19qdp04mmgk2wv-bzip2-1.0.6.0.2-bin/bin:/nix/store/2bij00cvzv64arnb0gpz8qrf9m47vmh7-gnumake-4.3/bin:/nix/store/x0dcb2rxlzf32g0ddfkqqz1sfcyx4yay-bash-4.4-p23/bin:/nix/store/4vi49x50b59phjnl4rq4n1sxs0z8g8dc-patch-2.7.6/bin:/nix/store/mzwh5p2nypwpxsqxd0dcl4g67fav3g50-xz-5.2.5-bin/bin';export NIX_STORE=$'/nix/store';export $'name'=$'nix-shell';export SOURCE_DATE_EPOCH=315532800;export $'propagatedBuildInputs'='';export $'strictDeps'='';export _PYTHON_HOST_PLATFORM=$'linux-x86_64';export NIX_ENFORCE_NO_NATIVE=1;export OBJDUMP=$'objdump';export $'depsBuildTargetPropagated'='';export $'system'=$'x86_64-linux';export AS=$'as';export DETERMINISTIC_BUILD=1;export $'depsBuildBuildPropagated'=''; diff --git a/home/config/i3/bar/.direnv/drv b/home/config/i3/bar/.direnv/drv new file mode 120000 index 0000000..53cf416 --- /dev/null +++ b/home/config/i3/bar/.direnv/drv @@ -0,0 +1 @@ +/nix/store/fivd93alp8wql5jgni0wnd7lyp3gdf6p-nix-shell.drv
\ No newline at end of file diff --git a/home/config/i3/bar/.envrc b/home/config/i3/bar/.envrc new file mode 100644 index 0000000..4a4726a --- /dev/null +++ b/home/config/i3/bar/.envrc @@ -0,0 +1 @@ +use_nix diff --git a/home/config/i3/bar/default.nix b/home/config/i3/bar/default.nix new file mode 100644 index 0000000..e43095f --- /dev/null +++ b/home/config/i3/bar/default.nix @@ -0,0 +1,18 @@ +{ pkgs, ... }: + +let + statusPackage = + pkgs.personal.barista.override { i3statusGo = ./i3status.go; }; +in { + xsession.windowManager.i3.config.bars = [{ + statusCommand = "${statusPackage}/bin/i3status"; + fonts = { + names = [ "roboto" ]; + size = 11.0; + }; + colors.background = "#111111"; + }]; + + # (Miscellaneous) Tray icons + services.blueman-applet.enable = true; +} diff --git a/home/config/i3/bar/i3status.go b/home/config/i3/bar/i3status.go new file mode 100644 index 0000000..4627734 --- /dev/null +++ b/home/config/i3/bar/i3status.go @@ -0,0 +1,237 @@ +package main + +import ( + "io" + "net/http" + "os" + "regexp" + "strconv" + "time" + + "barista.run" + "barista.run/bar" + "barista.run/colors" + "barista.run/modules/battery" + "barista.run/modules/clock" + "barista.run/modules/diskspace" + "barista.run/modules/funcs" + "barista.run/modules/netinfo" + "barista.run/modules/volume" + "barista.run/modules/volume/pulseaudio" + "barista.run/modules/wlan" + "barista.run/outputs" + "barista.run/pango" + "barista.run/pango/icons/mdi" +) + +func main() { + // Constants + colors.LoadFromMap(map[string]string{ + // Color palette of Cezanne's Vue de la Baie de Marseille + "good": "#C5D294", + "degraded": "#E9CC67", + "bad": "#FFBC88", + }) + mdi.Load() // repo path will be inserted at build time + + // Display space left on / + storageIcon := pango.Icon("mdi-database") + barista.Add(diskspace.New("/").Output(func(i diskspace.Info) bar.Output { + used := i.UsedPct() + var colorScheme string + if used >= 90 { + colorScheme = "bad" + } else if used >= 50 { + colorScheme = "degraded" + } else { + colorScheme = "good" + } + return outputs.Pango(storageIcon, pango.Textf(" %d%%", used)).Color(colors.Scheme(colorScheme)) + })) + + // Check connection to the Mullvad VPN + mullvadIsUpRe := regexp.MustCompile(`^You are connected to Mullvad`) + mullvadServerRe := regexp.MustCompile(`\(server (.*)\)`) + mullvadIpRe := regexp.MustCompile(`Your IP address is (.*)`) + client := &http.Client{Timeout: 3 * time.Second} + incognitoIcon := pango.Icon("mdi-incognito") + incognitoOffIcon := pango.Icon("mdi-incognito-off") + barista.Add(funcs.Every(5*time.Second, func(s bar.Sink) { + icon := incognitoOffIcon + message := pango.Text("") + colorScheme := "bad" + res, err := client.Get("https://am.i.mullvad.net/connected") + if !s.Error(err) { + status, err := io.ReadAll(res.Body) + res.Body.Close() + if !s.Error(err) { + var re *regexp.Regexp + if mullvadIsUpRe.Match(status) { + re = mullvadServerRe + colorScheme = "good" + icon = incognitoIcon + } else { + re = mullvadIpRe + colorScheme = "degraded" + } + result := re.FindSubmatch(status) + if len(result) >= 2 { + message = pango.Textf(" %s", result[1]) + } + } + } + client.CloseIdleConnections() + s.Output(outputs.Pango(icon, message).Color(colors.Scheme(colorScheme))) + })) + + // Display the wifi status + wifiOffIcon := pango.Icon("mdi-wifi-off") + wifiRefreshIcon := pango.Icon("mdi-wifi-refresh") + wifiOnIcon := pango.Icon("mdi-wifi") + barista.Add(wlan.Named("wlp2s0").Output(func(w wlan.Info) bar.Output { + switch { + case w.Connected(): + return outputs.Pango(wifiOnIcon, pango.Textf(" %s", w.SSID)).Color(colors.Scheme("good")) + case w.Connecting(): + return outputs.Pango(wifiRefreshIcon).Color(colors.Scheme("degraded")) + case w.Enabled(): + return outputs.Pango(wifiOffIcon).Color(colors.Scheme("bad")) + default: + return nil + } + })) + + // Display the ethernet status + ethernetCableOnIcon := pango.Icon("mdi-ethernet-cable") + ethernetCableOffIcon := pango.Icon("mdi-ethernet-cable-off") + barista.Add(netinfo.Prefix("e").Output(func(s netinfo.State) bar.Output { + switch { + case s.Connected(): + ip := "<no ip>" + if len(s.IPs) > 0 { + ip = s.IPs[0].String() + } + return outputs.Pango(ethernetCableOnIcon, pango.Textf(" %s", ip)).Color(colors.Scheme("good")) + case s.Connecting(): + return outputs.Pango(ethernetCableOnIcon).Color(colors.Scheme("degraded")) + case s.Enabled(): + return outputs.Pango(ethernetCableOffIcon).Color(colors.Scheme("bad")) + default: + return nil + } + })) + + // Display the battery status + batteryIcons := [11]*pango.Node{pango.Icon("mdi-battery-outline"), + pango.Icon("mdi-battery-10"), + pango.Icon("mdi-battery-20"), + pango.Icon("mdi-battery-30"), + pango.Icon("mdi-battery-40"), + pango.Icon("mdi-battery-50"), + pango.Icon("mdi-battery-60"), + pango.Icon("mdi-battery-70"), + pango.Icon("mdi-battery-80"), + pango.Icon("mdi-battery-90"), + pango.Icon("mdi-battery")} + batteryChargingIcons := [11]*pango.Node{pango.Icon("mdi-battery-charging-outline"), + pango.Icon("mdi-battery-charging-10"), + pango.Icon("mdi-battery-charging-20"), + pango.Icon("mdi-battery-charging-30"), + pango.Icon("mdi-battery-charging-40"), + pango.Icon("mdi-battery-charging-50"), + pango.Icon("mdi-battery-charging-60"), + pango.Icon("mdi-battery-charging-70"), + pango.Icon("mdi-battery-charging-80"), + pango.Icon("mdi-battery-charging-90"), + pango.Icon("mdi-battery-charging-100")} + barista.Add(battery.All().Output(func(b battery.Info) bar.Output { + switch b.Status { + case battery.Disconnected, battery.Unknown: + return nil + default: + var icons [11]*pango.Node + var colorScheme string + if b.Status == battery.Charging { + icons = batteryChargingIcons + colorScheme = "good" + } else { + icons = batteryIcons + if b.RemainingPct() <= 10 { + colorScheme = "bad" + } else if b.RemainingPct() <= 20 { + colorScheme = "degraded" + } else { + colorScheme = "good" + } + } + icon := icons[b.RemainingPct()/10] + return outputs.Pango(icon, pango.Textf(" %d%%", b.RemainingPct())).Color(colors.Scheme(colorScheme)) + } + })) + + // Display brightness + brightnessHighIcon := pango.Icon("mdi-lightbulb-on") + brightnessMidIcon := pango.Icon("mdi-lightbulb-on-outline") + brightnessLowIcon := pango.Icon("mdi-lightbulb-outline") + ReadBrightness := func(name string) (int, error) { + valueStr, err := os.ReadFile("/sys/class/backlight/intel_backlight/" + name) + if err != nil { + return 0, err + } + return strconv.Atoi(string(valueStr[:len(valueStr)-1])) + } + brightnessMax, _ := ReadBrightness("max_brightness") // always non-zero, unless there's an error + barista.Add(funcs.Every(time.Second, func(s bar.Sink) { + brightness, err := ReadBrightness("brightness") + if !s.Error(err) { + value := (brightness * 100) / brightnessMax + var icon *pango.Node + if value <= 30 { + icon = brightnessLowIcon + } else if value < 70 { + icon = brightnessMidIcon + } else { + icon = brightnessHighIcon + } + s.Output(outputs.Pango(icon, pango.Textf(" %d%%", value))) + } + })) + + // Display output volume + volumeOffIcon := pango.Icon("mdi-volume-variant-off") + volumeLowIcon := pango.Icon("mdi-volume-low") + volumeMidIcon := pango.Icon("mdi-volume-medium") + volumeHighIcon := pango.Icon("mdi-volume-high") + barista.Add(volume.New(pulseaudio.DefaultSink()).Output(func(v volume.Volume) bar.Output { + volume := v.Pct() + var icon *pango.Node + if volume == 0 || v.Mute { + icon = volumeOffIcon + } else if volume <= 30 { + icon = volumeLowIcon + } else if volume <= 70 { + icon = volumeMidIcon + } else { + icon = volumeHighIcon + } + return outputs.Pango(icon, pango.Textf(" %d%%", volume)) + })) + + // Display microphone volume + microphoneOffIcon := pango.Icon("mdi-microphone-off") + microphoneIcon := pango.Icon("mdi-microphone") + barista.Add(volume.New(pulseaudio.DefaultSource()).Output(func(v volume.Volume) bar.Output { + volume := v.Pct() / 10 // TODO: correct Pct implementation for sources + var icon *pango.Node + if volume == 0 || v.Mute { + icon = microphoneOffIcon + } else { + icon = microphoneIcon + } + return outputs.Pango(icon, pango.Textf(" %d%%", volume)) + })) + + barista.Add(clock.Local().OutputFormat("2006-01-02 15:04:05")) + + panic(barista.Run()) +} diff --git a/home/config/i3/bar/shell.nix b/home/config/i3/bar/shell.nix new file mode 100644 index 0000000..0fcfc92 --- /dev/null +++ b/home/config/i3/bar/shell.nix @@ -0,0 +1,8 @@ +{ pkgs ? import <nixpkgs> { } }: + +let + settings = { + nix.enable = true; + golang.enable = true; + }; +in import ~/documents/nix/shells { inherit pkgs settings; } diff --git a/home/config/i3/default.nix b/home/config/i3/default.nix new file mode 100644 index 0000000..172f964 --- /dev/null +++ b/home/config/i3/default.nix @@ -0,0 +1,36 @@ +{ config, pkgs, lib, ... }: + +{ + imports = [ ./bar ./keybindings.nix ./startup.nix ]; + + xsession.windowManager.i3 = { + enable = true; + package = pkgs.i3-gaps; + + config = rec { + assigns = { + "8: media" = [{ class = "^Steam$"; }]; + "9: social" = [ { class = "^Thunderbird$"; } { class = "^Signal$"; } ]; + }; + + window.border = 0; + gaps = { + inner = 15; + outer = 5; + }; + }; + }; + + home.file.".config/i3/i3status.sh" = { + text = '' + #!${pkgs.bash}/bin/sh + ${pkgs.i3status}/bin/i3status | while : + do + read line + echo "☼ $(${pkgs.brightnessctl}/bin/brightnessctl -m | cut -d',' -f4) |\ + $line" || exit 1 + done + ''; + executable = true; + }; +} diff --git a/home/config/i3/keybindings.nix b/home/config/i3/keybindings.nix new file mode 100644 index 0000000..b35f666 --- /dev/null +++ b/home/config/i3/keybindings.nix @@ -0,0 +1,49 @@ +{ config, lib, pkgs, ... }: + +let + backgroundImage = config.home.wallpaper; + lockscreen = pkgs.personal.lockscreen.override { inherit backgroundImage; }; +in { + xsession.windowManager.i3.config = rec { + modifier = "Mod4"; + + keybindings = lib.mkOptionDefault (let + brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl"; + brightnessctlKbd = "${brightnessctl} --device dell:kbd_backlight"; + pactl = "${pkgs.pulseaudio}/bin/pactl"; + rofi = "${pkgs.rofi}/bin/rofi"; + in { + "${modifier}+Shift+Return" = "exec firefox"; + "${modifier}+Control+Return" = "exec $EDITOR"; + "${modifier}+Shift+e" = "exec i3-msg exit"; + "XF86MonBrightnessUp" = "exec ${brightnessctl} set 5%+"; + "XF86MonBrightnessDown" = "exec ${brightnessctl} set 5%-"; + "XF86AudioRaiseVolume" = + "exec ${pactl} set-sink-volume @DEFAULT_SINK@ +5%"; + "XF86AudioLowerVolume" = + "exec ${pactl} set-sink-volume @DEFAULT_SINK@ -5%"; + "XF86AudioMute" = "exec ${pactl} set-sink-mute @DEFAULT_SINK@ toggle"; + "Shift+XF86AudioRaiseVolume" = + "exec ${pactl} set-source-volume @DEFAULT_SOURCE@ +5%"; + "Shift+XF86AudioLowerVolume" = + "exec ${pactl} set-source-volume @DEFAULT_SOURCE@ -5%"; + "XF86AudioMicMute" = + "exec ${pactl} set-source-mute @DEFAULT_SOURCE@ toggle"; + "XF86KbdBrightnessUp" = '' + exec ${brightnessctlKbd} set \ + $(( $(${brightnessctlKbd} max) - $(${brightnessctlKbd} get) )) + ''; + "Print" = "exec xfce4-screenshooter"; + } // (if backgroundImage != null then { + "${modifier}+l" = "exec ${lockscreen}/bin/lockscreen.sh"; + } else + { }) // (if config.programs.alacritty.enable then { + "${modifier}+Return" = "exec ${pkgs.alacritty}/bin/alacritty"; + } else + { }) // (if config.programs.rofi.enable then { + "${modifier}+d" = ''exec "${rofi} -modi drun,run,window -show drun"''; + "${modifier}+Shift+d" = "exec ${rofi} -show window"; + } else + { })); + }; +} diff --git a/home/config/i3/startup.nix b/home/config/i3/startup.nix new file mode 100644 index 0000000..a6576da --- /dev/null +++ b/home/config/i3/startup.nix @@ -0,0 +1,36 @@ +{ config, pkgs, ... }: + +let background-image = config.home.wallpaper; +in { + xsession.windowManager.i3.config.startup = let + autostart = { command, always ? false, notification ? false }: { + inherit command always notification; + }; + in (if (config.services.redshift.enable) then + [ (autostart { command = "systemctl --user start redshift"; }) ] + else + [ ]) ++ (if background-image != null then + [ + (autostart { + command = "${pkgs.feh}/bin/feh --bg-scale ${background-image}"; + }) + ] + else + [ ]) ++ (if config.services.screen-locker.enable then + [ + (autostart { + command = + "systemctl --user start xautolock-session.service xss-lock.service"; + }) + ] + else + [ ]) ++ (if config.services.emacs.enable then + [ (autostart { command = "systemctl --user start emacs.service"; }) ] + else + [ ]) ++ [ + # Launch frequently used apps + (autostart { command = "thunderbird"; }) + (autostart { command = "signal-desktop"; }) + (autostart { command = ''i3-msg "workspace 10; exec keepassxc"''; }) + ]; +} diff --git a/home/config/kdeconnect.nix b/home/config/kdeconnect.nix new file mode 100644 index 0000000..e615178 --- /dev/null +++ b/home/config/kdeconnect.nix @@ -0,0 +1,8 @@ +{ ... }: + +{ + services.kdeconnect = { + enable = true; + indicator = true; + }; +} diff --git a/home/config/picom.nix b/home/config/picom.nix new file mode 100644 index 0000000..2992b39 --- /dev/null +++ b/home/config/picom.nix @@ -0,0 +1,14 @@ +{ ... }: + +{ + services.picom = { + enable = true; + fade = true; + activeOpacity = "1"; + inactiveOpacity = "0.9"; + menuOpacity = "0.8"; + shadow = true; + fadeDelta = 4; + blur = true; + }; +} diff --git a/home/config/redshift.nix b/home/config/redshift.nix new file mode 100644 index 0000000..e670c05 --- /dev/null +++ b/home/config/redshift.nix @@ -0,0 +1,15 @@ +{ ... }: + +{ + services.redshift = { + enable = true; + tray = true; + temperature = { + day = 2500; + night = 2500; + }; + latitude = "48.856614"; + longitude = "2.3522219"; + settings = { redshift = { transition = 0; }; }; + }; +} diff --git a/home/config/rofi.nix b/home/config/rofi.nix new file mode 100644 index 0000000..8a6d1bb --- /dev/null +++ b/home/config/rofi.nix @@ -0,0 +1,145 @@ +{ pkgs, ... }: + +{ + programs.rofi = { + enable = true; + + cycle = true; + theme = builtins.toString (pkgs.writeText "rofi-theme" '' + /** + * Copyright: deadguy + * (edited by Litarvan) + */ + + configuration { + display-drun: "Activate"; + display-run: "Execute"; + display-window: "Window"; + show-icons: true; + sidebar-mode: true; + font: "Roboto 13"; + } + + * { + background-color: transparent; + text-color: #b2aea8; + selbg: #3949A3; + actbg: #262626; + urgbg: #e53935; + winbg: #B3BEFF; + + selected-normal-foreground: @winbg; + normal-foreground: @text-color; + selected-normal-background: @actbg; + normal-background: @background-color; + + selected-urgent-foreground: @background-color; + urgent-foreground: @text-color; + selected-urgent-background: @urgbg; + urgent-background: @background-color; + + selected-active-foreground: @winbg; + active-foreground: @text-color; + selected-active-background: @actbg; + active-background: @selbg; + + line-margin: 2; + line-padding: 2; + separator-style: "none"; + hide-scrollbar: "true"; + margin: 0; + padding: 0; + } + + window { + transparency: "real"; + background-color: #000000FF; + location: west; + anchor: west; + height: 100%; + width: 10em; + orientation: horizontal; + children: [mainbox]; + } + + mainbox { + spacing: 0.8em; + children: [entry, listview ]; + } + + button { padding: 5px 2px; } + + button selected { + background-color: @active-background; + text-color: @background-color; + } + + inputbar { + padding: 5px; + spacing: 5px; + } + + listview { + spacing: 0; + dynamic: false; + cycle: false; + } + + element { padding: 10px; } + + entry { + expand: false; + text-color: @normal-foreground; + vertical-align: 1; + padding: 5px; + } + + element normal.normal { + background-color: @normal-background; + text-color: @normal-foreground; + } + + element normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; + } + + element normal.active { + background-color: @active-background; + text-color: @active-foreground; + } + + element selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; + border: 0 5px solid 0 0; + border-color: @active-background; + } + + element selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; + } + + element selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; + } + + element alternate.normal { + background-color: @normal-background; + text-color: @normal-foreground; + } + + element alternate.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; + } + + element alternate.active { + background-color: @active-background; + text-color: @active-foreground; + } + ''); + }; +} diff --git a/home/config/syncthing.nix b/home/config/syncthing.nix new file mode 100644 index 0000000..4875361 --- /dev/null +++ b/home/config/syncthing.nix @@ -0,0 +1,5 @@ +{ ... }: + +{ + services.syncthing = { enable = true; }; +} diff --git a/home/config/xsession.nix b/home/config/xsession.nix new file mode 100644 index 0000000..bc01f56 --- /dev/null +++ b/home/config/xsession.nix @@ -0,0 +1,38 @@ +{ config, pkgs, ... }: + +let + backgroundImage = config.home.wallpaper; + lockscreen = pkgs.personal.lockscreen.override { inherit backgroundImage; }; +in { + xsession.enable = true; + + # Look and feel + xsession.pointerCursor = { + name = "Numix-Cursor-Light"; + package = pkgs.numix-cursor-theme; + }; + dconf.enable = true; + home.packages = with pkgs; [ gnome3.dconf ]; + gtk = { + enable = true; + theme = { + name = "Arc-Dark"; + package = pkgs.arc-theme; + }; + iconTheme = { + name = "breeze-dark"; + package = pkgs.breeze-icons; + }; + }; + qt = { + enable = true; + platformTheme = "gtk"; + }; + + # Session managment + services.screen-locker = { + enable = backgroundImage != null; + lockCmd = "${lockscreen}/bin/lockscreen.sh"; + inactiveInterval = 5; + }; +} |
