summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Aristote <quentin@aristote.fr>2021-08-06 18:51:59 +0200
committerQuentin Aristote <quentin@aristote.fr>2021-08-06 18:51:59 +0200
commita1f7f43c95c049628e826856ec589b339cd4f5db (patch)
treea0f5bb10fc36f02ad6dbaebf1232ca2548f9ccfa
initial commit
-rw-r--r--home/config/alacritty.nix27
-rw-r--r--home/config/default.nix18
-rw-r--r--home/config/dotfiles/background-imagebin0 -> 581223 bytes
-rw-r--r--home/config/dotfiles/spacemacs566
-rw-r--r--home/config/emacs.nix14
-rw-r--r--home/config/environment.nix66
-rw-r--r--home/config/firefox/default.nix142
-rw-r--r--home/config/git.nix14
-rw-r--r--home/config/i3/bar/.direnv/cache-pre295280.fa0326ce5231
-rw-r--r--home/config/i3/bar/.direnv/cache-pre297476.1905f5f2e551
-rw-r--r--home/config/i3/bar/.direnv/cache-pre297796.e1f8852faac1
-rw-r--r--home/config/i3/bar/.direnv/cache-pre299942.09c38c29f2c1
-rw-r--r--home/config/i3/bar/.direnv/cache-pre301044.87807e64a5e1
l---------home/config/i3/bar/.direnv/drv1
-rw-r--r--home/config/i3/bar/.envrc1
-rw-r--r--home/config/i3/bar/default.nix18
-rw-r--r--home/config/i3/bar/i3status.go237
-rw-r--r--home/config/i3/bar/shell.nix8
-rw-r--r--home/config/i3/default.nix36
-rw-r--r--home/config/i3/keybindings.nix49
-rw-r--r--home/config/i3/startup.nix36
-rw-r--r--home/config/kdeconnect.nix8
-rw-r--r--home/config/picom.nix14
-rw-r--r--home/config/redshift.nix15
-rw-r--r--home/config/rofi.nix145
-rw-r--r--home/config/syncthing.nix5
-rw-r--r--home/config/xsession.nix38
-rw-r--r--home/default.nix30
-rw-r--r--home/modules/default.nix5
-rw-r--r--home/modules/wallpaper.nix17
-rw-r--r--home/pkgs/barista/.direnv/cache-pre303315.16105403bdd1
-rw-r--r--home/pkgs/barista/.direnv/cache-pre306003.c464dc811ba1
l---------home/pkgs/barista/.direnv/drv1
-rw-r--r--home/pkgs/barista/.envrc1
-rw-r--r--home/pkgs/barista/default.nix40
-rw-r--r--home/pkgs/barista/shell.nix8
-rw-r--r--home/pkgs/default.nix11
-rw-r--r--home/pkgs/firefoxPackages/.direnv/cache-pre295280.fa0326ce5231
-rw-r--r--home/pkgs/firefoxPackages/.direnv/cache-pre301044.87807e64a5e1
-rw-r--r--home/pkgs/firefoxPackages/.direnv/cache-pre304626.8ecc61c91a50
l---------home/pkgs/firefoxPackages/.direnv/drv1
-rw-r--r--home/pkgs/firefoxPackages/.envrc1
-rw-r--r--home/pkgs/firefoxPackages/addons.json15
-rw-r--r--home/pkgs/firefoxPackages/addons.nix169
-rw-r--r--home/pkgs/firefoxPackages/default.nix14
-rw-r--r--home/pkgs/firefoxPackages/shell.nix12
-rw-r--r--home/pkgs/fontMetadata/default.nix6
-rw-r--r--home/pkgs/fontMetadata/fontawesome.nix17
-rw-r--r--home/pkgs/fontMetadata/material-design-icons.nix18
-rw-r--r--home/pkgs/gitignore/default.nix10
-rw-r--r--home/pkgs/icons/default.nix15
-rwxr-xr-xhome/pkgs/icons/generate-package.sh11
-rw-r--r--home/pkgs/icons/icons.txt3
-rw-r--r--home/pkgs/lockscreen/default.nix37
-rw-r--r--nixos/boot.nix38
-rw-r--r--nixos/configuration.nix51
-rw-r--r--nixos/desktop.nix63
-rw-r--r--nixos/hardware-configuration.nix33
-rw-r--r--nixos/locale.nix15
-rw-r--r--nixos/networking.nix68
-rw-r--r--nixos/services.nix19
-rw-r--r--nixos/users.nix18
62 files changed, 2214 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
new file mode 100644
index 0000000..4288f3e
--- /dev/null
+++ b/home/config/dotfiles/background-image
Binary files differ
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;
+ };
+}
diff --git a/home/default.nix b/home/default.nix
new file mode 100644
index 0000000..9d96449
--- /dev/null
+++ b/home/default.nix
@@ -0,0 +1,30 @@
+{ ... }:
+
+{
+ imports = [ ./config ./modules ];
+
+ # Let Home Manager install and manage itself.
+ programs.home-manager.enable = true;
+
+ # This value determines the Home Manager release that your
+ # configuration is compatible with. This helps avoid breakage
+ # when a new Home Manager release introduces backwards
+ # incompatible changes.
+ #
+ # You can update Home Manager without changing this value. See
+ # the Home Manager release notes for a list of state version
+ # changes in each release.
+ home.stateVersion = "21.03";
+
+ nixpkgs = {
+ overlays = [
+ (final: prev: {
+ personal = import ./pkgs { pkgs = final; };
+ nur = import (builtins.fetchTarball
+ "https://github.com/nix-community/NUR/archive/master.tar.gz") {
+ pkgs = prev;
+ };
+ })
+ ];
+ };
+}
diff --git a/home/modules/default.nix b/home/modules/default.nix
new file mode 100644
index 0000000..820cd87
--- /dev/null
+++ b/home/modules/default.nix
@@ -0,0 +1,5 @@
+{ ... }:
+
+{
+ imports = [ ./wallpaper.nix ];
+}
diff --git a/home/modules/wallpaper.nix b/home/modules/wallpaper.nix
new file mode 100644
index 0000000..844f0ba
--- /dev/null
+++ b/home/modules/wallpaper.nix
@@ -0,0 +1,17 @@
+{ config, lib, ... }:
+
+with lib;
+let wallpaper = config.home.wallpaper;
+in {
+ options.home.wallpaper = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = ''
+ Path to the desktop wallpaper.
+ '';
+ example =
+ literalExample "${config.home.homeDirectory}/images/wallpaper.jpg";
+ };
+
+ # config.home.file.".background-image".source = mkIf (wallpaper != null) wallpaper;
+}
diff --git a/home/pkgs/barista/.direnv/cache-pre303315.16105403bdd b/home/pkgs/barista/.direnv/cache-pre303315.16105403bdd
new file mode 100644
index 0000000..2fc1bf0
--- /dev/null
+++ b/home/pkgs/barista/.direnv/cache-pre303315.16105403bdd
@@ -0,0 +1 @@
+export USER=$'qaristote';export $'NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export $'depsHostHostPropagated'='';export NIX_BUILD_TOP=$'/run/user/1000';export CONFIG_SHELL=$'/nix/store/b45zavallnsvqwjs9wg9xw167jcs0935-bash-4.4-p23/bin/bash';export CC=$'gcc';export $'shellHook'='';export TMP=$'/run/user/1000';export $'NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export NIX_INDENT_MAKE=1;export __ETC_PROFILE_SOURCED=1;export PAGER=$'less -R';export PYTHONHASHSEED=0;export $'exitHook'='';export AS=$'as';export NIX_LDFLAGS=$'-rpath /nix/store/0c1rd3hnmzq5f6bkb1pma0b99mmbsc85-nix-shell/lib64 -rpath /nix/store/0c1rd3hnmzq5f6bkb1pma0b99mmbsc85-nix-shell/lib -L/nix/store/yqjhkdarf7p74wcha7aypzsb751n7wl2-python3-3.9.5/lib -L/nix/store/yqjhkdarf7p74wcha7aypzsb751n7wl2-python3-3.9.5/lib';export $'stdenv'=$'/nix/store/bmxafbqrlvcwpcwd21irmirid4rkpank-stdenv-linux';export $'depsTargetTarget'='';export $'phases'=$'nobuildPhase';export OBJDUMP=$'objdump';export NIX_BINTOOLS=$'/nix/store/7sjz9m88abiqqg9h6cvk7cg0va9p0ylv-binutils-wrapper-2.35.1';export NM=$'nm';export CXX=$'g++';export $'patches'='';export DISPLAY=$':0';export NIX_CFLAGS_COMPILE=$' -frandom-seed=0c1rd3hnmz -isystem /nix/store/yqjhkdarf7p74wcha7aypzsb751n7wl2-python3-3.9.5/include -isystem /nix/store/yqjhkdarf7p74wcha7aypzsb751n7wl2-python3-3.9.5/include';export NIX_STORE=$'/nix/store';export $'shell'=$'/nix/store/b45zavallnsvqwjs9wg9xw167jcs0935-bash-4.4-p23/bin/bash';export TEMP=$'/run/user/1000';export $'depsBuildTargetPropagated'='';export $'propagatedBuildInputs'='';export $'outputs'=$'out';export TERM=$'dumb';export PYTHONPATH=$'/nix/store/w6l8jx9mv8ihsnvybpana30zr4ppqads-python3.9-nix-prefetch-github-4.0.4/lib/python3.9/site-packages:/nix/store/6aj0qxwpp5z8x11a670j3zfijg0gijdn-python3.9-attrs-21.2.0/lib/python3.9/site-packages:/nix/store/yqjhkdarf7p74wcha7aypzsb751n7wl2-python3-3.9.5/lib/python3.9/site-packages:/nix/store/758pbq3b8vxcg4d3avimjl157s5bfbfv-python3.9-click-8.0.1/lib/python3.9/site-packages:/nix/store/kyy7nj7x240ny3zrq0214dqz35bixvc4-python3.9-effect-1.1.0/lib/python3.9/site-packages:/nix/store/9l4zg32wa8amifgspdxb6yl1kabqvki8-python3.9-six-1.16.0/lib/python3.9/site-packages';export NIX_BUILD_CORES=8;export STRINGS=$'strings';export $'depsHostHost'='';export $'nativeBuildInputs'=$'/nix/store/aa33l2ykdbkl6mih44f3gmk7h2467qwk-nixfmt-0.4.0 /nix/store/77clsnmzc2x07kxwlvs2sg79vxh6ailv-nix-prefetch-scripts /nix/store/w6l8jx9mv8ihsnvybpana30zr4ppqads-python3.9-nix-prefetch-github-4.0.4';export READELF=$'readelf';export NIX_HARDENING_ENABLE=$'fortify stackprotector pic strictoverflow format relro bindnow';export NIX_SSL_CERT_FILE=$'/no-cert-file.crt';export SHLVL=3;export $'depsTargetTargetPropagated'='';export HOST_PATH=$'/nix/store/xdzdbpvmfbpvywmlrv87k3niv90zkb5d-go-1.16.6/bin:/nix/store/b3dlcvfwa2rzqhbs6qv9jyfsaz1qdil7-gofumpt-0.1.1/bin:/nix/store/nj3r5m187vwiv7c3rk6cp6y6lxa379nc-lint-20201208-83fdc39/bin:/nix/store/nvlnl2swxmk50x25mzn71rhc0gzpylfr-coreutils-8.32/bin:/nix/store/f67dl43kggvml0mnrdcasqh0fw2lx5xr-findutils-4.7.0/bin:/nix/store/mbahsiqqj61wjyh2yyzflxpf35hdpjbz-diffutils-3.7/bin:/nix/store/b3l5zq2nkhfpqrr0lil06dhqyjf5jz38-gnused-4.8/bin:/nix/store/7lkzid5yncibabddzaw4sj13n342jz1s-gnugrep-3.6/bin:/nix/store/b27wld0aqcdspznhxwgmr6cs67kg9lk3-gawk-5.1.0/bin:/nix/store/i92f6n6mb65fzpppl3h4vbm3a2rfyb5n-gnutar-1.34/bin:/nix/store/04skc521p42djf1j2cd8jywfillmnfkb-gzip-1.10/bin:/nix/store/l6vlzv376qfq62pqwv5fna3lw7gyi5sd-bzip2-1.0.6.0.2-bin/bin:/nix/store/5cgdzkwpan1kk19pi3mnnls24x6lfr6r-gnumake-4.3/bin:/nix/store/b45zavallnsvqwjs9wg9xw167jcs0935-bash-4.4-p23/bin:/nix/store/ibnw01kxpkh11pfydrd9dkvkxdzs4m9l-patch-2.7.6/bin:/nix/store/zi2s4z7vbmmldb07m7m958v5a61rmdyh-xz-5.2.5-bin/bin';export $'nobuildPhase'=$'echo\necho "This derivation is not meant to be built, aborting";\necho\nexit 1\n';export PYTHONNOUSERSITE=1;export RANLIB=$'ranlib';export $'depsBuildBuild'='';export $'depsBuildBuildPropagated'='';export LOGNAME=$'qaristote';export LD=$'ld';export $'builder'=$'/nix/store/b45zavallnsvqwjs9wg9xw167jcs0935-bash-4.4-p23/bin/bash';export OBJCOPY=$'objcopy';export AR=$'ar';export $'configureFlags'='';export PATH=$'/nix/store/yfgh5ar7pbmn1v8n61sksq410kr8p3rw-bash-interactive-4.4-p23/bin:/nix/store/aa33l2ykdbkl6mih44f3gmk7h2467qwk-nixfmt-0.4.0/bin:/nix/store/77clsnmzc2x07kxwlvs2sg79vxh6ailv-nix-prefetch-scripts/bin:/nix/store/w6l8jx9mv8ihsnvybpana30zr4ppqads-python3.9-nix-prefetch-github-4.0.4/bin:/nix/store/yqjhkdarf7p74wcha7aypzsb751n7wl2-python3-3.9.5/bin:/nix/store/hicfsj7pp72fc96vp1mqjb0qjzf8fiik-patchelf-0.12/bin:/nix/store/q65l6lvzgbrv64p5iib8jvpj5zc2mans-gcc-wrapper-10.3.0/bin:/nix/store/lmwjr2fq2w875qn1in6wmzfirxkwjbnx-gcc-10.3.0/bin:/nix/store/yj1ynwa7dr25fljf5z18rvks7xjxvpbh-glibc-2.33-47-bin/bin:/nix/store/nvlnl2swxmk50x25mzn71rhc0gzpylfr-coreutils-8.32/bin:/nix/store/7sjz9m88abiqqg9h6cvk7cg0va9p0ylv-binutils-wrapper-2.35.1/bin:/nix/store/fh9f7pr9kxfwvs8lm4479lvhrkzmmkdw-binutils-2.35.1/bin:/nix/store/xdzdbpvmfbpvywmlrv87k3niv90zkb5d-go-1.16.6/bin:/nix/store/b3dlcvfwa2rzqhbs6qv9jyfsaz1qdil7-gofumpt-0.1.1/bin:/nix/store/nj3r5m187vwiv7c3rk6cp6y6lxa379nc-lint-20201208-83fdc39/bin:/nix/store/nvlnl2swxmk50x25mzn71rhc0gzpylfr-coreutils-8.32/bin:/nix/store/f67dl43kggvml0mnrdcasqh0fw2lx5xr-findutils-4.7.0/bin:/nix/store/mbahsiqqj61wjyh2yyzflxpf35hdpjbz-diffutils-3.7/bin:/nix/store/b3l5zq2nkhfpqrr0lil06dhqyjf5jz38-gnused-4.8/bin:/nix/store/7lkzid5yncibabddzaw4sj13n342jz1s-gnugrep-3.6/bin:/nix/store/b27wld0aqcdspznhxwgmr6cs67kg9lk3-gawk-5.1.0/bin:/nix/store/i92f6n6mb65fzpppl3h4vbm3a2rfyb5n-gnutar-1.34/bin:/nix/store/04skc521p42djf1j2cd8jywfillmnfkb-gzip-1.10/bin:/nix/store/l6vlzv376qfq62pqwv5fna3lw7gyi5sd-bzip2-1.0.6.0.2-bin/bin:/nix/store/5cgdzkwpan1kk19pi3mnnls24x6lfr6r-gnumake-4.3/bin:/nix/store/b45zavallnsvqwjs9wg9xw167jcs0935-bash-4.4-p23/bin:/nix/store/ibnw01kxpkh11pfydrd9dkvkxdzs4m9l-patch-2.7.6/bin:/nix/store/zi2s4z7vbmmldb07m7m958v5a61rmdyh-xz-5.2.5-bin/bin';export $'out'=$'/nix/store/0c1rd3hnmzq5f6bkb1pma0b99mmbsc85-nix-shell';export STRIP=$'strip';export IN_NIX_SHELL=$'pure';export SOURCE_DATE_EPOCH=315532800;export SIZE=$'size';export DETERMINISTIC_BUILD=1;export TMPDIR=$'/run/user/1000';export $'doCheck'='';export TEMPDIR=$'/run/user/1000';export $'system'=$'x86_64-linux';export NIX_ENFORCE_NO_NATIVE=1;export _PYTHON_HOST_PLATFORM=$'linux-x86_64';export $'buildInputs'=$'/nix/store/xdzdbpvmfbpvywmlrv87k3niv90zkb5d-go-1.16.6 /nix/store/b3dlcvfwa2rzqhbs6qv9jyfsaz1qdil7-gofumpt-0.1.1 /nix/store/nj3r5m187vwiv7c3rk6cp6y6lxa379nc-lint-20201208-83fdc39';export $'depsBuildTarget'='';export $'propagatedNativeBuildInputs'='';export _PYTHON_SYSCONFIGDATA_NAME=$'_sysconfigdata__linux_x86_64-linux-gnu';export HOME=$'/home/qaristote';export $'strictDeps'='';export SSL_CERT_FILE=$'/no-cert-file.crt';export NIX_CC=$'/nix/store/q65l6lvzgbrv64p5iib8jvpj5zc2mans-gcc-wrapper-10.3.0';export SHELL=$'/nix/store/yfgh5ar7pbmn1v8n61sksq410kr8p3rw-bash-interactive-4.4-p23/bin/bash';export _=$'/nix/store/rzvrnv49mdkpki1q5lkf40ahm52lnmrw-direnv-2.28.0/bin/direnv';export XDG_DATA_DIRS=$'/nix/store/aa33l2ykdbkl6mih44f3gmk7h2467qwk-nixfmt-0.4.0/share:/nix/store/yqjhkdarf7p74wcha7aypzsb751n7wl2-python3-3.9.5/share:/nix/store/hicfsj7pp72fc96vp1mqjb0qjzf8fiik-patchelf-0.12/share';export $'name'=$'nix-shell';export $'doInstallCheck'='';
diff --git a/home/pkgs/barista/.direnv/cache-pre306003.c464dc811ba b/home/pkgs/barista/.direnv/cache-pre306003.c464dc811ba
new file mode 100644
index 0000000..117f054
--- /dev/null
+++ b/home/pkgs/barista/.direnv/cache-pre306003.c464dc811ba
@@ -0,0 +1 @@
+export STRINGS=$'strings';export NIX_BUILD_TOP=$'/run/user/1000';export PYTHONHASHSEED=0;export NIX_LDFLAGS=$'-rpath /nix/store/x0azwm3lw2hib8236aa30gf655yqjbbj-nix-shell/lib64 -rpath /nix/store/x0azwm3lw2hib8236aa30gf655yqjbbj-nix-shell/lib -L/nix/store/81lwy2hfqj4c1943b1x8a0qsivjhdhw9-python3-3.9.6/lib -L/nix/store/81lwy2hfqj4c1943b1x8a0qsivjhdhw9-python3-3.9.6/lib';export NIX_BUILD_CORES=8;export $'depsBuildTargetPropagated'='';export _=$'/nix/store/j639yf6cgqca6h8ghicg2s0sgd7p6mjg-direnv-2.28.0/bin/direnv';export $'stdenv'=$'/nix/store/b39yxip6di5gq3q8513hfvmhfwz4yq77-stdenv-linux';export _PYTHON_SYSCONFIGDATA_NAME=$'_sysconfigdata__linux_x86_64-linux-gnu';export OBJCOPY=$'objcopy';export XDG_DATA_DIRS=$'/nix/store/vyc1xn7bsqg3p2g2infadir4wvw78jfq-nixfmt-0.4.0/share:/nix/store/81lwy2hfqj4c1943b1x8a0qsivjhdhw9-python3-3.9.6/share:/nix/store/wl5vdx1g9wkjgsjb8z1g9gxp5dwr8dfx-patchelf-0.12/share';export NIX_BINTOOLS=$'/nix/store/rs4jynk5rpvag2b2f8m7nrzsypjss4w1-binutils-wrapper-2.35.1';export PYTHONPATH=$'/nix/store/sav77sca2wqbsz7azvmflwjnmjmjgi44-python3.9-nix-prefetch-github-4.0.4/lib/python3.9/site-packages:/nix/store/725jaiv1ha1a3rirk8wh173jqg1q0naq-python3.9-attrs-21.2.0/lib/python3.9/site-packages:/nix/store/81lwy2hfqj4c1943b1x8a0qsivjhdhw9-python3-3.9.6/lib/python3.9/site-packages:/nix/store/mb44if72zvvls0da5g0gy23j72b44szk-python3.9-click-8.0.1/lib/python3.9/site-packages:/nix/store/8zqsvq6dd3571si0chc0anfyy7rkxzsh-python3.9-effect-1.1.0/lib/python3.9/site-packages:/nix/store/hlp0y2a7a94z7hfw97spsbszf50b2n6i-python3.9-six-1.16.0/lib/python3.9/site-packages';export $'patches'='';export $'depsTargetTargetPropagated'='';export $'builder'=$'/nix/store/can473ld4dc8izcjlm4i5daxsh1yl5d8-bash-4.4-p23/bin/bash';export READELF=$'readelf';export $'exitHook'='';export RANLIB=$'ranlib';export TMPDIR=$'/run/user/1000';export $'depsHostHostPropagated'='';export NIX_SSL_CERT_FILE=$'/no-cert-file.crt';export $'depsHostHost'='';export $'out'=$'/nix/store/x0azwm3lw2hib8236aa30gf655yqjbbj-nix-shell';export HOME=$'/home/qaristote';export $'configureFlags'='';export SHELL=$'/nix/store/39k586qrghljxiyqvv72ni5fk89vshib-bash-interactive-4.4-p23/bin/bash';export $'propagatedNativeBuildInputs'='';export $'strictDeps'='';export LOGNAME=$'qaristote';export HOST_PATH=$'/nix/store/dy536kkyf4ac14nblb4q3qnj24v0yma8-go-1.16.6/bin:/nix/store/lnj8qilsbirpxn7v4qczhkw6xk0m5by9-gofumpt-0.1.1/bin:/nix/store/mf5kz6705fvvp7m5zbx52mvj5g13rxhg-lint-20201208-83fdc39/bin:/nix/store/jj6z78skpdcya84iqbn9cf59sxjy5msv-coreutils-8.32/bin:/nix/store/2nrji9a3q54bnbf6bh2i01pv7hnb4320-findutils-4.8.0/bin:/nix/store/n0s100cc8q4y31cwik65p497m4y1xrlj-diffutils-3.7/bin:/nix/store/pp6q8mh5ilgsf67cciggkqcrrw8z2hip-gnused-4.8/bin:/nix/store/azjjb2azlva4ifsiyazrl8ajck5njfxn-gnugrep-3.6/bin:/nix/store/1838raw4b33pbry9m3c4mwrfigzbkf6r-gawk-5.1.0/bin:/nix/store/87l7j4jcsl6x50nzpii751cdbsa26b0f-gnutar-1.34/bin:/nix/store/zab716kfmd0h8iy49dldm8x1b695p7sk-gzip-1.10/bin:/nix/store/yr4rc4w2fcf96grwliqr1kgypi47q6j0-bzip2-1.0.6.0.2-bin/bin:/nix/store/pyv3351wlsa5r8sa8bbjpici3ksbvcqc-gnumake-4.3/bin:/nix/store/can473ld4dc8izcjlm4i5daxsh1yl5d8-bash-4.4-p23/bin:/nix/store/ral4i7kjhmxzq2kdg11ymx2bshgxk76m-patch-2.7.6/bin:/nix/store/jjfwszja3l4l4a6rrs2fi4im5hw0cjzc-xz-5.2.5-bin/bin';export AS=$'as';export CC=$'gcc';export PATH=$'/nix/store/39k586qrghljxiyqvv72ni5fk89vshib-bash-interactive-4.4-p23/bin:/nix/store/vyc1xn7bsqg3p2g2infadir4wvw78jfq-nixfmt-0.4.0/bin:/nix/store/fc9m8dwfmbcdzfrhrwc7varl7mw7g4id-nix-prefetch-scripts/bin:/nix/store/sav77sca2wqbsz7azvmflwjnmjmjgi44-python3.9-nix-prefetch-github-4.0.4/bin:/nix/store/81lwy2hfqj4c1943b1x8a0qsivjhdhw9-python3-3.9.6/bin:/nix/store/wl5vdx1g9wkjgsjb8z1g9gxp5dwr8dfx-patchelf-0.12/bin:/nix/store/qvv5y4fx4x879rbsbs4g27mypl9wxbb9-gcc-wrapper-10.3.0/bin:/nix/store/cj8kp411lblbdm4qj94s14h99dx1pv4b-gcc-10.3.0/bin:/nix/store/wkxfa6jfwsh0n7d7czi0xp2b7sgrkv25-glibc-2.33-47-bin/bin:/nix/store/jj6z78skpdcya84iqbn9cf59sxjy5msv-coreutils-8.32/bin:/nix/store/rs4jynk5rpvag2b2f8m7nrzsypjss4w1-binutils-wrapper-2.35.1/bin:/nix/store/hy3lz2vfv9qq2v5jz9nzlx6mmiaq79rj-binutils-2.35.1/bin:/nix/store/dy536kkyf4ac14nblb4q3qnj24v0yma8-go-1.16.6/bin:/nix/store/lnj8qilsbirpxn7v4qczhkw6xk0m5by9-gofumpt-0.1.1/bin:/nix/store/mf5kz6705fvvp7m5zbx52mvj5g13rxhg-lint-20201208-83fdc39/bin:/nix/store/jj6z78skpdcya84iqbn9cf59sxjy5msv-coreutils-8.32/bin:/nix/store/2nrji9a3q54bnbf6bh2i01pv7hnb4320-findutils-4.8.0/bin:/nix/store/n0s100cc8q4y31cwik65p497m4y1xrlj-diffutils-3.7/bin:/nix/store/pp6q8mh5ilgsf67cciggkqcrrw8z2hip-gnused-4.8/bin:/nix/store/azjjb2azlva4ifsiyazrl8ajck5njfxn-gnugrep-3.6/bin:/nix/store/1838raw4b33pbry9m3c4mwrfigzbkf6r-gawk-5.1.0/bin:/nix/store/87l7j4jcsl6x50nzpii751cdbsa26b0f-gnutar-1.34/bin:/nix/store/zab716kfmd0h8iy49dldm8x1b695p7sk-gzip-1.10/bin:/nix/store/yr4rc4w2fcf96grwliqr1kgypi47q6j0-bzip2-1.0.6.0.2-bin/bin:/nix/store/pyv3351wlsa5r8sa8bbjpici3ksbvcqc-gnumake-4.3/bin:/nix/store/can473ld4dc8izcjlm4i5daxsh1yl5d8-bash-4.4-p23/bin:/nix/store/ral4i7kjhmxzq2kdg11ymx2bshgxk76m-patch-2.7.6/bin:/nix/store/jjfwszja3l4l4a6rrs2fi4im5hw0cjzc-xz-5.2.5-bin/bin';export $'name'=$'nix-shell';export SIZE=$'size';export $'depsBuildTarget'='';export DETERMINISTIC_BUILD=1;export $'NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export NIX_HARDENING_ENABLE=$'fortify stackprotector pic strictoverflow format relro bindnow';export TEMP=$'/run/user/1000';export AR=$'ar';export $'depsBuildBuild'='';export STRIP=$'strip';export $'NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export PYTHONNOUSERSITE=1;export $'outputs'=$'out';export $'depsBuildBuildPropagated'='';export TEMPDIR=$'/run/user/1000';export $'buildInputs'=$'/nix/store/dy536kkyf4ac14nblb4q3qnj24v0yma8-go-1.16.6 /nix/store/lnj8qilsbirpxn7v4qczhkw6xk0m5by9-gofumpt-0.1.1 /nix/store/mf5kz6705fvvp7m5zbx52mvj5g13rxhg-lint-20201208-83fdc39';export PAGER=$'less -R';export _PYTHON_HOST_PLATFORM=$'linux-x86_64';export $'phases'=$'nobuildPhase';export NIX_CFLAGS_COMPILE=$' -frandom-seed=x0azwm3lw2 -isystem /nix/store/81lwy2hfqj4c1943b1x8a0qsivjhdhw9-python3-3.9.6/include -isystem /nix/store/81lwy2hfqj4c1943b1x8a0qsivjhdhw9-python3-3.9.6/include';export $'doCheck'='';export SOURCE_DATE_EPOCH=315532800;export $'propagatedBuildInputs'='';export $'nobuildPhase'=$'echo\necho "This derivation is not meant to be built, aborting";\necho\nexit 1\n';export $'doInstallCheck'='';export NM=$'nm';export CXX=$'g++';export TERM=$'alacritty';export NIX_INDENT_MAKE=1;export USER=$'qaristote';export $'depsTargetTarget'='';export $'nativeBuildInputs'=$'/nix/store/vyc1xn7bsqg3p2g2infadir4wvw78jfq-nixfmt-0.4.0 /nix/store/fc9m8dwfmbcdzfrhrwc7varl7mw7g4id-nix-prefetch-scripts /nix/store/sav77sca2wqbsz7azvmflwjnmjmjgi44-python3.9-nix-prefetch-github-4.0.4';export LD=$'ld';export $'shellHook'='';export NIX_STORE=$'/nix/store';export NIX_ENFORCE_NO_NATIVE=1;export DISPLAY=$':0';export CONFIG_SHELL=$'/nix/store/can473ld4dc8izcjlm4i5daxsh1yl5d8-bash-4.4-p23/bin/bash';export OBJDUMP=$'objdump';export SSL_CERT_FILE=$'/no-cert-file.crt';export __ETC_PROFILE_SOURCED=1;export $'system'=$'x86_64-linux';export IN_NIX_SHELL=$'pure';export $'shell'=$'/nix/store/can473ld4dc8izcjlm4i5daxsh1yl5d8-bash-4.4-p23/bin/bash';export SHLVL=5;export TMP=$'/run/user/1000';export NIX_CC=$'/nix/store/qvv5y4fx4x879rbsbs4g27mypl9wxbb9-gcc-wrapper-10.3.0';
diff --git a/home/pkgs/barista/.direnv/drv b/home/pkgs/barista/.direnv/drv
new file mode 120000
index 0000000..4ee751f
--- /dev/null
+++ b/home/pkgs/barista/.direnv/drv
@@ -0,0 +1 @@
+/nix/store/84pvafa8q26pgzk379h894bxvff0h4a8-nix-shell.drv \ No newline at end of file
diff --git a/home/pkgs/barista/.envrc b/home/pkgs/barista/.envrc
new file mode 100644
index 0000000..4a4726a
--- /dev/null
+++ b/home/pkgs/barista/.envrc
@@ -0,0 +1 @@
+use_nix
diff --git a/home/pkgs/barista/default.nix b/home/pkgs/barista/default.nix
new file mode 100644
index 0000000..2553748
--- /dev/null
+++ b/home/pkgs/barista/default.nix
@@ -0,0 +1,40 @@
+{ pkgs, i3statusGo ? null }:
+
+with pkgs;
+with lib;
+let useDefaultConfig = i3statusGo == null;
+in buildGoModule rec {
+ name = "barista";
+
+ # src = fetchGit {
+ # url = ./src;
+ # rev = "2aa886091e455b2e213dd46d5405db0913759b03";
+ # };
+
+ src = fetchFromGitHub {
+ owner = "soumya92";
+ repo = "barista";
+ rev = "82ee7b7bf4b928111af376e498458336b320b3b1";
+ sha256 = "0f0igsci7i0chjrw01fhmsv24nk4s5rxmk31j6z9yq8l216wz67g";
+ };
+
+ patchPhase = ''
+ mkdir main
+ '' + (if useDefaultConfig then # use samples/i3status/i3status.go as config
+ ''
+ mv samples/i3status/i3status.go main/i3status.go
+ '' else # import config and patch font loading
+ ''
+ cp "${i3statusGo}" main/i3status.go
+ sed -i '0,\|fontawesome.Load()|s||fontawesome.Load("${pkgs.personal.fontMetadata.fontawesome}")|' main/i3status.go
+ sed -i '0,\|mdi.Load()|s||mdi.Load("${pkgs.personal.fontMetadata.material-design-icons}")|' main/i3status.go
+ '') + # patch call to iwgetid
+ ''
+ sed -i '0,\|/sbin/iwgetid|s||${pkgs.wirelesstools}/bin/iwgetid|' modules/wlan/wlan.go
+ '';
+
+ subPackages = [ "main/i3status.go" ];
+
+ vendorSha256 = "1agvkrs2az65ldmlhwajxym36w14jnv9lyri413cw43iazhiv7r7";
+}
+
diff --git a/home/pkgs/barista/shell.nix b/home/pkgs/barista/shell.nix
new file mode 100644
index 0000000..0fcfc92
--- /dev/null
+++ b/home/pkgs/barista/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/pkgs/default.nix b/home/pkgs/default.nix
new file mode 100644
index 0000000..81b05fb
--- /dev/null
+++ b/home/pkgs/default.nix
@@ -0,0 +1,11 @@
+{ pkgs }:
+
+{
+ barista = pkgs.callPackage ./barista {};
+ lockscreen = pkgs.callPackage ./lockscreen {};
+
+ firefoxPackages = import ./firefoxPackages { inherit pkgs; };
+ fontMetadata = import ./fontMetadata { inherit pkgs; };
+ gitignore = import ./gitignore { inherit pkgs; };
+ icons = import ./icons { inherit pkgs; };
+}
diff --git a/home/pkgs/firefoxPackages/.direnv/cache-pre295280.fa0326ce523 b/home/pkgs/firefoxPackages/.direnv/cache-pre295280.fa0326ce523
new file mode 100644
index 0000000..f884cb6
--- /dev/null
+++ b/home/pkgs/firefoxPackages/.direnv/cache-pre295280.fa0326ce523
@@ -0,0 +1 @@
+export $'nobuildPhase'=$'echo\necho "This derivation is not meant to be built, aborting";\necho\nexit 1\n';export $'shellHook'='';export $'depsHostHostPropagated'='';export CONFIG_SHELL=$'/nix/store/a4yw1svqqk4d8lhwinn9xp847zz9gfma-bash-4.4-p23/bin/bash';export $'propagatedNativeBuildInputs'='';export SSL_CERT_FILE=$'/no-cert-file.crt';export STRINGS=$'strings';export LOGNAME=$'qaristote';export $'propagatedBuildInputs'='';export IN_NIX_SHELL=$'pure';export $'NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export PYTHONHASHSEED=0;export $'NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export $'system'=$'x86_64-linux';export $'exitHook'='';export AR=$'ar';export $'depsBuildBuild'='';export SHLVL=5;export USER=$'qaristote';export PYTHONNOUSERSITE=1;export $'depsTargetTarget'='';export NM=$'nm';export __ETC_PROFILE_SOURCED=1;export PAGER=$'less -R';export $'configureFlags'='';export $'doCheck'='';export TERM=$'alacritty';export NIX_SSL_CERT_FILE=$'/no-cert-file.crt';export $'builder'=$'/nix/store/a4yw1svqqk4d8lhwinn9xp847zz9gfma-bash-4.4-p23/bin/bash';export NIX_BINTOOLS=$'/nix/store/pd21dgf1vdpxbfx7ilbwb8hs9l3wd6xd-binutils-wrapper-2.35.1';export _=$'/nix/store/ailc5fvai6byhdgdv6y6z7ydfgpjrhx1-direnv-2.28.0/bin/direnv';export $'depsBuildTargetPropagated'='';export $'depsTargetTargetPropagated'='';export $'out'=$'/nix/store/811fplwsaml1hgh7gvm7kyk5qws9sfh3-nix-shell';export HOME=$'/home/qaristote';export RANLIB=$'ranlib';export AS=$'as';export NIX_BUILD_CORES=8;export NIX_BUILD_TOP=$'/run/user/1000';export DISPLAY=$':0';export $'buildInputs'='';export READELF=$'readelf';export SHELL=$'/nix/store/fgbzvd4c6nly9m4dpczrxybdpkm8mnk3-bash-interactive-4.4-p23/bin/bash';export $'depsHostHost'='';export NIX_INDENT_MAKE=1;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 HOST_PATH=$'/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 $'phases'=$'nobuildPhase';export NIX_ENFORCE_NO_NATIVE=1;export TMPDIR=$'/run/user/1000';export NIX_LDFLAGS=$'-rpath /nix/store/811fplwsaml1hgh7gvm7kyk5qws9sfh3-nix-shell/lib64 -rpath /nix/store/811fplwsaml1hgh7gvm7kyk5qws9sfh3-nix-shell/lib -L/nix/store/66fbv9mmx1j4hrn9y06kcp73c3yb196r-python3-3.8.9/lib -L/nix/store/66fbv9mmx1j4hrn9y06kcp73c3yb196r-python3-3.8.9/lib';export $'shell'=$'/nix/store/a4yw1svqqk4d8lhwinn9xp847zz9gfma-bash-4.4-p23/bin/bash';export SOURCE_DATE_EPOCH=315532800;export _PYTHON_HOST_PLATFORM=$'linux-x86_64';export STRIP=$'strip';export OBJCOPY=$'objcopy';export TMP=$'/run/user/1000';export OBJDUMP=$'objdump';export NIX_CFLAGS_COMPILE=$' -frandom-seed=811fplwsam -isystem /nix/store/66fbv9mmx1j4hrn9y06kcp73c3yb196r-python3-3.8.9/include -isystem /nix/store/66fbv9mmx1j4hrn9y06kcp73c3yb196r-python3-3.8.9/include';export $'depsBuildBuildPropagated'='';export $'stdenv'=$'/nix/store/qg8qhrxiab3r87xmaxbq565g1g8bnl57-stdenv-linux';export CXX=$'g++';export NIX_HARDENING_ENABLE=$'fortify stackprotector pic strictoverflow format relro bindnow';export $'nativeBuildInputs'=$'/nix/store/vwjjqgfg9gd4l0zb8h2p0zgpj2w3p4cd-nixfmt-0.4.0 /nix/store/h92k7hcwbbnkslr72v80xcfjnykwdqml-python3.8-nix-prefetch-github-4.0.3 /nix/store/6bni77fxj9k8sgr6mygid93w0qd1v1hd-nixpkgs-firefox-addons-0.8.0';export $'patches'='';export SIZE=$'size';export CC=$'gcc';export NIX_STORE=$'/nix/store';export DETERMINISTIC_BUILD=1;export $'name'=$'nix-shell';export $'doInstallCheck'='';export TEMPDIR=$'/run/user/1000';export NIX_CC=$'/nix/store/35pnk5kwi26m3ph2bc7dxwjnavpzl8cn-gcc-wrapper-10.3.0';export LD=$'ld';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/6bni77fxj9k8sgr6mygid93w0qd1v1hd-nixpkgs-firefox-addons-0.8.0/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/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 $'depsBuildTarget'='';export _PYTHON_SYSCONFIGDATA_NAME=$'_sysconfigdata__linux_x86_64-linux-gnu';export $'strictDeps'='';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 $'outputs'=$'out';export TEMP=$'/run/user/1000';
diff --git a/home/pkgs/firefoxPackages/.direnv/cache-pre301044.87807e64a5e b/home/pkgs/firefoxPackages/.direnv/cache-pre301044.87807e64a5e
new file mode 100644
index 0000000..8cfcec4
--- /dev/null
+++ b/home/pkgs/firefoxPackages/.direnv/cache-pre301044.87807e64a5e
@@ -0,0 +1 @@
+export TMP=$'/run/user/1000';export $'depsBuildBuildPropagated'='';export NIX_BUILD_CORES=8;export $'depsTargetTarget'='';export $'shellHook'='';export DETERMINISTIC_BUILD=1;export IN_NIX_SHELL=$'pure';export NIX_BINTOOLS=$'/nix/store/1xmid45vayj917km02cvkwq5054mz2ms-binutils-wrapper-2.35.1';export $'NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export $'propagatedNativeBuildInputs'='';export RANLIB=$'ranlib';export NIX_CFLAGS_COMPILE=$' -frandom-seed=vpfkicj30k -isystem /nix/store/6cfajs6lsy9b4wxp3jvyyl1g5x2pjmpr-python3-3.8.9/include -isystem /nix/store/6cfajs6lsy9b4wxp3jvyyl1g5x2pjmpr-python3-3.8.9/include';export $'outputs'=$'out';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 /nix/store/0qgcnsws0hyz07skd6n4zgkpmkrnl1vd-nixpkgs-firefox-addons-0.8.0';export $'builder'=$'/nix/store/x0dcb2rxlzf32g0ddfkqqz1sfcyx4yay-bash-4.4-p23/bin/bash';export $'strictDeps'='';export $'name'=$'nix-shell';export $'doCheck'='';export TEMPDIR=$'/run/user/1000';export LOGNAME=$'qaristote';export HOST_PATH=$'/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_CC=$'/nix/store/fdy0bnh3x01rysv3cig42wq3sfcqf0zz-gcc-wrapper-10.3.0';export $'shell'=$'/nix/store/x0dcb2rxlzf32g0ddfkqqz1sfcyx4yay-bash-4.4-p23/bin/bash';export NIX_INDENT_MAKE=1;export $'depsHostHost'='';export $'depsBuildTargetPropagated'='';export __ETC_PROFILE_SOURCED=1;export $'nobuildPhase'=$'echo\necho "This derivation is not meant to be built, aborting";\necho\nexit 1\n';export NIX_STORE=$'/nix/store';export _=$'/nix/store/bbxlj6k92wzv0122nibb3sqjvvplq6db-direnv-2.28.0/bin/direnv';export $'exitHook'='';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 TEMP=$'/run/user/1000';export $'patches'='';export AS=$'as';export AR=$'ar';export SSL_CERT_FILE=$'/no-cert-file.crt';export $'depsBuildBuild'='';export TERM=$'alacritty';export NIX_LDFLAGS=$'-rpath /nix/store/vpfkicj30kb3hh8nc77ja91yl0kg7n5l-nix-shell/lib64 -rpath /nix/store/vpfkicj30kb3hh8nc77ja91yl0kg7n5l-nix-shell/lib -L/nix/store/6cfajs6lsy9b4wxp3jvyyl1g5x2pjmpr-python3-3.8.9/lib -L/nix/store/6cfajs6lsy9b4wxp3jvyyl1g5x2pjmpr-python3-3.8.9/lib';export READELF=$'readelf';export HOME=$'/home/qaristote';export $'depsTargetTargetPropagated'='';export _PYTHON_HOST_PLATFORM=$'linux-x86_64';export PAGER=$'less -R';export STRIP=$'strip';export $'doInstallCheck'='';export NIX_HARDENING_ENABLE=$'fortify stackprotector pic strictoverflow format relro bindnow';export SOURCE_DATE_EPOCH=315532800;export PYTHONNOUSERSITE=1;export _PYTHON_SYSCONFIGDATA_NAME=$'_sysconfigdata__linux_x86_64-linux-gnu';export OBJDUMP=$'objdump';export $'configureFlags'='';export $'depsHostHostPropagated'='';export NIX_SSL_CERT_FILE=$'/no-cert-file.crt';export STRINGS=$'strings';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/0qgcnsws0hyz07skd6n4zgkpmkrnl1vd-nixpkgs-firefox-addons-0.8.0/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/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 $'propagatedBuildInputs'='';export $'buildInputs'='';export NIX_BUILD_TOP=$'/run/user/1000';export LD=$'ld';export CC=$'gcc';export $'depsBuildTarget'='';export $'NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu'=1;export $'system'=$'x86_64-linux';export $'phases'=$'nobuildPhase';export NM=$'nm';export $'stdenv'=$'/nix/store/qdf49mvm79r83n9c9s7pkmmjqwhrw8jv-stdenv-linux';export CONFIG_SHELL=$'/nix/store/x0dcb2rxlzf32g0ddfkqqz1sfcyx4yay-bash-4.4-p23/bin/bash';export SHELL=$'/nix/store/xmxgxig6zxrixicc7905ssgb4yc3lysa-bash-interactive-4.4-p23/bin/bash';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 SIZE=$'size';export NIX_ENFORCE_NO_NATIVE=1;export CXX=$'g++';export TMPDIR=$'/run/user/1000';export SHLVL=5;export USER=$'qaristote';export OBJCOPY=$'objcopy';export PYTHONHASHSEED=0;export DISPLAY=$':0';export $'out'=$'/nix/store/vpfkicj30kb3hh8nc77ja91yl0kg7n5l-nix-shell';
diff --git a/home/pkgs/firefoxPackages/.direnv/cache-pre304626.8ecc61c91a5 b/home/pkgs/firefoxPackages/.direnv/cache-pre304626.8ecc61c91a5
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/home/pkgs/firefoxPackages/.direnv/cache-pre304626.8ecc61c91a5
diff --git a/home/pkgs/firefoxPackages/.direnv/drv b/home/pkgs/firefoxPackages/.direnv/drv
new file mode 120000
index 0000000..2ca5df1
--- /dev/null
+++ b/home/pkgs/firefoxPackages/.direnv/drv
@@ -0,0 +1 @@
+/nix/store/paaismx5mrxg78jzj9n4n0cigdqjgcip-nix-shell.drv \ No newline at end of file
diff --git a/home/pkgs/firefoxPackages/.envrc b/home/pkgs/firefoxPackages/.envrc
new file mode 100644
index 0000000..4a4726a
--- /dev/null
+++ b/home/pkgs/firefoxPackages/.envrc
@@ -0,0 +1 @@
+use_nix
diff --git a/home/pkgs/firefoxPackages/addons.json b/home/pkgs/firefoxPackages/addons.json
new file mode 100644
index 0000000..094e28c
--- /dev/null
+++ b/home/pkgs/firefoxPackages/addons.json
@@ -0,0 +1,15 @@
+[
+ { "slug": "canvasblocker" },
+ { "slug": "clearurls" },
+ { "slug": "neat-url" },
+ { "slug": "redirector" },
+ { "slug": "smart-referer" },
+ { "slug": "temporary-containers" },
+ { "slug": "ublock-origin" },
+
+ { "slug": "darkreader" },
+ { "slug": "multi-account-containers" },
+ { "slug": "tree-style-tab" },
+ { "slug": "unpaywall" },
+ { "slug": "url-in-title" }
+]
diff --git a/home/pkgs/firefoxPackages/addons.nix b/home/pkgs/firefoxPackages/addons.nix
new file mode 100644
index 0000000..b914ee7
--- /dev/null
+++ b/home/pkgs/firefoxPackages/addons.nix
@@ -0,0 +1,169 @@
+{ buildFirefoxXpiAddon, fetchurl, lib, stdenv }:
+ {
+ "canvasblocker" = buildFirefoxXpiAddon {
+ pname = "canvasblocker";
+ version = "1.6.1";
+ addonId = "CanvasBlocker@kkapsner.de";
+ url = "https://addons.mozilla.org/firefox/downloads/file/3799708/canvasblocker-1.6.1-an+fx.xpi";
+ sha256 = "4db930c2100d3a01c001f60a7a168f41ec4a6374da6a55e2ae3b37aa37df8967";
+ meta = with lib;
+ {
+ homepage = "https://github.com/kkapsner/CanvasBlocker/";
+ description = "Alters some JS APIs to prevent fingerprinting.";
+ license = licenses.mpl20;
+ platforms = platforms.all;
+ };
+ };
+ "clearurls" = buildFirefoxXpiAddon {
+ pname = "clearurls";
+ version = "1.21.0";
+ addonId = "{74145f27-f039-47ce-a470-a662b129930a}";
+ url = "https://addons.mozilla.org/firefox/downloads/file/3748919/clearurls-1.21.0-an+fx.xpi";
+ sha256 = "eb0b199cd478b21bc1fab59be627603946d1474070aa4eb482c44d18c041d974";
+ meta = with lib;
+ {
+ homepage = "https://clearurls.xyz/";
+ description = "Removes tracking elements from URLs";
+ license = licenses.lgpl3;
+ platforms = platforms.all;
+ };
+ };
+ "darkreader" = buildFirefoxXpiAddon {
+ pname = "darkreader";
+ version = "4.9.34";
+ addonId = "addon@darkreader.org";
+ url = "https://addons.mozilla.org/firefox/downloads/file/3806938/dark_reader-4.9.34-an+fx.xpi";
+ sha256 = "9ba482118d25675af31ee403c740972a106fdccfd117c4449c046b70f1a2d95d";
+ meta = with lib;
+ {
+ homepage = "https://darkreader.org/";
+ description = "Dark mode for every website. Take care of your eyes, use dark theme for night and daily browsing.";
+ license = licenses.mit;
+ platforms = platforms.all;
+ };
+ };
+ "multi-account-containers" = buildFirefoxXpiAddon {
+ pname = "multi-account-containers";
+ version = "7.3.0";
+ addonId = "@testpilot-containers";
+ url = "https://addons.mozilla.org/firefox/downloads/file/3713375/firefox_multi_account_containers-7.3.0-fx.xpi";
+ sha256 = "4784cbd5de44d65f4cc014949dcbd315503f4913dfa7b3124b8d84c49515666a";
+ meta = with lib;
+ {
+ homepage = "https://github.com/mozilla/multi-account-containers/#readme";
+ description = "Firefox Multi-Account Containers lets you keep parts of your online life separated into color-coded tabs that preserve your privacy. Cookies are separated by container, allowing you to use the web with multiple identities or accounts simultaneously.";
+ license = licenses.mpl20;
+ platforms = platforms.all;
+ };
+ };
+ "neat-url" = buildFirefoxXpiAddon {
+ pname = "neat-url";
+ version = "5.0.0";
+ addonId = "neaturl@hugsmile.eu";
+ url = "https://addons.mozilla.org/firefox/downloads/file/3557562/neat_url-5.0.0-an+fx.xpi";
+ sha256 = "0b41899ea0eb424517bbe7ce067eae22de0ff659a0f171671e604edef86cfa2c";
+ meta = with lib;
+ {
+ homepage = "http://hugsmile.eu";
+ description = "Remove garbage from URLs.";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ };
+ };
+ "redirector" = buildFirefoxXpiAddon {
+ pname = "redirector";
+ version = "3.5.3";
+ addonId = "redirector@einaregilsson.com";
+ url = "https://addons.mozilla.org/firefox/downloads/file/3535009/redirector-3.5.3-an+fx.xpi";
+ sha256 = "eddbd3d5944e748d0bd6ecb6d9e9cf0e0c02dced6f42db21aab64190e71c0f71";
+ meta = with lib;
+ {
+ homepage = "http://einaregilsson.com/redirector/";
+ description = "Automatically redirects to user-defined urls on certain pages";
+ license = licenses.mit;
+ platforms = platforms.all;
+ };
+ };
+ "smart-referer" = buildFirefoxXpiAddon {
+ pname = "smart-referer";
+ version = "0.2.15";
+ addonId = "smart-referer@meh.paranoid.pk";
+ url = "https://addons.mozilla.org/firefox/downloads/file/3470999/smart_referer-0.2.15-an+fx.xpi";
+ sha256 = "4751ab905c4d9d13b1f21c9fc179efed7d248e3476effb5b393268b46855bf1a";
+ meta = with lib;
+ {
+ homepage = "https://gitlab.com/smart-referer/smart-referer";
+ description = "Improve your privacy by limiting Referer information leak!";
+ platforms = platforms.all;
+ };
+ };
+ "temporary-containers" = buildFirefoxXpiAddon {
+ pname = "temporary-containers";
+ version = "1.9.2";
+ addonId = "{c607c8df-14a7-4f28-894f-29e8722976af}";
+ url = "https://addons.mozilla.org/firefox/downloads/file/3723251/temporary_containers-1.9.2-fx.xpi";
+ sha256 = "3340a08c29be7c83bd0fea3fc27fde71e4608a4532d932114b439aa690e7edc0";
+ meta = with lib;
+ {
+ homepage = "https://github.com/stoically/temporary-containers";
+ description = "Open tabs, websites, and links in automatically managed disposable containers. Containers isolate data websites store (cookies, storage, and more) from each other, enhancing your privacy and security while you browse.";
+ license = licenses.mit;
+ platforms = platforms.all;
+ };
+ };
+ "tree-style-tab" = buildFirefoxXpiAddon {
+ pname = "tree-style-tab";
+ version = "3.8.7";
+ addonId = "treestyletab@piro.sakura.ne.jp";
+ url = "https://addons.mozilla.org/firefox/downloads/file/3807070/tree_style_tab_-3.8.7-fx.xpi";
+ sha256 = "791e89cf720b0b7cc33a5b1fe6c1552490958b06e4ac0a456805fdbb3975b49c";
+ meta = with lib;
+ {
+ homepage = "http://piro.sakura.ne.jp/xul/_treestyletab.html.en";
+ description = "Show tabs like a tree.";
+ platforms = platforms.all;
+ };
+ };
+ "ublock-origin" = buildFirefoxXpiAddon {
+ pname = "ublock-origin";
+ version = "1.36.2";
+ addonId = "uBlock0@raymondhill.net";
+ url = "https://addons.mozilla.org/firefox/downloads/file/3806442/ublock_origin-1.36.2-an+fx.xpi";
+ sha256 = "31f8c2126a3f4e3cfe3ef63550b842a5d4f071ec1c6e5aa377c2f29b11ff1415";
+ meta = with lib;
+ {
+ homepage = "https://github.com/gorhill/uBlock#ublock-origin";
+ description = "Finally, an efficient wide-spectrum content blocker. Easy on CPU and memory.";
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ };
+ };
+ "unpaywall" = buildFirefoxXpiAddon {
+ pname = "unpaywall";
+ version = "3.96";
+ addonId = "{f209234a-76f0-4735-9920-eb62507a54cd}";
+ url = "https://addons.mozilla.org/firefox/downloads/file/3806465/unpaywall-3.96-fx.xpi";
+ sha256 = "fa19409ca9feab9121e39d01bb46fc658abcaded172adb5900a2b52c60bc9f65";
+ meta = with lib;
+ {
+ homepage = "http://unpaywall.org/products/extension";
+ description = "Get free text of research papers as you browse, using Unpaywall's index of ten million legal, open-access articles.";
+ license = licenses.mit;
+ platforms = platforms.all;
+ };
+ };
+ "url-in-title" = buildFirefoxXpiAddon {
+ pname = "url-in-title";
+ version = "0.5";
+ addonId = "{fcdb71fb-c9e5-48a3-9d04-e32713f5da88}";
+ url = "https://addons.mozilla.org/firefox/downloads/file/792317/titleurl-0.5-an+fx-linux.xpi";
+ sha256 = "5db99d775cef3c3da069b7e8e1b1e7d68c3720236c99827d85c4e78d3c35dbd7";
+ meta = with lib;
+ {
+ homepage = "https://github.com/cloutierjo/titleUrl";
+ description = "Add the current host name to the windows title bar. It adds the possibility to recognize the window from other application that work based on windows titles like KeePass's autotype.";
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ };
+ };
+ } \ No newline at end of file
diff --git a/home/pkgs/firefoxPackages/default.nix b/home/pkgs/firefoxPackages/default.nix
new file mode 100644
index 0000000..b1b8a62
--- /dev/null
+++ b/home/pkgs/firefoxPackages/default.nix
@@ -0,0 +1,14 @@
+{ pkgs }:
+
+let pkgs-rycee = pkgs.nur.repos.rycee;
+in {
+ addons = import ./addons.nix {
+ inherit (pkgs) fetchurl stdenv lib;
+ inherit (pkgs-rycee.firefox-addons) buildFirefoxXpiAddon;
+ };
+ arkenfox-userjs = pkgs.fetchurl {
+ url =
+ "https://raw.githubusercontent.com/arkenfox/user.js/eb4363dc180666554ca81a7909156e0893e80c3b/user.js";
+ sha256 = sha256:00sn8imlv659b3zn2i0cs0pqm2zra93dfh9rhashlcj0kamq67f6;
+ };
+}
diff --git a/home/pkgs/firefoxPackages/shell.nix b/home/pkgs/firefoxPackages/shell.nix
new file mode 100644
index 0000000..15e0ee8
--- /dev/null
+++ b/home/pkgs/firefoxPackages/shell.nix
@@ -0,0 +1,12 @@
+{ pkgs ? import <nixpkgs> { } }:
+
+let
+ nur = import (builtins.fetchTarball
+ "https://github.com/nix-community/NUR/archive/master.tar.gz") {
+ inherit pkgs;
+ };
+ settings = {
+ nix.enable = true;
+ nativeBuildInputs = [ nur.repos.rycee.firefox-addons-generator ];
+ };
+in import ~/documents/nix/shells { inherit pkgs settings; }
diff --git a/home/pkgs/fontMetadata/default.nix b/home/pkgs/fontMetadata/default.nix
new file mode 100644
index 0000000..4779f43
--- /dev/null
+++ b/home/pkgs/fontMetadata/default.nix
@@ -0,0 +1,6 @@
+{ pkgs }:
+
+{
+ fontawesome = pkgs.callPackage ./fontawesome.nix { };
+ material-design-icons = pkgs.callPackage ./material-design-icons.nix { };
+}
diff --git a/home/pkgs/fontMetadata/fontawesome.nix b/home/pkgs/fontMetadata/fontawesome.nix
new file mode 100644
index 0000000..9686557
--- /dev/null
+++ b/home/pkgs/fontMetadata/fontawesome.nix
@@ -0,0 +1,17 @@
+{ pkgs }:
+
+with pkgs;
+stdenv.mkDerivation rec {
+ name = "fontawesome-metadata";
+ src = fetchFromGitHub {
+ owner = "FortAwesome";
+ repo = "Font-Awesome";
+ rev = "d79d85c3fad85ad1885e87ed558f4afd6fce8289";
+ sha256 = "1sqj64vmnpysy0mc4w7b393030dzlk2vn2i1a0bzi8zlbsrccm88";
+ };
+
+ installPhase = ''
+ mkdir -p $out
+ cp --parent metadata/icons.yml $out
+ '';
+}
diff --git a/home/pkgs/fontMetadata/material-design-icons.nix b/home/pkgs/fontMetadata/material-design-icons.nix
new file mode 100644
index 0000000..7abb7cb
--- /dev/null
+++ b/home/pkgs/fontMetadata/material-design-icons.nix
@@ -0,0 +1,18 @@
+{ pkgs }:
+
+with pkgs;
+stdenv.mkDerivation {
+ name = "material-design-icons-metadata";
+
+ src = fetchFromGitHub {
+ owner = "Templarian";
+ repo = "MaterialDesign-Webfont";
+ rev = "34bdb8135d3307eac87bcbd7377c5ae344f09b42";
+ sha256 = "0mg6g262qjhjrkc9xjlv3s8a7qfh1wglfbg513d414xh3zlms4cl";
+ };
+
+ installPhase = ''
+ mkdir -p $out
+ cp --parent scss/_variables.scss $out
+ '';
+}
diff --git a/home/pkgs/gitignore/default.nix b/home/pkgs/gitignore/default.nix
new file mode 100644
index 0000000..42bc63e
--- /dev/null
+++ b/home/pkgs/gitignore/default.nix
@@ -0,0 +1,10 @@
+{ pkgs }:
+
+let fetch-gitignore = module: sha256:
+ let url = "https://www.toptal.com/developers/gitignore/api/" + module;
+ in pkgs.fetchurl { inherit url sha256; };
+in {
+ emacs = fetch-gitignore "emacs" "1lswj6cna6y67i9siyr3rsa6z4ky42s9pv8zrji33swdlb8xmzxf";
+ linux = fetch-gitignore "linux" "16f8gr0glc1ai6flm310kv5sfhil6sjh4qr4k1914da1bhhib390";
+ fetcher = fetch-gitignore;
+}
diff --git a/home/pkgs/icons/default.nix b/home/pkgs/icons/default.nix
new file mode 100644
index 0000000..8b722d8
--- /dev/null
+++ b/home/pkgs/icons/default.nix
@@ -0,0 +1,15 @@
+{ pkgs }: {
+ netflix = pkgs.fetchurl {
+ url = "https://www.vectorlogo.zone/logos/netflix/netflix-icon.svg";
+ sha256 = "0b4gqhw9y62fm72x61q03yzbllgfxpkjbbsdvj7d5wg3jshjkgdb";
+ };
+ mubi = pkgs.fetchurl {
+ url = "https://mubi.com/logo";
+ sha256 = "0fj6bafba9z8yirklr74b708pzmy8pjg68l1vx139ddnimh2d4n3";
+ };
+ deezer = pkgs.fetchurl {
+ url =
+ "https://raw.githubusercontent.com/edent/SuperTinyIcons/master/images/svg/deezer.svg";
+ sha256 = "1qcj1gqz8gc9cwlj4cl6yj5ik1vz4ya6qcncr5fbciprzaaf3pg9";
+ };
+}
diff --git a/home/pkgs/icons/generate-package.sh b/home/pkgs/icons/generate-package.sh
new file mode 100755
index 0000000..9485b87
--- /dev/null
+++ b/home/pkgs/icons/generate-package.sh
@@ -0,0 +1,11 @@
+icons=$(cat icons.txt)
+
+echo '{ pkgs }:' | tee default.nix
+echo '{' | tee -a default.nix
+while read -r line; do
+ name=$(echo $line | cut -f1 -d' ')
+ url=$(echo $line | cut -f2 -d' ')
+ sha256=$(nix-prefetch-url $url 2>/dev/null)
+ echo -e "\t$name = pkgs.fetchurl {\n\t\turl = \"$url\";\n\t\tsha256 = \"$sha256\";\n\t};" | tee -a default.nix
+done <<< $icons
+echo '}' | tee -a default.nix
diff --git a/home/pkgs/icons/icons.txt b/home/pkgs/icons/icons.txt
new file mode 100644
index 0000000..388daa2
--- /dev/null
+++ b/home/pkgs/icons/icons.txt
@@ -0,0 +1,3 @@
+netflix https://www.vectorlogo.zone/logos/netflix/netflix-icon.svg
+mubi https://mubi.com/logo
+deezer https://raw.githubusercontent.com/edent/SuperTinyIcons/master/images/svg/deezer.svg
diff --git a/home/pkgs/lockscreen/default.nix b/home/pkgs/lockscreen/default.nix
new file mode 100644
index 0000000..b36b08b
--- /dev/null
+++ b/home/pkgs/lockscreen/default.nix
@@ -0,0 +1,37 @@
+{ pkgs, backgroundImage ? null, resolution ? "1920x1080" }:
+
+let useBackgroundImage = backgroundImage != null;
+in pkgs.runCommand "lockscreen" {
+ buildInputs = with pkgs;
+ [
+ # xorg.xdpyinfo
+ ];
+ envVariable = true;
+} (''
+ mkdir -p $out/{bin,share}
+'' + (if useBackgroundImage then ''
+ ${pkgs.imagemagick}/bin/convert ${backgroundImage} -resize ${resolution} -blur 0x5 RGB:$out/share/lockscreen.png
+'' else
+ "") + ''
+ echo > $out/bin/lockscreen.sh \
+ "export PATH=$PATH
+ ${pkgs.i3lock-color}/bin/i3lock-color \\
+ '' + (if useBackgroundImage then ''
+ --raw ${resolution}:rgb \\
+ --image $out/share/lockscreen.png \\
+ '' else
+ "") + ''
+ --no-unlock-indicator \\
+ --composite \\
+ --clock \\
+ --ignore-empty-password \\
+ --time-color=FFFFFFFF \\
+ --date-color=00000000 \\
+ --time-size=100"
+ '' + (if useBackgroundImage then ''
+ chmod 444 $out/share/lockscreen.png
+ '' else
+ "") + ''
+ chmod 555 $out/bin/lockscreen.sh
+ chmod 555 $out/{bin,share}
+ '')
diff --git a/nixos/boot.nix b/nixos/boot.nix
new file mode 100644
index 0000000..8c7b28c
--- /dev/null
+++ b/nixos/boot.nix
@@ -0,0 +1,38 @@
+{ config, ... }:
+
+{
+ imports = [ # Include the results of the hardware scan.
+ ./hardware-configuration.nix
+ ];
+
+ boot.loader = {
+ systemd-boot.enable = true;
+ efi = { canTouchEfiVariables = true; };
+ grub = {
+ enable = true;
+ version = 2;
+ efiSupport = true;
+ enableCryptodisk = true;
+ device = "nodev";
+ # extraEntries =
+ # # Recovery mode
+ # # Generate the image with generate-recovery.sh
+ # ''
+ # menuentry "NixOS - Recovery" {
+ # search --set=drive1 -fs-uuid 330B-45DE
+ # linux ($drive1)//kernels/recovery-linux-bzImage loglevel=4
+ # initrd ($drive1)//kernels/recovery-initrd
+ # }
+ # '';
+ };
+ };
+
+ # Decrypt disk
+ boot.initrd.luks.devices = {
+ sda3_crypt = {
+ name = "sda3_crypt";
+ device = "/dev/disk/by-uuid/ba5dc9cd-3a73-4a01-880b-8720844307ae";
+ preLVM = true;
+ };
+ };
+}
diff --git a/nixos/configuration.nix b/nixos/configuration.nix
new file mode 100644
index 0000000..85f432e
--- /dev/null
+++ b/nixos/configuration.nix
@@ -0,0 +1,51 @@
+# Edit this configuration file to define what should be installed on
+# your system. Help is available in the configuration.nix(5) man page
+# and in the NixOS manual (accessible by running ‘nixos-help’).
+
+{ config, pkgs, ... }:
+
+{
+ imports = [
+ <home-manager/nixos>
+
+ ./boot.nix
+ ./locale.nix
+ ./networking.nix
+ ./desktop.nix
+ ./users.nix
+ ./services.nix
+ ];
+
+ # List packages installed in system profile. To search, run:
+ # $ nix search wget
+ environment.systemPackages = with pkgs; [ vim busybox coreutils openssl ];
+ nixpkgs.config = { allowUnfree = true; };
+
+ nix = {
+ # package = pkgs.nixUnstable;
+ # extraOptions = ''
+ # experimental-features = nix-command flakes
+ # '';
+ autoOptimiseStore = true;
+ gc = {
+ automatic = false;
+ dates = "weekly";
+ };
+ };
+
+ # Some programs need SUID wrappers, can be configured further or are
+ # started in user sessions.
+ # programs.mtr.enable = true;
+ # programs.gnupg.agent = {
+ # enable = true;
+ # enableSSHSupport = true;
+ # };
+
+ # This value determines the NixOS release from which the default
+ # settings for stateful data, like file locations and database versions
+ # on your system were taken. It‘s perfectly fine and recommended to leave
+ # this value at the release version of the first install of this system.
+ # Before changing this value read the documentation for this option
+ # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
+ system.stateVersion = "20.09"; # Did you read the comment?
+}
diff --git a/nixos/desktop.nix b/nixos/desktop.nix
new file mode 100644
index 0000000..bf9909f
--- /dev/null
+++ b/nixos/desktop.nix
@@ -0,0 +1,63 @@
+{ config, pkgs, nixpkgs, ... }:
+
+let
+ # background-image = builtins.path {
+ # name = "background-image";
+ # path = /home/qaristote/.background-image;
+ # };
+ background-image = config.home-manager.users.qaristote.home.wallpaper;
+in {
+ # Configure keymap in X11
+ # services.xserver.layout = "us";
+ # services.xserver.xkbOptions = "eurosign:e";
+
+ # Enable CUPS to print documents.
+ # services.printing.enable = true;
+
+ # Enable sound.
+ sound.enable = true;
+ hardware.pulseaudio = {
+ enable = true;
+ support32Bit = true;
+ package = pkgs.pulseaudioFull;
+ extraConfig = ''
+ load-module module-dbus-protocol
+ '';
+ };
+ nixpkgs.config.pulseaudio = true;
+
+ # Enable X server
+ services.xserver = {
+ enable = true;
+ desktopManager.xfce.enable = true;
+ windowManager.i3.enable = true;
+ displayManager = {
+ lightdm = {
+ enable = true;
+ background = background-image;
+ greeters.gtk = {
+ enable = true;
+ theme = {
+ name = "Arc-Dark";
+ package = pkgs.arc-theme;
+ };
+ iconTheme = {
+ name = "Breeze-dark";
+ package = pkgs.breeze-icons;
+ };
+ };
+ };
+ defaultSession = "xfce+i3";
+ };
+ # Hardware
+ libinput.enable = true;
+ layout = "fr";
+ autoRepeatDelay = 200;
+ };
+
+ # Enable all users to change hardware settings (brightness, backlight)
+ services.udev.extraRules = ''
+ ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", MODE="0666", RUN+="${pkgs.coreutils}/bin/chmod a+w /sys/class/backlight/%k/brightness"
+ ACTION=="add", SUBSYSTEM=="leds", KERNEL=="dell::kbd_backlight", MODE="0666", RUN+="${pkgs.coreutils}/bin/chmod a+w /sys/class/leds/%k/brightness"
+ '';
+}
diff --git a/nixos/hardware-configuration.nix b/nixos/hardware-configuration.nix
new file mode 100644
index 0000000..b308ee1
--- /dev/null
+++ b/nixos/hardware-configuration.nix
@@ -0,0 +1,33 @@
+{ lib, pkgs, modulesPath, ... }:
+
+{
+ imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
+
+ boot.initrd.availableKernelModules =
+ [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
+ boot.initrd.kernelModules = [ "dm-snapshot" ];
+ boot.kernelModules = [ "kvm-intel" ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" = {
+ device = "/dev/disk/by-uuid/f5809224-8478-474f-b25d-dde1ada37957";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot" = {
+ device = "/dev/disk/by-uuid/330B-45DE";
+ fsType = "vfat";
+ };
+
+ fileSystems."/home" = {
+ device = "/dev/disk/by-uuid/8a6efcde-2361-40d5-a341-62188c014618";
+ fsType = "ext4";
+ };
+
+ swapDevices =
+ [{ device = "/dev/disk/by-uuid/0cf1b50c-670c-4dc6-bb91-fc45d6148028"; }];
+
+ hardware.firmware = with pkgs; [ firmwareLinuxNonfree ];
+ powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
+ programs.steam.enable = true;
+}
diff --git a/nixos/locale.nix b/nixos/locale.nix
new file mode 100644
index 0000000..1c79541
--- /dev/null
+++ b/nixos/locale.nix
@@ -0,0 +1,15 @@
+{ config, ... }:
+
+{
+ time.timeZone = "Europe/Paris";
+ location = {
+ latitude = 48.856614;
+ longitude = 2.3522219;
+ };
+
+ i18n.defaultLocale = "en_US.UTF-8";
+ console = {
+ font = "Lat2-Terminus16";
+ keyMap = "fr";
+ };
+}
diff --git a/nixos/networking.nix b/nixos/networking.nix
new file mode 100644
index 0000000..92111a1
--- /dev/null
+++ b/nixos/networking.nix
@@ -0,0 +1,68 @@
+{ config, pkgs, ... }:
+
+{
+ networking.hostName = "latitude-7490";
+
+ # NetworkManager
+ environment.systemPackages = with pkgs; [ networkmanager ];
+ networking.networkmanager = {
+ enable = true;
+ unmanaged = [ "interface-name:ve-*" ];
+ };
+
+ # Hosts
+ networking.hosts = {
+ "10.3.141.1" = [ "raspberrypi.local" ];
+ "10.233.1.2" = [ "searx.aristote.fr" "quentin.aristote.fr" "aristote.fr" ];
+ };
+
+ # DHCP
+ networking.interfaces.enp0s31f6.useDHCP = true;
+ networking.interfaces.wlp2s0.useDHCP = true;
+
+ # NAT
+ boot.kernel.sysctl = {
+ "net.ipv4.ip_forward" = 1;
+ };
+ networking = {
+ nat = {
+ enable = true;
+ internalInterfaces = [ "ve-+" ];
+ externalInterface = "tun0";
+ };
+ };
+
+ # Firewall
+ networking.firewall = {
+ enable = true;
+ allowedTCPPorts = [
+ # Syncthing
+ 22000
+ ];
+ allowedTCPPortRanges = [
+ # KDEConnect
+ {
+ from = 1714;
+ to = 1764;
+ }
+ ];
+ allowedUDPPorts = [
+ # Syncthing
+ 22000
+ 21027
+ # Wireguard
+ # 51820
+ ];
+ allowedUDPPortRanges = [
+ # KDE Connect
+ {
+ from = 1714;
+ to = 1764;
+ }
+ ];
+ };
+
+ # Bluetooth
+ hardware.bluetooth.enable = true;
+ services.blueman.enable = true;
+}
diff --git a/nixos/services.nix b/nixos/services.nix
new file mode 100644
index 0000000..720bf2b
--- /dev/null
+++ b/nixos/services.nix
@@ -0,0 +1,19 @@
+{ pkgs, config, ... }:
+
+{
+ # List services that you want to enable:
+
+ # Enable the OpenSSH daemon.
+ # services.openssh.enable = true;
+
+ services = {
+ fcron = {
+ enable = true;
+ allow = [ "qaristote" ];
+ systab = ''
+ # Update the system.
+ @daily root sudo ${pkgs.nix}/bin/nix-channel --update; sudo ${pkgs.nixos-rebuild}/bin/nixos-rebuild switch
+ '';
+ };
+ };
+}
diff --git a/nixos/users.nix b/nixos/users.nix
new file mode 100644
index 0000000..04265e0
--- /dev/null
+++ b/nixos/users.nix
@@ -0,0 +1,18 @@
+{ ... }:
+
+{
+ users.users.qaristote = {
+ isNormalUser = true;
+ extraGroups = [
+ "wheel" # Enable ‘sudo’ for the user.
+ "audio"
+ "networkmanager"
+ ];
+ };
+
+ home-manager = {
+ users.qaristote = import /home/qaristote/.config/nixpkgs;
+ useGlobalPkgs = false;
+ useUserPackages = true; # to enable fontconfig inside home-manager
+ };
+}