summaryrefslogtreecommitdiff
path: root/home/config
diff options
context:
space:
mode:
Diffstat (limited to 'home/config')
-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
27 files changed, 1463 insertions, 0 deletions
diff --git a/home/config/alacritty.nix b/home/config/alacritty.nix
new file mode 100644
index 0000000..c54696e
--- /dev/null
+++ b/home/config/alacritty.nix
@@ -0,0 +1,27 @@
+{ config, ... }:
+
+let
+ user = config.home.username;
+ host = config.networking.hostname;
+in {
+ programs.alacritty = {
+ enable = true;
+
+ settings = {
+ window = {
+ title = "${user}@{hostname}";
+
+ padding = {
+ x = 10;
+ y = 10;
+ };
+ dimensions = {
+ lines = 75;
+ columns = 100;
+ };
+ };
+
+ font = { size = 8.0; };
+ };
+ };
+}
diff --git a/home/config/default.nix b/home/config/default.nix
new file mode 100644
index 0000000..0d02561
--- /dev/null
+++ b/home/config/default.nix
@@ -0,0 +1,18 @@
+{ ... }:
+
+{
+ imports = [
+ ./alacritty.nix
+ ./environment.nix
+ ./emacs.nix
+ ./firefox
+ ./git.nix
+ ./i3
+ ./kdeconnect.nix
+ ./picom.nix
+ ./redshift.nix
+ ./rofi.nix
+ ./syncthing.nix
+ ./xsession.nix
+ ];
+}
diff --git a/home/config/dotfiles/background-image b/home/config/dotfiles/background-image
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;
+ };
+}