mirror of
https://github.com/xHyroM/dotfiles.git
synced 2024-12-22 12:11:07 +01:00
feat: goog (#1)
This commit is contained in:
commit
c3212b6149
15 changed files with 195 additions and 6 deletions
3
.bashrc
3
.bashrc
|
@ -41,3 +41,6 @@ rbenv() {
|
|||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
||||
|
||||
# moon
|
||||
export PATH="$HOME/.moon/bin:$PATH"
|
||||
|
|
|
@ -3,7 +3,7 @@ require("presence").setup({
|
|||
neovim_image_text = "Neovim", -- Text displayed when hovered over the Neovim image
|
||||
main_image = "neovim", -- Main image display (either "neovim" or "file")
|
||||
client_id = "793271441293967371", -- Use your own Discord application client id (not recommended)
|
||||
log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error")
|
||||
log_level = "debug", -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error")
|
||||
debounce_timeout = 10, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(<filename>, true)`)
|
||||
enable_line_number = false, -- Displays the current line number instead of the current project
|
||||
blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches
|
||||
|
|
|
@ -24,8 +24,9 @@ return require("packer").startup(function(use)
|
|||
use "theprimeagen/harpoon"
|
||||
use "mbbill/undotree"
|
||||
use "tpope/vim-fugitive"
|
||||
use "andweeb/presence.nvim"
|
||||
use "jiriks74/presence.nvim"
|
||||
use "wakatime/vim-wakatime"
|
||||
use "github/copilot.vim"
|
||||
|
||||
use {
|
||||
'nvim-lualine/lualine.nvim',
|
||||
|
|
|
@ -89,6 +89,11 @@ _G.packer_plugins = {
|
|||
path = "/home/hyro/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp",
|
||||
url = "https://github.com/hrsh7th/cmp-nvim-lsp"
|
||||
},
|
||||
["copilot.vim"] = {
|
||||
loaded = true,
|
||||
path = "/home/hyro/.local/share/nvim/site/pack/packer/start/copilot.vim",
|
||||
url = "https://github.com/github/copilot.vim"
|
||||
},
|
||||
harpoon = {
|
||||
loaded = true,
|
||||
path = "/home/hyro/.local/share/nvim/site/pack/packer/start/harpoon",
|
||||
|
@ -153,7 +158,7 @@ _G.packer_plugins = {
|
|||
["presence.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/hyro/.local/share/nvim/site/pack/packer/start/presence.nvim",
|
||||
url = "https://github.com/andweeb/presence.nvim"
|
||||
url = "https://github.com/jiriks74/presence.nvim"
|
||||
},
|
||||
["telescope.nvim"] = {
|
||||
loaded = true,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
tint2 &
|
||||
xcompmgr &
|
||||
nitrogen --restore
|
||||
xwallpaper --zoom ~/Pictures/Th0q7eQ.jpg
|
||||
xrandr --output eDP-1 --auto --output HDMI-1 --mode 1920x1080 --rate 144 --primary --left-of eDP-1
|
||||
xbindkeys
|
||||
xinput --set-prop "pointer:Razer Razer DeathAdder Essential" "libinput Accel Speed" -0.85
|
||||
|
|
|
@ -12,9 +12,12 @@
|
|||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="intellij">
|
||||
<item label="idea">
|
||||
<action name="Execute"><command>idea</command></action>
|
||||
</item>
|
||||
<item label="zed">
|
||||
<action name="Execute"><command>zed</command></action>
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
<menu id="apps-games-menu" label="Games">
|
||||
|
|
|
@ -5,6 +5,7 @@ pulse.rules = [
|
|||
# Disable mic auto gain for some applications
|
||||
matches = [
|
||||
{ application.process.binary = "chrome" }
|
||||
{ application.process.binary = "chromium" }
|
||||
{ application.process.binary = "Discord" }
|
||||
{ application.process.binary = "teams" }
|
||||
{ application.process.binary = "skypeforlinux" }
|
||||
|
|
56
.config/zed/settings.json
Normal file
56
.config/zed/settings.json
Normal file
|
@ -0,0 +1,56 @@
|
|||
// Zed settings
|
||||
//
|
||||
// For information on how to configure Zed, see the Zed
|
||||
// documentation: https://zed.dev/docs/configuring-zed
|
||||
//
|
||||
// To see all of Zed's default settings without changing your
|
||||
// custom settings, run the `open default settings` command
|
||||
// from the command palette or from `Zed` application menu.
|
||||
{
|
||||
"theme": "One Dark",
|
||||
"ui_font_size": 15,
|
||||
"buffer_font_size": 14,
|
||||
// Mine
|
||||
"format_on_save": "on",
|
||||
"terminal": {
|
||||
"font_family": "DejaVuSansM Nerd Font",
|
||||
"line_height": "standard",
|
||||
"font_size": 15
|
||||
},
|
||||
"project_panel": {
|
||||
"default_width": 320
|
||||
},
|
||||
// ruby
|
||||
"lsp": {
|
||||
"solargraph": {
|
||||
"initialization_options": {
|
||||
"diagnostics": true,
|
||||
"formatting": false
|
||||
}
|
||||
}
|
||||
}
|
||||
// The following settings have been changed from the upstream defaults to
|
||||
// improve security and privacy. Here are the upstream defaults, you can
|
||||
// uncomment them if you like.
|
||||
//
|
||||
// "features": {
|
||||
// // Enable copilot (provided by an online service).
|
||||
// "copilot": true,
|
||||
// "inline_completion_provider": "copilot"
|
||||
// },
|
||||
// "assistant": {
|
||||
// "version": "1",
|
||||
// // Enable the assistant (provided by an online service).
|
||||
// "enabled": true
|
||||
// },
|
||||
// "telemetry": {
|
||||
// // Send debug info like crash reports to Zed Industries.
|
||||
// "diagnostics": true,
|
||||
// // Send anonymized usage data like what languages you're using Zed with
|
||||
// // to Zed Industries.
|
||||
// "metrics": true
|
||||
// },
|
||||
// "journal": {
|
||||
// "hour_format": "hour12"
|
||||
// }
|
||||
}
|
8
.local/bin/yarn
Executable file
8
.local/bin/yarn
Executable file
|
@ -0,0 +1,8 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [[ $1 == "build" ]]; then
|
||||
bun run $@
|
||||
exit
|
||||
fi
|
||||
|
||||
bun $@
|
12
README.md
12
README.md
|
@ -1 +1,11 @@
|
|||
This repository contains my configs, themes and other stuff that I'm using on void linux.
|
||||
# <img src="https://voidlinux.org/assets/img/void_bg.png" width="24" /> Void Linux Configuration
|
||||
|
||||
My configuration files, themes and other stuff I daily use on my machine.
|
||||
|
||||
### How to synchronize?
|
||||
|
||||
You can use [goog](./goog) for automatic synchronization. Option `-s` forces goog to copy all dotfiles into directories.
|
||||
|
||||
```sh
|
||||
$ ./goog -s
|
||||
```
|
||||
|
|
1
common/.gitignore
vendored
Normal file
1
common/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
__pycache__
|
23
common/dump.py
Normal file
23
common/dump.py
Normal file
|
@ -0,0 +1,23 @@
|
|||
from glob import glob
|
||||
import shutil
|
||||
import os
|
||||
|
||||
def dump(stuff: list[str]):
|
||||
for pattern in stuff:
|
||||
expand = os.path.expanduser(pattern)
|
||||
|
||||
for path in glob(expand, recursive=True):
|
||||
normalized_path = path.removeprefix(os.path.expanduser("~/"))
|
||||
if os.path.isdir(path):
|
||||
if os.path.exists(normalized_path):
|
||||
shutil.rmtree(normalized_path)
|
||||
|
||||
os.makedirs(normalized_path)
|
||||
else:
|
||||
dirname = os.path.dirname(normalized_path)
|
||||
if dirname:
|
||||
os.makedirs(dirname, exist_ok=True)
|
||||
|
||||
shutil.copy2(path, normalized_path)
|
||||
|
||||
exit(1)
|
31
common/sync.py
Normal file
31
common/sync.py
Normal file
|
@ -0,0 +1,31 @@
|
|||
from glob import glob
|
||||
import shutil
|
||||
import os
|
||||
|
||||
def sync(stuff: list[str]):
|
||||
for pattern in stuff:
|
||||
normalized_pattern = pattern.removeprefix("~")
|
||||
normalized_pattern = normalized_pattern.removeprefix("/")
|
||||
pattern_prefix = pattern[:2] if pattern.startswith("~") else pattern[0]
|
||||
overwrite = False
|
||||
|
||||
for path in glob(normalized_pattern, recursive=True):
|
||||
|
||||
system_path = os.path.expanduser(pattern_prefix + path)
|
||||
if os.path.isdir(path):
|
||||
os.makedirs(system_path, exist_ok=True)
|
||||
else:
|
||||
print(f":: Copying {path} to {system_path}")
|
||||
if os.path.exists(system_path) and not overwrite:
|
||||
print(f":: Path {system_path} already exists. Do you want to overwrite it with {path}? y/n/a")
|
||||
|
||||
ask = input()
|
||||
if ask not in ("y", "a"):
|
||||
continue
|
||||
|
||||
overwrite = ask == "a"
|
||||
|
||||
shutil.copy2(path, system_path)
|
||||
|
||||
|
||||
exit(1)
|
15
common/util.py
Normal file
15
common/util.py
Normal file
|
@ -0,0 +1,15 @@
|
|||
import re
|
||||
|
||||
def expand(pattern: str) -> list[str]:
|
||||
match = re.search(r'\{([^{}]*)\}', pattern)
|
||||
if not match:
|
||||
return [pattern]
|
||||
|
||||
pre, post = pattern[:match.start()], pattern[match.end():]
|
||||
options = match.group(1).split(',')
|
||||
|
||||
expanded_patterns = []
|
||||
for option in options:
|
||||
expanded_patterns.extend(expand(pre + option + post))
|
||||
|
||||
return expanded_patterns
|
32
goog
Executable file
32
goog
Executable file
|
@ -0,0 +1,32 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from getopt import getopt
|
||||
import sys
|
||||
|
||||
from common.dump import dump
|
||||
from common.sync import sync
|
||||
from common.util import expand
|
||||
|
||||
stuff: list[str] = [
|
||||
*expand("~/.config/{kitty,nvim,openbox,pipewire,tint2,zed}/**"),
|
||||
"~/.config/starship.toml",
|
||||
"~/.themes/**",
|
||||
*expand("~/.local/bin/{yarn}"),
|
||||
"~/.bashrc",
|
||||
"~/.xbindkeysrc"
|
||||
]
|
||||
|
||||
options, _ = getopt(sys.argv[1:], "ds", ["dump", "sync"])
|
||||
|
||||
for option, _ in options:
|
||||
if option in ("-d", "--dump"):
|
||||
dump(stuff)
|
||||
break
|
||||
|
||||
if option in ("-s", "--sync"):
|
||||
sync(stuff)
|
||||
break
|
||||
|
||||
print("Usage: ./goog [-d | --dump] [-s | --sync]\n")
|
||||
print("A simple tool for dumping dotfiles and syncing them")
|
||||
exit(1)
|
Loading…
Reference in a new issue