From 0681d1fd7cdee393e3bbdd420053a0d250b8c89b Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Fri, 11 Sep 2020 03:12:26 +0800 Subject: [PATCH] Structure the project with NixOS-styled distros It's been a while but I've been using NixOS (or anything styled like it like GuixSD, for example) and distro-hopped from Arch Linux. I think it's high noon for making the structure of this setup to be truer to one of the big objectives which is how easy to transfer this between different setups. Which means I removed some things such as the package lists, systemd config files, and package manager-specific configs. While the solution is easy (which is to simply ignore the system-specific files) but I'm not going with the pragmatic solution not because I'm a dumbass but because I'm so smart that I want to create a challenge for myself to solve a puzzle on figuring out a way on how to structure my dotfiles. :) Such a productive use of my time, that's for sure. --- .editorconfig | 0 .gitignore | 1 + LICENSE | 0 README.adoc | 100 +--- alacritty/alacritty.yml | 0 aur-packages.txt | 21 - bin/choose-emoji-menu | 15 +- bin/choose-manual-menu | 2 +- bin/colorpicker | 2 +- bin/commit-pkglist | 10 - bin/edit-file-metadata | 8 + bin/export-wal-theme | 243 ---------- bin/install-wal-theme | 47 -- bin/ocr | 2 +- bin/parse-barcodes | 2 +- bin/rofi-screenshot-menu | 2 +- bin/select-wal-theme | 22 - bin/user-prompt | 2 +- docs/bspwm-empty.png | Bin docs/dropdown-term.png | Bin docs/editors-ahoy.png | Bin docs/rofi-dunst-and-lf.png | Bin docs/terminals.png | Bin docs/vim-and-zathura.png | Bin docs/vscode-and-rofi.png | Bin dunst/dunstrc | 0 emacs/config.el | 41 +- emacs/init.el | 61 +-- emacs/modules/tools/neuron/config.el | 81 ++++ emacs/modules/tools/neuron/packages.el | 8 + emacs/packages.el | 8 +- emacs/snippets/fundamental-mode/box | 0 emacs/snippets/fundamental-mode/eg | 0 emacs/snippets/fundamental-mode/em | 0 emacs/snippets/fundamental-mode/ie | 0 emacs/snippets/fundamental-mode/now | 5 + emacs/snippets/fundamental-mode/sign | 0 emacs/snippets/fundamental-mode/today | 0 emacs/snippets/latex-mode/agraph | 0 emacs/snippets/latex-mode/boldface | 0 emacs/snippets/latex-mode/equation | 0 emacs/snippets/latex-mode/italics | 0 emacs/snippets/latex-mode/listitem | 0 emacs/snippets/latex-mode/mathblock | 0 emacs/snippets/latex-mode/mathinline | 0 emacs/snippets/latex-mode/ol | 0 emacs/snippets/latex-mode/section | 0 emacs/snippets/latex-mode/subsection | 0 emacs/snippets/latex-mode/teletype | 0 emacs/snippets/latex-mode/template | 0 emacs/snippets/latex-mode/ul | 0 emacs/snippets/org-mode/.yas-parents | 0 emacs/snippets/org-mode/appendix | 0 emacs/snippets/org-mode/block | 0 emacs/snippets/org-mode/boldface | 0 emacs/snippets/org-mode/comment-block | 0 emacs/snippets/org-mode/deflist | 0 emacs/snippets/org-mode/drawer | 0 emacs/snippets/org-mode/footnote | 0 emacs/snippets/org-mode/header | 0 emacs/snippets/org-mode/header-props | 5 + emacs/snippets/org-mode/img | 0 emacs/snippets/org-mode/italics | 0 emacs/snippets/org-mode/link | 0 emacs/snippets/org-mode/local-property | 5 - emacs/snippets/org-mode/monospace | 0 emacs/snippets/org-mode/property | 6 +- .../{local-property-block => property-block} | 2 +- emacs/snippets/org-mode/source | 2 +- emacs/snippets/org-mode/subscript | 0 emacs/snippets/org-mode/superscript | 0 emacs/snippets/org-mode/video | 0 emacs/templates/org-mode/__ | 28 ++ lf/lfrc | 0 locations.json | 0 makefile | 6 +- nvim/init.vim | 3 + nvim/own-snippets/all.snippets | 0 nvim/own-snippets/asciidoc.snippets | 2 +- nvim/own-snippets/nroff.snippets | 0 nvim/own-snippets/python.snippets | 0 nvim/own-snippets/sh.snippets | 0 nvim/own-snippets/snippets.snippets | 0 nvim/own-snippets/tex.snippets | 0 packages.txt | 321 ------------- pacman/hooks/100-systemd-boot.hook | 0 pacman/pacman.conf | 0 picom/picom.conf | 0 polybar/config | 0 rofi/config.rasi | 0 rofi/themes/dmenu.rasi | 0 rofi/themes/fds-center-menu.rasi | 0 rofi/themes/fds-mini-sidebar.rasi | 0 sxhkd/sxhkdrc | 12 +- sxiv/exec/image-info | 0 sxiv/exec/key-handler | 0 systemd/user/local-backup.service | 10 - systemd/user/local-backup.timer | 10 - systemd/user/pkglist-commit.service | 9 - systemd/user/pkglist-commit.timer | 9 - systemd/user/pkglist-update.service | 10 - systemd/user/pkglist-update.timer | 9 - systemd/user/recoll-index-update.service | 9 - systemd/user/recoll-index-update.timer | 11 - manager.py => vtsm | 0 wal/colorschemes/dark/nord.json | 26 -- wal/templates/bspwmrc | 24 - wal/templates/dmenu.rasi | 66 --- wal/templates/dunstrc | 435 ------------------ wal/templates/fds-center-menu.rasi | 93 ---- wal/templates/fds-mini-sidebar.rasi | 122 ----- xorg/.Xresources | 68 --- xorg/.xinitrc | 30 -- xorg/.xprofile | 28 -- zsh/.profile | 0 zsh/.zprofile | 0 zsh/.zshrc | 0 117 files changed, 250 insertions(+), 1794 deletions(-) mode change 100644 => 100755 .editorconfig create mode 100644 .gitignore mode change 100644 => 100755 LICENSE mode change 100644 => 100755 README.adoc mode change 100644 => 100755 alacritty/alacritty.yml delete mode 100644 aur-packages.txt delete mode 100755 bin/commit-pkglist create mode 100755 bin/edit-file-metadata delete mode 100755 bin/export-wal-theme delete mode 100755 bin/install-wal-theme delete mode 100755 bin/select-wal-theme mode change 100644 => 100755 docs/bspwm-empty.png mode change 100644 => 100755 docs/dropdown-term.png mode change 100644 => 100755 docs/editors-ahoy.png mode change 100644 => 100755 docs/rofi-dunst-and-lf.png mode change 100644 => 100755 docs/terminals.png mode change 100644 => 100755 docs/vim-and-zathura.png mode change 100644 => 100755 docs/vscode-and-rofi.png mode change 100644 => 100755 dunst/dunstrc mode change 100644 => 100755 emacs/config.el mode change 100644 => 100755 emacs/init.el create mode 100755 emacs/modules/tools/neuron/config.el create mode 100755 emacs/modules/tools/neuron/packages.el mode change 100644 => 100755 emacs/packages.el mode change 100644 => 100755 emacs/snippets/fundamental-mode/box mode change 100644 => 100755 emacs/snippets/fundamental-mode/eg mode change 100644 => 100755 emacs/snippets/fundamental-mode/em mode change 100644 => 100755 emacs/snippets/fundamental-mode/ie create mode 100755 emacs/snippets/fundamental-mode/now mode change 100644 => 100755 emacs/snippets/fundamental-mode/sign mode change 100644 => 100755 emacs/snippets/fundamental-mode/today mode change 100644 => 100755 emacs/snippets/latex-mode/agraph mode change 100644 => 100755 emacs/snippets/latex-mode/boldface mode change 100644 => 100755 emacs/snippets/latex-mode/equation mode change 100644 => 100755 emacs/snippets/latex-mode/italics mode change 100644 => 100755 emacs/snippets/latex-mode/listitem mode change 100644 => 100755 emacs/snippets/latex-mode/mathblock mode change 100644 => 100755 emacs/snippets/latex-mode/mathinline mode change 100644 => 100755 emacs/snippets/latex-mode/ol mode change 100644 => 100755 emacs/snippets/latex-mode/section mode change 100644 => 100755 emacs/snippets/latex-mode/subsection mode change 100644 => 100755 emacs/snippets/latex-mode/teletype mode change 100644 => 100755 emacs/snippets/latex-mode/template mode change 100644 => 100755 emacs/snippets/latex-mode/ul mode change 100644 => 100755 emacs/snippets/org-mode/.yas-parents mode change 100644 => 100755 emacs/snippets/org-mode/appendix mode change 100644 => 100755 emacs/snippets/org-mode/block mode change 100644 => 100755 emacs/snippets/org-mode/boldface mode change 100644 => 100755 emacs/snippets/org-mode/comment-block mode change 100644 => 100755 emacs/snippets/org-mode/deflist mode change 100644 => 100755 emacs/snippets/org-mode/drawer mode change 100644 => 100755 emacs/snippets/org-mode/footnote mode change 100644 => 100755 emacs/snippets/org-mode/header create mode 100755 emacs/snippets/org-mode/header-props mode change 100644 => 100755 emacs/snippets/org-mode/img mode change 100644 => 100755 emacs/snippets/org-mode/italics mode change 100644 => 100755 emacs/snippets/org-mode/link delete mode 100644 emacs/snippets/org-mode/local-property mode change 100644 => 100755 emacs/snippets/org-mode/monospace mode change 100644 => 100755 emacs/snippets/org-mode/property rename emacs/snippets/org-mode/{local-property-block => property-block} (83%) mode change 100644 => 100755 mode change 100644 => 100755 emacs/snippets/org-mode/source mode change 100644 => 100755 emacs/snippets/org-mode/subscript mode change 100644 => 100755 emacs/snippets/org-mode/superscript mode change 100644 => 100755 emacs/snippets/org-mode/video create mode 100644 emacs/templates/org-mode/__ mode change 100644 => 100755 lf/lfrc mode change 100644 => 100755 locations.json mode change 100644 => 100755 makefile mode change 100644 => 100755 nvim/init.vim mode change 100644 => 100755 nvim/own-snippets/all.snippets mode change 100644 => 100755 nvim/own-snippets/asciidoc.snippets mode change 100644 => 100755 nvim/own-snippets/nroff.snippets mode change 100644 => 100755 nvim/own-snippets/python.snippets mode change 100644 => 100755 nvim/own-snippets/sh.snippets mode change 100644 => 100755 nvim/own-snippets/snippets.snippets mode change 100644 => 100755 nvim/own-snippets/tex.snippets delete mode 100644 packages.txt mode change 100644 => 100755 pacman/hooks/100-systemd-boot.hook mode change 100644 => 100755 pacman/pacman.conf mode change 100644 => 100755 picom/picom.conf mode change 100644 => 100755 polybar/config mode change 100644 => 100755 rofi/config.rasi mode change 100644 => 100755 rofi/themes/dmenu.rasi mode change 100644 => 100755 rofi/themes/fds-center-menu.rasi mode change 100644 => 100755 rofi/themes/fds-mini-sidebar.rasi mode change 100644 => 100755 sxhkd/sxhkdrc mode change 100644 => 100755 sxiv/exec/image-info mode change 100644 => 100755 sxiv/exec/key-handler delete mode 100644 systemd/user/local-backup.service delete mode 100644 systemd/user/local-backup.timer delete mode 100644 systemd/user/pkglist-commit.service delete mode 100644 systemd/user/pkglist-commit.timer delete mode 100644 systemd/user/pkglist-update.service delete mode 100644 systemd/user/pkglist-update.timer delete mode 100644 systemd/user/recoll-index-update.service delete mode 100644 systemd/user/recoll-index-update.timer rename manager.py => vtsm (100%) delete mode 100644 wal/colorschemes/dark/nord.json delete mode 100644 wal/templates/bspwmrc delete mode 100644 wal/templates/dmenu.rasi delete mode 100644 wal/templates/dunstrc delete mode 100644 wal/templates/fds-center-menu.rasi delete mode 100644 wal/templates/fds-mini-sidebar.rasi delete mode 100644 xorg/.Xresources delete mode 100644 xorg/.xinitrc delete mode 100644 xorg/.xprofile mode change 100644 => 100755 zsh/.profile mode change 100644 => 100755 zsh/.zprofile mode change 100644 => 100755 zsh/.zshrc diff --git a/.editorconfig b/.editorconfig old mode 100644 new mode 100755 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea289fc --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +**/.envrc diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.adoc b/README.adoc old mode 100644 new mode 100755 index 0717e11..13cd80d --- a/README.adoc +++ b/README.adoc @@ -40,9 +40,9 @@ image::docs/dropdown-term.png[A dropdown terminal] == Specifications -Here are the main specifications of my machine currently running this (as of 2020-05-01): +Here are the main specifications of my machine currently running this (as of 2020-09-11): -* **Operating system**: https://www.archlinux.org/[Arch Linux] +* **Operating system**: https://nixos.org/[NixOS]-based distros (e.g., NixOS, GuixSD) * **Display server**: X Window System using https://www.x.org/wiki/[Xorg] * **Window manager**: https://github.com/baskerville/bspwm[bspwm] * **Terminal emulator**: https://github.com/jwilm/alacritty/[Alacritty] @@ -61,13 +61,11 @@ Here's what the setup should look like (aside from the Stow packages which will ---- dotfiles ├── docs/ -├── aur-packages.txt ├── LICENSE ├── locations.json ├── makefile -├── manager.py -├── packages.txt -└── README.adoc +├── README.adoc +└── vtsm ---- The big picture for my dotfiles setup have big goals and those are (according to priority): @@ -77,27 +75,15 @@ The big picture for my dotfiles setup have big goals and those are (according to * Looking cool (but not too cool or else my potato will weep). -=== The package lists - -Starting from the most important of the set, `packages.txt` and `aur-packages.txt` are simply a list of installed packages from the official Arch repo and AUR respectively. -I prefer the lists to be separated just for ease of maintenance. -They are going to be committed at the start of every month (if it works that is). - -Since the name of the packages varies between distro to distro, this is only valid for Arch Linux. - - === How I maintain my dotfiles -`manager.py` (named Very Tiny Stow Manager or VTSM for short) is a tiny https://www.gnu.org/software/stow/[GNU Stow]-like manager created for this setup. +The dotfiles are mostly intended to be used with GNU Stow. +If you're not familiar with it, you can read http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html[this sweet short article] to get you started. + +However, with Python 3 (specifically 3.8) installed, you have another option. +Behold, the link:./vtsm["Very Tiny Stow Manager"] (VTSM for short)! VTSM takes inspiration from GNU Stow (obviously) and https://github.com/holman/dotfiles[how Zach Holman's dotfiles are set]. When managing your dotfiles, VTSM is going to be your friend/workmate. -(Nonetheless, I tried to make it generic for other cases.) -footnote:[You need Python installed for this. -For future references, the version by the time first writing the script is at v3.8.1. -That said, I may rewrite this in Bash instead or even just a makefile.] -footnote:[I may have made my life harder when I can use something like https://yadm.io/[yadm] or https://developer.atlassian.com/blog/2016/02/best-way-to-store-dotfiles-git-bare-repo/[a bare git repo] instead.] - -NOTE: Using this script is optional and feel free to discard this and exclusively use GNU Stow or something else. Using VTSM should be simple and it is nothing special, really. All it needs is a directory containing a file named `locations.json` with the name of the packages and their target path. @@ -136,13 +122,11 @@ For the command string, it is a https://docs.python.org/3/library/string.html#st # Running the program without any arguments for a test run. # There should be a bunch of `echo` commands being ran for all of the listed packages. -./manager.py +./vtsm # Create the directories of the target path and install them with GNU Stow. # Bada-bing, bada-boom, you have installed your setup or something. -./manager.py --commands "mkdir -p {location} && stow {package} --target {location}" - -# (You could also use the makefile for this.) +./vtsm --commands "mkdir -p {location} && stow {package} --target {location}" ---- @@ -168,13 +152,8 @@ The script is based from https://github.com/LukeSmithxyz/voidrice/blob/master/.l * link:./bin/toggle-process[Switching on/off programs]. Useful for situations where only one instance of the program is desirable. -* link:./bin/select-theme[A basic theme selection for easy color scheme generation] with https://github.com/muennich/sxiv[sxiv]. - * link:./bin/choose-emoji-menu[A universal emoji list] for easy copy-pasting and clear communication with those who speak Emojian. -Aside from the scripts, there are also some details and files that are not committed to this setup for privacy and security reasons. -A few examples of which is my cron setups where it is tasked with updating and committing the package lists to the Git repo, updating the packages, cleaning the cache, and so much more. - @@ -282,23 +261,6 @@ Seriously though, I find nvim to be way better for configuration.] It is based on https://github.com/gillescastel/latex-snippets/[_Gilles Castel_'s UltiSnips LaTeX snippets]. -=== https://www.archlinux.org/pacman/[pacman] - -The default package manager for Arch Linux. - -* Config location is at link:pacman/[`pacman/`] -* The usual target path is at `/etc/pacman.d`. -* Minimum version (from `pacman --version`): -** `Pacman v5.1.3 - libalpm v11.0.3` -* Contains the configuration file, a `mirrorlist` file, and some https://www.archlinux.org/mirrorlist/?ip_version=6[pacman hooks]. -* For the mirrorlist, change it accordingly or https://www.archlinux.org/mirrorlist/?ip_version=6[generate another one]. -It is also monthly updated from a cron job. -* Since this requires root privilege, this is not included in the installation script. -Simply copy it (i.e., `sudo cp pacman/ /etc/pacman.d/`) and you're done. -* The dotfiles repo also contains two package lists (i.e., `packages.txt` and `aur-packages.txt`) in the root of the project folder. -* The setup also uses `yay` as the AUR helper tool. - - === https://github.com/yshui/picom[picom] A window compositor forked from https://github.com/chjj/compton[compton] that adds off-screen buffers and additional effects and animations to the window. @@ -333,22 +295,6 @@ The theme is dynamically used with the Xresources file (by using `xrdb`). For documentation, check out the https://wiki.archlinux.org/index.php/Polybar[already linked Arch Wiki entry] and the https://github.com/polybar/polybar/wiki[official documentation from GitHub]. -=== https://github.com/dylanaraps/pywal[Pywal] - -A theme generator written in Python. -It is mostly used for ricing to get them consistent colors throughout your setup. - -* Config located at link:wal[`wal/`]. -* The usual target path for a user is at `$HOME/.config/wal`. -It is ideal that you've already have your own color schemes saved in there as well. -* Minimum version (from `wal --version`): -** `wal 3.3.0` -* Due to the nature of my setup where I want those consistent colors, most of the configurations are tucked away as https://github.com/dylanaraps/pywal/wiki/User-Template-Files[template files] but it should be easy to identify which is which. -Certain applications such as for `dunst` and `bspwm` are in here and should be considered as the real version of the config. - -For additional information, check out the https://github.com/dylanaraps/pywal/wiki/[documentation] from the GitHub page. - - === https://github.com/davatorium/rofi[Rofi] The application switcher and launcher. @@ -397,30 +343,6 @@ I also recommend https://www.youtube.com/watch?v=GYW9i_u5PYs[Luke Smith's video] That's where I also heard of it. -=== https://systemd.io/[systemd] - -A set of building blocks for system management of a Linux-based system. - -* Config located at link:systemd/[`sxiv/`] directory. -* The usual target path is at `$HOME/.config/systemd`. -* Minimum version (from `systemctl --version`): -** `systemd 245 (245.5-2-arch)` -* Contains simple services and timers (as replacement for cron) such as backups and package list updates. - - -=== https://www.x.org/wiki/[Xorg] - -A display server implementing X window system. - -* Config found at link:xorg/[`xorg/`] directory. -* The usual target path for a user is at `$HOME/`. -* Minimum version (from `Xorg -version`): -** `X.Org X Server 1.20.5` -** `X Protocol Version 11, Revision 0` -* The configuration is found at `.Xresources` containing the colors (0 to 15, foreground, and the background). -It may be bound to be an automatically generated file from https://github.com/dylanaraps/pywal[Pywal] soon. - - === https://www.zsh.org/[Zsh] A Unix shell and an alternative to the Bash. diff --git a/alacritty/alacritty.yml b/alacritty/alacritty.yml old mode 100644 new mode 100755 diff --git a/aur-packages.txt b/aur-packages.txt deleted file mode 100644 index 0c2ec2e..0000000 --- a/aur-packages.txt +++ /dev/null @@ -1,21 +0,0 @@ -android-studio -brave-bin -buku -doom1-wad -ffcast -freedoom -gzdoom -lf-bin -nix -otf-stix -pipes.sh -polybar -python2-scour -tabbed -tdrop-git -ttf-computer-modern-fonts -ttf-iosevka -wpgtk-git -xorg-server-xdmx -xurls -yay diff --git a/bin/choose-emoji-menu b/bin/choose-emoji-menu index 6109c64..814f172 100755 --- a/bin/choose-emoji-menu +++ b/bin/choose-emoji-menu @@ -1,8 +1,10 @@ #!/usr/bin/env sh -# Simply create a universal emoji selection list. +# Simply create a universal emoji selection list. +# The emoji list should be the following file: +# https://unicode.org/Public/emoji/13.0/emoji-test.txt -# Dependencies: +# Dependencies: # * mktemp - GNU coreutils 8.31 # * wget - GNU Wget 1.20.3 built on linux-gnu # * sed - GNU sed 4.8 @@ -10,12 +12,15 @@ # * rofi - Version: 1.5.4 # * xclip - version 0.13 -emoji_file="$HOME/.local/share/emoji-test.txt" +emoji_file="$HOME/.local/share/emoji-list.txt" +if [[ ! -f $emoji_file ]]; then + wget --output-document "$emoji_file" https://unicode.org/Public/emoji/13.0/emoji-test.txt +fi + selection=$(awk 'match($0, /([0-9A-F ]+)\s+; fully-qualified\s+# (\S+) E[[:digit:]]+.[[:digit:]]+ (.+)$/, a){print a[2], a[3]}' "$emoji_file" \ | rofi -dmenu -i -fuzzy -p "Choose an emoji to copy." \ - | awk '{print $1}') + | awk '{print $1}') if [ -n "$selection" ]; then printf "%s" "$selection" | xclip -selection clipboard && notify-send "'$(xclip -o -selection clipboard)' has been copied to clipboard." fi - diff --git a/bin/choose-manual-menu b/bin/choose-manual-menu index 772c2de..fdf5d5b 100755 --- a/bin/choose-manual-menu +++ b/bin/choose-manual-menu @@ -17,6 +17,6 @@ set -o pipefail -man -k . | rofi -dmenu -p 'Choose a manual' -theme fds-mini-sidebar -width 60 | awk '{print $1}' | xargs --no-run-if-empty "$TERMINAL" --command man +man -k . | rofi -dmenu -p 'Choose a manual' | awk '{print $1}' | xargs --no-run-if-empty "$TERMINAL" --command man diff --git a/bin/colorpicker b/bin/colorpicker index 68bb98e..9ae8413 100755 --- a/bin/colorpicker +++ b/bin/colorpicker @@ -1,4 +1,4 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash # Selects the region, echoes the hex string (in RGBA format) of the average color of the region. diff --git a/bin/commit-pkglist b/bin/commit-pkglist deleted file mode 100755 index db5871f..0000000 --- a/bin/commit-pkglist +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env sh - -# Simply commits the package lists `packages.txt` and `aur-packages.txt` into the Git repo. -# This script is specifically used for a cron job where this is run monthly. - -DOTFILES_DIRECTORY="$HOME/dotfiles" - -cd "$DOTFILES_DIRECTORY" -git add "packages.txt" "aur-packages.txt" -git commit -m "Update package lists as of $(date +%F)" \ No newline at end of file diff --git a/bin/edit-file-metadata b/bin/edit-file-metadata new file mode 100755 index 0000000..8ec5bb1 --- /dev/null +++ b/bin/edit-file-metadata @@ -0,0 +1,8 @@ +#!/usr/bin/env perl + +use Modern::Perl; + +sub kebab_case { + my ($sentence) = @_; + $sentence = +} diff --git a/bin/export-wal-theme b/bin/export-wal-theme deleted file mode 100755 index 819832f..0000000 --- a/bin/export-wal-theme +++ /dev/null @@ -1,243 +0,0 @@ -#!/usr/bin/env python - -# This simple Python 3 script simply generates a color scheme in wpgtk style with the auto-adjusted colors. -# I like how wpgtk generates the color palette but I don't like the workflow of it. -# I like the simple workflow of pywal but I don't like the colors generated by it and I think it has built-in limitations for generating colors. -# So I combined both of the best in this one glued script. - -# The command line program simply needs an image path as the argument — `export-theme ~/Pictures/mountain.jpg`. -# It will also export the theme as a JSON file in the current directory — `mountain.json`. - -# Most of the code are "borrowed" from the wpgtk codebase and I've simply studied them and added some documentation. -# It simply needs pywal as a dependency. - -import argparse -from colorsys import rgb_to_hls, hls_to_rgb -import json -import math -from operator import itemgetter -import os.path -from pathlib import Path -import sys - -import pywal - - -################### -# COLOR FUNCTIONS # -################### - -def hls_to_hex(hls): - """ - Returns a HLS coordinate into its hex color code equivalent. - - :param: hls - An HLS tuple according to the colorsys library (https://docs.python.org/3.8/library/colorsys.html). - - :returns: A hex color string equivalent. - """ - h, l, s = hls - r, g, b = hls_to_rgb(h, l, s) - rgb_int = [max(min(int(elem), 255), 0) for elem in [r, g, b]] - - return pywal.util.rgb_to_hex(rgb_int) - - -def hex_to_hls(hex_string): - """ - Returns an HLS coordinate equivalent of the given hex color code. - It uses RGB as the intermediate for converting the hex string. - - :param: hex_string - A (hopefully) valid hex string. - - :returns: An HLS tuple compatible with the colorsys library. - """ - r, g, b = pywal.util.hex_to_rgb(hex_string) - return rgb_to_hls(r, g, b) - - -def get_distance(hex_src, hex_tgt): - """ - Returns the distance between two hex values. - The formula used in this function is based from the Wikipedia article (https://en.wikipedia.org/wiki/Color_difference). - - :param: hex_src - A hex color string. - :param: hex_tgt - The target hex color code. - - :returns: A float that describes the distance. - """ - r1, g1, b1 = pywal.util.hex_to_rgb(hex_src) - r2, g2, b2 = pywal.util.hex_to_rgb(hex_tgt) - - return math.sqrt((r2 - r1)**2 + (g2 - g1)**2 + (b2 - b1)**2) - - -def alter_brightness(hex_string, light, sat=0): - """ - Alters amount of light and saturation in a color. - - :param: hex_string - A hex color string (top-notch documentation right here, folks). - :param: light - The amount of light to apply; generally, the acceptable range is -255 to 255 and beyond that is dangerous territory. - :param: sat - The amount of saturation to apply; the acceptable range is -1 to 1. - - :returns: A hex color code of the adjusted color. - """ - h, l, s = hex_to_hls(hex_string) - l = max(min(l + light, 255), 1) - s = min(max(s - sat, -1), 0) - - return hls_to_hex((h, l, s)) - - -def is_dark_theme(color_list): - """ - Checks by the color list if it's a dark theme. - - :param: color_list - A list of hex color codes usually 16 of them. - - :returns: A boolean indicating if it's a dark theme. - """ - *_, bg_brightness = hex_to_hls(color_list[0]) - *_, fg_brightness = hex_to_hls(color_list[7]) - - return fg_brightness < bg_brightness - - -def adjust_colors(colors, light_mode = False): - """ - Create a clear foreground and background set of colors. - - :param: colors - A Pywal color object. See https://github.com/dylanaraps/pywal/wiki/Using-%60pywal%60-as-a-module#color-dict-format for more info. - :param: light_mode - Toggle to create a light mode version of the adjustment. - - :returns: A Pywal color object with the adjusted values. - """ - colors = smart_sort(colors) - - added_sat = 0.25 if light_mode else 0.1 - sign = -1 if light_mode else 1 - - if light_mode == is_dark_theme(colors): - colors[7], colors[0] = colors[0], colors[7] - - comment = [alter_brightness(colors[0], sign * 25)] - fg = [alter_brightness(colors[7], sign * 60)] - - colors = colors[:8] + comment \ - + [alter_brightness(color, sign * hex_to_hls(color)[1] * 0.3, added_sat) for color in colors[1:7]] + fg - - return colors - - -def smart_sort(colors): - """ - Automatically set the most look-alike colors to their - corresponding place in the standard xterm colors. - - :param: colors - A list of hex color strings. - - :returns: The color list sorted out. - """ - colors = colors[:8] - sorted_by_color = list() - base_colors = ["#000000", "#ff0000", "#00ff00", "#ffff00", - "#0000ff", "#ff00ff", "#00ffff", "#ffffff"] - - for y in base_colors: - cd_tuple = [(x, get_distance(x, y)) for i, x in enumerate(colors)] - cd_tuple.sort(key=itemgetter(1)) - sorted_by_color.append(cd_tuple) - - i = 0 - while i < 8: - current_cd = sorted_by_color[i][0] - closest_cds = [sorted_by_color[x][0] for x in range(8)] - reps = [x for x in range(8) if closest_cds[x][0] == current_cd[0]] - - if len(reps) > 1: - closest = min([closest_cds[x] for x in reps], key=itemgetter(1)) - reps = [x for x in reps if x != closest_cds.index(closest)] - any(sorted_by_color[x].pop(0) for x in reps) - i = 0 - else: - i += 1 - - sorted_colors = [sorted_by_color[x][0][0] for x in range(8)] - return [*sorted_colors, *sorted_colors] - - -################## -# MAIN FUNCTIONS # -################## - -def setup_args(): - """ - Setup the argument parser. - """ - description = "A simple Pywal theme export script with auto-adjusted colors from wpgtk" - argparser = argparse.ArgumentParser(description=description) - - argparser.add_argument("input", help="The input (image) of the color scheme to be generated.", metavar="IMAGE") - argparser.add_argument("-o", "--output", help="The location of the colorscheme JSON to be exported.", metavar="FILE") - argparser.add_argument("--no-output", help="Specifies no JSON output to be created; also overrides any output-related options.", action='store_true') - - return argparser - - -def export_wpgtk_colors(image_path): - """ - Export Pywal templates with the given image and the color scheme data. - Take note the exported Pywal object has no 'wallpaper' key for portability. - - :param: image_path - The path of the image. ;) - - :returns: The Pywal dictionary. - """ - pywal_dict = pywal.colors.get(image_path) - colors = [] - for color_name, color in pywal_dict["colors"].items(): - colors.append(color) - - colors = adjust_colors(colors) - - for index, color in enumerate(colors): - pywal_dict["colors"][f"color{index}"] = color - - # Export every templates in Pywal including the user templates and reload the newly applied theme. - pywal.export.every(pywal_dict) - - del pywal_dict["wallpaper"] - - # Feel free to add some reloading code that Pywal provides or something. - # I'm not putting mine since it's intended to only export theme. - # You can't tell me what to do here. >:-) - - return pywal_dict - - -def parse_args(parser, argv): - """ - Parse the args and do the thing. - - :param: parser - An `argparse.ArgumentParser` instance. - :param: argv - A list of arguments to be parsed. - """ - args = parser.parse_args(argv) - - pywal_dict = export_wpgtk_colors(args.input) - - if args.output is not None: - output_file = args.output - else: - output_file = f"{Path(args.input).stem}.json" - - if not args.no_output: - # Save the adjusted theme as a JSON file. - with open(output_file, "w") as json_file: - json.dump(pywal_dict, json_file, indent = 4) - - -if __name__ == "__main__": - argparser = setup_args() - - parse_args(argparser, sys.argv[1:]) - diff --git a/bin/install-wal-theme b/bin/install-wal-theme deleted file mode 100755 index 7139943..0000000 --- a/bin/install-wal-theme +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash - -# This is simply an additional reloading script in addition to Pywal's own. -# This code is specific machine-to-machine so you better make sure to update it to suit your need. - -readonly cache=${XDG_CACHE_HOME:-"$HOME/.cache"} -readonly config=${XDG_CONFIG_HOME:-"$HOME/.config"} - -readonly pywal_cache=${PYWAL_CACHE_DIR:-"$cache/wal"} - -# Copying the Pywal color scheme JSON into the theme list. -# This file suffix removal is based on the linked code: -# https://stackoverflow.com/a/32584935 -readonly pywal_json=$pywal_cache/colors.json -readonly theme=$(jq -r ".wallpaper" "$pywal_json" | xargs basename | rev | cut -f 2- -d '.' | rev) -readonly theme_dir="$config/wal/colorschemes/dark" -mkdir -p "$theme_dir" -cp "$pywal_json" "$theme_dir/$theme.json" - -# Copying the dynamically crerated rofi themes. -cp "$pywal_cache/fds-mini-sidebar.rasi" "$XDG_CONFIG_HOME/rofi" -cp "$pywal_cache/fds-center-menu.rasi" "$XDG_CONFIG_HOME/rofi" -cp "$pywal_cache/dmenu.rasi" "$XDG_CONFIG_HOME/rofi" - -# Copying bspwm config and reloading it. -cp "$pywal_cache/bspwmrc" "$XDG_CONFIG_HOME/bspwm" && bspc wm --restart - -# Reloading polybar. -pkill -USR1 polybar - -# Copying dunst config and reloading it. -# The reload mechanism feels very hacky and the maintainers warn about it. -# See more at the Arch Wiki entry (https://wiki.archlinux.org/index.php/Dunst) and the linked issue (https://github.com/dunst-project/dunst/issues/63). -# cp "$pywal_cache/dunstrc" "$XDG_CONFIG_HOME/dunst" && pkill dunst && nohup dunst & - -# Creating a Doom Emacs theme. -# Unlike the previous templates, this is stored on another directory. -# Unfortunately, this requires installing some crap I made. -# You can find the Doom Emacs generator here: https://gitlab.com/foo-dogsquared/doom-theme-generator/-/blob/master/doom-theme-generator.py . -( - cd ~/projects/doom-theme-generator - ./doom-theme-generator.py --name fds - mv doom-fds-theme.el "$XDG_CONFIG_HOME/doom/themes/" -) - -notify-send "The theme has been installed." - diff --git a/bin/ocr b/bin/ocr index 7b74f9e..b09ebff 100755 --- a/bin/ocr +++ b/bin/ocr @@ -1,4 +1,4 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash # A script that utilizes OCR for a screenshot and copies the text to the clipboard. diff --git a/bin/parse-barcodes b/bin/parse-barcodes index e5b566f..ea7423a 100755 --- a/bin/parse-barcodes +++ b/bin/parse-barcodes @@ -1,4 +1,4 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash # Parse various code from image selection with zbarimg and maim. diff --git a/bin/rofi-screenshot-menu b/bin/rofi-screenshot-menu index 50847f1..db48632 100755 --- a/bin/rofi-screenshot-menu +++ b/bin/rofi-screenshot-menu @@ -38,7 +38,7 @@ ffmpeg() { # Set the default command for rofi. rofi() { - command rofi -theme fds-center-menu "$@" || kill -USR1 "$_process_id" + command rofi -theme themes/fds-center-menu "$@" || kill -USR1 "$_process_id" } # Set the default command for slop. diff --git a/bin/select-wal-theme b/bin/select-wal-theme deleted file mode 100755 index c4df0a4..0000000 --- a/bin/select-wal-theme +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -# Creates an theme selection with sxiv and generates a colorscheme with pywal. -# It also reloads additional some beyond what Pywal can reload (like dunst and rofi themes). - -# Dependencies needed are sxiv (v26), pywal (v3.3.0), xdg-user-dirs, and GNU Bash (>=v5.0, I guess?). -# This script is setup-specific so be sure to modify it first. -# The `install-wal-theme` is at https://github.com/foo-dogsquared/dotfiles/blob/master/bin/install-wal-theme. - -# Arguments: -# $1 - The directory of wallpapers. - -# Feel free to change this variable as you see fit. -# This is set specifically for my setup, anyways. -wallpapers=${1:-$(xdg-user-dir PICTURES)/wallpapers} - -# Since sxiv is configurable af -# and has the ability to select more than one picture, -# it will shuffle the choices and choose only one of them (lol). -# If you're feeling lucky, go ahead and play a game of random themes from your selections. -sxiv -otbf "$wallpapers" | shuf | tail -n 1 | xargs wal --saturate 0.6 -i && install-wal-theme - diff --git a/bin/user-prompt b/bin/user-prompt index b483ab9..5a6a2ff 100755 --- a/bin/user-prompt +++ b/bin/user-prompt @@ -3,4 +3,4 @@ # Based from Luke Smith's prompt script. # https://github.com/LukeSmithxyz/voidrice/blob/master/.local/bin/prompt -[ "$(printf "No\\nYes" | rofi -theme dmenu -dmenu -p "$1")" = "Yes" ] && $2 +[ "$(printf "No\\nYes" | rofi -theme themes/dmenu -dmenu -p "$1")" = "Yes" ] && $2 diff --git a/docs/bspwm-empty.png b/docs/bspwm-empty.png old mode 100644 new mode 100755 diff --git a/docs/dropdown-term.png b/docs/dropdown-term.png old mode 100644 new mode 100755 diff --git a/docs/editors-ahoy.png b/docs/editors-ahoy.png old mode 100644 new mode 100755 diff --git a/docs/rofi-dunst-and-lf.png b/docs/rofi-dunst-and-lf.png old mode 100644 new mode 100755 diff --git a/docs/terminals.png b/docs/terminals.png old mode 100644 new mode 100755 diff --git a/docs/vim-and-zathura.png b/docs/vim-and-zathura.png old mode 100644 new mode 100755 diff --git a/docs/vscode-and-rofi.png b/docs/vscode-and-rofi.png old mode 100644 new mode 100755 diff --git a/dunst/dunstrc b/dunst/dunstrc old mode 100644 new mode 100755 diff --git a/emacs/config.el b/emacs/config.el old mode 100644 new mode 100755 index a266155..b81241e --- a/emacs/config.el +++ b/emacs/config.el @@ -67,12 +67,35 @@ (add-to-list 'safe-local-variable-values '(TeX-command-extra-options . "-shell-escape"))) -;;(use-package! ewal -;; :init (setq ewal-json-file "~/.cache/wal/colors.json" -;; ewal-use-built-in-always-p nil -;; ewal-use-built-in-on-failure-p nil -;; ewal-built-in-palette "sexy-material") -;; -;; ;; This loading of theme is required in order for ewal to work. -;; ;; See jjzmajic/ewal Issue #11 (https://gitlab.com/jjzmajic/ewal/-/issues/11). -;; :init (load-theme 'doom-fds t)) + +(after! org + (setq + ; Set the journal. + org-journal-dir "~/writings/journal" + org-journal-file-format "%F" + + ; Set a custom time-stamp pattern. + ; Even though, it's not recommended, most of the time, + time-stamp-start "DATE_MODIFIED:[ ]+\\\\?[\"<]+" + + ; Configure org-roam. + org-roam-directory "~/writings/wiki" + org-roam-capture-templates '( + ("d" "default" plain (function org-roam--capture-get-point) + "#+AUTHOR: \"%(user-full-name)\" +#+EMAIL: \"%(user-mail-address)\" +#+DATE: \"%<%Y-%m-%d %T%:z>\" +#+DATE_MODIFIED: \"%<%Y-%m-%d %T%:z>\" +#+LANGUAGE: en +#+OPTIONS: toc:t +#+PROPERTY: header-args :exports both + +%?" + :file-name "%<%Y-%m-%d-%H-%M-%S>" + :head "#+TITLE: ${title}\n" + :unnarrowed t)))) + +; Modify the time-stamp with each save. +(setq time-stamp-format "%Y-%02m-%02d %02H:%02M:%02S%:z" + +file-templates-dir (expand-file-name "templates/" doom-private-dir)) +(add-hook 'before-save-hook 'time-stamp) diff --git a/emacs/init.el b/emacs/init.el old mode 100644 new mode 100755 index 2050f09..d4aabf6 --- a/emacs/init.el +++ b/emacs/init.el @@ -16,10 +16,10 @@ (doom! :input ;;chinese - ;;japanese + japanese :completion - company ; the ultimate code completion backend + (company +childframe) ; the ultimate code completion backend ;;helm ; the *other* search engine for love and life ;;ido ; the other *other* search engine... ivy ; a search engine for love and life @@ -38,10 +38,10 @@ ;;neotree ; a project drawer, like NERDTree for vim ophints ; highlight the region an operation acts on (popup +defaults) ; tame sudden yet inevitable temporary windows - pretty-code ; ligatures or substitute text with pretty symbols + ligatures ; ligatures or substitute text with pretty symbols ;;tabs ; an tab bar for Emacs ;;treemacs ; a project drawer, like neotree but cooler - ;;unicode ; extended unicode support for various languages + unicode ; extended unicode support for various languages vc-gutter ; vcs diff in the fringe vi-tilde-fringe ; fringe tildes to mark beyond EOB ;;window-select ; visually switch windows @@ -83,7 +83,7 @@ :tools ;;ansible (debugger +lsp) ; FIXME stepping through code, to help you add bugs - ;;direnv + direnv docker editorconfig ; let someone else argue about tabs vs spaces ein ; tame Jupyter notebooks with emacs @@ -95,58 +95,57 @@ magit ; a git porcelain for Emacs ;;make ; run make tasks from Emacs ;;pass ; password manager for nerds - ;;pdf ; pdf enhancements + pdf ; pdf enhancements ;;prodigy ; FIXME managing external services & code builders rgb ; creating color strings ;;terraform ; infrastructure as code ;;tmux ; an API for interacting with tmux - ;;upload ; map local to remote projects via ssh/ftp + upload ; map local to remote projects via ssh/ftp :lang ;;agda ; types of types of types of types... - ;;assembly ; assembly for fun or debugging + assembly ; assembly for fun or debugging (cc +lsp) ; C/C++/Obj-C madness - ;;clojure ; java with a lisp - ;;common-lisp ; if you've seen one lisp, you've seen them all + clojure ; java with a lisp + common-lisp ; if you've seen one lisp, you've seen them all ;;coq ; proofs-as-programs ;;crystal ; ruby at the speed of c ;;csharp ; unity, .NET, and mono shenanigans data ; config/data formats - ;;(dart +flutter) ; paint ui and not much else + (dart +flutter) ; paint ui and not much else ;;elixir ; erlang done right ;;elm ; care for a cup of TEA? emacs-lisp ; drown in parentheses ;;erlang ; an elegant language for a more civilized age ess ; emacs speaks statistics ;;faust ; dsp, but you get to keep your soul - ;;fsharp ; ML stands for Microsoft's Language - ;;fstar ; (dependent) types and (monadic) effects and Z3 + fsharp ; ML stands for Microsoft's Language + fstar ; (dependent) types and (monadic) effects and Z3 ;;(go +lsp) ; the hipster dialect - ;;(haskell +dante) ; a language that's lazier than I am + (haskell +dante) ; a language that's lazier than I am ;;hy ; readability of scheme w/ speed of python ;;idris ; ;;(java +meghanada) ; the poster child for carpal tunnel syndrome ;;javascript ; all(hope(abandon(ye(who(enter(here)))))) - ;;julia ; a better, faster MATLAB - ;;kotlin ; a better, slicker Java(Script) + julia ; a better, faster MATLAB + kotlin ; a better, slicker Java(Script) (latex +latexmk) ; writing papers in Emacs has never been so fun ;;lean ;;factor ;;ledger ; an accounting system in Emacs lua ; one-based indices? one-based indices markdown ; writing docs for people to ignore - ;;nim ; python + lisp at the speed of c - ;;nix ; I hereby declare "nix geht mehr!" - ;;ocaml ; an objective camel - (org +brain - +gnuplot + nim ; python + lisp at the speed of c + nix ; I hereby declare "nix geht mehr!" + ocaml ; an objective camel + (org +gnuplot +hugo - +jupyter + +journal +noter +pandoc +present +roam) ; organize your plain life in plain text - ;;perl ; write code no one else can comprehend + raku ; write code no one else can comprehend ;;php ; perl's insecure younger brother plantuml ; diagrams for confusing people more ;;purescript ; javascript, but functional @@ -155,16 +154,16 @@ racket ; a DSL for DSLs ;;rest ; Emacs as a REST client ;;rst ; ReST in peace - ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} - ;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + (ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} + (rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() ;;scala ; java, but good - ;;scheme ; a fully conniving family of lisps + scheme ; a fully conniving family of lisps sh ; she sells {ba,z,fi}sh shells on the C xor ;;sml ;;solidity ; do you need a blockchain? No. ;;swift ; who asked for emoji variables? ;;terra ; Earth and Moon in alignment for performance. - ;;web ; the tubes + web ; the tubes :email ;;(mu4e +gmail) @@ -179,4 +178,10 @@ :config ;;literate - (default +bindings +smartparens)) + (default +bindings +smartparens) + + ;; This is where custom modules in the Doom directory should be put for orgaanizational purposes. + :tools + neuron ; Neurons are a must for the brain. +) + diff --git a/emacs/modules/tools/neuron/config.el b/emacs/modules/tools/neuron/config.el new file mode 100755 index 0000000..f1b6a1b --- /dev/null +++ b/emacs/modules/tools/neuron/config.el @@ -0,0 +1,81 @@ +;;; tools/neuron/config.el -*- lexical-binding: t; -*- + +(defface neuron-stub-face + '((((class color) (min-colors 88) (background dark)) :foreground "#C16069" :underline "#C16069") + (((class color) (min-colors 88) (background light)) :foreground "#C16069" :underline "#C16069") + (((class color) :foreground "Red" :underline "Red")) + (t :inherit neuron-title-overlay-face)) + "Face for stub links." + :group 'neuron-faces) + +(customize-set-variable 'neuron-default-zettelkasten-directory (expand-file-name "~/zettelkasten")) + +(customize-set-variable 'neuron-default-tags (list "stub")) + +(customize-set-variable 'neuron-tag-specific-title-faces '(("stub" neuron-stub-face))) + +(defun search-zettelkasten () + "Search zettels by content." + (interactive) + (progn + (+ivy-file-search :in (neuron-zettelkasten) :recursive nil :prompt "Search Zettelkasten: ") + (neuron-mode))) + +(defun find-file-in-zettelkasten () + "Find a file in the currently active zettelkasten." + (interactive) + (let ((default-directory (neuron-zettelkasten))) + (counsel-find-file))) + +(use-package! neuron-mode + ; Enable link autocompletion globally + :hook (neuron-mode . company-neuron-setup) + :config + (map! :leader + (:prefix ("z" . "zettel") + "z" #'neuron-new-zettel + "e" #'neuron-edit-zettel + "w" #'neuron-rib-watch + "g" #'neuron-rib-generate + "o" #'neuron-open-zettel + "O" #'neuron-open-index + "j" #'neuron-open-daily-notes + "t" #'neuron-query-tags + "r" #'neuron-refresh + "c" #'neuron-edit-zettelkasten-configuration + + ;;; Alternatively, bind all rib commands in a separate prefix + ;; (:prefix ("r" . "rib") + ;; "w" #'neuron-rib-watch + ;; "g" #'neuron-rib-generate + ;; "s" #'neuron-rib-serve + ;; "o" #'neuron-rib-open-zettel + ;; "z" #'neuron-rib-open-z-index + ;; "k" #'neuron-rib-kill + ;; ) + ) + ) + + (map! :map neuron-mode-map + :localleader + ;; Override markdown-mode's default behavior to handle neuron links + :ni "o" #'neuron-follow-thing-at-point + + ;; You can also remove the "z" prefix but + ;; be careful not to override default + ;; markdown-mode bindings. + (:prefix ("z" . "zettel") + :ni "u" #'neuron-edit-uplink + :ni "t" #'neuron-add-tag + :ni "T" #'neuron-add-tags + :ni "o" #'neuron-open-current-zettel + :ni "l" #'neuron-create-and-insert-zettel-link + :v "L" #'neuron-create-zettel-from-selection + :ni "s" #'neuron-insert-static-link + :ni "c" #'neuron-toggle-connection-type + ) + ) + + (map! :leader "sz" #'search-zettelkasten) + (map! :leader "fz" #'find-file-in-zettelkasten) + diff --git a/emacs/modules/tools/neuron/packages.el b/emacs/modules/tools/neuron/packages.el new file mode 100755 index 0000000..3de0377 --- /dev/null +++ b/emacs/modules/tools/neuron/packages.el @@ -0,0 +1,8 @@ +;; -*- no-byte-compile: t; -*- +;;; tools/neuron/packages.el + +(package! neuron-mode) + +;; For more reproducibility, pin the repo: +;; (package! neuron-mode :pin e1b3e12c71) +;; or run M-x doom/update-pinned-package-form to have the latest commit diff --git a/emacs/packages.el b/emacs/packages.el old mode 100644 new mode 100755 index 7df82b7..ad5852d --- a/emacs/packages.el +++ b/emacs/packages.el @@ -51,5 +51,9 @@ ;;;;;;;;;;;; ; PACKAGES ; ;;;;;;;;;;;; -(package! modus-operandi-theme) -(package! modus-vivendi-theme) +(package! flycheck-vale) +(package! ya-org-capture + :recipe (:host github + :repo "ag91/ya-org-capture") + :pin "0333ee28c92a40a351e64695a0cfcd715c69838b") +(package! yankpad) diff --git a/emacs/snippets/fundamental-mode/box b/emacs/snippets/fundamental-mode/box old mode 100644 new mode 100755 diff --git a/emacs/snippets/fundamental-mode/eg b/emacs/snippets/fundamental-mode/eg old mode 100644 new mode 100755 diff --git a/emacs/snippets/fundamental-mode/em b/emacs/snippets/fundamental-mode/em old mode 100644 new mode 100755 diff --git a/emacs/snippets/fundamental-mode/ie b/emacs/snippets/fundamental-mode/ie old mode 100644 new mode 100755 diff --git a/emacs/snippets/fundamental-mode/now b/emacs/snippets/fundamental-mode/now new file mode 100755 index 0000000..ffe4475 --- /dev/null +++ b/emacs/snippets/fundamental-mode/now @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: Print today's date in ISO format. +# key: now +# -- +`(format-time-string "%F %T%:z %Z")` $0 diff --git a/emacs/snippets/fundamental-mode/sign b/emacs/snippets/fundamental-mode/sign old mode 100644 new mode 100755 diff --git a/emacs/snippets/fundamental-mode/today b/emacs/snippets/fundamental-mode/today old mode 100644 new mode 100755 diff --git a/emacs/snippets/latex-mode/agraph b/emacs/snippets/latex-mode/agraph old mode 100644 new mode 100755 diff --git a/emacs/snippets/latex-mode/boldface b/emacs/snippets/latex-mode/boldface old mode 100644 new mode 100755 diff --git a/emacs/snippets/latex-mode/equation b/emacs/snippets/latex-mode/equation old mode 100644 new mode 100755 diff --git a/emacs/snippets/latex-mode/italics b/emacs/snippets/latex-mode/italics old mode 100644 new mode 100755 diff --git a/emacs/snippets/latex-mode/listitem b/emacs/snippets/latex-mode/listitem old mode 100644 new mode 100755 diff --git a/emacs/snippets/latex-mode/mathblock b/emacs/snippets/latex-mode/mathblock old mode 100644 new mode 100755 diff --git a/emacs/snippets/latex-mode/mathinline b/emacs/snippets/latex-mode/mathinline old mode 100644 new mode 100755 diff --git a/emacs/snippets/latex-mode/ol b/emacs/snippets/latex-mode/ol old mode 100644 new mode 100755 diff --git a/emacs/snippets/latex-mode/section b/emacs/snippets/latex-mode/section old mode 100644 new mode 100755 diff --git a/emacs/snippets/latex-mode/subsection b/emacs/snippets/latex-mode/subsection old mode 100644 new mode 100755 diff --git a/emacs/snippets/latex-mode/teletype b/emacs/snippets/latex-mode/teletype old mode 100644 new mode 100755 diff --git a/emacs/snippets/latex-mode/template b/emacs/snippets/latex-mode/template old mode 100644 new mode 100755 diff --git a/emacs/snippets/latex-mode/ul b/emacs/snippets/latex-mode/ul old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/.yas-parents b/emacs/snippets/org-mode/.yas-parents old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/appendix b/emacs/snippets/org-mode/appendix old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/block b/emacs/snippets/org-mode/block old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/boldface b/emacs/snippets/org-mode/boldface old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/comment-block b/emacs/snippets/org-mode/comment-block old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/deflist b/emacs/snippets/org-mode/deflist old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/drawer b/emacs/snippets/org-mode/drawer old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/footnote b/emacs/snippets/org-mode/footnote old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/header b/emacs/snippets/org-mode/header old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/header-props b/emacs/snippets/org-mode/header-props new file mode 100755 index 0000000..8591f68 --- /dev/null +++ b/emacs/snippets/org-mode/header-props @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: Org-Mode global property +# key: hprop +# -- +#+${1:}: ${2:} diff --git a/emacs/snippets/org-mode/img b/emacs/snippets/org-mode/img old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/italics b/emacs/snippets/org-mode/italics old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/link b/emacs/snippets/org-mode/link old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/local-property b/emacs/snippets/org-mode/local-property deleted file mode 100644 index e6a8a8e..0000000 --- a/emacs/snippets/org-mode/local-property +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: Org-Mode local property -# key: lprop -# -- -:${1:}: ${2:} diff --git a/emacs/snippets/org-mode/monospace b/emacs/snippets/org-mode/monospace old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/property b/emacs/snippets/org-mode/property old mode 100644 new mode 100755 index e9e6867..e6a8a8e --- a/emacs/snippets/org-mode/property +++ b/emacs/snippets/org-mode/property @@ -1,5 +1,5 @@ # -*- mode: snippet -*- -# name: Org-Mode global property -# key: prop +# name: Org-Mode local property +# key: lprop # -- -#+${1:}: ${2:} +:${1:}: ${2:} diff --git a/emacs/snippets/org-mode/local-property-block b/emacs/snippets/org-mode/property-block old mode 100644 new mode 100755 similarity index 83% rename from emacs/snippets/org-mode/local-property-block rename to emacs/snippets/org-mode/property-block index 5795392..aa20713 --- a/emacs/snippets/org-mode/local-property-block +++ b/emacs/snippets/org-mode/property-block @@ -1,6 +1,6 @@ # -*- mode: snippet -*- # name: Org-Mode local property block -# key: lpropblock +# key: props # -- :PROPERTIES: $1 diff --git a/emacs/snippets/org-mode/source b/emacs/snippets/org-mode/source old mode 100644 new mode 100755 index 41e91c6..893acb8 --- a/emacs/snippets/org-mode/source +++ b/emacs/snippets/org-mode/source @@ -1,6 +1,6 @@ # -*- mode: snippet -*- # name: Org-Mode source block -# key: csrc +# key: csrc # -- #+BEGIN_SRC ${1:} :results output :exports both :session *${2:}* $3 diff --git a/emacs/snippets/org-mode/subscript b/emacs/snippets/org-mode/subscript old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/superscript b/emacs/snippets/org-mode/superscript old mode 100644 new mode 100755 diff --git a/emacs/snippets/org-mode/video b/emacs/snippets/org-mode/video old mode 100644 new mode 100755 diff --git a/emacs/templates/org-mode/__ b/emacs/templates/org-mode/__ new file mode 100644 index 0000000..3ac46f6 --- /dev/null +++ b/emacs/templates/org-mode/__ @@ -0,0 +1,28 @@ +# -*- mode: snippet -*- +# name: Org template +# -- +#+TITLE: ${1:` +(string-join + (mapcar #'capitalize + ;; Replace -,_... with space + (split-string + (let (case-fold-search) + ;; Seperating lower from upper: hello|World + (replace-regexp-in-string + "\\([[:lower:]]\\)\\([[:upper:]]\\)" "\\1 \\2" + ;; Separating upper from (upper and lower): HTTP|Server + (replace-regexp-in-string "\\([[:upper:]]\\)\\([[:upper:]][0-9[:lower:]]\\)" + "\\1 \\2" (file-name-base buffer-file-name)))) + "[^[:word:]0-9]+" + )) " " ) +`} +#+AUTHOR: "`user-full-name`" +#+EMAIL: "`user-mail-address`" +#+DATE: "`(format-time-string "%Y-%m-%d %T %:z")`" +#+DATE_MODIFIED: "`(format-time-string "%Y-%m-%d %T %:z")`" +#+LANGUAGE: en +#+OPTIONS: toc:t +#+PROPERTY: header-args :exports both + + +$0 diff --git a/lf/lfrc b/lf/lfrc old mode 100644 new mode 100755 diff --git a/locations.json b/locations.json old mode 100644 new mode 100755 diff --git a/makefile b/makefile old mode 100644 new mode 100755 index b3a99cf..5af7c59 --- a/makefile +++ b/makefile @@ -1,12 +1,12 @@ .PHONY = install install: - ./manager.py --commands "mkdir -p {location}" "stow --stow {package} --target {location}" + ./vtsm --commands "mkdir -p {location}" "stow --stow {package} --target {location}" .PHONY = reinstall reinstall: - ./manager.py --commands "mkdir -p {location}" "stow --restow {package} --target {location}" + ./vtsm --commands "mkdir -p {location}" "stow --restow {package} --target {location}" .PHONY = clean clean: - ./manager.py --commands "stow --delete {package} --target {location}" + ./vtsm --commands "stow --delete {package} --target {location}" diff --git a/nvim/init.vim b/nvim/init.vim old mode 100644 new mode 100755 index 7cf86a2..7d61ac1 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -88,6 +88,9 @@ Plug 'airblade/vim-gitgutter' " Plugin for distraction-free writing. Plug 'junegunn/goyo.vim' + +" A Nix plugin. +Plug 'LnL7/vim-nix' call plug#end() diff --git a/nvim/own-snippets/all.snippets b/nvim/own-snippets/all.snippets old mode 100644 new mode 100755 diff --git a/nvim/own-snippets/asciidoc.snippets b/nvim/own-snippets/asciidoc.snippets old mode 100644 new mode 100755 index d00ea8b..dfefb04 --- a/nvim/own-snippets/asciidoc.snippets +++ b/nvim/own-snippets/asciidoc.snippets @@ -51,7 +51,7 @@ ${1:}[${2:}] $0 endsnippet snippet link "Link for files" iw -link:${1:}[`$1`] +link:${1:}[\`$1\`] endsnippet snippet sp "Superscript" iw diff --git a/nvim/own-snippets/nroff.snippets b/nvim/own-snippets/nroff.snippets old mode 100644 new mode 100755 diff --git a/nvim/own-snippets/python.snippets b/nvim/own-snippets/python.snippets old mode 100644 new mode 100755 diff --git a/nvim/own-snippets/sh.snippets b/nvim/own-snippets/sh.snippets old mode 100644 new mode 100755 diff --git a/nvim/own-snippets/snippets.snippets b/nvim/own-snippets/snippets.snippets old mode 100644 new mode 100755 diff --git a/nvim/own-snippets/tex.snippets b/nvim/own-snippets/tex.snippets old mode 100644 new mode 100755 diff --git a/packages.txt b/packages.txt deleted file mode 100644 index 7a7585b..0000000 --- a/packages.txt +++ /dev/null @@ -1,321 +0,0 @@ -0ad -0ad-data -adobe-source-sans-pro-fonts -adobe-source-serif-pro-fonts -alacritty -alex -alsa-plugins -alsa-utils -amd-ucode -android-tools -anki -apache -arandr -arc-gtk-theme -arc-icon-theme -arch-audit -archiso -archlinux-contrib -ardour -asciidoctor -audacious -audacity -autoconf -automake -base -bash -bat -binutils -bison -blender -breeze-gtk -breeze-icons -bspwm -bzip2 -cabal-install -cadence -carla -chromium -clang -code -coreutils -cowsay -cronie -cryptsetup -device-mapper -dhall -dhall-json -dhcpcd -diffutils -dmenu -docker -docker-compose -dunst -e2fsprogs -editorconfig-core-c -efibootmgr -emacs -entr -erlang -espeak -exa -fakeroot -fd -feh -festival -file -filesystem -findutils -firefox -firefox-developer-edition -flex -fontforge -foremost -freeglut -fzf -gawk -gcc -gcc-libs -gdb -gettext -ghc -gimp -gimp-help-en -git -glava -glibc -gnu-netcat -go -gource -graphviz -grep -groff -gucharmap -gvfs -gzip -happy -hexyl -htop -hugo -inetutils -inkscape -iproute2 -iputils -iwd -jack2 -jdk-openjdk -jfsutils -jq -jre-openjdk -kcharselect -keybase -kicad -kicad-library -krita -less -libtool -libvirt -licenses -linux -linux-firmware -lldb -llvm -lmms -logrotate -lolcat -lvm2 -lxappearance -lxsession -m4 -maim -make -man-db -man-pages -mdadm -mediawiki -moreutils -mpg123 -mpv -musescore -musl -nano -ncmpcpp -neofetch -neomutt -neovim -netctl -networkmanager -newsboat -nnn -nodejs -nodejs-material-design-icons -noto-fonts -noto-fonts-cjk -noto-fonts-emoji -npm -ntfs-3g -obs-studio -octave -orca -otf-latin-modern -otf-latinmodern-math -p7zip -pacman -pacman-contrib -pamixer -pandoc -pass -patch -pavucontrol -pciutils -perl -php -picom -pkgconf -powertop -procps-ng -psmisc -pstoedit -pulseaudio -pulseaudio-alsa -pulseaudio-jack -pulsemixer -pv -python-pip -python-pynvim -python-pywal -qbittorrent -qemu -qrencode -qt5-script -r -racket -reiserfsprogs -repo -rofi -ruby -ruby-rouge -s-nail -screenkey -scrot -sed -shadow -shellcheck -shotcut -sonic-pi -soundfont-fluid -sox -stack -stow -strace -sudo -sxhkd -sxiv -syncthing -sysfsutils -systemd -systemd-sysvcompat -tar -telegram-desktop -tesseract -tesseract-data-eng -texinfo -texlive-bibtexextra -texlive-core -texlive-fontsextra -texlive-formatsextra -texlive-latexextra -texlive-pictures -texlive-science -thunar -thunar-volman -thunderbird -timidity++ -tmux -tor -tree -ttf-bitstream-vera -ttf-dejavu -ttf-fira-code -ttf-font-awesome -ttf-ibm-plex -ttf-jetbrains-mono -ttf-joypixels -ttf-nerd-fonts-symbols -udiskie -unison -upx -usbutils -util-linux -vagrant -vi -vim -vlc -weechat -wesnoth -wget -which -wkhtmltopdf -xarchiver -xautomation -xclip -xdg-user-dirs -xdotool -xf86-video-nouveau -xf86-video-vesa -xfsprogs -xorg-bdftopcf -xorg-docs -xorg-font-util -xorg-fonts-100dpi -xorg-fonts-75dpi -xorg-fonts-encodings -xorg-iceauth -xorg-luit -xorg-mkfontscale -xorg-server -xorg-server-common -xorg-server-devel -xorg-server-xephyr -xorg-server-xnest -xorg-server-xvfb -xorg-server-xwayland -xorg-sessreg -xorg-setxkbmap -xorg-smproxy -xorg-x11perf -xorg-xauth -xorg-xbacklight -xorg-xcmsdb -xorg-xcursorgen -xorg-xdpyinfo -xorg-xdriinfo -xorg-xev -xorg-xgamma -xorg-xhost -xorg-xinit -xorg-xinput -xorg-xkbcomp -xorg-xkbevd -xorg-xkbutils -xorg-xkill -xorg-xlsatoms -xorg-xlsclients -xorg-xmodmap -xorg-xpr -xorg-xprop -xorg-xrandr -xorg-xrdb -xorg-xrefresh -xorg-xset -xorg-xsetroot -xorg-xvinfo -xorg-xwd -xorg-xwininfo -xorg-xwud -youtube-dl -zathura -zathura-pdf-mupdf -zbar -zsh -zsh-completions diff --git a/pacman/hooks/100-systemd-boot.hook b/pacman/hooks/100-systemd-boot.hook old mode 100644 new mode 100755 diff --git a/pacman/pacman.conf b/pacman/pacman.conf old mode 100644 new mode 100755 diff --git a/picom/picom.conf b/picom/picom.conf old mode 100644 new mode 100755 diff --git a/polybar/config b/polybar/config old mode 100644 new mode 100755 diff --git a/rofi/config.rasi b/rofi/config.rasi old mode 100644 new mode 100755 diff --git a/rofi/themes/dmenu.rasi b/rofi/themes/dmenu.rasi old mode 100644 new mode 100755 diff --git a/rofi/themes/fds-center-menu.rasi b/rofi/themes/fds-center-menu.rasi old mode 100644 new mode 100755 diff --git a/rofi/themes/fds-mini-sidebar.rasi b/rofi/themes/fds-mini-sidebar.rasi old mode 100644 new mode 100755 diff --git a/sxhkd/sxhkdrc b/sxhkd/sxhkdrc old mode 100644 new mode 100755 index 2f01513..4c299c9 --- a/sxhkd/sxhkdrc +++ b/sxhkd/sxhkdrc @@ -12,7 +12,7 @@ super + t # Application launcher. super + d - rofi -show drun -sidebar-mode -theme fds-mini-sidebar + rofi -show drun -sidebar-mode -theme themes/fds-mini-sidebar # User action shortcuts. super + F10 @@ -22,7 +22,7 @@ super + F11 user-prompt "Proceed to reboot?" "sudo -A reboot" super + F12 - user-prompt "Exit from X session?" "killall Xorg" + user-prompt "Exit from X session?" "pkill bspwm" # Screenshot and screencast launcher. super + {_, shift + } Print @@ -42,12 +42,8 @@ super + shift + m super + shift + e choose-emoji-menu -super + shift + t - select-wal-theme - -super + shift + f - rofi-recoll --rofi-options " -fullscreen" | xargs xdg-open - +super + shift + c + $HOME/.config/emacs/bin/org-capture shift + super + r pkill -USR1 sxhkd && notify-send "SXHKD config has successfully reloaded." diff --git a/sxiv/exec/image-info b/sxiv/exec/image-info old mode 100644 new mode 100755 diff --git a/sxiv/exec/key-handler b/sxiv/exec/key-handler old mode 100644 new mode 100755 diff --git a/systemd/user/local-backup.service b/systemd/user/local-backup.service deleted file mode 100644 index 8c7d0b5..0000000 --- a/systemd/user/local-backup.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Unison backup sync -Documentation=https://www.cis.upenn.edu/~bcpierce/unison/docs.html - -[Service] -Type=oneshot -ExecStart=/usr/bin/unison main -fat -ignorearchives -batch -root "/run/media/%u/Seagate Backup Plus Drive" -links true - -[Install] -WantedBy=graphical.target diff --git a/systemd/user/local-backup.timer b/systemd/user/local-backup.timer deleted file mode 100644 index 0474c8e..0000000 --- a/systemd/user/local-backup.timer +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Periodic Unison backup sync -Documentation=https://www.cis.upenn.edu/~bcpierce/unison/docs.html - -[Timer] -OnCalendar=*-*-* 0/4:00:00 -Persistent=true - -[Install] -WantedBy=default.target diff --git a/systemd/user/pkglist-commit.service b/systemd/user/pkglist-commit.service deleted file mode 100644 index 7cb7bf7..0000000 --- a/systemd/user/pkglist-commit.service +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Commit the package list into the dotfiles - -[Service] -Type=oneshot -ExecStart=%h/.local/bin/commit-pkglist - -[Install] -WantedBy=default.target diff --git a/systemd/user/pkglist-commit.timer b/systemd/user/pkglist-commit.timer deleted file mode 100644 index 285cfb1..0000000 --- a/systemd/user/pkglist-commit.timer +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Commit the package list into the dotfiles - -[Timer] -OnCalendar=monthly -Persistent=true - -[Install] -WantedBy=default.target diff --git a/systemd/user/pkglist-update.service b/systemd/user/pkglist-update.service deleted file mode 100644 index c6cdf26..0000000 --- a/systemd/user/pkglist-update.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Create a package list from the Arch Linux repos - -[Service] -Type=oneshot -ExecStart=/usr/bin/pacman -Qqem > $HOME/dotfiles/aur-packages.txt -ExecStart=/usr/bin/pacman -Qqen > $HOME/dotfiles/packages.txt - -[Install] -WantedBy=default.target diff --git a/systemd/user/pkglist-update.timer b/systemd/user/pkglist-update.timer deleted file mode 100644 index 54d45d5..0000000 --- a/systemd/user/pkglist-update.timer +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Create a package list from the Arch Linux repos - -[Timer] -OnCalendar=*-*-* 1/6:00:00 -Persistent=true - -[Install] -WantedBy=default.target diff --git a/systemd/user/recoll-index-update.service b/systemd/user/recoll-index-update.service deleted file mode 100644 index 3f60ef5..0000000 --- a/systemd/user/recoll-index-update.service +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Recoll search index update -Documentation=man:recollindex.1 https://www.lesbonscomptes.com/recoll/pages/documentation.html - -[Service] -ExecStart=/usr/bin/recollindex - -[Install] -WantedBy=default.target diff --git a/systemd/user/recoll-index-update.timer b/systemd/user/recoll-index-update.timer deleted file mode 100644 index a44f17e..0000000 --- a/systemd/user/recoll-index-update.timer +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=Recoll search index update -Documentation=man:recollindex.1 https://www.lesbonscomptes.com/recoll/pages/documentation.html - -[Timer] -OnCalendar=*-*-* 0/4:00:00 -Persistent=true - -[Install] -WantedBy=default.target - diff --git a/manager.py b/vtsm similarity index 100% rename from manager.py rename to vtsm diff --git a/wal/colorschemes/dark/nord.json b/wal/colorschemes/dark/nord.json deleted file mode 100644 index 4bbe8f0..0000000 --- a/wal/colorschemes/dark/nord.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "alpha": "100", - "special": { - "background": "#2E3440", - "foreground": "#D8DEE9", - "cursor": "#D8DEE9" - }, - "colors": { - "color0": "#3B4252", - "color1": "#BF616A", - "color2": "#A3BE8C", - "color3": "#EBCB8B", - "color4": "#81A1C1", - "color5": "#B48EAD", - "color6": "#88C0D0", - "color7": "#E5E9F0", - "color8": "#727B8A", - "color9": "#BF616A", - "color10": "#A3BE8C", - "color11": "#EBCB8B", - "color12": "#81A1C1", - "color13": "#B48EAD", - "color14": "#8FBCBB", - "color15": "#ECEFF4" - } -} diff --git a/wal/templates/bspwmrc b/wal/templates/bspwmrc deleted file mode 100644 index 9fc7500..0000000 --- a/wal/templates/bspwmrc +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -# Removing all rules at startup to prevent duplicating rules. -bspc rule -r "*" - -# Set up the desktops (workspaces) for the monitor -bspc monitor -d I II III IV V - -bspc config border_width 2 -bspc config window_gap 9 - -bspc config split_ratio 0.52 -bspc config borderless_monocle true -bspc config gapless_monocle true -bspc config focused_border_color "{color6}" -bspc config focus_follows_pointer true - -# Set the default cursor to pointer -xsetroot -cursor_name left_ptr - -# Rules -bspc rule -a code-oss desktop=^2 -bspc rule -a firefox desktop=^1 - diff --git a/wal/templates/dmenu.rasi b/wal/templates/dmenu.rasi deleted file mode 100644 index 61994c1..0000000 --- a/wal/templates/dmenu.rasi +++ /dev/null @@ -1,66 +0,0 @@ -/** - * ROFI Color theme - * User: Qball - * Copyright: Dave Davenport - * Modified by: Gabriel Arazas (foo-dogsquared) - */ - -* {{ - /* The color swatch */ - /* Useful for quick editing of the colors */ - background: {background}; - foreground: {foreground}; - color0: {color0}; - color1: {color1}; - color2: {color2}; - color3: {color3}; - color4: {color4}; - color5: {color5}; - color6: {color6}; - color7: {color7}; - color8: {color8}; - color9: {color9}; - color10: {color10}; - color11: {color11}; - color12: {color12}; - color13: {color13}; - color14: {color14}; - color15: {color15}; - - background-color: @background; - border-color: @foreground; - text-color: @foreground; - font: "Iosevka 14"; -}} - -window {{ - anchor: north; - location: north; - width: 100%; - padding: 7px; - children: [ horibox ]; -}} - -horibox {{ - orientation: horizontal; - children: [ prompt, entry, listview ]; -}} - -listview {{ - layout: horizontal; - spacing: 5px; - lines: 100; -}} - -entry {{ - expand: false; - width: 10em; -}} - -element {{ - padding: 0px 2px; -}} - -element.selected {{ - background-color: @color6; -}} diff --git a/wal/templates/dunstrc b/wal/templates/dunstrc deleted file mode 100644 index 06b69fe..0000000 --- a/wal/templates/dunstrc +++ /dev/null @@ -1,435 +0,0 @@ -[global] - ### Display ### - - # Which monitor should the notifications be displayed on. - monitor = 0 - - # Display notification on focused monitor. Possible modes are: - # mouse: follow mouse pointer - # keyboard: follow window with keyboard focus - # none: don't follow anything - # - # "keyboard" needs a window manager that exports the - # _NET_ACTIVE_WINDOW property. - # This should be the case for almost all modern window managers. - # - # If this option is set to mouse or keyboard, the monitor option - # will be ignored. - follow = mouse - - # The geometry of the window: - # [{{width}}]x{{height}}[+/-{{x}}+/-{{y}}] - # The geometry of the message window. - # The height is measured in number of notifications everything else - # in pixels. If the width is omitted but the height is given - # ("-geometry x2"), the message window expands over the whole screen - # (dmenu-like). If width is 0, the window expands to the longest - # message displayed. A positive x is measured from the left, a - # negative from the right side of the screen. Y is measured from - # the top and down respectively. - # The width can be negative. In this case the actual width is the - # screen width minus the width defined in within the geometry option. - geometry = "350x50-10+50" - - # Show how many messages are currently hidden (because of geometry). - indicate_hidden = yes - - # Shrink window if it's smaller than the width. Will be ignored if - # width is 0. - shrink = no - - # The transparency of the window. Range: [0; 100]. - # This option will only work if a compositing window manager is - # present (e.g. xcompmgr, compiz, etc.). - transparency = 10 - - # The height of the entire notification. If the height is smaller - # than the font height and padding combined, it will be raised - # to the font height and padding. - notification_height = 0 - - # Draw a line of "separator_height" pixel height between two - # notifications. - # Set to 0 to disable. - separator_height = 2 - - # Padding between text and separator. - padding = 8 - - # Horizontal padding. - horizontal_padding = 8 - - # Defines width in pixels of frame around the notification window. - # Set to 0 to disable. - frame_width = 2 - - # Defines color of the frame around the notification window. - frame_color = "{foreground}" - - # Define a color for the separator. - # possible values are: - # * auto: dunst tries to find a color fitting to the background; - # * foreground: use the same color as the foreground; - # * frame: use the same color as the frame; - # * anything else will be interpreted as a X color. - separator_color = frame - - # Sort messages by urgency. - sort = yes - - # Don't remove messages, if the user is idle (no mouse or keyboard input) - # for longer than idle_threshold seconds. - # Set to 0 to disable. - # A client can set the 'transient' hint to bypass this. See the rules - # section for how to disable this if necessary - idle_threshold = 120 - - - - ### Text ### - font = Iosevka 12 - - # The spacing between lines. If the height is smaller than the - # font height, it will get raised to the font height. - line_height = 0 - - # Possible values are: - # full: Allow a small subset of html markup in notifications: - # bold - # italic - # strikethrough - # underline - # - # For a complete reference see - # . - # - # strip: This setting is provided for compatibility with some broken - # clients that send markup even though it's not enabled on the - # server. Dunst will try to strip the markup but the parsing is - # simplistic so using this option outside of matching rules for - # specific applications *IS GREATLY DISCOURAGED*. - # - # no: Disable markup parsing, incoming notifications will be treated as - # plain text. Dunst will not advertise that it has the body-markup - # capability if this is set as a global setting. - # - # It's important to note that markup inside the format option will be parsed - # regardless of what this is set to. - markup = full - - # The format of the message. Possible variables are: - # %a appname - # %s summary - # %b body - # %i iconname (including its path) - # %I iconname (without its path) - # %p progress value if set ([ 0%] to [100%]) or nothing - # %n progress value if set without any extra characters - # %% Literal % - # Markup is allowed - format = "%s\n%b" - - # Alignment of message text. - # Possible values are "left", "center" and "right". - alignment = left - - # Show age of message if message is older than show_age_threshold - # seconds. - # Set to -1 to disable. - show_age_threshold = 60 - - # Split notifications into multiple lines if they don't fit into - # geometry. - word_wrap = yes - - # When word_wrap is set to no, specify where to make an ellipsis in long lines. - # Possible values are "start", "middle" and "end". - ellipsize = middle - - # Ignore newlines '\n' in notifications. - ignore_newline = no - - # Stack together notifications with the same content - stack_duplicates = true - - # Hide the count of stacked notifications with the same content - hide_duplicate_count = false - - # Display indicators for URLs (U) and actions (A). - show_indicators = yes - - - - ### Icons ### - # Align icons left/right/off - icon_position = left - - # Scale larger icons down to this size, set to 0 to disable - max_icon_size = 32 - - # Paths to default icons. - icon_path = /usr/share/icons/Adwaita/16x16/status/:/usr/share/icons/Adwaita/16x16/devices/ - - - - ### History ### - - # Should a notification popped up from history be sticky or timeout - # as if it would normally do. - sticky_history = yes - - # Maximum amount of notifications kept in history - history_length = 20 - - ### Misc/Advanced ### - - # dmenu path. - dmenu = /usr/bin/dmenu -p dunst: - - # Browser for opening urls in context menu. - browser = /usr/bin/firefox -new-tab - - # Always run rule-defined scripts, even if the notification is suppressed - always_run_script = true - - # Define the title of the windows spawned by dunst - title = Dunst - - # Define the class of the windows spawned by dunst - class = Dunst - - # Print a notification on startup. - # This is mainly for error detection, since dbus (re-)starts dunst - # automatically after a crash. - startup_notification = false - - # Manage dunst's desire for talking - # Can be one of the following values: - # crit: Critical features. Dunst aborts - # warn: Only non-fatal warnings - # mesg: Important Messages - # info: all unimportant stuff - # debug: all less than unimportant stuff - verbosity = mesg - - # Define the corner radius of the notification window - # in pixel size. If the radius is 0, you have no rounded - # corners. - # The radius will be automatically lowered if it exceeds half of the - # notification height to avoid clipping text and/or icons. - corner_radius = 0 - - - - ### Legacy - - # Use the Xinerama extension instead of RandR for multi-monitor support. - # This setting is provided for compatibility with older nVidia drivers that - # do not support RandR and using it on systems that support RandR is highly - # discouraged. - # - # By enabling this setting dunst will not be able to detect when a monitor - # is connected or disconnected which might break follow mode if the screen - # layout changes. - force_xinerama = false - - ### mouse - - # Defines action of mouse event - # Possible values are: - # * none: Don't do anything. - # * do_action: If the notification has exactly one action, or one is marked as default, - # invoke it. If there are multiple and no default, open the context menu. - # * close_current: Close current notification. - # * close_all: Close all notifications. - mouse_left_click = close_current - mouse_middle_click = do_action - mouse_right_click = close_all - - - -# Experimental features that may or may not work correctly. Do not expect them -# to have a consistent behaviour across releases. -[experimental] - # Calculate the dpi to use on a per-monitor basis. - # If this setting is enabled the Xft.dpi value will be ignored and instead - # dunst will attempt to calculate an appropriate dpi value for each monitor - # using the resolution and physical size. This might be useful in setups - # where there are multiple screens with very different dpi values. - per_monitor_dpi = false - - - -[shortcuts] - # Shortcuts are specified as [modifier+][modifier+]...key - # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", - # "mod3" and "mod4" (windows-key). - # Xev might be helpful to find names for keys. - - # Close notification. - close = ctrl+space - - # Close all notifications. - close_all = ctrl+shift+space - - # Redisplay last message(s). - # On the US keyboard layout "grave" is normally above TAB and left - # of "1". Make sure this key actually exists on your keyboard layout, - # e.g. check output of 'xmodmap -pke' - history = ctrl+grave - - # Context menu. - context = ctrl+shift+period - - - -[urgency_low] - # IMPORTANT: colors have to be defined in quotation marks. - # Otherwise the "#" and following would be interpreted as a comment. - background = "{background}" - foreground = "{color15}" - timeout = 10 - # Icon for notifications with low urgency, uncomment to enable - #icon = /path/to/icon - - - -[urgency_normal] - background = "{background}" - foreground = "{foreground}" - timeout = 10 - # Icon for notifications with normal urgency, uncomment to enable - #icon = /path/to/icon - - - -[urgency_critical] - background = "{background}" - foreground = "{color2}" - frame_color = "{color2}" - timeout = 0 - # Icon for notifications with critical urgency, uncomment to enable - #icon = /path/to/icon - - - -# Every section that isn't one of the above is interpreted as a rules to -# override settings for certain messages. -# -# Messages can be matched by -# appname (discouraged, see desktop_entry) -# body -# category -# desktop_entry -# icon -# match_transient -# msg_urgency -# stack_tag -# summary -# -# and you can override the -# background -# foreground -# format -# frame_color -# fullscreen -# new_icon -# set_stack_tag -# set_transient -# timeout -# urgency -# -# Shell-like globbing will get expanded. -# -# Instead of the appname filter, it's recommended to use the desktop_entry filter. -# GLib based applications export their desktop-entry name. In comparison to the appname, -# the desktop-entry won't get localized. -# -# SCRIPTING -# You can specify a script that gets run when the rule matches by -# setting the "script" option. -# The script will be called as follows: -# script appname summary body icon urgency -# where urgency can be "LOW", "NORMAL" or "CRITICAL". -# -# NOTE: if you don't want a notification to be displayed, set the format -# to "". -# NOTE: It might be helpful to run dunst -print in a terminal in order -# to find fitting options for rules. - -# Disable the transient hint so that idle_threshold cannot be bypassed from the -# client -#[transient_disable] -# match_transient = yes -# set_transient = no -# -# Make the handling of transient notifications more strict by making them not -# be placed in history. -#[transient_history_ignore] -# match_transient = yes -# history_ignore = yes - -# fullscreen values -# show: show the notifications, regardless if there is a fullscreen window opened -# delay: displays the new notification, if there is no fullscreen window active -# If the notification is already drawn, it won't get undrawn. -# pushback: same as delay, but when switching into fullscreen, the notification will get -# withdrawn from screen again and will get delayed like a new notification -#[fullscreen_delay_everything] -# fullscreen = delay -#[fullscreen_show_critical] -# msg_urgency = critical -# fullscreen = show - -#[espeak] -# summary = "*" -# script = dunst_espeak.sh - -#[script-test] -# summary = "*script*" -# script = dunst_test.sh - -#[ignore] -# # This notification will not be displayed -# summary = "foobar" -# format = "" - -#[history-ignore] -# # This notification will not be saved in history -# summary = "foobar" -# history_ignore = yes - -#[skip-display] -# # This notification will not be displayed, but will be included in the history -# summary = "foobar" -# skip_display = yes - -#[signed_on] -# appname = Pidgin -# summary = "*signed on*" -# urgency = low -# -#[signed_off] -# appname = Pidgin -# summary = *signed off* -# urgency = low -# -#[says] -# appname = Pidgin -# summary = *says* -# urgency = critical -# -#[twitter] -# appname = Pidgin -# summary = *twitter.com* -# urgency = normal -# -#[stack-volumes] -# appname = "some_volume_notifiers" -# set_stack_tag = "volume" -# - -[screenshot] - appname = "maim" - desktop_entry = "maim" -# vim: ft=cfg diff --git a/wal/templates/fds-center-menu.rasi b/wal/templates/fds-center-menu.rasi deleted file mode 100644 index 31dc6ab..0000000 --- a/wal/templates/fds-center-menu.rasi +++ /dev/null @@ -1,93 +0,0 @@ -* {{ - /* The color configuration */ - /* Useful for quick editing in case for compiled templates */ - background: {background}; - foreground: {foreground}; - color0: {color0}; - color1: {color1}; - color2: {color2}; - color3: {color3}; - color4: {color4}; - color5: {color5}; - color6: {color6}; - color7: {color7}; - color8: {color8}; - color9: {color9}; - color10: {color10}; - color11: {color11}; - color12: {color12}; - color13: {color13}; - color14: {color14}; - color15: {color15}; - - /* Theme settings */ - highlight: bold italic; - scrollbar: true; - - /* Style */ - text-color: @foreground; - background-color: @background; - font: "Font Awesome 5 Free,Font Awesome 5 Free Solid:style=Solid 14"; - font: "Iosevka 14"; -}} - -window {{ - background-color: transparent; - - height: 65%; - width: 45%; - position: center; - location: center; - text-color: @foreground; -}} - -mainbox {{ - background-color: @background; - border: 2; - border-color: @color6; - children: [ inputbar, listview, mode-switcher ]; -}} - -inputbar, -listview {{ - background: @background; -}} - -inputbar {{ - orientation: vertical; - children: [ prompt, entry ]; - background-color: @color0; -}} - -entry, -prompt {{ - background-color: @color0; -}} - -listview {{ - cyclic: true; -}} - -element selected.normal {{ - background-color: @color6; - text-color: @background; -}} - -scrollbar {{ - background-color: @color0; - handle-color: @color6; - handle-width: 10px; - height: 100%; -}} - -button, -case-indicator, -inputbar, -element {{ - padding: 5; -}} - -button.selected {{ - background-color: @color6; - text-color: @background; -}} diff --git a/wal/templates/fds-mini-sidebar.rasi b/wal/templates/fds-mini-sidebar.rasi deleted file mode 100644 index fea6750..0000000 --- a/wal/templates/fds-mini-sidebar.rasi +++ /dev/null @@ -1,122 +0,0 @@ -* {{ - /* The color configuration */ - /* Useful for quick editing in case for compiled templates */ - background: {background}; - foreground: {foreground}; - color0: {color0}; - color1: {color1}; - color2: {color2}; - color3: {color3}; - color4: {color4}; - color5: {color5}; - color6: {color6}; - color7: {color7}; - color8: {color8}; - color9: {color9}; - color10: {color10}; - color11: {color11}; - color12: {color12}; - color13: {color13}; - color14: {color14}; - color15: {color15}; - - /* General theme settings */ - highlight: bold italic; - scrollbar: true; - - /* Font settings */ - text-color: @foreground; - background-color: @background; - font: "Font Awesome 5 Free,Font Awesome 5 Free Solid:style=Solid 14"; - font: "Iosevka 14"; - -}} - -window {{ - background-color: transparent; - - height: 65%; - width: 35%; - position: southwest; - location: southwest; - text-color: @foreground; -}} - -mainbox {{ - background-color: @background; - border: 2; - border-color: @color6; - children: [ inputbar, listview, mode-switcher ]; - padding: 0.5em; -}} - -inputbar, -listview {{ - background: @background; - margin: 0 0 0.5em 0; -}} - -inputbar {{ - orientation: vertical; - children: [ prompt, entry ]; -}} - -prompt {{ - text-style: underline; - width: 100%; -}} - -entry {{ - background-color: @color0; - margin: 0 1em 0 0; -}} - -element {{ - background-color: @color0; - padding: 5; -}} - -element selected.normal {{ - background-color: @color6; - text-color: @background; -}} - -scrollbar {{ - background-color: @color0; - border-radius: 30%; - handle-color: @color6; - handle-width: 15px; - height: 100%; - text-color: @background; - width: 10px; -}} - -listview {{ - cyclic: true; - spacing: 0.6em; -}} - -element, button {{ - border-radius: 30%; -}} - -button, -case-indicator, -entry, -inputbar {{ - padding: 5; -}} - -sidebar {{ - padding: 5; - margin: 5; -}} - -button {{ - margin: 0.25em; -}} - -button.selected {{ - background-color: @color6; - text-color: @background; -}} diff --git a/xorg/.Xresources b/xorg/.Xresources deleted file mode 100644 index 66539fc..0000000 --- a/xorg/.Xresources +++ /dev/null @@ -1,68 +0,0 @@ -! X colors. -! Generated by 'wal' -*foreground: #D8DEE9 -*background: #2E3440 -*.foreground: #D8DEE9 -*.background: #2E3440 -emacs*foreground: #D8DEE9 -emacs*background: #2E3440 -URxvt*foreground: #D8DEE9 -XTerm*foreground: #D8DEE9 -UXTerm*foreground: #D8DEE9 -URxvt*background: [100]#2E3440 -XTerm*background: #2E3440 -UXTerm*background: #2E3440 -URxvt*cursorColor: #D8DEE9 -XTerm*cursorColor: #D8DEE9 -UXTerm*cursorColor: #D8DEE9 -URxvt*borderColor: [100]#2E3440 - -! Colors 0-15. -*.color0: #3B4252 -*color0: #3B4252 -*.color1: #BF616A -*color1: #BF616A -*.color2: #A3BE8C -*color2: #A3BE8C -*.color3: #EBCB8B -*color3: #EBCB8B -*.color4: #81A1C1 -*color4: #81A1C1 -*.color5: #B48EAD -*color5: #B48EAD -*.color6: #88C0D0 -*color6: #88C0D0 -*.color7: #E5E9F0 -*color7: #E5E9F0 -*.color8: #727B8A -*color8: #727B8A -*.color9: #BF616A -*color9: #BF616A -*.color10: #A3BE8C -*color10: #A3BE8C -*.color11: #EBCB8B -*color11: #EBCB8B -*.color12: #81A1C1 -*color12: #81A1C1 -*.color13: #B48EAD -*color13: #B48EAD -*.color14: #8FBCBB -*color14: #8FBCBB -*.color15: #ECEFF4 -*color15: #ECEFF4 - -! Black color that will not be affected by bold highlighting. -*.color66: #3B4252 -*color66: #3B4252 - -! Xclock colors. -XClock*foreground: #D8DEE9 -XClock*background: #2E3440 -XClock*majorColor: rgba:ec/ef/f4/ff -XClock*minorColor: rgba:ec/ef/f4/ff -XClock*hourColor: rgba:ec/ef/f4/ff -XClock*minuteColor: rgba:ec/ef/f4/ff -XClock*secondColor: rgba:ec/ef/f4/ff - -! Set depth to make transparency work. -URxvt*depth: 32 diff --git a/xorg/.xinitrc b/xorg/.xinitrc deleted file mode 100644 index 4f896a0..0000000 --- a/xorg/.xinitrc +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env sh - -# Loading the xprofile since display managers also needs the said file. -# This prevents duplicating needed code. -[ -f ~/.xprofile ] && . ~/.xprofile - -userresources=$HOME/.Xresources -usermodmap=$HOME/.Xmodmap -sysresources=/etc/X11/xinit/.Xresources -sysmodmap=/etc/X11/xinit/.Xmodmap - -# merge in defaults and keymaps - -if [ -f $sysresources ]; then - xrdb -merge $sysresources -fi - -if [ -f $sysmodmap ]; then - xmodmap $sysmodmap -fi - -if [ -f "$userresources" ]; then - xrdb -merge "$userresources" -fi - -if [ -f "$usermodmap" ]; then - xmodmap "$usermodmap" -fi - -exec bspwm diff --git a/xorg/.xprofile b/xorg/.xprofile deleted file mode 100644 index 65109dd..0000000 --- a/xorg/.xprofile +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env sh - -# Activate the LXSessions for mounting external filesystems. -# This is pretty much only used for accessing external filesystems -# from Thunar as far as practical application is concerned. -/usr/bin/lxsession & - -# Run the compositor and enable more advanced graphical effects. -picom & - -# Activate the notification server. -dunst & - -# Boot the mount filesystem helper. -udiskie & - -# Run the hotkey daemon. -sxhkd & - -# Launch the status bar. -$HOME/.config/polybar/launch.sh & - -# Reload the color scheme. -wal -R & - -# Displaying the wallpaper in case the Pywal theme does not have a wallpaper. -$HOME/.fehbg & - diff --git a/zsh/.profile b/zsh/.profile old mode 100644 new mode 100755 diff --git a/zsh/.zprofile b/zsh/.zprofile old mode 100644 new mode 100755 diff --git a/zsh/.zshrc b/zsh/.zshrc old mode 100644 new mode 100755