From c0c5087218c27e31c3e6f66f3937bff22fa0f647 Mon Sep 17 00:00:00 2001
From: Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>
Date: Tue, 24 Sep 2024 23:13:51 +0530
Subject: Using nix flake modules to manage the configurations.
---
alacritty/default.nix | 72 -----
bash/default.nix | 7 -
bat/default.nix | 8 -
bat/theme.nix | 124 --------
bspwm/bspwmrc | 3 -
bspwm/default.nix | 32 --
flake.nix | 1 +
git/default.nix | 14 -
home.nix | 37 ++-
htop/default.nix | 6 -
lf/default.nix | 15 -
lf/icons | 334 ---------------------
lf/scripts/previewer.sh | 3 -
lsd/default.nix | 11 -
modules/default.nix | 9 +
modules/desktop/default.nix | 11 +
modules/desktop/popup-manager/default.nix | 7 +
modules/desktop/popup-manager/rofi/default.nix | 13 +
.../desktop/popup-manager/rofi/theme/default.nix | 21 ++
.../desktop/popup-manager/rofi/theme/theme.rasi | 76 +++++
modules/desktop/status-bar/default.nix | 7 +
modules/desktop/status-bar/polybar/bars/main.nix | 28 ++
modules/desktop/status-bar/polybar/default.nix | 24 ++
.../desktop/status-bar/polybar/modules/battery.nix | 36 +++
.../desktop/status-bar/polybar/modules/bspwm.nix | 22 ++
modules/desktop/status-bar/polybar/modules/cpu.nix | 9 +
.../desktop/status-bar/polybar/modules/date.nix | 10 +
.../status-bar/polybar/modules/kernel-version.nix | 10 +
.../desktop/status-bar/polybar/modules/memory.nix | 9 +
.../desktop/status-bar/polybar/modules/time.nix | 10 +
.../desktop/status-bar/polybar/modules/xwindow.nix | 7 +
modules/desktop/terminal/alacritty/default.nix | 78 +++++
modules/desktop/terminal/default.nix | 7 +
modules/desktop/window-manager/bspwm/bspwmrc | 3 +
modules/desktop/window-manager/bspwm/default.nix | 38 +++
modules/desktop/window-manager/default.nix | 8 +
modules/desktop/window-manager/sxhkd/default.nix | 79 +++++
.../sxhkd/scripts/show-keybindings.sh | 13 +
modules/desktop/xresources/default.nix | 7 +
modules/desktop/xresources/xinit/default.nix | 14 +
modules/desktop/xresources/xinit/xinitrc | 4 +
modules/shell/bash/default.nix | 13 +
modules/shell/default.nix | 8 +
modules/shell/zsh/default.nix | 15 +
modules/shell/zsh/zshrc | 19 ++
modules/tools/default.nix | 11 +
modules/tools/editor/default.nix | 7 +
modules/tools/editor/neovim/default.nix | 43 +++
modules/tools/editor/neovim/keybindings.lua | 8 +
modules/tools/editor/neovim/options.lua | 21 ++
modules/tools/editor/neovim/plugins/base16.lua | 6 +
modules/tools/editor/neovim/plugins/comment.lua | 1 +
modules/tools/editor/neovim/plugins/lualine.lua | 5 +
modules/tools/editor/neovim/plugins/nvim-tree.lua | 13 +
modules/tools/editor/neovim/plugins/treesitter.nix | 13 +
modules/tools/file-manager/default.nix | 8 +
modules/tools/file-manager/lf/default.nix | 21 ++
modules/tools/file-manager/lf/icons | 334 +++++++++++++++++++++
modules/tools/file-manager/lf/scripts/previewer.sh | 3 +
modules/tools/file-manager/lsd/default.nix | 17 ++
modules/tools/git/default.nix | 20 ++
modules/tools/system-monitor/default.nix | 7 +
modules/tools/system-monitor/htop/default.nix | 12 +
modules/tools/viewer/bat/default.nix | 14 +
modules/tools/viewer/bat/theme.nix | 124 ++++++++
modules/tools/viewer/default.nix | 7 +
nvim/default.nix | 37 ---
nvim/keybindings.lua | 8 -
nvim/options.lua | 21 --
nvim/plugins/base16.lua | 6 -
nvim/plugins/comment.lua | 1 -
nvim/plugins/lualine.lua | 5 -
nvim/plugins/nvim-tree.lua | 13 -
nvim/plugins/treesitter.nix | 13 -
polybar/bars/main.nix | 28 --
polybar/default.nix | 18 --
polybar/modules/battery.nix | 36 ---
polybar/modules/bspwm.nix | 22 --
polybar/modules/cpu.nix | 9 -
polybar/modules/date.nix | 10 -
polybar/modules/kernel-version.nix | 10 -
polybar/modules/memory.nix | 9 -
polybar/modules/time.nix | 10 -
polybar/modules/xwindow.nix | 7 -
rofi/default.nix | 7 -
rofi/theme/default.nix | 21 --
rofi/theme/theme.rasi | 76 -----
sxhkd/default.nix | 73 -----
sxhkd/scripts/show-keybindings.sh | 13 -
xresources/default.nix | 8 -
xresources/xinitrc | 4 -
zsh/default.nix | 9 -
zsh/zshrc | 19 --
93 files changed, 1333 insertions(+), 1137 deletions(-)
delete mode 100644 alacritty/default.nix
delete mode 100644 bash/default.nix
delete mode 100644 bat/default.nix
delete mode 100644 bat/theme.nix
delete mode 100644 bspwm/bspwmrc
delete mode 100644 bspwm/default.nix
delete mode 100644 git/default.nix
delete mode 100644 htop/default.nix
delete mode 100644 lf/default.nix
delete mode 100644 lf/icons
delete mode 100644 lf/scripts/previewer.sh
delete mode 100644 lsd/default.nix
create mode 100644 modules/default.nix
create mode 100644 modules/desktop/default.nix
create mode 100644 modules/desktop/popup-manager/default.nix
create mode 100644 modules/desktop/popup-manager/rofi/default.nix
create mode 100644 modules/desktop/popup-manager/rofi/theme/default.nix
create mode 100644 modules/desktop/popup-manager/rofi/theme/theme.rasi
create mode 100644 modules/desktop/status-bar/default.nix
create mode 100644 modules/desktop/status-bar/polybar/bars/main.nix
create mode 100644 modules/desktop/status-bar/polybar/default.nix
create mode 100644 modules/desktop/status-bar/polybar/modules/battery.nix
create mode 100644 modules/desktop/status-bar/polybar/modules/bspwm.nix
create mode 100644 modules/desktop/status-bar/polybar/modules/cpu.nix
create mode 100644 modules/desktop/status-bar/polybar/modules/date.nix
create mode 100644 modules/desktop/status-bar/polybar/modules/kernel-version.nix
create mode 100644 modules/desktop/status-bar/polybar/modules/memory.nix
create mode 100644 modules/desktop/status-bar/polybar/modules/time.nix
create mode 100644 modules/desktop/status-bar/polybar/modules/xwindow.nix
create mode 100644 modules/desktop/terminal/alacritty/default.nix
create mode 100644 modules/desktop/terminal/default.nix
create mode 100644 modules/desktop/window-manager/bspwm/bspwmrc
create mode 100644 modules/desktop/window-manager/bspwm/default.nix
create mode 100644 modules/desktop/window-manager/default.nix
create mode 100644 modules/desktop/window-manager/sxhkd/default.nix
create mode 100644 modules/desktop/window-manager/sxhkd/scripts/show-keybindings.sh
create mode 100644 modules/desktop/xresources/default.nix
create mode 100644 modules/desktop/xresources/xinit/default.nix
create mode 100644 modules/desktop/xresources/xinit/xinitrc
create mode 100644 modules/shell/bash/default.nix
create mode 100644 modules/shell/default.nix
create mode 100644 modules/shell/zsh/default.nix
create mode 100644 modules/shell/zsh/zshrc
create mode 100644 modules/tools/default.nix
create mode 100644 modules/tools/editor/default.nix
create mode 100644 modules/tools/editor/neovim/default.nix
create mode 100644 modules/tools/editor/neovim/keybindings.lua
create mode 100644 modules/tools/editor/neovim/options.lua
create mode 100644 modules/tools/editor/neovim/plugins/base16.lua
create mode 100644 modules/tools/editor/neovim/plugins/comment.lua
create mode 100644 modules/tools/editor/neovim/plugins/lualine.lua
create mode 100644 modules/tools/editor/neovim/plugins/nvim-tree.lua
create mode 100644 modules/tools/editor/neovim/plugins/treesitter.nix
create mode 100644 modules/tools/file-manager/default.nix
create mode 100644 modules/tools/file-manager/lf/default.nix
create mode 100644 modules/tools/file-manager/lf/icons
create mode 100644 modules/tools/file-manager/lf/scripts/previewer.sh
create mode 100644 modules/tools/file-manager/lsd/default.nix
create mode 100644 modules/tools/git/default.nix
create mode 100644 modules/tools/system-monitor/default.nix
create mode 100644 modules/tools/system-monitor/htop/default.nix
create mode 100644 modules/tools/viewer/bat/default.nix
create mode 100644 modules/tools/viewer/bat/theme.nix
create mode 100644 modules/tools/viewer/default.nix
delete mode 100644 nvim/default.nix
delete mode 100644 nvim/keybindings.lua
delete mode 100644 nvim/options.lua
delete mode 100644 nvim/plugins/base16.lua
delete mode 100644 nvim/plugins/comment.lua
delete mode 100644 nvim/plugins/lualine.lua
delete mode 100644 nvim/plugins/nvim-tree.lua
delete mode 100644 nvim/plugins/treesitter.nix
delete mode 100644 polybar/bars/main.nix
delete mode 100644 polybar/default.nix
delete mode 100644 polybar/modules/battery.nix
delete mode 100644 polybar/modules/bspwm.nix
delete mode 100644 polybar/modules/cpu.nix
delete mode 100644 polybar/modules/date.nix
delete mode 100644 polybar/modules/kernel-version.nix
delete mode 100644 polybar/modules/memory.nix
delete mode 100644 polybar/modules/time.nix
delete mode 100644 polybar/modules/xwindow.nix
delete mode 100644 rofi/default.nix
delete mode 100644 rofi/theme/default.nix
delete mode 100644 rofi/theme/theme.rasi
delete mode 100644 sxhkd/default.nix
delete mode 100644 sxhkd/scripts/show-keybindings.sh
delete mode 100644 xresources/default.nix
delete mode 100644 xresources/xinitrc
delete mode 100644 zsh/default.nix
delete mode 100644 zsh/zshrc
diff --git a/alacritty/default.nix b/alacritty/default.nix
deleted file mode 100644
index e4c1551..0000000
--- a/alacritty/default.nix
+++ /dev/null
@@ -1,72 +0,0 @@
-{ pkgs, config, ... }:
-
-{
- programs.alacritty.enable = true;
-
- programs.alacritty.settings = {
- window = {
- opacity = 1.0;
- padding = {
- x = 4;
- y = 0;
- };
- decorations = "full";
- };
-
- font = {
- normal = {
- family = "Fira Code Nerd Font";
- style = "Retina";
- };
- bold = {
- family = "Fira Code Nerd Font";
- style = "Bold";
- };
- italic = {
- family = "Fira Code Nerd Font";
- };
- size = 16.0;
- };
-
- colors = with config.scheme; {
- primary = {
- background = "0x${base00}";
- foreground = "0x${base05}";
- };
- normal = {
- black = "0x${base00}";
- red = "0x${base08}";
- green = "0x${base0B}";
- yellow = "0x${base0A}";
- blue = "0x${base0D}";
- magenta = "0x${base0E}";
- cyan = "0x${base0C}";
- white = "0x${base05}";
- };
- bright = {
- black = "0x${base03}";
- red = "0x${base08}";
- green = "0x${base0B}";
- yellow = "0x${base0A}";
- blue = "0x${base0D}";
- magenta = "0x${base0E}";
- cyan = "0x${base0C}";
- white = "0x${base07}";
- };
- dim = {
- black = "0x${base01}";
- red = "0x${base08}";
- green = "0x${base0B}";
- yellow = "0x${base0A}";
- blue = "0x${base0D}";
- magenta = "0x${base0E}";
- cyan = "0x${base0C}";
- white = "0x${base04}";
- };
- };
-
- shell = {
- program = "${pkgs.zsh}/bin/zsh";
- };
- };
-}
diff --git a/bash/default.nix b/bash/default.nix
deleted file mode 100644
index 199aa10..0000000
--- a/bash/default.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ config, ... }:
-
-{
- programs.bash.enable = true;
- programs.bash.historyFile = "${config.xdg.cacheHome}/bash/history";
- home.file."${config.xdg.cacheHome}/bash/histroy".text = ""; # Create the cache directory and histroy file
-}
diff --git a/bat/default.nix b/bat/default.nix
deleted file mode 100644
index af6bfca..0000000
--- a/bat/default.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ config, ... }:
-
-{
- programs.bat.enable = true;
- programs.bat.config.theme = "customTheme";
- xdg.configFile."bat/themes/customTheme.tmTheme".text
- = import ./theme.nix config;
-}
diff --git a/bat/theme.nix b/bat/theme.nix
deleted file mode 100644
index e345ee4..0000000
--- a/bat/theme.nix
+++ /dev/null
@@ -1,124 +0,0 @@
-config:
-
-with config.scheme.withHashtag;
-''
-
-
-
- name
- customTheme
- settings
-
-
-
- settings
-
- background
- #0F1419
- foreground
- #E6E1CF
- caret
- #F3F4F5
- invisibles
- #3E4B59
- lineHighlight
- #272D38
- selection
- #3E4B59
-
-
-
-
-
- scope
- comment
- settings
-
- foreground
- #BFBDB6
-
-
-
-
- scope
- string
- settings
-
- foreground
- #FFB454
-
-
-
-
- scope
- constant.numeric
- settings
-
- foreground
- #FF8F40
-
-
-
-
- scope
- variable
- settings
-
- foreground
- #F07178
-
-
-
-
- scope
- keyword
- settings
-
- foreground
- #59C2FF
-
-
-
-
- scope
- support.function
- settings
-
- foreground
- #D2A6FF
-
-
-
-
- scope
- constant.language
- settings
-
- foreground
- #B8CC52
-
-
-
-
- scope
- entity.name.tag
- settings
-
- foreground
- #95E6CB
-
-
-
-
- scope
- invalid
- settings
-
- foreground
- #E6B673
-
-
-
-
-
-''
diff --git a/bspwm/bspwmrc b/bspwm/bspwmrc
deleted file mode 100644
index 8a3a35a..0000000
--- a/bspwm/bspwmrc
+++ /dev/null
@@ -1,3 +0,0 @@
-for monitor in $(xrandr -q | grep -w 'connected' | cut -d' ' -f1); do
- bspc monitor "$monitor" -d '1' '2' '3' '4' '5' '6'
-done
diff --git a/bspwm/default.nix b/bspwm/default.nix
deleted file mode 100644
index c0226f8..0000000
--- a/bspwm/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ config, ... }:
-
-{
- xsession.windowManager.bspwm.enable = true;
-
- xsession.windowManager.bspwm.settings = with config.scheme.withHashtag; {
- window_gap = 5;
- split_ratio = 0.5;
- single_monocle = true;
- borderless_monocle = false;
- gapless_monocle = false;
- focus_follows_pointer = true;
- pointer_follows_focus = false;
- pointer_motion_interval = 40;
- pointer_modifier = "mod1"; # alt key
- pointer_action1 = "resize_side";
- pointer_action2 = "move";
- pointer_action3 = "resize_corner";
- normal_border_color = base02;
- active_border_color = base02;
- focused_border_color = base03;
- };
-
- xsession.windowManager.bspwm.rules = {
- "popup" = {
- state = "floating";
- sticky = true;
- };
- };
-
- xsession.windowManager.bspwm.extraConfig = builtins.readFile ./bspwmrc;
-}
diff --git a/flake.nix b/flake.nix
index c183265..0b8bd34 100644
--- a/flake.nix
+++ b/flake.nix
@@ -19,6 +19,7 @@
inherit pkgs;
modules = [
./home.nix
+ ./modules
base16.homeManagerModule
];
};
diff --git a/git/default.nix b/git/default.nix
deleted file mode 100644
index 5a32294..0000000
--- a/git/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ lib, config, ... }:
-
-{
- programs.git.enable = true;
- programs.git.userEmail = "54011232+arpitchakladar@users.noreply.github.com";
- programs.git.userName = "Arpit Chakladar";
- programs.git.extraConfig = {
- credential.helper = "store --file ${config.xdg.cacheHome}/git/credential";
- core.askPass = "";
- };
-
- # The base directory of the credential file must exist
- home.activation.createGitCacheDirectory = lib.hm.dag.entryAfter [ "writeBoundary" ] "mkdir -p ${config.xdg.cacheHome}/git";
-}
diff --git a/home.nix b/home.nix
index cc4e564..b25fe7d 100644
--- a/home.nix
+++ b/home.nix
@@ -2,26 +2,33 @@
{
imports = [
- ./base16/default.nix
- ./bspwm/default.nix
- ./sxhkd/default.nix
- ./polybar/default.nix
- ./git/default.nix
- ./xresources/default.nix
- ./zsh/default.nix
- ./bash/default.nix
- ./alacritty/default.nix
- ./nvim/default.nix
- ./lf/default.nix
- ./rofi/default.nix
- ./htop/default.nix
- ./lsd/default.nix
- ./bat/default.nix
+ ./base16
];
+
home.username = "arpit";
home.homeDirectory = "/home/arpit";
home.stateVersion = "23.11";
+ # Desktop
+ rofi.enable = true;
+ polybar.enable = true;
+ alacritty.enable = true;
+ bspwm.enable = true;
+ sxhkd.enable = true;
+ xinit.enable = true;
+
+ # Shell
+ bash.enable = true;
+ zsh.enable = true;
+
+ # Tools
+ neovim.enable = true;
+ lf.enable = true;
+ lsd.enable = true;
+ git.enable = true;
+ htop.enable = true;
+ bat.enable = true;
+
home.packages = with pkgs; [
(nerdfonts.override { fonts = [ "FiraCode" ]; })
];
diff --git a/htop/default.nix b/htop/default.nix
deleted file mode 100644
index 30315d4..0000000
--- a/htop/default.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{ pkgs, ... }:
-
-{
- programs.htop.enable = true;
- programs.htop.package = pkgs.htop-vim;
-}
diff --git a/lf/default.nix b/lf/default.nix
deleted file mode 100644
index f8bb96b..0000000
--- a/lf/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- programs.lf.enable = true;
- programs.lf.settings = {
- hidden = true;
- };
- programs.lf.previewer.source = pkgs.writeShellScript
- "previewer.sh"
- (builtins.readFile ./scripts/previewer.sh);
-
- programs.lf.extraConfig = "set icons";
-
- xdg.configFile."lf/icons".source = ./icons;
-}
diff --git a/lf/icons b/lf/icons
deleted file mode 100644
index 2e9d8a2..0000000
--- a/lf/icons
+++ /dev/null
@@ -1,334 +0,0 @@
-# vim:ft=conf
-
-# These examples require Nerd Fonts or a compatible font to be used.
-# See https://www.nerdfonts.com for more information.
-
-# file types (with matching order)
-ln # LINK
-or # ORPHAN
-tw t # STICKY_OTHER_WRITABLE
-ow # OTHER_WRITABLE
-st t # STICKY
-di # DIR
-pi p # FIFO
-so s # SOCK
-bd b # BLK
-cd c # CHR
-su u # SETUID
-sg g # SETGID
-ex # EXEC
-fi # FILE
-
-# file extensions (vim-devicons)
-*.styl
-*.sass
-*.scss
-*.htm
-*.html
-*.slim
-*.haml
-*.ejs
-*.css
-*.less
-*.md
-*.mdx
-*.markdown
-*.rmd
-*.json
-*.webmanifest
-*.js
-*.mjs
-*.jsx
-*.rb
-*.gemspec
-*.rake
-*.php
-*.py
-*.pyc
-*.pyo
-*.pyd
-*.coffee
-*.mustache
-*.hbs
-*.conf
-*.ini
-*.yml
-*.yaml
-*.toml
-*.bat
-*.mk
-*.jpg
-*.jpeg
-*.bmp
-*.png
-*.webp
-*.gif
-*.ico
-*.twig
-*.cpp
-*.c++
-*.cxx
-*.cc
-*.cp
-*.c
-*.cs
-*.h
-*.hh
-*.hpp
-*.hxx
-*.hs
-*.lhs
-*.nix
-*.lua
-*.java
-*.sh
-*.fish
-*.bash
-*.zsh
-*.ksh
-*.csh
-*.awk
-*.ps1
-*.ml λ
-*.mli λ
-*.diff
-*.db
-*.sql
-*.dump
-*.clj
-*.cljc
-*.cljs
-*.edn
-*.scala
-*.go
-*.dart
-*.xul
-*.sln
-*.suo
-*.pl
-*.pm
-*.t
-*.rss
-'*.f#'
-*.fsscript
-*.fsx
-*.fs
-*.fsi
-*.rs
-*.rlib
-*.d
-*.erl
-*.hrl
-*.ex
-*.exs
-*.eex
-*.leex
-*.heex
-*.vim
-*.ai
-*.psd
-*.psb
-*.ts
-*.tsx
-*.jl
-*.pp
-*.vue
-*.elm
-*.swift
-*.xcplayground
-*.tex
-*.r
-*.rproj
-*.sol
-*.pem
-
-# file names (vim-devicons) (case-insensitive not supported in lf)
-*gruntfile.coffee
-*gruntfile.js
-*gruntfile.ls
-*gulpfile.coffee
-*gulpfile.js
-*gulpfile.ls
-*mix.lock
-*dropbox
-*.ds_store
-*.gitconfig
-*.gitignore
-*.gitattributes
-*.gitlab-ci.yml
-*.bashrc
-*.zshrc
-*.zshenv
-*.zprofile
-*.vimrc
-*.gvimrc
-*_vimrc
-*_gvimrc
-*.bashprofile
-*favicon.ico
-*license
-*node_modules
-*react.jsx
-*procfile
-*dockerfile
-*docker-compose.yml
-*docker-compose.yaml
-*compose.yml
-*compose.yaml
-*rakefile
-*config.ru
-*gemfile
-*makefile
-*cmakelists.txt
-*robots.txt
-
-# file names (case-sensitive adaptations)
-*Gruntfile.coffee
-*Gruntfile.js
-*Gruntfile.ls
-*Gulpfile.coffee
-*Gulpfile.js
-*Gulpfile.ls
-*Dropbox
-*.DS_Store
-*LICENSE
-*React.jsx
-*Procfile
-*Dockerfile
-*Docker-compose.yml
-*Docker-compose.yaml
-*Rakefile
-*Gemfile
-*Makefile
-*CMakeLists.txt
-
-# file patterns (file name adaptations)
-*jquery.min.js
-*angular.min.js
-*backbone.min.js
-*require.min.js
-*materialize.min.js
-*materialize.min.css
-*mootools.min.js
-*vimrc
-Vagrantfile
-
-# archives or compressed (extensions from dircolors defaults)
-*.tar
-*.tgz
-*.arc
-*.arj
-*.taz
-*.lha
-*.lz4
-*.lzh
-*.lzma
-*.tlz
-*.txz
-*.tzo
-*.t7z
-*.zip
-*.z
-*.dz
-*.gz
-*.lrz
-*.lz
-*.lzo
-*.xz
-*.zst
-*.tzst
-*.bz2
-*.bz
-*.tbz
-*.tbz2
-*.tz
-*.deb
-*.rpm
-*.jar
-*.war
-*.ear
-*.sar
-*.rar
-*.alz
-*.ace
-*.zoo
-*.cpio
-*.7z
-*.rz
-*.cab
-*.wim
-*.swm
-*.dwm
-*.esd
-
-# image formats (extensions from dircolors defaults)
-*.jpg
-*.jpeg
-*.mjpg
-*.mjpeg
-*.gif
-*.bmp
-*.pbm
-*.pgm
-*.ppm
-*.tga
-*.xbm
-*.xpm
-*.tif
-*.tiff
-*.png
-*.svg
-*.svgz
-*.mng
-*.pcx
-*.mov
-*.mpg
-*.mpeg
-*.m2v
-*.mkv
-*.webm
-*.ogm
-*.mp4
-*.m4v
-*.mp4v
-*.vob
-*.qt
-*.nuv
-*.wmv
-*.asf
-*.rm
-*.rmvb
-*.flc
-*.avi
-*.fli
-*.flv
-*.gl
-*.dl
-*.xcf
-*.xwd
-*.yuv
-*.cgm
-*.emf
-*.ogv
-*.ogx
-
-# audio formats (extensions from dircolors defaults)
-*.aac
-*.au
-*.flac
-*.m4a
-*.mid
-*.midi
-*.mka
-*.mp3
-*.mpc
-*.ogg
-*.ra
-*.wav
-*.oga
-*.opus
-*.spx
-*.xspf
-
-# other formats
-*.pdf
diff --git a/lf/scripts/previewer.sh b/lf/scripts/previewer.sh
deleted file mode 100644
index 407e0a0..0000000
--- a/lf/scripts/previewer.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-unset COLORTERM
-bat -pp --line-range=:500 --color=always "$1"
diff --git a/lsd/default.nix b/lsd/default.nix
deleted file mode 100644
index 6698ef0..0000000
--- a/lsd/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ pkgs, ... }:
-
-{
- programs.lsd.enable = true;
- programs.lsd.enableAliases = true;
- programs.bash.shellAliases."tree" = "${pkgs.lsd}/bin/lsd -a --tree";
-
- programs.lsd.settings = {
- icons.separator = " ";
- };
-}
diff --git a/modules/default.nix b/modules/default.nix
new file mode 100644
index 0000000..7845368
--- /dev/null
+++ b/modules/default.nix
@@ -0,0 +1,9 @@
+{ ... }:
+
+{
+ imports = [
+ ./desktop
+ ./shell
+ ./tools
+ ];
+}
diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix
new file mode 100644
index 0000000..e15cd53
--- /dev/null
+++ b/modules/desktop/default.nix
@@ -0,0 +1,11 @@
+{ lib, config, ... }:
+
+{
+ imports = [
+ ./popup-manager
+ ./status-bar
+ ./terminal
+ ./window-manager
+ ./xresources
+ ];
+}
diff --git a/modules/desktop/popup-manager/default.nix b/modules/desktop/popup-manager/default.nix
new file mode 100644
index 0000000..8c82ea7
--- /dev/null
+++ b/modules/desktop/popup-manager/default.nix
@@ -0,0 +1,7 @@
+{ lib, ... }:
+
+{
+ imports = [
+ ./rofi
+ ];
+}
diff --git a/modules/desktop/popup-manager/rofi/default.nix b/modules/desktop/popup-manager/rofi/default.nix
new file mode 100644
index 0000000..fdf7d3e
--- /dev/null
+++ b/modules/desktop/popup-manager/rofi/default.nix
@@ -0,0 +1,13 @@
+{ config, lib, ... }:
+
+{
+ options = {
+ rofi.enable = lib.mkEnableOption "Enables rofi.";
+ };
+
+ config = lib.mkIf config.rofi.enable {
+ programs.rofi.enable = true;
+ programs.rofi.font = "FiraCode Nerd Font 16";
+ programs.rofi.theme = import ./theme/default.nix config;
+ };
+}
diff --git a/modules/desktop/popup-manager/rofi/theme/default.nix b/modules/desktop/popup-manager/rofi/theme/default.nix
new file mode 100644
index 0000000..b0b8173
--- /dev/null
+++ b/modules/desktop/popup-manager/rofi/theme/default.nix
@@ -0,0 +1,21 @@
+config:
+
+with config.scheme.withHashtag;
+builtins.toFile "theme.rasi"
+''
+${builtins.readFile ./theme.rasi}
+configuration {
+ font: "${config.programs.rofi.font}";
+}
+
+* {
+ bg: ${base00};
+ bg-alt: ${base01};
+ fg: ${base07};
+ fg-alt: ${base03};
+}
+
+window {
+ border-color: ${base03};
+}
+''
diff --git a/modules/desktop/popup-manager/rofi/theme/theme.rasi b/modules/desktop/popup-manager/rofi/theme/theme.rasi
new file mode 100644
index 0000000..9d808b9
--- /dev/null
+++ b/modules/desktop/popup-manager/rofi/theme/theme.rasi
@@ -0,0 +1,76 @@
+configuration {
+ drun {
+ display-name: " ";
+ }
+
+ run {
+ display-name: " ";
+ }
+
+ window {
+ display-name: " ";
+ }
+
+ ssh {
+ display-name: " ";
+ }
+
+ timeout {
+ delay: 10;
+ action: "kb-cancel";
+ }
+}
+
+* {
+ border: 1;
+ margin: 0;
+ padding: 0;
+ spacing: 0;
+
+ background-color: @bg;
+ text-color: @fg;
+}
+
+window {
+ transparency: "real";
+}
+
+mainbox {
+ children: [inputbar, listview];
+}
+
+inputbar {
+ background-color: @bg-alt;
+ children: [prompt, entry];
+}
+
+entry {
+ background-color: inherit;
+ padding: 12px 3px;
+}
+
+prompt {
+ background-color: inherit;
+ padding: 12px;
+}
+
+listview {
+ lines: 8;
+}
+
+element {
+ children: [element-text];
+}
+
+element-icon {
+ padding: 10px 10px;
+}
+
+element-text {
+ padding: 10px 10px;
+ text-color: @fg-alt;
+}
+
+element-text selected {
+ text-color: @fg;
+}
diff --git a/modules/desktop/status-bar/default.nix b/modules/desktop/status-bar/default.nix
new file mode 100644
index 0000000..124c830
--- /dev/null
+++ b/modules/desktop/status-bar/default.nix
@@ -0,0 +1,7 @@
+{ lib, ... }:
+
+{
+ imports = [
+ ./polybar
+ ];
+}
diff --git a/modules/desktop/status-bar/polybar/bars/main.nix b/modules/desktop/status-bar/polybar/bars/main.nix
new file mode 100644
index 0000000..630664d
--- /dev/null
+++ b/modules/desktop/status-bar/polybar/bars/main.nix
@@ -0,0 +1,28 @@
+config:
+
+with config.scheme.withHashtag;
+{
+ width = "100%";
+ height = 30;
+ radius = 3;
+ fixed-center = false;
+
+ background = "${base00}";
+ foreground = "${base05}";
+
+ line-size = 3;
+ line-color = "${base08}";
+
+ border-size = 4;
+ padding-left = 2;
+ padding-right = 2;
+
+ module-margin-left = 2;
+ module-margin-right = 2;
+
+ font-0 = "FiraCode Nerd Font:pixelsize=16;3";
+
+ modules-left = "bspwm";
+ modules-center = "xwindow";
+ modules-right = "memory cpu battery time date kernel-version";
+}
diff --git a/modules/desktop/status-bar/polybar/default.nix b/modules/desktop/status-bar/polybar/default.nix
new file mode 100644
index 0000000..11f4f1a
--- /dev/null
+++ b/modules/desktop/status-bar/polybar/default.nix
@@ -0,0 +1,24 @@
+{ config, lib, ... }:
+
+{
+ options = {
+ polybar.enable = lib.mkEnableOption "Enables polybar.";
+ };
+
+ config = lib.mkIf config.polybar.enable {
+ services.polybar.enable = true;
+ services.polybar.script = "polybar main &";
+
+ services.polybar.config = {
+ "bar/main" = import ./bars/main.nix config;
+ "module/xwindow" = import ./modules/xwindow.nix config;
+ "module/bspwm" = import ./modules/bspwm.nix config;
+ "module/cpu" = import ./modules/cpu.nix config;
+ "module/memory" = import ./modules/memory.nix config;
+ "module/date" = import ./modules/date.nix config;
+ "module/time" = import ./modules/time.nix config;
+ "module/battery" = import ./modules/battery.nix config;
+ "module/kernel-version" = import ./modules/kernel-version.nix config;
+ };
+ };
+}
diff --git a/modules/desktop/status-bar/polybar/modules/battery.nix b/modules/desktop/status-bar/polybar/modules/battery.nix
new file mode 100644
index 0000000..9860c3c
--- /dev/null
+++ b/modules/desktop/status-bar/polybar/modules/battery.nix
@@ -0,0 +1,36 @@
+config:
+
+with config.scheme.withHashtag;
+{
+ type = "internal/battery";
+ battery = "BAT0";
+ adapter = "ADP1";
+
+ format-charging = " ";
+ format-discharging = " ";
+ format-full-prefix = "%{F${base0B}}%{F-}";
+
+ ramp-capacity-0 = "%{F${base0C}}%{F-}";
+ ramp-capacity-1 = "%{F${base0C}}%{F-}";
+ ramp-capacity-2 = "%{F${base0C}}%{F-}";
+ ramp-capacity-3 = "%{F${base0C}}%{F-}";
+ ramp-capacity-4 = "%{F${base0C}}%{F-}";
+ ramp-capacity-5 = "%{F${base0C}}%{F-}";
+ ramp-capacity-6 = "%{F${base0C}}%{F-}";
+ ramp-capacity-7 = "%{F${base0C}}%{F-}";
+ ramp-capacity-8 = "%{F${base0C}}%{F-}";
+ ramp-capacity-9 = "%{F${base0C}}%{F-}";
+
+ animation-charging-0 = "%{F${base0C}}%{F-}";
+ animation-charging-1 = "%{F${base0C}}%{F-}";
+ animation-charging-2 = "%{F${base0C}}%{F-}";
+ animation-charging-3 = "%{F${base0C}}%{F-}";
+ animation-charging-4 = "%{F${base0C}}%{F-}";
+ animation-charging-5 = "%{F${base0C}}%{F-}";
+ animation-charging-6 = "%{F${base0C}}%{F-}";
+ animation-charging-7 = "%{F${base0C}}%{F-}";
+ animation-charging-8 = "%{F${base0C}}%{F-}";
+ animation-charging-9 = "%{F${base0C}}%{F-}";
+
+ animation-charging-framerate = 750;
+}
diff --git a/modules/desktop/status-bar/polybar/modules/bspwm.nix b/modules/desktop/status-bar/polybar/modules/bspwm.nix
new file mode 100644
index 0000000..7ec5c6d
--- /dev/null
+++ b/modules/desktop/status-bar/polybar/modules/bspwm.nix
@@ -0,0 +1,22 @@
+config:
+
+with config.scheme.withHashtag;
+{
+ type = "internal/bspwm";
+
+ label-focused = "%index%";
+ label-focused-background = "${base01}";
+ label-focused-underline = "${base0D}";
+ label-focused-padding = 2;
+
+ label-occupied = "%index%";
+ label-occupied-padding = 2;
+
+ label-urgent = "%index%!";
+ label-urgent-background = "${base08}";
+ label-urgent-padding = 2;
+
+ label-empty = "%index%";
+ label-empty-foreground = "${base03}";
+ label-empty-padding = 2;
+}
diff --git a/modules/desktop/status-bar/polybar/modules/cpu.nix b/modules/desktop/status-bar/polybar/modules/cpu.nix
new file mode 100644
index 0000000..f118990
--- /dev/null
+++ b/modules/desktop/status-bar/polybar/modules/cpu.nix
@@ -0,0 +1,9 @@
+config:
+
+with config.scheme.withHashtag;
+{
+ type = "internal/cpu";
+ interval = 2;
+ format-prefix = "%{F${base09}} %{F-}";
+ label = "%percentage%%";
+}
diff --git a/modules/desktop/status-bar/polybar/modules/date.nix b/modules/desktop/status-bar/polybar/modules/date.nix
new file mode 100644
index 0000000..11a5934
--- /dev/null
+++ b/modules/desktop/status-bar/polybar/modules/date.nix
@@ -0,0 +1,10 @@
+config:
+
+with config.scheme.withHashtag;
+{
+ type = "internal/date";
+ interval = 60;
+ date = "%d/%m/%Y";
+ label = "%date%";
+ format-prefix = "%{F${base0B}} %{F-}";
+}
diff --git a/modules/desktop/status-bar/polybar/modules/kernel-version.nix b/modules/desktop/status-bar/polybar/modules/kernel-version.nix
new file mode 100644
index 0000000..a900264
--- /dev/null
+++ b/modules/desktop/status-bar/polybar/modules/kernel-version.nix
@@ -0,0 +1,10 @@
+config:
+
+with config.scheme.withHashtag;
+{
+ type = "custom/script";
+ exec = "uname -r";
+ interval = 1024;
+ format-prefix = "%{F${base03}} %{F-}";
+ label = "%output%";
+}
diff --git a/modules/desktop/status-bar/polybar/modules/memory.nix b/modules/desktop/status-bar/polybar/modules/memory.nix
new file mode 100644
index 0000000..1aff8a3
--- /dev/null
+++ b/modules/desktop/status-bar/polybar/modules/memory.nix
@@ -0,0 +1,9 @@
+config:
+
+with config.scheme.withHashtag;
+{
+ type = "internal/memory";
+ interval = 2;
+ format-prefix = "%{F${base0A}} %{F-}";
+ label = "%percentage_used%%";
+}
diff --git a/modules/desktop/status-bar/polybar/modules/time.nix b/modules/desktop/status-bar/polybar/modules/time.nix
new file mode 100644
index 0000000..e4c7cbe
--- /dev/null
+++ b/modules/desktop/status-bar/polybar/modules/time.nix
@@ -0,0 +1,10 @@
+config:
+
+with config.scheme.withHashtag;
+{
+ type = "internal/date";
+ interval = 30;
+ time = "%H:%M";
+ label = "%time%";
+ format-prefix = "%{F${base0C}} %{F-}";
+}
diff --git a/modules/desktop/status-bar/polybar/modules/xwindow.nix b/modules/desktop/status-bar/polybar/modules/xwindow.nix
new file mode 100644
index 0000000..23245ba
--- /dev/null
+++ b/modules/desktop/status-bar/polybar/modules/xwindow.nix
@@ -0,0 +1,7 @@
+config:
+
+with config.scheme.withHashtag;
+{
+ type = "internal/xwindow";
+ label = "%title:0:30:...%";
+}
diff --git a/modules/desktop/terminal/alacritty/default.nix b/modules/desktop/terminal/alacritty/default.nix
new file mode 100644
index 0000000..0fe56e0
--- /dev/null
+++ b/modules/desktop/terminal/alacritty/default.nix
@@ -0,0 +1,78 @@
+{ pkgs, config, lib, ... }:
+
+{
+ options = {
+ alacritty.enable = lib.mkEnableOption "Enables alacritty.";
+ };
+
+ config = lib.mkIf config.alacritty.enable {
+ programs.alacritty.enable = true;
+
+ programs.alacritty.settings = {
+ window = {
+ opacity = 1.0;
+ padding = {
+ x = 4;
+ y = 0;
+ };
+ decorations = "full";
+ };
+
+ font = {
+ normal = {
+ family = "Fira Code Nerd Font";
+ style = "Retina";
+ };
+ bold = {
+ family = "Fira Code Nerd Font";
+ style = "Bold";
+ };
+ italic = {
+ family = "Fira Code Nerd Font";
+ };
+ size = 16.0;
+ };
+
+ colors = with config.scheme; {
+ primary = {
+ background = "0x${base00}";
+ foreground = "0x${base05}";
+ };
+ normal = {
+ black = "0x${base00}";
+ red = "0x${base08}";
+ green = "0x${base0B}";
+ yellow = "0x${base0A}";
+ blue = "0x${base0D}";
+ magenta = "0x${base0E}";
+ cyan = "0x${base0C}";
+ white = "0x${base05}";
+ };
+ bright = {
+ black = "0x${base03}";
+ red = "0x${base08}";
+ green = "0x${base0B}";
+ yellow = "0x${base0A}";
+ blue = "0x${base0D}";
+ magenta = "0x${base0E}";
+ cyan = "0x${base0C}";
+ white = "0x${base07}";
+ };
+ dim = {
+ black = "0x${base01}";
+ red = "0x${base08}";
+ green = "0x${base0B}";
+ yellow = "0x${base0A}";
+ blue = "0x${base0D}";
+ magenta = "0x${base0E}";
+ cyan = "0x${base0C}";
+ white = "0x${base04}";
+ };
+ };
+
+ shell = {
+ program = "${pkgs.zsh}/bin/zsh";
+ };
+ };
+ };
+}
diff --git a/modules/desktop/terminal/default.nix b/modules/desktop/terminal/default.nix
new file mode 100644
index 0000000..6a0cfc8
--- /dev/null
+++ b/modules/desktop/terminal/default.nix
@@ -0,0 +1,7 @@
+{ lib, ... }:
+
+{
+ imports = [
+ ./alacritty
+ ];
+}
diff --git a/modules/desktop/window-manager/bspwm/bspwmrc b/modules/desktop/window-manager/bspwm/bspwmrc
new file mode 100644
index 0000000..8a3a35a
--- /dev/null
+++ b/modules/desktop/window-manager/bspwm/bspwmrc
@@ -0,0 +1,3 @@
+for monitor in $(xrandr -q | grep -w 'connected' | cut -d' ' -f1); do
+ bspc monitor "$monitor" -d '1' '2' '3' '4' '5' '6'
+done
diff --git a/modules/desktop/window-manager/bspwm/default.nix b/modules/desktop/window-manager/bspwm/default.nix
new file mode 100644
index 0000000..643d78b
--- /dev/null
+++ b/modules/desktop/window-manager/bspwm/default.nix
@@ -0,0 +1,38 @@
+{ config, lib, ... }:
+
+{
+ options = {
+ bspwm.enable = lib.mkEnableOption "Enables bspwm.";
+ };
+
+ config = lib.mkIf config.bspwm.enable {
+ xsession.windowManager.bspwm.enable = true;
+
+ xsession.windowManager.bspwm.settings = with config.scheme.withHashtag; {
+ window_gap = 5;
+ split_ratio = 0.5;
+ single_monocle = true;
+ borderless_monocle = false;
+ gapless_monocle = false;
+ focus_follows_pointer = true;
+ pointer_follows_focus = false;
+ pointer_motion_interval = 40;
+ pointer_modifier = "mod1"; # alt key
+ pointer_action1 = "resize_side";
+ pointer_action2 = "move";
+ pointer_action3 = "resize_corner";
+ normal_border_color = base02;
+ active_border_color = base02;
+ focused_border_color = base03;
+ };
+
+ xsession.windowManager.bspwm.rules = {
+ "popup" = {
+ state = "floating";
+ sticky = true;
+ };
+ };
+
+ xsession.windowManager.bspwm.extraConfig = builtins.readFile ./bspwmrc;
+ };
+}
diff --git a/modules/desktop/window-manager/default.nix b/modules/desktop/window-manager/default.nix
new file mode 100644
index 0000000..6e9b9f8
--- /dev/null
+++ b/modules/desktop/window-manager/default.nix
@@ -0,0 +1,8 @@
+{ lib, ... }:
+
+{
+ imports = [
+ ./bspwm
+ ./sxhkd
+ ];
+}
diff --git a/modules/desktop/window-manager/sxhkd/default.nix b/modules/desktop/window-manager/sxhkd/default.nix
new file mode 100644
index 0000000..29261b9
--- /dev/null
+++ b/modules/desktop/window-manager/sxhkd/default.nix
@@ -0,0 +1,79 @@
+{ pkgs, config, lib, ... }:
+
+{
+ options = {
+ sxhkd.enable = lib.mkEnableOption "Enables sxhkd.";
+ };
+
+ config = lib.mkIf config.sxhkd.enable {
+ services.sxhkd.enable = true;
+
+ services.sxhkd.keybindings =
+ let
+ modKey = "alt";
+ createKeybinding = keybinding: description: "# ${description}\n${modKey} + ${keybinding}";
+ in {
+ ${(createKeybinding
+ "s"
+ "Show keybindings.")}
+ = pkgs.writeShellScript
+ "show-keybindings.sh"
+ (builtins.readFile ./scripts/show-keybindings.sh);
+
+ ${(createKeybinding
+ "r"
+ "Launch rofi.")}
+ = "rofi -show run";
+
+ ${(createKeybinding
+ "t"
+ "Launch terminal.")}
+ = "alacritty";
+
+ ${(createKeybinding
+ "f"
+ "Launch File Explorer.")}
+ = "alacritty -t 'File Explorer' --class 'popup' -e lf";
+
+ ${(createKeybinding
+ "q"
+ "Kill current window.")}
+ = "bspc node -c";
+
+ ${(createKeybinding
+ "{1-9,0}"
+ "Switch workspace.")}
+ = "bspc desktop -f {1-9,10}";
+
+ ${(createKeybinding
+ "shift + {1-9,0}"
+ "Move window to workspace.")}
+ = "bspc node -d {1-9,10} --follow";
+
+ ${(createKeybinding
+ "{n,d,m}"
+ "Set current window mode (tiled, floating, fullscreen).")}
+ = "bspc node focused -t {tiled,floating,fullscreen}";
+
+ ${(createKeybinding
+ "{_,shift + }{h,j,k,l}"
+ "Navigate between windows.")}
+ = "bspc node --{focus,swap} {west,south,north,east}";
+
+ # the indentation for each line is required to work with the help prompt
+ ${(createKeybinding
+ "ctrl + {h,j,k,l}"
+ "Resize current window.")}
+ = ''
+ {bspc node @parent/second -z left -20 0; \
+ bspc node @parent/first -z right -20 0, \
+ bspc node @parent/second -z top 0 +20; \
+ bspc node @parent/first -z bottom 0 +20, \
+ bspc node @parent/first -z bottom 0 -20; \
+ bspc node @parent/second -z top 0 -20, \
+ bspc node @parent/first -z right +20 0; \
+ bspc node @parent/second -z left +20 0}
+ '';
+ };
+ };
+}
diff --git a/modules/desktop/window-manager/sxhkd/scripts/show-keybindings.sh b/modules/desktop/window-manager/sxhkd/scripts/show-keybindings.sh
new file mode 100644
index 0000000..db7863d
--- /dev/null
+++ b/modules/desktop/window-manager/sxhkd/scripts/show-keybindings.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+SXHKD_CONFIG="$HOME/.config/sxhkd/sxhkdrc"
+
+awk '
+ /^#/ {
+ desc = substr($0, 3)
+ }
+ /^[[:alnum:]]/ {
+ cmd = $0
+ getline
+ print cmd " : " desc
+ }
+' "$SXHKD_CONFIG" | rofi -dmenu -i -p "Keybindings"
diff --git a/modules/desktop/xresources/default.nix b/modules/desktop/xresources/default.nix
new file mode 100644
index 0000000..65eb812
--- /dev/null
+++ b/modules/desktop/xresources/default.nix
@@ -0,0 +1,7 @@
+{ lib, ... }:
+
+{
+ imports = [
+ ./xinit
+ ];
+}
diff --git a/modules/desktop/xresources/xinit/default.nix b/modules/desktop/xresources/xinit/default.nix
new file mode 100644
index 0000000..f5069fa
--- /dev/null
+++ b/modules/desktop/xresources/xinit/default.nix
@@ -0,0 +1,14 @@
+{ lib, config, ... }:
+
+{
+ options = {
+ xinit.enable = lib.mkEnableOption "Enables xinit.";
+ };
+
+ config = lib.mkIf config.xinit.enable {
+ home.file.".xinitrc" = {
+ source = ./xinitrc;
+ executable = true;
+ };
+ };
+}
diff --git a/modules/desktop/xresources/xinit/xinitrc b/modules/desktop/xresources/xinit/xinitrc
new file mode 100644
index 0000000..2ac4486
--- /dev/null
+++ b/modules/desktop/xresources/xinit/xinitrc
@@ -0,0 +1,4 @@
+#!/bin/sh
+polybar main &
+sxhkd &
+exec bspwm
diff --git a/modules/shell/bash/default.nix b/modules/shell/bash/default.nix
new file mode 100644
index 0000000..f26e3d8
--- /dev/null
+++ b/modules/shell/bash/default.nix
@@ -0,0 +1,13 @@
+{ config, lib, ... }:
+
+{
+ options = {
+ bash.enable = lib.mkEnableOption "Enables bash.";
+ };
+
+ config = lib.mkIf config.bash.enable {
+ programs.bash.enable = true;
+ programs.bash.historyFile = "${config.xdg.cacheHome}/bash/history";
+ home.file."${config.xdg.cacheHome}/bash/histroy".text = ""; # Create the cache directory and histroy file
+ };
+}
diff --git a/modules/shell/default.nix b/modules/shell/default.nix
new file mode 100644
index 0000000..e4c3964
--- /dev/null
+++ b/modules/shell/default.nix
@@ -0,0 +1,8 @@
+{ lib, config, ... }:
+
+{
+ imports = [
+ ./bash
+ ./zsh
+ ];
+}
diff --git a/modules/shell/zsh/default.nix b/modules/shell/zsh/default.nix
new file mode 100644
index 0000000..b4ea77a
--- /dev/null
+++ b/modules/shell/zsh/default.nix
@@ -0,0 +1,15 @@
+{ config, lib, ... }:
+
+{
+ options = {
+ zsh.enable = lib.mkEnableOption "Enables zsh.";
+ };
+
+ config = lib.mkIf config.zsh.enable {
+ programs.zsh.enable = true;
+ programs.zsh.dotDir = ".config/zsh";
+ programs.zsh.history.path = "${config.xdg.cacheHome}/zsh/history";
+ programs.zsh.initExtra = builtins.readFile ./zshrc;
+ programs.zsh.shellAliases = config.programs.bash.shellAliases;
+ };
+}
diff --git a/modules/shell/zsh/zshrc b/modules/shell/zsh/zshrc
new file mode 100644
index 0000000..528bf68
--- /dev/null
+++ b/modules/shell/zsh/zshrc
@@ -0,0 +1,19 @@
+setopt PROMPT_SUBST
+
+autoload -U colors && colors
+
+autoload -Uz vcs_info
+precmd() { vcs_info }
+
+zstyle ':vcs_info:git:*' formats ' %F{yellow}[%F{cyan}%b %c%F{blue}%a%F{yellow}]'
+zstyle ':vcs_info:git:*' actionformats ' %F{yellow}[%F{cyan}%b %c%F{blue}%a%F{yellow}]'
+
+zstyle ':vcs_info:*+set-message:*' hooks git-untracked git-dirty
+
+zstyle ':vcs_info:git:*' check-for-changes true
+zstyle ':vcs_info:git:*' stagedstr '%F{green}✓%f'
+zstyle ':vcs_info:git:*' unstagedstr '%F{red}✗%f'
+zstyle ':vcs_info:git:*' aheadstr '%F{blue}⬆%f'
+zstyle ':vcs_info:git:*' behindstr '%F{yellow}⬇%f'
+PROMPT='%F{red}╭──[%F{green}%m%F{red}@%F{blue}%n%F{red}] %F{magenta}%~%f${vcs_info_msg_0_}%F{red}
+╰─>%f '
diff --git a/modules/tools/default.nix b/modules/tools/default.nix
new file mode 100644
index 0000000..bf96557
--- /dev/null
+++ b/modules/tools/default.nix
@@ -0,0 +1,11 @@
+{ lib, config, ... }:
+
+{
+ imports = [
+ ./editor
+ ./file-manager
+ ./git
+ ./system-monitor
+ ./viewer
+ ];
+}
diff --git a/modules/tools/editor/default.nix b/modules/tools/editor/default.nix
new file mode 100644
index 0000000..1a146bf
--- /dev/null
+++ b/modules/tools/editor/default.nix
@@ -0,0 +1,7 @@
+{ lib, config, ... }:
+
+{
+ imports = [
+ ./neovim
+ ];
+}
diff --git a/modules/tools/editor/neovim/default.nix b/modules/tools/editor/neovim/default.nix
new file mode 100644
index 0000000..e06ec88
--- /dev/null
+++ b/modules/tools/editor/neovim/default.nix
@@ -0,0 +1,43 @@
+{ pkgs, config, lib, ... }:
+
+{
+ options = {
+ neovim.enable = lib.mkEnableOption "Enables neovim.";
+ };
+
+ config = lib.mkIf config.neovim.enable {
+ programs.neovim.enable = true;
+ programs.neovim.viAlias = true;
+ programs.neovim.vimAlias = true;
+ programs.neovim.vimdiffAlias = true;
+ programs.neovim.defaultEditor = true;
+
+ programs.neovim.extraPackages = with pkgs; [
+ gcc # Required for treesitter
+ ];
+
+ programs.neovim.extraLuaConfig =
+ ''
+ ${builtins.readFile ./options.lua}
+ ${builtins.readFile ./keybindings.lua}
+
+ -- Plugins configuration
+ ${builtins.readFile ./plugins/comment.lua}
+ ${builtins.readFile ./plugins/lualine.lua}
+ ${import ./plugins/treesitter.nix config}
+ ${builtins.readFile ./plugins/base16.lua}
+ ${builtins.readFile ./plugins/nvim-tree.lua}
+ '';
+
+ programs.neovim.plugins = with pkgs.vimPlugins; [
+ comment-nvim
+ lualine-nvim
+ nvim-treesitter
+ nvim-web-devicons
+ nvim-tree-lua
+ (base16-vim.overrideAttrs (old: {
+ patchPhase = "ln -s ${config.scheme base16-vim} colors/base16-scheme.vim";
+ }))
+ ];
+ };
+}
diff --git a/modules/tools/editor/neovim/keybindings.lua b/modules/tools/editor/neovim/keybindings.lua
new file mode 100644
index 0000000..3e8e0fa
--- /dev/null
+++ b/modules/tools/editor/neovim/keybindings.lua
@@ -0,0 +1,8 @@
+-- Navigate splits
+vim.keymap.set("n", "", ":wincmd h", { silent = true });
+vim.keymap.set("n", "", ":wincmd j", { silent = true });
+vim.keymap.set("n", "", ":wincmd k", { silent = true });
+vim.keymap.set("n", "", ":wincmd l", { silent = true });
+
+-- NvimTree
+vim.keymap.set("n", "", ":NvimTreeToggle", { silent = true });
diff --git a/modules/tools/editor/neovim/options.lua b/modules/tools/editor/neovim/options.lua
new file mode 100644
index 0000000..b1fe9cb
--- /dev/null
+++ b/modules/tools/editor/neovim/options.lua
@@ -0,0 +1,21 @@
+vim.g.mapleader = " ";
+vim.g.maplocalleader = " ";
+
+vim.o.clipboard = "unnamedplus";
+
+vim.o.number = true;
+vim.o.list = true;
+vim.o.listchars = "tab:| ,trail:_,lead:_";
+
+vim.o.laststatus = 3;
+
+vim.o.signcolumn = "auto";
+vim.opt.fillchars = { eob = " " };
+
+vim.o.tabstop = 2;
+vim.o.shiftwidth = 2;
+vim.o.expandtab = false;
+
+vim.o.updatetime = 300;
+
+vim.o.mouse = "a";
diff --git a/modules/tools/editor/neovim/plugins/base16.lua b/modules/tools/editor/neovim/plugins/base16.lua
new file mode 100644
index 0000000..9843b76
--- /dev/null
+++ b/modules/tools/editor/neovim/plugins/base16.lua
@@ -0,0 +1,6 @@
+vim.o.termguicolors = true;
+vim.opt.termguicolors = true;
+vim.o.background = "dark";
+vim.g.base16colorspace = 256
+vim.cmd.colorscheme("base16-scheme");
+vim.api.nvim_set_hl(0, "LineNr", { link = "Normal" }); -- disable the background of line numbers
diff --git a/modules/tools/editor/neovim/plugins/comment.lua b/modules/tools/editor/neovim/plugins/comment.lua
new file mode 100644
index 0000000..9086261
--- /dev/null
+++ b/modules/tools/editor/neovim/plugins/comment.lua
@@ -0,0 +1 @@
+require("Comment").setup();
diff --git a/modules/tools/editor/neovim/plugins/lualine.lua b/modules/tools/editor/neovim/plugins/lualine.lua
new file mode 100644
index 0000000..ba2eda6
--- /dev/null
+++ b/modules/tools/editor/neovim/plugins/lualine.lua
@@ -0,0 +1,5 @@
+require("lualine").setup {
+ options = {
+ globalstatus = true,
+ },
+};
diff --git a/modules/tools/editor/neovim/plugins/nvim-tree.lua b/modules/tools/editor/neovim/plugins/nvim-tree.lua
new file mode 100644
index 0000000..c6c4102
--- /dev/null
+++ b/modules/tools/editor/neovim/plugins/nvim-tree.lua
@@ -0,0 +1,13 @@
+require("nvim-tree").setup {
+ filters = {
+ enable = false
+ },
+ renderer = {
+ indent_markers = {
+ enable = true
+ },
+ root_folder_label = function(path)
+ return vim.fn.fnamemodify(path, ":t")
+ end,
+ },
+};
diff --git a/modules/tools/editor/neovim/plugins/treesitter.nix b/modules/tools/editor/neovim/plugins/treesitter.nix
new file mode 100644
index 0000000..05f1f2a
--- /dev/null
+++ b/modules/tools/editor/neovim/plugins/treesitter.nix
@@ -0,0 +1,13 @@
+config:
+
+''
+require("nvim-treesitter.configs").setup {
+ auto_install = true,
+ highlight = {
+ enable = true,
+ },
+ parser_install_dir = "${config.xdg.dataHome}/nvim",
+};
+
+vim.opt.runtimepath:append("${config.xdg.dataHome}/nvim");
+''
diff --git a/modules/tools/file-manager/default.nix b/modules/tools/file-manager/default.nix
new file mode 100644
index 0000000..d127a66
--- /dev/null
+++ b/modules/tools/file-manager/default.nix
@@ -0,0 +1,8 @@
+{ lib, config, ... }:
+
+{
+ imports = [
+ ./lf
+ ./lsd
+ ];
+}
diff --git a/modules/tools/file-manager/lf/default.nix b/modules/tools/file-manager/lf/default.nix
new file mode 100644
index 0000000..00784cf
--- /dev/null
+++ b/modules/tools/file-manager/lf/default.nix
@@ -0,0 +1,21 @@
+{ config, pkgs, lib, ... }:
+
+{
+ options = {
+ lf.enable = lib.mkEnableOption "Enables lf.";
+ };
+
+ config = lib.mkIf config.lf.enable {
+ programs.lf.enable = true;
+ programs.lf.settings = {
+ hidden = true;
+ };
+ programs.lf.previewer.source = pkgs.writeShellScript
+ "previewer.sh"
+ (builtins.readFile ./scripts/previewer.sh);
+
+ programs.lf.extraConfig = "set icons";
+
+ xdg.configFile."lf/icons".source = ./icons;
+ };
+}
diff --git a/modules/tools/file-manager/lf/icons b/modules/tools/file-manager/lf/icons
new file mode 100644
index 0000000..2e9d8a2
--- /dev/null
+++ b/modules/tools/file-manager/lf/icons
@@ -0,0 +1,334 @@
+# vim:ft=conf
+
+# These examples require Nerd Fonts or a compatible font to be used.
+# See https://www.nerdfonts.com for more information.
+
+# file types (with matching order)
+ln # LINK
+or # ORPHAN
+tw t # STICKY_OTHER_WRITABLE
+ow # OTHER_WRITABLE
+st t # STICKY
+di # DIR
+pi p # FIFO
+so s # SOCK
+bd b # BLK
+cd c # CHR
+su u # SETUID
+sg g # SETGID
+ex # EXEC
+fi # FILE
+
+# file extensions (vim-devicons)
+*.styl
+*.sass
+*.scss
+*.htm
+*.html
+*.slim
+*.haml
+*.ejs
+*.css
+*.less
+*.md
+*.mdx
+*.markdown
+*.rmd
+*.json
+*.webmanifest
+*.js
+*.mjs
+*.jsx
+*.rb
+*.gemspec
+*.rake
+*.php
+*.py
+*.pyc
+*.pyo
+*.pyd
+*.coffee
+*.mustache
+*.hbs
+*.conf
+*.ini
+*.yml
+*.yaml
+*.toml
+*.bat
+*.mk
+*.jpg
+*.jpeg
+*.bmp
+*.png
+*.webp
+*.gif
+*.ico
+*.twig
+*.cpp
+*.c++
+*.cxx
+*.cc
+*.cp
+*.c
+*.cs
+*.h
+*.hh
+*.hpp
+*.hxx
+*.hs
+*.lhs
+*.nix
+*.lua
+*.java
+*.sh
+*.fish
+*.bash
+*.zsh
+*.ksh
+*.csh
+*.awk
+*.ps1
+*.ml λ
+*.mli λ
+*.diff
+*.db
+*.sql
+*.dump
+*.clj
+*.cljc
+*.cljs
+*.edn
+*.scala
+*.go
+*.dart
+*.xul
+*.sln
+*.suo
+*.pl
+*.pm
+*.t
+*.rss
+'*.f#'
+*.fsscript
+*.fsx
+*.fs
+*.fsi
+*.rs
+*.rlib
+*.d
+*.erl
+*.hrl
+*.ex
+*.exs
+*.eex
+*.leex
+*.heex
+*.vim
+*.ai
+*.psd
+*.psb
+*.ts
+*.tsx
+*.jl
+*.pp
+*.vue
+*.elm
+*.swift
+*.xcplayground
+*.tex
+*.r
+*.rproj
+*.sol
+*.pem
+
+# file names (vim-devicons) (case-insensitive not supported in lf)
+*gruntfile.coffee
+*gruntfile.js
+*gruntfile.ls
+*gulpfile.coffee
+*gulpfile.js
+*gulpfile.ls
+*mix.lock
+*dropbox
+*.ds_store
+*.gitconfig
+*.gitignore
+*.gitattributes
+*.gitlab-ci.yml
+*.bashrc
+*.zshrc
+*.zshenv
+*.zprofile
+*.vimrc
+*.gvimrc
+*_vimrc
+*_gvimrc
+*.bashprofile
+*favicon.ico
+*license
+*node_modules
+*react.jsx
+*procfile
+*dockerfile
+*docker-compose.yml
+*docker-compose.yaml
+*compose.yml
+*compose.yaml
+*rakefile
+*config.ru
+*gemfile
+*makefile
+*cmakelists.txt
+*robots.txt
+
+# file names (case-sensitive adaptations)
+*Gruntfile.coffee
+*Gruntfile.js
+*Gruntfile.ls
+*Gulpfile.coffee
+*Gulpfile.js
+*Gulpfile.ls
+*Dropbox
+*.DS_Store
+*LICENSE
+*React.jsx
+*Procfile
+*Dockerfile
+*Docker-compose.yml
+*Docker-compose.yaml
+*Rakefile
+*Gemfile
+*Makefile
+*CMakeLists.txt
+
+# file patterns (file name adaptations)
+*jquery.min.js
+*angular.min.js
+*backbone.min.js
+*require.min.js
+*materialize.min.js
+*materialize.min.css
+*mootools.min.js
+*vimrc
+Vagrantfile
+
+# archives or compressed (extensions from dircolors defaults)
+*.tar
+*.tgz
+*.arc
+*.arj
+*.taz
+*.lha
+*.lz4
+*.lzh
+*.lzma
+*.tlz
+*.txz
+*.tzo
+*.t7z
+*.zip
+*.z
+*.dz
+*.gz
+*.lrz
+*.lz
+*.lzo
+*.xz
+*.zst
+*.tzst
+*.bz2
+*.bz
+*.tbz
+*.tbz2
+*.tz
+*.deb
+*.rpm
+*.jar
+*.war
+*.ear
+*.sar
+*.rar
+*.alz
+*.ace
+*.zoo
+*.cpio
+*.7z
+*.rz
+*.cab
+*.wim
+*.swm
+*.dwm
+*.esd
+
+# image formats (extensions from dircolors defaults)
+*.jpg
+*.jpeg
+*.mjpg
+*.mjpeg
+*.gif
+*.bmp
+*.pbm
+*.pgm
+*.ppm
+*.tga
+*.xbm
+*.xpm
+*.tif
+*.tiff
+*.png
+*.svg
+*.svgz
+*.mng
+*.pcx
+*.mov
+*.mpg
+*.mpeg
+*.m2v
+*.mkv
+*.webm
+*.ogm
+*.mp4
+*.m4v
+*.mp4v
+*.vob
+*.qt
+*.nuv
+*.wmv
+*.asf
+*.rm
+*.rmvb
+*.flc
+*.avi
+*.fli
+*.flv
+*.gl
+*.dl
+*.xcf
+*.xwd
+*.yuv
+*.cgm
+*.emf
+*.ogv
+*.ogx
+
+# audio formats (extensions from dircolors defaults)
+*.aac
+*.au
+*.flac
+*.m4a
+*.mid
+*.midi
+*.mka
+*.mp3
+*.mpc
+*.ogg
+*.ra
+*.wav
+*.oga
+*.opus
+*.spx
+*.xspf
+
+# other formats
+*.pdf
diff --git a/modules/tools/file-manager/lf/scripts/previewer.sh b/modules/tools/file-manager/lf/scripts/previewer.sh
new file mode 100644
index 0000000..407e0a0
--- /dev/null
+++ b/modules/tools/file-manager/lf/scripts/previewer.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+unset COLORTERM
+bat -pp --line-range=:500 --color=always "$1"
diff --git a/modules/tools/file-manager/lsd/default.nix b/modules/tools/file-manager/lsd/default.nix
new file mode 100644
index 0000000..0f57e6b
--- /dev/null
+++ b/modules/tools/file-manager/lsd/default.nix
@@ -0,0 +1,17 @@
+{ pkgs, lib, config, ... }:
+
+{
+ options = {
+ lsd.enable = lib.mkEnableOption "Enables lsd.";
+ };
+
+ config = lib.mkIf config.lsd.enable {
+ programs.lsd.enable = true;
+ programs.lsd.enableAliases = true;
+ programs.bash.shellAliases."tree" = "${pkgs.lsd}/bin/lsd -a --tree";
+
+ programs.lsd.settings = {
+ icons.separator = " ";
+ };
+ };
+}
diff --git a/modules/tools/git/default.nix b/modules/tools/git/default.nix
new file mode 100644
index 0000000..7396cb8
--- /dev/null
+++ b/modules/tools/git/default.nix
@@ -0,0 +1,20 @@
+{ lib, config, ... }:
+
+{
+ options = {
+ git.enable = lib.mkEnableOption "Enables git.";
+ };
+
+ config = lib.mkIf config.git.enable {
+ programs.git.enable = true;
+ programs.git.userEmail = "54011232+arpitchakladar@users.noreply.github.com";
+ programs.git.userName = "Arpit Chakladar";
+ programs.git.extraConfig = {
+ credential.helper = "store --file ${config.xdg.cacheHome}/git/credential";
+ core.askPass = "";
+ };
+
+ # The base directory of the credential file must exist
+ home.activation.createGitCacheDirectory = lib.hm.dag.entryAfter [ "writeBoundary" ] "mkdir -p ${config.xdg.cacheHome}/git";
+ };
+}
diff --git a/modules/tools/system-monitor/default.nix b/modules/tools/system-monitor/default.nix
new file mode 100644
index 0000000..a5b569c
--- /dev/null
+++ b/modules/tools/system-monitor/default.nix
@@ -0,0 +1,7 @@
+{ ... }:
+
+{
+ imports = [
+ ./htop
+ ];
+}
diff --git a/modules/tools/system-monitor/htop/default.nix b/modules/tools/system-monitor/htop/default.nix
new file mode 100644
index 0000000..f27174a
--- /dev/null
+++ b/modules/tools/system-monitor/htop/default.nix
@@ -0,0 +1,12 @@
+{ pkgs, lib, config, ... }:
+
+{
+ options = {
+ htop.enable = lib.mkEnableOption "Enables htop.";
+ };
+
+ config = lib.mkIf config.htop.enable {
+ programs.htop.enable = true;
+ programs.htop.package = pkgs.htop-vim;
+ };
+}
diff --git a/modules/tools/viewer/bat/default.nix b/modules/tools/viewer/bat/default.nix
new file mode 100644
index 0000000..cc01f82
--- /dev/null
+++ b/modules/tools/viewer/bat/default.nix
@@ -0,0 +1,14 @@
+{ config, lib, ... }:
+
+{
+ options = {
+ bat.enable = lib.mkEnableOption "Enables bat.";
+ };
+
+ config = lib.mkIf config.bat.enable {
+ programs.bat.enable = true;
+ programs.bat.config.theme = "customTheme";
+ xdg.configFile."bat/themes/customTheme.tmTheme".text
+ = import ./theme.nix config;
+ };
+}
diff --git a/modules/tools/viewer/bat/theme.nix b/modules/tools/viewer/bat/theme.nix
new file mode 100644
index 0000000..e345ee4
--- /dev/null
+++ b/modules/tools/viewer/bat/theme.nix
@@ -0,0 +1,124 @@
+config:
+
+with config.scheme.withHashtag;
+''
+
+
+
+ name
+ customTheme
+ settings
+
+
+
+ settings
+
+ background
+ #0F1419
+ foreground
+ #E6E1CF
+ caret
+ #F3F4F5
+ invisibles
+ #3E4B59
+ lineHighlight
+ #272D38
+ selection
+ #3E4B59
+
+
+
+
+
+ scope
+ comment
+ settings
+
+ foreground
+ #BFBDB6
+
+
+
+
+ scope
+ string
+ settings
+
+ foreground
+ #FFB454
+
+
+
+
+ scope
+ constant.numeric
+ settings
+
+ foreground
+ #FF8F40
+
+
+
+
+ scope
+ variable
+ settings
+
+ foreground
+ #F07178
+
+
+
+
+ scope
+ keyword
+ settings
+
+ foreground
+ #59C2FF
+
+
+
+
+ scope
+ support.function
+ settings
+
+ foreground
+ #D2A6FF
+
+
+
+
+ scope
+ constant.language
+ settings
+
+ foreground
+ #B8CC52
+
+
+
+
+ scope
+ entity.name.tag
+ settings
+
+ foreground
+ #95E6CB
+
+
+
+
+ scope
+ invalid
+ settings
+
+ foreground
+ #E6B673
+
+
+
+
+
+''
diff --git a/modules/tools/viewer/default.nix b/modules/tools/viewer/default.nix
new file mode 100644
index 0000000..dde782b
--- /dev/null
+++ b/modules/tools/viewer/default.nix
@@ -0,0 +1,7 @@
+{ lib, config, ... }:
+
+{
+ imports = [
+ ./bat
+ ];
+}
diff --git a/nvim/default.nix b/nvim/default.nix
deleted file mode 100644
index 73dc359..0000000
--- a/nvim/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ pkgs, config, ... }:
-
-{
- programs.neovim.enable = true;
- programs.neovim.viAlias = true;
- programs.neovim.vimAlias = true;
- programs.neovim.vimdiffAlias = true;
- programs.neovim.defaultEditor = true;
-
- programs.neovim.extraPackages = with pkgs; [
- gcc # Required for treesitter
- ];
-
- programs.neovim.extraLuaConfig =
-''
-${builtins.readFile ./options.lua}
-${builtins.readFile ./keybindings.lua}
-
--- Plugins configuration
-${builtins.readFile ./plugins/comment.lua}
-${builtins.readFile ./plugins/lualine.lua}
-${import ./plugins/treesitter.nix config}
-${builtins.readFile ./plugins/base16.lua}
-${builtins.readFile ./plugins/nvim-tree.lua}
-'';
-
- programs.neovim.plugins = with pkgs.vimPlugins; [
- comment-nvim
- lualine-nvim
- nvim-treesitter
- nvim-web-devicons
- nvim-tree-lua
- (base16-vim.overrideAttrs (old: {
- patchPhase = "ln -s ${config.scheme base16-vim} colors/base16-scheme.vim";
- }))
- ];
-}
diff --git a/nvim/keybindings.lua b/nvim/keybindings.lua
deleted file mode 100644
index 3e8e0fa..0000000
--- a/nvim/keybindings.lua
+++ /dev/null
@@ -1,8 +0,0 @@
--- Navigate splits
-vim.keymap.set("n", "", ":wincmd h", { silent = true });
-vim.keymap.set("n", "", ":wincmd j", { silent = true });
-vim.keymap.set("n", "", ":wincmd k", { silent = true });
-vim.keymap.set("n", "", ":wincmd l", { silent = true });
-
--- NvimTree
-vim.keymap.set("n", "", ":NvimTreeToggle", { silent = true });
diff --git a/nvim/options.lua b/nvim/options.lua
deleted file mode 100644
index b1fe9cb..0000000
--- a/nvim/options.lua
+++ /dev/null
@@ -1,21 +0,0 @@
-vim.g.mapleader = " ";
-vim.g.maplocalleader = " ";
-
-vim.o.clipboard = "unnamedplus";
-
-vim.o.number = true;
-vim.o.list = true;
-vim.o.listchars = "tab:| ,trail:_,lead:_";
-
-vim.o.laststatus = 3;
-
-vim.o.signcolumn = "auto";
-vim.opt.fillchars = { eob = " " };
-
-vim.o.tabstop = 2;
-vim.o.shiftwidth = 2;
-vim.o.expandtab = false;
-
-vim.o.updatetime = 300;
-
-vim.o.mouse = "a";
diff --git a/nvim/plugins/base16.lua b/nvim/plugins/base16.lua
deleted file mode 100644
index 9843b76..0000000
--- a/nvim/plugins/base16.lua
+++ /dev/null
@@ -1,6 +0,0 @@
-vim.o.termguicolors = true;
-vim.opt.termguicolors = true;
-vim.o.background = "dark";
-vim.g.base16colorspace = 256
-vim.cmd.colorscheme("base16-scheme");
-vim.api.nvim_set_hl(0, "LineNr", { link = "Normal" }); -- disable the background of line numbers
diff --git a/nvim/plugins/comment.lua b/nvim/plugins/comment.lua
deleted file mode 100644
index 9086261..0000000
--- a/nvim/plugins/comment.lua
+++ /dev/null
@@ -1 +0,0 @@
-require("Comment").setup();
diff --git a/nvim/plugins/lualine.lua b/nvim/plugins/lualine.lua
deleted file mode 100644
index ba2eda6..0000000
--- a/nvim/plugins/lualine.lua
+++ /dev/null
@@ -1,5 +0,0 @@
-require("lualine").setup {
- options = {
- globalstatus = true,
- },
-};
diff --git a/nvim/plugins/nvim-tree.lua b/nvim/plugins/nvim-tree.lua
deleted file mode 100644
index c6c4102..0000000
--- a/nvim/plugins/nvim-tree.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-require("nvim-tree").setup {
- filters = {
- enable = false
- },
- renderer = {
- indent_markers = {
- enable = true
- },
- root_folder_label = function(path)
- return vim.fn.fnamemodify(path, ":t")
- end,
- },
-};
diff --git a/nvim/plugins/treesitter.nix b/nvim/plugins/treesitter.nix
deleted file mode 100644
index 05f1f2a..0000000
--- a/nvim/plugins/treesitter.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-config:
-
-''
-require("nvim-treesitter.configs").setup {
- auto_install = true,
- highlight = {
- enable = true,
- },
- parser_install_dir = "${config.xdg.dataHome}/nvim",
-};
-
-vim.opt.runtimepath:append("${config.xdg.dataHome}/nvim");
-''
diff --git a/polybar/bars/main.nix b/polybar/bars/main.nix
deleted file mode 100644
index 630664d..0000000
--- a/polybar/bars/main.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-config:
-
-with config.scheme.withHashtag;
-{
- width = "100%";
- height = 30;
- radius = 3;
- fixed-center = false;
-
- background = "${base00}";
- foreground = "${base05}";
-
- line-size = 3;
- line-color = "${base08}";
-
- border-size = 4;
- padding-left = 2;
- padding-right = 2;
-
- module-margin-left = 2;
- module-margin-right = 2;
-
- font-0 = "FiraCode Nerd Font:pixelsize=16;3";
-
- modules-left = "bspwm";
- modules-center = "xwindow";
- modules-right = "memory cpu battery time date kernel-version";
-}
diff --git a/polybar/default.nix b/polybar/default.nix
deleted file mode 100644
index 8eec80f..0000000
--- a/polybar/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ config, ... }:
-
-{
- services.polybar.enable = true;
- services.polybar.script = "polybar main &";
-
- services.polybar.config = {
- "bar/main" = import ./bars/main.nix config;
- "module/xwindow" = import ./modules/xwindow.nix config;
- "module/bspwm" = import ./modules/bspwm.nix config;
- "module/cpu" = import ./modules/cpu.nix config;
- "module/memory" = import ./modules/memory.nix config;
- "module/date" = import ./modules/date.nix config;
- "module/time" = import ./modules/time.nix config;
- "module/battery" = import ./modules/battery.nix config;
- "module/kernel-version" = import ./modules/kernel-version.nix config;
- };
-}
diff --git a/polybar/modules/battery.nix b/polybar/modules/battery.nix
deleted file mode 100644
index 9860c3c..0000000
--- a/polybar/modules/battery.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-config:
-
-with config.scheme.withHashtag;
-{
- type = "internal/battery";
- battery = "BAT0";
- adapter = "ADP1";
-
- format-charging = " ";
- format-discharging = " ";
- format-full-prefix = "%{F${base0B}}%{F-}";
-
- ramp-capacity-0 = "%{F${base0C}}%{F-}";
- ramp-capacity-1 = "%{F${base0C}}%{F-}";
- ramp-capacity-2 = "%{F${base0C}}%{F-}";
- ramp-capacity-3 = "%{F${base0C}}%{F-}";
- ramp-capacity-4 = "%{F${base0C}}%{F-}";
- ramp-capacity-5 = "%{F${base0C}}%{F-}";
- ramp-capacity-6 = "%{F${base0C}}%{F-}";
- ramp-capacity-7 = "%{F${base0C}}%{F-}";
- ramp-capacity-8 = "%{F${base0C}}%{F-}";
- ramp-capacity-9 = "%{F${base0C}}%{F-}";
-
- animation-charging-0 = "%{F${base0C}}%{F-}";
- animation-charging-1 = "%{F${base0C}}%{F-}";
- animation-charging-2 = "%{F${base0C}}%{F-}";
- animation-charging-3 = "%{F${base0C}}%{F-}";
- animation-charging-4 = "%{F${base0C}}%{F-}";
- animation-charging-5 = "%{F${base0C}}%{F-}";
- animation-charging-6 = "%{F${base0C}}%{F-}";
- animation-charging-7 = "%{F${base0C}}%{F-}";
- animation-charging-8 = "%{F${base0C}}%{F-}";
- animation-charging-9 = "%{F${base0C}}%{F-}";
-
- animation-charging-framerate = 750;
-}
diff --git a/polybar/modules/bspwm.nix b/polybar/modules/bspwm.nix
deleted file mode 100644
index 7ec5c6d..0000000
--- a/polybar/modules/bspwm.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-config:
-
-with config.scheme.withHashtag;
-{
- type = "internal/bspwm";
-
- label-focused = "%index%";
- label-focused-background = "${base01}";
- label-focused-underline = "${base0D}";
- label-focused-padding = 2;
-
- label-occupied = "%index%";
- label-occupied-padding = 2;
-
- label-urgent = "%index%!";
- label-urgent-background = "${base08}";
- label-urgent-padding = 2;
-
- label-empty = "%index%";
- label-empty-foreground = "${base03}";
- label-empty-padding = 2;
-}
diff --git a/polybar/modules/cpu.nix b/polybar/modules/cpu.nix
deleted file mode 100644
index f118990..0000000
--- a/polybar/modules/cpu.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-config:
-
-with config.scheme.withHashtag;
-{
- type = "internal/cpu";
- interval = 2;
- format-prefix = "%{F${base09}} %{F-}";
- label = "%percentage%%";
-}
diff --git a/polybar/modules/date.nix b/polybar/modules/date.nix
deleted file mode 100644
index 11a5934..0000000
--- a/polybar/modules/date.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-config:
-
-with config.scheme.withHashtag;
-{
- type = "internal/date";
- interval = 60;
- date = "%d/%m/%Y";
- label = "%date%";
- format-prefix = "%{F${base0B}} %{F-}";
-}
diff --git a/polybar/modules/kernel-version.nix b/polybar/modules/kernel-version.nix
deleted file mode 100644
index a900264..0000000
--- a/polybar/modules/kernel-version.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-config:
-
-with config.scheme.withHashtag;
-{
- type = "custom/script";
- exec = "uname -r";
- interval = 1024;
- format-prefix = "%{F${base03}} %{F-}";
- label = "%output%";
-}
diff --git a/polybar/modules/memory.nix b/polybar/modules/memory.nix
deleted file mode 100644
index 1aff8a3..0000000
--- a/polybar/modules/memory.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-config:
-
-with config.scheme.withHashtag;
-{
- type = "internal/memory";
- interval = 2;
- format-prefix = "%{F${base0A}} %{F-}";
- label = "%percentage_used%%";
-}
diff --git a/polybar/modules/time.nix b/polybar/modules/time.nix
deleted file mode 100644
index e4c7cbe..0000000
--- a/polybar/modules/time.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-config:
-
-with config.scheme.withHashtag;
-{
- type = "internal/date";
- interval = 30;
- time = "%H:%M";
- label = "%time%";
- format-prefix = "%{F${base0C}} %{F-}";
-}
diff --git a/polybar/modules/xwindow.nix b/polybar/modules/xwindow.nix
deleted file mode 100644
index 23245ba..0000000
--- a/polybar/modules/xwindow.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-config:
-
-with config.scheme.withHashtag;
-{
- type = "internal/xwindow";
- label = "%title:0:30:...%";
-}
diff --git a/rofi/default.nix b/rofi/default.nix
deleted file mode 100644
index ad75900..0000000
--- a/rofi/default.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ config, ... }:
-
-{
- programs.rofi.enable = true;
- programs.rofi.font = "FiraCode Nerd Font 16";
- programs.rofi.theme = import ./theme/default.nix config;
-}
diff --git a/rofi/theme/default.nix b/rofi/theme/default.nix
deleted file mode 100644
index b0b8173..0000000
--- a/rofi/theme/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-config:
-
-with config.scheme.withHashtag;
-builtins.toFile "theme.rasi"
-''
-${builtins.readFile ./theme.rasi}
-configuration {
- font: "${config.programs.rofi.font}";
-}
-
-* {
- bg: ${base00};
- bg-alt: ${base01};
- fg: ${base07};
- fg-alt: ${base03};
-}
-
-window {
- border-color: ${base03};
-}
-''
diff --git a/rofi/theme/theme.rasi b/rofi/theme/theme.rasi
deleted file mode 100644
index 9d808b9..0000000
--- a/rofi/theme/theme.rasi
+++ /dev/null
@@ -1,76 +0,0 @@
-configuration {
- drun {
- display-name: " ";
- }
-
- run {
- display-name: " ";
- }
-
- window {
- display-name: " ";
- }
-
- ssh {
- display-name: " ";
- }
-
- timeout {
- delay: 10;
- action: "kb-cancel";
- }
-}
-
-* {
- border: 1;
- margin: 0;
- padding: 0;
- spacing: 0;
-
- background-color: @bg;
- text-color: @fg;
-}
-
-window {
- transparency: "real";
-}
-
-mainbox {
- children: [inputbar, listview];
-}
-
-inputbar {
- background-color: @bg-alt;
- children: [prompt, entry];
-}
-
-entry {
- background-color: inherit;
- padding: 12px 3px;
-}
-
-prompt {
- background-color: inherit;
- padding: 12px;
-}
-
-listview {
- lines: 8;
-}
-
-element {
- children: [element-text];
-}
-
-element-icon {
- padding: 10px 10px;
-}
-
-element-text {
- padding: 10px 10px;
- text-color: @fg-alt;
-}
-
-element-text selected {
- text-color: @fg;
-}
diff --git a/sxhkd/default.nix b/sxhkd/default.nix
deleted file mode 100644
index c481136..0000000
--- a/sxhkd/default.nix
+++ /dev/null
@@ -1,73 +0,0 @@
-{ pkgs, config, ... }:
-
-{
- services.sxhkd.enable = true;
-
- services.sxhkd.keybindings =
- let
- modKey = "alt";
- createKeybinding = keybinding: description: "# ${description}\n${modKey} + ${keybinding}";
- in {
- ${(createKeybinding
- "s"
- "Show keybindings.")}
- = pkgs.writeShellScript
- "show-keybindings.sh"
- (builtins.readFile ./scripts/show-keybindings.sh);
-
- ${(createKeybinding
- "r"
- "Launch rofi.")}
- = "rofi -show run";
-
- ${(createKeybinding
- "t"
- "Launch terminal.")}
- = "alacritty";
-
- ${(createKeybinding
- "f"
- "Launch File Explorer.")}
- = "alacritty -t 'File Explorer' --class 'popup' -e lf";
-
- ${(createKeybinding
- "q"
- "Kill current window.")}
- = "bspc node -c";
-
- ${(createKeybinding
- "{1-9,0}"
- "Switch workspace.")}
- = "bspc desktop -f {1-9,10}";
-
- ${(createKeybinding
- "shift + {1-9,0}"
- "Move window to workspace.")}
- = "bspc node -d {1-9,10} --follow";
-
- ${(createKeybinding
- "{n,d,m}"
- "Set current window mode (tiled, floating, fullscreen).")}
- = "bspc node focused -t {tiled,floating,fullscreen}";
-
- ${(createKeybinding
- "{_,shift + }{h,j,k,l}"
- "Navigate between windows.")}
- = "bspc node --{focus,swap} {west,south,north,east}";
-
- # the indentation for each line is required to work with the help prompt
- ${(createKeybinding
- "ctrl + {h,j,k,l}"
- "Resize current window.")}
- = ''
- {bspc node @parent/second -z left -20 0; \
- bspc node @parent/first -z right -20 0, \
- bspc node @parent/second -z top 0 +20; \
- bspc node @parent/first -z bottom 0 +20, \
- bspc node @parent/first -z bottom 0 -20; \
- bspc node @parent/second -z top 0 -20, \
- bspc node @parent/first -z right +20 0; \
- bspc node @parent/second -z left +20 0}
- '';
- };
-}
diff --git a/sxhkd/scripts/show-keybindings.sh b/sxhkd/scripts/show-keybindings.sh
deleted file mode 100644
index db7863d..0000000
--- a/sxhkd/scripts/show-keybindings.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-SXHKD_CONFIG="$HOME/.config/sxhkd/sxhkdrc"
-
-awk '
- /^#/ {
- desc = substr($0, 3)
- }
- /^[[:alnum:]]/ {
- cmd = $0
- getline
- print cmd " : " desc
- }
-' "$SXHKD_CONFIG" | rofi -dmenu -i -p "Keybindings"
diff --git a/xresources/default.nix b/xresources/default.nix
deleted file mode 100644
index 34f986c..0000000
--- a/xresources/default.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ ... }:
-
-{
- home.file.".xinitrc" = {
- source = ./xinitrc;
- executable = true;
- };
-}
diff --git a/xresources/xinitrc b/xresources/xinitrc
deleted file mode 100644
index 2ac4486..0000000
--- a/xresources/xinitrc
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-polybar main &
-sxhkd &
-exec bspwm
diff --git a/zsh/default.nix b/zsh/default.nix
deleted file mode 100644
index 1951933..0000000
--- a/zsh/default.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ config, ... }:
-
-{
- programs.zsh.enable = true;
- programs.zsh.dotDir = ".config/zsh";
- programs.zsh.history.path = "${config.xdg.cacheHome}/zsh/history";
- programs.zsh.initExtra = builtins.readFile ./zshrc;
- programs.zsh.shellAliases = config.programs.bash.shellAliases;
-}
diff --git a/zsh/zshrc b/zsh/zshrc
deleted file mode 100644
index 528bf68..0000000
--- a/zsh/zshrc
+++ /dev/null
@@ -1,19 +0,0 @@
-setopt PROMPT_SUBST
-
-autoload -U colors && colors
-
-autoload -Uz vcs_info
-precmd() { vcs_info }
-
-zstyle ':vcs_info:git:*' formats ' %F{yellow}[%F{cyan}%b %c%F{blue}%a%F{yellow}]'
-zstyle ':vcs_info:git:*' actionformats ' %F{yellow}[%F{cyan}%b %c%F{blue}%a%F{yellow}]'
-
-zstyle ':vcs_info:*+set-message:*' hooks git-untracked git-dirty
-
-zstyle ':vcs_info:git:*' check-for-changes true
-zstyle ':vcs_info:git:*' stagedstr '%F{green}✓%f'
-zstyle ':vcs_info:git:*' unstagedstr '%F{red}✗%f'
-zstyle ':vcs_info:git:*' aheadstr '%F{blue}⬆%f'
-zstyle ':vcs_info:git:*' behindstr '%F{yellow}⬇%f'
-PROMPT='%F{red}╭──[%F{green}%m%F{red}@%F{blue}%n%F{red}] %F{magenta}%~%f${vcs_info_msg_0_}%F{red}
-╰─>%f '
--
cgit v1.2.3