[manual] add dotfiles + install script

This commit is contained in:
hexlocation 2024-07-17 15:57:24 +00:00
commit 04d7e79f51
14 changed files with 955 additions and 0 deletions

209
.config/ags/config.js Normal file
View file

@ -0,0 +1,209 @@
/* Imports */
const { query } = await Service.import("applications")
const hyprland = await Service.import('hyprland')
/* Icons */
const search_icon = Widget.Icon({
size : 30,
className : 'search-icon',
icon : '/home/hex/.config/ags/search.svg'
})
/* Polls/Variables */
const date_poller = Variable("", {
poll : [ 1000, 'date "+%H:%M:%S %b %e."' ],
})
/* Array storing all application results */
let apps = []
let Application = (app) => {
return Widget.Button({
child: Widget.Box({
children: [
Widget.Icon({
icon: app.icon_name || "",
size: 16,
className: "app-icon",
}),
Widget.Label({
className: "app-name",
label: app.name,
xalign: 0,
justification: 'left',
truncate: 'end',
wrap: true,
})
]
}),
className: 'app',
onClicked: () => {
App.closeWindow("search-window");
app.launch()
},
})
}
let app_container = Widget.Box({
classNames: ['app-container'],
vertical: true,
visible: false,
})
const search_entry = Widget.Entry({
placeholder_text : 'Search for an application...',
visibility : true,
className : 'search-entry',
onChange : ({text}) => {
apps = query(text).map(Application);
/* Add first 10 results to container */
app_container.children = apps.slice(0, 10);
},
onAccept : () => {
apps[0].launch()
App.closeWindow('search-window');
},
})
// labels
const date_label = () => Widget.Label({
hpack : 'end',
'justification' : 'right',
className : 'bar-date',
label : date_poller.bind()
})
// utils
const dispatch = ws => hyprland.messageAsync(`dispatch workspace ${ws}`);
let workspace_buttons = () => Array.from({ length: 10 }, (_, i) => i + 1).map(i => Widget.Button({
className: 'wp-btn',
attribute: i,
label: `${i}`,
onClicked: () => dispatch(i),
}))
const Workspaces = () => Widget.EventBox({
onScrollUp: () => dispatch('+1'),
onScrollDown: () => dispatch('-1'),
child: Widget.Box({
children: workspace_buttons(),
// remove this setup hook if you want fixed number of buttons
setup: self => self.hook(hyprland, () => self.children.forEach(btn => {
btn.visible = hyprland.workspaces.some(ws => ws.id === btn.attribute);
let active_wp = hyprland.active.workspace.id
if(btn.attribute == active_wp) {
btn.toggleClassName('wp-btn-focused', true)
btn.toggleClassName('wp-btn-normal', false)
} else {
btn.toggleClassName('wp-btn-focused', false)
btn.toggleClassName('wp-btn-normal', true)
}
}))
}),
})
const right_bar_box = () => Widget.Box({
className : 'bar-rightbox',
children : [ date_label() ],
hpack : "end",
spacing : 8,
})
const center_bar_box = () => Widget.Box({
children : [],
className: 'center-container'
})
const left_bar_box = () => Widget.Box({
className : 'bar-leftbox',
hpack : "start",
children: [Workspaces(), Widget.Box({
className: 'title-box',
vertical: true,
children: [
Widget.Label({
xalign: '0',
className: 't-class'
}),
Widget.Label({
className: 't-title'
})
],
setup: self => self.hook(hyprland.active.client, self => {
let client = hyprland.active.client;
self.children[0].label = `${client.class}`
self.children[1].label = client.title
})
})],
spacing : 8,
})
const searchBox = Widget.Box({
className : 'search-box',
children : [ search_icon, search_entry ],
})
/*
const itemBox = Widget.Box({
className: 'item-box',
vertical: true,
})
*/
const mainAppBox = Widget.Box({
vpack: 'start',
className : 'main-app-box',
vertical: true,
children : [ searchBox, app_container ],
})
// Gtk Windows
const search = Widget.Window({
vexpand: true,
vpack: 'end',
name : 'search-window',
className : 'search-window',
child : mainAppBox,
keymode : "exclusive",
})
search.on("key-press-event", (self, event) => {
if(event.get_keyval()[1] == 65307){
App.closeWindow('search-window');
}
})
let commonMargin = 10
const bar = (monitors = 2) => {
let bars = [];
for (let i = 0; i < monitors; i++) {
bars.push(Widget.Window({
exclusivity : 'exclusive',
name : `bar-window-${i}`,
className : 'bar-window',
margins: [commonMargin,commonMargin,commonMargin,commonMargin],
anchor : [ 'top', 'left', 'right' ],
monitor: i,
child : Widget.CenterBox({
className : 'bar-mainbox',
start_widget : left_bar_box(),
center_widget : center_bar_box(),
end_widget : right_bar_box(),
}),
}))
}
return bars;
}
// main Gtk App
App.config({
style : '/home/hex/.config/ags/style.css',
windows : [ search, ...bar(1) ],
})
// close search window by default
App.closeWindow('search-window');

