Merge branch 'master' of ssh://git.olympuslab.net:522/afonso/dotfiles
This commit is contained in:
commit
b05d6c1442
37 changed files with 990 additions and 921 deletions
BIN
.config/eww/background
Normal file
BIN
.config/eww/background
Normal file
Binary file not shown.
After Width: | Height: | Size: 1 MiB |
25
.config/eww/eww.scss
Normal file
25
.config/eww/eww.scss
Normal file
|
@ -0,0 +1,25 @@
|
|||
* {
|
||||
all: unset;
|
||||
}
|
||||
|
||||
window {
|
||||
border-radius: 5%;
|
||||
}
|
||||
|
||||
.btns-box {
|
||||
padding: 10px;
|
||||
background-color: #282a36;
|
||||
font-family: FiraCode Nerd Font Mono;
|
||||
font-size: 100px;
|
||||
}
|
||||
|
||||
.button{
|
||||
border-radius: 5%;
|
||||
outline-style: solid;
|
||||
outline-color: #44475a;
|
||||
outline-width: 2px;
|
||||
}
|
||||
|
||||
.button:hover{
|
||||
background-color: #44475a;
|
||||
}
|
24
.config/eww/eww.yuck
Normal file
24
.config/eww/eww.yuck
Normal file
|
@ -0,0 +1,24 @@
|
|||
(defwindow powermenu
|
||||
:stacking "fg"
|
||||
:windowtype "dialog"
|
||||
:wm-ignore true
|
||||
:monitor 0
|
||||
:geometry (geometry :anchor "center" :width "50%" :height "25%")
|
||||
(powermenu_layout))
|
||||
|
||||
(defwidget powermenu_layout []
|
||||
(_buttons :sleep "systemctl suspend"
|
||||
:sleep_icon "⏾"
|
||||
:poweroff "poweroff"
|
||||
:poweroff_icon "⏻"
|
||||
:reboot "reboot"
|
||||
:reboot_icon ""
|
||||
:logout "loginctl kill-session self"
|
||||
:logout_icon ""))
|
||||
|
||||
(defwidget _buttons [sleep sleep_icon poweroff poweroff_icon reboot reboot_icon logout logout_icon]
|
||||
(box :class "btns-box"
|
||||
(button :class "button" :onclick sleep sleep_icon)
|
||||
(button :class "button" :onclick poweroff poweroff_icon)
|
||||
(button :class "button" :onclick reboot reboot_icon)
|
||||
(button :class "button" :onclick logout logout_icon)))
|
|
@ -20,6 +20,10 @@ function launch-term
|
|||
docker exec -it core xterm -bg black -fg white -fa 'DejaVu Sans Mono' -fs 16 -e vcmd -c /tmp/pycore.1/$argv -- sh -c "cd /rust-cc && /bin/bash"
|
||||
end
|
||||
|
||||
function cat
|
||||
bat $argv
|
||||
end
|
||||
|
||||
function core
|
||||
xhost +local:root
|
||||
sudo docker exec -it core core-gui
|
||||
|
@ -42,11 +46,15 @@ function mónade
|
|||
end
|
||||
|
||||
set -gx EDITOR vim
|
||||
set -gx TERM 'xterm-256color'
|
||||
|
||||
fish_add_path $HOME/.nix-profile/bin
|
||||
fish_add_path /var/lib/snapd/snap/bin
|
||||
fish_add_path $HOME/.local/share/nvim/mason/bin
|
||||
set -q GHCUP_INSTALL_BASE_PREFIX[1]; or set GHCUP_INSTALL_BASE_PREFIX $HOME ; set -gx PATH $HOME/.cabal/bin /home/afonso/.ghcup/bin $PATH # ghcup-env
|
||||
#set -q GHCUP_INSTALL_BASE_PREFIX[1]; or set GHCUP_INSTALL_BASE_PREFIX $HOME ; set -gx PATH $HOME/.cabal/bin /home/afonso/.ghcup/bin $PATH # ghcup-env
|
||||
fish_add_path /home/afonso/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin
|
||||
fish_add_path $HOME/.local/bin
|
||||
fish_add_path $HOME/.cargo/bin
|
||||
|
||||
|
||||
set -q GHCUP_INSTALL_BASE_PREFIX[1]; or set GHCUP_INSTALL_BASE_PREFIX $HOME ; set -gx PATH $HOME/.cabal/bin /home/afonso/.ghcup/bin $PATH # ghcup-env
|
||||
|
|
190
.config/hypr/hyprland.conf
Normal file
190
.config/hypr/hyprland.conf
Normal file
|
@ -0,0 +1,190 @@
|
|||
|
||||
########################################################################################
|
||||
AUTOGENERATED HYPR CONFIG.
|
||||
PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
|
||||
OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
|
||||
########################################################################################
|
||||
|
||||
#
|
||||
# Please note not all available settings / options are set here.
|
||||
# For a full list, see the wiki
|
||||
#
|
||||
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor = DP-1,2560x1440@144, 0x0, 1
|
||||
workspace = DP-1,1
|
||||
monitor = HDMI-A-1,1920x1080@144,2560x0,1
|
||||
workspace = HDMI-A-1,2
|
||||
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
|
||||
# Execute your favorite apps at launch
|
||||
# exec-once = waybar & hyprpaper & firefox
|
||||
|
||||
# Source a file (multi-file configs)
|
||||
# source = ~/.config/hypr/myColors.conf
|
||||
|
||||
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
touchpad {
|
||||
natural_scroll = no
|
||||
}
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
}
|
||||
|
||||
general {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
gaps_in = 5
|
||||
gaps_out = 20
|
||||
border_size = 2
|
||||
col.active_border = rgba(00ff99ee)
|
||||
col.inactive_border = rgba(595959aa)
|
||||
|
||||
layout = master
|
||||
}
|
||||
|
||||
decoration {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
rounding = 10
|
||||
blur = yes
|
||||
blur_size = 3
|
||||
blur_passes = 1
|
||||
blur_new_optimizations = on
|
||||
|
||||
drop_shadow = yes
|
||||
shadow_range = 4
|
||||
shadow_render_power = 3
|
||||
col.shadow = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = yes
|
||||
|
||||
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
|
||||
animation = windows, 1, 7, myBezier
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 6, default
|
||||
}
|
||||
|
||||
dwindle {
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = yes # you probably want this
|
||||
}
|
||||
|
||||
master {
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
new_is_master = false
|
||||
}
|
||||
|
||||
gestures {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
workspace_swipe = off
|
||||
}
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
|
||||
device:epic mouse V1 {
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
# Example windowrule v1
|
||||
# windowrule = float, ^(kitty)$
|
||||
# Example windowrule v2
|
||||
windowrulev2 = float,class:^(Gimp)$
|
||||
windowrulev2 = float,class:^(QjackCtl)$
|
||||
windowrulev2 = float,class:^(Steam - News)$
|
||||
windowrulev2 = float,class:^(Friends List)$
|
||||
windowrulev2 = workspace 2,class:^(firefox)$
|
||||
windowrulev2 = workspace 5,class:^(discord)$
|
||||
windowrulev2 = workspace 6,class:^(Mailspring)$
|
||||
|
||||
|
||||
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
$mainMod = SUPER
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod, X, exec, alacritty
|
||||
bind = $mainMod, Q, killactive
|
||||
bind = $mainMod, P, exec, rofi -show drun
|
||||
bind = $mainMod, S, exec, "selected=$(ls ~/scripts/|rofi -dmenu -p \"Run: \") && bash ~/.config/rofi/scripts/$selected"
|
||||
bind = $mainMod, B, exec, firefox
|
||||
bind = $mainMod SHIFT, U , exit,
|
||||
bind = $mainMod , Return, layoutmsg , swapwithmaster
|
||||
bind = ,Print, exec, flameshot gui
|
||||
|
||||
#Special Fn Keys
|
||||
bind = ,XF86AudioMute, exec, pamixer set --toggle-mute
|
||||
bind = ,XF86AudioLowerVolume, exec, pamixer -d 5
|
||||
bind = ,XF86AudioRaiseVolume, exec, pamixer -i 5
|
||||
bind = ,XF86MonBrightnessUp, exec, lux -a 10%
|
||||
bind = ,XF86MonBrightnessDown, exec, lux -s 10%
|
||||
|
||||
# Move focus with mainMod + vim arrow keys
|
||||
bind = $mainMod, j, layoutmsg, cycleprev
|
||||
bind = $mainMod, k, layoutmsg, cyclenext
|
||||
bind = $mainMod SHIFT, j, layoutmsg, swapprev
|
||||
bind = $mainMod SHIFT, k, layoutmsg, swapnext
|
||||
bind = $mainMod, h, resizeactive, -50 0
|
||||
bind = $mainMod, l, resizeactive, 50 0
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, moveworkspacetomonitor, 1 current
|
||||
bind = $mainMod, 2, moveworkspacetomonitor, 2 current
|
||||
bind = $mainMod, 3, moveworkspacetomonitor, 3 current
|
||||
bind = $mainMod, 4, moveworkspacetomonitor, 4 current
|
||||
bind = $mainMod, 5, moveworkspacetomonitor, 5 current
|
||||
bind = $mainMod, 6, moveworkspacetomonitor, 6 current
|
||||
bind = $mainMod, 7, moveworkspacetomonitor, 7 current
|
||||
bind = $mainMod, 8, moveworkspacetomonitor, 8 current
|
||||
bind = $mainMod, 9, moveworkspacetomonitor, 9 current
|
||||
bind = $mainMod, 0, moveworkspacetomonitor, 10 current
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
#Move windows between monitors
|
||||
bind = $mainMod SHIFT, w, movewindow, mon:-1
|
||||
bind = $mainMod SHIFT, e, movewindow, mon:+1
|
||||
|
||||
#Move focus to monitor
|
||||
bind = $mainMod , w, focusmonitor, -1
|
||||
bind = $mainMod , e, focusmonitor, +1
|
||||
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
41
.config/kmonad/config.kbd
Normal file
41
.config/kmonad/config.kbd
Normal file
|
@ -0,0 +1,41 @@
|
|||
(defcfg
|
||||
input (device-file "/dev/input/by-id/usb-Kingston_HyperX_Alloy_FPS_Pro_Mechanical_Gaming_Keyboard-event-kbd")
|
||||
output (uinput-sink "My KMonad output")
|
||||
allow-cmd true
|
||||
fallthrough true
|
||||
)
|
||||
|
||||
#| SET DEFAULT LAYOUT |#
|
||||
|
||||
(defsrc
|
||||
esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 ssrq slck pause
|
||||
grv 1 2 3 4 5 6 7 8 9 0 - = bspc ins home pgup
|
||||
tab q w e r t y u i o p [ ] \ del end pgdn
|
||||
caps a s d f g h j k l ; ' ret
|
||||
lsft z x c v b n m , . / rsft up
|
||||
lctl lmet lalt spc ralt rmet cmp rctl left down rght
|
||||
)
|
||||
|
||||
#| SET KEY TO LAYOUT |#
|
||||
|
||||
(defalias esc (tap-hold 200 esc (layer-toggle numrow)))
|
||||
|
||||
#| LAYOUTS |#
|
||||
|
||||
(deflayer base
|
||||
esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 ssrq slck pause
|
||||
grv 1 2 3 4 5 6 7 8 9 0 - = bspc ins home pgup
|
||||
tab q w e r t y u i o p [ ] \ del end pgdn
|
||||
@esc a s d f g h j k l ; ' ret
|
||||
lsft z x c v b n m , . / rsft up
|
||||
lctl lmet lalt spc ralt rmet cmp rctl left down rght
|
||||
)
|
||||
|
||||
(deflayer numrow
|
||||
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|
||||
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|
||||
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|
||||
_ 1 2 3 4 5 6 7 8 9 0 _ _
|
||||
_ _ _ _ _ _ _ _ _ _ _ _ _
|
||||
_ _ _ _ _ _ _ _ _ _ _
|
||||
)
|
|
@ -1,149 +0,0 @@
|
|||
snippet templateHs "Start file with template"
|
||||
\documentclass{article}
|
||||
|
||||
%imports
|
||||
%include polycode.fmt
|
||||
%format (cond (p) (f) (g)) = "\mcond{" p "}{" f "}{" g "}"
|
||||
%format (div (x)(y)) = x "\div " y
|
||||
%format succ = "\succ "
|
||||
%format ==> = "\Longrightarrow "
|
||||
%format map = "\map "
|
||||
%format length = "\length "
|
||||
%format fst = "\p1"
|
||||
%format p1 = "\p1"
|
||||
%format snd = "\p2"
|
||||
%format p2 = "\p2"
|
||||
%format Left = "i_1"
|
||||
%format Right = "i_2"
|
||||
%format i1 = "i_1"
|
||||
%format i2 = "i_2"
|
||||
%format >< = "\times"
|
||||
%format >|< = "\bowtie "
|
||||
%format |-> = "\mapsto"
|
||||
%format . = "\comp "
|
||||
%format .=?=. = "\mathbin{\stackrel{\mathrm{?}}{=}}"
|
||||
%format (kcomp (f)(g)) = f "\kcomp " g
|
||||
%format -|- = "+"
|
||||
%format conc = "\mathsf{conc}"
|
||||
%format summation = "{\sum}"
|
||||
%format (either (a) (b)) = "\alt{" a "}{" b "}"
|
||||
%format (frac (a) (b)) = "\frac{" a "}{" b "}"
|
||||
%format (uncurry f) = "\uncurry{" f "}"
|
||||
%format (const (f)) = "\underline{" f "}"
|
||||
%format TLTree = "\mathsf{TLTree}"
|
||||
%format (lcbr (x)(y)) = "\begin{lcbr}" x "\\" y "\end{lcbr}"
|
||||
%format (split (x) (y)) = "\conj{" x "}{" y "}"
|
||||
%format (for (f) (i)) = "\for{" f "}\ {" i "}"
|
||||
%format B_tree = "\mathsf{B}\mbox{-}\mathsf{tree} "
|
||||
\def\ana#1{\mathopen{[\!(}#1\mathclose{)\!]}}
|
||||
%format <$> = "\mathbin{\mathopen{\langle}\$\mathclose{\rangle}}"
|
||||
%format Either a b = a "+" b
|
||||
%format fmap = "\mathsf{fmap}"
|
||||
%format NA = "\textsc{na}"
|
||||
%format NB = "\textsc{nb}"
|
||||
%format inT = "\mathsf{in}"
|
||||
%format outT = "\mathsf{out}"
|
||||
%format outLTree = "\mathsf{out}"
|
||||
%format inLTree = "\mathsf{in}"
|
||||
%format inFTree = "\mathsf{in}"
|
||||
%format outFTree = "\mathsf{out}"
|
||||
%format Null = "1"
|
||||
%format (Prod (a) (b)) = a >< b
|
||||
%format fF = "\fun F "
|
||||
%format k1 = "k_1 "
|
||||
%format k2 = "k_2 "
|
||||
%format h1 = "h_1 "
|
||||
%format h2 = "h_2 "
|
||||
%format f1 = "f_1 "
|
||||
%format f2 = "f_2 "
|
||||
%format l1 = "l_1 "
|
||||
%format map1 = "map_1 "
|
||||
%format map2 = "map_2 "
|
||||
%format map3 = "map_3"
|
||||
%format l2 = "l_2 "
|
||||
%format Dist = "\fun{Dist}"
|
||||
%format IO = "\fun{IO}"
|
||||
%format LTree = "{\LTree}"
|
||||
%format FTree = "{\FTree}"
|
||||
%format inNat = "\mathsf{in}"
|
||||
%format (cata (f)) = "\cata{" f "}"
|
||||
%format (cataNat (g)) = "\cataNat{" g "}"
|
||||
%format (cataList (g)) = "\cataList{" g "}"
|
||||
%format (anaList (g)) = "\anaList{" g "}"
|
||||
%format Nat0 = "\N_0"
|
||||
%format Rational = "\Q "
|
||||
%format toRational = " to_\Q "
|
||||
%format fromRational = " from_\Q "
|
||||
%format muB = "\mu "
|
||||
%format (frac (n)(m)) = "\frac{" n "}{" m "}"
|
||||
%format (fac (n)) = "{" n "!}"
|
||||
%format (underbrace (t) (p)) = "\underbrace{" t "}_{" p "}"
|
||||
%format matrix = "matrix"
|
||||
%%format (bin (n) (k)) = "\Big(\vcenter{\xymatrix@R=1pt{" n "\\" k "}}\Big)"
|
||||
%format `ominus` = "\mathbin{\ominus}"
|
||||
%format % = "\mathbin{/}"
|
||||
%format <-> = "{\,\leftrightarrow\,}"
|
||||
%format <|> = "{\,\updownarrow\,}"
|
||||
%format `minusNat`= "\mathbin{-}"
|
||||
%format ==> = "\Rightarrow"
|
||||
%format .==>. = "\Rightarrow"
|
||||
%format .<==>. = "\Leftrightarrow"
|
||||
%format .==. = "\equiv"
|
||||
%format .<=. = "\leq"
|
||||
%format .&&&. = "\wedge"
|
||||
%format cdots = "\cdots "
|
||||
%format pi = "\pi "
|
||||
%format (curry (f)) = "\overline{" f "}"
|
||||
%format (cataLTree (x)) = "\llparenthesis\, " x "\,\rrparenthesis"
|
||||
%format (cataFTree (x)) = "\llparenthesis\, " x "\,\rrparenthesis"
|
||||
%format (anaLTree (x)) = "\mathopen{[\!(}" x "\mathclose{)\!]}"
|
||||
%format delta = "\Delta "
|
||||
%format (plus (f)(g)) = "{" f "}\plus{" g "}"
|
||||
%format ++ = "\mathbin{+\!\!\!+}"
|
||||
%format Integer = "\mathbb{Z}"
|
||||
\def\plus{\mathbin{\dagger}}
|
||||
\usepackage[all]{xy}
|
||||
\usepackage{mathtools}
|
||||
\usepackage[a4paper,left=3cm,right=2cm,top=2.5cm,bottom=2.5cm]{geometry}
|
||||
\usepackage{palatino}
|
||||
\usepackage[colorlinks=true,linkcolor=blue,citecolor=blue]{hyperref}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{cp2122t}
|
||||
\usepackage{subcaption}
|
||||
\usepackage{adjustbox}
|
||||
\usepackage{color}
|
||||
|
||||
|
||||
\title{\Huge{Some Class}}
|
||||
\author{\huge{Afonso Franco}}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\maketitle
|
||||
\newpage
|
||||
|
||||
\tableofcontents
|
||||
\pagebreak
|
||||
|
||||
$1
|
||||
|
||||
\end{document}
|
||||
endsnippet
|
||||
|
||||
snippet rule "Add CP rule"
|
||||
\equiv \\{\text{Propriedade ${1:Nome/Numero}}\\}\\\\
|
||||
endsnippet
|
||||
|
||||
snippet split "Add CP split"
|
||||
\langle $1 \rangle
|
||||
endsnippet
|
||||
|
||||
snippet diagram "Create diagram template"
|
||||
\xymatrix{
|
||||
$1
|
||||
}
|
||||
endsnippet
|
||||
|
||||
snippet arrow "Create arrow in diagram"
|
||||
\ar[${1:direction}]^{${2:functions}}
|
||||
endsnippet
|
4
.config/nvim/ftdetect/hypr.vim
Normal file
4
.config/nvim/ftdetect/hypr.vim
Normal file
|
@ -0,0 +1,4 @@
|
|||
augroup hypr_ftdetect
|
||||
au!
|
||||
au BufRead,BufNewFile *hypr/*.conf,*hypr/*/*.conf set ft=hypr
|
||||
augroup END
|
1
.config/nvim/ftplugin/haskell.lua
Normal file
1
.config/nvim/ftplugin/haskell.lua
Normal file
|
@ -0,0 +1 @@
|
|||
vim.opt_local.formatprg = "floskell --style chris-done"
|
1
.config/nvim/ftplugin/hypr.vim
Normal file
1
.config/nvim/ftplugin/hypr.vim
Normal file
|
@ -0,0 +1 @@
|
|||
setlocal commentstring=#\ %s
|
|
@ -1,23 +1,3 @@
|
|||
|
||||
|
||||
local install_path = vim.fn.stdpath("data").."/site/pack/packer/start/packer.nvim"
|
||||
if vim.fn.empty(vim.fn.glob(install_path)) > 0 then
|
||||
print("Downloading Packer ...")
|
||||
vim.fn.system({"git", "clone", "https://github.com/wbthomason/packer.nvim", install_path})
|
||||
vim.api.nvim_command("packadd packer.nvim")
|
||||
require("plugins.packer")
|
||||
require("packer").sync()
|
||||
end
|
||||
|
||||
require("core.variables")
|
||||
require('core.package_manager')
|
||||
require('impatient')
|
||||
require('plugins.theme')
|
||||
|
||||
Config = {
|
||||
theme="onedark",
|
||||
statusline = {
|
||||
minimal = false
|
||||
}
|
||||
}
|
||||
|
||||
-- Mapping
|
||||
require("mappings")
|
||||
|
|
37
.config/nvim/lazy-lock.json
Normal file
37
.config/nvim/lazy-lock.json
Normal file
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
"LuaSnip": { "branch": "master", "commit": "3181cef8a5c6a71f263a28e61651233d7a7afeb2" },
|
||||
"bufferline.nvim": { "branch": "main", "commit": "028a87933d99f8bb88f2f70a4def3ff9574f3594" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||
"cmp-cmdline": { "branch": "main", "commit": "23c51b2a3c00f6abc4e922dbd7c3b9aca6992063" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "59224771f91b86d1de12570b4070fe4ad7cd1eeb" },
|
||||
"cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "d2768cb1b83de649d57d967085fe73c5e01f8fd7" },
|
||||
"cmp-nvim-lua": { "branch": "main", "commit": "f3491638d123cfd2c8048aefaf66d246ff250ca6" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" },
|
||||
"dressing.nvim": { "branch": "master", "commit": "4436d6f41e2f6b8ada57588acd1a9f8b3d21453c" },
|
||||
"fidget.nvim": { "branch": "main", "commit": "44585a0c0085765195e6961c15529ba6c5a2a13b" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "046e4d3491baf664e0eef5231d28beb49333578b" },
|
||||
"impatient.nvim": { "branch": "main", "commit": "c90e273f7b8c50a02f956c24ce4804a47f18162e" },
|
||||
"kmonad-vim": { "branch": "master", "commit": "37978445197ab00edeb5b731e9ca90c2b141723f" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "15fe46a728b7473d4cae368838bbc1c79c3a3f48" },
|
||||
"leap.nvim": { "branch": "main", "commit": "ff4c3663e5a0a0ecbb3fffbc8318825def35d2aa" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "0050b308552e45f7128f399886c86afefc3eb988" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "c29f9a9f9b01528ca6a44cd14814f5af20778f7a" },
|
||||
"mason.nvim": { "branch": "main", "commit": "e7303a1632c004ebd2dcd0be1aaa4354586c030b" },
|
||||
"null-ls.nvim": { "branch": "main", "commit": "2ff0a4ed1985d04bae3f21915ee0b1be3932c164" },
|
||||
"nvim": { "branch": "main", "commit": "6368edcd0b5e5cb5d9fb7cdee9d62cffe3e14f0e" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "31042a5823b55c4bfb30efcbba2fc1b5b53f90dc" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "11a95792a5be0f5a40bab5fc5b670e5b1399a939" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "1d3203b4c39ea5ec63cf1271d9e3b14a91706897" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "d508f9aceb8f1e3138aaea60ca5610a24d6561b6" },
|
||||
"nvim-treesitter-context": { "branch": "master", "commit": "cacee4828152dd3a83736169ae61bbcd29a3d213" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "3548363849878ef895ce54edda02421279b419d8" },
|
||||
"onedark.vim": { "branch": "main", "commit": "b6b5ffe31a195a3077338d7a506b905e4a51590f" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "1c7e3e6b0f4dd5a174fcea9fda8a4d7de593b826" },
|
||||
"startup.nvim": { "branch": "master", "commit": "b060480d2e647534faf70fa1263fe7623b77b0ce" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "b79cd6c88b3d96b0f49cb7d240807cd59b610cd8" },
|
||||
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
|
||||
"vimtex": { "branch": "master", "commit": "c77ec4e15768ffcb97a96d1bf2df1ef58e94acdd" },
|
||||
"yuck.vim": { "branch": "master", "commit": "9b5e0370f70cc30383e1dabd6c215475915fe5c3" },
|
||||
"zen-mode.nvim": { "branch": "main", "commit": "2c8f9f3758a4c430ff867e547741424ac16208bb" }
|
||||
}
|
17
.config/nvim/lua/core/package_manager.lua
Normal file
17
.config/nvim/lua/core/package_manager.lua
Normal file
|
@ -0,0 +1,17 @@
|
|||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
|
||||
if not vim.loop.fs_stat(lazypath) then
|
||||
vim.fn.system({
|
||||
"git",
|
||||
"clone",
|
||||
"--filter=blob:none",
|
||||
"https://github.com/folke/lazy.nvim.git",
|
||||
"--branch=stable", -- latest stable release
|
||||
lazypath,
|
||||
})
|
||||
end
|
||||
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
--Call lazy config here
|
||||
require('plugins.lazy')
|
32
.config/nvim/lua/core/variables.lua
Normal file
32
.config/nvim/lua/core/variables.lua
Normal file
|
@ -0,0 +1,32 @@
|
|||
--Leader
|
||||
vim.g.mapleader = " "
|
||||
--termguicolors
|
||||
vim.opt.termguicolors = true
|
||||
--Relative line numbers
|
||||
vim.wo.number=true
|
||||
vim.wo.relativenumber= true
|
||||
--Remove search highlight
|
||||
vim.opt.hlsearch = false
|
||||
vim.opt.incsearch = true
|
||||
vim.opt.smartindent = true
|
||||
--Move lines
|
||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
||||
--Remove Wrap
|
||||
vim.opt.wrap = false
|
||||
--Not let cursor go bellow 10 chars.
|
||||
vim.opt.scrolloff = 10
|
||||
--4 space indent
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.softtabstop = 4
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.expandtab = true
|
||||
--quickfix keybinds
|
||||
vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz")
|
||||
vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz")
|
||||
--Undo dir
|
||||
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
|
||||
vim.opt.undofile = true
|
||||
--Org mode hide links
|
||||
vim.opt.conceallevel = 2
|
||||
vim.opt.concealcursor = 'nc'
|
|
@ -1,64 +0,0 @@
|
|||
--Leader
|
||||
vim.g.mapleader = " "
|
||||
--Relative line numbers
|
||||
vim.wo.number=true
|
||||
vim.wo.relativenumber= true
|
||||
--Remove search highlight
|
||||
vim.opt.hlsearch = false
|
||||
vim.opt.incsearch = true
|
||||
vim.opt.smartindent = true
|
||||
--Move lines
|
||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
||||
--Remove Wrap
|
||||
vim.opt.wrap = false
|
||||
--Not let cursor go bellow 10 chars.
|
||||
vim.opt.scrolloff = 10
|
||||
--4 space indent
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.softtabstop = 4
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.expandtab = true
|
||||
--quickfix keybinds
|
||||
vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz")
|
||||
vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz")
|
||||
--Undo dir
|
||||
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
|
||||
vim.opt.undofile = true
|
||||
--TAB KEYBINDINGS
|
||||
local map = vim.api.nvim_set_keymap
|
||||
local opts = { noremap = true, silent = true }
|
||||
|
||||
-- Move to previous/next
|
||||
map('n', '<A-,>', '<Cmd>BufferPrevious<CR>', opts)
|
||||
map('n', '<A-.>', '<Cmd>BufferNext<CR>', opts)
|
||||
-- Re-order to previous/next
|
||||
map('n', '<A-<>', '<Cmd>BufferMovePrevious<CR>', opts)
|
||||
map('n', '<A->>', '<Cmd>BufferMoveNext<CR>', opts)
|
||||
-- Goto buffer in position...
|
||||
map('n', '<A-1>', '<Cmd>BufferGoto 1<CR>', opts)
|
||||
map('n', '<A-2>', '<Cmd>BufferGoto 2<CR>', opts)
|
||||
map('n', '<A-3>', '<Cmd>BufferGoto 3<CR>', opts)
|
||||
map('n', '<A-4>', '<Cmd>BufferGoto 4<CR>', opts)
|
||||
map('n', '<A-5>', '<Cmd>BufferGoto 5<CR>', opts)
|
||||
map('n', '<A-6>', '<Cmd>BufferGoto 6<CR>', opts)
|
||||
map('n', '<A-7>', '<Cmd>BufferGoto 7<CR>', opts)
|
||||
map('n', '<A-8>', '<Cmd>BufferGoto 8<CR>', opts)
|
||||
map('n', '<A-9>', '<Cmd>BufferGoto 9<CR>', opts)
|
||||
map('n', '<A-0>', '<Cmd>BufferLast<CR>', opts)
|
||||
-- Pin/unpin buffer
|
||||
map('n', '<A-p>', '<Cmd>BufferPin<CR>', opts)
|
||||
-- Close buffer
|
||||
map('n', '<A-c>', '<Cmd>BufferClose<CR>', opts)
|
||||
-- Magic buffer-picking mode
|
||||
map('n', '<C-p>', '<Cmd>BufferPick<CR>', opts)
|
||||
-- Sort automatically by...
|
||||
map('n', '<Space>bb', '<Cmd>BufferOrderByBufferNumber<CR>', opts)
|
||||
map('n', '<Space>bd', '<Cmd>BufferOrderByDirectory<CR>', opts)
|
||||
map('n', '<Space>bl', '<Cmd>BufferOrderByLanguage<CR>', opts)
|
||||
map('n', '<Space>bw', '<Cmd>BufferOrderByWindowNumber<CR>', opts)
|
||||
|
||||
--NVimTree
|
||||
map('n', '<C-n>', '<Cmd>NvimTreeToggle<CR>',opts)
|
||||
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
-- Set barbar's options
|
||||
require'bufferline'.setup {
|
||||
-- Enable/disable animations
|
||||
animation = true,
|
||||
|
||||
-- Enable/disable auto-hiding the tab bar when there is a single buffer
|
||||
auto_hide = false,
|
||||
|
||||
-- Enable/disable current/total tabpages indicator (top right corner)
|
||||
tabpages = true,
|
||||
|
||||
-- Enable/disable close button
|
||||
closable = true,
|
||||
|
||||
-- Enables/disable clickable tabs
|
||||
-- - left-click: go to buffer
|
||||
-- - middle-click: delete buffer
|
||||
clickable = true,
|
||||
|
||||
-- Excludes buffers from the tabline
|
||||
exclude_ft = {'javascript'},
|
||||
exclude_name = {'package.json'},
|
||||
|
||||
-- Show every buffer
|
||||
hide = {current = false, inactive = false, visible = false},
|
||||
|
||||
|
||||
-- Enable/disable icons
|
||||
-- if set to 'numbers', will show buffer index in the tabline
|
||||
-- if set to 'both', will show buffer index and icons in the tabline
|
||||
icons = true,
|
||||
|
||||
-- If set, the icon color will follow its corresponding buffer
|
||||
-- highlight group. By default, the Buffer*Icon group is linked to the
|
||||
-- Buffer* group (see Highlighting below). Otherwise, it will take its
|
||||
-- default value as defined by devicons.
|
||||
icon_custom_colors = false,
|
||||
|
||||
-- Configure icons on the bufferline.
|
||||
icon_separator_active = '▎',
|
||||
icon_separator_inactive = '▎',
|
||||
icon_close_tab = '',
|
||||
icon_close_tab_modified = '●',
|
||||
icon_pinned = '車',
|
||||
|
||||
-- If true, new buffers will be inserted at the start/end of the list.
|
||||
-- Default is to insert after current buffer.
|
||||
insert_at_end = false,
|
||||
insert_at_start = false,
|
||||
|
||||
-- Sets the maximum padding width with which to surround each tab
|
||||
maximum_padding = 1,
|
||||
|
||||
-- Sets the minimum padding width with which to surround each tab
|
||||
minimum_padding = 1,
|
||||
|
||||
-- Sets the maximum buffer name length.
|
||||
maximum_length = 30,
|
||||
|
||||
-- If set, the letters for each buffer in buffer-pick mode will be
|
||||
-- assigned based on their name. Otherwise or in case all letters are
|
||||
-- already assigned, the behavior is to assign letters in order of
|
||||
-- usability (see order below)
|
||||
semantic_letters = true,
|
||||
|
||||
-- New buffer letters are assigned in this order. This order is
|
||||
-- optimal for the qwerty keyboard layout but might need adjustement
|
||||
-- for other layouts.
|
||||
letters = 'asdfjkl;ghnmxcvbziowerutyqpASDFJKLGHNMXCVBZIOWERUTYQP',
|
||||
|
||||
-- Sets the name of unnamed buffers. By default format is "[Buffer X]"
|
||||
-- where X is the buffer number. But only a static string is accepted here.
|
||||
no_name_title = nil,
|
||||
}
|
76
.config/nvim/lua/plugins/bufferline.lua
Normal file
76
.config/nvim/lua/plugins/bufferline.lua
Normal file
|
@ -0,0 +1,76 @@
|
|||
--KEYBINDINGS
|
||||
local map = vim.api.nvim_set_keymap
|
||||
local opts = { noremap = true, silent = true }
|
||||
|
||||
-- Move to previous/next
|
||||
map('n', '<A-,>', '<Cmd>BufferLineCyclePrev<CR>', opts)
|
||||
map('n', '<A-.>', '<Cmd>BufferLineCycleNext<CR>', opts)
|
||||
-- Re-order to previous/next
|
||||
map('n', '<A-<>', '<Cmd>BufferLineMovePrevious<CR>', opts)
|
||||
map('n', '<A->>', '<Cmd>BufferLineMoveNext<CR>', opts)
|
||||
-- Goto buffer in position...
|
||||
map('n', '<A-1>', '<Cmd>BufferLineGoToBuffer 1<CR>', opts)
|
||||
map('n', '<A-2>', '<Cmd>BufferLineGoToBuffer 2<CR>', opts)
|
||||
map('n', '<A-3>', '<Cmd>BufferLineGoToBuffer 3<CR>', opts)
|
||||
map('n', '<A-4>', '<Cmd>BufferLineGoToBuffer 4<CR>', opts)
|
||||
map('n', '<A-5>', '<Cmd>BufferLineGoToBuffer 5<CR>', opts)
|
||||
map('n', '<A-6>', '<Cmd>BufferLineGoToBuffer 6<CR>', opts)
|
||||
map('n', '<A-7>', '<Cmd>BufferLineGoToBuffer 7<CR>', opts)
|
||||
map('n', '<A-8>', '<Cmd>BufferLineGoToBuffer 8<CR>', opts)
|
||||
map('n', '<A-9>', '<Cmd>BufferLineGoToBuffer 9<CR>', opts)
|
||||
-- Close buffer
|
||||
map('n', '<A-c>', '<Cmd>BufferLinePickClose<CR>', opts)
|
||||
|
||||
-- Set bufferline's options
|
||||
require("bufferline").setup({
|
||||
options = {
|
||||
mode = "buffers",
|
||||
numbers = "none",
|
||||
close_command = "bdelete! %d",
|
||||
right_mouse_command = "bdelete! %d",
|
||||
left_mouse_command = "buffer %d",
|
||||
middle_mouse_command = "bdelete! %d",
|
||||
indicator = {
|
||||
icon = "▎",
|
||||
style = "icon",
|
||||
},
|
||||
buffer_close_icon = '',
|
||||
modified_icon = '●',
|
||||
close_icon = '',
|
||||
left_trunc_marker = '',
|
||||
right_trunc_marker = '',
|
||||
max_name_length = 18,
|
||||
max_prefix_length = 15,
|
||||
truncate_names = true,
|
||||
tab_size = 18,
|
||||
diagnostics = "nvim_lsp",
|
||||
diagnostics_update_in_insert = true,
|
||||
diagnostics_indicator = function(count, level, diagnostics_dict, context)
|
||||
return "(" .. count .. ")"
|
||||
end,
|
||||
color_icons = true,
|
||||
show_buffer_icons = true,
|
||||
show_buffer_close_icons = true,
|
||||
show_buffer_default_icon = true,
|
||||
show_close_icon = true,
|
||||
show_tab_indicators = true,
|
||||
show_duplicate_prefix = true,
|
||||
persist_buffer_sort = true,
|
||||
separator_style = "slant",
|
||||
enforce_regular_tabs = true,
|
||||
always_show_bufferline = true,
|
||||
hover = {
|
||||
enabled = true,
|
||||
delay = 200,
|
||||
reveal = { 'close' }
|
||||
},
|
||||
sort_by = 'insert_after_current',
|
||||
custom_filter = function(buf_number, buf_numbers)
|
||||
-- filter out filetypes you don't want to see
|
||||
if vim.bo[buf_number].filetype ~= "" then
|
||||
return true
|
||||
end
|
||||
end,
|
||||
},
|
||||
highlights = require("catppuccin.groups.integrations.bufferline").get()
|
||||
})
|
41
.config/nvim/lua/plugins/catppuccin.lua
Normal file
41
.config/nvim/lua/plugins/catppuccin.lua
Normal file
|
@ -0,0 +1,41 @@
|
|||
--local colorscheme = "onedark"
|
||||
|
||||
require("catppuccin").setup({
|
||||
flavour = "frappe", -- latte, frappe, macchiato, mocha
|
||||
styles = {
|
||||
comments = { "italic" },
|
||||
conditionals = { "italic" },
|
||||
},
|
||||
integrations = {
|
||||
cmp = true,
|
||||
treesitter = true,
|
||||
treesitter_context = true,
|
||||
fidget = true,
|
||||
telescope = true,
|
||||
leap = true,
|
||||
mason = true,
|
||||
native_lsp = {
|
||||
enabled = true,
|
||||
virtual_text = {
|
||||
errors = { "italic" },
|
||||
hints = { "italic" },
|
||||
warnings = { "italic" },
|
||||
information = { "italic" },
|
||||
},
|
||||
underlines = {
|
||||
errors = { "underline" },
|
||||
hints = { "underline" },
|
||||
warnings = { "underline" },
|
||||
information = { "underline" },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
local colorscheme = "catppuccin"
|
||||
|
||||
local status_ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme)
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
|
@ -52,8 +52,6 @@ cmp.setup {
|
|||
end,
|
||||
},
|
||||
mapping = {
|
||||
["<C-k>"] = cmp.mapping.select_prev_item(),
|
||||
["<C-j>"] = cmp.mapping.select_next_item(),
|
||||
["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }),
|
||||
["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }),
|
||||
["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
|
||||
|
@ -62,13 +60,10 @@ cmp.setup {
|
|||
i = cmp.mapping.abort(),
|
||||
c = cmp.mapping.close(),
|
||||
},
|
||||
-- Accept currently selected item. If none selected, `select` first item.
|
||||
-- Set `select` to `false` to only confirm explicitly selected items.
|
||||
["<CR>"] = cmp.mapping.confirm { select = true },
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expandable() then
|
||||
-- Accept currently selected item. If none selected, do nothing.
|
||||
["<CR>"] = cmp.mapping.confirm { select = false },
|
||||
["<C-k>"] = cmp.mapping(function(fallback)
|
||||
if luasnip.expandable() then
|
||||
luasnip.expand()
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
|
@ -77,6 +72,21 @@ cmp.setup {
|
|||
else
|
||||
fallback()
|
||||
end
|
||||
end),
|
||||
["<C-j>"] = cmp.mapping(function(fallback)
|
||||
if luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end
|
||||
),
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, {
|
||||
"i",
|
||||
"s",
|
||||
|
@ -84,8 +94,6 @@ cmp.setup {
|
|||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
|
@ -125,8 +133,7 @@ cmp.setup {
|
|||
local kind = entry:get_kind()
|
||||
local line = context.cursor_line
|
||||
local col = context.cursor.col
|
||||
local char_before_cursor = string.sub(line, col - 1, col)
|
||||
|
||||
local char_before_cursor = string.sub(line, col - 1, col - 1)
|
||||
|
||||
if char_before_cursor == "." then
|
||||
if kind == 2 or kind == 5 then
|
||||
|
@ -144,13 +151,16 @@ cmp.setup {
|
|||
|
||||
},
|
||||
{ name = 'nvim_lua' },
|
||||
{ name = 'luasnip'},
|
||||
{ name = 'luasnip' },
|
||||
{ name = 'nvim_lsp_signature_help' },
|
||||
{ name = "path" },
|
||||
},
|
||||
{
|
||||
--This sources will only show up if there aren't any sources from the other list
|
||||
{ name = "buffer", keyword_length = 5 },
|
||||
},
|
||||
{
|
||||
{ name = "orgmode" }
|
||||
}
|
||||
),
|
||||
confirm_opts = {
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
vim.g.coq_settings = {
|
||||
auto_start = 'shut-up',
|
||||
clients = {
|
||||
tmux = { enabled = false },
|
||||
},
|
||||
}
|
153
.config/nvim/lua/plugins/lazy.lua
Normal file
153
.config/nvim/lua/plugins/lazy.lua
Normal file
|
@ -0,0 +1,153 @@
|
|||
local lazy = require('lazy')
|
||||
|
||||
lazy.setup({
|
||||
|
||||
'lewis6991/impatient.nvim',
|
||||
|
||||
-------------------------------------------THEMES------------------------------------------
|
||||
'joshdick/onedark.vim',
|
||||
{ 'catppuccin/nvim',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
require('plugins.catppuccin')
|
||||
end
|
||||
},
|
||||
-------------------------------------------------------QOL---------------------------------
|
||||
--better navigation with 's-letter'
|
||||
{ 'ggandor/leap.nvim',
|
||||
config = function()
|
||||
require('leap').add_default_mappings()
|
||||
end
|
||||
},
|
||||
|
||||
{ 'folke/zen-mode.nvim',
|
||||
config = function()
|
||||
require("zen-mode").setup {
|
||||
vim.keymap.set('n', '<leader>z', '<Cmd> ZenMode <CR>',{noremap=true,silent=true})
|
||||
}
|
||||
end
|
||||
},
|
||||
|
||||
--Change add and remove surroundings from words
|
||||
'tpope/vim-surround',
|
||||
|
||||
-- Rename variable pop up
|
||||
'stevearc/dressing.nvim',
|
||||
|
||||
{ 'windwp/nvim-autopairs',
|
||||
config = function() require('nvim-autopairs').setup {}
|
||||
end
|
||||
},
|
||||
|
||||
'nvim-tree/nvim-web-devicons',
|
||||
|
||||
{
|
||||
'nvim-lualine/lualine.nvim',
|
||||
dependencies = { 'nvim-tree/nvim-web-devicons', opt = true },
|
||||
config = function()
|
||||
require 'plugins.lualine'
|
||||
end
|
||||
},
|
||||
|
||||
-------------------------------------------------------LSP----------------------------------------------
|
||||
{ 'hrsh7th/nvim-cmp',
|
||||
dependencies = {
|
||||
'hrsh7th/cmp-nvim-lsp', -- lsp
|
||||
'hrsh7th/cmp-nvim-lua', -- Nvim API completions
|
||||
'hrsh7th/cmp-nvim-lsp-signature-help', -- Show function signatures
|
||||
'hrsh7th/cmp-buffer', --buffer completions
|
||||
'hrsh7th/cmp-path', --path completions
|
||||
'hrsh7th/cmp-cmdline', --cmdline completions
|
||||
'L3MON4D3/LuaSnip',
|
||||
'rafamadriz/friendly-snippets',
|
||||
'saadparwaiz1/cmp_luasnip',
|
||||
},
|
||||
config = function()
|
||||
require 'plugins.cmp'
|
||||
end
|
||||
},
|
||||
|
||||
--LSP Status
|
||||
{ 'j-hui/fidget.nvim',
|
||||
config = function()
|
||||
require('fidget').setup {
|
||||
window = {
|
||||
blend = 0,
|
||||
}
|
||||
}
|
||||
end
|
||||
},
|
||||
|
||||
{ 'williamboman/mason.nvim',
|
||||
config = function()
|
||||
require 'plugins.mason'
|
||||
end
|
||||
},
|
||||
|
||||
'williamboman/mason-lspconfig.nvim',
|
||||
|
||||
{ 'neovim/nvim-lspconfig',
|
||||
config = function()
|
||||
require 'plugins.lspconfig'
|
||||
end
|
||||
},
|
||||
|
||||
{ 'jose-elias-alvarez/null-ls.nvim',
|
||||
config = function()
|
||||
require 'plugins.null-ls'
|
||||
end
|
||||
},
|
||||
|
||||
{ 'lervag/vimtex',
|
||||
config = function()
|
||||
require 'plugins.vimtex'
|
||||
end
|
||||
},
|
||||
-------------------------------------------------------------------------------------------
|
||||
-- Syntax Highlighting
|
||||
{ 'nvim-treesitter/nvim-treesitter',
|
||||
config = function()
|
||||
require 'plugins.treesitter'
|
||||
end
|
||||
},
|
||||
|
||||
--Sticky headers
|
||||
{ 'nvim-treesitter/nvim-treesitter-context',
|
||||
config = function()
|
||||
require 'plugins.treesitter-context'
|
||||
end
|
||||
},
|
||||
|
||||
--Tabs
|
||||
{ 'akinsho/bufferline.nvim',
|
||||
version = 'v3.*',
|
||||
dependencies = 'nvim-tree/nvim-web-devicons',
|
||||
config = function()
|
||||
require("plugins.bufferline")
|
||||
end
|
||||
},
|
||||
|
||||
--does so much
|
||||
{
|
||||
'nvim-telescope/telescope.nvim', tag = '0.1.0',
|
||||
-- or , branch = '0.1.x',
|
||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||
config = function() require('plugins.telescope') end
|
||||
},
|
||||
|
||||
|
||||
--Main menu
|
||||
{ 'startup-nvim/startup.nvim',
|
||||
dependencies = { 'nvim-telescope/telescope.nvim', 'nvim-lua/plenary.nvim' },
|
||||
config = function()
|
||||
require('startup').setup { theme = 'dashboard' }
|
||||
end,
|
||||
},
|
||||
|
||||
-------------------------------------------SYNTAX----------------------------------------------
|
||||
'kmonad/kmonad-vim',
|
||||
'elkowar/yuck.vim'
|
||||
|
||||
|
||||
})
|
|
@ -1,7 +1,7 @@
|
|||
require('lualine').setup {
|
||||
options = {
|
||||
icons_enabled = true,
|
||||
theme = 'auto',
|
||||
theme = 'catppuccin',
|
||||
component_separators = { left = '', right = ''},
|
||||
section_separators = { left = '', right = ''},
|
||||
disabled_filetypes = {
|
||||
|
@ -21,7 +21,7 @@ require('lualine').setup {
|
|||
lualine_a = {'mode'},
|
||||
lualine_b = {'branch', 'diff', 'diagnostics'},
|
||||
lualine_c = {'filename'},
|
||||
lualine_x = {'encoding', 'fileformat', 'filetype'},
|
||||
lualine_x = {'lsp', 'fileformat', 'filetype'},
|
||||
lualine_y = {'progress'},
|
||||
lualine_z = {'location'}
|
||||
},
|
||||
|
|
|
@ -1,162 +0,0 @@
|
|||
local packer = require("packer")
|
||||
|
||||
local plugins = packer.startup({ function(use)
|
||||
|
||||
use {
|
||||
"wbthomason/packer.nvim",
|
||||
config = [[require("plugins.packer")]]
|
||||
}
|
||||
|
||||
use { "lewis6991/impatient.nvim" }
|
||||
|
||||
|
||||
use { "lervag/vimtex",
|
||||
config = function()
|
||||
require "plugins.vimtex"
|
||||
end
|
||||
}
|
||||
|
||||
-------------------------------------------------------QOL----------------------------------------------
|
||||
|
||||
use { "ggandor/leap.nvim",
|
||||
config = function()
|
||||
require('leap').add_default_mappings()
|
||||
end
|
||||
}
|
||||
|
||||
use { "stevearc/dressing.nvim" } -- Rename variable pop up
|
||||
|
||||
use { "windwp/nvim-autopairs",
|
||||
config = function() require("nvim-autopairs").setup {}
|
||||
end
|
||||
}
|
||||
|
||||
use { "kyazdani42/nvim-web-devicons" }
|
||||
|
||||
use {
|
||||
"nvim-lualine/lualine.nvim",
|
||||
requires = { "kyazdani42/nvim-web-devicons", opt = true },
|
||||
config = function()
|
||||
require 'plugins.lualine'
|
||||
end
|
||||
}
|
||||
|
||||
use {"j-hui/fidget.nvim",
|
||||
config = function ()
|
||||
require("fidget").setup{}
|
||||
end
|
||||
}
|
||||
|
||||
use {"voldikss/vim-floaterm"}
|
||||
|
||||
--------------------------------------------------SUGGESTION BOX-----------------------------------------
|
||||
use { "hrsh7th/nvim-cmp",
|
||||
requires = {
|
||||
"hrsh7th/cmp-nvim-lsp", -- lsp
|
||||
"hrsh7th/cmp-nvim-lua", -- Nvim API completions
|
||||
"hrsh7th/cmp-nvim-lsp-signature-help", -- Show function signatures
|
||||
"hrsh7th/cmp-buffer", --buffer completions
|
||||
"hrsh7th/cmp-path", --path completions
|
||||
"hrsh7th/cmp-cmdline" --cmdline completions
|
||||
},
|
||||
config = function()
|
||||
require "plugins.cmp"
|
||||
end
|
||||
}
|
||||
|
||||
use { "L3MON4D3/LuaSnip",
|
||||
requires = {
|
||||
"saadparwaiz1/cmp_luasnip"
|
||||
},
|
||||
}
|
||||
-------------------------------------------------------LSP----------------------------------------------
|
||||
|
||||
use { "williamboman/mason.nvim",
|
||||
config = function()
|
||||
require "plugins.mason"
|
||||
end
|
||||
}
|
||||
|
||||
use { "williamboman/mason-lspconfig.nvim" }
|
||||
|
||||
use { "neovim/nvim-lspconfig",
|
||||
config = function()
|
||||
require "plugins.lspconfig"
|
||||
end
|
||||
}
|
||||
|
||||
use { "jose-elias-alvarez/null-ls.nvim",
|
||||
config = function()
|
||||
require "plugins.null-ls"
|
||||
end
|
||||
}
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
use { "nvim-tree/nvim-tree.lua",
|
||||
requires = {
|
||||
"nvim-tree/nvim-web-devicons", -- optional, for file icons
|
||||
},
|
||||
config = function()
|
||||
require("nvim-tree").setup()
|
||||
end
|
||||
}
|
||||
use { "feline-nvim/feline.nvim" }
|
||||
-------------------------------------------THEMES------------------------------------------
|
||||
|
||||
use { "joshdick/onedark.vim" }
|
||||
use { "catppuccin/nvim" }
|
||||
-------------------------------------------------------------------------------------------
|
||||
use { "nvim-treesitter/nvim-treesitter",
|
||||
config = function()
|
||||
require "plugins.treesitter"
|
||||
end
|
||||
}
|
||||
|
||||
use { "nvim-treesitter/nvim-treesitter-context",
|
||||
config = function()
|
||||
require "plugins.treesitter-context"
|
||||
end
|
||||
}
|
||||
|
||||
--Tabs
|
||||
use { "romgrk/barbar.nvim",
|
||||
requires = "kyazdani42/nvim-web-devicons",
|
||||
config = function()
|
||||
require "plugins.barbar"
|
||||
end
|
||||
}
|
||||
|
||||
--fuzzy file finding
|
||||
use {
|
||||
"nvim-telescope/telescope.nvim", tag = '0.1.0',
|
||||
-- or , branch = '0.1.x',
|
||||
requires = { { "nvim-lua/plenary.nvim" } },
|
||||
config = function() require('plugins.telescope') end
|
||||
}
|
||||
|
||||
use { "tpope/vim-surround" }
|
||||
|
||||
use { "startup-nvim/startup.nvim",
|
||||
requires = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim" },
|
||||
config = function()
|
||||
require("startup").setup { theme = "dashboard" }
|
||||
end,
|
||||
}
|
||||
|
||||
end,
|
||||
|
||||
config = {
|
||||
auto_clean = true,
|
||||
compile_on_sync = true,
|
||||
git = { clone_timeout = 6000 },
|
||||
display = {
|
||||
working_sym = "ﲊ",
|
||||
error_sym = "✗ ",
|
||||
done_sym = " ",
|
||||
removed_sym = " ",
|
||||
moved_sym = "",
|
||||
},
|
||||
}
|
||||
})
|
|
@ -1,23 +0,0 @@
|
|||
|
||||
--local colorscheme = "onedark"
|
||||
|
||||
require("catppuccin").setup({
|
||||
flavour = "frappe", -- latte, frappe, macchiato, mocha
|
||||
styles = {
|
||||
comments = { "italic" },
|
||||
conditionals = { "italic" },
|
||||
},
|
||||
integrations = {
|
||||
cmp = true,
|
||||
nvimtree = true,
|
||||
telescope = true,
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
local colorscheme = "catppuccin"
|
||||
|
||||
local status_ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme)
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
|
@ -8,13 +8,13 @@ if not present then
|
|||
end
|
||||
|
||||
local options = {
|
||||
ensure_installed = {"lua", "haskell", "rust", },
|
||||
ensure_installed = { "c", "lua", "haskell", "rust", "markdown", "markdown_inline" , "org"},
|
||||
|
||||
highlight = {
|
||||
enable = true,
|
||||
use_languagetree = true,
|
||||
additional_vim_regex_highlighting = { "markdown" , "org"},
|
||||
},
|
||||
|
||||
indent = {
|
||||
enable = true,
|
||||
},
|
||||
|
|
67
.config/nvim/syntax/hypr.vim
Normal file
67
.config/nvim/syntax/hypr.vim
Normal file
|
@ -0,0 +1,67 @@
|
|||
|
||||
" Vim syntax file
|
||||
" Language: Hyprland config file
|
||||
" Maintainer: Gabriel Carneiro
|
||||
" Latest Revision: 26 October 2022
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Strings
|
||||
syn match Path "\(\.\|\~\)\/.*" display
|
||||
syn match Symbol "=" skipwhite display nextgroup=Value
|
||||
syn match Str "[a-zA-Z _ .-\"\'?]\+$" contained display
|
||||
syn match Num "\d\+\(\.\d\+\)\?" contained display
|
||||
syn match Num "e[+-]\d\+" contained display
|
||||
syn match Num "[+-]\d\+\(\.\d\+\)\?" contained display
|
||||
syn match ShellVar "\$\w\+" contained display
|
||||
syn keyword Logical on off true false no yes contained display
|
||||
syn region HyprSimpleString keepend start='[^ \t]' end='$\|#' contained contains=HyprVar,HyprComment
|
||||
syn match HyprQuotedString '"[^"]\+"' contained
|
||||
syn cluster HyprString contains=HyprSimpleString,HyprQuotedString
|
||||
|
||||
" Settings
|
||||
syn keyword Block input general animations decoration gestures misc dwindle master
|
||||
syn region OptBlock start="{" end="}" fold transparent display contains=HyprVar,Value,OptBlock,Num,Str,HyprComment,Disp,ShellVar
|
||||
syn match HyprVar '\s[a-z _ .]\+ ' skipwhite contained display nextgroup=Symbol
|
||||
syn region Value start="=" end="$\|," transparent display contains=Str,Num,Logical,ShellVar,Path,HyprComment,Disp,Dispatchers
|
||||
syn match Disp '[a-zA-Z][a-zA-Z0-9 _.]\+,' contained display contains=Num
|
||||
syn match N ', [a-zA-Z][a-zA-Z0-9 _.]\+,' contained skipwhite
|
||||
|
||||
" Commands
|
||||
syn region Command start='^[a-zA-Z][a-zA-Z_. -]\+ =' end='$' skipwhite transparent contains=HyprKeyModifier,ShellVar,HyprConfigCommand,Dispatchers,HyprComment,Str,Disp,Path,Num
|
||||
syn keyword HyprKeyModifier SUPER SHIFT CTRL ALT Mod1 Mod2 Mod3 Mod4 Mod5 Mode_switch nextgroup=N
|
||||
syn keyword HyprConfigCommand bind bindm monitor source windowrule nextgroup=Symbol contained
|
||||
|
||||
" Comments
|
||||
syn keyword HyprTodo contained TODO FIXME XXX NOTE
|
||||
syn match HyprComment "\(#\|\/\/\).*$" contains=HyprTodo
|
||||
|
||||
|
||||
highlight link Dispatchers Special
|
||||
highlight link Windowrules Special
|
||||
highlight link Disp Special
|
||||
|
||||
highlight link Num Constant
|
||||
highlight link NumRule Constant
|
||||
|
||||
highlight link HyprVar Identifier
|
||||
highlight link HyprConfigCommand Identifier
|
||||
|
||||
highlight link HyprKeyModifier Constant
|
||||
highlight link KeyBind Constant
|
||||
highlight link Logical Constant
|
||||
|
||||
highlight link Str String
|
||||
highlight link BindCmd String
|
||||
highlight link Path String
|
||||
highlight link HyprSimpleString String
|
||||
highlight link HyprQuotedString String
|
||||
|
||||
highlight link Block Define
|
||||
|
||||
highlight link ShellVar Define
|
||||
|
||||
highlight link HyprTodo Todo
|
||||
highlight link HyprComment Comment
|
2
.config/xmobar/.gitignore
vendored
2
.config/xmobar/.gitignore
vendored
|
@ -1 +1,3 @@
|
|||
.stack-work
|
||||
stack.*
|
||||
xmobar-git
|
||||
|
|
4
.config/xmonad/.gitignore
vendored
4
.config/xmonad/.gitignore
vendored
|
@ -3,7 +3,7 @@
|
|||
.ghc.*
|
||||
.stack-work
|
||||
stack.*
|
||||
xmonad
|
||||
xmonad-contrib
|
||||
xmonad-git
|
||||
xmonad-contrib-git
|
||||
xmonad.hi
|
||||
xmonad.o
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# ~/.config/xmonad/build
|
||||
#!/bin/sh
|
||||
exec stack ghc -- \
|
||||
--make xmonad.lhs \
|
||||
--make xmonad.hs \
|
||||
-i \
|
||||
-ilib \
|
||||
-fforce-recomp \
|
||||
|
|
BIN
.config/xmonad/lib/Colors/Teal.hi
Normal file
BIN
.config/xmonad/lib/Colors/Teal.hi
Normal file
Binary file not shown.
BIN
.config/xmonad/lib/Colors/Teal.o
Normal file
BIN
.config/xmonad/lib/Colors/Teal.o
Normal file
Binary file not shown.
209
.config/xmonad/xmonad.hs
Normal file
209
.config/xmonad/xmonad.hs
Normal file
|
@ -0,0 +1,209 @@
|
|||
{-# OPTIONS_GHC -Wno-deprecations #-}
|
||||
|
||||
import XMonad
|
||||
|
||||
--Utils
|
||||
import XMonad.Util.EZConfig (additionalKeysP,removeKeysP)
|
||||
import XMonad.Util.Loggers (logLayoutOnScreen, logTitleOnScreen, shortenL, wrapL, xmobarColorL)
|
||||
import XMonad.Util.Run
|
||||
import XMonad.Util.SpawnOnce
|
||||
import XMonad.Util.NamedScratchpad as NS
|
||||
|
||||
--Hooks
|
||||
import XMonad.Hooks.DynamicLog
|
||||
import XMonad.Hooks.SetWMName
|
||||
import XMonad.Hooks.StatusBar
|
||||
import XMonad.Hooks.EwmhDesktops
|
||||
import XMonad.Hooks.ManageDocks
|
||||
import XMonad.Hooks.ManageHelpers
|
||||
import XMonad.Hooks.WindowSwallowing
|
||||
|
||||
--Actions
|
||||
import XMonad.Actions.SpawnOn
|
||||
import XMonad.Actions.UpdateFocus (focusUnderPointer)
|
||||
|
||||
--Layouts
|
||||
import XMonad.Layout.NoBorders
|
||||
import XMonad.Layout.Spacing
|
||||
|
||||
--Miscellaneous
|
||||
import qualified XMonad.StackSet as W
|
||||
import qualified Data.Map as M
|
||||
import System.Exit
|
||||
|
||||
--Color Scheme
|
||||
import Colors.Teal
|
||||
|
||||
myTerminal = "alacritty"
|
||||
myTextEditor = "nvim"
|
||||
myWebBrowser = "firefox"
|
||||
myModMask = mod4Mask
|
||||
|
||||
myFocusFollowsMouse :: Bool
|
||||
myFocusFollowsMouse = True
|
||||
|
||||
myClickJustFocuses :: Bool
|
||||
myClickJustFocuses = False
|
||||
|
||||
windowCount :: X (Maybe String)
|
||||
windowCount = gets $ Just . show . length . W.integrate' . W.stack . W.workspace . W.current . windowset
|
||||
|
||||
myNormalBorderColor = "#008080"
|
||||
myFocusedBorderColor = "#01F9C6"
|
||||
|
||||
myBorderWidth = 2
|
||||
|
||||
myWorkspaces = ["main","web","text","code","social","mail"]
|
||||
myWorkspaceIndices = zip myWorkspaces [1..]
|
||||
|
||||
myScratchPads :: [NamedScratchpad]
|
||||
myScratchPads = [NS "terminal" spawnTerm findTerm manageTerm]
|
||||
where
|
||||
spawnTerm = myTerminal ++ " -t scratchpad"
|
||||
findTerm = title =? "scratchpad"
|
||||
manageTerm = customFloating $ W.RationalRect l t w h
|
||||
where
|
||||
h = 0.6
|
||||
w = 0.6
|
||||
t = 0.7 -h
|
||||
l = 0.8 -w
|
||||
|
||||
|
||||
myKeys :: [(String, X ())]
|
||||
myKeys =
|
||||
[ ("M-x" ,spawn myTerminal )
|
||||
, ("M-S-x", namedScratchpadAction myScratchPads "terminal")
|
||||
, ("M-p", spawn "rofi -show drun")
|
||||
, ("M-S-p", spawn "eww open --toggle powermenu")
|
||||
, ("M-s", spawn "selected=$(ls ~/scripts/|rofi -dmenu -p \"Run: \") && bash ~/.config/rofi/scripts/$selected")
|
||||
, ("M-b", spawn myWebBrowser)
|
||||
, ("<Print>", spawn "flameshot gui")
|
||||
, ("<XF86AudioMute>", spawn "pamixer set --toggle-mute")
|
||||
, ("<XF86AudioLowerVolume>", spawn "pamixer -d 5")
|
||||
, ("<XF86AudioRaiseVolume>", spawn "pamixer -i 5")
|
||||
, ("<XF86MonBrightnessUp>", spawn "lux -a 10%")
|
||||
, ("<XF86MonBrightnessDown>", spawn "lux -s 10%")
|
||||
, ("M-n", spawn $ myTerminal ++ " -e nmtui")
|
||||
, ("M-q", kill)
|
||||
, ("M-S-<Space>", sendMessage NextLayout)
|
||||
, ("M-<Down>", windows W.focusDown)
|
||||
, ("M-<Up>", windows W.focusUp )
|
||||
, ("M-m", windows W.focusMaster )
|
||||
, ("M-<Return>", windows W.swapMaster)
|
||||
, ("M-h", sendMessage Shrink)
|
||||
, ("M-l", sendMessage Expand)
|
||||
, ("M-t", withFocused $ windows . W.sink)
|
||||
, ("M-S-u", io (exitWith ExitSuccess))
|
||||
, ("M-u", spawn "xmonad --recompile; xmonad --restart")
|
||||
]
|
||||
++
|
||||
[("M-" ++ m ++ (show k), windows $ f i)
|
||||
| (i, k) <- myWorkspaceIndices
|
||||
, (f, m) <- [(W.greedyView, "0"), (W.shift, "S-")]]
|
||||
++
|
||||
[("M-" ++ m ++ key, screenWorkspace sc >>= flip whenJust (windows . f))
|
||||
| (key, sc) <- zip ["w", "e", "r"] [0..]
|
||||
, (f, m) <- [(W.view, "0"), (W.shift, "S-")]]
|
||||
|
||||
myRemoveKeys = ["M-S-<Return>","M-S-p","M-S-c","M-<Space>","M-n","M-S-q"]
|
||||
|
||||
myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList $
|
||||
[ ((modm, button1), (\w -> focus w >> mouseMoveWindow w
|
||||
>> windows W.shiftMaster))
|
||||
, ((modm, button2), (\w -> focus w >> windows W.shiftMaster))
|
||||
, ((modm, button3), (\w -> focus w >> mouseResizeWindow w
|
||||
>> windows W.shiftMaster))]
|
||||
|
||||
myLayout = avoidStruts(tiled ||| Mirror tiled ||| Full)
|
||||
where
|
||||
tiled = Tall nmaster delta ratio
|
||||
nmaster = 1
|
||||
ratio = 1/2
|
||||
delta = 3/100
|
||||
|
||||
myManageHook = composeAll
|
||||
[ className =? "MPlayer" --> doFloat
|
||||
, className =? "Gimp" --> doFloat
|
||||
, resource =? "desktop_window" --> doIgnore
|
||||
, className =? "QjackCtl" --> doFloat
|
||||
, resource =? "kdesktop" --> doIgnore
|
||||
, className =? "firefox" --> doShift (myWorkspaces !! 1)
|
||||
, className =? "Code" --> doShift (myWorkspaces !! 3)
|
||||
, className =? "discord" --> doShift (myWorkspaces !! 4)
|
||||
, title =? "JetBrains Toolbox" --> doShift (myWorkspaces !! 3)
|
||||
, className =? "main" --> doFloat
|
||||
, className =? "Mailspring" --> doShift (myWorkspaces !! 5)
|
||||
, className =? "Xmessage" --> doFloat
|
||||
, title =? "Steam - News" --> doFloat
|
||||
, title =? "Friends List" --> doFloat
|
||||
, title =? "scratchpad" --> doFloat
|
||||
, isFullscreen --> doFullFloat]
|
||||
|
||||
myEventHook = ewmhDesktopsEventHook
|
||||
myStartupHook = do
|
||||
spawnOnce "pasystray"
|
||||
spawnOnce "nitrogen --restore &"
|
||||
spawnOnce "playerctld"
|
||||
spawnOnce "picom &"
|
||||
spawnOnce "optimus-manager-qt"
|
||||
setWMName "LG3D"
|
||||
spawnOnce "nm-applet"
|
||||
spawnOnce "mailspring"
|
||||
spawnOnce("xsetroot -cursor_name left_ptr")
|
||||
spawn ("killall trayer ;sleep 1 && trayer --monitor 0 --edge top --align right --widthtype request --padding 7 --iconspacing 12 --SetDockType true --SetPartialStrut true --expand true --transparent true --alpha 0 --tint 0x2B2E37 --height 26 --distance 5 &")
|
||||
spawnOn "web" myWebBrowser
|
||||
spawnOn "main" myTerminal
|
||||
|
||||
myStatusBarSpawner :: Applicative f => ScreenId -> f StatusBarConfig
|
||||
myStatusBarSpawner (S s) = do
|
||||
pure $ statusBarPropTo ("_XMONAD_LOG_" ++ show s)
|
||||
("xmobar -x " ++ show s ++ " ~/.config/xmobar/xmobarrc" ++ show s)
|
||||
(pure $ myXmobarPP (S s))
|
||||
|
||||
|
||||
myXmobarPP :: ScreenId -> PP
|
||||
myXmobarPP s = def
|
||||
{ ppSep = ""
|
||||
, ppWsSep = ""
|
||||
, ppCurrent = xmobarColor cyan "" . const wsIconFull
|
||||
, ppVisible = xmobarColor grey4 "" . const wsIconFull
|
||||
, ppVisibleNoWindows = Just (xmobarColor grey4 "" . const wsIconFull)
|
||||
, ppHidden = xmobarColor grey2 "" . const wsIconHidden
|
||||
, ppHiddenNoWindows = xmobarColor grey2 "" . const wsIconEmpty
|
||||
, ppUrgent = xmobarColor orange "" . const wsIconFull
|
||||
, ppOrder = \(ws : _ : _ : extras) -> ws : extras
|
||||
, ppExtras = [ wrapL " " " " $ layoutColorIsActive s (logLayoutOnScreen s)
|
||||
,titleColorIsActive s (shortenL 81 $ logTitleOnScreen s)
|
||||
]
|
||||
}
|
||||
where
|
||||
wsIconFull = " <fn=2>\xf111</fn> "
|
||||
wsIconHidden = " <fn=2>\xf111</fn> "
|
||||
wsIconEmpty = " <fn=2>\xf10c</fn> "
|
||||
titleColorIsActive n l = do
|
||||
c <- withWindowSet $ return . W.screen . W.current
|
||||
if n == c then xmobarColorL cyan "" l else xmobarColorL grey3 "" l
|
||||
layoutColorIsActive n l = do
|
||||
c <- withWindowSet $ return . W.screen . W.current
|
||||
if n == c then wrapL "<icon=/home/afonso/.config/xmobar/xpm/" "_selected.xpm/>" l else wrapL "<icon=/home/afonso/.config/xmobar/xpm/" ".xpm/>" l
|
||||
|
||||
|
||||
myConfig = def
|
||||
{
|
||||
terminal = myTerminal,
|
||||
focusFollowsMouse = myFocusFollowsMouse,
|
||||
clickJustFocuses = myClickJustFocuses,
|
||||
borderWidth = myBorderWidth,
|
||||
modMask = myModMask,
|
||||
workspaces = myWorkspaces,
|
||||
normalBorderColor = myNormalBorderColor,
|
||||
focusedBorderColor = myFocusedBorderColor,
|
||||
-- keys = myKeys,
|
||||
layoutHook = smartBorders . spacingWithEdge 10 $ myLayout,
|
||||
manageHook = manageSpawn <+> myManageHook <+> manageHook def,
|
||||
handleEventHook = myEventHook <+> fullscreenEventHook <+> swallowEventHook (className=?"Alacritty") (return True) ,
|
||||
startupHook = myStartupHook
|
||||
}
|
||||
|
||||
main :: IO ()
|
||||
main = xmonad . ewmh . ewmhFullscreen . dynamicSBs myStatusBarSpawner . docks $ additionalKeysP (removeKeysP myConfig myRemoveKeys) myKeys
|
|
@ -1,390 +0,0 @@
|
|||
\documentclass[a4paper]{article}
|
||||
\usepackage[a4paper,left=3cm,right=2cm,top=2.5cm,bottom=2.5cm]{geometry}
|
||||
%include polycode.fmt
|
||||
\title{\Huge{XMonad config}}
|
||||
\author{\Huge{Afonso Franco}}
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
\newpage
|
||||
\tableofcontents
|
||||
\pagebreak
|
||||
|
||||
\subsection{Imports}
|
||||
\begin{code}
|
||||
{-# OPTIONS_GHC -Wno-deprecations #-}
|
||||
|
||||
import XMonad
|
||||
import XMonad.Util.EZConfig (additionalKeysP,removeKeysP)
|
||||
import XMonad.Hooks.DynamicLog
|
||||
import XMonad.Util.Loggers (logLayoutOnScreen, logTitleOnScreen, shortenL, wrapL, xmobarColorL)
|
||||
import XMonad.Hooks.SetWMName
|
||||
import XMonad.Actions.SpawnOn
|
||||
import XMonad.Hooks.StatusBar
|
||||
import qualified XMonad.StackSet as W
|
||||
import XMonad.Hooks.EwmhDesktops
|
||||
import XMonad.Util.Run
|
||||
import Data.Maybe (fromJust)
|
||||
import XMonad.Hooks.ManageDocks
|
||||
import XMonad.Hooks.ManageHelpers
|
||||
import Data.Monoid
|
||||
import Colors.Teal
|
||||
import System.Exit
|
||||
import XMonad.Util.SpawnOnce
|
||||
import XMonad.Layout.Spacing
|
||||
import XMonad.Hooks.WindowSwallowing
|
||||
import qualified XMonad.StackSet as W
|
||||
import qualified Data.Map as M
|
||||
\end{code}
|
||||
|
||||
\subsection{Config Values}
|
||||
\subsubsection{App Variables}
|
||||
\begin{code}
|
||||
myTerminal = "alacritty"
|
||||
myTextEditor = "nvim"
|
||||
myWebBrowser = "firefox"
|
||||
\end{code}
|
||||
|
||||
\subsubsection{Window/Workspace Variables}
|
||||
Whether focus follows the mouse pointer.
|
||||
|
||||
>myFocusFollowsMouse :: Bool
|
||||
>myFocusFollowsMouse = True
|
||||
|
||||
Whether clicking on a window to focus also passes the click to the window
|
||||
|
||||
>myClickJustFocuses :: Bool
|
||||
>myClickJustFocuses = False
|
||||
|
||||
>windowCount :: X (Maybe String)
|
||||
>windowCount = gets $ Just . show . length . W.integrate' . W.stack . W.workspace . W.current . windowset
|
||||
|
||||
>myNormalBorderColor = "#008080"
|
||||
>myFocusedBorderColor = "#01F9C6"
|
||||
|
||||
>myBorderWidth = 2
|
||||
|
||||
>myWorkspaces = ["main","web","text","code","social","mail"]
|
||||
>myWorkspaceIndices = M.fromList $ zipWith (,) myWorkspaces [1..]
|
||||
|
||||
|
||||
\subsubsection{Keybindings}
|
||||
|
||||
>myModMask = mod4Mask
|
||||
>myKeys :: [(String, X ())]
|
||||
>myKeys =
|
||||
|
||||
launch a terminal
|
||||
|
||||
> [ ("M-x" ,spawn myTerminal )
|
||||
|
||||
launch rofi
|
||||
|
||||
> , ("M-p", spawn "rofi -show drun")
|
||||
|
||||
launch web browser
|
||||
|
||||
> , ("M-b", spawn myWebBrowser)
|
||||
|
||||
|
||||
Screenshot
|
||||
|
||||
> , ("<Print>", spawn "flameshot screen")
|
||||
> , ("S-<Print>", spawn "flameshot gui")
|
||||
|
||||
AUDIO CONTROLS
|
||||
|
||||
> , ("<XF86AudioMute>", spawn "pamixer set --toggle-mute")
|
||||
> , ("<XF86AudioLowerVolume>", spawn "pamixer -d 5")
|
||||
> , ("<XF86AudioRaiseVolume>", spawn "pamixer -i 5")
|
||||
|
||||
brightness controls
|
||||
|
||||
> ,("<XF86MonBrightnessUp>", spawn "lux -a 10%")
|
||||
> ,("<XF86MonBrightnessDown>", spawn "lux -s 10%")
|
||||
|
||||
network manager
|
||||
|
||||
> ,("M-n", spawn $ myTerminal ++ " -e nmtui")
|
||||
|
||||
close focused window
|
||||
|
||||
> , ("M-q", kill)
|
||||
|
||||
Reset the layouts on the current workspace to default
|
||||
|
||||
> , ("M-S-<Space>", sendMessage NextLayout)
|
||||
|
||||
Move focus to the next window
|
||||
|
||||
> , ("M-<Down>", windows W.focusDown)
|
||||
|
||||
Move focus to the previous window
|
||||
|
||||
> , ("M-<Up>", windows W.focusUp )
|
||||
|
||||
Move focus to the master window
|
||||
|
||||
> , ("M-m", windows W.focusMaster )
|
||||
|
||||
Swap the focused window and the master window
|
||||
|
||||
> , ("M-<Return>", windows W.swapMaster)
|
||||
|
||||
Shrink the master area
|
||||
|
||||
> , ("M-h", sendMessage Shrink)
|
||||
|
||||
Expand the master area
|
||||
|
||||
> , ("M-l", sendMessage Expand)
|
||||
|
||||
Push window back into tiling
|
||||
|
||||
> , ("M-t", withFocused $ windows . W.sink)
|
||||
|
||||
Quit xmonad
|
||||
|
||||
> , ("M-S-u", io (exitWith ExitSuccess))
|
||||
|
||||
Restart xmonad
|
||||
|
||||
> , ("M-u", spawn "xmonad --recompile; xmonad --restart")
|
||||
> ]
|
||||
> ++
|
||||
|
||||
Switch Worskapce with Windows + [1..6]. Shift window adding Shift key.
|
||||
|
||||
> [("M-" ++ m ++ (show k), windows $ f i)
|
||||
> | (i, k) <- zip myWorkspaces [1..]
|
||||
> , (f, m) <- [(W.greedyView, "0"), (W.shift, "S-")]]
|
||||
> ++
|
||||
|
||||
Switch Screen with Windows + [w,e,r]. Shift window adding Shift key.
|
||||
|
||||
> [("M-" ++ m ++ key, screenWorkspace sc >>= flip whenJust (windows . f))
|
||||
> | (key, sc) <- zip ["w", "e", "r"] [0..]
|
||||
> , (f, m) <- [(W.view, "0"), (W.shift, "S-")]]
|
||||
|
||||
Default Keys to be removed
|
||||
|
||||
>myRemoveKeys = ["M-S-<Return>","M-S-p","M-S-c","M-<Space>","M-n","M-S-q"]
|
||||
|
||||
Mouse bindings: default actions bound to mouse events
|
||||
|
||||
>myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList $
|
||||
|
||||
mod-button1, Set the window to floating mode and move by dragging
|
||||
|
||||
> [ ((modm, button1), (\w -> focus w >> mouseMoveWindow w
|
||||
> >> windows W.shiftMaster))
|
||||
|
||||
mod-button2, Raise the window to the top of the stack
|
||||
|
||||
> , ((modm, button2), (\w -> focus w >> windows W.shiftMaster))
|
||||
|
||||
mod-button3, Set the window to floating mode and resize by dragging
|
||||
|
||||
> , ((modm, button3), (\w -> focus w >> mouseResizeWindow w
|
||||
> >> windows W.shiftMaster))]
|
||||
|
||||
|
||||
\subsubsection{Mousebindings}
|
||||
|
||||
>myLayout = avoidStruts(tiled ||| Mirror tiled ||| Full)
|
||||
> where
|
||||
|
||||
default tiling algorithm partitions the screen into two panes
|
||||
|
||||
> tiled = Tall nmaster delta ratio
|
||||
|
||||
The default number of windows in the master pane
|
||||
|
||||
> nmaster = 1
|
||||
|
||||
Default proportion of screen occupied by master pane
|
||||
|
||||
> ratio = 1/2
|
||||
|
||||
Percent of screen to increment by when resizing panes
|
||||
|
||||
> delta = 3/100
|
||||
|
||||
\subsubsection{Manage Windows Hook}
|
||||
\begin{code}
|
||||
myManageHook = composeAll
|
||||
[ className =? "MPlayer" --> doFloat
|
||||
, className =? "Gimp" --> doFloat
|
||||
, resource =? "desktop_window" --> doIgnore
|
||||
, className =? "QjackCtl" --> doFloat
|
||||
, resource =? "kdesktop" --> doIgnore
|
||||
, className =? "firefox" --> doShift (myWorkspaces !! 1)
|
||||
, className =? "Code" --> doShift (myWorkspaces !! 3)
|
||||
, className =? "discord" --> doShift (myWorkspaces !! 4)
|
||||
, title =? "JetBrains Toolbox" --> doShift (myWorkspaces !! 3)
|
||||
, className =? "main" --> doFloat
|
||||
, className =? "Mailspring" --> doShift (myWorkspaces !! 5)
|
||||
, className =? "Xmessage" --> doFloat
|
||||
, title =? "Steam - News" --> doFloat
|
||||
, title =? "Friends List" --> doFloat
|
||||
, isFullscreen --> doFullFloat]
|
||||
\end{code}
|
||||
|
||||
\subsubsection{Event Hook}
|
||||
|
||||
>myEventHook = ewmhDesktopsEventHook
|
||||
|
||||
\subsubsection{Startup Hook}
|
||||
\begin{code}
|
||||
myStartupHook = do
|
||||
spawnOnce "pasystray"
|
||||
spawnOnce "nitrogen --restore &"
|
||||
spawnOnce "playerctld"
|
||||
spawnOnce "picom &"
|
||||
spawnOnce "optimus-manager-qt"
|
||||
setWMName "LG3D"
|
||||
spawnOnce "nm-applet"
|
||||
spawnOnce "mailspring"
|
||||
spawnOnce("xsetroot -cursor_name left_ptr")
|
||||
spawn ("killall trayer ;sleep 1 && trayer --monitor 0 --edge top --align right --widthtype request --padding 7 --iconspacing 12 --SetDockType true --SetPartialStrut true --expand true --transparent true --alpha 0 --tint 0x2B2E37 --height 26 --distance 5 &")
|
||||
spawnOn "web" myWebBrowser
|
||||
spawnOn "main" myTerminal
|
||||
|
||||
\end{code}
|
||||
|
||||
|
||||
\subsection{Xmobar}
|
||||
|
||||
|
||||
\begin{code}
|
||||
|
||||
actionPrefix, actionButton, actionSuffix :: [Char]
|
||||
actionPrefix = "<action=`xdotool key super+"
|
||||
actionButton = "` button="
|
||||
actionSuffix = "</action>"
|
||||
|
||||
addActions :: [(String, Int)] -> String -> String
|
||||
addActions [] ws = ws
|
||||
addActions (x:xs) ws = addActions xs (actionPrefix ++ k ++ actionButton ++ show b ++ ">" ++ ws ++ actionSuffix)
|
||||
where k = fst x
|
||||
b = snd x
|
||||
|
||||
clickable :: [Char] -> [Char] -> [Char]
|
||||
clickable icon ws = addActions [ (show i, 1), ("q", 2), ("Left", 4), ("Right", 5) ] icon
|
||||
where i = fromJust $ M.lookup ws myWorkspaceIndices
|
||||
|
||||
myStatusBarSpawner :: Applicative f => ScreenId -> f StatusBarConfig
|
||||
myStatusBarSpawner (S s) = do
|
||||
pure $ statusBarPropTo ("_XMONAD_LOG_" ++ show s)
|
||||
("xmobar -x " ++ show s ++ " ~/.config/xmobar/xmobarrc" ++ show s)
|
||||
(pure $ myXmobarPP (S s))
|
||||
|
||||
|
||||
myXmobarPP :: ScreenId -> PP
|
||||
myXmobarPP s = def
|
||||
{ ppSep = ""
|
||||
, ppWsSep = ""
|
||||
, ppCurrent = xmobarColor cyan "" . clickable wsIconFull
|
||||
, ppVisible = xmobarColor grey4 "" . clickable wsIconFull
|
||||
, ppVisibleNoWindows = Just (xmobarColor grey4 "" . clickable wsIconFull)
|
||||
, ppHidden = xmobarColor grey2 "" . clickable wsIconHidden
|
||||
, ppHiddenNoWindows = xmobarColor grey2 "" . clickable wsIconEmpty
|
||||
, ppUrgent = xmobarColor orange "" . clickable wsIconFull
|
||||
, ppOrder = \(ws : _ : _ : extras) -> ws : extras
|
||||
, ppExtras = [ wrapL " " " " $ layoutColorIsActive s (logLayoutOnScreen s)
|
||||
,titleColorIsActive s (shortenL 81 $ logTitleOnScreen s)
|
||||
]
|
||||
}
|
||||
where
|
||||
wsIconFull = " <fn=2>\xf111</fn> "
|
||||
wsIconHidden = " <fn=2>\xf111</fn> "
|
||||
wsIconEmpty = " <fn=2>\xf10c</fn> "
|
||||
titleColorIsActive n l = do
|
||||
c <- withWindowSet $ return . W.screen . W.current
|
||||
if n == c then xmobarColorL cyan "" l else xmobarColorL grey3 "" l
|
||||
layoutColorIsActive n l = do
|
||||
c <- withWindowSet $ return . W.screen . W.current
|
||||
if n == c then wrapL "<icon=/home/afonso/.config/xmobar/xpm/" "_selected.xpm/>" l else wrapL "<icon=/home/afonso/.config/xmobar/xpm/" ".xpm/>" l
|
||||
|
||||
\end{code}
|
||||
|
||||
|
||||
\subsection{Config Binding}
|
||||
\begin{code}
|
||||
myConfig = def
|
||||
{
|
||||
terminal = myTerminal,
|
||||
focusFollowsMouse = myFocusFollowsMouse,
|
||||
clickJustFocuses = myClickJustFocuses,
|
||||
borderWidth = myBorderWidth,
|
||||
modMask = myModMask,
|
||||
workspaces = myWorkspaces,
|
||||
normalBorderColor = myNormalBorderColor,
|
||||
focusedBorderColor = myFocusedBorderColor,
|
||||
-- keys = myKeys,
|
||||
layoutHook = spacingWithEdge 10 $ myLayout,
|
||||
manageHook = manageSpawn <+> myManageHook <+> manageHook def,
|
||||
handleEventHook = myEventHook <+> fullscreenEventHook <+> swallowEventHook (className=?"Alacritty") (return True) ,
|
||||
startupHook = myStartupHook}
|
||||
\end{code}
|
||||
|
||||
\subsection{Main}
|
||||
\begin{code}
|
||||
main :: IO ()
|
||||
main = do
|
||||
xmonad . ewmh . ewmhFullscreen . dynamicSBs myStatusBarSpawner . docks $ additionalKeysP (removeKeysP myConfig myRemoveKeys) myKeys
|
||||
\end{code}
|
||||
|
||||
\subsection{Default Bindings}
|
||||
\begin{code}
|
||||
help :: String
|
||||
help = unlines ["The default modifier key is 'alt'. Default keybindings:",
|
||||
"",
|
||||
"-- launching and killing programs",
|
||||
"mod-Shift-Enter Launch xterminal",
|
||||
"mod-p Launch dmenu",
|
||||
"mod-Shift-p Launch gmrun",
|
||||
"mod-Shift-c Close/kill the focused window",
|
||||
"mod-Space Rotate through the available layout algorithms",
|
||||
"mod-Shift-Space Reset the layouts on the current workSpace to default",
|
||||
"mod-n Resize/refresh viewed windows to the correct size",
|
||||
"",
|
||||
"-- move focus up or down the window stack",
|
||||
"mod-Tab Move focus to the next window",
|
||||
"mod-Shift-Tab Move focus to the previous window",
|
||||
"mod-j Move focus to the next window",
|
||||
"mod-k Move focus to the previous window",
|
||||
"mod-m Move focus to the master window",
|
||||
"",
|
||||
"-- modifying the window order",
|
||||
"mod-Return Swap the focused window and the master window",
|
||||
"mod-Shift-j Swap the focused window with the next window",
|
||||
"mod-Shift-k Swap the focused window with the previous window",
|
||||
"",
|
||||
"-- resizing the master/slave ratio",
|
||||
"mod-h Shrink the master area",
|
||||
"mod-l Expand the master area",
|
||||
"",
|
||||
"-- floating layer support",
|
||||
"mod-t Push window back into tiling; unfloat and re-tile it",
|
||||
"",
|
||||
"-- increase or decrease number of windows in the master area",
|
||||
"mod-comma (mod-,) Increment the number of windows in the master area",
|
||||
"mod-period (mod-.) Deincrement the number of windows in the master area",
|
||||
"",
|
||||
"-- quit, or restart",
|
||||
"mod-Shift-q Quit xmonad",
|
||||
"mod-q Restart xmonad",
|
||||
"mod-[1..9] Switch to workSpace N",
|
||||
"",
|
||||
"-- Workspaces & screens",
|
||||
"mod-Shift-[1..9] Move client to workspace N",
|
||||
"mod-{w,e,r} Switch to physical/Xinerama screens 1, 2, or 3",
|
||||
"mod-Shift-{w,e,r} Move client to screen 1, 2, or 3",
|
||||
"",
|
||||
"-- Mouse bindings: default actions bound to mouse events",
|
||||
"mod-button1 Set the window to floating mode and move by dragging",
|
||||
"mod-button2 Raise the window to the top of the stack",
|
||||
"mod-button3 Set the window to floating mode and resize by dragging"]
|
||||
\end{code}
|
||||
\end{document}
|
14
.local/bin/wrappedhl
Executable file
14
.local/bin/wrappedhl
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
|
||||
cd ~
|
||||
|
||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||
export XCURSOR_SIZE=24
|
||||
export LIBVA_DRIVER_NAME=nvidia
|
||||
export XDG_SESSION_TYPE=wayland
|
||||
export XDG_CURRENT_DESKTOP=sway
|
||||
export GBM_BACKEND=nvidia-drm
|
||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
||||
export WLR_NO_HARDWARE_CURSORS=1
|
||||
|
||||
exec Hyprland
|
|
@ -1,7 +1,7 @@
|
|||
IdentityFile ~/.ssh/id_ecdsa_sk
|
||||
IdentityFile ~/.ssh/id_ecdsa_sk_backup
|
||||
|
||||
Host gitea.olympuslab.net github.com
|
||||
Host git.olympuslab.net github.com
|
||||
ControlMaster auto
|
||||
ControlPath ~/.ssh/session.%r@%h:%p
|
||||
ControlPersist 1d
|
||||
|
|
2
.xinitrc
2
.xinitrc
|
@ -1,5 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
export XDG_SESSION_TYPE=x11
|
||||
export XDG_CURRENT_DESKTOP=X-Generic
|
||||
userresources=$HOME/.Xresources
|
||||
usermodmap=$HOME/.Xmodmap
|
||||
sysresources=/etc/X11/xinit/.Xresources
|
||||
|
|
3
scripts/projects
Normal file
3
scripts/projects
Normal file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
selected=$(ls ~/projects/ | rofi -dmenu -p "Open: ")
|
||||
alacritty -e fish -c "cd ~/projects/$selected && nvim . && fish"
|
Loading…
Reference in a new issue