All Projects → SingularisArt → Singularis

SingularisArt / Singularis

Licence: MIT license
My System Configuration ⚙️

Programming Languages

lua
6591 projects
shell
77523 projects
c
50402 projects - #5 most used programming language
CSS
56736 projects
python
139335 projects - #7 most used programming language
SCSS
7915 projects

Projects that are alternatives of or similar to Singularis

kali-config
Linux colorful dotfiles.
Stars: ✭ 40 (+48.15%)
Mutual labels:  rofi, pywal, picom
dotfiles
dotfiles of simonvic daily used enviroment
Stars: ✭ 75 (+177.78%)
Mutual labels:  rofi, dunst, picom
linux-workspace
This is the greatest management of all time
Stars: ✭ 19 (-29.63%)
Mutual labels:  rofi, dunst, picom
dotfiles
Arch Linux DotFiles - Managed by GNU stow
Stars: ✭ 30 (+11.11%)
Mutual labels:  rofi, dunst, picom
dotfiles
rice repo
Stars: ✭ 71 (+162.96%)
Mutual labels:  arch, neomutt
dotfiles
dotfiles repository
Stars: ✭ 15 (-44.44%)
Mutual labels:  arch, rofi
dotfiles
no passwords here ... I hope 🤞
Stars: ✭ 51 (+88.89%)
Mutual labels:  arch, rofi
Dotfiles
🐲 My Arch Linux config [i3-gaps + i3blocks + Zsh + Spacemacs + Rofi + Alacritty + Neofetch]
Stars: ✭ 725 (+2585.19%)
Mutual labels:  arch, rofi
i3-dotfiles
“ With wisdom comes the desire for simplicity.” Brendon Burchard.
Stars: ✭ 30 (+11.11%)
Mutual labels:  rofi, picom
dotfiles
Dotfiles for my awesomewm/i3 Arch setup & neovim
Stars: ✭ 19 (-29.63%)
Mutual labels:  arch, rofi
Dotfiles
Collection of i3-gaps Dotfiles
Stars: ✭ 143 (+429.63%)
Mutual labels:  arch, rofi
The Glorious Dotfiles
A glorified personal dot files
Stars: ✭ 1,850 (+6751.85%)
Mutual labels:  rofi, picom
dotfiles
My dotfiles
Stars: ✭ 16 (-40.74%)
Mutual labels:  rofi, dunst
dotfiles
cross-platform (linux (arch), macos, android (termux), windows (WSL)) dotfiles and scripts, using yadm
Stars: ✭ 17 (-37.04%)
Mutual labels:  arch, rofi
Snowflake
NixOS Flake Configuration.
Stars: ✭ 22 (-18.52%)
Mutual labels:  rofi, picom
Awesome Dotfiles
Dotfiles for awesome people using the awesomewm linux environment
Stars: ✭ 409 (+1414.81%)
Mutual labels:  arch, rofi
zarch
The Ultimate Script For Arch Linux
Stars: ✭ 49 (+81.48%)
Mutual labels:  install, arch
dotfiles
A total nord dotfiles used by me. Forever work in progress.
Stars: ✭ 35 (+29.63%)
Mutual labels:  rofi, dunst
dotfiles
My awesomewm dotfiles for awesome people! ✨
Stars: ✭ 1,764 (+6433.33%)
Mutual labels:  rofi, picom
dotfiles
Config files for i3, polybar, rofi, mpv, Xresources, kitty and some bash-things...
Stars: ✭ 52 (+92.59%)
Mutual labels:  rofi, picom

Status

My System Configuration

Stars Issues Build Status Repo Size License

Gallery

System

Zsh

Firefox

Dunst

Rofi

Xmenu

Polybar

Picom

Communication

Neomutt

Development

Neovim

GnuPlot

Matplotlib

Markdown

Notes

Utility

Monitors

PDF's

Files

Calendar

Habits

Entertainment

Audio

News

Misc

Images

Table of Content

Overview

This repo contains all my system-wide configuration. Let me clear something up. This ISN'T my dotfiles. My dotfiles are a subset of this repo. I have other things like my neovim config, python libraries, etc.

Here's the basic structure of this repo:

Repo Layout

.
├── aspects
│   ├── dotfiles
│   └── ...
├── CHANGELOG.md
├── CONTRIBUTING.md
├── install
├── LICENSE.md
├── man
│   ├── colors.py
│   ├── helpers.py
│   ├── __init__.py
│   ├── log_level.txt
│   ├── log.py
│   ├── main.py
│   ├── operations
│   ├── templates
│   │   ├── personal
│   │   │   └── .config
│   │   │       ├── gh
│   │   │       │   └── hosts.yml
│   │   │       │       ├── oauth_token.template
│   │   │       │       └── user.template
│   │   │       └── ...
│   │   └── public
│   │       └── .config
│   │           ├── gh
│   │           │   └── hosts.yml
│   │           │       ├── oauth_token.template
│   │           │       └── user.template
│   │           └── ...
│   └── variables.py
├── README.md
└── third-party-tools
    ├── chameleon
    ├── gnuplot-pywal
    ├── instant-reference
    └── start-tree

Applications

System

  • bspwm: Tiling window manager.
  • polybar: Customizable taskbar.
  • xmenu: Modular start menu.
  • rofi: Application launcher.
  • kdeconnect: Control system from phone.
  • flameshot: Robust screenshotting tool.
  • giph: Record gifs from your terminal.
  • slop: Screen region selector.
  • xclip: Scriptable clipboard utility.
  • xfce4-terminal as my main terminal.

Tools

Communication

Development

  • Neovim: Amazing text editor.
  • Death.NeoVim: My custom neovim configuration.
  • Qalculate!: Intuitive and powerful calculator.
  • gnuplot: Graph and plot in the terminal.
  • ghcal: See the GitHub contributions calendar of a user in the command line.
  • hexyl: Terminal hex viewer.
  • bitwise: Terminal based bit manipulator in ncurses.
  • gdb-dashboard: Modular visual interface for GDB in Python.
  • github-stats: Visualize stats about GitHub users and projects in your terminal.
  • QDbusViewer Dbus investigator GUI.
  • how2: Search stack overflow from the terminal.