6
.config/ags/search.svg Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0" d="M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z" fill="#ffffff"/>
<path d="M15 15L21 21" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z" stroke="#ffffff" stroke-width="2"/>
</svg>

After

Width:  |  Height:  |  Size: 645 B

99
.config/ags/style.css Normal file
View file

@ -0,0 +1,99 @@
.search-entry {
min-width: 600px;
min-height: 60px;
font-family: 'Jetbrains Mono';
font-weight: 300;
font-size: 20px;
color:white;
background: none;
border-radius: 20px;
padding-right: 15px;
}
.search-icon {
padding-left: 15px;
padding-right: 15px;
}
entry {
all: unset;
border-color: black;
}
.search-window, .search-box {
background-color: rgba(10,10,10, 1);
border-top-left-radius: 20px;
border-top-right-radius: 20px;
border-radius: 20px;
}
.app-icon {
padding-right: 5px;
}
.bar-date {
padding-right: 8px;
}
.bar-mainbox {
min-height: 25px;
}
.app:focus {
font-weight: bold;
border: none;
outline: none;
background-color: rgba(12,62,117, 1);
}
window {
font-family: 'Jetbrains Mono';
}
.t-class {
font-size: 12px;
margin: 0;
padding-left: 5px;
}
.t-title {
font-size: 10px;
margin: 0;
opacity: 0.5;
padding-left: 5px;
}
.app-container {
font-family: 'Jetbrains Mono';
padding: 10px;
border-bottom-right-radius: 20px;
border-bottom-left-radius: 20px;
}
.app {
outline: none;
border-radius: 5px;
transition: none;
border: none;
background: none;
}
.bar-window {
background-color: rgba(46,52,64,1);
border-radius: 3px;
color: white;
font-family: 'Jetbrains Mono';
/*background-color: rgba(0,0,0,0.9);*/
}
.wp-btn {
background: none;
outline: none;
color: white;
border: none;
}
.wp-btn-normal {
opacity: 0.2;
}
.wp-btn-focused {
opacity: 1;
}

85
.config/dots/install.sh Executable file
View file

@ -0,0 +1,85 @@
#!/bin/bash
# for killing process while in func scope
trap "exit 1" TERM
export SCRIPT_PID=$$
export DEPS=("Hyprland" "foot" "hyprpaper" "ags" "nvim" "zsh" "udevadm")
# for doas users
export AS_ROOT="sudo"
check_omz() {
if [ -e "~/.oh-my-zsh" ]; then
exit 1
fi
}
check_deps() {
notify "checking dependencies..."
arr_elem=$(echo "${#DEPS[@]}-1" | bc)
for i in $(seq 0 $arr_elem)
do
DEP=${DEPS[i]}
if ! type "$DEP" > /dev/null; then
err "dependency $DEP not found."
fi
done
check_omz || err "dependency oh-my-zsh not found."
notify "all dependencies have been met."
}
install_backlight_rule() {
if [[ -e "/etc/udev/rules.d/backlight.rules" ]]; then
warn "backlight rules have already been installed, skipping..."
return
fi
notify "installing backlight rule..."
RULE='ACTION=="add", SUBSYSTEM=="backlight", RUN+="/bin/chgrp video $sys$devpath/brightness",RUN+="/bin/chmod g+w $sys$devpath/brightness"'
$AS_ROOT usermod -a -G video $USER || err "failed to add user to video group"
echo $RULE | sudo tee /etc/udev/rules.d/backlight.rules >> /dev/null || err "failed to write udev rule"
notify "installed backlight rule."
}
kill_err(){
kill -s TERM $SCRIPT_PID
}
notify() {
echo -e "[note] $1"
}
err() {
echo -e "[fail] $1"
kill_err
}
warn() {
echo -e "[warn] $1"
}
set_machine_type () {
if [[ -e "$HOME/.config/dots/laptop" ]] || [[ -e "$HOME/.config/dots/desktop" ]]; then
warn "machine type has already been set, skipping..."
return
fi
notify "are you on a laptop or a desktop? (laptop/desktop) "
read MACHINE_TYPE
if [[ "$MACHINE_TYPE" != "laptop" && "$MACHINE_TYPE" != "desktop" ]]; then
err "invalid machine type."
fi
touch ~/.config/dots/$MACHINE_TYPE
}
main() {
notify "hello there!"
check_deps
set_machine_type
install_backlight_rule
notify "everything has been installed successfully, enjoy!"
}
main

