Merge branch 'master' of ssh://git.olympuslab.net:522/afonso/dotfiles

This commit is contained in:
Afonso Franco 2023-02-22 14:19:44 +00:00
commit b05d6c1442
Signed by: afonso
GPG key ID: C459E0BB3DCEE899
37 changed files with 990 additions and 921 deletions

BIN
.config/eww/background Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 MiB

25
.config/eww/eww.scss Normal file
View 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
View 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)))

View file

@ -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
View 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
View 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 _ _
_ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _
)

View file

@ -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

View file

@ -0,0 +1,4 @@
augroup hypr_ftdetect
au!
au BufRead,BufNewFile *hypr/*.conf,*hypr/*/*.conf set ft=hypr
augroup END

View file

@ -0,0 +1 @@
vim.opt_local.formatprg = "floskell --style chris-done"

View file

@ -0,0 +1 @@
setlocal commentstring=#\ %s

View file

@ -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")

View 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" }
}

View 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')

View 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'

View file

@ -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)

View file

@ -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,
}

View 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()
})

View 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

View file

@ -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 = {

View file

@ -1,6 +0,0 @@
vim.g.coq_settings = {
auto_start = 'shut-up',
clients = {
tmux = { enabled = false },
},
}

View 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'
})

View file

@ -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'}
},

View file

@ -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 = "",
},
}
})

View file

@ -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

View file

@ -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,
},

View 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

View file

@ -1 +1,3 @@
.stack-work
stack.*
xmobar-git

View file

@ -3,7 +3,7 @@
.ghc.*
.stack-work
stack.*
xmonad
xmonad-contrib
xmonad-git
xmonad-contrib-git
xmonad.hi
xmonad.o

View file

@ -1,7 +1,7 @@
# ~/.config/xmonad/build
#!/bin/sh
exec stack ghc -- \
--make xmonad.lhs \
--make xmonad.hs \
-i \
-ilib \
-fforce-recomp \

Binary file not shown.

Binary file not shown.

209
.config/xmonad/xmonad.hs Normal file
View 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

View file

@ -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
View 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

View file

@ -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

View file

@ -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
View file

@ -0,0 +1,3 @@
#!/bin/bash
selected=$(ls ~/projects/ | rofi -dmenu -p "Open: ")
alacritty -e fish -c "cd ~/projects/$selected && nvim . && fish"