Education

  • Anki: Powerful, intelligent flash cards.

Productivity

  • dijo: Curses based habit tracker.
  • bibisco: Novel writing tool.

Science

  • Ugene: Bioinformatics suite.
  • pymol: Molecular science suite.
  • GROMACS: Molecular dynamics simulation suite.
  • ASCIIGenome Text genome viewer.
  • Alan Text genome alignment viewer.
  • alv Text genome alignment viewer.
  • Desmos-Destkop: Electron desktop desmos app..
  • chemtool: A small program for drawing chemical structures.
  • celestia: Real-time space simulation.
  • geogebra: Dynamic mathematics software with interactive graphics, algebra and spreadsheet.

Personal

Entertainment

Media

  • castero: TUI for podcasts.
  • newsboat: TUI RSS reader.
  • cava: Console music visualizer.
  • glava: OpenGL audio spectrum visualizer.
  • cmus: Lightweight console music player.
  • cmus-notify: Notifications for cmus.
  • youtube-dl: Easily download music and videos.
  • jftui: Jellyfin TUI interface.
  • swaglyrics: Spotify lyrics in browser or terminal.

Games

Misc

Utility

System

  • ckb-next: Corsair peripheral software.
  • baobab: GUI disk usage. analyzer
  • diskonaut: TUI disk usage. analyzer.
  • dust: TUI disk usage analyzer.
  • zathura: Lightweight PDF reader.
  • ranger: Vim inspired console file manager.
  • haguichi: GUI Hamachi client (requires.
  • dmenu-hotkeys: Searchable i3 keybinds for rofi or dmenu.
  • gucharmap: GNOME interface for system fonts.
  • greenclip: Clipboard manager
  • gnome-font-viewer.
  • glow: CLI/TUI markdown reader.
  • rofi-emoji: An emoji selector plugin for Rofi.
  • rofi-power-menu: Power menu for rofi.
  • gpick: Advanced color picker.
  • termdown: Countdown timer and stopwatch in your terminal.
  • peaclock: Terminal timer and clock.
  • yad: Create GTK interfaces from the command line.

Monitors

System
  • s-tui: Terminal-based CPU stress and monitoring utility.
  • CoreFreq: Console CPU monitor.
  • gotop: Terminal based graphical activity monitor.
  • bashtop: Terminal based graphical activity monitor written in bash.
  • glances: Your system at a glance.
  • iotop: IO statistics.
  • nmon: Configurable ncurses system monitor.
  • atop: System and process montior.
  • powertop: Monitor system power.
  • nvtop: NVIDIA GPU TUI monitor.
  • kmon: TUI Kernel monitor.
  • lnav: Better log viewer.
Network
  • dnstop: Terminal DNS monitor.
  • ethstatus: Ethernet status monitor.
  • jnettop: view hosts/ports taking up the most network traffic.
  • nload: Monitors network traffic and bandwidth usage.
  • bmon: Bandwidth monitor.
  • termshark: Wireshark implemented in a TUI.
  • gping: TUI ping with graph.
  • speedtest-cli: CLI speedtest program.
Finance
  • cointop: TUI crypto market watcher.
  • mop: TUI stock market ticker.
  • stonks: TUI Stock charts.

Misc

Security

Theming

  • pywal: Generate colorschemes from photos haishoku, colorthief, and colorz python modules for pywal backends.
  • Chameleon: Automatically apply the schemes below.
  • Zathura-Pywal: pywal colorscheme for zathura.
  • Gnuplot-Pywal: pywal colorscheme for gnuplot.
  • qutewal: pywal theme for qutebrowser.
  • oomox: Generate icon themes, spotify themes, and GTK themes from pywal.
  • lxappearance: GUI for selecting/viewing GTK themes.
  • Archdroid Icons: For custom GTK themes.
  • qt5ct: Qt5 configuration tool.
  • qtcurve-qt5: Qt5/Qt4 config tool.
  • qt5-styleplugins: Enable Qt features such as GTK theme.
  • Pywalfox: Theme firefox and DDG with pywal.

Apt

If you're on a debian based distro, then this aspect will be run to install all the required packages. Of course, you can always opt out of this feature by using the --no-packages option when running the installation script.

Packages

  1. Coming Soon ...

Aur

If you're on an arch based distro, then this aspect will be run to install all the required packages. Of course, you can always opt out of this feature by using the --no-packages option when running the installation script.

Packages

  1. Coming Soon ...

Backup

Before installing anything, this aspect will backup all of your configurations that'll be overwritten by mine to ~/.backup/. For example, if you're installing my dotfiles, then all your zsh configuration, nvim configuration, neomutt configuration, will be moved to ~/.backup/.config/ just in case you'd like to revert back. Of course, you can always opt out of this feature by using the --no-backup option when running the installation script.

Cron Jobs

This aspect will install all my cron jobs. It'll only be installed if you use the --singularis option, which I discuss more in depth here.

Dotfiles

Features

A set of dotfiles that I’ve been tweaking and twiddling since mid 2018 (under version control since 2022). Characteristics include:

  • Sane Vim pasting via bracketed paste mode.
  • Navigate between Vim and Tmux with ease.
  • Full mouse support (pane/split resizing, scrolling, text selection) in Vim and tmux.
  • Focus/lost events for Vim inside tmux.
  • Cursor shape toggles on entering Vim.
  • Italics, Bolds, and Underlines in the terminal.
  • Bundles a (not-excessive) number of useful Vim plug-ins.
  • Conservative Vim configuration (overrides of core functionality; most changes are unobtrusive enhancements; some functionality exposed via <Leader> and <LocalLeader> mappings.
  • Restrained Zsh config, Bash-like but with some Zsh perks, such as right-side prompt, auto-cd hooks, command elapsed time printing, own custom-made plugin manager, and such.

Zsh

Functions

  • git: A git wrapper function. If you just run git, git status will be run. If you run git root, you'll go to the root directory in the current git folder. If you run git root ls, the ls command will be run in the root directory in the git folder.
  • scratch: Create a temporary directory, cd into it and create a sub shell inside it.
  • tmux: Wrapper that reattaches to pre-existing sessions, or creates new ones based on the current directory name; it also looks for a .tmux file to set up windows and panes.
  • gpg: A re-write function that if you don't give it any parameters, it will run gpg --list-keys.
  • zsh_add_file: This function sources any file you have in the zsh config directory in ~/Singularis/config/dotfiles/files/.zsh
  • zsh_add_plugin: This function sources any plugin you have in the zsh config directory in ~/Singularis/config/dotfiles/files/.zsh/plugins
  • zsh_add_completion: This function sources any completion you have in the zsh config directory in ~/Singularis/config/dotfiles/files/.zsh/completion

Bindings

  • Up Arrow: Previous command.
  • Down Arrow: Next command.
  • Ctrl+p: Previous command.
  • Ctrl+n: Next command.
  • k: Previous command.
  • j: Next command.
  • Ctrl+o: Open lf and cd into that directory.
  • Ctrl+x: Edit the current command in a NeoVim temp file.
  • Ctrl+r: Reloud .zshrc.

Prompt

Zsh is configured with the following prompt:

Visible here are:

  • Concise left-hand prompt consisting of:
  • Extended right-hand size prompt which auto-hides when necessary to make room for long commands and contains:
    • Duration of previous command in adaptive units (seconds, minutes, hours, days, depending on duration).
    • Current version control branch name.
    • Current version control worktree status using colors that match those used in git status:
      • Green dot indicates staged changes.
      • Red dot indicates unstaged changes.
      • Blue dot indicates untracked files.
    • Full version of current working directory (again, abbreviating $HOME to ~).

Nested shells are indicated with additional prompt characters. For example, one nested shell:

Two nested shells:

Root shells are indicated with a different color prompt character and the word "root":

Nesting within a root shell is indicated like this:

Two nested shells:

Tmux shells are indicated with a different color prompt character and the word "tmux":

Nesting within a tmux shell is indicated like this:

Two nested shells:

If the last command exited with a non-zero status (usually indicative of an error), a yellow exclamation is shown:

If there are background processes, a yellow asterisk is shown:

Plugins

Tmux

Bindings

I changed the default prefix from <C-b> to <C-Space>

Basics

  • <C+Space>|: Create a vertical split.
  • <C+Space>\: Create a vertical split.
  • <C+Space>-: Create a horizontal split.
  • <C+Space>r: Resource tmux.conf file.
  • <C+Space><C+b>: Break current pane into it's own window.
  • <C+Space><C+Space>: Jump back to previous window.
  • <C+Space>b: Create a new session.
  • <C+Space>B: Create a new named session.
  • <C+Space>K: Kill current session.
  • <C+Space>j: Join 2 windows together.
  • <C+Space>S: Jump back to previous session.

Navigation

  • <C-Space>h: Jump to the left pane.
  • <C-Space>l: Jump to the right pane.
  • <C-Space>k: Jump to the above pane.
  • <C-Space>j: Jump to the below pane.

Plugins

I use the following tmux plugins:

To install them, after you enter tmux, run <C-Space>I.

Prompt

Sxhkd

I use Sxhkd to manage all my keybindings, which helps when I switch to another wm, I have the same as I did previously.

School

Action Keybinding
Open current master assignment pdf Alt+b
Open notes for your current course Alt+o
Compile your current notes Alt+O
List all your inkscape figures Alt+i
Get an instant reference from a pdf Alt+f
Open chrome with your current course Alt+w
Open your info.yaml file in nvim Alt+y
Open the source directory of my notes Alt+m
Open xournal Alt+x
Open your journal notes in lf Alt+r
Open the current note of the day Alt+n
Open the master.tex file for your journal Alt+N
Open your journal pdf Alt+j
Compile your journal pdf Alt+J
List all my current lectures Alt+l
List all my assignments Alt+a
List all my courses Alt+c
Source a range of lectures Alt+s
Create a lecture Alt+L
Create an assignment Alt+A
Create a course Alt+C
Go through all your research papers Alt+p

Applications

Action Keybinding
Open terminal (xfce4-terminal) Super+Enter
Open the browser of your choice Super+w
Open neomutt (in xfce4-terminal) Super+m
Open ncmpcpp (in xfce4-terminal) Super+e
Open castero (in xfce4-terminal) Super+C
Open pulsemixer (in xfce4-terminal) Super+Shift+p
Open xmenu Super+Shift+d
Open sioyek Super+Shift+z
Open a scratchpad Super+Shift+s

Rofi

Action Keybinding
Open Rofi Super+r
List all applications via Rofi Super+Alt+Shift+r
List all emojis via Rofi Super+Alt+Shift+e

Polybar

Action Keybinding
Enable/Disable polybar Super+b

Dunst

Action Keybinding
Close one notification Ctrl+Space
Close all notifiactions Ctrl+Shift+Space
Bring back the last notification Ctrl+`

Music

Action Keybinding
Toggle MPD Super+Alt+t
Restart song Super+Alt+r
Seek forward 60 seconds Super+Alt+Shift+[
Seek backward 60 seconds Super+Alt+Shift+]
Seek forward 10 seconds Super+Alt+[
Seek backward 10 seconds Super+Alt+]
Previous song Super+,
Next song Super+.
Turn up the volume Super+Alt+u
Turn down the volume Super+Alt+d

Other

Action Keybinding
Take a screenshot Print

Bspwm

Desktop and Workspaces

Action Keybinding
Send item to workspace Super+Shift+{1-9}
Go to workspace Super+{1-9}
Go back to the most recent workspace Super+Tab

Windows

Action Keybinding
Destroy current application Super+q
Split h(o)rizontal, (v)ertical, or (c)ancel Super+{0,v,c}
Full screen/Monocle Super+f
Toggle between floating and tiled Super+Space
(p)suedo tiled and (t)iled mode Super+Ctrl+{p,t}
Set the node flags (marked,locked,sticky,private) Super+Ctrl+{m,l,s,z}

Move and Resize

Action Keybinding
Expand a window by moving one of its side outward Super+Alt+{h,j,k,l}
Contract a window by moving one of its side inward Super+Alt+Shift+{h,j,k,l}
Move a floating window Super+{Left,Down,Up,Right}

Focus and Swap

Action Keybinding
Move around Super+{h,j,k,l}
Move application Super+Shift+{h,j,k,l}

Selecting areas

Action Keybinding
Preselect the direction Super+Ctrl+Alt+{h,j,k,l}
Preselect the ratio Super+Ctrl+{1-9}
Cancel the preselection for the focused node Super+Ctrl+Space
Cancel the preselection for the focused desktop Super+Ctrl+Shift+Space
Move current window to a preselected space Super+Shift+m

Gaps

Action Keybinding
Enable and Disable gaps Super+a
Reset gaps to normal size Super+Shift+a
Increase gap size by 10 Super+z
Decrease gap size by 10 Super+x

Other

Action Keybinding
Restart sxhkd Super+Escape
Restart bspwm Super+Shift+Ctrl+r
Quit bspwm Super+Shift+Ctrl+1

Audio

I use multiple applications to manage my audio.

MPD

MPD is my music player daemon.

Ncmpcpp

A gui way of selecting the next audio.

MPV

A nice way of jumping between audio, getting current info, etc.

Castero

A gui way of listening to my favorite podcasts.

Newsboat

A gui way of watching my favorite youtubers.

Window Managers

Over the years, I've collected all my window manager configurations.

Bspwm

BSPWM is my current window manager. It's amazing, quick and easy to use and accustomed to. I use polybar as my statusbar with BSPWM.

DWM

I was using this wm before I switched over to BSPWM. Honestly, it's a solid choice for those who don't need to much customization. The only downside is you need to modify the source code directly. There's no actual config file for it. That's the suckless way I guess (retarded imo). I had to use DWM's own statusbar, which was a real bummer because I tried for weeks to get polybar working with it, but it doesn't work. That's the main reason I switched over to BSPWM.

Awesome

A weak choice imo. I'm pretty sure there are dozens of bugs with my awesome configuration, but I don't really care. If you wish, you can use my configuration and patch it to your need. Opening a pr would be greatly appreciated. For it's statusbar, I use Awesome's own statusbar, which is 10x better than DWM's imo.

Email

NeoMutt

Currently, I'm in a bit of a dilemma. I really want to use NeoMutt as a tui email client, but it's freaking slow as HELL. So, keep that in mind when using my configuration.

Accounts

Here's the boiler template for creating an account:

# vim: filetype=muttrc
unmailboxes *

set from = "[email protected]"
set realname = "Foo B. Bazz"

# Imap settings
set imap_user = "[email protected]"
set imap_pass = `pass example` # Either pass a command like pass
set imap_pass = "password"  # Or enter your password manually

# Smtp settings
set smtp_url = "smtps://[email protected]"
set smtp_pass = `pass example` # Either pass a command like pass
set smtp_pass = "password"  # Or enter your password manually

# Remote gmail folders
set folder = "imaps://imap.gmail.com/"
set spoolfile = "+INBOX"
set postponed = "[Gmail]/Drafts"
set record = "[Gmail]/Sent Mail"
set trash = "[Gmail]/Trash"
set envelope_from
set use_from = "yes"
set mail_check = 6

mailboxes "=INBOX"
mailboxes "=[Gmail]/Drafts"
mailboxes "=[Gmail]/Sent Mail"
mailboxes "=[Gmail]/Starred"
mailboxes "=[Gmail]/Spam"
mailboxes "=[Gmail]/Trash"

named-mailboxes " Inbox"     "=INBOX"
named-mailboxes " Drafts"    "=[Gmail]/Drafts"
named-mailboxes " Sent Mail" "=[Gmail]/Sent Mail"
named-mailboxes " Starred"   "=[Gmail]/Starred"
named-mailboxes " Spam"      "=[Gmail]/Spam"
named-mailboxes " Trash"     "=[Gmail]/Trash"

# Allow Mutt to open a new IMAP connection automatically.
unset imap_passive

# Keep the IMAP connection alive by polling intermittently (time in seconds).
set imap_keepalive = 60

Key bindings

NOTE: I removed all default keybindings. So, these are the only keybindings available.

Index and Pager
Action Keybinding
Delete message d
Edit label L
Compose message c
Recall message Ctrl+r
Reply to message r
Reply to all R
Forward message F
Sync mailbox $
Search next n
Search opposite N
Refresh F5
Go half-up Ctrl+u
Go half-down Ctrl+d
Toggle sidebar Ctrl+b
Go to next sidebar item Ctrl+j
Go to previous sidebar item Ctrl+k
Open sidebar Ctrl+o
Go to next unread message Ctrl+n
Go to previous unread message Ctrl+p
View raw message H
View attachments v
Pipe message |
Index
Action Keybinding
Tag entry t
Tag thread T
Flag message Space
Undelete message u
Undelete thread U
Collapse thread Tab
Link threads +
Go to current middle zz
Go to current top zt
Go to current bottom zb
Limit by flagged \
Pager
Action Keybinding
Go to the next line j
Go to the previous line k
Go to the next line Down
Go to the previous line Up
Go to the bottom G
Go to the top gg
Attach
Action Keybinding
View mailcap Enter
Pipe entry |
Compose
Action Keybinding
Send message y
Attach file a
Postpone message p
Edit message e
Edit to t
Edit from f
Edit subject s
Edit cc c
Edit bcc b
Rename file r
Filter entry F
Edit type Ctrl+t
Move up Ctrl+k
Move down Ctrl+j
Browser
Action Keybinding
Go to the top page gg
Go to the bottom page G
Select entry Enter
Index and Attach and Browser and Query
Action Keybinding
Go to the last entry G
Go to the first entry gg
Go to the next entry j
Go to the previous entry k
Go to the next entry Down
Go to the previous entry Up

Khard (Deprecated)

I used khard before I found out about goobook. Khard is a simple contact manager, which I used with NeoMutt. Now, I use goobook, which gets all your contacts directly from google contact.

File Navigation

I don't use file navigators anymore, but here are some that I used and still have the configuration for.

  1. Lf
  2. Ranger

Utilities

Dunst

Dunst is my notification manager.

Khal

I use khal for viewing calendar in the terminal.

Lynx

This is a tui web browser. It's not really cool. I don't use this often. I only got it configured because I was bored.

Neofetch (Deprecated)

I used to have neofetch load when I first open my zsh shell, but it slowed it down a ton. Other than that, I don't really have any use cases for it.

Picom

I don't use picom too often, but every now and then I enjoy some transparency.

Polybar

Polybar is my main statusbar. The main reason I love it is because I can keep track of my school courses, such as when is the next one coming, what is my current course, etc. It's also really configurable. I store all my polybar scripts here.

Rofi

I use rofi to select programs. It's a lot better than stupid dmenu.

Sioyek

I use zathura and sioyek interchangeably. There're both pdf viewers. When I want to view my school notes, or anything that needs note taking I use sioyek, since I sioyek since I can highlight stuff and return later. Anything else, I use zathura.

Node

Nvim

My NeoVim configuration is blazingly fast. It loads up in about 120 milliseconds. Also note, I have about 80 plugins and dozens of configuration files.

Output of `StartupTime --tries 100`.
       startup: 124.6
event                  time percent plot
init.lua              65.07   52.21 ██████████████████████████
black.vim             29.81   23.92 ███████████▉
python3.vim           28.71   23.03 ███████████▌
impatient              8.88    7.13 ███▌
SingularisArt.config   4.83    3.87 █▉
SingularisArt.config   4.57    3.67 █▉
loading rtp plugins    4.51    3.62 █▊
telescope.actions      4.26    3.41 █▊
telescope.config       3.37    2.71 █▍
SingularisArt.lsp.co   3.06    2.45 █▎
SingularisArt.lsp.ha   2.68    2.15 █▏
vim.lsp                2.41    1.93 █
cmp                    2.27    1.82 ▉
cmp.core               1.99    1.60 ▊
null-ls                1.97    1.58 ▊
VimEnter autocommand   1.85    1.48 ▊
emmet.vim              1.84    1.47 ▊
opening buffers        1.71    1.37 ▋
vim.lsp.handlers       1.66    1.33 ▋
reading ShaDa          1.61    1.29 ▋
base16-bright.lua      1.50    1.21 ▋
telescope._extension   1.42    1.14 ▋
nvim-treesitter.lua    1.41    1.13 ▋
nvim-treesitter.conf   1.13    0.91 ▌
loading after plugin   1.10    0.88 ▌
before starting main   1.09    0.88 ▍
UltiSnips.vim          1.09    0.87 ▍
nvim-treesitter.quer   1.04    0.84 ▍
vim.diagnostic         1.04    0.83 ▍
sourcing vimrc file(   1.01    0.81 ▍
matchit.vim            0.98    0.79 ▍
null-ls.helpers        0.93    0.75 ▍
SingularisArt          0.87    0.70 ▍
SingularisArt.config   0.84    0.67 ▍
done waiting for UI    0.84    0.67 ▍
null-ls.config         0.84    0.67 ▍
nvim-treesitter.tsra   0.78    0.63 ▍
cmp_nvim_ultisnips.l   0.74    0.59 ▎
nvim-treesitter.ts_u   0.73    0.58 ▎
telescope.finders      0.70    0.56 ▎
filetype.lua           0.67    0.54 ▎
plenary.strings        0.65    0.52 ▎
nvim-treesitter.pars   0.61    0.49 ▎
plenary.path           0.61    0.49 ▎
vim.lsp.protocol       0.60    0.48 ▎
first screen update    0.59    0.47 ▎
init lua interpreter   0.58    0.46 ▎
mason-tool-installer   0.53    0.43 ▎
fzf.vim                0.51    0.41 ▎
mason-tool-installer   0.49    0.39 ▎
vim.lsp.util           0.49    0.39 ▎
cmp.lua                0.48    0.38 ▎
syntax.vim             0.47    0.38 ▏
telescope.sorters      0.46    0.37 ▏
null-ls.utils          0.45    0.36 ▏
telescope.pickers      0.44    0.35 ▏
mason-registry         0.43    0.34 ▏
mason                  0.42    0.34 ▏
inits 1                0.42    0.33 ▏
telescope.lua          0.40    0.32 ▏
illuminate.vim         0.40    0.32 ▏
cmp.view               0.40    0.32 ▏
vim._init_packages     0.38    0.31 ▏
SingularisArt.autocm   0.37    0.30 ▏
telescope.finders.as   0.36    0.29 ▏
netrwPlugin.vim        0.36    0.29 ▏
null-ls.helpers.gene   0.35    0.28 ▏
init highlight         0.34    0.27 ▏
plenary.async          0.33    0.27 ▏
cmp.context            0.33    0.26 ▏
nvim-treesitter.high   0.33    0.26 ▏
SingularisArt.config   0.32    0.26 ▏
mason-core.platform    0.32    0.26 ▏
cmp.utils.feedkeys     0.31    0.25 ▏
cmp.source             0.31    0.25 ▏
vim.lsp.log            0.29    0.24 ▏
null-ls.methods        0.28    0.22 ▏
indent_blankline.vim   0.27    0.22 ▏
cmp.utils.keymap       0.25    0.20 ▏
vim.lsp._snippet       0.25    0.20 ▏
init default mapping   0.25    0.20 ▏
telescope.log          0.23    0.19 ▏
vim._editor            0.22    0.17 ▏
telescope.builtin      0.21    0.17 ▏
cmp.types              0.21    0.17 ▏
lspconfig              0.21    0.17 ▏
clipboard.vim          0.21    0.17 ▏
host.vim               0.21    0.17 ▏
loading packages       0.21    0.17 ▏
devhelp.vim            0.21    0.17 ▏
nvim-treesitter.inst   0.21    0.17 ▏
event init             0.20    0.16 ▏
SingularisArt.settin   0.19    0.16 ▏
cmp_buffer.lua         0.19    0.16 ▏
lsp-inlayhints         0.19    0.15 ▏
plenary.log            0.19    0.15 ▏
lspconfig.configs      0.18    0.15 ▏
matchit.vim            0.18    0.15 ▏
plenary.popup          0.18    0.14 ▏
project_nvim           0.17    0.13 ▏
cmp.utils.str          0.17    0.13 ▏
telescope.utils        0.17    0.13 ▏
cmp.config             0.16    0.13 ▏
rplugin.vim            0.16    0.13 ▏
plenary.async.async    0.16    0.13 ▏
null-ls.logger         0.16    0.13 ▏
gzip.vim               0.16    0.13 ▏
cmp_buffer             0.16    0.13 ▏
vim.treesitter.query   0.16    0.13
lsp_signature          0.16    0.13
zipPlugin.vim          0.15    0.12
cmp_nvim_lua.lua       0.15    0.12
SingularisArt.lsp.ma   0.14    0.12
SingularisArt.packad   0.14    0.11
null-ls.helpers.diag   0.14    0.11
matchparen.vim         0.14    0.11
plenary.async.tests    0.14    0.11
vim.treesitter         0.14    0.11
lspconfig.util         0.14    0.11
SingularisArt.status   0.14    0.11
cmp_nvim_ultisnips     0.14    0.11
lsp-inlayhints.core    0.13    0.11
lspconfig.lua          0.13    0.11
telescope.make_entry   0.13    0.11
null-ls.builtins.for   0.13    0.10
early init             0.13    0.10
SingularisArt.plugin   0.13    0.10
cmp_buffer.source      0.13    0.10
SingularisArt.vim.se   0.13    0.10
null-ls.builtins.for   0.13    0.10
vim.shared             0.12    0.10
vim.lsp.buf            0.12    0.10
null-ls.builtins.dia   0.12    0.10
mason-core.fs          0.12    0.10
cmp_calc.lua           0.12    0.10
SingularisArt.config   0.12    0.10
vim.lsp.rpc            0.12    0.10
illuminate.engine      0.12    0.10
telescope.finders.as   0.12    0.10
indent_blankline       0.12    0.09
mason.api.command      0.11    0.09
vim._meta              0.11    0.09
cmp_path.lua           0.11    0.09
plenary.async.util     0.11    0.09
tarPlugin.vim          0.10    0.08
SingularisArt.autocm   0.10    0.08
mason-registry.index   0.10    0.08
UltiSnips_after.vim    0.10    0.08
plenary.functional     0.10    0.08
telescope.actions.se   0.10    0.08
nvim-treesitter        0.10    0.08
cmp.entry              0.10    0.08
cmp.view.custom_entr   0.10    0.08
null-ls.helpers.form   0.10    0.08
null-ls.helpers.cach   0.10    0.08
synload.vim            0.10    0.08
cmp_nvim_lsp           0.09    0.08
null-ls.sources        0.09    0.07
tohtml.vim             0.09    0.07
cmp_nvim_lsp.lua       0.09    0.07
telescope.mappings     0.09    0.07
project_nvim.utils.h   0.09    0.07
plenary.vararg         0.09    0.07
BufEnter autocommand   0.09    0.07
locale set             0.09    0.07
telescope._            0.09    0.07
null-ls.helpers.make   0.09    0.07
cmp.utils.char         0.08    0.07
cmp_calc               0.08    0.07
cmp_nvim_ultisnips.v   0.08    0.06
illuminate.highlight   0.08    0.06
cmp.utils.misc         0.08    0.06
telescope              0.08    0.06
cmp.view.docs_view     0.08    0.06
SingularisArt.icons    0.08    0.06
init first window      0.07    0.06
cmp_buffer.buffer      0.07    0.06
cmp.utils.pattern      0.07    0.06
mason-core.functiona   0.07    0.06
vim.treesitter.langu   0.07    0.06
telescope.pickers.en   0.07    0.06
SingularisArt.mappin   0.07    0.06
cmp.config.default     0.07    0.06
plenary.async.contro   0.07    0.06
mason.settings         0.07    0.06
lsp_signature.helper   0.07    0.06
mason-core.log         0.07    0.06
telescope.builtin.__   0.07    0.06
null-ls.builtins.for   0.07    0.06
plenary.job            0.07    0.06
telescope.entry_mana   0.07    0.06
vim.treesitter.highl   0.07    0.06
cmp_nvim_ultisnips.s   0.07    0.06
nvim-treesitter.inde   0.07    0.06
cmp.utils.buffer       0.07    0.06
wincent.pinnacle       0.07    0.05
null-ls.state          0.07    0.05
lspconfig.server_con   0.07    0.05
ftplugin.vim           0.07    0.05
SingularisArt.lsp      0.07    0.05
redact_pass.vim        0.07    0.05
map_keys.vim           0.07    0.05
pythonx.vim            0.07    0.05
man.lua                0.07    0.05
cmp_path               0.07    0.05
cmp.utils.debug        0.06    0.05
nvim-treesitter.util   0.06    0.05
vim.lsp.codelens       0.06    0.05
lspconfig.server_con   0.06    0.05
shada.vim              0.06    0.05
SingularisArt.config   0.06    0.05
vim.lsp.diagnostic     0.06    0.05
illuminate.providers   0.06    0.05
plenary.vararg.rotat   0.06    0.05
inits 2                0.06    0.05
plenary.bit            0.06    0.05
lspconfig.server_con   0.06    0.05
sysinit.vim            0.06    0.04
vim.lsp.sync           0.06    0.04
SingularisArt.lsp.se   0.06    0.04
nvim-treesitter.loca   0.06    0.04
nvim-treesitter.shel   0.05    0.04
project_nvim.project   0.05    0.04
cmp.view.wildmenu_en   0.05    0.04
vim.treesitter.langu   0.05    0.04
null-ls.client         0.05    0.04
lsp-inlayhints.adapt   0.05    0.04
SingularisArt.vim.au   0.05    0.04
vim.highlight          0.05    0.04
lspconfig.server_con   0.05    0.04
SingularisArt.autolo   0.05    0.04
SingularisArt.colors   0.05    0.04
null-ls.helpers.comm   0.05    0.04
lspconfig.server_con   0.05    0.04
cmp.types.lsp          0.05    0.04
null-ls.diagnostics    0.05    0.04
mason-core.functiona   0.05    0.04
lspconfig.server_con   0.05    0.04
indent.vim             0.05    0.04
SingularisArt.util.j   0.05    0.04
nvim-treesitter.info   0.04    0.04
null-ls.builtins.dia   0.04    0.04
illuminate             0.04    0.04
mason-core.async       0.04    0.04
SingularisArt.plugin   0.04    0.04
cmp.utils.async        0.04    0.04
plenary.window.borde   0.04    0.04
null-ls.builtins.for   0.04    0.04
cmp.utils.event        0.04    0.03
telescope.actions.mt   0.04    0.03
telescope.pickers.hi   0.04    0.03
indent_blankline/uti   0.04    0.03
cmp_nvim_lsp.source    0.04    0.03
null-ls.builtins.for   0.04    0.03
null-ls.builtins.dia   0.04    0.03
lspconfig.server_con   0.04    0.03
cmp.utils.window       0.04    0.03
project_nvim.config    0.04    0.03
telescope.deprecated   0.04    0.03
vim.inspect            0.04    0.03
null-ls.builtins.for   0.04    0.03
cmp_nvim_lua           0.04    0.03
lspconfig.server_con   0.04    0.03
lspconfig.server_con   0.04    0.03
illuminate.providers   0.04    0.03
expanding arguments    0.04    0.03
cmp.utils.api          0.04    0.03
null-ls.builtins.for   0.04    0.03
lspconfig.server_con   0.04    0.03
lspconfig.server_con   0.04    0.03
indent_blankline.com   0.04    0.03
SingularisArt.util     0.04    0.03
cmp.view.native_entr   0.04    0.03
project_nvim.utils.g   0.04    0.03
telescope.config.res   0.04    0.03
lspconfig.server_con   0.04    0.03
vimtex.vim             0.04    0.03
SingularisArt.vim      0.04    0.03
cmp.config.compare     0.04    0.03
cmp.config.sources     0.04    0.03
telescope.debounce     0.04    0.03
SingularisArt.augrou   0.04    0.03
lspconfig.server_con   0.04    0.03
nvim_treesitter.vim    0.04    0.03
cmp.config.mapping     0.04    0.03
SingularisArt.util.g   0.04    0.03
telescope.actions.ut   0.04    0.03
mason-core.functiona   0.04    0.03
nvim-treesitter.fold   0.04    0.03
cmp.utils.highlight    0.04    0.03
SingularisArt.util.r   0.04    0.03
plenary.class          0.04    0.03
SingularisArt.vim.au   0.04    0.03
null-ls.builtins.for   0.04    0.03
lspconfig.server_con   0.04    0.03
lspconfig.server_con   0.04    0.03
illuminate.providers   0.04    0.03
cmp.utils.autocmd      0.04    0.03
null-ls.builtins.for   0.04    0.03
lspconfig.server_con   0.04    0.03
cmp_nvim_ultisnips.t   0.04    0.03
SingularisArt.plugin   0.03    0.03
cmp.view.ghost_text_   0.03    0.03
project_nvim.utils.p   0.03    0.03
telescope._extension   0.03    0.03
lspconfig.server_con   0.03    0.03
lspconfig.server_con   0.03    0.03
illuminate.config      0.03    0.03
SingularisArt.lsp.in   0.03    0.03
nvim-treesitter.quer   0.03    0.03
cmp.matcher            0.03    0.03
nvim-treesitter.cach   0.03    0.03
telescope.pickers.sc   0.03    0.03
lspconfig.server_con   0.03    0.03
lspconfig.server_con   0.03    0.03
cmp_nvim_ultisnips.s   0.03    0.03
espeakfiletype.vim     0.03    0.02
telescope.state        0.03    0.02
plenary.window         0.03    0.02
telescope.actions.st   0.03    0.02
plenary.errors         0.03    0.02
telescope.algos.link   0.03    0.02
null-ls.builtins       0.03    0.02
SingularisArt.lsp.nu   0.03    0.02
SingularisArt.lsp.il   0.03    0.02
plenary.vim            0.03    0.02
mason-core.EventEmit   0.03    0.02
plenary.async.struct   0.03    0.02
telescope.finders.as   0.03    0.02
telescope.pickers.wi   0.03    0.02
mason-core.optional    0.03    0.02
cmp_nvim_ultisnips.c   0.03    0.02
cmp_buffer.timer       0.03    0.02
nginx.vim              0.03    0.02
cmp.types.cmp          0.03    0.02
null-ls.helpers.rang   0.03    0.02
mason-core.path        0.03    0.02
SingularisArt.lsp.si   0.03    0.02
mason-core.async.uv    0.03    0.02
telescope.pickers.mu   0.03    0.02
mason-core.functiona   0.03    0.02
lsp-inlayhints.confi   0.03    0.02
nvim-treesitter.stat   0.03    0.02
cmp.utils.cache        0.03    0.02
cmp.config.window      0.03    0.02
telescope.from_entry   0.03    0.02
plenary.tbl            0.03    0.02
mason-core.functiona   0.03    0.02
mason-core.functiona   0.03    0.02
plenary.popup.utils    0.03    0.02
cls.vim                0.03    0.02
SingularisArt.g        0.03    0.02
lsp-inlayhints.utils   0.03    0.02
cmp.types.vim          0.02    0.02
illuminate.util        0.02    0.02
illuminate.reference   0.02    0.02
meson.vim              0.02    0.02
lsp-inlayhints.store   0.02    0.02
spellfile.vim          0.02    0.02
tex.vim                0.02    0.02
window checked         0.02    0.02
init screen for UI     0.02    0.01
PKGBUILD.vim           0.02    0.01
health.vim             0.02    0.01
inits 3                0.02    0.01
init default autocom   0.02    0.01
tikz.vim               0.02    0.01
symbols-outline.vim    0.02    0.01
tutor.vim              0.02    0.01
executing command ar   0.02    0.01
--- NVIM STARTING --   0.02    0.01
vimtex.vim             0.02    0.01
UltiSnips.vim          0.01    0.01
archlinux.vim          0.01    0.01
filetype.vim           0.01    0.01
ffi                    0.01    0.01
augeas.vim             0.01    0.01
rplugin.vim            0.01    0.01
ftplugin.vim           0.01    0.01
indent.vim             0.01    0.01
parsing arguments      0.01    0.00
vim.F                  0.01    0.00
vim.keymap             0.01    0.00
UIEnter autocommands   0.01    0.00
editing files in win   0.00    0.00
--- NVIM STARTED ---   0.00    0.00
waiting for UI         0.00    0.00

The reason I have such speed is because I created my own plugin manager.

My Plugin Manager

All my plugins

Pacman

Python

Systemd

Tampermonkey

Spring Cleaning, Keeping your Home Directory Clean

For those, who, like me, hate it when your home directory is cluttered. Well, you're in luck because my dotfiles don't clutter your home directory. Here's proof.

As you can see, I, at most, have only 10 directories in my home directory. That's not because I don't use many programs. I use a TON.

I just thought I should share this.

How my Theming Works

My themeing is actually quit simple. I use pywal to generate a colorscheme from an image or a base16 theme. I then use the generated themes across all my applications.

If I just use pywal by itself, it won't work 100%. That's why I use my fork of Chameleon.py, which uses pywal to generate a theme for loads of things that pywal wouldn't do by itself.

Dependencies

  • git: In order to clone the repo.
  • python >= 3.10: To run the installation script.

Platform status

Platform Status
Arch Linux 🥇 Tested the most. Arch Linux is my main OS. You get the most configuration if you are on Linux.
MacOS 🥈 Not as bad, but it can have some bugs here and there, I'm starting to use Macs again.
Windows 🥉 The worst rank. Not tested at all. I don't even have an install script for it. You shouldn't use windows when using my dotfiles.
Other 💀 Not tested at all, and probably will never be.

Installation

git clone --recursive https://github.com/SingularisArt/Singularis.git

I typically clone it to ~/.local/share/Singularis

⚠️ WARNING: There are lots of different things that can be installed or configured (see the aspects directory). Unless you want your machine to be exactly like mine -- which is unlikely -- you probably don't want to install everything. Maybe you don't even want everything in the "dotfiles" and "nvim" aspects. Please inspect the contents of each aspect before proceeding to install it; you may even be better off just looking at the configuration files and stealing the bits that you find interesting or useful (everything is in the public domain, unless otherwise indicated).

Examples

./install --all                               # Install everything.
./install --aspect "dotfiles"                 # Just install "dotfiles".
./install --aspect "dotfiles xmenu"           # Just install "dotfiles" and "xmenu".
./install --aspect "^dotfiles"                # Install everything except the "dotfiles" aspect.
./install --aspect "dotfiles(neomutt)"        # Just install "neomutt" from my "dotfiles" aspect.
./install --aspect "dotfiles(neomutt,zsh)"    # Just install "neomutt" and "zsh" from my "dotfiles" aspect.
./install --aspect "dotfiles(^neomutt)"       # Install everything except "neomutt" from my "dotfiles" aspect.
./install --step --aspect "dotfiles"          # Prompt for confirmation at each step.
./install --check --aspect "dotfiles"         # Do a dry-run, showing what would be changed.
./install --list-aspects                      # List all available aspects to install.
./install --list-aspects "dotfiles"           # List all available aspects to install within my "dotfiles" aspect.
./install --help                              # Lists all possible commands/options.
./install                                     # Lists all possible commands/options.

Install

Here's how I install my dotfiles, in case you're wondering how to install them yourself (which isn't a clever idea because dotfiles are ment to be stolen taken from and used as an inspiration). Anyway, here's how I install them.

./install --backup                      # I create a backup of everything just in case something goes the wrong way.
./install --log "0" --all --singularis  # I set the log level to 0 so I can see everything that's happening.

⚠️ Don't use the --singularis option. This install all my personal config, like my newsboat history, which are encrypted and only I have the key to decrypt them. If you use the --singularis option, you're bound to run into issues, mainly because I use autojump, which stores sensative files. So, I encrypt them, and when cloning them down, I decrypt them. But if you use the --singularis option without decrypting them, you'll get the following error everytime you change your directory.

License

Unless otherwise noted, the contents of this repo are in the public domain. See the LICENSE for details.

Credit

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].