add base dotfiles
This commit is contained in:
commit
968449de49
31 changed files with 2121 additions and 0 deletions
21
.config/bspwm/bspwmrc
Executable file
21
.config/bspwm/bspwmrc
Executable file
|
@ -0,0 +1,21 @@
|
||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
pgrep -x sxhkd > /dev/null || sxhkd &
|
||||||
|
|
||||||
|
bspc monitor -d 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
||||||
|
|
||||||
|
bspc config border_width 3
|
||||||
|
bspc config normal_border_color "#919191"
|
||||||
|
bspc config focused_border_color "#FF6054"
|
||||||
|
bspc config presel_feedback_color "#CCCCCC"
|
||||||
|
bspc config window_gap 25
|
||||||
|
|
||||||
|
bspc config split_ratio 0.5
|
||||||
|
bspc config borderless_monocle true
|
||||||
|
bspc config gapless_monocle true
|
||||||
|
|
||||||
|
bspc config pointer_follows_monitor true
|
||||||
|
bspc config pointer_follows_focus false
|
||||||
|
bspc config focus_follows_pointer true
|
||||||
|
|
||||||
|
exec .local/bin/startup
|
146
.config/eww/eww.scss
Normal file
146
.config/eww/eww.scss
Normal file
|
@ -0,0 +1,146 @@
|
||||||
|
// General styling
|
||||||
|
|
||||||
|
* {
|
||||||
|
all: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #22242b;
|
||||||
|
box-shadow: 0 2px 3px 2px #06060b;
|
||||||
|
border-radius: 16px;
|
||||||
|
min-height: 10px;
|
||||||
|
min-width: 70px;
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Main bar styling
|
||||||
|
|
||||||
|
.main {
|
||||||
|
background-color: #0e1419;
|
||||||
|
color: #e5e1cf;
|
||||||
|
font-family: "Noto Sans";
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.leftwidgets {
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-right: 50px;
|
||||||
|
|
||||||
|
button {
|
||||||
|
margin: 0px 5px;
|
||||||
|
border-color: #0e1419;
|
||||||
|
border-width: 0px;
|
||||||
|
padding-left: 0em;
|
||||||
|
padding-right: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.occupied {
|
||||||
|
color: #919191;
|
||||||
|
}
|
||||||
|
|
||||||
|
.focused {
|
||||||
|
color: #ff6054;
|
||||||
|
}
|
||||||
|
|
||||||
|
.empty {
|
||||||
|
color: #444444;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.rightwidgets {
|
||||||
|
margin: 0px 10px 0px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-module__icon {
|
||||||
|
margin: 0px 5px 0px 0px;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.player {
|
||||||
|
color: #e5e1cf;
|
||||||
|
}
|
||||||
|
|
||||||
|
.player__container {
|
||||||
|
padding-left: 7px;
|
||||||
|
padding-right: 7px;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.player__container:hover {
|
||||||
|
background-color: hsla(210, 25%, 25%, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.power__text {
|
||||||
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brightness__label {
|
||||||
|
margin-top: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brightness__bar {
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brightness__bar trough highlight {
|
||||||
|
background-image: linear-gradient(to right, #e4c9af 30%, #f2cdcd 50%, #e0b089 100% *50);
|
||||||
|
border-radius: 10px;
|
||||||
|
min-width: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.volume__bar {
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.volume__bar trough highlight {
|
||||||
|
background-image: linear-gradient(to right, #f2525d 30%, #cc5a61 50%, #c93640 100% *50);
|
||||||
|
border-radius: 10px;
|
||||||
|
min-width: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.volume__label {
|
||||||
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timedate__button {
|
||||||
|
padding: 3px 9px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timedate__button:hover {
|
||||||
|
background-color: hsla(210, 25%, 25%, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Song card styling
|
||||||
|
|
||||||
|
.songcard {
|
||||||
|
background-color: #0e1419;
|
||||||
|
color: #e5e1cf;
|
||||||
|
font-family: "Noto Sans";
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.songcard__title {
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 20px;
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.songcard__artist {
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-top: 0px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
color: #919191;
|
||||||
|
}
|
||||||
|
|
||||||
|
.songcard__controls {
|
||||||
|
margin-top: 0px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.songcard__button {
|
||||||
|
margin: 0px 3px;
|
||||||
|
}
|
223
.config/eww/eww.yuck
Normal file
223
.config/eww/eww.yuck
Normal file
|
@ -0,0 +1,223 @@
|
||||||
|
;; Global variables
|
||||||
|
(deflisten w1 "scripts/workspaces 1")
|
||||||
|
(deflisten w2 "scripts/workspaces 2")
|
||||||
|
(deflisten w3 "scripts/workspaces 3")
|
||||||
|
(deflisten w4 "scripts/workspaces 4")
|
||||||
|
(deflisten w5 "scripts/workspaces 5")
|
||||||
|
(deflisten w6 "scripts/workspaces 6")
|
||||||
|
(deflisten w7 "scripts/workspaces 7")
|
||||||
|
(deflisten w8 "scripts/workspaces 8")
|
||||||
|
(deflisten w9 "scripts/workspaces 9")
|
||||||
|
(deflisten w10 "scripts/workspaces 10")
|
||||||
|
(deflisten w11 "scripts/workspaces 11")
|
||||||
|
(deflisten w12 "scripts/workspaces 12")
|
||||||
|
(deflisten w13 "scripts/workspaces 13")
|
||||||
|
(deflisten w14 "scripts/workspaces 14")
|
||||||
|
(deflisten w15 "scripts/workspaces 15")
|
||||||
|
(deflisten w16 "scripts/workspaces 16")
|
||||||
|
(deflisten w17 "scripts/workspaces 17")
|
||||||
|
(deflisten w18 "scripts/workspaces 18")
|
||||||
|
(deflisten w19 "scripts/workspaces 19")
|
||||||
|
(deflisten w20 "scripts/workspaces 20")
|
||||||
|
|
||||||
|
(deflisten player_listen :initial '{"show": "no", "content": ""}' "scripts/player")
|
||||||
|
(deflisten player :initial '{"content": "TEST"}' "scripts/player")
|
||||||
|
|
||||||
|
(deflisten songcardtitle :initial '(label :class "songcard__title" :text "None Playing")'
|
||||||
|
"scripts/songcardtitle")
|
||||||
|
(deflisten songcardartist :initial '(label :class "songcard__artist" :text ".")'
|
||||||
|
"scripts/songcardartist")
|
||||||
|
|
||||||
|
(defpoll songcard_button :interval "1s" "scripts/songcardplayrender")
|
||||||
|
(defpoll wifi_label :interval "1s" "scripts/wifi")
|
||||||
|
(defpoll volume_level :interval "1s" "scripts/volume")
|
||||||
|
(defpoll volume_label :initial '{"icon": "", content: "0"}'
|
||||||
|
:interval "1s"
|
||||||
|
"scripts/volumelabel")
|
||||||
|
(defpoll brightness_level :interval "1s" "scripts/brightness")
|
||||||
|
(defpoll brightness_label :interval "1s" "scripts/brightnesslabel")
|
||||||
|
(defpoll battery_level :interval "15s" "scripts/battery")
|
||||||
|
(defpoll currtime :interval "1s" "scripts/currtime")
|
||||||
|
|
||||||
|
(defvar songcard_reveal false)
|
||||||
|
(defvar brightness_reveal false)
|
||||||
|
(defvar volume_reveal false)
|
||||||
|
(defvar timedate_reveal false)
|
||||||
|
|
||||||
|
;; Main widget
|
||||||
|
(defwindow main
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "-2px"
|
||||||
|
:y "15px"
|
||||||
|
:width "98%"
|
||||||
|
:height "30px"
|
||||||
|
:anchor "top center")
|
||||||
|
:stacking "bg"
|
||||||
|
:reserve (struts :distance "50px" :side "top")
|
||||||
|
:windowtype "dialog"
|
||||||
|
:wm-ignore false
|
||||||
|
(container))
|
||||||
|
|
||||||
|
;; The main container for all the widgets
|
||||||
|
(defwidget container []
|
||||||
|
(centerbox :orientation "horizontal"
|
||||||
|
:space-evenly true
|
||||||
|
(leftwidgets)
|
||||||
|
(middlewidgets)
|
||||||
|
(rightwidgets)))
|
||||||
|
|
||||||
|
;; Left widgets
|
||||||
|
(defwidget leftwidgets []
|
||||||
|
(box :spacing 4
|
||||||
|
:orientation "horizontal"
|
||||||
|
:halign "start"
|
||||||
|
:valign "center"
|
||||||
|
:class "leftwidgets"
|
||||||
|
(literal :content w1)
|
||||||
|
(literal :content w2)
|
||||||
|
(literal :content w3)
|
||||||
|
(literal :content w4)
|
||||||
|
(literal :content w5)
|
||||||
|
(literal :content w6)
|
||||||
|
(literal :content w7)
|
||||||
|
(literal :content w8)
|
||||||
|
(literal :content w9)
|
||||||
|
(literal :content w10)
|
||||||
|
(literal :content w11)
|
||||||
|
(literal :content w12)
|
||||||
|
(literal :content w13)
|
||||||
|
(literal :content w14)
|
||||||
|
(literal :content w15)
|
||||||
|
(literal :content w16)
|
||||||
|
(literal :content w17)
|
||||||
|
(literal :content w18)
|
||||||
|
(literal :content w19)
|
||||||
|
(literal :content w20)))
|
||||||
|
|
||||||
|
;; Middle widgets
|
||||||
|
(defwidget middlewidgets []
|
||||||
|
(player))
|
||||||
|
|
||||||
|
;; Spotify widget
|
||||||
|
(defwidget player []
|
||||||
|
(button :onclick "scripts/songcardshow"
|
||||||
|
:class "player__container"
|
||||||
|
(icon-module :class "player"
|
||||||
|
:icon ""
|
||||||
|
:visible {player_listen.show == "yes"}
|
||||||
|
(literal :content {player_listen.content}))))
|
||||||
|
|
||||||
|
;; Right widgets
|
||||||
|
(defwidget rightwidgets []
|
||||||
|
(box :class "rightwidgets"
|
||||||
|
:orientation "horizontal"
|
||||||
|
:halign "end"
|
||||||
|
:valign "center"
|
||||||
|
:space-evenly "false"
|
||||||
|
:spacing 10
|
||||||
|
(wifi)
|
||||||
|
(brightness)
|
||||||
|
(volume)
|
||||||
|
(power)
|
||||||
|
(timedate)))
|
||||||
|
|
||||||
|
;; A widget that displays the current wifi SSID
|
||||||
|
(defwidget wifi []
|
||||||
|
(icon-module :icon "↑"
|
||||||
|
(literal :content {wifi_label})))
|
||||||
|
|
||||||
|
;; A widget for tracking brightness
|
||||||
|
(defwidget brightness []
|
||||||
|
(eventbox :onhover "eww update brightness_reveal=true"
|
||||||
|
:onhoverlost "eww update brightness_reveal=false"
|
||||||
|
(icon-module :icon "☼"
|
||||||
|
(literal :content {brightness_label})
|
||||||
|
(revealer :transition "slideleft"
|
||||||
|
:reveal brightness_reveal
|
||||||
|
:duration "350ms"
|
||||||
|
(scale :class "brightness__bar"
|
||||||
|
:orientation "horizontal"
|
||||||
|
:value brightness_level
|
||||||
|
:min 0
|
||||||
|
:max 100
|
||||||
|
:onchange "brightnessctl set {}%")))))
|
||||||
|
|
||||||
|
;; A widget for tracking volume
|
||||||
|
(defwidget volume []
|
||||||
|
(eventbox :onhover "eww update volume_reveal=true"
|
||||||
|
:onhoverlost "eww update volume_reveal=false"
|
||||||
|
(icon-module :icon {volume_label.icon}
|
||||||
|
(literal :content {volume_label.content})
|
||||||
|
(revealer :transition "slideleft"
|
||||||
|
:reveal volume_reveal
|
||||||
|
:duration "350ms"
|
||||||
|
(scale :class "volume__bar"
|
||||||
|
:orientation "horizontal"
|
||||||
|
:value volume_level
|
||||||
|
:min 0
|
||||||
|
:max 100
|
||||||
|
:onchange "pamixer --set-volume $(printf \"%.0f\" \"{}\")")))))
|
||||||
|
|
||||||
|
;; A widget for tracking battery
|
||||||
|
(defwidget power []
|
||||||
|
(icon-module :class "power"
|
||||||
|
:icon "⏻"
|
||||||
|
:visible true
|
||||||
|
(literal :content {battery_level})))
|
||||||
|
|
||||||
|
;; A widget for tracking time and date
|
||||||
|
(defwidget timedate []
|
||||||
|
(box :class "timedate"
|
||||||
|
:orientation "horizontal"
|
||||||
|
:space-evenly false
|
||||||
|
:valign "center"
|
||||||
|
:halign "end"
|
||||||
|
(button :class "timedate__button"
|
||||||
|
:onclick "scripts/boolflip timedate_reveal"
|
||||||
|
(literal :content {currtime}))))
|
||||||
|
|
||||||
|
|
||||||
|
;; A module with an icon attached
|
||||||
|
(defwidget icon-module [icon ?class ?visible]
|
||||||
|
(box :class "${class} icon-module"
|
||||||
|
:orientation "horizontal"
|
||||||
|
:halign "end"
|
||||||
|
:valign "center"
|
||||||
|
:space-evenly false
|
||||||
|
:visible {visible ?: true}
|
||||||
|
(label :class "icon-module__icon" :text "${icon}")
|
||||||
|
(children)))
|
||||||
|
|
||||||
|
; The song card widget
|
||||||
|
(defwindow songcard
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "0px"
|
||||||
|
:y "70px"
|
||||||
|
:width "350px"
|
||||||
|
:height "50px"
|
||||||
|
:anchor "top center")
|
||||||
|
:stacking "fg"
|
||||||
|
:reserve (struts :distance "50px" :side "top")
|
||||||
|
:windowtype "dialog"
|
||||||
|
:wm-ignore false
|
||||||
|
(box :orientation "vertical"
|
||||||
|
;; song metadata
|
||||||
|
(box :orientation "vertical"
|
||||||
|
:halign "center"
|
||||||
|
:valign "top"
|
||||||
|
(literal :content {songcardtitle})
|
||||||
|
(literal :content {songcardartist})
|
||||||
|
;; song controls
|
||||||
|
(centerbox :class "songcard__controls"
|
||||||
|
:orientation "horizontal"
|
||||||
|
:valign "center"
|
||||||
|
:halign "center"
|
||||||
|
(button :onclick "scripts/songback"
|
||||||
|
:class "songcard__button"
|
||||||
|
(image :path "img/musicback.png" :image-width 20 :image-height 20))
|
||||||
|
(button :onclick "scripts/songplay"
|
||||||
|
:class "songcard__button"
|
||||||
|
(literal :content {songcard_button}))
|
||||||
|
(button :onclick "scripts/songnext"
|
||||||
|
:class "songcard__button"
|
||||||
|
(image :path "img/musicnext.png" :image-width 20 :image-height 20))))))
|
3
.config/eww/scripts/battery
Executable file
3
.config/eww/scripts/battery
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
echo "(label :class \"power__text\" :text \"$(cat /sys/class/power_supply/BAT0/capacity)%\")"
|
10
.config/eww/scripts/boolflip
Executable file
10
.config/eww/scripts/boolflip
Executable file
|
@ -0,0 +1,10 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
var="$1"
|
||||||
|
val=`eww get ${var}`
|
||||||
|
|
||||||
|
if [ "$val" == "true" ]; then
|
||||||
|
eww update "$var"=false
|
||||||
|
else
|
||||||
|
eww update "$var"=true
|
||||||
|
fi
|
9
.config/eww/scripts/brightness
Executable file
9
.config/eww/scripts/brightness
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
level=$(brightnessctl get)
|
||||||
|
max=$(brightnessctl max)
|
||||||
|
|
||||||
|
raw_percent=$(echo "scale=2 ; $level / $max" | bc)
|
||||||
|
percent=$(echo "$raw_percent*100" | bc)
|
||||||
|
final_percent=${percent%.*}
|
||||||
|
echo "$final_percent"
|
9
.config/eww/scripts/brightnesslabel
Executable file
9
.config/eww/scripts/brightnesslabel
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
level=$(brightnessctl get)
|
||||||
|
max=$(brightnessctl max)
|
||||||
|
|
||||||
|
raw_percent=$(echo "scale=2 ; $level / $max" | bc)
|
||||||
|
percent=$(echo "$raw_percent*100" | bc)
|
||||||
|
final_percent=${percent%.*}
|
||||||
|
echo "(label :class \"brightness__label\" :text \"$final_percent%\")"
|
12
.config/eww/scripts/currtime
Executable file
12
.config/eww/scripts/currtime
Executable file
|
@ -0,0 +1,12 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
var="timedate_reveal"
|
||||||
|
val=`eww get ${var}`
|
||||||
|
|
||||||
|
if [ "$val" == true ]; then
|
||||||
|
time=`date +"%F %T"`
|
||||||
|
echo "(label :text \"$time\")"
|
||||||
|
else
|
||||||
|
time=`date +"%R"`
|
||||||
|
echo "(label :text \"$time\")"
|
||||||
|
fi
|
17
.config/eww/scripts/player
Executable file
17
.config/eww/scripts/player
Executable file
|
@ -0,0 +1,17 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
echo "{\"show\": \"no\", \"content\": \"\"}"
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
line=$(spt playback --status -f "%s:%a - %t" 2> /dev/null)
|
||||||
|
IFS=':' read -ra ELS <<< "$line"
|
||||||
|
button=${ELS[0]}
|
||||||
|
content=${ELS[1]}
|
||||||
|
if [ "$button" == "▶" ]; then
|
||||||
|
echo "{\"show\": \"yes\", \"content\": \"(label :text \\\"$content\\\")\"}"
|
||||||
|
else
|
||||||
|
echo "{\"show\": \"no\", \"content\": \"\"}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
done
|
3
.config/eww/scripts/songback
Executable file
3
.config/eww/scripts/songback
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
spt playback --previous
|
9
.config/eww/scripts/songcardartist
Executable file
9
.config/eww/scripts/songcardartist
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
echo "(label :class \"songcard__artist\" :text \".\")"
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
content=$(spt playback --status -f "%a" 2> /dev/null)
|
||||||
|
echo "(label :class \"songcard__artist\" :text \"${content}\")"
|
||||||
|
sleep 1
|
||||||
|
done
|
8
.config/eww/scripts/songcardplayrender
Executable file
8
.config/eww/scripts/songcardplayrender
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
button=$(spt playback --status -f "%s" 2>/dev/null)
|
||||||
|
if [ "$button" == "▶" ]; then
|
||||||
|
echo "(image :path \"img/musicpause.png\" :image-width 40 :image-height 40)"
|
||||||
|
else
|
||||||
|
echo "(image :path \"img/musicplay.png\" :image-width 40 :image-height 40)"
|
||||||
|
fi
|
11
.config/eww/scripts/songcardshow
Executable file
11
.config/eww/scripts/songcardshow
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
show=$(eww get songcard_reveal)
|
||||||
|
|
||||||
|
if [ "$show" == "false" ]; then
|
||||||
|
eww open songcard && eww update songcard_reveal=true
|
||||||
|
else
|
||||||
|
eww close songcard && eww update songcard_reveal=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
./boolflip songcard_reveal
|
9
.config/eww/scripts/songcardtitle
Executable file
9
.config/eww/scripts/songcardtitle
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
echo "(label :class \"songcard__title\" :text \"None Playing\")"
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
content=$(spt playback --status -f "%t" 2> /dev/null)
|
||||||
|
echo "(label :class \"songcard__title\" :text \"${content}\")"
|
||||||
|
sleep 1
|
||||||
|
done
|
3
.config/eww/scripts/songnext
Executable file
3
.config/eww/scripts/songnext
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
spt playback --next
|
3
.config/eww/scripts/songplay
Executable file
3
.config/eww/scripts/songplay
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
spt playback --toggle
|
9
.config/eww/scripts/volume
Executable file
9
.config/eww/scripts/volume
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
raw_percent=$(pamixer --get-volume-human)
|
||||||
|
if [ "$raw_percent" == "muted" ]; then
|
||||||
|
echo "0"
|
||||||
|
else
|
||||||
|
percent=$(echo "$raw_percent" | sed 's/[^0-9]*//g')
|
||||||
|
echo "$percent"
|
||||||
|
fi
|
20
.config/eww/scripts/volumelabel
Executable file
20
.config/eww/scripts/volumelabel
Executable file
|
@ -0,0 +1,20 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
raw_percent=$(pamixer --get-volume-human)
|
||||||
|
if [ "$raw_percent" == "muted" ]; then
|
||||||
|
echo "{\"icon\": \"\", \"content\": \"(label :class \\\"volume__label\\\" :text \\\"muted\\\")\"}"
|
||||||
|
else
|
||||||
|
percent=$(echo "$raw_percent" | sed 's/[^0-9]*//g')
|
||||||
|
#if [ "$percent" -gt 66 ]; then
|
||||||
|
# icon=""
|
||||||
|
#elif [ "$percent" -gt 33 ]; then
|
||||||
|
# icon=""
|
||||||
|
#elif [ "$percent" -gt 0 ]; then
|
||||||
|
# icon=""
|
||||||
|
#else
|
||||||
|
# icon=""
|
||||||
|
#fi
|
||||||
|
icon=""
|
||||||
|
volume="$percent%"
|
||||||
|
echo "{\"icon\": \"${icon}\", \"content\": \"(label :class \\\"volume__label\\\" :text \\\"${volume}\\\")\"}"
|
||||||
|
fi
|
8
.config/eww/scripts/wifi
Executable file
8
.config/eww/scripts/wifi
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
wifi=`nmcli c show --active | tail -n 1 | sed 's/ .*//g'`
|
||||||
|
if [ ${#wifi} -gt 0 ]; then
|
||||||
|
echo "(label :text \"${wifi}\")"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
fi
|
29
.config/eww/scripts/workspaces
Executable file
29
.config/eww/scripts/workspaces
Executable file
|
@ -0,0 +1,29 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Checks if a list ($1) contains an element ($2)
|
||||||
|
contains() {
|
||||||
|
for e in $1; do
|
||||||
|
[ "$e" == "$2" ] && echo 1 && return
|
||||||
|
done
|
||||||
|
echo 0
|
||||||
|
}
|
||||||
|
|
||||||
|
workspaces() {
|
||||||
|
icon=""
|
||||||
|
isfocused=$(bspc query -D -d focused --names | grep -w "$1")
|
||||||
|
isoccupied=$(bspc query -D -d .occupied --names | grep -w "$1")
|
||||||
|
if [ ${#isfocused} -ge 1 ]; then
|
||||||
|
class="focused"
|
||||||
|
elif [ ${#isoccupied} -ge 1 ]; then
|
||||||
|
class="occupied"
|
||||||
|
else
|
||||||
|
class="empty"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "(button :onclick \"bspc desktop -f '^$1'\" :class \"$class\" \"$icon\")"
|
||||||
|
}
|
||||||
|
|
||||||
|
workspaces $1
|
||||||
|
bspc subscribe desktop node_transfer | while read -r _ ; do
|
||||||
|
workspaces $1
|
||||||
|
done
|
301
.config/nvim/UltiSnips/cpp.snippets
Normal file
301
.config/nvim/UltiSnips/cpp.snippets
Normal file
|
@ -0,0 +1,301 @@
|
||||||
|
snippet template "template for comp prog"
|
||||||
|
#include <bits/stdc++.h>
|
||||||
|
using namespace std;
|
||||||
|
int MOD = 1000000007;
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
ios::sync_with_stdio();
|
||||||
|
cin.tie(0);
|
||||||
|
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet if "if statement"
|
||||||
|
if ($1) {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet while "while loop"
|
||||||
|
while ($1) {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet fori "for i" w
|
||||||
|
for (int i = 0; i < $1; i++) {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet forj "for j" w
|
||||||
|
for (int j = 0; j < $1; j++) {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet fork "for k" w
|
||||||
|
for (int k = 0; k < $1; k++) {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet fora "for auto" w
|
||||||
|
for (&auto i : $1) {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet print "print" w
|
||||||
|
cout << $1 << '\n';
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet printv "print vector" w
|
||||||
|
for (int i = 0; i < $1.size(); i++) {
|
||||||
|
cout << $1[i] << '\n';
|
||||||
|
}
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet ins "input string" w
|
||||||
|
string $1;
|
||||||
|
cin >> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet ini "input int" w
|
||||||
|
int $1;
|
||||||
|
cin >> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet viin "input vector int" w
|
||||||
|
int n;
|
||||||
|
cin >> n;
|
||||||
|
vector<int> $1;
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
int a;
|
||||||
|
cin >> a;
|
||||||
|
$1.push_back(a);
|
||||||
|
}
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet vsin "input vector string" w
|
||||||
|
int n;
|
||||||
|
cin >> n;
|
||||||
|
vector<string> $1;
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
string s;
|
||||||
|
cin >> s;
|
||||||
|
$1.push_back(s);
|
||||||
|
}
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet sort "sort iterator" w
|
||||||
|
sort($1.begin(), $1.end());
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet sortr "sort reverse iterator" w
|
||||||
|
sort($1.rbegin(), $1.rend());
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet sortp "sort iterator pains" w
|
||||||
|
sort($1.begin(), $1.end(), [](auto &left, auto& right) {
|
||||||
|
$0
|
||||||
|
});
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet rev "reverse iterator" w
|
||||||
|
reverse($1.begin(), $1.end());
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet sum "sum vector" w
|
||||||
|
accumulate($1.begin(), $1.end(), 0);
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet vec "vector" w
|
||||||
|
vector<$1> $2;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet vvec "vector vector" w
|
||||||
|
vector<vector<$1>> $2;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet vi "vector int" w
|
||||||
|
vector<int> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet vvi "vector vector int" w
|
||||||
|
vector<vector<int>> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet vii "vector pair int" w
|
||||||
|
vector<pair<int, int>> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet vs "vector string" w
|
||||||
|
vector<string> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet vvs "vector vector string" w
|
||||||
|
vector<vector<string>> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet vss "vector pair int" w
|
||||||
|
vector<pair<string,string>> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet vsi "vector pair string int" w
|
||||||
|
vector<pair<string,int>> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet vis "vector pair int string" w
|
||||||
|
vector<pair<int,string>> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet .pb "vector push back" i
|
||||||
|
.push_back($1)$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet os "ordered set" w
|
||||||
|
set<$1> $2;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet osi "ordered set int" w
|
||||||
|
set<int> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet oss "ordered set string" w
|
||||||
|
set<string> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet us "unordered set" w
|
||||||
|
unordered_set<$1> $2;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet usi "unordered set int" w
|
||||||
|
unordered_set<int> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet uss "unordered set string" w
|
||||||
|
unordered_set<string> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet om "ordered map" w
|
||||||
|
map<$1, $2> $3;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet omii "ordered map int int" w
|
||||||
|
map<int, int> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet omss "ordered map int int" w
|
||||||
|
map<string, string> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet omsi "ordered map string int" w
|
||||||
|
map<string, int> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet omis "ordered map int string" w
|
||||||
|
map<int, string> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet um "unordered map" w
|
||||||
|
unordered_map<$1, $2> $3;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet umii "unordered map int int" w
|
||||||
|
unordered_map<int, int> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet umss "unordered map int int" w
|
||||||
|
unordered_map<string, string> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet umsi "unordered map string int" w
|
||||||
|
unordered_map<string, int> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet umis "unordered map int string" w
|
||||||
|
unordered_map<int, string> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet que "queue" w
|
||||||
|
queue<$1> $2;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet qi "queue integer" w
|
||||||
|
queue<int> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet qs "queue string" w
|
||||||
|
queue<string> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet sta "stack" w
|
||||||
|
stack<$1> $2;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet si "stack int" w
|
||||||
|
stack<int> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet ss "stack string" w
|
||||||
|
stack<string> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet pq "priority queue" w
|
||||||
|
priority_queue<$1> $2;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet pqi "priority queue int" w
|
||||||
|
priority_queue<int> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet pqs "priority queue string" w
|
||||||
|
priority_queue<string> $1;
|
||||||
|
$0
|
||||||
|
endsnippet
|
96
.config/nvim/UltiSnips/markdown.snippets
Normal file
96
.config/nvim/UltiSnips/markdown.snippets
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
snippet h1 "h1 header" bA
|
||||||
|
# $0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet h2 "h2 header" bA
|
||||||
|
## $0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet h3 "h3 header" bA
|
||||||
|
### $0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet h4 "h4 header" bA
|
||||||
|
#### $0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet h5 "h5 header" bA
|
||||||
|
##### $0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet h6 "h6 header" bA
|
||||||
|
###### $0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet link "link"
|
||||||
|
[$1]($2)$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet img "image"
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet im "inline math"
|
||||||
|
\$$0\$
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet am "display math"
|
||||||
|
\$\$
|
||||||
|
$0
|
||||||
|
\$\$
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet cb "code block" bA
|
||||||
|
\`\`\`$1
|
||||||
|
$0
|
||||||
|
\`\`\`
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
global !p
|
||||||
|
# A overkill(dirty) table with automatic alignment feature
|
||||||
|
def create_table(snip):
|
||||||
|
# retrieving single line from current string and treat it like tabstops count
|
||||||
|
placeholders_string = snip.buffer[snip.line].strip()
|
||||||
|
rows_amount = int(placeholders_string[0])
|
||||||
|
columns_amount = int(placeholders_string[1])
|
||||||
|
prefix_str = "from vimsnippets import display_width;"
|
||||||
|
# erase current line
|
||||||
|
snip.buffer[snip.line] = ""
|
||||||
|
# create anonymous snippet with expected content and number of tabstops
|
||||||
|
anon_snippet_title = "| "
|
||||||
|
anon_snippet_delimiter = "|"
|
||||||
|
for col in range(1, columns_amount+1):
|
||||||
|
sync_rows = [x*columns_amount+col for x in range(rows_amount+1)]
|
||||||
|
sync_str = ",".join(["t[{0}]".format(x) for x in sync_rows])
|
||||||
|
max_width_str = "max(list(map(display_width, [" + sync_str + "])))"
|
||||||
|
cur_width_str = "display_width(t[" + str(col) + "])"
|
||||||
|
rv_val = "(" + max_width_str + "-" + cur_width_str + ")*' '"
|
||||||
|
anon_snippet_title += "${" + str(col) + ":head" + str(col)\
|
||||||
|
+ "}`!p " + prefix_str + "snip.rv=" + rv_val + "` | "
|
||||||
|
anon_snippet_delimiter += ":`!p " + prefix_str + "snip.rv = "\
|
||||||
|
+ max_width_str + "*'-'" + "`-|"
|
||||||
|
anon_snippet_title += "\n"
|
||||||
|
anon_snippet_delimiter += "\n"
|
||||||
|
anon_snippet_body = ""
|
||||||
|
for row in range(1, rows_amount+1):
|
||||||
|
body_row = "| "
|
||||||
|
for col in range(1, columns_amount+1):
|
||||||
|
sync_rows = [x*columns_amount+col for x in range(rows_amount+1)]
|
||||||
|
sync_str = ",".join(["t[{0}]".format(x) for x in sync_rows])
|
||||||
|
max_width_str = "max(list(map(display_width, [" + sync_str + "])))"
|
||||||
|
cur_width_str = "display_width(t[" + str(row*columns_amount+col) + "])"
|
||||||
|
rv_val = "(" + max_width_str + "-" + cur_width_str + ")*' '"
|
||||||
|
placeholder = "R{0}C{1}".format(row, col)
|
||||||
|
body_row += "${" + str(row*columns_amount+col) + ":" + placeholder\
|
||||||
|
+ "}`!p " + prefix_str + "snip.rv=" + rv_val + "` | "
|
||||||
|
body_row += "\n"
|
||||||
|
anon_snippet_body += body_row
|
||||||
|
anon_snippet_table = anon_snippet_title + anon_snippet_delimiter + anon_snippet_body
|
||||||
|
# expand anonymous snippet
|
||||||
|
snip.expand_anon(anon_snippet_table)
|
||||||
|
endglobal
|
||||||
|
|
||||||
|
post_jump "create_table(snip)"
|
||||||
|
snippet "tb([1-9][1-9])" "Fancy table" br
|
||||||
|
`!p snip.rv = match.group(1)`
|
||||||
|
endsnippet
|
262
.config/nvim/UltiSnips/tex.snippets
Normal file
262
.config/nvim/UltiSnips/tex.snippets
Normal file
|
@ -0,0 +1,262 @@
|
||||||
|
# Document
|
||||||
|
snippet importmath "amsmath amssymb"
|
||||||
|
\usepackage{amsmath}
|
||||||
|
\usepackage{amssymb}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet importgeo "geometry"
|
||||||
|
\usepackage[left=2cm,top=2cm]{geometry}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet importenum "enum item"
|
||||||
|
\usepackage{enumitem}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet setlist "set list"
|
||||||
|
\setlist[enumerate,$1]{label={\roman*.}}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet titleneu "Lucas NEU Author Title"
|
||||||
|
\title{$1}
|
||||||
|
\author {
|
||||||
|
Sta. Maria, Lucas \\\\
|
||||||
|
\texttt{stamaria.l@northeastern.edu}
|
||||||
|
}
|
||||||
|
\date{`date +"%B %d, %Y"`}
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet titlenor "Lucas Normal Author Title"
|
||||||
|
\title{$1}
|
||||||
|
\author {
|
||||||
|
Sta. Maria, Lucas \\\\
|
||||||
|
\texttt{stamaria.l@northeastern.edu}
|
||||||
|
}
|
||||||
|
\date{`date +"%B %d, %Y"`}
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet worddoc "Word document"
|
||||||
|
\documentclass{article}
|
||||||
|
\usepackage{wordlike}
|
||||||
|
\PassOptionsToPackage{margin=1in}{geometry}
|
||||||
|
\usepackage[hang,flushmargin]{footmisc}
|
||||||
|
\usepackage[parfill]{parskip}
|
||||||
|
$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
# Text Formatting
|
||||||
|
snippet bold "bold font"
|
||||||
|
\textbf{$1}$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet ita "italic font"
|
||||||
|
\textit{$1}$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet boi "bold italic font"
|
||||||
|
\textbf{\textit{$1}}$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet ul "underline font"
|
||||||
|
\underline{$1}$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet ... "ldots"
|
||||||
|
\ldots
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet fn "footnote" i
|
||||||
|
\footnote{$0}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
# General Shortcuts
|
||||||
|
snippet beg "\begin{} / end{}"
|
||||||
|
\begin{$1}
|
||||||
|
$0
|
||||||
|
\end{$1}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet olist "ordered list"
|
||||||
|
\begin{enumerate}
|
||||||
|
\item $0
|
||||||
|
\end{enumerate}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet ulist "unordered list"
|
||||||
|
\begin{itemize}
|
||||||
|
\item $0
|
||||||
|
\end{itemize}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
# Math Shortcuts
|
||||||
|
snippet * "cdot" iA
|
||||||
|
\cdot
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet im "inline math"
|
||||||
|
\$$0\$
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet dm "display math"
|
||||||
|
\$\$
|
||||||
|
$0
|
||||||
|
\$\$
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet am "align math"
|
||||||
|
\begin{align}
|
||||||
|
$0
|
||||||
|
\end{align}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet nonum "no number"
|
||||||
|
\nonumber $0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
# Math Symbols Shortcuts
|
||||||
|
snippet mbb "\mathbb" iA
|
||||||
|
$1\mathbb{$2}$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet rarr "right arrow" iA
|
||||||
|
\rightarrow
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet larr "left arrow" iA
|
||||||
|
\leftarrow
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet set "math set" w
|
||||||
|
\\\{$1\\\}$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet tf "therefore" w
|
||||||
|
\therefore$1$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet frac "\frac" w
|
||||||
|
$1\frac{$2}{$3}$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet sqq "square" iA
|
||||||
|
^2
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet cbb "cube" iA
|
||||||
|
^3
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet sss "superscript" iA
|
||||||
|
^{$0}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet ssb "subscript" iA
|
||||||
|
_{$0}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet land "logical and" iA
|
||||||
|
\wedge$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet lor "logical or" iA
|
||||||
|
\vee$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet lnot "logical not" iA
|
||||||
|
\neg$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet lxor "logical xor" iA
|
||||||
|
\veebar$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet sand "set and" i
|
||||||
|
\cap$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet sor "set or" i
|
||||||
|
\cup$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet snot "set not" i
|
||||||
|
\bar{$1}$0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet cong "logical congruent" i
|
||||||
|
\cong $0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet ncong "logical not congruent" i
|
||||||
|
\ncong $0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet cap "set cap" i
|
||||||
|
\cap $0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet cup "set cup" i
|
||||||
|
\cup $0
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
# Boxes
|
||||||
|
snippet importcbox "import colored boxes"
|
||||||
|
\usepackage[most]{tcolorbox}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet boxr "red box" wA
|
||||||
|
\begin{tcolorbox}[colback=red!30!white,colframe=red!30!white, sharp corners]
|
||||||
|
$0
|
||||||
|
\end{tcolorbox}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet boxb "blue box" wA
|
||||||
|
\begin{tcolorbox}[colback=blue!30!white,colframe=blue!30!white, sharp corners]
|
||||||
|
$0
|
||||||
|
\end{tcolorbox}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet boxg "green box" wA
|
||||||
|
\begin{tcolorbox}[colback=green!30!white,colframe=green!30!white, sharp corners]
|
||||||
|
$0
|
||||||
|
\end{tcolorbox}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet boxtr "red title box" wA
|
||||||
|
\begin{tcolorbox}[colback=red!5!white,colframe=red!75!black,title=$1]
|
||||||
|
$0
|
||||||
|
\end{tcolorbox}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet boxtb "blue title box" wA
|
||||||
|
\begin{tcolorbox}[colback=blue!5!white,colframe=blue!75!black,title=$1]
|
||||||
|
$0
|
||||||
|
\end{tcolorbox}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet boxtg "green title box" wA
|
||||||
|
\begin{tcolorbox}[colback=green!5!white, colframe=green!75!black,title=$1]
|
||||||
|
$0
|
||||||
|
\end{tcolorbox}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet proposition "red box" w
|
||||||
|
\begin{tcolorbox}[colback=red!30!white,colframe=red!30!white, sharp corners]
|
||||||
|
\textbf{Proposition} \\\\
|
||||||
|
$0
|
||||||
|
\end{tcolorbox}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet theorem "blue box" w
|
||||||
|
\begin{tcolorbox}[colback=blue!30!white,colframe=blue!30!white, sharp corners]
|
||||||
|
\textbf{Theorem} \\\\
|
||||||
|
$0
|
||||||
|
\end{tcolorbox}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet definition "green box" w
|
||||||
|
\begin{tcolorbox}[colback=green!30!white,colframe=green!30!white, sharp corners]
|
||||||
|
\textbf{Definition} \\\\
|
||||||
|
$0
|
||||||
|
\end{tcolorbox}
|
||||||
|
endsnippet
|
245
.config/nvim/init.vim
Normal file
245
.config/nvim/init.vim
Normal file
|
@ -0,0 +1,245 @@
|
||||||
|
filetype plugin indent on
|
||||||
|
set tabstop=4
|
||||||
|
set shiftwidth=4
|
||||||
|
set scrolloff=1
|
||||||
|
set expandtab
|
||||||
|
set smartindent
|
||||||
|
set autoindent
|
||||||
|
set cursorline
|
||||||
|
set number
|
||||||
|
set rnu
|
||||||
|
set nowrap
|
||||||
|
set inccommand=split
|
||||||
|
set updatetime=100
|
||||||
|
set mouse+=a
|
||||||
|
|
||||||
|
" File settings
|
||||||
|
au BufReadPost,BufNewFile *.md setlocal tw=80 | PencilHard | nnoremap <C-c> :MarkdownPreview<CR>
|
||||||
|
au BufReadPost,BufNewFile *.tex nnoremap <C-c> :w<CR>:!pdflatex main.tex<CR>
|
||||||
|
au BufReadPost,BufNewFile *.md,*.tex setlocal spell | set spelllang=en_US | inoremap <C-l> <c-g>u<ESC>[s1z=`]a<c-g>u
|
||||||
|
au BufReadPost,BufNewFile *.js,*.ts set sw=2 | set ts=2
|
||||||
|
|
||||||
|
" nnoremap : ;
|
||||||
|
" nnoremap ; :
|
||||||
|
nnoremap <space> :
|
||||||
|
tnoremap <silent> <ESC> <C-\><C-n>
|
||||||
|
nmap <C-z>z :Goyo 80<CR>
|
||||||
|
nmap <C-z>q :Goyo!<CR>
|
||||||
|
nnoremap <silent> <C-p> :RainbowToggle<CR>
|
||||||
|
nnoremap <silent> <C-q> <C-w>s<C-w>j:resize 20<CR>:terminal<CR><S-i>
|
||||||
|
|
||||||
|
" Telescope
|
||||||
|
nnoremap <C-t> :Telescope find_files<CR>
|
||||||
|
nnoremap <C-h>d :Telescope live_grep<CR>
|
||||||
|
nnoremap <C-h>u :Telescope lsp_definitions<CR>
|
||||||
|
nnoremap <C-h>e :Telescope<CR>git_
|
||||||
|
nnoremap <C-h>h :Telescope<CR>
|
||||||
|
|
||||||
|
" lsp
|
||||||
|
nnoremap <C-x>s :lua vim.lsp.diagnostic.show_line_diagnostics()<CR>
|
||||||
|
nnoremap <C-x>h :lua vim.lsp.buf.hover()<CR>
|
||||||
|
nnoremap <C-x>c :lua vim.lsp.buf.code_action()<CR>
|
||||||
|
nnoremap <C-x>r :lua vim.lsp.buf.rename()<CR>
|
||||||
|
|
||||||
|
" Tree
|
||||||
|
nnoremap <C-s> :NvimTreeToggle<CR>
|
||||||
|
|
||||||
|
" Barbar
|
||||||
|
nnoremap <silent> J :BufferPrevious<CR>
|
||||||
|
nnoremap <silent> K :BufferNext<CR>
|
||||||
|
nnoremap <silent> <C-j> :BufferMovePrevious<CR>
|
||||||
|
nnoremap <silent> <C-k> :BufferMoveNext<CR>
|
||||||
|
nnoremap <silent> <C-b>q :BufferClose<CR>
|
||||||
|
|
||||||
|
" Git Signs
|
||||||
|
nnoremap <silent> <C-n>b :lua require"gitsigns".blame_line()<CR>
|
||||||
|
|
||||||
|
call plug#begin('~/.config/nvim/plugged')
|
||||||
|
|
||||||
|
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
|
||||||
|
Plug 'ayu-theme/ayu-vim'
|
||||||
|
Plug 'lewis6991/gitsigns.nvim', {'branch': 'main'}
|
||||||
|
Plug 'vim-airline/vim-airline'
|
||||||
|
Plug 'mattn/emmet-vim'
|
||||||
|
Plug 'reedes/vim-pencil'
|
||||||
|
Plug 'nvim-lua/popup.nvim'
|
||||||
|
Plug 'nvim-lua/plenary.nvim'
|
||||||
|
Plug 'nvim-telescope/telescope.nvim'
|
||||||
|
Plug 'neovim/nvim-lspconfig'
|
||||||
|
Plug 'hrsh7th/nvim-compe'
|
||||||
|
Plug 'junegunn/goyo.vim'
|
||||||
|
Plug 'junegunn/limelight.vim'
|
||||||
|
Plug 'camspiers/animate.vim'
|
||||||
|
Plug 'Yggdroot/indentLine'
|
||||||
|
Plug 'frazrepo/vim-rainbow'
|
||||||
|
Plug 'kyazdani42/nvim-web-devicons'
|
||||||
|
Plug 'kyazdani42/nvim-tree.lua'
|
||||||
|
Plug 'romgrk/barbar.nvim'
|
||||||
|
Plug 'elkowar/yuck.vim'
|
||||||
|
|
||||||
|
Plug 'SirVer/ultisnips'
|
||||||
|
Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && yarn install' }
|
||||||
|
|
||||||
|
call plug#end()
|
||||||
|
|
||||||
|
" VimTex
|
||||||
|
let g:tex_flavor='latex'
|
||||||
|
let g:vimtex_view_method='zathura'
|
||||||
|
let g:vimtex_quickfix_mode=0
|
||||||
|
set conceallevel=0
|
||||||
|
|
||||||
|
" Ultisnips
|
||||||
|
let g:UltiSnipsExpandTrigger = '<tab>'
|
||||||
|
let g:UltiSnipsJumpForwardTrigger = '<tab>'
|
||||||
|
let g:UltiSnipsJumpBackwardTrigger = '<s-tab>'
|
||||||
|
let g:UltiSnipsSnippetDirectories=[$HOME.'/.config/nvim/UltiSnips']
|
||||||
|
|
||||||
|
" Markdown Preview
|
||||||
|
let g:mkdp_auto_close = 0
|
||||||
|
let g:mkdp_browser = 'surf'
|
||||||
|
|
||||||
|
" Compe
|
||||||
|
let g:compe = {}
|
||||||
|
let g:compe.enabled = v:true
|
||||||
|
let g:compe.autocomplete = v:true
|
||||||
|
let g:compe.debug = v:false
|
||||||
|
let g:compe.min_length = 1
|
||||||
|
let g:compe.preselect = 'enable'
|
||||||
|
let g:compe.throttle_time = 80
|
||||||
|
let g:compe.source_timeout = 200
|
||||||
|
let g:compe.incomplete_delay = 400
|
||||||
|
let g:compe.max_abbr_width = 100
|
||||||
|
let g:compe.max_kind_width = 100
|
||||||
|
let g:compe.max_menu_width = 100
|
||||||
|
let g:compe.documentation = v:true
|
||||||
|
|
||||||
|
let g:compe.source = {}
|
||||||
|
let g:compe.source.path = v:true
|
||||||
|
let g:compe.source.buffer = v:true
|
||||||
|
let g:compe.source.calc = v:true
|
||||||
|
let g:compe.source.nvim_lsp = v:true
|
||||||
|
let g:compe.source.nvim_lua = v:true
|
||||||
|
let g:compe.source.vsnip = v:true
|
||||||
|
let g:compe.source.ultisnips = v:true
|
||||||
|
|
||||||
|
" gitsigns
|
||||||
|
lua << EOF
|
||||||
|
require('gitsigns').setup {
|
||||||
|
signs = {
|
||||||
|
add = {hl = 'GitSignsAdd', text = '+', numhl='GitSignsAddNr', linehl='GitSignsAddLn' },
|
||||||
|
change = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn' },
|
||||||
|
delete = {hl = 'GitSignsDelete', text = '-', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn' },
|
||||||
|
topdelete = {hl = 'GitSignsDelete', text = '-', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn' },
|
||||||
|
changedelete = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn' },
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
" indentLine
|
||||||
|
let g:indentLine_char = '⎸'
|
||||||
|
let g:indentLine_setConceal = 0
|
||||||
|
|
||||||
|
" Tree
|
||||||
|
let g:nvim_tree_width = 35
|
||||||
|
|
||||||
|
lua << EOF
|
||||||
|
require'lspconfig'.rust_analyzer.setup{}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
lua << EOF
|
||||||
|
require'lspconfig'.ccls.setup{
|
||||||
|
init_options = {
|
||||||
|
cache = {
|
||||||
|
directory = "/home/priime/.cache/ccls/";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
lua << EOF
|
||||||
|
require'lspconfig'.pyls.setup{}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
lua << EOF
|
||||||
|
require'lspconfig'.tsserver.setup{}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
lua << EOF
|
||||||
|
require'lspconfig'.java_language_server.setup{
|
||||||
|
cmd = { "/usr/share/java/java-language-server/lang_server_linux.sh" }
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
lua << EOF
|
||||||
|
require 'nvim-treesitter.configs'.setup {
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
lua << EOF
|
||||||
|
require'lspconfig'.vuels.setup{
|
||||||
|
on_attach = function(client)
|
||||||
|
client.resolved_capabilities.document_formatting = true
|
||||||
|
end;
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
lua << EOF
|
||||||
|
require'lspconfig'.racket_langserver.setup{}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
fun! Start()
|
||||||
|
" Don't run if: we have commandline arguments, we don't have an empty
|
||||||
|
" buffer, if we've not invoked as vim or gvim, or if we'e start in insert mode
|
||||||
|
if argc() || line2byte('$') != -1 || v:progname !~? '^[-gmnq]\=vim\=x\=\%[\.exe]$' || &insertmode
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Start a new buffer ...
|
||||||
|
enew
|
||||||
|
|
||||||
|
" ... and set some options for it
|
||||||
|
setlocal
|
||||||
|
\ bufhidden=wipe
|
||||||
|
\ buftype=nofile
|
||||||
|
\ nobuflisted
|
||||||
|
\ nocursorcolumn
|
||||||
|
\ nocursorline
|
||||||
|
\ nolist
|
||||||
|
\ nonumber
|
||||||
|
\ noswapfile
|
||||||
|
\ norelativenumber
|
||||||
|
|
||||||
|
" Now we can just write to the buffer, whatever you want.
|
||||||
|
call append('$', "")
|
||||||
|
for line in split(system('cat /home/priime/.config/nvim/startscreen.vimstart'), '\n')
|
||||||
|
call append('$', '' . l:line)
|
||||||
|
endfor
|
||||||
|
|
||||||
|
" No modifications to this buffer
|
||||||
|
setlocal nomodifiable nomodified
|
||||||
|
|
||||||
|
" When we go to insert mode start a new buffer, and start insert
|
||||||
|
nnoremap <buffer><silent> e :enew<CR>
|
||||||
|
nnoremap <buffer><silent> i :enew <bar> startinsert<CR>
|
||||||
|
nnoremap <buffer><silent> o :enew <bar> startinsert<CR>
|
||||||
|
|
||||||
|
" simple
|
||||||
|
" set syntax=erlang
|
||||||
|
" red leaves
|
||||||
|
" set syntax=html
|
||||||
|
" blue leaves
|
||||||
|
set syntax=yaml
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Run after "doing all the startup stuff"
|
||||||
|
autocmd VimEnter * call Start()
|
||||||
|
|
||||||
|
|
||||||
|
syntax on
|
||||||
|
set termguicolors
|
||||||
|
set t_Co=256
|
||||||
|
let ayucolor="dark"
|
||||||
|
colorscheme ayu
|
48
.config/nvim/startscreen.vimstart
Normal file
48
.config/nvim/startscreen.vimstart
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
& &&&~
|
||||||
|
&&&&\ //~&&&
|
||||||
|
&&& &/|& /| /|&&/~
|
||||||
|
& & & &&&&//~|&&\ \//~
|
||||||
|
&&&& & & && /\/~&&&/ \//~
|
||||||
|
& ////~| /|&\/| &
|
||||||
|
\&&&/|&/&/&\&&&&&&
|
||||||
|
& & & & & &/|~/~/|/|/~\&&&&&&&&
|
||||||
|
&&& &&&&& && ///~ \&/&&&//~ &&&&
|
||||||
|
&&&&& &&&&&&&&&\ &\&&/|&&\&/~&
|
||||||
|
& &__&\_\__&\&&/~||////~&& & & &
|
||||||
|
&&&&&&&&&&\&|\_&\/|/~&/&/ && && &&& &
|
||||||
|
&& &&&&/\_& &&&\_/\_&\~/~/|/|&&&&&&&&&&&&
|
||||||
|
& &&&& &&&&&&& &&&&&&&///~/||/~/~&_&&&&&&&&&& &
|
||||||
|
&&&&&&&_ && &&&&&& &&&&\///~/|~//&__&&&&&&&&&& &
|
||||||
|
&&&& \___&&&&&&& &_&\/|\&\/~//~/ &&&&/ && &
|
||||||
|
\_ &&&&/ \& &//|/\ _/ && &
|
||||||
|
\_\__ \_ /\ /|/~/~\ _/_/& & &
|
||||||
|
\_ \__ \///~&& \&/&& &&&&&&& &&&
|
||||||
|
\_\_ \//|~& & &&&&& &/&&&&&&&&&&&
|
||||||
|
/~| /~&&&& & _&&&&&&& &&& &
|
||||||
|
//|/|/&_&&&&& & &&&
|
||||||
|
/~\ /~ \& &&&&_&&& &
|
||||||
|
&&& & & &&& \__/~/~ &&&&&&&&
|
||||||
|
&&&&&&&&&&&&&&\& & / / &
|
||||||
|
&& &&&&\_& \_&___| & / //~
|
||||||
|
&& \_/ \_\_ / //~
|
||||||
|
& \_ /~
|
||||||
|
/~
|
||||||
|
╓───────────╭╱⎨⏆╲╮───────────╖
|
||||||
|
║ ║
|
||||||
|
╟────────────────────────────╢
|
||||||
|
╟────────────────────────────╢
|
||||||
|
╚════════════════════════════╝
|
||||||
|
' _ _ '
|
||||||
|
'_ __ _ __(_|_)_ __ ___ ___'
|
||||||
|
| '_ \| '__| | | '_ ` _ \ / _ \
|
||||||
|
| |_) | | | | | | | | | | __/
|
||||||
|
| .__/|_| |_|_|_| |_| |_|\___|
|
||||||
|
|_|
|
||||||
|
|
||||||
|
|
||||||
|
[ https://priime.dev ]
|
||||||
|
|
||||||
|
Find File <C-t>
|
||||||
|
New Buffer <C-w>v
|
||||||
|
Open Terminal <C-q>
|
||||||
|
Focus Mode <C-z>z
|
69
.config/picom.conf
Normal file
69
.config/picom.conf
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
#################################
|
||||||
|
# Corners #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
corner-radius = 10.0;
|
||||||
|
round-borders = 1;
|
||||||
|
rounded-corners-exclude = [
|
||||||
|
"window_type = 'dock'",
|
||||||
|
"class_g ?= 'Dmenu'",
|
||||||
|
];
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# Shadows #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
shadow = true;
|
||||||
|
shadow-radius = 25;
|
||||||
|
shadow-opacity = 1;
|
||||||
|
shadow-offset-x = -25;
|
||||||
|
shadow-offset-y = -25;
|
||||||
|
shadow-exclude = [
|
||||||
|
"window_type = 'dock'",
|
||||||
|
"class_g ?= 'Dunst'",
|
||||||
|
];
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# Transparency / Opacity #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
|
||||||
|
active-opacity = 1.0;
|
||||||
|
inactive-opacity = 1.0;
|
||||||
|
inactive-dim-fixed = true;
|
||||||
|
frame-opacity = 1;
|
||||||
|
focus-exclude = [
|
||||||
|
"class_g ?= 'i3lock'",
|
||||||
|
"class_g ?= 'Dmenu'",
|
||||||
|
];
|
||||||
|
opacity-rule = [
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# Background-Blurring #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
blur-kern = "3x3box";
|
||||||
|
blur: {
|
||||||
|
method = "dual_kawase";
|
||||||
|
strength = 10;
|
||||||
|
background = true;
|
||||||
|
background-frame = false;
|
||||||
|
background-fixed = false;
|
||||||
|
}
|
||||||
|
blur-background-exclude = [
|
||||||
|
"class_g ?= 'peek'",
|
||||||
|
"class_g ?= 'Peek'"
|
||||||
|
# "window_type = 'dock'",
|
||||||
|
#
|
||||||
|
];
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# General Settings #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
#experimental-backends = true;
|
||||||
|
backend = "glx";
|
||||||
|
glx-no-stencil = true;
|
||||||
|
vsync = true;
|
206
.config/sxhkd/sxhkdrc
Normal file
206
.config/sxhkd/sxhkdrc
Normal file
|
@ -0,0 +1,206 @@
|
||||||
|
#
|
||||||
|
# wm independent hotkeys
|
||||||
|
#
|
||||||
|
|
||||||
|
# terminal emulator
|
||||||
|
super + Return
|
||||||
|
kitty
|
||||||
|
|
||||||
|
# program launcher
|
||||||
|
super + r
|
||||||
|
/home/priime/.config/rofi/scripts/rofi-apps
|
||||||
|
|
||||||
|
# make sxhkd reload its configuration files:
|
||||||
|
super + Escape
|
||||||
|
pkill -USR1 -x sxhkd
|
||||||
|
|
||||||
|
#
|
||||||
|
# bspwm hotkeys
|
||||||
|
#
|
||||||
|
|
||||||
|
# quit/restart bspwm
|
||||||
|
super + alt + {q,r}
|
||||||
|
bspc {quit,wm -r}
|
||||||
|
|
||||||
|
# close and kill
|
||||||
|
super + {_,shift + }c
|
||||||
|
bspc node -{c,k}
|
||||||
|
|
||||||
|
# alternate between the tiled and monocle layout
|
||||||
|
super + m
|
||||||
|
bspc desktop -l next
|
||||||
|
|
||||||
|
# send the newest marked node to the newest preselected node
|
||||||
|
super + y
|
||||||
|
bspc node newest.marked.local -n newest.!automatic.local
|
||||||
|
|
||||||
|
# swap the current node and the biggest window
|
||||||
|
super + g
|
||||||
|
bspc node -s biggest.window
|
||||||
|
|
||||||
|
#
|
||||||
|
# state/flags
|
||||||
|
#
|
||||||
|
|
||||||
|
# set the window state
|
||||||
|
super + {t,shift + t,s,f}
|
||||||
|
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
|
||||||
|
|
||||||
|
# set the node flags
|
||||||
|
super + ctrl + {m,x,y,z}
|
||||||
|
bspc node -g {marked,locked,sticky,private}
|
||||||
|
|
||||||
|
#
|
||||||
|
# focus/swap
|
||||||
|
#
|
||||||
|
|
||||||
|
# focus the node in the given direction
|
||||||
|
super + {_,shift + }{h,j,k,l}
|
||||||
|
bspc node -{f,s} {west,south,north,east}
|
||||||
|
|
||||||
|
# focus the node for the given path jump
|
||||||
|
super + {p,b,comma,period}
|
||||||
|
bspc node -f @{parent,brother,first,second}
|
||||||
|
|
||||||
|
# focus the next/previous window in the current desktop
|
||||||
|
# super + {_,shift + }c
|
||||||
|
# bspc node -f {next,prev}.local.!hidden.window
|
||||||
|
|
||||||
|
# focus the next/previous desktop in the current monitor
|
||||||
|
super + {e,u}
|
||||||
|
bspc desktop -f {prev,next}.local
|
||||||
|
|
||||||
|
# focus the last node/desktop
|
||||||
|
super + {grave,Tab}
|
||||||
|
bspc {node,desktop} -f last
|
||||||
|
|
||||||
|
# focus the older or newer node in the focus history
|
||||||
|
# super + {o,i}
|
||||||
|
# bspc wm -h off; \
|
||||||
|
# bspc node {older,newer} -f; \
|
||||||
|
# bspc wm -h on
|
||||||
|
|
||||||
|
# focus or send to the given desktop
|
||||||
|
super + {_, shift + } ampersand
|
||||||
|
bspc {desktop -f, node -d} '^1'
|
||||||
|
|
||||||
|
super + {_, shift + } bracketleft
|
||||||
|
bspc {desktop -f, node -d} '^2'
|
||||||
|
|
||||||
|
super + {_, shift + } braceleft
|
||||||
|
bspc {desktop -f, node -d} '^3'
|
||||||
|
|
||||||
|
super + {_, shift + } braceright
|
||||||
|
bspc {desktop -f, node -d} '^4'
|
||||||
|
|
||||||
|
super + {_, shift + } parenleft
|
||||||
|
bspc {desktop -f, node -d} '^5'
|
||||||
|
|
||||||
|
super + {_, shift + } equal
|
||||||
|
bspc {desktop -f, node -d} '^6'
|
||||||
|
|
||||||
|
super + {_, shift + } asterisk
|
||||||
|
bspc {desktop -f, node -d} '^7'
|
||||||
|
|
||||||
|
super + {_, shift + } parenright
|
||||||
|
bspc {desktop -f, node -d} '^8'
|
||||||
|
|
||||||
|
super + {_, shift + } plus
|
||||||
|
bspc {desktop -f, node -d} '^9'
|
||||||
|
|
||||||
|
super + {_, shift + } bracketright
|
||||||
|
bspc {desktop -f, node -d} '^10'
|
||||||
|
|
||||||
|
super + control + {_, shift + } ampersand
|
||||||
|
bspc {desktop -f, node -d} '^11'
|
||||||
|
|
||||||
|
super + control + {_, shift + } bracketleft
|
||||||
|
bspc {desktop -f, node -d} '^12'
|
||||||
|
|
||||||
|
super + control + {_, shift + } braceleft
|
||||||
|
bspc {desktop -f, node -d} '^13'
|
||||||
|
|
||||||
|
super + control + {_, shift + } braceright
|
||||||
|
bspc {desktop -f, node -d} '^14'
|
||||||
|
|
||||||
|
super + control + {_, shift + } parenleft
|
||||||
|
bspc {desktop -f, node -d} '^15'
|
||||||
|
|
||||||
|
super + control + {_, shift + } equal
|
||||||
|
bspc {desktop -f, node -d} '^16'
|
||||||
|
|
||||||
|
super + control + {_, shift + } asterisk
|
||||||
|
bspc {desktop -f, node -d} '^17'
|
||||||
|
|
||||||
|
super + control + {_, shift + } parenright
|
||||||
|
bspc {desktop -f, node -d} '^18'
|
||||||
|
|
||||||
|
super + control + {_, shift + } plus
|
||||||
|
bspc {desktop -f, node -d} '^19'
|
||||||
|
|
||||||
|
super + control + {_, shift + } bracketright
|
||||||
|
bspc {desktop -f, node -d} '^20'
|
||||||
|
|
||||||
|
#
|
||||||
|
# preselect
|
||||||
|
#
|
||||||
|
|
||||||
|
# preselect the direction
|
||||||
|
super + ctrl + {h,j,k,l}
|
||||||
|
bspc node -p {west,south,north,east}
|
||||||
|
|
||||||
|
# preselect the ratio
|
||||||
|
super + ctrl + {1-9}
|
||||||
|
bspc node -o 0.{1-9}
|
||||||
|
|
||||||
|
# cancel the preselection for the focused node
|
||||||
|
super + ctrl + space
|
||||||
|
bspc node -p cancel
|
||||||
|
|
||||||
|
# cancel the preselection for the focused desktop
|
||||||
|
super + ctrl + shift + space
|
||||||
|
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
|
||||||
|
|
||||||
|
#
|
||||||
|
# move/resize
|
||||||
|
#
|
||||||
|
|
||||||
|
# expand a window by moving one of its side outward
|
||||||
|
super + alt + {h,j,k,l}
|
||||||
|
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
|
||||||
|
|
||||||
|
# contract a window by moving one of its side inward
|
||||||
|
super + alt + shift + {h,j,k,l}
|
||||||
|
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
|
||||||
|
|
||||||
|
# move a floating window
|
||||||
|
super + {Left,Down,Up,Right}
|
||||||
|
bspc node -v {-20 0,0 20,0 -20,20 0}
|
||||||
|
|
||||||
|
#
|
||||||
|
# misc keybinds
|
||||||
|
#
|
||||||
|
|
||||||
|
# screenshot
|
||||||
|
super + shift + s
|
||||||
|
flameshot gui
|
||||||
|
|
||||||
|
Print
|
||||||
|
flameshot full -c
|
||||||
|
|
||||||
|
# brightness
|
||||||
|
XF86MonBrightness{Up,Down}
|
||||||
|
brightnessctl set {+5%,5%-}
|
||||||
|
|
||||||
|
super + shift + {a,o}
|
||||||
|
brightnessctl set {+5%,5%-}
|
||||||
|
|
||||||
|
# volume
|
||||||
|
XF86Audio{Raise,Lower}Volume
|
||||||
|
pactl set-sink-volume @DEFAULT_SINK@ {+,-}2%
|
||||||
|
|
||||||
|
XF86AudioMute
|
||||||
|
pamixer --toggle-mute
|
||||||
|
|
||||||
|
super + {a,o}
|
||||||
|
pactl set-sink-volume @DEFAULT_SINK@ {+,-}2%
|
13
.config/zathura/zathurarc
Normal file
13
.config/zathura/zathurarc
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
set recolor-lightcolor "#0e1419"
|
||||||
|
set default-bg "#0e1419"
|
||||||
|
set inputbar-bg "#0e1419"
|
||||||
|
set inputbar-fg "#ffffff"
|
||||||
|
set notification-bg "#0e1419"
|
||||||
|
set notification-fg "#ffffff"
|
||||||
|
set statusbar-bg "#0e1419"
|
||||||
|
set statusbar-fg "#ffffff"
|
||||||
|
set tabbar-bg "#0e1419"
|
||||||
|
set tabbar-fg "#ffffff"
|
||||||
|
set tabbar-focus-bg "#ffffff"
|
||||||
|
set tabbar-focus-fg "#0e1419"
|
||||||
|
set selection-clipboard clipboard
|
73
.doom.d/config.el
Normal file
73
.doom.d/config.el
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
;; Place your private configuration here! Remember, you do not need to run 'doom
|
||||||
|
;; sync' after modifying this file!
|
||||||
|
|
||||||
|
|
||||||
|
;; Some functionality uses this to identify you, e.g. GPG configuration, email
|
||||||
|
;; clients, file templates and snippets.
|
||||||
|
(setq user-full-name "Lucas Sta Maria"
|
||||||
|
user-mail-address "lucas.stamaria@gmail.com")
|
||||||
|
|
||||||
|
;; Doom exposes five (optional) variables for controlling fonts in Doom. Here
|
||||||
|
;; are the three important ones:
|
||||||
|
;;
|
||||||
|
;; + `doom-font'
|
||||||
|
;; + `doom-variable-pitch-font'
|
||||||
|
;; + `doom-big-font' -- used for `doom-big-font-mode'; use this for
|
||||||
|
;; presentations or streaming.
|
||||||
|
;;
|
||||||
|
;; They all accept either a font-spec, font string ("Input Mono-12"), or xlfd
|
||||||
|
;; font string. You generally only need these two:
|
||||||
|
;; (setq doom-font (font-spec :family "monospace" :size 12 :weight 'semi-light)
|
||||||
|
;; doom-variable-pitch-font (font-spec :family "sans" :size 13))
|
||||||
|
|
||||||
|
;; There are two ways to load a theme. Both assume the theme is installed and
|
||||||
|
;; available. You can either set `doom-theme' or manually load a theme with the
|
||||||
|
;; `load-theme' function. This is the default:
|
||||||
|
(setq doom-theme 'doom-one)
|
||||||
|
|
||||||
|
;; If you use `org' and don't want your org files in the default location below,
|
||||||
|
;; change `org-directory'. It must be set before org loads!
|
||||||
|
(setq org-directory "~/org/")
|
||||||
|
|
||||||
|
;; This determines the style of line numbers in effect. If set to `nil', line
|
||||||
|
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
||||||
|
(setq display-line-numbers-type 'relative)
|
||||||
|
|
||||||
|
|
||||||
|
;; Here are some additional functions/macros that could help you configure Doom:
|
||||||
|
;;
|
||||||
|
;; - `load!' for loading external *.el files relative to this one
|
||||||
|
;; - `use-package!' for configuring packages
|
||||||
|
;; - `after!' for running code after a package has loaded
|
||||||
|
;; - `add-load-path!' for adding directories to the `load-path', relative to
|
||||||
|
;; this file. Emacs searches the `load-path' when you load packages with
|
||||||
|
;; `require' or `use-package'.
|
||||||
|
;; - `map!' for binding new keys
|
||||||
|
;;
|
||||||
|
;; To get information about any of these functions/macros, move the cursor over
|
||||||
|
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
|
||||||
|
;; This will open documentation for it, including demos of how they are used.
|
||||||
|
;;
|
||||||
|
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
|
||||||
|
;; they are implemented.
|
||||||
|
|
||||||
|
(setq doom-font (font-spec :family "Roboto Mono Medium" :size 12 :weight 'medium))
|
||||||
|
|
||||||
|
(editorconfig-mode 1)
|
||||||
|
|
||||||
|
;; (require 'elcord)
|
||||||
|
;; (elcord-mode)
|
||||||
|
|
||||||
|
;; Centaur Tabs keybindings
|
||||||
|
(map! :n "C-j" #'centaur-tabs-backward-tab)
|
||||||
|
(map! :n "C-k" #'centaur-tabs-forward-tab)
|
||||||
|
(map! :n "C-S-j" #'centaur-tabs-move-current-tab-to-left)
|
||||||
|
(map! :n "C-S-k" #'centaur-tabs-move-current-tab-to-right)
|
||||||
|
|
||||||
|
;; Disable automatic smart parens
|
||||||
|
;; (remove-hook 'doom-first-buffer-hook #'smartparens-global-mode)
|
||||||
|
|
||||||
|
(require 'just-mode)
|
||||||
|
(just-mode)
|
193
.doom.d/init.el
Normal file
193
.doom.d/init.el
Normal file
|
@ -0,0 +1,193 @@
|
||||||
|
;;; init.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
;; This file controls what Doom modules are enabled and what order they load
|
||||||
|
;; in. Remember to run 'doom sync' after modifying it!
|
||||||
|
|
||||||
|
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
|
||||||
|
;; documentation. There you'll find a "Module Index" link where you'll find
|
||||||
|
;; a comprehensive list of Doom's modules and what flags they support.
|
||||||
|
|
||||||
|
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
|
||||||
|
;; 'C-c c k' for non-vim users) to view its documentation. This works on
|
||||||
|
;; flags as well (those symbols that start with a plus).
|
||||||
|
;;
|
||||||
|
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
|
||||||
|
;; directory (for easy access to its source code).
|
||||||
|
|
||||||
|
(doom! :input
|
||||||
|
;;chinese
|
||||||
|
;;japanese
|
||||||
|
;;layout ; auie,ctsrnm is the superior home row
|
||||||
|
|
||||||
|
:completion
|
||||||
|
company ; the ultimate code completion backend
|
||||||
|
;;helm ; the *other* search engine for love and life
|
||||||
|
;;ido ; the other *other* search engine...
|
||||||
|
;;ivy ; a search engine for love and life
|
||||||
|
vertico ; the search engine of the future
|
||||||
|
|
||||||
|
:ui
|
||||||
|
;;deft ; notational velocity for Emacs
|
||||||
|
doom ; what makes DOOM look the way it does
|
||||||
|
doom-dashboard ; a nifty splash screen for Emacs
|
||||||
|
doom-quit ; DOOM quit-message prompts when you quit Emacs
|
||||||
|
(emoji +unicode) ; 🙂
|
||||||
|
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
||||||
|
;;hydra
|
||||||
|
;;indent-guides ; highlighted indent columns
|
||||||
|
;;ligatures ; ligatures and symbols to make your code pretty again
|
||||||
|
minimap ; show a map of the code on the side
|
||||||
|
(modeline +light) ; snazzy, Atom-inspired modeline, plus API
|
||||||
|
nav-flash ; blink cursor line after big motions
|
||||||
|
;;neotree ; a project drawer, like NERDTree for vim
|
||||||
|
ophints ; highlight the region an operation acts on
|
||||||
|
(popup +defaults) ; tame sudden yet inevitable temporary windows
|
||||||
|
tabs ; a tab bar for Emacs
|
||||||
|
treemacs ; a project drawer, like neotree but cooler
|
||||||
|
unicode ; extended unicode support for various languages
|
||||||
|
vc-gutter ; vcs diff in the fringe
|
||||||
|
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
||||||
|
;;window-select ; visually switch windows
|
||||||
|
workspaces ; tab emulation, persistence & separate workspaces
|
||||||
|
;;zen ; distraction-free coding or writing
|
||||||
|
|
||||||
|
:editor
|
||||||
|
(evil +everywhere); come to the dark side, we have cookies
|
||||||
|
file-templates ; auto-snippets for empty files
|
||||||
|
fold ; (nigh) universal code folding
|
||||||
|
(format ) ; automated prettiness
|
||||||
|
;;god ; run Emacs commands without modifier keys
|
||||||
|
;;lispy ; vim for lisp, for people who don't like vim
|
||||||
|
;;multiple-cursors ; editing in many places at once
|
||||||
|
;;objed ; text object editing for the innocent
|
||||||
|
;;parinfer ; turn lisp into python, sort of
|
||||||
|
;;rotate-text ; cycle region at point between text candidates
|
||||||
|
;;snippets ; my elves. They type so I don't have to
|
||||||
|
;;word-wrap ; soft wrapping with language-aware indent
|
||||||
|
|
||||||
|
:emacs
|
||||||
|
dired ; making dired pretty [functional]
|
||||||
|
electric ; smarter, keyword-based electric-indent
|
||||||
|
;;ibuffer ; interactive buffer management
|
||||||
|
;;undo ; persistent, smarter undo for your inevitable mistakes
|
||||||
|
vc ; version-control and Emacs, sitting in a tree
|
||||||
|
|
||||||
|
:term
|
||||||
|
;;eshell ; the elisp shell that works everywhere
|
||||||
|
;;shell ; simple shell REPL for Emacs
|
||||||
|
;;term ; basic terminal emulator for Emacs
|
||||||
|
vterm ; the best terminal emulation in Emacs
|
||||||
|
|
||||||
|
:checkers
|
||||||
|
syntax ; tasing you for every semicolon you forget
|
||||||
|
;;(spell +flyspell) ; tasing you for misspelling mispelling
|
||||||
|
;;grammar ; tasing grammar mistake every you make
|
||||||
|
|
||||||
|
:tools
|
||||||
|
;;ansible
|
||||||
|
;;biblio ; Writes a PhD for you (citation needed)
|
||||||
|
;;debugger ; FIXME stepping through code, to help you add bugs
|
||||||
|
;;direnv
|
||||||
|
;;docker
|
||||||
|
editorconfig ; let someone else argue about tabs vs spaces
|
||||||
|
;;ein ; tame Jupyter notebooks with emacs
|
||||||
|
;;(eval +overlay) ; run code, run (also, repls)
|
||||||
|
;;gist ; interacting with github gists
|
||||||
|
lookup ; navigate your code and its documentation
|
||||||
|
lsp ; M-x vscode
|
||||||
|
magit ; a git porcelain for Emacs
|
||||||
|
;;make ; run make tasks from Emacs
|
||||||
|
;;pass ; password manager for nerds
|
||||||
|
;;pdf ; pdf enhancements
|
||||||
|
;;prodigy ; FIXME managing external services & code builders
|
||||||
|
;;rgb ; creating color strings
|
||||||
|
;;taskrunner ; taskrunner for all your projects
|
||||||
|
;;terraform ; infrastructure as code
|
||||||
|
;;tmux ; an API for interacting with tmux
|
||||||
|
;;upload ; map local to remote projects via ssh/ftp
|
||||||
|
|
||||||
|
:os
|
||||||
|
(:if IS-MAC macos) ; improve compatibility with macOS
|
||||||
|
;;tty ; improve the terminal Emacs experience
|
||||||
|
|
||||||
|
:lang
|
||||||
|
;;agda ; types of types of types of types...
|
||||||
|
;;beancount ; mind the GAAP
|
||||||
|
;;cc ; C > C++ == 1
|
||||||
|
;;clojure ; java with a lisp
|
||||||
|
;;common-lisp ; if you've seen one lisp, you've seen them all
|
||||||
|
;;coq ; proofs-as-programs
|
||||||
|
;;crystal ; ruby at the speed of c
|
||||||
|
;;csharp ; unity, .NET, and mono shenanigans
|
||||||
|
;;data ; config/data formats
|
||||||
|
;;(dart +flutter) ; paint ui and not much else
|
||||||
|
;;dhall
|
||||||
|
;;elixir ; erlang done right
|
||||||
|
;;elm ; care for a cup of TEA?
|
||||||
|
emacs-lisp ; drown in parentheses
|
||||||
|
;;erlang ; an elegant language for a more civilized age
|
||||||
|
;;ess ; emacs speaks statistics
|
||||||
|
;;factor
|
||||||
|
;;faust ; dsp, but you get to keep your soul
|
||||||
|
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
|
||||||
|
;;fsharp ; ML stands for Microsoft's Language
|
||||||
|
;;fstar ; (dependent) types and (monadic) effects and Z3
|
||||||
|
;;gdscript ; the language you waited for
|
||||||
|
;;(go +lsp) ; the hipster dialect
|
||||||
|
;;(haskell +lsp) ; a language that's lazier than I am
|
||||||
|
;;hy ; readability of scheme w/ speed of python
|
||||||
|
;;idris ; a language you can depend on
|
||||||
|
json ; At least it ain't XML
|
||||||
|
(java +lsp) ; the poster child for carpal tunnel syndrome
|
||||||
|
javascript ; all(hope(abandon(ye(who(enter(here))))))
|
||||||
|
;;julia ; a better, faster MATLAB
|
||||||
|
;;kotlin ; a better, slicker Java(Script)
|
||||||
|
latex ; writing papers in Emacs has never been so fun
|
||||||
|
lean ; for folks with too much to prove
|
||||||
|
;;ledger ; be audit you can be
|
||||||
|
;;lua ; one-based indices? one-based indices
|
||||||
|
markdown ; writing docs for people to ignore
|
||||||
|
;;nim ; python + lisp at the speed of c
|
||||||
|
;;nix ; I hereby declare "nix geht mehr!"
|
||||||
|
ocaml ; an objective camel
|
||||||
|
;; org ; organize your plain life in plain text
|
||||||
|
;;php ; perl's insecure younger brother
|
||||||
|
;;plantuml ; diagrams for confusing people more
|
||||||
|
;;purescript ; javascript, but functional
|
||||||
|
;;python ; beautiful is better than ugly
|
||||||
|
;;qt ; the 'cutest' gui framework ever
|
||||||
|
racket ; a DSL for DSLs
|
||||||
|
;;raku ; the artist formerly known as perl6
|
||||||
|
;;rest ; Emacs as a REST client
|
||||||
|
;;rst ; ReST in peace
|
||||||
|
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
||||||
|
rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||||
|
;;scala ; java, but good
|
||||||
|
;;(scheme +guile) ; a fully conniving family of lisps
|
||||||
|
sh ; she sells {ba,z,fi}sh shells on the C xor
|
||||||
|
;;sml
|
||||||
|
;;solidity ; do you need a blockchain? No.
|
||||||
|
;;swift ; who asked for emoji variables?
|
||||||
|
;;terra ; Earth and Moon in alignment for performance.
|
||||||
|
(web +html
|
||||||
|
+css
|
||||||
|
+lsp) ; the tubes
|
||||||
|
yaml ; JSON, but readable
|
||||||
|
;;zig ; C, but simpler
|
||||||
|
|
||||||
|
:email
|
||||||
|
;;(mu4e +org +gmail)
|
||||||
|
;;notmuch
|
||||||
|
;;(wanderlust +gmail)
|
||||||
|
|
||||||
|
:app
|
||||||
|
;;calendar
|
||||||
|
;;emms
|
||||||
|
;;everywhere ; *leave* Emacs!? You must be joking
|
||||||
|
;;irc ; how neckbeards socialize
|
||||||
|
;;(rss +org) ; emacs as an RSS reader
|
||||||
|
;;twitter ; twitter client https://twitter.com/vnought
|
||||||
|
|
||||||
|
:config
|
||||||
|
;;literate
|
||||||
|
(default +bindings +smartparens))
|
53
.doom.d/packages.el
Normal file
53
.doom.d/packages.el
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
;; -*- no-byte-compile: t; -*-
|
||||||
|
;;; $DOOMDIR/packages.el
|
||||||
|
|
||||||
|
;; To install a package with Doom you must declare them here and run 'doom sync'
|
||||||
|
;; on the command line, then restart Emacs for the changes to take effect -- or
|
||||||
|
;; use 'M-x doom/reload'.
|
||||||
|
|
||||||
|
|
||||||
|
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
|
||||||
|
;(package! some-package)
|
||||||
|
|
||||||
|
;; To install a package directly from a remote git repo, you must specify a
|
||||||
|
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
|
||||||
|
;; https://github.com/raxod502/straight.el#the-recipe-format
|
||||||
|
;(package! another-package
|
||||||
|
; :recipe (:host github :repo "username/repo"))
|
||||||
|
|
||||||
|
;; If the package you are trying to install does not contain a PACKAGENAME.el
|
||||||
|
;; file, or is located in a subdirectory of the repo, you'll need to specify
|
||||||
|
;; `:files' in the `:recipe':
|
||||||
|
;(package! this-package
|
||||||
|
; :recipe (:host github :repo "username/repo"
|
||||||
|
; :files ("some-file.el" "src/lisp/*.el")))
|
||||||
|
|
||||||
|
;; If you'd like to disable a package included with Doom, you can do so here
|
||||||
|
;; with the `:disable' property:
|
||||||
|
;(package! builtin-package :disable t)
|
||||||
|
|
||||||
|
;; You can override the recipe of a built in package without having to specify
|
||||||
|
;; all the properties for `:recipe'. These will inherit the rest of its recipe
|
||||||
|
;; from Doom or MELPA/ELPA/Emacsmirror:
|
||||||
|
;(package! builtin-package :recipe (:nonrecursive t))
|
||||||
|
;(package! builtin-package-2 :recipe (:repo "myfork/package"))
|
||||||
|
|
||||||
|
;; Specify a `:branch' to install a package from a particular branch or tag.
|
||||||
|
;; This is required for some packages whose default branch isn't 'master' (which
|
||||||
|
;; our package manager can't deal with; see raxod502/straight.el#279)
|
||||||
|
;(package! builtin-package :recipe (:branch "develop"))
|
||||||
|
|
||||||
|
;; Use `:pin' to specify a particular commit to install.
|
||||||
|
;(package! builtin-package :pin "1a2b3c4d5e")
|
||||||
|
|
||||||
|
|
||||||
|
;; Doom's packages are pinned to a specific commit and updated from release to
|
||||||
|
;; release. The `unpin!' macro allows you to unpin single packages...
|
||||||
|
;(unpin! pinned-package)
|
||||||
|
;; ...or multiple packages
|
||||||
|
;(unpin! pinned-package another-pinned-package)
|
||||||
|
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
|
||||||
|
;(unpin! t)
|
||||||
|
|
||||||
|
;; (package! elcord)
|
||||||
|
(package! just-mode)
|
Loading…
Add table
Add a link
Reference in a new issue