diff --git a/README.md b/README.md
index c100dbe..e6cd17a 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,51 @@
-# d
+### Languages i've used
-My os setup scripts and personal dev .md file
\ No newline at end of file
+
+
+
+
+
+
+
+
+### Databases and message brokers i've worked with
+
+
+
+
+
+
+
+
+
+
+
+
+### Technologies i'm familiar with
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+---
+
+### My open-source contributions
+
+- [Author of grpc-clicker VSCode extension](https://marketplace.visualstudio.com/items?itemName=Dancheg97.grpc-clicker)
+- [Gitea PR to support arch linux packages (co-authored)](https://github.com/go-gitea/gitea/pull/32692)
+- [Found and fixed critical gitea vulnerability, allowing one user to occupy an unlimited amount of disk space (i bet hardest was to find it, old gh account - check commit email)](https://github.com/go-gitea/gitea/pull/28007)
+- [XORM PR to extend a website documentation a bit](https://gitea.com/xorm/website2/pulls/8)
+- [PR to OIDC to add support for env setting to web clients](https://github.com/zitadel/oidc/pull/693#pullrequestreview-2528704425)
+
+
+
+
diff --git a/ava.jpeg b/ava.jpeg
new file mode 100644
index 0000000..d9fe166
Binary files /dev/null and b/ava.jpeg differ
diff --git a/cat.gif b/cat.gif
new file mode 100644
index 0000000..3497cef
Binary files /dev/null and b/cat.gif differ
diff --git a/dbs/emqx.png b/dbs/emqx.png
new file mode 100644
index 0000000..9c4dd29
Binary files /dev/null and b/dbs/emqx.png differ
diff --git a/dbs/kafka.png b/dbs/kafka.png
new file mode 100644
index 0000000..c0b4cf6
Binary files /dev/null and b/dbs/kafka.png differ
diff --git a/dbs/leveldb.png b/dbs/leveldb.png
new file mode 100644
index 0000000..a2c27a9
Binary files /dev/null and b/dbs/leveldb.png differ
diff --git a/dbs/mongo.png b/dbs/mongo.png
new file mode 100644
index 0000000..a79f305
Binary files /dev/null and b/dbs/mongo.png differ
diff --git a/dbs/nats.png b/dbs/nats.png
new file mode 100644
index 0000000..de9424d
Binary files /dev/null and b/dbs/nats.png differ
diff --git a/dbs/postgres.png b/dbs/postgres.png
new file mode 100644
index 0000000..9e219ce
Binary files /dev/null and b/dbs/postgres.png differ
diff --git a/dbs/rabbitmq.png b/dbs/rabbitmq.png
new file mode 100644
index 0000000..2b01749
Binary files /dev/null and b/dbs/rabbitmq.png differ
diff --git a/dbs/redis.png b/dbs/redis.png
new file mode 100644
index 0000000..860a793
Binary files /dev/null and b/dbs/redis.png differ
diff --git a/keybindings.json b/keybindings.json
new file mode 100644
index 0000000..68f1bbf
--- /dev/null
+++ b/keybindings.json
@@ -0,0 +1,177 @@
+[
+ {
+ "key": "ctrl+shift+n ctrl+shift+f",
+ "command": "explorer.newFile"
+ },
+ {
+ "key": "ctrl+shift+delete",
+ "command": "workbench.action.terminal.kill"
+ },
+ {
+ "key": "ctrl+shift+g",
+ "command": "workbench.view.scm",
+ "when": "workbench.scm.active && !gitlens:disabled && config.gitlens.keymap == 'chorded'"
+ },
+ {
+ "key": "ctrl+shift+g g",
+ "command": "-workbench.view.scm",
+ "when": "workbench.scm.active && !gitlens:disabled && config.gitlens.keymap == 'chorded'"
+ },
+ {
+ "key": "ctrl+shift+n",
+ "command": "-workbench.action.newWindow"
+ },
+ {
+ "key": "ctrl+alt+down",
+ "command": "editor.action.copyLinesDownAction",
+ "when": "editorTextFocus && !editorReadonly"
+ },
+ {
+ "key": "ctrl+shift+alt+down",
+ "command": "-editor.action.copyLinesDownAction",
+ "when": "editorTextFocus && !editorReadonly"
+ },
+ {
+ "key": "ctrl+alt+up",
+ "command": "editor.action.copyLinesUpAction",
+ "when": "editorTextFocus && !editorReadonly"
+ },
+ {
+ "key": "ctrl+shift+alt+up",
+ "command": "-editor.action.copyLinesUpAction",
+ "when": "editorTextFocus && !editorReadonly"
+ },
+ {
+ "key": "ctrl+shift+n ctrl+shift+d",
+ "command": "explorer.newFolder"
+ },
+ {
+ "key": "ctrl+shift+e",
+ "command": "-workbench.action.quickOpenNavigatePreviousInFilePicker",
+ "when": "inFilesPicker && inQuickOpen"
+ },
+ {
+ "key": "ctrl+y",
+ "command": "workbench.action.toggleMaximizedPanel"
+ },
+ {
+ "key": "ctrl+shift+a",
+ "command": "workbench.action.focusActivityBar"
+ },
+ {
+ "key": "ctrl+down",
+ "command": "-scrollLineDown",
+ "when": "textInputFocus"
+ },
+ {
+ "key": "ctrl+down",
+ "command": "mario.moveDown",
+ "when": "editorTextFocus"
+ },
+ {
+ "key": "alt+s",
+ "command": "-mario.moveDown",
+ "when": "editorTextFocus"
+ },
+ {
+ "key": "ctrl+up",
+ "command": "-scrollLineUp",
+ "when": "textInputFocus"
+ },
+ {
+ "key": "ctrl+up",
+ "command": "mario.moveUp",
+ "when": "editorTextFocus"
+ },
+ {
+ "key": "alt+w",
+ "command": "-mario.moveUp",
+ "when": "editorTextFocus"
+ },
+ {
+ "key": "ctrl+1",
+ "command": "workbench.action.openEditorAtIndex1"
+ },
+ {
+ "key": "alt+1",
+ "command": "-workbench.action.openEditorAtIndex1"
+ },
+ {
+ "key": "ctrl+2",
+ "command": "workbench.action.openEditorAtIndex2"
+ },
+ {
+ "key": "alt+2",
+ "command": "-workbench.action.openEditorAtIndex2"
+ },
+ {
+ "key": "ctrl+3",
+ "command": "workbench.action.openEditorAtIndex3"
+ },
+ {
+ "key": "alt+3",
+ "command": "-workbench.action.openEditorAtIndex3"
+ },
+ {
+ "key": "ctrl+4",
+ "command": "workbench.action.openEditorAtIndex4"
+ },
+ {
+ "key": "alt+4",
+ "command": "-workbench.action.openEditorAtIndex4"
+ },
+ {
+ "key": "ctrl+5",
+ "command": "workbench.action.openEditorAtIndex5"
+ },
+ {
+ "key": "alt+5",
+ "command": "-workbench.action.openEditorAtIndex5"
+ },
+ {
+ "key": "ctrl+6",
+ "command": "workbench.action.openEditorAtIndex6"
+ },
+ {
+ "key": "alt+6",
+ "command": "-workbench.action.openEditorAtIndex6"
+ },
+ {
+ "key": "ctrl+7",
+ "command": "workbench.action.openEditorAtIndex7"
+ },
+ {
+ "key": "alt+7",
+ "command": "-workbench.action.openEditorAtIndex7"
+ },
+ {
+ "key": "ctrl+8",
+ "command": "workbench.action.openEditorAtIndex8"
+ },
+ {
+ "key": "alt+8",
+ "command": "-workbench.action.openEditorAtIndex8"
+ },
+ {
+ "key": "ctrl+9",
+ "command": "workbench.action.openEditorAtIndex9"
+ },
+ {
+ "key": "alt+9",
+ "command": "-workbench.action.openEditorAtIndex9"
+ },
+ {
+ "key": "ctrl+shift+q",
+ "command": "runCommands",
+ "args": {
+ "commands": [
+ "cody.chat.newEditorPanel",
+ "workbench.action.editorLayoutSingle"
+ ]
+ }
+ },
+ {
+ "key": "alt+l",
+ "command": "claude-dev.SidebarProvider.focus"
+ }
+]
\ No newline at end of file
diff --git a/langs/bash.png b/langs/bash.png
new file mode 100644
index 0000000..c58c144
Binary files /dev/null and b/langs/bash.png differ
diff --git a/langs/c.png b/langs/c.png
new file mode 100644
index 0000000..778bc81
Binary files /dev/null and b/langs/c.png differ
diff --git a/langs/go.png b/langs/go.png
new file mode 100644
index 0000000..62f54b9
Binary files /dev/null and b/langs/go.png differ
diff --git a/langs/js.png b/langs/js.png
new file mode 100644
index 0000000..7088662
Binary files /dev/null and b/langs/js.png differ
diff --git a/langs/python.png b/langs/python.png
new file mode 100644
index 0000000..4266e54
Binary files /dev/null and b/langs/python.png differ
diff --git a/settings.json b/settings.json
new file mode 100644
index 0000000..f964750
--- /dev/null
+++ b/settings.json
@@ -0,0 +1,49 @@
+{
+ "editor.rulers": [
+ 80
+ ],
+ "workbench.iconTheme": "material-icon-theme",
+ "workbench.startupEditor": "none",
+ "security.workspace.trust.untrustedFiles": "open",
+ "security.workspace.trust.startupPrompt": "never",
+ "security.workspace.trust.enabled": false,
+ "window.titleBarStyle": "custom",
+ "window.newWindowDimensions": "fullscreen",
+ "window.restoreFullscreen": true,
+ "redhat.telemetry.enabled": false,
+ "window.customMenuBarAltFocus": false,
+ "editor.cursorBlinking": "smooth",
+ "extensions.ignoreRecommendations": true,
+ "files.autoSave": "afterDelay",
+ "explorer.confirmDelete": false,
+ "git.enableSmartCommit": true,
+ "git.suggestSmartCommit": false,
+ "git.useEditorAsCommitInput": false,
+ "git.postCommitCommand": "sync",
+ "git.confirmSync": false,
+ "sqltools.autoOpenSessionFiles": false,
+ "window.commandCenter": false,
+ "[json]": {
+ "editor.defaultFormatter": "vscode.json-language-features"
+ },
+ "terminal.integrated.defaultProfile.linux": "zsh",
+ "go.toolsManagement.autoUpdate": true,
+ "database-client.autoSync": true,
+ "explorer.confirmDragAndDrop": false,
+ "[sql]": {
+ "editor.defaultFormatter": "mtxr.sqltools"
+ },
+ "editor.formatOnSave": true,
+ "protoc": {
+ "path": "proto"
+ },
+ "editor.inlineSuggest.suppressSuggestions": true,
+ "docker.extension.enableComposeLanguageServer": false,
+ "terminal.integrated.scrollback": 2000,
+ "terminal.integrated.tabs.enabled": false,
+ "terminal.integrated.fontFamily": "MesloLGS NF",
+ "github.copilot.inlineSuggest.enable": false,
+ "github.copilot.editor.enableAutoCompletions": false,
+ "github.copilot.chat.enabled": false,
+ "chat.disableAIFeatures": true
+}
\ No newline at end of file
diff --git a/setup.sh b/setup.sh
new file mode 100644
index 0000000..38db718
--- /dev/null
+++ b/setup.sh
@@ -0,0 +1,98 @@
+#!/bin/bash
+
+# File setup
+cp ~/os/ava.jpeg ~/.face
+
+# === VS Code configs ===
+cp ~/os/settings.json ~/.config/'Code - OSS'/User/settings.json
+cp ~/os/keybindings.json ~/.config/'Code - OSS'/User/keybindings.json
+
+# === GNOME keyboard shortcuts ===
+gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-down "['']"
+gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-up "['']"
+
+gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['Alt_L']"
+gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['Shift_L']"
+
+gsettings set org.gnome.desktop.wm.keybindings switch-windows "['Tab']"
+gsettings set org.gnome.desktop.wm.keybindings switch-applications "['']"
+gsettings set org.gnome.desktop.wm.keybindings maximize "['Up']"
+
+# === Wallpaper ===
+gsettings set org.gnome.desktop.background picture-uri "file://$HOME/os/wallpaper.jpg"
+gsettings set org.gnome.desktop.background picture-uri-dark "file://$HOME/os/wallpaper.jpg"
+gsettings set org.gnome.shell favorite-apps "['org.gnome.Settings.desktop', 'code-oss.desktop', 'chromium.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Console.desktop']"
+
+# === Gnome folders flattening ===
+gsettings set org.gnome.desktop.app-folders folder-children "[]"
+gsettings set org.gnome.desktop.app-folders folder-children "['']" 2>/dev/null || true
+echo "✅ App grid flattened! All apps will appear in a single alphabetical list."
+
+# === Git config (no shell issues) ===
+git config --global user.name "d1nch8g"
+git config --global user.email "d1nch8g@gmail.com"
+git config --global credential.helper store
+echo 'Defaults timestamp_timeout=60,!tty_tickets' | sudo tee /etc/sudoers.d/timeout
+
+# === Cleanup (no shell issues) ===
+for pkg in gnome-layout-switcher gnome-user-docs manjaro-application-utility libpamac-flatpak-plugin pamac-gnome-integration gnome-contacts gnome-tour gnome-text-editor gnome-calendar gnome-characters gnome-chess gnome-music gnome-system-monitor gnome-maps gnome-boxes gnome-calculator gnome-weather gnome-font-viewer gnome-mines gnome-logs gnome-clocks gnome-tweaks gnome-connections baobab quadrapassel iagno simple-scan snapshot loupe papers decibels gnome-firmware gnome-disk-utility pamac-gtk pamac-cli libpamac ex-vi-compat vim timeshift-autosnap-manjaro collision endeavour file-roller fragments kvantum-manjaro manjaro-hello micro timeshift gufw malcontent thunderbird firefox gnome-shell-extension-gtk4-desktop-icons-ng webapp-manager showtime; do
+ pacman -Q "$pkg" &>/dev/null && sudo pacman -Rns --noconfirm "$pkg"
+done
+
+# === System Updates (safe) ===
+sudo pacman -Syu
+sudo pacman -S --needed --noconfirm git go docker docker-compose chromium code base-devel rustup
+
+# === Environment Setup - SOLUTION 1 ===
+# Write env vars to file (will apply on next shell)
+echo 'export GOROOT=/usr/lib/go' >> ~/.zshrc
+echo 'export GOPATH=$HOME/go' >> ~/.zshrc
+echo 'export PATH=$PATH:/usr/lib/go/bin' >> ~/.zshrc
+echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.zshrc
+echo 'export PATH="$PATH:$HOME/go/bin"' >> ~/.zshrc
+
+# **CRITICAL: Export them NOW for this script**
+export GOROOT=/usr/lib/go
+export GOPATH=$HOME/go
+export PATH=$PATH:/usr/lib/go/bin
+export PATH=$PATH:$GOPATH/bin
+
+# === Go tools (now works because PATH is set) ===
+go install mvdan.cc/gofumpt@latest
+go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.11.4
+
+# === VS Code extensions ===
+code --install-extension PKief.material-icon-theme
+code --install-extension mhutchie.git-graph
+code --install-extension jeff-hykin.mario
+code --install-extension golang.Go
+code --install-extension rust-lang.rust-analyzer
+code --install-extension vadimcn.vscode-lldb
+code --install-extension tamasfe.even-better-toml
+
+# === Rust setup ===
+
+rustup default stable
+cargo install tauri-cli
+cargo install create-tauri-app
+
+# === Docker setup ===
+sudo groupadd docker 2>/dev/null # 2>/dev/null hides "group already exists" error
+sudo usermod -aG docker $USER
+
+sudo systemctl enable docker
+sudo systemctl start docker
+
+# === Chromium setup ===
+
+[ -f ~/.config/chromium/Default/Preferences ] && sed -i 's/"show_on_all_tabs":true/"show_on_all_tabs":false/' ~/.config/chromium/Default/Preferences || echo "Chromium preferences not found - run Chromium at least once first"
+sudo rm -f /etc/chromium/master_preferences
+rm -rf ~/.config/chromium
+
+# === Final message ===
+echo ""
+echo "✅ Script completed!"
+echo "⚠️ IMPORTANT: Log out and log back in (or reboot) for:"
+echo " - Docker group permissions to take effect"
+echo " - New shell environment variables"
+echo " - Full GNOME session reload"
diff --git a/tech/docker.png b/tech/docker.png
new file mode 100644
index 0000000..59c1be9
Binary files /dev/null and b/tech/docker.png differ
diff --git a/tech/flutter.png b/tech/flutter.png
new file mode 100644
index 0000000..3874c58
Binary files /dev/null and b/tech/flutter.png differ
diff --git a/tech/git.png b/tech/git.png
new file mode 100644
index 0000000..dc998d2
Binary files /dev/null and b/tech/git.png differ
diff --git a/tech/gitea.png b/tech/gitea.png
new file mode 100644
index 0000000..dec7a97
Binary files /dev/null and b/tech/gitea.png differ
diff --git a/tech/gitlab.png b/tech/gitlab.png
new file mode 100644
index 0000000..422d2e4
Binary files /dev/null and b/tech/gitlab.png differ
diff --git a/tech/grpc.png b/tech/grpc.png
new file mode 100644
index 0000000..45213bc
Binary files /dev/null and b/tech/grpc.png differ
diff --git a/tech/http.png b/tech/http.png
new file mode 100644
index 0000000..145a769
Binary files /dev/null and b/tech/http.png differ
diff --git a/tech/linux.png b/tech/linux.png
new file mode 100644
index 0000000..29e764d
Binary files /dev/null and b/tech/linux.png differ
diff --git a/tech/svelte.png b/tech/svelte.png
new file mode 100644
index 0000000..9ad30c6
Binary files /dev/null and b/tech/svelte.png differ
diff --git a/tech/vue.png b/tech/vue.png
new file mode 100644
index 0000000..cd797d9
Binary files /dev/null and b/tech/vue.png differ
diff --git a/wallpaper.jpg b/wallpaper.jpg
new file mode 100644
index 0000000..03232c1
Binary files /dev/null and b/wallpaper.jpg differ