View file

@ -0,0 +1,11 @@
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<alias>
<family>terminal-font</family>
<prefer>
<family>JetBrains Mono</family>
<family>Noto Color Emoji</family>
</prefer>
</alias>
</fontconfig>

56
.config/foot/foot.ini Normal file
View file

@ -0,0 +1,56 @@
font=JetBrainsMono Nerd Font:size=10
pad = 0x0
[cursor]
style=beam
#[colors]
#alpha=0.5
#background=000000
# NORD THEME
# -*- conf -*-
# theme: Nord
# author: Arctic Ice Studio <development@arcticicestudio.com>, Sven Greb <code@svengreb.de>
# description: „Nord“ — An arctic, north-bluish color palette
#
# this specific foot theme is based on nord-alacritty:
# https://github.com/arcticicestudio/nord-alacritty/blob/develop/src/nord.yml
[cursor]
color = 2e3440 d8dee9
[colors]
alpha=0.7
foreground = d8dee9
background = 2e3440
# selection-foreground = d8dee9
# selection-background = 4c566a
regular0 = 3b4252
regular1 = bf616a
regular2 = a3be8c
regular3 = ebcb8b
regular4 = 81a1c1
regular5 = b48ead
regular6 = 88c0d0
regular7 = e5e9f0
bright0 = 4c566a
bright1 = bf616a
bright2 = a3be8c
bright3 = ebcb8b
bright4 = 81a1c1
bright5 = b48ead
bright6 = 8fbcbb
bright7 = eceff4
dim0 = 373e4d
dim1 = 94545d
dim2 = 809575
dim3 = b29e75
dim4 = 68809a
dim5 = 8c738c
dim6 = 6d96a5
dim7 = aeb3bb

View file

@ -0,0 +1,3 @@
[Settings]
gtk-application-prefer-dark-theme = true
gtk-key-theme-name = "Adwaita-dark"

186
.config/hypr/hyprland.conf Normal file
View file

@ -0,0 +1,186 @@
# Based on the default config
# Start AGS daemon
exec="killall ags;ags"
# Start hyprpaper
exec-once=hyprpaper
# Start Pipewire daemon
exec-once=gentoo-pipewire-launcher
# Terminal Daemon
exec-once=foot --server
# Monitor Setup
exec=~/.config/hypr/monitor.sh
#monitor=eDP-1,1920x1080@59.94100,0x0,1
#monitor=HDMI-A-3,1680x1050@59.88300,1920x0,1
# Set programs that you use
$terminal = footclient
$fileManager = dolphin
$menu = ags -t 'search-window'
# Some default env vars.
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
# 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 to 1.0, 0 means no modification.
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 5
gaps_out = 0,10,20,10
border_size = 1
col.active_border = rgb(81a1c1)
col.inactive_border = rgb(595959)
layout = dwindle
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 5
blur {
enabled = true
size = 3
passes = 1
}
drop_shadow = yes
shadow_range = 2
shadow_render_power = 10
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 = borderangle, 1, 8, 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
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = off
}
misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
}
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
#windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
windowrulev2 = float,class:^(footclient)$
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod_SHIFT, E, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, Space, togglefloating,
bind = $mainMod, D, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, Print, exec, hyprshot -m output --clipboard-only
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# 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
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# App Launcher Anim Fix
layerrule = noanim, search-window
# Force Wayland
env = QT_QPA_PLATFORM,wayland
# 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
bind = CTRL, ALT_L, submap, passthrough
submap = passthrough
bind = CTRL, ALT_L, submap, reset
submap = reset

View file

@ -0,0 +1,2 @@
preload = /home/hex/wallpaper.jpg
wallpaper = eDP-1,/home/hex/wallpaper.jpg

13
.config/hypr/monitor.sh Executable file
View file

