From 34aec856de0b1cbbf4a32f1148d7807f923ede82 Mon Sep 17 00:00:00 2001 From: Vapourium Date: Wed, 10 Nov 2021 19:28:10 -0500 Subject: [PATCH] feat: initialize dotfiles --- bin/.gitignore | 1 + bin/bar | 11 + bin/qutebrowser | 15 + etc/.gitignore | 5 + etc/bat/config | 25 + etc/bspwm/bspwmrc | 24 + etc/dunst/dunstrc | 465 ++++++ etc/gammastep/config.ini | 68 + etc/git/config | 45 + etc/git/message | 6 + etc/htop/htoprc | 39 + etc/mimeapps.list | 6 + etc/mpd/mpd.conf | 22 + etc/mpd/sticker.sql | Bin 0 -> 12288 bytes etc/ncmpcpp/bindings | 551 +++++++ etc/ncmpcpp/config | 12 + etc/ncmpcpp/error.log | 31 + etc/ncmpcpp/patterns.list | 2 + etc/nvim/.gitignore | 1 + etc/nvim/.stylua.toml | 6 + etc/nvim/colors/manilo.vim | 6 + etc/nvim/init.lua | 13 + etc/nvim/lua/options.lua | 42 + etc/nvim/lua/plugins/autopairs.lua | 6 + etc/nvim/lua/plugins/cmp.lua | 42 + etc/nvim/lua/plugins/init.lua | 97 ++ etc/nvim/lua/plugins/lsp.lua | 52 + etc/nvim/lua/plugins/lualine.lua | 27 + etc/nvim/lua/plugins/manilo.lua | 256 +++ etc/nvim/lua/plugins/treesitter.lua | 9 + etc/polybar/config | 175 ++ etc/qutebrowser/bookmarks/urls | 0 etc/qutebrowser/config.py | 18 + etc/qutebrowser/gruvbox.py | 332 ++++ etc/qutebrowser/quickmarks | 0 etc/ripgrep/config | 23 + etc/rofi/config.rasi | 171 ++ etc/sx/sxrc | 43 + etc/sxhkd/sxhkdrc | 146 ++ etc/user-dirs.dirs | 15 + etc/user-dirs.locale | 1 + etc/x11/Xresources | 28 + etc/zsh/.gitignore | 1 + etc/zsh/.p10k.zsh | 1621 +++++++++++++++++++ etc/zsh/.zlogout | 1 + etc/zsh/.zshrc | 81 + lib/.gitignore | 2 + share/.gitignore | 2 + share/bg | 1 + share/wallpapers/charizard-rainbow-nord.png | Bin 0 -> 236069 bytes share/wallpapers/charizard.png | Bin 0 -> 240804 bytes share/wallpapers/gruvbox_leaves.jpg | Bin 0 -> 528145 bytes share/wallpapers/leaves.jpg | Bin 0 -> 4993658 bytes share/wallpapers/lines.png | Bin 0 -> 12308 bytes share/wallpapers/minecraft.png | Bin 0 -> 654227 bytes share/wallpapers/unknown.png | Bin 0 -> 53216 bytes state/.gitignore | 2 + var/.gitignore | 2 + 58 files changed, 4550 insertions(+) create mode 100644 bin/.gitignore create mode 100755 bin/bar create mode 100755 bin/qutebrowser create mode 100644 etc/.gitignore create mode 100644 etc/bat/config create mode 100755 etc/bspwm/bspwmrc create mode 100644 etc/dunst/dunstrc create mode 100644 etc/gammastep/config.ini create mode 100644 etc/git/config create mode 100644 etc/git/message create mode 100644 etc/htop/htoprc create mode 100644 etc/mimeapps.list create mode 100644 etc/mpd/mpd.conf create mode 100644 etc/mpd/sticker.sql create mode 100644 etc/ncmpcpp/bindings create mode 100644 etc/ncmpcpp/config create mode 100644 etc/ncmpcpp/error.log create mode 100644 etc/ncmpcpp/patterns.list create mode 100644 etc/nvim/.gitignore create mode 100644 etc/nvim/.stylua.toml create mode 100644 etc/nvim/colors/manilo.vim create mode 100644 etc/nvim/init.lua create mode 100644 etc/nvim/lua/options.lua create mode 100644 etc/nvim/lua/plugins/autopairs.lua create mode 100644 etc/nvim/lua/plugins/cmp.lua create mode 100644 etc/nvim/lua/plugins/init.lua create mode 100644 etc/nvim/lua/plugins/lsp.lua create mode 100644 etc/nvim/lua/plugins/lualine.lua create mode 100644 etc/nvim/lua/plugins/manilo.lua create mode 100644 etc/nvim/lua/plugins/treesitter.lua create mode 100644 etc/polybar/config create mode 100644 etc/qutebrowser/bookmarks/urls create mode 100644 etc/qutebrowser/config.py create mode 100644 etc/qutebrowser/gruvbox.py create mode 100644 etc/qutebrowser/quickmarks create mode 100644 etc/ripgrep/config create mode 100644 etc/rofi/config.rasi create mode 100755 etc/sx/sxrc create mode 100644 etc/sxhkd/sxhkdrc create mode 100644 etc/user-dirs.dirs create mode 100644 etc/user-dirs.locale create mode 100644 etc/x11/Xresources create mode 100644 etc/zsh/.gitignore create mode 100644 etc/zsh/.p10k.zsh create mode 100644 etc/zsh/.zlogout create mode 100644 etc/zsh/.zshrc create mode 100644 lib/.gitignore create mode 100644 share/.gitignore create mode 120000 share/bg create mode 100644 share/wallpapers/charizard-rainbow-nord.png create mode 100644 share/wallpapers/charizard.png create mode 100644 share/wallpapers/gruvbox_leaves.jpg create mode 100644 share/wallpapers/leaves.jpg create mode 100644 share/wallpapers/lines.png create mode 100644 share/wallpapers/minecraft.png create mode 100644 share/wallpapers/unknown.png create mode 100644 state/.gitignore create mode 100644 var/.gitignore diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..3065479 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1 @@ +grapejuice* diff --git a/bin/bar b/bin/bar new file mode 100755 index 0000000..f074829 --- /dev/null +++ b/bin/bar @@ -0,0 +1,11 @@ +#!/usr/bin/env execlineb +# vim:ft=sh + +# Terminate already running bar instances +# killall -q polybar +# If all your bars have ipc enabled, you can also use +foreground { polybar-msg cmd quit } + +# Launch bar1 and bar2 +pipeline { echo "---" } foreground { tee -a /tmp/megalobar.log } +pipeline { polybar megalo } background { tee -a /tmp/megalobar.log } exit diff --git a/bin/qutebrowser b/bin/qutebrowser new file mode 100755 index 0000000..0d6edef --- /dev/null +++ b/bin/qutebrowser @@ -0,0 +1,15 @@ +#!/bin/sh +# initial idea: Florian Bruhin (The-Compiler) +# author: Thore Bödecker (foxxx0) + +_url="$1" +_qb_version='1.0.4' +_proto_version=1 +_ipc_socket="${XDG_RUNTIME_DIR}/qutebrowser/ipc-$(echo -n "$USER" | md5sum | cut -d' ' -f1)" +_qute_bin="/usr/bin/qutebrowser" + +printf '{"args": ["%s"], "target_arg": null, "version": "%s", "protocol_version": %d, "cwd": "%s"}\n' \ + "${_url}" \ + "${_qb_version}" \ + "${_proto_version}" \ + "${PWD}" | socat -lf /dev/null - UNIX-CONNECT:"${_ipc_socket}" || "$_qute_bin" "$@" & diff --git a/etc/.gitignore b/etc/.gitignore new file mode 100644 index 0000000..ba5f939 --- /dev/null +++ b/etc/.gitignore @@ -0,0 +1,5 @@ +cef_user_data +discord +glib-2.0 +himalaya +pulse diff --git a/etc/bat/config b/etc/bat/config new file mode 100644 index 0000000..921ac00 --- /dev/null +++ b/etc/bat/config @@ -0,0 +1,25 @@ +# This is `bat`s configuration file. Each line either contains a comment or +# a command-line option that you want to pass to `bat` by default. You can +# run `bat --help` to get a list of all possible configuration options. + +# Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes` +# for a list of all available themes +--theme="gruvbox-dark" + +# Enable this to use italic text on the terminal. This is not supported on all +# terminal emulators (like tmux, by default): +--italic-text=always + +# Uncomment the following line to disable automatic paging: +#--paging=never + +# Uncomment the following line if you are using less version >= 551 and want to +# enable mouse scrolling support in `bat` when running inside tmux. This might +# disable text selection, unless you press shift. +# --pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse" + +# Syntax mappings: map a certain filename pattern to a language. +# Example 1: use the C++ syntax for .ino files +# Example 2: Use ".gitignore"-style highlighting for ".ignore" files +#--map-syntax "*.ino:C++" +#--map-syntax ".ignore:Git Ignore" diff --git a/etc/bspwm/bspwmrc b/etc/bspwm/bspwmrc new file mode 100755 index 0000000..9bd25a8 --- /dev/null +++ b/etc/bspwm/bspwmrc @@ -0,0 +1,24 @@ +#!/bin/sh + +pgrep -x sxhkd > /dev/null || sxhkd & + +bspc monitor -d I II III IV V VI VII VIII IX X + +bspc config border_width 4 +bspc config window_gap 10 + +bspc config split_ratio 0.50 +bspc config borderless_monocle true +bspc config gapless_monocle true + +bspc config normal_border_color "#282828" +bspc config active_border_color "#17191a" +bspc config focused_border_color "#3c3836" + +bspc rule -a discord desktop="^1" +bspc rule -a qutebrowser desktop="^3" +bspc rule -a gdlauncher desktop="^4" +bspc rule -a Steam desktop="^4" state=floating + +xsetroot -cursor_name left_ptr & +bar & diff --git a/etc/dunst/dunstrc b/etc/dunst/dunstrc new file mode 100644 index 0000000..8a0467e --- /dev/null +++ b/etc/dunst/dunstrc @@ -0,0 +1,465 @@ +[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 = "300x10-10+40" + + # Turn on the progess bar + progress_bar = true + + # Set the progress bar height. This includes the frame, so make sure + # it's at least twice as big as the frame width. + progress_bar_height = 10 + + # Set the frame width of the progress bar + progress_bar_frame_width = 1 + + # Set the minimum width for the progress bar + progress_bar_min_width = 150 + + # Set the maximum width for the progress bar + progress_bar_max_width = 300 + + + # 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 = 1 + + # 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 + + # Padding between text and icon. + text_icon_padding = 0 + + # Defines width in pixels of frame around the notification window. + # Set to 0 to disable. + frame_width = 4 + + # Defines color of the frame around the notification window. + frame_color = "#3c3836" + + # 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 = JetBrains Mono Nerd Font 10 + + # 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 + + # Vertical alignment of message text and icon. + # Possible values are "top", "center" and "bottom". + vertical_alignment = center + + # 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 small icons up to this size, set to 0 to disable. Helpful + # for e.g. small files or high-dpi screens. In case of conflict, + # max_icon_size takes precedence over this. + min_icon_size = 0 + + # 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/gnome/16x16/status/:/usr/share/icons/gnome/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/rofi -dmenu -p dunst: + + # Browser for opening urls in context menu. + browser = /usr/bin/xdg-open + + # 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 + + # Ignore the dbus closeNotification message. + # Useful to enforce the timeout set by dunst configuration. Without this + # parameter, an application may close the notification sent before the + # user defined timeout. + ignore_dbusclose = false + + ### Wayland ### + # These settings are Wayland-specific. They have no effect when using X11 + + # Uncomment this if you want to let notications appear under fullscreen + # applications (default: overlay) + # layer = top + + # Set this to true to use X11 output on Wayland. + force_xwayland = false + + ### 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 list of actions for each 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. + # These values can be strung together for each mouse event, and + # will be executed in sequence. + mouse_left_click = close_current + mouse_middle_click = do_action, close_current + 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 + +# The internal keyboard shortcut support in dunst is now considered deprecated +# and should be replaced by dunstctl calls. You can use the configuration of your +# WM or DE to bind these to shortcuts of your choice. +# Check the dunstctl manual page for more info. +[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. Equivalent dunstctl command: + # dunstctl close + # close = ctrl+space + + # Close all notifications. Equivalent dunstctl command: + # dunstctl close-all + # close_all = ctrl+shift+space + + # Redisplay last message(s). Equivalent dunstctl command: + # dunstctl history-pop + # history = ctrl+grave + + # Context menu. Equivalent dunstctl command: + # dunstctl context + # 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 = "#282828" + foreground = "#665c54" + timeout = 5 + # Icon for notifications with low urgency, uncomment to enable + #icon = /path/to/icon + +[urgency_normal] + background = "#282828" + foreground = "#d5c4a1" + timeout = 10 + # Icon for notifications with normal urgency, uncomment to enable + #icon = /path/to/icon + +[urgency_critical] + background = "#282828" + foreground = "#ebdbb2" + 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" +# +# vim: ft=cfg diff --git a/etc/gammastep/config.ini b/etc/gammastep/config.ini new file mode 100644 index 0000000..bc31d3b --- /dev/null +++ b/etc/gammastep/config.ini @@ -0,0 +1,68 @@ +; Global settings +[general] +; Set the day and night screen temperatures +temp-day=5700 +temp-night=3500 + +; Disable the smooth fade between temperatures when Redshift starts and stops. +; 0 will cause an immediate change between screen temperatures. +; 1 will gradually apply the new screen temperature over a couple of seconds. +fade=1 + +; Solar elevation thresholds. +; By default, Redshift will use the current elevation of the sun to determine +; whether it is daytime, night or in transition (dawn/dusk). When the sun is +; above the degrees specified with elevation-high it is considered daytime and +; below elevation-low it is considered night. +;elevation-high=3 +;elevation-low=-6 + +; Custom dawn/dusk intervals. +; Instead of using the solar elevation, the time intervals of dawn and dusk +; can be specified manually. The times must be specified as HH:MM in 24-hour +; format. +;dawn-time=6:00-7:45 +;dusk-time=18:35-20:15 + +; Set the screen brightness. Default is 1.0. +;brightness=0.9 +; It is also possible to use different settings for day and night +; since version 1.8. +;brightness-day=0.7 +;brightness-night=0.4 +; Set the screen gamma (for all colors, or each color channel +; individually) +gamma=0.8 +;gamma=0.8:0.7:0.8 +; This can also be set individually for day and night since +; version 1.10. +;gamma-day=0.8:0.7:0.8 +;gamma-night=0.6 + +; Set the location-provider: 'geoclue2', 'manual'. +; The location provider settings are in a different section. +location-provider=manual + +; Set the adjustment-method: 'randr', 'vidmode', 'drm', 'wayland'. +; 'randr' is the preferred X11 method, 'vidmode' is an older API +; that works in some cases when 'randr' does not. +; The adjustment method settings are in a different section. +adjustment-method=randr + +; Configuration of the location-provider: +; type 'gammastep -l PROVIDER:help' to see the settings. +; ex: 'gammastep -l manual:help' +; Keep in mind that longitudes west of Greenwich (e.g. the Americas) +; are negative numbers. +[manual] +lat=43.65 +lon=-79.38 + +; Configuration of the adjustment-method +; type 'gammastep -m METHOD:help' to see the settings. +; ex: 'gammastep -m randr:help' +; In this example, randr is configured to adjust only screen 0. +; Note that the numbering starts from 0, so this is actually the first screen. +; If this option is not specified, Redshift will try to adjust _all_ screens. +[randr] +screen=0 diff --git a/etc/git/config b/etc/git/config new file mode 100644 index 0000000..e049552 --- /dev/null +++ b/etc/git/config @@ -0,0 +1,45 @@ +[alias] + graph = log --oneline --graph --decorate + +[apply] + whitespace = fix + +[color] + ui = auto + +[commit] + template = ~/.local/etc/git/message + +[core] + excludesfile = ~/.local/etc/git/globalignore + editor = nvim + +[credential] + helper = cache + +[fetch] + prune = true + +[help] + autocorrect = 1 + + +[merge] + log = true + +[mergetool] + keepBackup = false + +[pull] + rebase = true + +[push] + default = current + +[user] + name = Vapourium + email = vapourium@riseup.net + signingkey = C02349EF055D7323 + +[init] + defaultBranch = trunk diff --git a/etc/git/message b/etc/git/message new file mode 100644 index 0000000..6baa066 --- /dev/null +++ b/etc/git/message @@ -0,0 +1,6 @@ +# chore: +# docs: +# feat: +# fix: +# revert: +# test: diff --git a/etc/htop/htoprc b/etc/htop/htoprc new file mode 100644 index 0000000..cace9b4 --- /dev/null +++ b/etc/htop/htoprc @@ -0,0 +1,39 @@ +# Beware! This file is rewritten by htop when settings are changed in the interface. +# The parser is also very primitive, and not human-friendly. +fields=0 48 17 18 38 39 40 2 46 47 49 1 +sort_key=46 +sort_direction=1 +tree_sort_key=0 +tree_sort_direction=1 +hide_kernel_threads=1 +hide_userland_threads=0 +shadow_other_users=0 +show_thread_names=0 +show_program_path=1 +highlight_base_name=0 +highlight_megabytes=1 +highlight_threads=1 +highlight_changes=0 +highlight_changes_delay_secs=5 +find_comm_in_cmdline=1 +strip_exe_from_cmdline=1 +show_merged_command=0 +tree_view=0 +tree_view_always_by_pid=0 +header_margin=1 +detailed_cpu_time=0 +cpu_count_from_one=0 +show_cpu_usage=1 +show_cpu_frequency=0 +show_cpu_temperature=0 +degree_fahrenheit=0 +update_process_names=0 +account_guest_in_cpu_meter=0 +color_scheme=0 +enable_mouse=1 +delay=15 +left_meters=AllCPUs Memory Swap +left_meter_modes=1 1 1 +right_meters=Tasks LoadAverage Uptime +right_meter_modes=2 2 2 +hide_function_bar=0 diff --git a/etc/mimeapps.list b/etc/mimeapps.list new file mode 100644 index 0000000..14e58d0 --- /dev/null +++ b/etc/mimeapps.list @@ -0,0 +1,6 @@ + +[Default Applications] +x-scheme-handler/roblox-studio=roblox-studio.desktop +x-scheme-handler/roblox-player=roblox-player.desktop +application/x-roblox-rbxl=roblox-studio.desktop +application/x-roblox-rbxlx=roblox-studio.desktop diff --git a/etc/mpd/mpd.conf b/etc/mpd/mpd.conf new file mode 100644 index 0000000..1d69dd5 --- /dev/null +++ b/etc/mpd/mpd.conf @@ -0,0 +1,22 @@ +music_directory "~/.local/share/music" +pid_file "~/.local/var/cache/mpd.pid" +playlist_directory "~/.local/etc/mpd/playlists" +state_file "~/.local/var/cache/mpd.state" +sticker_file "~/.local/etc/mpd/sticker.sql" + +auto_update "yes" +bind_to_address "127.0.0.1" +restore_paused "yes" +max_output_buffer_size "16384" + +audio_output { + type "pipewire" + name "PipeWire Sound Server" +} + +audio_output { + type "fifo" + name "my_fifo" + path "/tmp/mpd.fifo" + format "44100:16:2" +} diff --git a/etc/mpd/sticker.sql b/etc/mpd/sticker.sql new file mode 100644 index 0000000000000000000000000000000000000000..1a211b0b1efa3f8536fb9343d92ed5821ed48776 GIT binary patch literal 12288 zcmeI%ze~eF6u|LIDg*?n;LxGV+q4i|{0EFRU?HS5O~gr!dP20V5>wH^q5rveB@s*O zER^qqOYTSVj{9VKWIT$BO3UL*In66MQTxhq)TxM4$~CQJS`&7>(+ter`PKic>#F1N z?Vee6+qqkVJdMJMZSp5yK&xbwQ*s2khPVbt<6o*PauE*0tg_0 t00IagfB*srAb`LY3oL)gQ~z)A7v^XPAb" +# next +# +#def_key "<" +# previous +# +#def_key "ctrl-h" +# jump_to_parent_directory +# +#def_key "ctrl-h" +# replay_song +# +#def_key "backspace" +# jump_to_parent_directory +# +#def_key "backspace" +# replay_song +# +#def_key "backspace" +# play +# +#def_key "f" +# seek_forward +# +#def_key "b" +# seek_backward +# +#def_key "r" +# toggle_repeat +# +#def_key "z" +# toggle_random +# +#def_key "y" +# save_tag_changes +# +#def_key "y" +# start_searching +# +#def_key "y" +# toggle_single +# +#def_key "R" +# toggle_consume +# +#def_key "Y" +# toggle_replay_gain_mode +# +#def_key "T" +# toggle_add_mode +# +#def_key "|" +# toggle_mouse +# +#def_key "#" +# toggle_bitrate_visibility +# +#def_key "Z" +# shuffle +# +#def_key "x" +# toggle_crossfade +# +#def_key "X" +# set_crossfade +# +#def_key "u" +# update_database +# +#def_key "ctrl-s" +# sort_playlist +# +#def_key "ctrl-s" +# toggle_browser_sort_mode +# +#def_key "ctrl-s" +# toggle_media_library_sort_mode +# +#def_key "ctrl-r" +# reverse_playlist +# +#def_key "ctrl-f" +# apply_filter +# +#def_key "ctrl-_" +# select_found_items +# +#def_key "/" +# find +# +#def_key "/" +# find_item_forward +# +#def_key "?" +# find +# +#def_key "?" +# find_item_backward +# +#def_key "." +# next_found_item +# +#def_key "," +# previous_found_item +# +#def_key "w" +# toggle_find_mode +# +#def_key "e" +# edit_song +# +#def_key "e" +# edit_library_tag +# +#def_key "e" +# edit_library_album +# +#def_key "e" +# edit_directory_name +# +#def_key "e" +# edit_playlist_name +# +#def_key "e" +# edit_lyrics +# +#def_key "i" +# show_song_info +# +#def_key "I" +# show_artist_info +# +#def_key "g" +# jump_to_position_in_song +# +#def_key "l" +# show_lyrics +# +#def_key "ctrl-v" +# select_range +# +#def_key "v" +# reverse_selection +# +#def_key "V" +# remove_selection +# +#def_key "B" +# select_album +# +#def_key "a" +# add_selected_items +# +#def_key "c" +# clear_playlist +# +#def_key "c" +# clear_main_playlist +# +#def_key "C" +# crop_playlist +# +#def_key "C" +# crop_main_playlist +# +#def_key "m" +# move_sort_order_up +# +#def_key "m" +# move_selected_items_up +# +#def_key "n" +# move_sort_order_down +# +#def_key "n" +# move_selected_items_down +# +#def_key "M" +# move_selected_items_to +# +#def_key "A" +# add +# +#def_key "S" +# save_playlist +# +#def_key "o" +# jump_to_playing_song +# +#def_key "G" +# jump_to_browser +# +#def_key "G" +# jump_to_playlist_editor +# +#def_key "~" +# jump_to_media_library +# +#def_key "E" +# jump_to_tag_editor +# +#def_key "U" +# toggle_playing_song_centering +# +#def_key "P" +# toggle_display_mode +# +#def_key "\\" +# toggle_interface +# +#def_key "!" +# toggle_separators_between_albums +# +#def_key "L" +# toggle_lyrics_fetcher +# +#def_key "F" +# fetch_lyrics_in_background +# +#def_key "alt-l" +# toggle_fetching_lyrics_in_background +# +#def_key "ctrl-l" +# toggle_screen_lock +# +#def_key "`" +# toggle_library_tag_type +# +#def_key "`" +# refetch_lyrics +# +#def_key "`" +# add_random_items +# +#def_key "ctrl-p" +# set_selected_items_priority +# +#def_key "q" +# quit +# diff --git a/etc/ncmpcpp/config b/etc/ncmpcpp/config new file mode 100644 index 0000000..a177e43 --- /dev/null +++ b/etc/ncmpcpp/config @@ -0,0 +1,12 @@ +# vim ft:conf +ncmpcpp_directory = ~/.local/etc/ncmpcpp +lyrics_directory = ~/.local/share/lyrics +mpd_music_dir = ~/.local/share/music +message_delay_time = 2 +visualizer_data_source = "/tmp/mpd.fifo" +visualizer_output_name = "my_fifo" +visualizer_in_stereo = "yes" +visualizer_type = "spectrum" +visualizer_look = "+|" + +execute_on_song_change = notify-send "Now Playing" "$(mpc --format '%title% \n%artist%' current)" diff --git a/etc/ncmpcpp/error.log b/etc/ncmpcpp/error.log new file mode 100644 index 0000000..a0d5eb1 --- /dev/null +++ b/etc/ncmpcpp/error.log @@ -0,0 +1,31 @@ +writeCommonTags: couldn't write 'track' tag to 'Waterflame - Endgame-lrpS69H1RRU.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Bossfight - Partyt Är Igång!--WZTlJXS-Gk.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'ColBreakz - 10000-OEg0ASwOpOo.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Endgame.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'F-777 - Viper (Full Version)-kqGdPJpx4pw.m4a' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to '10000.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Bossfight - Flirt Flirt Oh It hurts-gR4iFDXmpAw.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Bossfight - Helmut Haunter-PD_LKAFBsxk.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Bossfight - Okiba Crackdown-PgFWP391ZOs.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Bossfight - Starship Showdown-thFFCc7H9EI.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Endgame.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Partyt Är Igång!.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Viper.m4a' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to '10000.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to '10000.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Bossfight - Milky Ways [_5w8SJ3yVsc].opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Endgame.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Flirt Flirt Oh It Hurts.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Helmut Haunter.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Okiba Crackdown.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Partyt Är Igång!.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Starship Showdown.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Viper.m4a' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Bossfight - Milky Ways.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Bossfight - Steampunk Warlord [LREYOaVUbLc].opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Bossfight - The Maze Of Mayonnaise [57c94il3Eng].opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Flirt Flirt Oh It Hurts.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Helmut Haunter.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Okiba Crackdown.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Partyt Är Igång!.opus' as it's not a positive integer +writeCommonTags: couldn't write 'track' tag to 'Starship Showdown.opus' as it's not a positive integer diff --git a/etc/ncmpcpp/patterns.list b/etc/ncmpcpp/patterns.list new file mode 100644 index 0000000..58ed94b --- /dev/null +++ b/etc/ncmpcpp/patterns.list @@ -0,0 +1,2 @@ +%t +%n - %t diff --git a/etc/nvim/.gitignore b/etc/nvim/.gitignore new file mode 100644 index 0000000..d7ad043 --- /dev/null +++ b/etc/nvim/.gitignore @@ -0,0 +1 @@ +plugin/ diff --git a/etc/nvim/.stylua.toml b/etc/nvim/.stylua.toml new file mode 100644 index 0000000..bb258b9 --- /dev/null +++ b/etc/nvim/.stylua.toml @@ -0,0 +1,6 @@ +column_width = 120 +line_endings = "Unix" +indent_type = "Spaces" +indent_width = 4 +quote_style = "AutoPreferDouble" +no_call_parentheses = false diff --git a/etc/nvim/colors/manilo.vim b/etc/nvim/colors/manilo.vim new file mode 100644 index 0000000..d4ae4be --- /dev/null +++ b/etc/nvim/colors/manilo.vim @@ -0,0 +1,6 @@ +let g:colors_name="manilo" + +lua package.loaded['lush_theme.lush_template'] = nil + +" include our theme file and pass it to lush to apply +lua require('lush')(require('plugins/manilo')) diff --git a/etc/nvim/init.lua b/etc/nvim/init.lua new file mode 100644 index 0000000..9538d1d --- /dev/null +++ b/etc/nvim/init.lua @@ -0,0 +1,13 @@ +require("impatient").enable_profile() + +local init_modules = { + "options", + "plugins", +} + +for _, module in ipairs(init_modules) do + local ok, err = pcall(require, module) + if not ok then + error("Error loading " .. module .. "\n\n" .. err) + end +end diff --git a/etc/nvim/lua/options.lua b/etc/nvim/lua/options.lua new file mode 100644 index 0000000..6832952 --- /dev/null +++ b/etc/nvim/lua/options.lua @@ -0,0 +1,42 @@ +local options = { + background = "dark", -- When set to "dark" or "light", adjusts the default color groups for that background type + backup = false, -- Make a backup before overwriting a file + clipboard = "unnamedplus", -- Use the clipboard register '+' for all yank, delete, change and put operation + completeopt = "menu,menuone,noselect", -- A comma separated list of options for Insert mode completion + cursorline = true, -- Highlight the text line of the cursor with CursorLine + expandtab = true, -- In Insert mode: Use the appropriate number of spaces to insert a + fileencoding = "utf-8", -- File-content encoding for the current buffer + hidden = true, -- Buffers becomes hidden when abandoned + hlsearch = true, -- When there is a previous search pattern, highlight all its matches + ignorecase = true, -- When there is a previous search pattern, highlight all its matched + mouse = "nv", -- Enables mouse support + number = true, -- Print the line number in front of each line + numberwidth = 4, -- Minimal number of columns to use for the line number + relativenumber = false, -- Show the line number relative to the line with the cursor in front of each line + ruler = false, -- Show the line and column number of the cursor position, separated by a comma + showmode = false, -- If in Insert, Replace or Visual mode put a message on the last line + shiftwidth = 4, -- Number of spaces to use for each step of (auto)indent + softtabstop = 4, -- Number of spaces that a counts for while performing editing operations + smartcase = true, -- Override the 'ignorecase' option if the search pattern contains uppercase characters + swapfile = false, -- Use a swapfile for the buffer + tabstop = 4, -- Number of spaces that a in the file counts for + termguicolors = true, -- Enables 24-bit RGB color in the TUI + title = true, -- When on, the title of the window will be set to the value of 'titlestring' + undodir = vim.fn.stdpath("cache") .. "/undo", -- List of directory names for undo files, separated with commas + undofile = true, -- When on, Vim automatically saves undo history to an undo file + wrap = false, -- This option changes how text is displayed + writebackup = false, -- Make a backup before overwriting a file +} + +for o, _ in pairs(options) do + vim.opt[o] = _ +end + +vim.g.gruvbox_material_better_performance = 1 +vim.g.gruvbox_material_enable_italic = 1 +vim.g.gruvbox_material_palette = "mix" +vim.g.gruvbox_material_transparent_background = 1 + +vim.cmd("filetype plugin indent on") +vim.cmd("syntax enable") +vim.cmd("colorscheme gruvbox-material") diff --git a/etc/nvim/lua/plugins/autopairs.lua b/etc/nvim/lua/plugins/autopairs.lua new file mode 100644 index 0000000..c0cbc34 --- /dev/null +++ b/etc/nvim/lua/plugins/autopairs.lua @@ -0,0 +1,6 @@ +require("nvim-autopairs").setup({ + check_ts = true, + ts_config = { + lua = { "string" }, + }, +}) diff --git a/etc/nvim/lua/plugins/cmp.lua b/etc/nvim/lua/plugins/cmp.lua new file mode 100644 index 0000000..eda09e4 --- /dev/null +++ b/etc/nvim/lua/plugins/cmp.lua @@ -0,0 +1,42 @@ +local has_words_before = function() + local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil +end + +local cmp = require("cmp") +local cmp_autopairs = require("nvim-autopairs.completion.cmp") +cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done({ map_char = { tex = "" } })) + +cmp.setup({ + snippet = {}, + mapping = { + [""] = cmp.mapping.confirm({ + behavior = cmp.ConfirmBehavior.Insert, + select = true, + }), + [""] = function(fallback) + if not cmp.select_next_item() then + if vim.bo.buftype ~= "prompt" and has_words_before() then + cmp.complete() + else + fallback() + end + end + end, + [""] = function(fallback) + if not cmp.select_prev_item() then + if vim.bo.buftype ~= "prompt" and has_words_before() then + cmp.complete() + else + fallback() + end + end + end, + }, + sources = { + { name = "buffer" }, + { name = "path" }, + { name = "nvim_lsp" }, + { name = "nvim_lua" }, + }, +}) diff --git a/etc/nvim/lua/plugins/init.lua b/etc/nvim/lua/plugins/init.lua new file mode 100644 index 0000000..fef267c --- /dev/null +++ b/etc/nvim/lua/plugins/init.lua @@ -0,0 +1,97 @@ +local install_path = vim.fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim" +if vim.fn.empty(vim.fn.glob(install_path)) > 0 then + vim.fn.system({ "git", "clone", "--depth", "1", "https://github.com/wbthomason/packer.nvim", install_path }) + vim.cmd("packadd packer.nvim") +end + +return require("packer").startup({ + function(use) + use("wbthomason/packer.nvim") + + use("lewis6991/impatient.nvim") + + use({ + "neovim/nvim-lspconfig", + requires = { "kabouzeid/nvim-lspinstall" }, + config = function() + require("plugins.lsp") + end, + }) + + use("antoinemadec/FixCursorHold.nvim") + + use("nvim-lua/plenary.nvim") + + use("nvim-lua/popup.nvim") + + use("nvim-telescope/telescope.nvim") + + use({ + "hrsh7th/nvim-cmp", + requires = { + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-path", + "hrsh7th/cmp-nvim-lua", + }, + config = function() + require("plugins.cmp") + end, + }) + + use({ + "windwp/nvim-autopairs", + after = "nvim-cmp", + config = function() + require("plugins.autopairs") + end, + }) + + use({ + "nvim-treesitter/nvim-treesitter", + run = ":TSUpdate", + config = function() + require("plugins.treesitter") + end, + }) + + use({ + "lewis6991/gitsigns.nvim", + config = function() + require("gitsigns").setup() + end, + event = "BufRead", + }) + + use("b3nj5m1n/kommentary") + + use({ + "ahmedkhalf/project.nvim", + config = function() + require("project_nvim").setup() + end, + }) + + use("editorconfig/editorconfig-vim") + + use({ + "nvim-lualine/lualine.nvim", + requires = { "kyazdani42/nvim-web-devicons", opt = true }, + config = function() + require("plugins.lualine") + end, + }) + + use("sainnhe/gruvbox-material") + + -- use("rktjmp/lush.nvim") + end, + config = { + -- compile_path = vim.fn.stdpath("config") .. "/lua/packer_compiled.lua", + display = { + open_fn = function() + return require("packer.util").float({ border = "single" }) + end, + }, + }, +}) diff --git a/etc/nvim/lua/plugins/lsp.lua b/etc/nvim/lua/plugins/lsp.lua new file mode 100644 index 0000000..7ce37db --- /dev/null +++ b/etc/nvim/lua/plugins/lsp.lua @@ -0,0 +1,52 @@ +local nvim_lsp = require("lspconfig") + +local on_attach = function(client, bufnr) + local function buf_set_option(...) + vim.api.nvim_buf_set_option(bufnr, ...) + end + + buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") +end + +local servers = { "sumneko_lua" } +for _, lsp in ipairs(servers) do + nvim_lsp[lsp].setup({ + on_attach = on_attach, + flags = { + debounce_text_changes = 150, + }, + }) +end + +local sumneko_root_path = "/home/vapour/.local/share/sauce/lua-language-server" +local sumneko_binary = sumneko_root_path .. "/bin/Linux/lua-language-server" + +local runtime_path = vim.split(package.path, ";") +table.insert(runtime_path, "lua/?.lua") +table.insert(runtime_path, "lua/?/init.lua") + +nvim_lsp.sumneko_lua.setup({ + cmd = { sumneko_binary, "-E", sumneko_root_path .. "/main.lua" }, + settings = { + Lua = { + runtime = { + -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) + version = "LuaJIT", + -- Setup your lua path + path = runtime_path, + }, + diagnostics = { + -- Get the language server to recognize the `vim` global + globals = { "vim" }, + }, + workspace = { + -- Make the server aware of Neovim runtime files + library = vim.api.nvim_get_runtime_file("", true), + }, + -- Do not send telemetry data containing a randomized but unique identifier + telemetry = { + enable = false, + }, + }, + }, +}) diff --git a/etc/nvim/lua/plugins/lualine.lua b/etc/nvim/lua/plugins/lualine.lua new file mode 100644 index 0000000..5bb96de --- /dev/null +++ b/etc/nvim/lua/plugins/lualine.lua @@ -0,0 +1,27 @@ +require("lualine").setup({ + options = { + icons_enabled = true, + theme = "gruvbox", + component_separators = { left = "", right = "" }, + section_separators = { left = "", right = "" }, + disabled_filetypes = {}, + }, + sections = { + lualine_a = { "mode" }, + lualine_b = { "branch", "diff", { "diagnostics", sources = { "nvim_lsp" } } }, + lualine_c = { "filename" }, + lualine_x = { "encoding", "fileformat", "filetype" }, + lualine_y = { "progress" }, + lualine_z = { "location" }, + }, + inactive_sections = { + lualine_a = {}, + lualine_b = {}, + lualine_c = { "filename" }, + lualine_x = { "location" }, + lualine_y = {}, + lualine_z = {}, + }, + tabline = {}, + extensions = {}, +}) diff --git a/etc/nvim/lua/plugins/manilo.lua b/etc/nvim/lua/plugins/manilo.lua new file mode 100644 index 0000000..097cea8 --- /dev/null +++ b/etc/nvim/lua/plugins/manilo.lua @@ -0,0 +1,256 @@ +local lush = require('lush') +local hsl = lush.hsl + +local colors = { + none = "NONE", + bg = "#222424", -- nvim bg + fg = "#B9BFCA", -- fg color (text) + fg_gutter = "#3b415c", + black = "#393b44", + gray = "#353B45", + red = "#CF637E", + green = "#AACE8D", + yellow = "#dbc074", + blue = "#90C7F4", + magenta = "#D59EE6", + cyan = "#73D2D4", + white = "#dfdfe0", + orange = "#F4A261", + pink = "#D67AD2", + black_br = "#7f8c98", + red_br = "#E68991", + green_br = "#95C270", + yellow_br = "#FFE37E", + blue_br = "#84CEE4", + magenta_br = "#B8A1E3", + cyan_br = "#70F3FF", + white_br = "#FDEBC3", + orange_br = "#F8B58C", + pink_br = "#DF97DB", + comment = "#526175", +} + +---@diagnostic disable: undefined-global +local theme = lush(function() + return { + -- The following are all the Neovim default highlight groups from the docs + -- as of 0.5.0-nightly-446, to aid your theme creation. Your themes should + -- probably style all of these at a bare minimum. + -- + -- Referenced/linked groups must come before being referenced/lined, + -- so the order shown ((mostly) alphabetical) is likely + -- not the order you will end up with. + -- + -- You can uncomment these and leave them empty to disable any + -- styling for that group (meaning they mostly get styled as Normal) + -- or leave them commented to apply vims default colouring or linking. + + Comment { fg = colors.comment }, -- any comment + -- ColorColumn { }, -- used for the columns set with 'colorcolumn' + Conceal { fg = colors.black }, -- placeholder characters substituted for concealed text (see 'conceallevel') + Cursor { fg = colors.bg, bg = colors.fg }, -- character under the cursor + lCursor { fg = colors.bg, bg = colors.fg }, -- the character under the cursor when |language-mapping| is used (see 'guicursor') + -- CursorIM { }, -- like Cursor, but used when in IME mode |CursorIM| + -- CursorColumn { }, -- Screen-column at the cursor, when 'cursorcolumn' is set. + -- CursorLine { }, -- Screen-line at the cursor, when 'cursorline' is set. Low-priority if foreground (ctermfg OR guifg) is not set. + Directory { fg = colors.blue }, -- directory names (and other special names in listings) + DiffAdd { fg = colors.blue }, -- diff mode: Added line |diff.txt| + DiffChange { fg = colors.yellow }, -- diff mode: Changed line |diff.txt| + DiffDelete { fg = colors.red }, -- diff mode: Deleted line |diff.txt| + DiffText { fg = colors.blue }, -- diff mode: Changed text within a changed line |diff.txt| + EndOfBuffer { fg = colors.bg }, -- filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|. + -- TermCursor { }, -- cursor in a focused terminal + -- TermCursorNC { }, -- cursor in an unfocused terminal + -- ErrorMsg { }, -- error messages on the command line + VertSplit { fg = colors.black }, -- the column separating vertically split windows + Folded { fg = colors.blue, bg = colors.fg_gutter }, -- line used for closed folds + FoldColumn { fg = colors.comment, bg = colors.bg }, -- 'foldcolumn' + -- SignColumn { }, -- column where |signs| are displayed + IncSearch { fg = colors.black, bg = colors.cyan }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c" + Substitute { fg = colors.black, bg = colors.red }, -- |:substitute| replacement text highlighting + LineNr { fg = colors.fg_gutter }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set. + -- CursorLineNr { fg = colors.}, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line. + MatchParen { fg = colors.orange }, -- The character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt| + -- ModeMsg { }, -- 'showmode' message (e.g., "-- INSERT -- ") + -- MsgArea { }, -- Area for messages and cmdline + -- MsgSeparator { }, -- Separator for scrolled messages, `msgsep` flag of 'display' + -- MoreMsg { }, -- |more-prompt| + -- NonText { }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|. + Normal { fg = colors.fg }, -- normal text + -- NormalFloat { }, -- Normal text in floating windows. + -- NormalNC { }, -- normal text in non-current windows + -- Pmenu { }, -- Popup menu: normal item. + -- PmenuSel { }, -- Popup menu: selected item. + -- PmenuSbar { }, -- Popup menu: scrollbar. + -- PmenuThumb { }, -- Popup menu: Thumb of the scrollbar. + -- Question { }, -- |hit-enter| prompt and yes/no questions + -- QuickFixLine { }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there. + -- Search { }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out. + -- SpecialKey { }, -- Unprintable characters: text displayed differently from what it really is. But not 'listchars' whitespace. |hl-Whitespace| + -- SpellBad { }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise. + -- SpellCap { }, -- Word that should start with a capital. |spell| Combined with the highlighting used otherwise. + -- SpellLocal { }, -- Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise. + -- SpellRare { }, -- Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise. + -- StatusLine { }, -- status line of current window + -- StatusLineNC { }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window. + -- TabLine { }, -- tab pages line, not active tab page label + -- TabLineFill { }, -- tab pages line, where there are no labels + -- TabLineSel { }, -- tab pages line, active tab page label + -- Title { }, -- titles for output from ":set all", ":autocmd" etc. + -- Visual { }, -- Visual mode selection + -- VisualNOS { }, -- Visual mode selection when vim is "Not Owning the Selection". + -- WarningMsg { }, -- warning messages + -- Whitespace { }, -- "nbsp", "space", "tab" and "trail" in 'listchars' + -- WildMenu { }, -- current match in 'wildmenu' completion + + -- These groups are not listed as default vim groups, + -- but they are defacto standard group names for syntax highlighting. + -- commented out groups should chain up to their "preferred" group by + -- default, + -- Uncomment and edit if you want more specific syntax highlighting. + + -- Constant { }, -- (preferred) any constant + -- String { }, -- a string constant: "this is a string" + -- Character { }, -- a character constant: 'c', '\n' + -- Number { }, -- a number constant: 234, 0xff + -- Boolean { }, -- a boolean constant: TRUE, false + -- Float { }, -- a floating point constant: 2.3e10 + + -- Identifier { }, -- (preferred) any variable name + -- Function { }, -- function name (also: methods for classes) + + -- Statement { }, -- (preferred) any statement + -- Conditional { }, -- if, then, else, endif, switch, etc. + -- Repeat { }, -- for, do, while, etc. + -- Label { }, -- case, default, etc. + -- Operator { }, -- "sizeof", "+", "*", etc. + -- Keyword { }, -- any other keyword + -- Exception { }, -- try, catch, throw + + -- PreProc { }, -- (preferred) generic Preprocessor + -- Include { }, -- preprocessor #include + -- Define { }, -- preprocessor #define + -- Macro { }, -- same as Define + -- PreCondit { }, -- preprocessor #if, #else, #endif, etc. + + -- Type { }, -- (preferred) int, long, char, etc. + -- StorageClass { }, -- static, register, volatile, etc. + -- Structure { }, -- struct, union, enum, etc. + -- Typedef { }, -- A typedef + + -- Special { }, -- (preferred) any special symbol + -- SpecialChar { }, -- special character in a constant + -- Tag { }, -- you can use CTRL-] on this + -- Delimiter { }, -- character that needs attention + -- SpecialComment { }, -- special things inside a comment + -- Debug { }, -- debugging statements + + -- Underlined { gui = "underline" }, -- (preferred) text that stands out, HTML links + -- Bold { gui = "bold" }, + -- Italic { gui = "italic" }, + + -- ("Ignore", below, may be invisible...) + -- Ignore { }, -- (preferred) left blank, hidden |hl-Ignore| + + -- Error { }, -- (preferred) any erroneous construct + + -- Todo { }, -- (preferred) anything that needs extra attention; mostly the keywords TODO FIXME and XXX + + -- These groups are for the native LSP client. Some other LSP clients may + -- use these groups, or use their own. Consult your LSP client's + -- documentation. + + -- LspReferenceText { }, -- used for highlighting "text" references + -- LspReferenceRead { }, -- used for highlighting "read" references + -- LspReferenceWrite { }, -- used for highlighting "write" references + + -- LspDiagnosticsDefaultError { }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline) + -- LspDiagnosticsDefaultWarning { }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline) + -- LspDiagnosticsDefaultInformation { }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline) + -- LspDiagnosticsDefaultHint { }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline) + + -- LspDiagnosticsVirtualTextError { }, -- Used for "Error" diagnostic virtual text + -- LspDiagnosticsVirtualTextWarning { }, -- Used for "Warning" diagnostic virtual text + -- LspDiagnosticsVirtualTextInformation { }, -- Used for "Information" diagnostic virtual text + -- LspDiagnosticsVirtualTextHint { }, -- Used for "Hint" diagnostic virtual text + + -- LspDiagnosticsUnderlineError { }, -- Used to underline "Error" diagnostics + -- LspDiagnosticsUnderlineWarning { }, -- Used to underline "Warning" diagnostics + -- LspDiagnosticsUnderlineInformation { }, -- Used to underline "Information" diagnostics + -- LspDiagnosticsUnderlineHint { }, -- Used to underline "Hint" diagnostics + + -- LspDiagnosticsFloatingError { }, -- Used to color "Error" diagnostic messages in diagnostics float + -- LspDiagnosticsFloatingWarning { }, -- Used to color "Warning" diagnostic messages in diagnostics float + -- LspDiagnosticsFloatingInformation { }, -- Used to color "Information" diagnostic messages in diagnostics float + -- LspDiagnosticsFloatingHint { }, -- Used to color "Hint" diagnostic messages in diagnostics float + + -- LspDiagnosticsSignError { }, -- Used for "Error" signs in sign column + -- LspDiagnosticsSignWarning { }, -- Used for "Warning" signs in sign column + -- LspDiagnosticsSignInformation { }, -- Used for "Information" signs in sign column + -- LspDiagnosticsSignHint { }, -- Used for "Hint" signs in sign column + + -- LspCodeLens { }, -- Used to color the virtual text of the codelens + + -- These groups are for the neovim tree-sitter highlights. + -- As of writing, tree-sitter support is a WIP, group names may change. + -- By default, most of these groups link to an appropriate Vim group, + -- TSError -> Error for example, so you do not have to define these unless + -- you explicitly want to support Treesitter's improved syntax awareness. + + -- TSAnnotation { }; -- For C++/Dart attributes, annotations that can be attached to the code to denote some kind of meta information. + -- TSAttribute { }; -- (unstable) TODO: docs + -- TSBoolean { }; -- For booleans. + -- TSCharacter { }; -- For characters. + -- TSComment { }; -- For comment blocks. + -- TSConstructor { }; -- For constructor calls and definitions: ` { }` in Lua, and Java constructors. + -- TSConditional { }; -- For keywords related to conditionnals. + -- TSConstant { }; -- For constants + -- TSConstBuiltin { }; -- For constant that are built in the language: `nil` in Lua. + -- TSConstMacro { }; -- For constants that are defined by macros: `NULL` in C. + -- TSError { }; -- For syntax/parser errors. + -- TSException { }; -- For exception related keywords. + -- TSField { }; -- For fields. + -- TSFloat { }; -- For floats. + -- TSFunction { }; -- For function (calls and definitions). + -- TSFuncBuiltin { }; -- For builtin functions: `table.insert` in Lua. + -- TSFuncMacro { }; -- For macro defined fuctions (calls and definitions): each `macro_rules` in Rust. + -- TSInclude { }; -- For includes: `#include` in C, `use` or `extern crate` in Rust, or `require` in Lua. + -- TSKeyword { }; -- For keywords that don't fall in previous categories. + -- TSKeywordFunction { }; -- For keywords used to define a fuction. + -- TSLabel { }; -- For labels: `label:` in C and `:label:` in Lua. + -- TSMethod { }; -- For method calls and definitions. + -- TSNamespace { }; -- For identifiers referring to modules and namespaces. + -- TSNone { }; -- TODO: docs + -- TSNumber { }; -- For all numbers + -- TSOperator { }; -- For any operator: `+`, but also `->` and `*` in C. + -- TSParameter { }; -- For parameters of a function. + -- TSParameterReference { }; -- For references to parameters of a function. + -- TSProperty { }; -- Same as `TSField`. + -- TSPunctDelimiter { }; -- For delimiters ie: `.` + -- TSPunctBracket { }; -- For brackets and parens. + -- TSPunctSpecial { }; -- For special punctutation that does not fall in the catagories before. + -- TSRepeat { }; -- For keywords related to loops. + -- TSString { }; -- For strings. + -- TSStringRegex { }; -- For regexes. + -- TSStringEscape { }; -- For escape characters within a string. + -- TSSymbol { }; -- For identifiers referring to symbols or atoms. + -- TSType { }; -- For types. + -- TSTypeBuiltin { }; -- For builtin types. + -- TSVariable { }; -- Any variable name that does not have another highlight. + -- TSVariableBuiltin { }; -- Variable names that are defined by the languages, like `this` or `self`. + + -- TSTag { }; -- Tags like html tag names. + -- TSTagDelimiter { }; -- Tag delimiter like `<` `>` `/` + -- TSText { }; -- For strings considered text in a markup language. + -- TSEmphasis { }; -- For text to be represented with emphasis. + -- TSUnderline { }; -- For text to be represented with an underline. + -- TSStrike { }; -- For strikethrough text. + -- TSTitle { }; -- Text that is part of a title. + -- TSLiteral { }; -- Literal text. + -- TSURI { }; -- Any URI like a link or email. + + } +end) + +-- return our parsed theme for extension or use else where. +return theme diff --git a/etc/nvim/lua/plugins/treesitter.lua b/etc/nvim/lua/plugins/treesitter.lua new file mode 100644 index 0000000..226ee4e --- /dev/null +++ b/etc/nvim/lua/plugins/treesitter.lua @@ -0,0 +1,9 @@ +require("nvim-treesitter.configs").setup({ + ensure_installed = "maintained", + ignore_install = {}, + highlight = { + enable = true, + disable = {}, + additional_vim_regex_highlighting = false, + }, +}) diff --git a/etc/polybar/config b/etc/polybar/config new file mode 100644 index 0000000..783b98e --- /dev/null +++ b/etc/polybar/config @@ -0,0 +1,175 @@ +;========================================================== +; +; +; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗ +; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗ +; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝ +; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗ +; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║ +; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ +; +; +; To learn more about how to configure Polybar +; go to https://github.com/polybar/polybar +; +; The README contains a lot of information +; +;========================================================== + +[colors] +background = ${xrdb:background:#282828} +background-alt = ${xrdb:color8:#928374} +foreground = ${xrdb:foreground:#ebdbb2} +primary = ${xrdb:color13:#d3869b} +secondary = ${xrdb:color9:#fb4934} +alert = ${xrdb:color1:#cc241d} +disabled = ${xrdb:color8:#928374} + +[bar/megalo] +width = 98.75% +height = 18 +radius = 0 + +offset-y = 0.75% +offset-x = 0.65% + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 3 + +border-size = 4 +border-color = #3c3836 + +padding-left = 0 +padding-right = 2 + +module-margin = 1 + +separator = | +separator-foreground = ${colors.disabled} + +font-0 = JetBrains Mono Nerd Font:pixelsize=11;2 + +modules-left = bspwm +modules-center = xwindow +modules-right = pulseaudio memory cpu temperature date + +cursor-click = pointer +cursor-scroll = ns-resize + +enable-ipc = true + +tray-position = right + +wm-restack = bspwm + +[module/bspwm] +type = internal/bspwm + +enable-scroll = false + +label-focused = %index% +label-focused-background = ${colors.background-alt} +label-focused-underline= ${colors.primary} +label-focused-padding = 1 + +label-occupied = %index% +label-occupied-padding = 1 + +label-urgent = %index%! +label-urgent-background = ${colors.alert} +label-urgent-padding = 2 + +label-empty = %index% +label-empty-foreground = ${colors.background-alt} +label-empty-padding = 1 + +[module/cpu] +type = internal/cpu +interval = 2 +format-prefix = "CPU " +format-prefix-foreground = ${colors.primary} +label = %percentage:2%% + +[module/date] +type = internal/date +interval = 1 + +date = %H:%M +date-alt = %Y-%m-%d %H:%M:%S + +label = %date% +label-foreground = ${colors.primary} + +[module/ewmh] +type = internal/xworkspaces + +pin-workspaces = true + +enable-click = false + +enable-scroll = false + +label-active = %index% +label-active-background = ${colors.background-alt} +label-active-underline= ${colors.primary} +label-active-padding = 1 + +label-occupied = %index% +label-occupied-padding = 1 + +label-urgent = %index%! +label-urgent-background = ${colors.alert} +label-urgent-padding = 2 + +label-empty = %index% +label-empty-foreground = ${colors.background-alt} +label-empty-padding = 1 + +[module/pulseaudio] +type = internal/pulseaudio + +format-volume-prefix = "VOL " +format-volume-prefix-foreground = ${colors.primary} +format-volume = + +label-volume = %percentage%% + +label-muted = muted +label-muted-foreground = ${colors.disabled} + +[module/memory] +type = internal/memory +interval = 2 +format-prefix = "RAM " +format-prefix-foreground = ${colors.primary} +label = %percentage_used:2%% + +[module/temperature] +type = internal/temperature +thermal-zone = 0 +warn-temperature = 60 + +format =