@ -0,0 +1,13 @@
#!/bin/bash
# Laptop configuration
LAPTOP=~/.config/dots/laptop
if [ -e "$LAPTOP" ]; then
#hyprctl keyword monitor eDP-1,1920x1080@59.94100,0x0,1
hyprctl keyword monitor eDP-1,highrr,0x0,1,vrr,1
exit 0
fi
# Desktop configuration
hyprctl keyword monitor DVI-D-0,1920x1080@60,0x0,1
hyprctl keyword monitor HDMI-A-3,1680x1050@59.88300,1920x0,1

240
.config/nvim/init.lua Normal file
View file

@ -0,0 +1,240 @@
-- path to lazyvim dir
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
-- install lazynvim
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
-- formatting
vim.opt.tabstop = 2
vim.opt.shiftwidth = 2
vim.opt.expandtab = true
vim.bo.softtabstop = 2
vim.opt.termguicolors = true
-- stuff
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
-- add lazypath
vim.opt.rtp:prepend(lazypath)
-- redirects
local keymap = vim.keymap.set
-- tree toggle
local tree_open = false
function treetoggle()
local c = vim.cmd
if (tree_open)
then
c('NvimTreeClose')
else
c('NvimTreeOpen')
end
tree_open = not tree_open
end
function open_diag()
vim.diagnostic.open_float(nil, { focus = false, scope = "cursor"})
end
keymap("n", "<F5>", open_diag, {silent=true,noremap=true})
keymap("n", "<F6>", treetoggle, {silent=true,noremap=true})
--keymap("n", "<c-P>", require('fzf-lua').files(), {noremap=true})
require('lazy').setup({
{ "bluz71/vim-moonfly-colors", name = "moonfly", lazy = false, priority = 1000 },
{'ojroques/vim-oscyank'},
--{'rebelot/kanagawa.nvim'},
{ "hinell/duplicate.nvim" },
{
'VonHeikemen/lsp-zero.nvim',
branch = 'v3.x',
lazy = true,
config = false,
},
{
'neovim/nvim-lspconfig',
dependencies = {
{'hrsh7th/cmp-nvim-lsp'},
}
},
{
'hrsh7th/nvim-cmp',
dependencies = {
{'L3MON4D3/LuaSnip'},
{'hrsh7th/cmp-buffer'},
{'hrsh7th/cmp-path'},
{'hrsh7th/cmp-emoji'},
},
},
{"neovim/nvim-lspconfig"},
{
"nvim-tree/nvim-tree.lua",
version = "*",
lazy = false,
dependencies = {
"nvim-tree/nvim-web-devicons",
},
config = function()
require("nvim-tree").setup ({})
end,
},
{
"ibhagwan/fzf-lua",
-- optional for icon support
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
-- calling `setup` is optional for customization
require("fzf-lua").setup({})
end
},
--[[
{
'olivercederborg/poimandres.nvim',
lazy = false,
priority = 1000,
config = function()
require('poimandres').setup {
-- leave this setup function empty for default config
-- or refer to the configuration section
-- for configuration options
bold_vert_split = true,
dim_nc_background = true,
disable_background = false,
}
end,
-- optionally set the colorscheme within lazy config
init = function()
vim.cmd("colorscheme poimandres")
end
},
]]--
{
'nvim-lualine/lualine.nvim',
dependencies = { 'nvim-tree/nvim-web-devicons' }
},
{"shaunsingh/nord.nvim"}
})
keymap("n", "<c-P>", require('fzf-lua').files, {noremap=true})
require('lualine').setup()
-- theme shenanigans
vim.cmd("colorscheme nord")
-- nvim-tree default thing
require("nvim-tree").setup({
sort = {
sorter = "case_sensitive",
},
view = {
width = 30,
},
renderer = {
group_empty = true,
},
filters = {
dotfiles = true,
},
})
vim.opt.termguicolors = true
local lsp_zero = require('lsp-zero')
lsp_zero.on_attach(function(client, bufnr)
lsp_zero.default_keymaps({buffer = bufnr})
end)
require('lspconfig').tsserver.setup({})
require('lspconfig').cssmodules_ls.setup({})
vim.wo.number = true
local cmp = require('cmp')
cmp.setup({
snippet = {
expand = function(args)
require('luasnip').lsp_expand(args.body)
end,
},
window = {
completion = cmp.config.window.bordered(),
},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({ select = true }),
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'luasnip' }, -- For luasnip users.
-- { name = 'ultisnips' }, -- For ultisnips users.
-- { name = 'snippy' }, -- For snippy users.
},
{
{ name = 'buffer' },
})
})
require'lspconfig'.lua_ls.setup {
on_init = function(client)
local path = client.workspace_folders[1].name
if vim.loop.fs_stat(path..'/.luarc.json') or vim.loop.fs_stat(path..'/.luarc.jsonc') then
return
end
client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {
runtime = {
-- Tell the language server which version of Lua you're using
-- (most likely LuaJIT in the case of Neovim)
version = 'LuaJIT'
},
-- Make the server aware of Neovim runtime files
workspace = {
checkThirdParty = false,
library = {
vim.env.VIMRUNTIME
-- Depending on the usage, you might want to add additional paths here.
-- "${3rd}/luv/library"
-- "${3rd}/busted/library",
}
-- or pull in all of 'runtimepath'. NOTE: this is a lot slower
-- library = vim.api.nvim_get_runtime_file("", true)
}
})
end,
settings = {
Lua = {}
}
}
local capabilities = require('cmp_nvim_lsp').default_capabilities()
capabilities.textDocument.completion.completionItem.snippetSupport = true
require('lspconfig').html.setup( {
capabilities = capabilities,
})
require('lspconfig').gopls.setup({
capabilities = capabilities,
})
-- require('lspconfig').tailwindcss.setup({})
require('lspconfig').rust_analyzer.setup({
capabilities = capabilities,
})
vim.keymap.set({ "n" }, "<C-S-A-Up>" ,"<CMD>LineDuplicate -1<CR>")
vim.keymap.set({ "n" }, "<C-S-A-Down>" ,"<CMD>LineDuplicate +1<CR>")

View file

@ -0,0 +1,19 @@
{
"LuaSnip": { "branch": "master", "commit": "50fcf17db7c75af80e6b6109acfbfb4504768780" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-emoji": { "branch": "main", "commit": "e8398e2adf512a03bb4e1728ca017ffeac670a9f" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"duplicate.nvim": { "branch": "main", "commit": "ab057af7872c44e6fbd48df9b03983c8e67c50a7" },
"fzf-lua": { "branch": "main", "commit": "eb63a4bbfd203942737f76d4cf5424f6fb016a9d" },
"lazy.nvim": { "branch": "main", "commit": "b02c9eae6a250f98908c146d1dc1a891f5019f0a" },
"lsp-zero.nvim": { "branch": "v3.x", "commit": "16de3b18c5f7b6230d89b8e64ce9a4801b6f8d08" },
"lualine.nvim": { "branch": "master", "commit": "6a40b530539d2209f7dc0492f3681c8c126647ad" },
"moonfly": { "branch": "master", "commit": "31f65a1bbddd7de9a639d8d0e32b8066c0de1da1" },
"nord.nvim": { "branch": "master", "commit": "80c1e5321505aeb22b7a9f23eb82f1e193c12470" },
"nvim-cmp": { "branch": "main", "commit": "a110e12d0b58eefcf5b771f533fc2cf3050680ac" },
"nvim-lspconfig": { "branch": "master", "commit": "92166b89ab4b3d60f24e58170cac53b7141fd032" },
"nvim-tree.lua": { "branch": "master", "commit": "2bc725a3ebc23f0172fb0ab4d1134b81bcc13812" },
"nvim-web-devicons": { "branch": "master", "commit": "b4b302d6ae229f67df7a87ef69fa79473fe788a9" },
"vim-oscyank": { "branch": "main", "commit": "c37c9d98e8a0aed749624fa14a7ece7913cf34de" }
}

25
.zshrc Normal file
View file

@ -0,0 +1,25 @@
export ZSH="$HOME/.oh-my-zsh"
source $ZSH/oh-my-zsh.sh
# omz theme
ZSH_THEME="amuse"
# for laptop backlight
# alias bl="echo $1 | sudo tee /sys/class/backlight/intel_backlight/brightness"
export BL_DEVICE=/sys/class/backlight/intel_backlight
backlight() {
echo $1 > $BL_DEVICE/brightness
}
plugins=(
zsh-autosuggestions
git
)
source $ZSH/oh-my-zsh.sh
export NODE_PATH=/usr/lib/node_modules
# flyscrape
export PATH="/home/hex/.flyscrape:/home/hex/.cargo/bin:$PATH:$HOME/go/bin"
# Created by `pipx` on 2024-07-17 11:05:58
export PATH="$PATH:/home/hex/.local/bin"

1
install Symbolic link
View file

@ -0,0 +1 @@
./.config/dots/install.sh