diff --git a/.config/fastfetch/logos/archlinux.png b/.config/fastfetch/logos/archlinux.png deleted file mode 100644 index b39010d9..00000000 Binary files a/.config/fastfetch/logos/archlinux.png and /dev/null differ diff --git a/.config/fastfetch/logos/cards.png b/.config/fastfetch/logos/cards.png deleted file mode 100644 index c87724a2..00000000 Binary files a/.config/fastfetch/logos/cards.png and /dev/null differ diff --git a/.config/fastfetch/logos/cat.png b/.config/fastfetch/logos/cat.png deleted file mode 100644 index d7bf8551..00000000 Binary files a/.config/fastfetch/logos/cat.png and /dev/null differ diff --git a/.config/fastfetch/logos/levi1.png b/.config/fastfetch/logos/levi1.png deleted file mode 100644 index a1c4c238..00000000 Binary files a/.config/fastfetch/logos/levi1.png and /dev/null differ diff --git a/.config/fastfetch/logos/levi2.png b/.config/fastfetch/logos/levi2.png deleted file mode 100644 index 949ce13a..00000000 Binary files a/.config/fastfetch/logos/levi2.png and /dev/null differ diff --git a/.config/fastfetch/logos/levi3.png b/.config/fastfetch/logos/levi3.png deleted file mode 100644 index 3562f276..00000000 Binary files a/.config/fastfetch/logos/levi3.png and /dev/null differ diff --git a/.config/fastfetch/logos/nezuko.png b/.config/fastfetch/logos/nezuko.png deleted file mode 100644 index 311b5ca2..00000000 Binary files a/.config/fastfetch/logos/nezuko.png and /dev/null differ diff --git a/.config/fastfetch/logos/screensaver.txt b/.config/fastfetch/logos/screensaver.txt deleted file mode 100644 index cd32fdc7..00000000 --- a/.config/fastfetch/logos/screensaver.txt +++ /dev/null @@ -1,10 +0,0 @@ -░██ ░██ ░██ ░██ ░█████████ ░██ ░██ -░██ ░██ ░██ ░██ ░██ ░██ ░██ ░██ -░██ ░██ ░██ ░██ ░██ ░██ ░██░██ -░██ ░██ ░████ ░█████████ ░███ - ░██ ░██ ░██ ░██ ░██ ░██░██ - ░██░██ ░██ ░██ ░██ ░██ ░██ - ░███ ░██ ░██ ░██ ░██ ░██ - - - diff --git a/.config/fish/env.fish b/.config/fish/env.fish deleted file mode 100644 index 1651aabd..00000000 --- a/.config/fish/env.fish +++ /dev/null @@ -1,11 +0,0 @@ -# MPD_HOST -export MPD_HOST="/run/user/$(id -u)/mpd/socket" - -#SCRIPTS -export PATH="$HOME/Scripts/:$PATH" -export PATH="$HOME/dotfiles/scripts:$PATH" -export PATH="$HOME/dotfiles/install/:$PATH" -export PATH="$HOME/dotfiles/install/themes:$PATH" -export PATH="$HOME/.config/hypr/scripts:$PATH" -export PATH="$HOME/.config/waybar/scripts/:$PATH" -export PATH="$HOME/.config/rofi/scripts/:$PATH" diff --git a/.config/hypr/scripts/first-run b/.config/hypr/scripts/first-run deleted file mode 100755 index 9aa30315..00000000 --- a/.config/hypr/scripts/first-run +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -MARKER="$HOME/.local/state/symphony/first-run-done" -[[ -f "$MARKER" ]] && exit 0 - -# Wait for Hyprland to initialize -sleep 2 - -# Apply default theme -~/dotfiles/install/themes/symphony switch sakura - -# Welcome notifications -notify-send -u critical "App Launcher" "Press Super + Space to launch apps" -notify-send -u critical "Keybindings" "Press Super + K to view all  keybindings" -notify-send -u critical "Welcome to Symphony" "Run 'symphony help' for available commands." - -# Mark as done (prevents re-running on future boots) -mkdir -p "$(dirname "$MARKER")" -touch "$MARKER" diff --git a/.config/nvim/after/ftplugin/lua.lua b/.config/nvim/after/ftplugin/lua.lua deleted file mode 100644 index f00707c4..00000000 --- a/.config/nvim/after/ftplugin/lua.lua +++ /dev/null @@ -1,2 +0,0 @@ -vim.opt.shiftwidth = 2 -vim.opt.expandtab = true diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json deleted file mode 100644 index 71859b8c..00000000 --- a/.config/nvim/lazy-lock.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "CopilotChat.nvim": { "branch": "main", "commit": "21bdecb25aa72119d11d7fc08c7e0ce323f1b540" }, - "LuaSnip": { "branch": "master", "commit": "5a1e39223db9a0498024a77b8441169d260c8c25" }, - "aether": { "branch": "main", "commit": "e4c485f6fea6170fe2da17e87ca98cd25d215cd5" }, - "alpha-nvim": { "branch": "main", "commit": "3979b01cb05734331c7873049001d3f2bb8477f4" }, - "catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" }, - "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" }, - "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "fd3e882e56956675c620898bf1ffcf4fcbe7ec84" }, - "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" }, - "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, - "codesnap.nvim": { "branch": "main", "commit": "d8d55f5b62a6c12bc7756eb0b997a776eafd086e" }, - "copilot.lua": { "branch": "master", "commit": "0ab400d547814b04b39a069208ff7b40ab22dfb5" }, - "cord.nvim": { "branch": "master", "commit": "61215c968214b58441294b8ecfa8d27885572d23" }, - "efmls-configs-nvim": { "branch": "main", "commit": "2dd907fe0043b95a901a9aee814f17804aa4426d" }, - "fidget.nvim": { "branch": "main", "commit": "7fa433a83118a70fe24c1ce88d5f0bd3453c0970" }, - "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" }, - "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "fzf-lua": { "branch": "main", "commit": "578a11f9f7c5f4436b833731ccceeda9479562f0" }, - "gitsigns.nvim": { "branch": "main", "commit": "42d6aed4e94e0f0bbced16bbdcc42f57673bd75e" }, - "gruvbox-material": { "branch": "master", "commit": "e4359a2f80ef7275b080be180841c62ca8322757" }, - "gruvbox.nvim": { "branch": "main", "commit": "a472496e1a4465a2dd574389dcf6cdb29af9bf1b" }, - "inc-rename.nvim": { "branch": "main", "commit": "2597bccb57d1b570fbdbd4adf88b955f7ade715b" }, - "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, - "kanagawa.nvim": { "branch": "master", "commit": "aef7f5cec0a40dbe7f3304214850c472e2264b10" }, - "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, - "lazygit.nvim": { "branch": "main", "commit": "a04ad0dbc725134edbee3a5eea29290976695357" }, - "live-server.nvim": { "branch": "main", "commit": "58f2e30e029a57dbda15c5749edd8d642578859f" }, - "lspkind.nvim": { "branch": "master", "commit": "53374a2dbcb959f1d0d5d3cf6c47c4b029151c6e" }, - "lspsaga.nvim": { "branch": "main", "commit": "8efe00d6aed9db6449969f889170f1a7e43101a1" }, - "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, - "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, - "mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" }, - "melange-nvim": { "branch": "master", "commit": "ce42f6b629beeaa00591ba73a77d3eeac4cf28ce" }, - "miasma.nvim": { "branch": "main", "commit": "627f2e1cac91de0d1d4dd7472b506a30f41b2b7d" }, - "mini.ai": { "branch": "main", "commit": "bfb26d9072670c3aaefab0f53024b2f3729c8083" }, - "mini.files": { "branch": "main", "commit": "fafacfecdd6c5a66bb10d173a749f3c098e84498" }, - "mini.icons": { "branch": "main", "commit": "efc85e42262cd0c9e1fdbf806c25cb0be6de115c" }, - "mini.notify": { "branch": "main", "commit": "29ec27f60bf4b63e447c851d9061c434d80795a6" }, - "mini.pairs": { "branch": "main", "commit": "d5a29b6254dad07757832db505ea5aeab9aad43a" }, - "mini.surround": { "branch": "main", "commit": "cc7b9d0a056b5fa6915ffac1cb91f29bf7c96f69" }, - "nordic.nvim": { "branch": "main", "commit": "962c717820a9d7201ef7622cf1e78bd57806bb7c" }, - "nvim-cmp": { "branch": "main", "commit": "85bbfad83f804f11688d1ab9486b459e699292d6" }, - "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, - "nvim-lspconfig": { "branch": "master", "commit": "92ee7d42320edfbb81f3cad851314ab197fa324a" }, - "nvim-tree.lua": { "branch": "master", "commit": "ca8d82fff26cb12ced239713e3222f4a9dcd0da0" }, - "nvim-treesitter": { "branch": "main", "commit": "7c14161403275550f94e1b218510f3ecbbb3c58e" }, - "nvim-web-devicons": { "branch": "master", "commit": "803353450c374192393f5387b6a0176d0972b848" }, - "opencode.nvim": { "branch": "main", "commit": "f87e18f32a6451cc9dff6400b7bd36be842adf88" }, - "peek.nvim": { "branch": "master", "commit": "5820d937d5414baea5f586dc2a3d912a74636e5b" }, - "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, - "render-markdown.nvim": { "branch": "main", "commit": "c54380dd4d8d1738b9691a7c349ecad7967ac12e" }, - "rose-pine": { "branch": "main", "commit": "cf2a288696b03d0934da713d66c6d71557b5c997" }, - "screenkey.nvim": { "branch": "main", "commit": "16390931d847b1d5d77098daccac4e55654ac9e2" }, - "snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" }, - "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, - "tokyodark.nvim": { "branch": "master", "commit": "659aff3c73dc2e0159314050a81671f0b2eaad01" }, - "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" }, - "treesj": { "branch": "main", "commit": "186084dee5e9c8eec40f6e39481c723dd567cb05" }, - "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" }, - "undotree": { "branch": "master", "commit": "178d19e00a643f825ea11d581b1684745d0c4eda" }, - "vague.nvim": { "branch": "main", "commit": "fcc283576764474ccfbbcca240797d5d7f4d8a78" }, - "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" }, - "vim-tmux-navigator": { "branch": "master", "commit": "c45243dc1f32ac6bcf6068e5300f3b2b237e576a" }, - "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }, - "yazi.nvim": { "branch": "main", "commit": "771d3a971984ee626e608431a8b88138ca7a8b6d" }, - "zen-mode.nvim": { "branch": "main", "commit": "8564ce6d29ec7554eb9df578efa882d33b3c23a7" } -} diff --git a/.config/nvim/lua/plugins/coding.lua b/.config/nvim/lua/plugins/coding.lua deleted file mode 100644 index 3e7d9fef..00000000 --- a/.config/nvim/lua/plugins/coding.lua +++ /dev/null @@ -1,80 +0,0 @@ -return { - -- Incremental rename - { - "smjonas/inc-rename.nvim", - cmd = "IncRename", - config = true, - }, - - -- split and join - { - "Wansmer/treesj", - keys = { "m" }, - dependencies = { "nvim-treesitter/nvim-treesitter" }, - config = function() - require("treesj").setup { max_join_length = 200 } - end, - }, - - -- copilot - { - "zbirenbaum/copilot.lua", - opts = { - suggestion = { - auto_trigger = false, - keymap = { - accept = "", - accept_word = "", - accept_line = "", - next = "", - prev = "", - dismiss = "", - }, - }, - filetypes = { - markdown = true, - help = true, - }, - }, - }, - - -- copilot chat - { - "CopilotC-Nvim/CopilotChat.nvim", - dependencies = { - { "nvim-lua/plenary.nvim", branch = "master" }, - }, - build = "make tiktoken", - opts = { - -- See Configuration section for options - mappings = { - reset = { - insert = "", - normal = "", - }, - }, - prompts = { - Tutor = { - prompt = "You are an AI coding instructor designed to assist and guide me as I learn to code. Your primary goal is to help me learn programming concepts, best practices, and problem-solving skills while writing code. Always assume I'm a beginner with limited programming knowledge.Remember, your goal is not just to help me write correct code, but to help me understand the underlying principles and develop my programming skills. Always strive to be clear, patient, and encouraging in your responses.", - }, - Feedback = { - prompt = "Review the code and provide feedback. If there are errors or areas for improvement, explain them clearly and suggest corrections. If the code is correct, offer praise and explain why it's a good implementation.Structure your responses as follows: 1- Answer my question, 2- Code review and feedback, 3- Suggestions for further learning or practice", - }, - FixBuffer = { - prompt = "Given these diagnostics in the file '$file' which is a '$language' file, please fix the issues: $diagnostics", - }, - }, - }, - keys = { - { "a", "CopilotChat", mode = "n", desc = "Open Copilot Chat" }, - { "te", "CopilotChatExplain", mode = "v", desc = "Explain Code" }, - { "tr", "CopilotChatReview", mode = "v", desc = "Review Code" }, - { "tf", "CopilotChatFix", mode = "v", desc = "Fix Code Issues" }, - { "to", "CopilotChatOptimize", mode = "v", desc = "Optimize Code" }, - { "td", "CopilotChatDocs", mode = "v", desc = "Generate Docs" }, - { "tt", "CopilotChatTests", mode = "v", desc = "Generate Tests" }, - { "tm", "CopilotChatCommit", mode = "n", desc = "Generate Commit Message" }, - { "ts", "CopilotChatCommit", mode = "v", desc = "Generate Commit for Selection" }, - }, - }, -} diff --git a/.config/nvim/lua/plugins/colorscheme.lua b/.config/nvim/lua/plugins/colorscheme.lua deleted file mode 100644 index 935b2a5d..00000000 --- a/.config/nvim/lua/plugins/colorscheme.lua +++ /dev/null @@ -1,102 +0,0 @@ -return { - { "savq/melange-nvim", lazy = true }, - { "AlexvZyl/nordic.nvim", lazy = true }, - { "xero/miasma.nvim", lazy = true }, - { "tiagovla/tokyodark.nvim", lazy = true, opts = { transparent_background = true } }, - { "rebelot/kanagawa.nvim", lazy = true, opts = { transparent = false, theme = "wave" } }, - { "ellisonleao/gruvbox.nvim", lazy = true, opts = { transparent_mode = true } }, - { "catppuccin/nvim", name = "catppuccin", lazy = true, opts = { transparent_background = false, flavour = "mocha" } }, - { "folke/tokyonight.nvim", lazy = true, opts = { style = "night", transparent = true } }, - { - "rose-pine/neovim", - name = "rose-pine", - lazy = true, - opts = { styles = { transparency = false } }, - }, - -- superior gruvbox variant - { - "sainnhe/gruvbox-material", - lazy = true, - config = function() - vim.g.gruvbox_material_enable_italic = true - vim.g.gruvbox_material_background = "hard" - vim.g.gruvbox_material_transparent_background = 1 - end, - }, - -- custom theme - { - "bjarneo/aether.nvim", - name = "aether", - lazy = true, - opts = { - disable_italics = false, - transparent = true, - colors = { - -- aamis - -- base00 = "#0f0f0f", - -- base01 = "#5e5959", - -- base02 = "#0f0f0f", - -- base03 = "#5e5959", - -- base04 = "#e6caab", - -- base05 = "#eadccc", - -- base06 = "#eadccc", - -- base07 = "#e6caab", - -- base08 = "#e25d6c", - -- base09 = "#e9838f", - -- base0A = "#f4bb54", - -- base0B = "#cea37f", - -- base0C = "#e8ab3b", - -- base0D = "#e2be8a", - -- base0E = "#f66151", - -- base0F = "#edb95a", - - -- sakura - base00 = "#0d0509", - base01 = "#4a3c45", - base02 = "#0d0509", - base03 = "#8a6a7a", - base04 = "#E3C5AB", - base05 = "#f0eaed", - base06 = "#ffffff", - base07 = "#E3C5AB", - base08 = "#E85F6F", - base09 = "#FF7A8A", - base0A = "#D4A882", - base0B = "#F29B9A", - base0C = "#E8C099", - base0D = "#D9A56C", - base0E = "#D1B399", - base0F = "#FBD2AB", - - -- forest - -- base00 = "#020802", - -- base01 = "#518a51", - -- base02 = "#020802", - -- base03 = "#518a51", - -- base04 = "#bff2ab", - -- base05 = "#fdfffd", - -- base06 = "#fdfffd", - -- base07 = "#bff2ab", - -- base08 = "#bf5a7c", - -- base09 = "#dcb0be", - -- base0A = "#DFEC63", - -- base0B = "#70cf6c", - -- base0C = "#9ed8dd", - -- base0D = "#62e2a4", - -- base0E = "#e0eb7a", - -- base0F = "#f6fdb7", - }, - }, - }, - -- fav theme (only this will be loaded on startup) - { - "vague2k/vague.nvim", - priority = 1000, - lazy = false, - opts = { transparent = true }, - config = function(_, opts) - require("vague").setup(opts) - vim.cmd.colorscheme "vague" - end, - }, -} diff --git a/.config/nvim/lua/plugins/cord.lua b/.config/nvim/lua/plugins/cord.lua deleted file mode 100644 index 6576d02e..00000000 --- a/.config/nvim/lua/plugins/cord.lua +++ /dev/null @@ -1,30 +0,0 @@ --- Discord rich presence -return { - "vyfor/cord.nvim", - build = ":Cord update", - event = "VeryLazy", - opts = { - editor = { - client = "neovim", - tooltip = "Editing with ⚡Neovim", - }, - display = { - theme = "default", - flavor = "dark", - }, - timestamp = { enabled = true }, - idle = { - enabled = true, - timeout = 300000, -- 5 minutes - details = "Idle ☕", - state = "Taking a break", - }, - text = { - workspace = "In project ${workspace}", - editing = "Editing ${filename}", - file_browser = "Browsing ${name}", - plugin_manager = "Managing plugins", - }, - variables = true, - }, -} diff --git a/.config/nvim/lua/plugins/git.lua b/.config/nvim/lua/plugins/git.lua deleted file mode 100644 index e4a4117b..00000000 --- a/.config/nvim/lua/plugins/git.lua +++ /dev/null @@ -1,32 +0,0 @@ -return { - -- git signs - { "lewis6991/gitsigns.nvim" }, - - -- for more advanced feature - { - "tpope/vim-fugitive", - event = "VeryLazy", - config = function() - vim.keymap.set("n", "gs", function() - if vim.bo.filetype == "fugitive" then - vim.cmd "q" - else - vim.cmd "Git" - end - end, { desc = "Toggle Fugitive Panel" }) - end, - }, - - -- git tui - { - "kdheepak/lazygit.nvim", - dependencies = { "nvim-lua/plenary.nvim" }, - cmd = { - "LazyGit", - "LazyGitConfig", - "LazyGitCurrentFile", - "LazyGitFilter", - "LazyGitFilterCurrentFile", - }, - }, -} diff --git a/.config/nvim/lua/plugins/navigation.lua b/.config/nvim/lua/plugins/navigation.lua deleted file mode 100644 index 7cb18722..00000000 --- a/.config/nvim/lua/plugins/navigation.lua +++ /dev/null @@ -1,71 +0,0 @@ -return { - -- Tmux integration - { - "christoomey/vim-tmux-navigator", - cmd = { - "TmuxNavigateLeft", - "TmuxNavigateDown", - "TmuxNavigateUp", - "TmuxNavigateRight", - "TmuxNavigatePrevious", - "TmuxNavigatorProcessList", - }, - keys = { - { "", "TmuxNavigateLeft" }, - { "", "TmuxNavigateDown" }, - { "", "TmuxNavigateUp" }, - { "", "TmuxNavigateRight" }, - { "", "TmuxNavigatePrevious" }, - }, - - -- fast navition (better f) - { - "folke/flash.nvim", - event = "VeryLazy", - ---@type Flash.Config - opts = {}, - keys = { - { - "zk", - mode = { "n", "x", "o" }, - function() - require("flash").jump() - end, - desc = "Flash", - }, - { - "zK", - mode = { "n", "x", "o" }, - function() - require("flash").treesitter() - end, - desc = "Flash Treesitter", - }, - { - "r", - mode = "o", - function() - require("flash").remote() - end, - desc = "Remote Flash", - }, - { - "R", - mode = { "o", "x" }, - function() - require("flash").treesitter_search() - end, - desc = "Treesitter Search", - }, - { - "", - mode = { "c" }, - function() - require("flash").toggle() - end, - desc = "Toggle Flash Search", - }, - }, - }, - }, -} diff --git a/.config/nvim/lua/plugins/opencode.lua b/.config/nvim/lua/plugins/opencode.lua deleted file mode 100644 index b9122274..00000000 --- a/.config/nvim/lua/plugins/opencode.lua +++ /dev/null @@ -1,33 +0,0 @@ -return { - "NickvanDyke/opencode.nvim", - dependencies = { - -- Recommended for `ask()` and `select()`. - -- Required for `snacks` provider. - ---@module 'snacks' <- Loads `snacks.nvim` types for configuration intellisense. - { "folke/snacks.nvim", opts = { input = {}, picker = {}, terminal = {} } }, - }, - config = function() - ---@type opencode.Opts - vim.g.opencode_opts = { - -- Your configuration, if any — see `lua/opencode/config.lua`, or "goto definition" on the type or field. - } - - -- Required for `opts.events.reload`. - vim.o.autoread = true - - -- Recommended/example keymaps. - vim.keymap.set({ "n", "x" }, "", function() require("opencode").ask("@this: ", { submit = true }) end, { desc = "Ask opencode…" }) - vim.keymap.set({ "n", "x" }, "", function() require("opencode").select() end, { desc = "Execute opencode action…" }) - vim.keymap.set({ "n", "t" }, "", function() require("opencode").toggle() end, { desc = "Toggle opencode" }) - - vim.keymap.set({ "n", "x" }, "go", function() return require("opencode").operator("@this ") end, { desc = "Add range to opencode", expr = true }) - vim.keymap.set("n", "goo", function() return require("opencode").operator("@this ") .. "_" end, { desc = "Add line to opencode", expr = true }) - - vim.keymap.set("n", "", function() require("opencode").command("session.half.page.up") end, { desc = "Scroll opencode up" }) - vim.keymap.set("n", "", function() require("opencode").command("session.half.page.down") end, { desc = "Scroll opencode down" }) - - -- You may want these if you stick with the opinionated "" and "" above — otherwise consider "o…". - vim.keymap.set("n", "+", "", { desc = "Increment under cursor", noremap = true }) - vim.keymap.set("n", "-", "", { desc = "Decrement under cursor", noremap = true }) - end, -} diff --git a/.config/nvim/lua/plugins/transparency.lua b/.config/nvim/lua/plugins/transparency.lua deleted file mode 100644 index ff884e36..00000000 --- a/.config/nvim/lua/plugins/transparency.lua +++ /dev/null @@ -1,54 +0,0 @@ --- Transparency overrides (disabled, themes handle it) -return { - -- name = "transparency", - -- dir = vim.fn.stdpath("config"), - -- lazy = false, - -- priority = 50, - -- config = function() - -- -- transparent background - -- vim.api.nvim_set_hl(0, "Normal", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "FloatBorder", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "Pmenu", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "Terminal", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "EndOfBuffer", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "FoldColumn", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "Folded", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "SignColumn", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NormalNC", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "WhichKeyFloat", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "TelescopeBorder", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "TelescopeNormal", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "TelescopePromptBorder", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "TelescopePromptTitle", { bg = "none" }) - -- - -- -- transparent background for neotree - -- vim.api.nvim_set_hl(0, "NeoTreeNormal", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NeoTreeNormalNC", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NeoTreeVertSplit", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NeoTreeWinSeparator", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NeoTreeEndOfBuffer", { bg = "none" }) - -- - -- -- transparent background for nvim-tree - -- vim.api.nvim_set_hl(0, "NvimTreeNormal", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NvimTreeVertSplit", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NvimTreeEndOfBuffer", { bg = "none" }) - -- - -- -- transparent notify background - -- vim.api.nvim_set_hl(0, "NotifyINFOBody", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NotifyERRORBody", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NotifyWARNBody", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NotifyTRACEBody", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NotifyDEBUGBody", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NotifyINFOTitle", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NotifyERRORTitle", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NotifyWARNTitle", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NotifyTRACETitle", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NotifyDEBUGTitle", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NotifyINFOBorder", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NotifyERRORBorder", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NotifyWARNBorder", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NotifyTRACEBorder", { bg = "none" }) - -- vim.api.nvim_set_hl(0, "NotifyDEBUGBorder", { bg = "none" }) - -- end, -} diff --git a/.config/nvim/lua/plugins/trouble.lua b/.config/nvim/lua/plugins/trouble.lua deleted file mode 100644 index 27144d98..00000000 --- a/.config/nvim/lua/plugins/trouble.lua +++ /dev/null @@ -1,39 +0,0 @@ --- Diagnostics viewer -return { - "folke/trouble.nvim", - opts = {}, -- for default options, refer to the configuration section for custom setup. - cmd = "Trouble", - lazy = true, - keys = { - { - "xx", - "Trouble diagnostics toggle", - desc = "Workspace Diagnostics (Trouble)", - }, - { - "xX", - "Trouble diagnostics toggle filter.buf=0", - desc = "Buffer Diagnostics (Trouble)", - }, - { - "cs", - "Trouble symbols toggle focus=false", - desc = "Symbols (Trouble)", - }, - { - "cl", - "Trouble lsp toggle focus=false win.position=right", - desc = "LSP Definitions / references / ... (Trouble)", - }, - { - "xL", - "Trouble loclist toggle", - desc = "Location List (Trouble)", - }, - { - "xQ", - "Trouble qflist toggle", - desc = "Quickfix List (Trouble)", - }, - }, -} diff --git a/.config/nvim/lua/plugins/yazi.lua b/.config/nvim/lua/plugins/yazi.lua deleted file mode 100644 index d8dabbfd..00000000 --- a/.config/nvim/lua/plugins/yazi.lua +++ /dev/null @@ -1,32 +0,0 @@ --- Yazi file manager -return { - "mikavilpas/yazi.nvim", - event = "VeryLazy", - keys = { - -- 👇 in this section, choose your own keymappings! - { - "zm", - "Yazi", - desc = "Open yazi at the current file", - }, - { - -- Open in the current working directory - "cw", - "Yazi cwd", - desc = "Open the file manager in nvim's working directory", - }, - { - "", - "Yazi toggle", - desc = "Resume the last yazi session", - }, - }, - opts = { - -- if you want to open yazi instead of netrw, see below for more info - open_for_directories = false, - keymaps = { - show_help = "", - }, - yazi_floating_window_border = "none", - }, -} diff --git a/.config/tmux/plugins/tmux-sensible b/.config/tmux/plugins/tmux-sensible deleted file mode 160000 index 25cb91f4..00000000 --- a/.config/tmux/plugins/tmux-sensible +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 25cb91f42d020f675bb0a2ce3fbd3a5d96119efa diff --git a/.config/tmux/plugins/tpm b/.config/tmux/plugins/tpm deleted file mode 160000 index 99469c4a..00000000 --- a/.config/tmux/plugins/tpm +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 99469c4a9b1ccf77fade25842dc7bafbc8ce9946 diff --git a/.config/tmux/plugins/vim-tmux-navigator b/.config/tmux/plugins/vim-tmux-navigator deleted file mode 160000 index c45243dc..00000000 --- a/.config/tmux/plugins/vim-tmux-navigator +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c45243dc1f32ac6bcf6068e5300f3b2b237e576a diff --git a/.config/tmux/statusline.conf b/.config/tmux/statusline.conf deleted file mode 100644 index 82a5d013..00000000 --- a/.config/tmux/statusline.conf +++ /dev/null @@ -1,86 +0,0 @@ -# ### gruvbox-material-dark #### -# set -g mode-style "fg=#161615,bg=#d79921" -# set -g message-style "fg=#d4be98,bg=#1d2021" -# set -g message-command-style "fg=#d4be98,bg=#1d2021" -# set -g pane-border-style "fg=#504945" -# set -g pane-active-border-style "fg=#d4be98" -# set -g status "on" -# set -g status-interval 1 -# set -g status-justify "left" -# set -g status-style "fg=#d4be98,bg=#161615" -# set -g status-bg "#161615" # #1d2021 -# set -g status-left-length "100" -# set -g status-right-length "100" -# set -g status-left-style NONE -# set -g status-right-style NONE -# set -g status-left "#[fg=#161615,bg=#d4be98,bold] #S:#I #[fg=#d4be98,bg=#504945,nobold,nounderscore,noitalics]#[fg=#d4be98,bg=#504945,bold] #(whoami) #[fg=#504945,bg=#161615]" -# set -g status-right "#[fg=#504945,bg=#161615,nobold,nounderscore,noitalics]#[fg=#d4be98,bg=#504945]#[fg=#d4be98,bg=#504945,nobold,nounderscore,noitalics] #{b:pane_current_path} #[fg=#161615,bg=#d4be98,bold] #h " -# setw -g window-status-activity-style "underscore,fg=#d79921,bg=#161615" -# setw -g window-status-separator "" -# setw -g window-status-style "NONE,fg=#a89984,bg=#161615" -# setw -g window-status-format '#[fg=#161615,bg=#161615]#[default] #I  #W #[fg=#161615,bg=#161615,nobold,nounderscore,noitalics]' -# setw -g window-status-current-format '#[fg=#161615,bg=#d79921]#[fg=#161615,bg=#d79921,bold] #I #[fg=#d79921,bg=#d4be98]#[fg=#161615,bg=#d4be98] #W #[fg=#d4be98,bg=#161615]' - -### colorscheme for your terminal #### -# set -g status on -# set -g status-interval 1 -# set -g status-left-length 100 -# set -g status-right-length 100 -# set -g status-style "fg=white,bg=#1c1c24" -# set -g status-justify absolute-centre -# set -g message-style "fg=black,bg=cyan" -# set -g status-left "#[fg=white,bg=black]  #S #{prefix_highlight}" -# set -g status-right " #[fg=white,bg=black] 󰃭 %A %d %b #[fg=black,bg=cyan]" -# setw -g window-status-separator " " -# setw -g window-status-format "#[fg=black,bg=brightwhite] #I #[fg=white,bg=black] #W " -# setw -g window-status-current-format "#[fg=black,bg=yellow] #I #[fg=white,bg=black] #W " -# -# # tmux-plugins/tmux-prefix-highlight support -# set -g @prefix_highlight_output_prefix "#[fg=black]#[bg=yellow]" -# set -g @prefix_highlight_output_suffix "" - -# #### minimal #### -# set -g mode-style "fg=#18181b,bg=#a1a1aa" -# set -g message-style "fg=#fafafa,bg=#18181b" -# set -g message-command-style "fg=#fafafa,bg=#18181b" -# set -g pane-border-style "fg=#27272a" -# set -g pane-active-border-style "fg=#71717a" -# set -g status "on" -# set -g status-interval 1 -# set -g status-justify "centre" -# set -g status-style "fg=#fafafa,bg=#09090b" -# set -g status-bg "#09090b" -# set -g status-left-length "100" -# set -g status-right-length "100" -# set -g status-left-style NONE -# set -g status-right-style NONE -# set -g status-left "#[fg=#fafafa,bg=#09090b,bold]#S#[fg=#52525b]:#[fg=#71717a]#(tmux list-sessions | wc -l) " -# set -g status-right "#[fg=#52525b]%H:%M" -# setw -g window-status-activity-style "underscore,fg=#a1a1aa,bg=#09090b" -# setw -g window-status-separator " " -# setw -g window-status-style "NONE,fg=#52525b,bg=#09090b" -# setw -g window-status-format '#[fg=#71717a]#I#[fg=#52525b]:#W' -# setw -g window-status-current-format '#[fg=#fafafa,bold]#I#[fg=#fafafa,bold]:#W' - -#### minimal-adaptive #### -set -g mode-style "fg=black,bg=cyan" -set -g message-style "fg=#fafafa,bg=#18181b" -set -g message-command-style "fg=#fafafa,bg=#18181b" -set -g pane-border-style "fg=#27272a" -set -g pane-active-border-style "fg=cyan" -set -g status "on" -set -g status-interval 1 -set -g status-justify "centre" -set -g status-style "fg=#fafafa,bg=#09090b" -set -g status-bg "#09090b" -set -g status-left-length "100" -set -g status-right-length "100" -set -g status-left-style NONE -set -g status-right-style NONE -set -g status-left "#[fg=#fafafa,bg=#09090b,bold]#S#[fg=#52525b]:#[fg=#71717a]#(tmux list-sessions | wc -l) " -set -g status-right "#[fg=#52525b]%H:%M" -setw -g window-status-activity-style "underscore,fg=cyan,bg=#09090b" -setw -g window-status-separator " " -setw -g window-status-style "NONE,fg=#52525b,bg=#09090b" -setw -g window-status-format '#[fg=#71717a]#I#[fg=#52525b]:#W' -setw -g window-status-current-format '#[fg=cyan,bold]#I#[fg=cyan,bold]:#W' diff --git a/.config/tmux/tmux.conf b/.config/tmux/tmux.conf deleted file mode 100644 index aa9bf743..00000000 --- a/.config/tmux/tmux.conf +++ /dev/null @@ -1,64 +0,0 @@ -set -g default-terminal "tmux-256color" -set -ag terminal-overrides ",xterm-256color:RGB" - -#### PREFIX KEY #### -unbind C-b -set -g prefix C-s #Suggestion: Remap CAPSLOCK to CTRL - -# Reload tmux.conf -unbind r -bind R source-file ~/.config/tmux/tmux.conf \; display "Reloaded!" - - -# Key bindings -set-window-option -g mode-keys vi - -set -g base-index 1 # start indexing windows at 1 instead of 0 -set -g detach-on-destroy off # don't exit from tmux when closing a session -set -g escape-time 0 # zero-out escape time delay -set -g history-limit 1000000 # increase history size (from 2,000) -set -g mouse on # enable mouse support -set -g renumber-windows on # renumber all windows when any window is closed -set -g set-clipboard on # use system clipboard -set -g status-interval 3 # update the status bar every 3 seconds -bind-key x kill-pane # skip "kill-pane 1? (y/n)" prompt - - -#### Pane resizing #### -unbind Up -unbind Down -unbind Left -unbind Right -bind Up resize-pane -U 5 -bind Down resize-pane -D 5 -bind Left resize-pane -L 10 -bind Right resize-pane -R 10 -bind -r m resize-pane -Z - -#### Navigation #### -bind-key -n C-h select-pane -L -bind-key -n C-j select-pane -D -bind-key -n C-k select-pane -U -bind-key -n C-l select-pane -R - -##### Splits #### -unbind '"' -unbind % -bind v split-window -h -c "#{pane_current_path}" -bind S split-window -v -c "#{pane_current_path}" - -#### status bar #### -set-option -g status-position top -bind u set -g status - -#### Plugins #### -set -g @plugin 'tmux-plugins/tpm' -set -g @plugin 'tmux-plugins/tmux-sensible' -set -g @plugin 'christoomey/vim-tmux-navigator' - -#### Import #### -source ~/.config/tmux/utility.conf -source ~/.config/tmux/statusline.conf - -# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) -run '~/.tmux/plugins/tpm/tpm' diff --git a/.config/tmux/utility.conf b/.config/tmux/utility.conf deleted file mode 100644 index ded761bf..00000000 --- a/.config/tmux/utility.conf +++ /dev/null @@ -1,35 +0,0 @@ -##### Display Popups ##### -bind f display-popup \ - -w 80% \ - -h 80% \ - -E 'rmpc' - -bind C-t display-popup \ - -d "#{pane_current_path}" \ - -w 85% \ - -h 85% \ - -E "nvim ~/dotfiles/.config/nvim/lua/plugins/fzf.lua" - - bind -r g display-popup \ - -d '#{pane_current_path}' \ - -w 85% \ - -h 85% \ - -E lazygit - -##### scripts ##### -bind C-l display-popup -w 40% -h 20% -E "~/dotfiles/scripts/clone" -bind C-h display-popup -w 15% -h 30% -E "~/.config/tmux/scripts/tmux-menu.sh" -bind C-k run-shell 'tmux neww ~/dotfiles/scripts/sessionX' -bind C-c run-shell "~/dotfiles/scripts/sessionX ~/dotfiles/.config/" -bind C-p run-shell '~/dotfiles/scripts/sessionX ~/100xCodes/' -bind C-g run-shell "~/dotfiles/scripts/open_github" -bind C-j run-shell "~/dotfiles/scripts/ide" - -##### Display Menu ##### -bind l display-menu -T "#[align=centre]Dotfiles" -x C -y C \ - "sessionX" x "display-popup -E -w 80% -h 80% 'nvim ~/dotfiles/scripts/sessionX'" \ - "aliases.fish" f "display-popup -E -w 80% -h 80% 'nvim ~/dotfiles/.config/fish/aliases.fish'" \ - "tmux.conf" t "display-popup -E -w 80% -h 80% 'nvim ~/.config/tmux/tmux.conf'" \ - "bindings.conf" b "display-popup -E -w 80% -h 80% 'nvim ~/dotfiles/.config/hypr/bindings.conf'" \ - "keymaps.lua" k "display-popup -E -w 80% -h 80% 'nvim ~/dotfiles/.config/nvim/lua/config/keymaps.lua'" \ - "Exit" q "" diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..519cf1e7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +# Git LFS tracking for large files +themes/**/backgrounds/* filter=lfs diff=lfs merge=lfs -text +assets/** filter=lfs diff=lfs merge=lfs -text +branding/** filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore index 4bf04dda..9a7595bc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,33 +1,33 @@ *.bak # Runtime symlinks created by symphony hooks -.config/waybar/colors.css -.config/rofi/colors.rasi -.config/yazi/theme.toml -.config/btop/themes/current.theme -.config/rmpc/themes/current.ron -.config/rmpc/themes/pywall16.ron -.config/gtk-3.0/colors.css -.config/gtk-4.0/colors.css -.config/gtk-3.0/bookmarks -.config/gtk-4.0/bookmarks +config/waybar/colors.css +config/rofi/colors.rasi +config/yazi/theme.toml +config/btop/themes/current.theme +config/rmpc/themes/current.ron +config/rmpc/themes/pywall16.ron +config/gtk-3.0/colors.css +config/gtk-4.0/colors.css +config/gtk-3.0/bookmarks +config/gtk-4.0/bookmarks # Dynamic theme generated files -themes/dynamic/.config/spicetify/Themes/symphony/color.ini +themes/dynamic/spicetify/Themes/symphony/color.ini # Theme wallpaper symlinks (user preference, changes frequently) themes/*/wallpaper -.config/tmux/plugins +config/tmux/plugins # Fish local config -.config/fish/fish_variables -.config/fish/install.log -.config/fish/api.fish +config/fish/fish_variables +config/fish/install.log +config/fish/api.fish # Typora - ignore everything except custom themes -.config/Typora/* -!.config/Typora/themes/ -.config/Typora/themes/* -!.config/Typora/themes/ia_typora.css -!.config/Typora/themes/ia_typora_night.css +config/Typora/* +!config/Typora/themes/ +config/Typora/themes/* +!config/Typora/themes/ia_typora.css +!config/Typora/themes/ia_typora_night.css diff --git a/.stow-local-ignore b/.stow-local-ignore deleted file mode 100644 index 0f60c18d..00000000 --- a/.stow-local-ignore +++ /dev/null @@ -1,44 +0,0 @@ -# Comments and blank lines are allowed. -# *.bak -RCS -.+,v - -CVS -.#.+ # CVS conflict files / emacs lock files -.cvsignore - -.svn -_darcs -.hg - -.git -.gitignore -.gitmodules - -.+~ # emacs backup files -#.*# # emacs autosave files - -^/README.* -^/LICENSE.* -^/COPYING - -^zsh$ -scripts -images -assets -branding -themes -install -\.github -^install\.sh$ -^boot\.sh$ -^uninstall\.sh$ -^TODO\.md$ -^dummy-install\.sh$ - -# Hidden apps are copied, not symlinked -\.local/share/applications/hidden - -# Desktop entries are handled by installer, not stow -\.local/share/applications - diff --git a/README.md b/README.md index 473eee0c..96462d23 100644 --- a/README.md +++ b/README.md @@ -1,351 +1,188 @@
-![Banner](assets/banner.jpg) +![Banner](branding/banner.jpg) **A minimal, productivity-focused Arch + Hyprland setup** -Install  -Themes  -Symphony  -Usage  -Keybindings +Install  +Keys
-## Showcase - - https://github.com/user-attachments/assets/8f59ff8d-90ab-4a0c-a2d6-9346307f5de1 - ---- - -## Features - -- **One-command theming** — Switch entire desktop look with `symphony switch` -- **Dynamic colors** — Matugen extracts palette from any wallpaper -- **11 handcrafted themes** — Dark, cozy, and aesthetic -- **Everything synced** — Terminal, bar, launcher, notifications, apps -- **Rofi menus** — App launcher, emoji picker, clipboard, wallpaper selector, power profiles -- **Dual mode** — Vibe (animations + blur) or Focus (minimal + fast) -- **Music integration** — MPD + RMPC + Cava visualizer - -
-Dual Mode System - -Sometimes you want your desktop to look good. Other times you just need to get work done. - -**Vibe Mode** - -The default look — animations, blur, transparency, gaps. Makes everything feel smooth and polished. - -**Focus Mode** - -Strips it all down. No animations, minimal borders, transparency off. Just you and your work. - -Toggle between them with `Super + Ctrl + Backspace` - -
- ---- - -## Themes - - - - - - - - - - - - - - - - - - - - - - -

Void

Sakura

Espresso

Rosé Pine

Gruvbox Material

Tokyo Night

Kanagawa

Nordic

Forest

Zen
- -
- -### Dynamic Theme - -![Dynamic Theme](assets/dynamic.gif) - -_Colors generated from wallpaper using Matugen_ - -
- ---- - -## Rofi & Notifications - -
- -![Rofi and SwayNC](assets/rofi-swaync.gif) - -
- -
-Rofi Menus - -
- -**Wallpaper Selector** - -![Wallpaper Selector](assets/rofi-wall-selector.png) - -**Music** - -![Music](assets/rofi-music.png) - -| App Launcher | Emoji Picker | Power Menu | -| :----------------------------------: | :------------------------------------: | :---------------------------------------: | -| ![App Launcher](assets/rofi-app.png) | ![Emoji Picker](assets/rofi-emoji.png) | ![Power Menu](assets/rofi-power-menu.png) | - -
- -
- ---- - -## Hyprlock - -
- -![Hyprlock](assets/hyprlock.png) - -
- ---- - -## Neovim - -
- -![Neovim](assets/neovim-showcase.gif) - -
- ---- - -## Music - -
- -![Music](assets/music-showcase.gif) +> **This is my setup.** It's opinionated — the tools I chose because I like them. You might too, or you might not. Either way, it works. +> +> Built for **NVIDIA GPUs**. AMD/Intel? A few lines to change — ask an AI, it'll sort you out. +> +> Tested on Arch and CachyOS (no desktop environment). +> +> **Note:** I purposely avoided quickshell. It's convenient but eats RAM and slows things down. Everything here is TUI-based — snappy, lightweight, and still packed with features. Keep reading. -_RMPC + Cava visualizer_ +## Showcase -
+https://github.com/user-attachments/assets/8f59ff8d-90ab-4a0c-a2d6-9346307f5de1 --- -## Installation +## Install ```bash -curl -fsSL https://raw.githubusercontent.com/vyrx-dev/dotfiles/main/boot.sh | bash +curl -fsSL https://raw.githubusercontent.com/vyrx-dev/symphony/symphony-3.0/boot.sh | bash ``` -Or manually: +`boot.sh` installs git and gum if needed, clones the repo, and runs the installer. Run it again anytime to update. + +Manual install: ```bash -git clone https://github.com/vyrx-dev/dotfiles ~/dotfiles -cd ~/dotfiles && ./install.sh +git clone -b symphony-3.0 https://github.com/vyrx-dev/symphony ~/symphony +cd ~/symphony && ./install.sh ``` -### Themes Only - -Want just the themes without the full setup? See [install/themes/README.md](install/themes/README.md) +Existing configs are backed up to `~/.config/symphony/backups/` before overwriting. --- ## Usage -### Theme Switching - ```bash -symphony switch # interactive picker -symphony switch sakura # direct switch -symphony switch --random # random theme -symphony list # show all themes -symphony reload # re-apply current +symphony switch # pick a theme +symphony switch sakura # switch directly +symphony switch -r # random theme +symphony list # show available themes +symphony reload # reapply current theme +symphony update # pull latest + redeploy +symphony restore # roll back from backup +symphony fresh-setup # reclone + reinstall +symphony help # show all commands ``` -Or press `Super + Ctrl + Shift + Space` for the theme picker. +Theme picker GUI: `Super + Ctrl + Shift + Space` - +--- -### Keybindings +## Keybindings -
-Applications - -| Key | Action | -| ---------------- | ------------ | -| `Super + Return` | Terminal | -| `Super + B` | Browser | -| `Super + E` | File Manager | -| `Super + M` | Spotify | -| `Super + D` | Discord | -| `Super + O` | Obsidian | -| `Super + C` | VS Code | -| `Alt + M` | RMPC | -| `Alt + N` | Neovim | -| `Alt + Q` | Yazi | -| `Alt + /` | Btop | +Tweak them in `config/hypr/bindings.conf`. -
+> `Super + K` shows all keybindings.
-Rofi Menus - -| Key | Action | -| ------------------------------ | ---------------- | -| `Super + Space` | App Launcher | -| `Alt + ,` | Clipboard | -| `Alt + .` | Emoji Picker | -| `Super + Ctrl + B` | Power Profiles | -| `Super + Ctrl + Space` | Matugen Theme | -| `Super + Alt + Space` | Wallpaper Picker | -| `Super + Ctrl + Shift + Space` | Theme Switcher | +Apps + +| Key | Action | +|-----|--------| +| `Super + Return` | Terminal | +| `Super + Space` | App Launcher | +| `Super + B` | Browser | +| `Super + E` | File Manager | +| `Super + M` | Spotify | +| `Super + D` | Discord | +| `Super + C` | VS Code | +| `Alt + M` | RMPC | +| `Alt + N` | Neovim | +| `Alt + Q` | Yazi | +| `Alt + /` | Btop |
-Window Management - -| Key | Action | -| ----------------------- | ------------------------ | -| `Super + Q` | Close Window | -| `Super + K` | Kill Application | -| `Super + Arrow` | Move Focus | -| `Super + Shift + Arrow` | Move Window | -| `Super + Ctrl + Arrow` | Resize Window | -| `Super + 1-9` | Switch Workspace | -| `Super + Shift + 1-9` | Move to Workspace | -| `Super + F` | Fullscreen | -| `Super + V` | Toggle Floating | -| `Super + Shift + O` | Pop Window (Float & Pin) | +Menus + +| Key | Action | +|-----|--------| +| `Alt + ,` | Clipboard | +| `Alt + .` | Emoji Picker | +| `Super + Ctrl + B` | Power Profiles | +| `Super + Ctrl + Space` | Matugen Theme | +| `Super + Alt + Space` | Wallpaper Picker | +| `Super + Ctrl + Shift + Space` | Theme Switcher |
-System - -| Key | Action | -| -------------------------- | ---------------------- | -| `Super + Shift + L` | Lock Screen | -| `Super + Escape` | Power Menu | -| `Super + N` | Notifications | -| `Super + Backspace` | Toggle Transparency | -| `Super + Ctrl + Backspace` | Toggle Focus/Vibe Mode | +Windows + +| Key | Action | +|-----|--------| +| `Super + Q` | Close | +| `Super + K` | Kill | +| `Super + Arrow` | Focus | +| `Super + Shift + Arrow` | Move | +| `Super + Ctrl + Arrow` | Resize | +| `Super + 1-9` | Workspace | +| `Super + Shift + 1-9` | Send to Workspace | +| `Super + F` | Fullscreen | +| `Super + V` | Float | +| `Super + Shift + O` | Pop (Float & Pin) |
-Screenshots & Recording +System -| Key | Action | -| ------------------- | --------------- | -| `Super + P` | Screenshot | -| `Super + R` | Screen Record | -| `Super + Shift + R` | Record with Mic | -| `Super + Shift + P` | Color Picker | +| Key | Action | +|-----|--------| +| `Super + Shift + L` | Lock | +| `Super + Escape` | Power Menu | +| `Super + N` | Notifications | +| `Super + P` | Screenshot | +| `Super + R` | Record | +| `Super + Shift + R` | Record + Mic | +| `Super + Shift + P` | Color Picker | +| `Super + Backspace` | Toggle Transparency | +| `Super + Ctrl + Backspace` | Vibe / Focus Mode | +| `Ctrl + Alt + Space` | Random Wallpaper | +| `Super + Alt + ←/→` | Cycle Wallpapers |
-
-Wallpapers +--- -| Key | Action | -| -------------------------- | ------------------------- | -| `Ctrl + Alt + Space` | Random Wallpaper + Colors | -| `Super + Alt + Left/Right` | Cycle Wallpapers | +## Troubleshooting -
+Rolling release = things break. Before opening an issue, paste the error into an AI — usually device-specific. -See [.config/hypr/bindings.conf](.config/hypr/bindings.conf) for full list. +**Install failed halfway?** Re-run the failed script: ---- +```bash +./install/packages.sh +./install/deploy.sh +./install/services.sh +``` -## Components - -| Component | Tool | -| ------------- | --------------------------------------------------------------------------- | -| Compositor | [Hyprland](https://hyprland.org/) | -| Bar | [Waybar](https://github.com/Alexays/Waybar) | -| Launcher | [Rofi](https://github.com/lbonn/rofi) | -| Terminal | [Kitty](https://sw.kovidgoyal.net/kitty/) / [Ghostty](https://ghostty.org/) | -| Notifications | [SwayNC](https://github.com/ErikReider/SwayNotificationCenter) | -| Lock screen | [Hyprlock](https://github.com/hyprwm/hyprlock) | -| Theme engine | [Matugen](https://github.com/InioX/matugen) | -| Music | [MPD](https://musicpd.org/) + [RMPC](https://github.com/mierak/rmpc) | -| Visualizer | [Cava](https://github.com/karlstav/cava) | -| Editor | [Neovim](https://neovim.io/) | -| Shell | [Fish](https://fishshell.com/) + [Starship](https://starship.rs/) | +**Theme broken?** `symphony fix` then `symphony reload`. Still broken? `symphony switch sakura`. ---- +**Waybar missing?** Remove `xdg-desktop-portal-gnome` (keep `xdg-desktop-portal-gtk`), reboot. -## Structure +**SDDM black screen?** `Ctrl+Alt+F3`, login, run `./install/post-setup.sh`. -``` -~/dotfiles/ -├── .config/ -│ ├── hypr/ # Hyprland (compositor, bindings, animations) -│ ├── waybar/ # Status bar -│ ├── rofi/ # Launcher & menus -│ ├── swaync/ # Notifications -│ ├── kitty/ # Terminal -│ ├── ghostty/ # Terminal (alt) -│ ├── alacritty/ # Terminal (alt) -│ ├── nvim/ # Neovim -│ ├── fish/ # Shell -│ ├── tmux/ # Terminal multiplexer -│ ├── yazi/ # File manager -│ ├── btop/ # System monitor -│ ├── rmpc/ # Music player -│ ├── matugen/ # Theme generator templates -│ └── lazygit/ # Git UI -├── themes/ # Theme configs (colors, wallpapers) -├── scripts/ # Utility scripts -└── install/ # Installer - ├── packages.sh # Package lists - ├── stow.sh # Dotfile deployment - ├── services.sh # Systemd services - └── themes/ # Symphony theme system -``` +**Want to start over?** `symphony fresh-setup` — backs up, nukes, reclones, reinstalls. Type "fresh" to confirm. + +Still stuck? [Open an issue](https://github.com/vyrx-dev/symphony/issues/new?template=bug_report.yml). --- ## Credits -Learned/Copied(😁) a lot from these projects: +Learned (and borrowed) from: - [HyDE-Project/HyDE](https://github.com/HyDE-Project/HyDE) - [JaKooLit/Hyprland-Dots](https://github.com/JaKooLit/Hyprland-Dots) - [basecamp/omarchy](https://github.com/basecamp/omarchy) +- [uiriansan/SilentSDDM](https://github.com/uiriansan/SilentSDDM) - [bjarneo/aether.nvim](https://github.com/bjarneo/aether.nvim) -Wallpapers: [vyrx-dev/wallpapers](https://github.com/vyrx-dev/wallpapers) - --- - - - - - Star History Chart - + + + + + Star History Chart +
-**[Report Bug](https://github.com/vyrx-dev/dotfiles/issues/new?template=bug_report.yml)** · **[Request Feature](https://github.com/vyrx-dev/dotfiles/issues/new?template=feature_request.yml)** · **[TODO](TODO.md)** +**[report a bug](https://github.com/vyrx-dev/symphony/issues/new?template=bug_report.yml)** · **[request a feature](https://github.com/vyrx-dev/symphony/issues/new?template=feature_request.yml)**
diff --git a/TODO.md b/TODO.md index d758bb9f..7f597e97 100644 --- a/TODO.md +++ b/TODO.md @@ -1,15 +1,15 @@ ``` ____ _ _____ ___ / ___| _ _ _ __ ___ _ __ | |__ ___ _ __ _ _ |___ / / _ \ - \___ \| | | | '_ ` _ \| '_ \| '_ \ / _ \| '_ \| | | | |_ \ | | | | + \___ \| | | | '_ ` _ \| '_ \| '_ \ / _ \| '_ \| | | | |_ \ | | | ___) | |_| | | | | | | |_) | | | | (_) | | | | |_| | ___) || |_| | |____/ \__, |_| |_| |_| .__/|_| |_|\___/|_| |_|\__, | |____(_)\___/ |___/ |_| |___/ ``` **Status**: In Development -**Current**: [v3.0.0](https://github.com/vyrx-dev/dotfiles/releases/tag/v3.0.0) -**Previous**: [v2.1.0](https://github.com/vyrx-dev/dotfiles/releases/tag/v2.1.0) +**Current**: [v3.0.0](https://github.com/vyrx-dev/symphony/releases/tag/v3.0.0) +**Previous**: [v2.1.0](https://github.com/vyrx-dev/symphony/releases/tag/v2.1.0) --- @@ -29,21 +29,36 @@ - [x] Dynamic webapp installer (CDN icons, no bundled files) - [x] Fixed first-run script and startup file generation - [x] Modularize symphony-import config generators into per-app files -- [ ] README cleanup and compress showcase GIFs -- [ ] Optimize theme switching performance -- [ ] Full cleanup pass +- [x] Replaced stow with cp-based deployment (`deploy.sh`) + automatic backups +- [x] Flatten directory structure (`.config/` → `config/`, `scripts/` → `bin/`) +- [x] Flatten theme directory paths (removed nested `.config/`) +- [x] All install scripts independently runnable +- [x] Webapps offered during install flow +- [x] Services.sh bug fixes (systemctl syntax, git check) +- [x] Deploy.sh / uninstall.sh flat bin iteration fix +- [x] Symphony CLI — `update`, `restore`, `fresh-setup` commands +- [x] README rewrite — natural tone, troubleshooting, rolled release disclaimer +- [x] Renamed `dotfiles` → `symphony` across all files and variables (`SYMPHONY_DIR`) +- [x] SDDM setup (SilentSDDM integration in post-setup.sh) +- [x] Fixed symphony-import to use flattened theme structure (no `.config/` nesting) +- [x] Staged first-run flow (theme install → reboot → welcome notifications) +- [x] Neovim cleanup (replaced with workspace config) +- [x] Single tmux.conf — replaced multi-file config/tmux/ with one file +- [x] Consolidated all scripts into `bin/` (from hypr/rofi/waybar script dirs) +- [ ] Symphony TUI — improve UX (wallpaper preview, more actions) +- [x] Theme template system — generate configs from `.tpl` + `colors.toml` +- [ ] README — compress showcase GIFs or convert to video links +- [ ] QT theming (kvantum/qt5ct) --- ## Backlog -- [ ] SDDM setup -- [ ] QT theming (kvantum/qt5ct) -- [ ] Neovim cleanup & hot reload + - [ ] Media conversion scripts - [ ] Symphony website ---- -_Last updated: January 7, 2026_ +--- +_Last updated: February 22, 2026_ diff --git a/assets/banner.jpg b/assets/banner.jpg deleted file mode 100644 index 0107be2b..00000000 Binary files a/assets/banner.jpg and /dev/null differ diff --git a/assets/dynamic.gif b/assets/dynamic.gif deleted file mode 100644 index bee12a33..00000000 Binary files a/assets/dynamic.gif and /dev/null differ diff --git a/assets/espresso.png b/assets/espresso.png deleted file mode 100644 index e106cc8a..00000000 Binary files a/assets/espresso.png and /dev/null differ diff --git a/assets/forest.png b/assets/forest.png deleted file mode 100644 index c976d32d..00000000 Binary files a/assets/forest.png and /dev/null differ diff --git a/assets/gruvbox-material.png b/assets/gruvbox-material.png deleted file mode 100644 index 4176c90e..00000000 Binary files a/assets/gruvbox-material.png and /dev/null differ diff --git a/assets/hyprlock.png b/assets/hyprlock.png deleted file mode 100644 index 44d05732..00000000 Binary files a/assets/hyprlock.png and /dev/null differ diff --git a/assets/kanagawa.png b/assets/kanagawa.png deleted file mode 100644 index 763e6e22..00000000 Binary files a/assets/kanagawa.png and /dev/null differ diff --git a/assets/music-showcase.gif b/assets/music-showcase.gif deleted file mode 100644 index 53650659..00000000 Binary files a/assets/music-showcase.gif and /dev/null differ diff --git a/assets/neovim-showcase.gif b/assets/neovim-showcase.gif deleted file mode 100644 index da168aee..00000000 Binary files a/assets/neovim-showcase.gif and /dev/null differ diff --git a/assets/nordic.png b/assets/nordic.png deleted file mode 100644 index 5ffcffa6..00000000 Binary files a/assets/nordic.png and /dev/null differ diff --git a/assets/pfp.png b/assets/pfp.png deleted file mode 100644 index cef5f5c0..00000000 Binary files a/assets/pfp.png and /dev/null differ diff --git a/assets/rofi-app.png b/assets/rofi-app.png deleted file mode 100644 index 896e2871..00000000 Binary files a/assets/rofi-app.png and /dev/null differ diff --git a/assets/rofi-emoji.png b/assets/rofi-emoji.png deleted file mode 100644 index a5bee614..00000000 Binary files a/assets/rofi-emoji.png and /dev/null differ diff --git a/assets/rofi-music.png b/assets/rofi-music.png deleted file mode 100644 index 76ffb61c..00000000 Binary files a/assets/rofi-music.png and /dev/null differ diff --git a/assets/rofi-power-menu.png b/assets/rofi-power-menu.png deleted file mode 100644 index cb95625d..00000000 Binary files a/assets/rofi-power-menu.png and /dev/null differ diff --git a/assets/rofi-swaync.gif b/assets/rofi-swaync.gif deleted file mode 100644 index 8a443b57..00000000 Binary files a/assets/rofi-swaync.gif and /dev/null differ diff --git a/assets/rofi-wall-selector.png b/assets/rofi-wall-selector.png deleted file mode 100644 index e35d6402..00000000 Binary files a/assets/rofi-wall-selector.png and /dev/null differ diff --git a/assets/rose-pine.png b/assets/rose-pine.png deleted file mode 100644 index d6c75d1d..00000000 Binary files a/assets/rose-pine.png and /dev/null differ diff --git a/assets/sakura.png b/assets/sakura.png deleted file mode 100644 index c9f6eafc..00000000 Binary files a/assets/sakura.png and /dev/null differ diff --git a/assets/tokyo-night.png b/assets/tokyo-night.png deleted file mode 100644 index c1911b64..00000000 Binary files a/assets/tokyo-night.png and /dev/null differ diff --git a/assets/void.png b/assets/void.png deleted file mode 100644 index 409693c6..00000000 Binary files a/assets/void.png and /dev/null differ diff --git a/assets/zen.png b/assets/zen.png deleted file mode 100644 index 1f7d444c..00000000 Binary files a/assets/zen.png and /dev/null differ diff --git a/scripts/add-audio b/bin/add-audio similarity index 100% rename from scripts/add-audio rename to bin/add-audio diff --git a/.config/hypr/scripts/audio-switch b/bin/audio-switch similarity index 100% rename from .config/hypr/scripts/audio-switch rename to bin/audio-switch diff --git a/.config/hypr/scripts/battery-notify b/bin/battery-notify similarity index 100% rename from .config/hypr/scripts/battery-notify rename to bin/battery-notify diff --git a/.config/hypr/scripts/change-theme b/bin/change-theme similarity index 77% rename from .config/hypr/scripts/change-theme rename to bin/change-theme index 3fc7ef3f..beeb54ad 100755 --- a/.config/hypr/scripts/change-theme +++ b/bin/change-theme @@ -32,11 +32,11 @@ echo "$INDEX" >"$STATE_FILE" CURRENT_WALLPAPER="${WALLPAPERS[$INDEX]}" -# Start swww daemon if needed -swww query &>/dev/null || swww-daemon --format xrgb +# Start awww daemon if needed +awww query &>/dev/null || awww-daemon --format xrgb -# swww img "$CURRENT_WALLPAPER" --transition-type=right --transition-fps 60 --transition-duration=1 -swww img "$CURRENT_WALLPAPER" \ +# awww img "$CURRENT_WALLPAPER" --transition-type=right --transition-fps 60 --transition-duration=1 +awww img "$CURRENT_WALLPAPER" \ --transition-type center \ --transition-pos top-right \ --transition-fps 120 \ @@ -44,16 +44,16 @@ swww img "$CURRENT_WALLPAPER" \ --transition-bezier 0.25,0.1,0.25,1.0 # Update wallpaper symlink to track current wallpaper -DISPLAYED_WALLPAPER=$(swww query | grep "currently displaying" | head -1 | sed 's/.*image: //') +DISPLAYED_WALLPAPER=$(awww query | grep "currently displaying" | head -1 | sed 's/.*image: //') if [ -n "$DISPLAYED_WALLPAPER" ]; then - ln -sf "$DISPLAYED_WALLPAPER" "$HOME/dotfiles/themes/dynamic/wallpaper" + ln -sf "$DISPLAYED_WALLPAPER" "$HOME/symphony/themes/dynamic/wallpaper" fi -# SWWW_PARAMS="--transition-fps 60 --transition-type=any --transition-duration=1" -matugen image "$CURRENT_WALLPAPER" -m dark +# AWWW_PARAMS="--transition-fps 60 --transition-type=any --transition-duration=1" +matugen image "$CURRENT_WALLPAPER" -m dark --source-color-index=0 # Update Symphony apps that need special handling -"$HOME/dotfiles/install/themes/symphony" reload +"$HOME/symphony/install/themes/symphony" reload # Reload apps not handled by symphony restart-app swayosd-server diff --git a/scripts/choose-shell b/bin/choose-shell similarity index 100% rename from scripts/choose-shell rename to bin/choose-shell diff --git a/.config/rofi/scripts/clipboard b/bin/clipboard similarity index 100% rename from .config/rofi/scripts/clipboard rename to bin/clipboard diff --git a/scripts/clone b/bin/clone similarity index 100% rename from scripts/clone rename to bin/clone diff --git a/.config/hypr/scripts/cwd-terminal b/bin/cwd-terminal similarity index 100% rename from .config/hypr/scripts/cwd-terminal rename to bin/cwd-terminal diff --git a/.config/hypr/scripts/cycle-wallpaper b/bin/cycle-wallpaper similarity index 85% rename from .config/hypr/scripts/cycle-wallpaper rename to bin/cycle-wallpaper index 35184d37..cf6c0254 100755 --- a/.config/hypr/scripts/cycle-wallpaper +++ b/bin/cycle-wallpaper @@ -5,11 +5,11 @@ # left/prev = previous wallpaper # right/next = next wallpaper -source "$HOME/.config/rofi/scripts/thumbcache" +source "$HOME/.local/bin/thumbcache" THEME=$(cat "$HOME/.config/symphony/.current-theme" 2>/dev/null || echo "dynamic") -WALLDIR="$HOME/dotfiles/themes/$THEME/backgrounds" -SWWW_PARAMS="--transition-fps 120 --transition-duration 1 --transition-bezier 0.25,0.1,0.25,1.0" +WALLDIR="$HOME/symphony/themes/$THEME/backgrounds" +AWWW_PARAMS="--transition-fps 120 --transition-duration 1 --transition-bezier 0.25,0.1,0.25,1.0" if [[ "$THEME" == "dynamic" || ! -d "$WALLDIR" ]]; then notify-send "Wallpaper Cycling" "Not available for '$THEME' theme.\nUse SUPER+CTRL+SPACE for dynamic wallpaper picker." @@ -21,7 +21,7 @@ TOTAL=${#WALLS[@]} [[ $TOTAL -eq 0 ]] && notify-send "Wallpaper Cycling" "No wallpapers found" && exit 0 -CURRENT=$(swww query | head -1 | grep -oP 'image: \K.*') +CURRENT=$(awww query | head -1 | grep -oP 'image: \K.*') find_index() { for i in "${!WALLS[@]}"; do @@ -35,8 +35,8 @@ INDEX=$(find_index) apply_wallpaper() { local idx=$1 trans=$2 pos=$3 local wall="${WALLS[$idx]}" - swww img "$wall" --transition-type "$trans" --transition-pos "$pos" $SWWW_PARAMS - ln -sf "$wall" "$HOME/dotfiles/themes/$THEME/wallpaper" + awww img "$wall" --transition-type "$trans" --transition-pos "$pos" $AWWW_PARAMS + ln -sf "$wall" "$HOME/symphony/themes/$THEME/wallpaper" notify-send -i "$wall" "Wallpaper" "$((idx + 1))/$TOTAL" } diff --git a/.config/rofi/scripts/emoji b/bin/emoji similarity index 100% rename from .config/rofi/scripts/emoji rename to bin/emoji diff --git a/scripts/fast-shutdown b/bin/fast-shutdown similarity index 100% rename from scripts/fast-shutdown rename to bin/fast-shutdown diff --git a/scripts/fetch-colors b/bin/fetch-colors similarity index 100% rename from scripts/fetch-colors rename to bin/fetch-colors diff --git a/.config/hypr/scripts/fileshare b/bin/fileshare similarity index 100% rename from .config/hypr/scripts/fileshare rename to bin/fileshare diff --git a/scripts/fingerprint_setup b/bin/fingerprint_setup similarity index 100% rename from scripts/fingerprint_setup rename to bin/fingerprint_setup diff --git a/bin/first-run b/bin/first-run new file mode 100755 index 00000000..3ff51a68 --- /dev/null +++ b/bin/first-run @@ -0,0 +1,33 @@ +#!/bin/bash + +STATE_DIR="$HOME/.local/state/symphony" +SYMPHONY_REPO="${SYMPHONY_REPO:-$HOME/symphony}" + +mkdir -p "$STATE_DIR" + +# Stage 1: Theme installer (first login after install.sh) +if [[ ! -f "$STATE_DIR/themes-installed" ]]; then + sleep 2 + + if [[ -f "$SYMPHONY_REPO/install/themes/install.sh" ]]; then + kitty --hold -e bash -c "SYMPHONY_INSTALLING=1 SYMPHONY_REPO='$SYMPHONY_REPO' '$SYMPHONY_REPO/install/themes/install.sh'" + fi + + # Apply default theme using full path + if [[ -x "$SYMPHONY_REPO/install/themes/symphony" ]]; then + "$SYMPHONY_REPO/install/themes/symphony" switch sakura + fi + +fi + +# Stage 2: Welcome notifications (second login after theme install) +if [[ ! -f "$STATE_DIR/first-run-done" ]]; then + sleep 3 + + notify-send -u critical "Welcome to Symphony" "Run 'symphony help' to get started." + notify-send -u critical "App Launcher" "Press Super + Space to launch apps" + notify-send -u critical "Keybindings" "Press Super + K to view all keybindings" + + touch "$STATE_DIR/first-run-done" + exit 0 +fi diff --git a/.config/hypr/scripts/focus b/bin/focus similarity index 100% rename from .config/hypr/scripts/focus rename to bin/focus diff --git a/scripts/fprintd-fix b/bin/fprintd-fix similarity index 100% rename from scripts/fprintd-fix rename to bin/fprintd-fix diff --git a/.config/hypr/scripts/graceful-reboot b/bin/graceful-reboot similarity index 100% rename from .config/hypr/scripts/graceful-reboot rename to bin/graceful-reboot diff --git a/.config/hypr/scripts/graceful-shutdown b/bin/graceful-shutdown similarity index 100% rename from .config/hypr/scripts/graceful-shutdown rename to bin/graceful-shutdown diff --git a/scripts/hide-apps b/bin/hide-apps similarity index 100% rename from scripts/hide-apps rename to bin/hide-apps diff --git a/scripts/ide b/bin/ide similarity index 100% rename from scripts/ide rename to bin/ide diff --git a/scripts/ignore-power-button b/bin/ignore-power-button similarity index 100% rename from scripts/ignore-power-button rename to bin/ignore-power-button diff --git a/.config/waybar/scripts/indicator-idle b/bin/indicator-idle similarity index 55% rename from .config/waybar/scripts/indicator-idle rename to bin/indicator-idle index dfe33ca6..28d89381 100755 --- a/.config/waybar/scripts/indicator-idle +++ b/bin/indicator-idle @@ -1,5 +1,11 @@ #!/bin/bash +# Wait for hypridle to start +if [[ ! -e "/tmp/idler.wait" ]]; then + sleep 1 + touch "/tmp/idler.wait" +fi + if pgrep -x hypridle >/dev/null; then echo '{"text": ""}' else diff --git a/.config/waybar/scripts/indicator-record b/bin/indicator-record similarity index 100% rename from .config/waybar/scripts/indicator-record rename to bin/indicator-record diff --git a/.config/rofi/scripts/keyhints b/bin/keyhints similarity index 100% rename from .config/rofi/scripts/keyhints rename to bin/keyhints diff --git a/.config/hypr/scripts/launch-browser b/bin/launch-browser similarity index 100% rename from .config/hypr/scripts/launch-browser rename to bin/launch-browser diff --git a/.config/hypr/scripts/launch-webapp b/bin/launch-webapp similarity index 100% rename from .config/hypr/scripts/launch-webapp rename to bin/launch-webapp diff --git a/.config/hypr/scripts/lock-screen b/bin/lock-screen similarity index 100% rename from .config/hypr/scripts/lock-screen rename to bin/lock-screen diff --git a/.config/hypr/scripts/nightlight b/bin/nightlight similarity index 100% rename from .config/hypr/scripts/nightlight rename to bin/nightlight diff --git a/scripts/open_github b/bin/open_github similarity index 100% rename from scripts/open_github rename to bin/open_github diff --git a/.config/hypr/scripts/pop-window b/bin/pop-window similarity index 100% rename from .config/hypr/scripts/pop-window rename to bin/pop-window diff --git a/.config/rofi/scripts/power-profiles b/bin/power-profiles similarity index 100% rename from .config/rofi/scripts/power-profiles rename to bin/power-profiles diff --git a/.config/rofi/scripts/powermenu b/bin/powermenu similarity index 91% rename from .config/rofi/scripts/powermenu rename to bin/powermenu index ba786c5f..f8746a66 100755 --- a/.config/rofi/scripts/powermenu +++ b/bin/powermenu @@ -1,6 +1,6 @@ #!/bin/bash -scrDir="$HOME/.config/hypr/scripts" +scrDir="$HOME/.local/bin" options="Shutdown\nReboot\nSuspend\nLogout" diff --git a/.config/waybar/scripts/random-wall b/bin/random-wall similarity index 90% rename from .config/waybar/scripts/random-wall rename to bin/random-wall index 6b7a1eb9..119297c9 100755 --- a/.config/waybar/scripts/random-wall +++ b/bin/random-wall @@ -14,8 +14,8 @@ if [[ ${#wallpapers[@]} -eq 0 ]]; then exit 1 fi -# Start swww daemon if not running -swww query &>/dev/null || swww-daemon --format xrgb & +# Start awww daemon if not running +awww query &>/dev/null || awww-daemon --format xrgb & # Wait for daemon to initialize sleep 0.5 @@ -25,7 +25,7 @@ random_index=$((RANDOM % ${#wallpapers[@]})) selected_wallpaper="${wallpapers[$random_index]}" # Apply wallpaper with top-right corner grow animation -swww img "$selected_wallpaper" \ +awww img "$selected_wallpaper" \ --transition-type grow \ --transition-pos top-right \ --transition-fps 120 \ diff --git a/.config/hypr/scripts/restart-app b/bin/restart-app similarity index 100% rename from .config/hypr/scripts/restart-app rename to bin/restart-app diff --git a/.config/rofi/scripts/rofibeats b/bin/rofibeats similarity index 100% rename from .config/rofi/scripts/rofibeats rename to bin/rofibeats diff --git a/.config/rofi/scripts/rofisearch b/bin/rofisearch similarity index 100% rename from .config/rofi/scripts/rofisearch rename to bin/rofisearch diff --git a/.config/hypr/scripts/screenrecord b/bin/screenrecord similarity index 100% rename from .config/hypr/scripts/screenrecord rename to bin/screenrecord diff --git a/.config/hypr/scripts/screensaver b/bin/screensaver similarity index 95% rename from .config/hypr/scripts/screensaver rename to bin/screensaver index c25b2564..38c904b0 100755 --- a/.config/hypr/scripts/screensaver +++ b/bin/screensaver @@ -23,7 +23,7 @@ hyprctl keyword cursor:invisible true &>/dev/null tty=$(tty 2>/dev/null) while true; do - tte -i ~/dotfiles/branding/symphony.txt \ + tte -i ~/symphony/branding/symphony.txt \ --frame-rate 120 --canvas-width 0 --canvas-height 0 --reuse-canvas --anchor-canvas c --anchor-text c\ --random-effect --exclude-effects dev_worm \ --no-eol --no-restore-cursor & diff --git a/.config/hypr/scripts/screensaver-launch b/bin/screensaver-launch similarity index 93% rename from .config/hypr/scripts/screensaver-launch rename to bin/screensaver-launch index 38034f75..a65ddad8 100755 --- a/.config/hypr/scripts/screensaver-launch +++ b/bin/screensaver-launch @@ -17,7 +17,7 @@ for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do hyprctl dispatch exec -- \ alacritty --class Screensaver \ --config-file ~/.config/alacritty/screensaver.toml \ - -e ~/.config/hypr/scripts/screensaver + -e ~/.local/bin/screensaver done hyprctl dispatch focusmonitor $focused diff --git a/.config/hypr/scripts/screenshot b/bin/screenshot similarity index 100% rename from .config/hypr/scripts/screenshot rename to bin/screenshot diff --git a/.config/rofi/scripts/selectWall b/bin/selectWall similarity index 86% rename from .config/rofi/scripts/selectWall rename to bin/selectWall index bd2aaef6..24d3ec34 100755 --- a/.config/rofi/scripts/selectWall +++ b/bin/selectWall @@ -8,7 +8,7 @@ if [[ "$current_theme" != "dynamic" ]]; then fi wallpaper_dir="$HOME/Wallpapers" -swww_params="--transition-fps 120 --transition-type grow --transition-duration 1 --transition-bezier 0.25,0.1,0.25,1.0 --transition-pos top-right" +awww_params="--transition-fps 120 --transition-type grow --transition-duration 1 --transition-bezier 0.25,0.1,0.25,1.0 --transition-pos top-right" mapfile -d '' wallpapers < <(find "$wallpaper_dir" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" \) -print0) @@ -25,7 +25,7 @@ menu() { done | sort } -swww query &>/dev/null || swww-daemon --format xrgb +awww query &>/dev/null || awww-daemon --format xrgb choice=$(menu | rofi -i -dmenu -p "" -config ~/.config/rofi/custom-rofi/config-wallpaper.rasi) [[ -z "$choice" ]] && exit 0 @@ -33,14 +33,14 @@ choice=$(menu | rofi -i -dmenu -p "" -config ~/.config/rofi/custom-rofi/config-w # find and apply selected wallpaper for wp in "${wallpapers[@]}"; do if [[ "$(basename "$wp")" == "$choice" ]]; then - swww img "$wp" $swww_params - matugen image "$wp" -m dark + awww img "$wp" $awww_params + matugen image "$wp" -m dark --source-color-index=0 # update wallpaper symlink for hyprlock mkdir -p "$HOME/.config/symphony/current" ln -sf "$wp" "$HOME/.config/symphony/current/wallpaper" - "$HOME/dotfiles/install/themes/symphony" reload + "$HOME/symphony/install/themes/symphony" reload restart-app swayosd-server # nautilus needs full restart to pick up new gtk theme diff --git a/scripts/sessionX b/bin/sessionX similarity index 97% rename from scripts/sessionX rename to bin/sessionX index 0ddd271a..98f3266e 100755 --- a/scripts/sessionX +++ b/bin/sessionX @@ -2,7 +2,7 @@ # quick tmux session picker with fzf dirs=( - "$HOME/dotfiles/.config" + "$HOME/symphony/.config" "$HOME/100xCodes" "$HOME/100xCodes/Cohort-3-WebDev" "$HOME/100xCodes/Projects" diff --git a/scripts/setup-dns b/bin/setup-dns similarity index 100% rename from scripts/setup-dns rename to bin/setup-dns diff --git a/scripts/theme-showcase b/bin/theme-showcase similarity index 95% rename from scripts/theme-showcase rename to bin/theme-showcase index 7104c8a5..7a2bc9c8 100755 --- a/scripts/theme-showcase +++ b/bin/theme-showcase @@ -50,7 +50,7 @@ done for i in {1..5}; do show_list "dynamic" echo " Wallpaper $i/3" - ~/.config/hypr/scripts/change-theme 2>/dev/null || true + change-theme 2>/dev/null || true sleep "$DELAY" done diff --git a/.config/rofi/scripts/themePicker b/bin/themePicker similarity index 90% rename from .config/rofi/scripts/themePicker rename to bin/themePicker index 2339ff43..0b043c5c 100755 --- a/.config/rofi/scripts/themePicker +++ b/bin/themePicker @@ -2,9 +2,9 @@ # theme picker with image previews source "$(dirname "$0")/thumbcache" -themes_dir="$HOME/dotfiles/themes" -symphony="$HOME/dotfiles/install/themes/symphony" -current_theme=$(cat ~/.config/symphony/.current-theme 2>/dev/null || echo "dynamic") +themes_dir="$HOME/.config/symphony/themes" +symphony="$HOME/symphony/install/themes/symphony" +current_theme=$(cat ~/.config/symphony/.current-theme 2>/dev/null || echo "sakura") # calculate optimal columns based on screen width if command -v hyprctl &>/dev/null; then @@ -36,7 +36,7 @@ menu() { for dir in "$themes_dir"/*/; do name=$(basename "$dir") [[ "$name" == "Wallpapers" || "$name" == ".git" ]] && continue - [[ ! -d "$dir/.config" ]] && continue + [[ ! -d "$dir/kitty" && ! -d "$dir/hypr" ]] && continue preview=$(get_preview "$dir") [[ -z "$preview" ]] && continue diff --git a/.config/rofi/scripts/thumbcache b/bin/thumbcache similarity index 96% rename from .config/rofi/scripts/thumbcache rename to bin/thumbcache index 28a05e3c..c323f53b 100755 --- a/.config/rofi/scripts/thumbcache +++ b/bin/thumbcache @@ -34,7 +34,7 @@ get_thumb() { } # CLI: clear cache -# Usage: ~/.config/rofi/scripts/thumbcache clear +# Usage: thumbcache clear # Run this if thumbnails look wrong after changing wallpapers or preview.png [[ "$1" == "clear" ]] && { rm -rf "$THUMB_DIR"/* diff --git a/.config/hypr/scripts/toggle-focus b/bin/toggle-focus similarity index 100% rename from .config/hypr/scripts/toggle-focus rename to bin/toggle-focus diff --git a/.config/hypr/scripts/toggle-idle b/bin/toggle-idle similarity index 100% rename from .config/hypr/scripts/toggle-idle rename to bin/toggle-idle diff --git a/.config/hypr/scripts/toggle-monitor b/bin/toggle-monitor similarity index 100% rename from .config/hypr/scripts/toggle-monitor rename to bin/toggle-monitor diff --git a/.config/hypr/scripts/toggle-terminal-transparency b/bin/toggle-terminal-transparency similarity index 100% rename from .config/hypr/scripts/toggle-terminal-transparency rename to bin/toggle-terminal-transparency diff --git a/.config/hypr/scripts/toggle-waybar b/bin/toggle-waybar similarity index 100% rename from .config/hypr/scripts/toggle-waybar rename to bin/toggle-waybar diff --git a/.config/waybar/scripts/wall-picker b/bin/wall-picker similarity index 82% rename from .config/waybar/scripts/wall-picker rename to bin/wall-picker index 619ae49e..38ba37f3 100755 --- a/.config/waybar/scripts/wall-picker +++ b/bin/wall-picker @@ -1,8 +1,8 @@ #!/bin/bash -# Wallpaper picker - swww only (no theme changes) +# Wallpaper picker - awww only (no theme changes) WALLPAPER_DIR="$HOME/Wallpapers/" -SWWW_PARAMS="--transition-fps 60 --transition-type=any --transition-duration=1" +AWWW_PARAMS="--transition-fps 60 --transition-type=any --transition-duration=1" # Get focused monitor focused_monitor=$(hyprctl -j monitors | jq -r '.[] | select(.focused==true).name') @@ -23,8 +23,8 @@ menu() { done | sort } -# Start swww if needed -swww query &>/dev/null || swww-daemon --format xrgb +# Start awww if needed +awww query &>/dev/null || awww-daemon --format xrgb # Show menu choice=$(menu | rofi -i -dmenu -config ~/.config/rofi/custom-rofi/config-wallpaper.rasi) @@ -34,7 +34,7 @@ choice=$(menu | rofi -i -dmenu -config ~/.config/rofi/custom-rofi/config-wallpap for wallpaper in "${wallpapers[@]}"; do [[ "$(basename "$wallpaper")" == "$choice" ]] || continue - swww img -o "$focused_monitor" "$wallpaper" $SWWW_PARAMS + awww img -o "$focused_monitor" "$wallpaper" $AWWW_PARAMS notify-send -i "$wallpaper" "Wallpaper Changed" "$(basename "$wallpaper")" break done diff --git a/.config/rofi/scripts/wallPicker b/bin/wallPicker similarity index 84% rename from .config/rofi/scripts/wallPicker rename to bin/wallPicker index b3b5de02..d1c28c19 100755 --- a/.config/rofi/scripts/wallPicker +++ b/bin/wallPicker @@ -1,8 +1,8 @@ #!/bin/bash -# wallpaper picker - swww only, no theme changes +# wallpaper picker - awww only, no theme changes wallpaper_dir="$HOME/Wallpapers" -swww_params="--transition-fps 120 --transition-type center --transition-pos bottom --transition-duration 1 --transition-bezier 0.25,0.1,0.25,1.0" +awww_params="--transition-fps 120 --transition-type center --transition-pos bottom --transition-duration 1 --transition-bezier 0.25,0.1,0.25,1.0" mapfile -d '' wallpapers < <(find "$wallpaper_dir" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" \) -print0) @@ -17,7 +17,7 @@ menu() { done | sort } -swww query &>/dev/null || swww-daemon --format xrgb +awww query &>/dev/null || awww-daemon --format xrgb choice=$(menu | rofi -i -dmenu -p "" -config ~/.config/rofi/custom-rofi/config-wallpaper.rasi) [[ -z "$choice" ]] && exit 0 @@ -25,7 +25,7 @@ choice=$(menu | rofi -i -dmenu -p "" -config ~/.config/rofi/custom-rofi/config-w for wp in "${wallpapers[@]}"; do [[ "$(basename "$wp")" == "$choice" ]] || continue - swww img "$wp" $swww_params + awww img "$wp" $awww_params # update wallpaper symlink for hyprlock mkdir -p "$HOME/.config/symphony/current" diff --git a/.config/hypr/scripts/webapp-install b/bin/webapp-install similarity index 93% rename from .config/hypr/scripts/webapp-install rename to bin/webapp-install index d9ec503e..0984bd46 100755 --- a/.config/hypr/scripts/webapp-install +++ b/bin/webapp-install @@ -1,5 +1,5 @@ #!/bin/bash -# launch_webapp="$HOME/dotfiles/scripts/launch-webapp" +# launch_webapp="$HOME/symphony/scripts/launch-webapp" if [ "$#" -lt 3 ]; then echo -e "\e[32mLet's create a new web app.\n\e[0m" APP_NAME=$(gum input --prompt "Name> " --placeholder "My favorite web app") @@ -41,7 +41,7 @@ fi if [[ -n $CUSTOM_EXEC ]]; then EXEC_COMMAND="$CUSTOM_EXEC" else - EXEC_COMMAND="$HOME/.config/hypr/scripts/launch-webapp $APP_URL" + EXEC_COMMAND="$HOME/.local/bin/launch-webapp $APP_URL" fi # Create application .desktop file diff --git a/.config/hypr/scripts/webapp-remove b/bin/webapp-remove similarity index 100% rename from .config/hypr/scripts/webapp-remove rename to bin/webapp-remove diff --git a/.config/rofi/scripts/wifi b/bin/wifi similarity index 100% rename from .config/rofi/scripts/wifi rename to bin/wifi diff --git a/boot.sh b/boot.sh index 96cbc228..d09e9e04 100755 --- a/boot.sh +++ b/boot.sh @@ -29,18 +29,18 @@ cat << 'EOF' EOF echo -e "${RESET}" -REPO="${SYMPHONY_REPO:-vyrx-dev/dotfiles}" +REPO="${SYMPHONY_REPO:-vyrx-dev/symphony}" BRANCH="${SYMPHONY_BRANCH:-main}" -DEST="${SYMPHONY_DEST:-$HOME/dotfiles}" +DEST="${SYMPHONY_DEST:-$HOME/symphony}" # Bootstrap dependencies echo -e "\n${DIM}:: Preparing system${RESET}" -sudo pacman -Syu --noconfirm --needed git stow gum +sudo pacman -Syu --noconfirm --needed git gum stow # Clone or update echo if [[ -d "$DEST/.git" ]]; then - echo -e "${DIM} Updating dotfiles...${RESET}" + echo -e "${DIM} Updating symphony...${RESET}" git -C "$DEST" pull --ff-only || true else echo -e "${DIM} Cloning from github.com/${REPO}...${RESET}" diff --git a/branding/banner.jpg b/branding/banner.jpg new file mode 100644 index 00000000..dcee66c5 --- /dev/null +++ b/branding/banner.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea0718616d7b151d39ab550ced4291bf52f52b296775c705b9e10b14c25496d7 +size 239194 diff --git a/.config/Typora/themes/ia_typora.css b/config/Typora/themes/ia_typora.css similarity index 100% rename from .config/Typora/themes/ia_typora.css rename to config/Typora/themes/ia_typora.css diff --git a/.config/Typora/themes/ia_typora_night.css b/config/Typora/themes/ia_typora_night.css similarity index 100% rename from .config/Typora/themes/ia_typora_night.css rename to config/Typora/themes/ia_typora_night.css diff --git a/.config/alacritty/alacritty.toml b/config/alacritty/alacritty.toml similarity index 83% rename from .config/alacritty/alacritty.toml rename to config/alacritty/alacritty.toml index 2fac8ce7..3b516cf9 100644 --- a/.config/alacritty/alacritty.toml +++ b/config/alacritty/alacritty.toml @@ -1,5 +1,5 @@ # Colors from Symphony -general.import = ["~/.config/symphony/current/.config/alacritty/colors.toml"] +general.import = ["~/.config/symphony/current/alacritty/colors.toml"] [env] TERM = "xterm-256color" diff --git a/.config/alacritty/screensaver.toml b/config/alacritty/screensaver.toml similarity index 100% rename from .config/alacritty/screensaver.toml rename to config/alacritty/screensaver.toml diff --git a/.config/brave-flags.conf b/config/brave-flags.conf similarity index 100% rename from .config/brave-flags.conf rename to config/brave-flags.conf diff --git a/.config/btop/btop.conf b/config/btop/btop.conf similarity index 100% rename from .config/btop/btop.conf rename to config/btop/btop.conf diff --git a/.config/btop/themes/matugen.theme b/config/btop/themes/matugen.theme similarity index 100% rename from .config/btop/themes/matugen.theme rename to config/btop/themes/matugen.theme diff --git a/.config/chromium-flags.conf b/config/chromium-flags.conf similarity index 100% rename from .config/chromium-flags.conf rename to config/chromium-flags.conf diff --git a/.config/cliphist/config b/config/cliphist/config similarity index 100% rename from .config/cliphist/config rename to config/cliphist/config diff --git a/.config/fastfetch/config.jsonc b/config/fastfetch/config.jsonc similarity index 100% rename from .config/fastfetch/config.jsonc rename to config/fastfetch/config.jsonc diff --git a/.config/fastfetch/logos/arch.png b/config/fastfetch/logos/arch.png similarity index 100% rename from .config/fastfetch/logos/arch.png rename to config/fastfetch/logos/arch.png diff --git a/.config/fastfetch/logos/catppuccinLogo.png b/config/fastfetch/logos/catppuccinLogo.png similarity index 100% rename from .config/fastfetch/logos/catppuccinLogo.png rename to config/fastfetch/logos/catppuccinLogo.png diff --git a/.config/fastfetch/logos/deku.png b/config/fastfetch/logos/deku.png similarity index 100% rename from .config/fastfetch/logos/deku.png rename to config/fastfetch/logos/deku.png diff --git a/.config/fastfetch/logos/doom.png b/config/fastfetch/logos/doom.png similarity index 100% rename from .config/fastfetch/logos/doom.png rename to config/fastfetch/logos/doom.png diff --git a/.config/fastfetch/logos/dp.png b/config/fastfetch/logos/dp.png similarity index 100% rename from .config/fastfetch/logos/dp.png rename to config/fastfetch/logos/dp.png diff --git a/.config/fastfetch/logos/hulk.png b/config/fastfetch/logos/hulk.png similarity index 100% rename from .config/fastfetch/logos/hulk.png rename to config/fastfetch/logos/hulk.png diff --git a/.config/fastfetch/logos/itadori.png b/config/fastfetch/logos/itadori.png similarity index 100% rename from .config/fastfetch/logos/itadori.png rename to config/fastfetch/logos/itadori.png diff --git a/.config/fastfetch/logos/logo.txt b/config/fastfetch/logos/logo.txt similarity index 100% rename from .config/fastfetch/logos/logo.txt rename to config/fastfetch/logos/logo.txt diff --git a/.config/fastfetch/logos/naruto.png b/config/fastfetch/logos/naruto.png similarity index 100% rename from .config/fastfetch/logos/naruto.png rename to config/fastfetch/logos/naruto.png diff --git a/.config/fastfetch/logos/pochita.png b/config/fastfetch/logos/pochita.png similarity index 100% rename from .config/fastfetch/logos/pochita.png rename to config/fastfetch/logos/pochita.png diff --git a/.config/fastfetch/logos/robot.png b/config/fastfetch/logos/robot.png similarity index 100% rename from .config/fastfetch/logos/robot.png rename to config/fastfetch/logos/robot.png diff --git a/.config/fastfetch/logos/ryuzaki.png b/config/fastfetch/logos/ryuzaki.png similarity index 100% rename from .config/fastfetch/logos/ryuzaki.png rename to config/fastfetch/logos/ryuzaki.png diff --git a/.config/fastfetch/logos/saitama_finger.png b/config/fastfetch/logos/saitama_finger.png similarity index 100% rename from .config/fastfetch/logos/saitama_finger.png rename to config/fastfetch/logos/saitama_finger.png diff --git a/.config/fastfetch/logos/sans.png b/config/fastfetch/logos/sans.png similarity index 100% rename from .config/fastfetch/logos/sans.png rename to config/fastfetch/logos/sans.png diff --git a/.config/fastfetch/logos/spiderman.png b/config/fastfetch/logos/spiderman.png similarity index 100% rename from .config/fastfetch/logos/spiderman.png rename to config/fastfetch/logos/spiderman.png diff --git a/.config/fish/aliases.fish b/config/fish/aliases.fish similarity index 100% rename from .config/fish/aliases.fish rename to config/fish/aliases.fish diff --git a/.config/fish/completions/pipx.fish b/config/fish/completions/pipx.fish similarity index 100% rename from .config/fish/completions/pipx.fish rename to config/fish/completions/pipx.fish diff --git a/.config/fish/conf.d/fish_user_key_bindings.fish b/config/fish/conf.d/fish_user_key_bindings.fish similarity index 100% rename from .config/fish/conf.d/fish_user_key_bindings.fish rename to config/fish/conf.d/fish_user_key_bindings.fish diff --git a/.config/fish/conf.d/keychain.fish b/config/fish/conf.d/keychain.fish similarity index 100% rename from .config/fish/conf.d/keychain.fish rename to config/fish/conf.d/keychain.fish diff --git a/.config/fish/conf.d/pager_mode_tmux.fish b/config/fish/conf.d/pager_mode_tmux.fish similarity index 100% rename from .config/fish/conf.d/pager_mode_tmux.fish rename to config/fish/conf.d/pager_mode_tmux.fish diff --git a/.config/fish/config.fish b/config/fish/config.fish similarity index 91% rename from .config/fish/config.fish rename to config/fish/config.fish index 4e7dcf32..01b193b8 100644 --- a/.config/fish/config.fish +++ b/config/fish/config.fish @@ -26,4 +26,4 @@ fish_add_path ~/.local/bin fish_add_path ~/.spicetify # Symphony -set -gx PATH /home/vyrx/dotfiles/install/themes $PATH +set -gx PATH /home/vyrx/symphony/install/themes $PATH diff --git a/config/fish/env.fish b/config/fish/env.fish new file mode 100644 index 00000000..b1540819 --- /dev/null +++ b/config/fish/env.fish @@ -0,0 +1,9 @@ +# MPD_HOST +export MPD_HOST="/run/user/$(id -u)/mpd/socket" + +#SCRIPTS +export PATH="$HOME/Scripts/:$PATH" +export PATH="$HOME/symphony/bin:$PATH" +export PATH="$HOME/symphony/install/:$PATH" +export PATH="$HOME/symphony/install/themes:$PATH" + diff --git a/.config/fish/functions/fish_greeting.fish b/config/fish/functions/fish_greeting.fish similarity index 100% rename from .config/fish/functions/fish_greeting.fish rename to config/fish/functions/fish_greeting.fish diff --git a/.config/fish/functions/gemini.fish b/config/fish/functions/gemini.fish similarity index 100% rename from .config/fish/functions/gemini.fish rename to config/fish/functions/gemini.fish diff --git a/.config/fish/functions/sessionizer.fish b/config/fish/functions/sessionizer.fish similarity index 64% rename from .config/fish/functions/sessionizer.fish rename to config/fish/functions/sessionizer.fish index 4eb2f6e7..6fd47527 100644 --- a/.config/fish/functions/sessionizer.fish +++ b/config/fish/functions/sessionizer.fish @@ -1,3 +1,3 @@ function sessionizer --description "Launch sessionX script" - $HOME/dotfiles/scripts/sessionX + $HOME/symphony/bin/sessionX end diff --git a/.config/fish/functions/yazi.fish b/config/fish/functions/yazi.fish similarity index 100% rename from .config/fish/functions/yazi.fish rename to config/fish/functions/yazi.fish diff --git a/.config/ghostty/config b/config/ghostty/config similarity index 89% rename from .config/ghostty/config rename to config/ghostty/config index 0bbe5086..a2e34213 100644 --- a/.config/ghostty/config +++ b/config/ghostty/config @@ -1,5 +1,5 @@ # Colors from Symphony -config-file = ?"~/.config/symphony/current/.config/ghostty/theme" +config-file = ?"~/.config/symphony/current/ghostty/theme" # Font font-family = "JetBrainsMono Nerd Font" diff --git a/.config/ghostty/themes/Matugen b/config/ghostty/themes/Matugen similarity index 100% rename from .config/ghostty/themes/Matugen rename to config/ghostty/themes/Matugen diff --git a/.config/gtk-3.0/gtk.css b/config/gtk-3.0/gtk.css similarity index 100% rename from .config/gtk-3.0/gtk.css rename to config/gtk-3.0/gtk.css diff --git a/.config/gtk-3.0/settings.ini b/config/gtk-3.0/settings.ini similarity index 100% rename from .config/gtk-3.0/settings.ini rename to config/gtk-3.0/settings.ini diff --git a/.config/gtk-4.0/gtk.css b/config/gtk-4.0/gtk.css similarity index 100% rename from .config/gtk-4.0/gtk.css rename to config/gtk-4.0/gtk.css diff --git a/.config/gtk-4.0/settings.ini b/config/gtk-4.0/settings.ini similarity index 100% rename from .config/gtk-4.0/settings.ini rename to config/gtk-4.0/settings.ini diff --git a/.config/hypr/animations.conf b/config/hypr/animations.conf similarity index 100% rename from .config/hypr/animations.conf rename to config/hypr/animations.conf diff --git a/.config/hypr/autostart.conf b/config/hypr/autostart.conf similarity index 93% rename from .config/hypr/autostart.conf rename to config/hypr/autostart.conf index 0a4df9df..e71fbbda 100644 --- a/.config/hypr/autostart.conf +++ b/config/hypr/autostart.conf @@ -12,16 +12,16 @@ exec-once = systemctl --user import-environment $(env | cut -d'=' -f1) exec-once = uwsm-app -- wl-clip-persist --clipboard regular & exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once = uwsm-app -- wl-paste --watch cliphist store -exec-once = uwsm-app -- swww-daemon +exec-once = uwsm-app -- awww-daemon exec-once = uwsm-app -- hypridle exec-once = uwsm-app -- swayosd-server -exec-once = uwsm-app -- ~/.config/hypr/scripts/battery-notify +exec-once = uwsm-app -- ~/.local/bin/battery-notify exec-once = uwsm-app -- kdeconnect-indicator exec-once = /usr/lib/kdeconnectd # Delay waybar to ensure Hyprland IPC is ready exec-once = sleep 1 && uwsm app -- waybar -exec-once = ~/.config/hypr/scripts/first-run +exec-once = ~/.local/bin/first-run ###### --------------------- ###### ###### AUTOSTART APPS ###### diff --git a/.config/hypr/bindings.conf b/config/hypr/bindings.conf similarity index 96% rename from .config/hypr/bindings.conf rename to config/hypr/bindings.conf index 476d6fd7..7d9381f8 100644 --- a/.config/hypr/bindings.conf +++ b/config/hypr/bindings.conf @@ -7,15 +7,15 @@ # Assign apps $terminal = kitty -$browser = $HOME/.config/hypr/scripts/launch-browser +$browser = $HOME/.local/bin/launch-browser $browser2 = zen-browser -$webapp = ~/.config/hypr/scripts/launch-webapp -$focus = ~/.config/hypr/scripts/focus +$webapp = ~/.local/bin/launch-webapp +$focus = ~/.local/bin/focus $osdclient = swayosd-client --monitor "$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')" # Assign Dir -$rofiDir = ~/.config/rofi/scripts -$scrDir = ~/.config/hypr/scripts +$rofiDir = ~/.local/bin +$scrDir = ~/.local/bin # Apps bindd = SUPER, RETURN, Terminal, exec, uwsm-app -- $terminal --dir="$(cwd-terminal)" @@ -53,7 +53,7 @@ bindd = SUPER, BACKSLASH, Learn, exec, $webapp "https://devhints.io/" bind = SUPER SHIFT,return, exec, $terminal -e tmux a #attach existing session bind = SUPER ALT, return, exec, $terminal -e tmux new -As main #open new tmux-session -bindd = SUPER SHIFT, N, Wifi Menu ,exec, $rofiDir/wifi.sh +bindd = SUPER SHIFT, N, Wifi Menu ,exec, $rofiDir/wifi bindd = SUPER, N, Notification Centre, exec, swaync-client -t -sw bindd = SUPER SHIFT,I,Web App Install, exec, kitty --title webapp-install -e $scrDir/webapp-install diff --git a/.config/hypr/envs.conf b/config/hypr/envs.conf similarity index 100% rename from .config/hypr/envs.conf rename to config/hypr/envs.conf diff --git a/.config/hypr/hypridle.conf b/config/hypr/hypridle.conf similarity index 90% rename from .config/hypr/hypridle.conf rename to config/hypr/hypridle.conf index edf9deba..795b7630 100644 --- a/.config/hypr/hypridle.conf +++ b/config/hypr/hypridle.conf @@ -6,7 +6,7 @@ # ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝╚═════╝ ╚══════╝╚══════╝ general { - lock_cmd = $HOME/.config/hypr/scripts/lock-screen # lock screen and 1password + lock_cmd = $HOME/.local/bin/lock-screen # lock screen and 1password before_sleep_cmd = loginctl lock-session # lock before suspend. after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. inhibit_sleep = 3 # wait until screen is locked @@ -14,7 +14,7 @@ general { listener { timeout = 150 # 2.5min - on-timeout = pidof hyprlock || $HOME/.config/hypr/scripts/screensaver-launch # start screensaver (if we haven't locked already) + on-timeout = pidof hyprlock || $HOME/.local/bin/screensaver-launch # start screensaver (if we haven't locked already) } listener { diff --git a/.config/hypr/hyprland.conf b/config/hypr/hyprland.conf similarity index 100% rename from .config/hypr/hyprland.conf rename to config/hypr/hyprland.conf diff --git a/.config/hypr/hyprlock.conf b/config/hypr/hyprlock.conf similarity index 100% rename from .config/hypr/hyprlock.conf rename to config/hypr/hyprlock.conf diff --git a/.config/hypr/hyprsunset.conf b/config/hypr/hyprsunset.conf similarity index 100% rename from .config/hypr/hyprsunset.conf rename to config/hypr/hyprsunset.conf diff --git a/.config/hypr/input.conf b/config/hypr/input.conf similarity index 95% rename from .config/hypr/input.conf rename to config/hypr/input.conf index 27a2ae1a..ba24ea7b 100644 --- a/.config/hypr/input.conf +++ b/config/hypr/input.conf @@ -13,9 +13,6 @@ cursor { } input { - # kb_options = compose:caps # ,grp:alts_toggle - kb_options = compose:ralt # ,grp:alt_space_toggle - # Change speed of keyboard repeat # repeat_rate = 40 # repeat_delay = 600 @@ -40,6 +37,9 @@ input { gesture =3, horizontal,workspace +# Scroll nicely in the terminal +windowrule = match:class (Alacritty|kitty|ghostty), scroll_touchpad 1.5 + misc { key_press_enables_dpms = true # key press will trigger wake mouse_move_enables_dpms = true # mouse move will trigger wake diff --git a/.config/hypr/looknfeel.conf b/config/hypr/looknfeel.conf similarity index 95% rename from .config/hypr/looknfeel.conf rename to config/hypr/looknfeel.conf index 41eb9e44..5923bcfd 100644 --- a/.config/hypr/looknfeel.conf +++ b/config/hypr/looknfeel.conf @@ -6,7 +6,7 @@ # ╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚══════╝╚══════╝╚══════╝ # Colors from Symphony -source = ~/.config/symphony/current/.config/hypr/theme/colors.conf +source = ~/.config/symphony/current/hypr/theme/colors.conf # https://wiki.hyprland.org/Configuring/Variables/#general general { @@ -16,6 +16,9 @@ general { col.active_border = $secondary col.inactive_border = $outline_variant resize_on_border = true + + # Change to niri-like side-scrolling layout + # layout = scrolling } # https://wiki.hyprland.org/Configuring/Variables/#decoration diff --git a/.config/hypr/media.conf b/config/hypr/media.conf similarity index 100% rename from .config/hypr/media.conf rename to config/hypr/media.conf diff --git a/.config/hypr/monitors.conf b/config/hypr/monitors.conf similarity index 100% rename from .config/hypr/monitors.conf rename to config/hypr/monitors.conf diff --git a/.config/hypr/tiling.conf b/config/hypr/tiling.conf similarity index 100% rename from .config/hypr/tiling.conf rename to config/hypr/tiling.conf diff --git a/.config/hypr/windowsrules.conf b/config/hypr/windowsrules.conf similarity index 100% rename from .config/hypr/windowsrules.conf rename to config/hypr/windowsrules.conf diff --git a/.config/kitty/kitty.conf b/config/kitty/kitty.conf similarity index 91% rename from .config/kitty/kitty.conf rename to config/kitty/kitty.conf index 26b8c55c..93871564 100644 --- a/.config/kitty/kitty.conf +++ b/config/kitty/kitty.conf @@ -1,5 +1,5 @@ # Colors from Symphony -include ~/.config/symphony/current/.config/kitty/colors.conf +include ~/.config/symphony/current/kitty/colors.conf # Font # font_family CaskaydiaCove Nerd Font Mono diff --git a/.config/kitty/screensaver.conf b/config/kitty/screensaver.conf similarity index 100% rename from .config/kitty/screensaver.conf rename to config/kitty/screensaver.conf diff --git a/.config/lazygit/config.yml b/config/lazygit/config.yml similarity index 100% rename from .config/lazygit/config.yml rename to config/lazygit/config.yml diff --git a/.config/matugen/config.toml b/config/matugen/config.toml similarity index 53% rename from .config/matugen/config.toml rename to config/matugen/config.toml index ad8e4cc0..b3394def 100644 --- a/.config/matugen/config.toml +++ b/config/matugen/config.toml @@ -2,83 +2,83 @@ [templates.hyprland] input_path = '~/.config/matugen/templates/hyprland-colors.conf' -output_path = '~/dotfiles/themes/dynamic/.config/hypr/theme/colors.conf' +output_path = '~/symphony/themes/dynamic/hypr/theme/colors.conf' [templates.kitty] input_path = '~/.config/matugen/templates/kitty-colors.conf' -output_path = '~/dotfiles/themes/dynamic/.config/kitty/colors.conf' +output_path = '~/symphony/themes/dynamic/kitty/colors.conf' [templates.btop] input_path = '~/.config/matugen/templates/btop.theme' -output_path = '~/dotfiles/themes/dynamic/.config/btop/themes/current.theme' +output_path = '~/symphony/themes/dynamic/btop/themes/current.theme' [templates.yazi] input_path = '~/.config/matugen/templates/yazi-theme.toml' -output_path = '~/dotfiles/themes/dynamic/.config/yazi/theme.toml' +output_path = '~/symphony/themes/dynamic/yazi/theme.toml' [templates.cava] input_path = '~/.config/matugen/templates/cava-colors.ini' -output_path = '~/dotfiles/themes/dynamic/.config/cava/config' +output_path = '~/symphony/themes/dynamic/cava/config' [templates.fuzzel] input_path = '~/.config/matugen/templates/fuzzel_theme.ini' -output_path = '~/dotfiles/themes/dynamic/.config/fuzzel/fuzzel_theme.ini' +output_path = '~/symphony/themes/dynamic/fuzzel/fuzzel_theme.ini' [templates.ghostty] input_path = '~/.config/matugen/templates/ghostty' -output_path = '~/dotfiles/themes/dynamic/.config/ghostty/theme' +output_path = '~/symphony/themes/dynamic/ghostty/theme' [templates.waybar] input_path = '~/.config/matugen/templates/colors.css' -output_path = '~/dotfiles/themes/dynamic/.config/waybar/colors.css' +output_path = '~/symphony/themes/dynamic/waybar/colors.css' [templates.starship] input_path = '~/.config/matugen/templates/starship-colors.toml' -output_path = '~/dotfiles/themes/dynamic/.config/starship.toml' +output_path = '~/symphony/themes/dynamic/starship.toml' [templates.rofi] input_path = '~/.config/matugen/templates/rofi-colors.rasi' -output_path = '~/dotfiles/themes/dynamic/.config/rofi/colors.rasi' +output_path = '~/symphony/themes/dynamic/rofi/colors.rasi' [templates.swaync] input_path = '~/.config/matugen/templates/colors.css' -output_path = '~/dotfiles/themes/dynamic/.config/swaync/matugen/colors.css' +output_path = '~/symphony/themes/dynamic/swaync/matugen/colors.css' [templates.gtk3] input_path = '~/.config/matugen/templates/gtk-colors.css' -output_path = '~/dotfiles/themes/dynamic/.config/gtk-3.0/colors.css' +output_path = '~/symphony/themes/dynamic/gtk-3.0/colors.css' [templates.alacritty] input_path = '~/.config/matugen/templates/alacritty-colors.toml' -output_path = '~/dotfiles/themes/dynamic/.config/alacritty/colors.toml' +output_path = '~/symphony/themes/dynamic/alacritty/colors.toml' [templates.gtk4] input_path = '~/.config/matugen/templates/gtk-colors.css' -output_path = '~/dotfiles/themes/dynamic/.config/gtk-4.0/colors.css' +output_path = '~/symphony/themes/dynamic/gtk-4.0/colors.css' [templates.rmpc] input_path = '~/.config/matugen/templates/rmpc-theme.ron' -output_path = '~/dotfiles/themes/dynamic/.config/rmpc/themes/current.ron' +output_path = '~/symphony/themes/dynamic/rmpc/themes/current.ron' [templates.pywalfox-json] input_path = '~/.config/matugen/templates/pywalfox-colors.json' -output_path = '~/dotfiles/themes/dynamic/.cache/wal/colors.json' +output_path = '~/symphony/themes/dynamic/.cache/wal/colors.json' [templates.pywalfox-colors] input_path = '~/.config/matugen/templates/pywalfox-colors' -output_path = '~/dotfiles/themes/dynamic/.cache/wal/colors' +output_path = '~/symphony/themes/dynamic/.cache/wal/colors' [templates.vesktop] input_path = '~/.config/matugen/templates/midnight-color.css' -output_path = '~/dotfiles/themes/dynamic/.config/vesktop/themes/symphony-discord.css' +output_path = '~/symphony/themes/dynamic/vesktop/themes/symphony-discord.css' [templates.obsidian] input_path = '~/.config/matugen/templates/obsidian-theme.css' -output_path = '~/dotfiles/themes/dynamic/.config/obsidian/theme.css' +output_path = '~/symphony/themes/dynamic/obsidian/theme.css' [templates.spicetify] input_path = '~/.config/matugen/templates/spicetify-colors.ini' -output_path = '~/dotfiles/themes/dynamic/.config/spicetify/Themes/symphony/color.ini' +output_path = '~/symphony/themes/dynamic/spicetify/Themes/symphony/color.ini' diff --git a/.config/matugen/templates/alacritty-colors.toml b/config/matugen/templates/alacritty-colors.toml similarity index 98% rename from .config/matugen/templates/alacritty-colors.toml rename to config/matugen/templates/alacritty-colors.toml index 19d8c775..27c4ff1c 100644 --- a/.config/matugen/templates/alacritty-colors.toml +++ b/config/matugen/templates/alacritty-colors.toml @@ -1,5 +1,5 @@ # Symphony - Alacritty Colors (generated by matugen) -# https://github.com/vyrx-dev/dotfiles +# https://github.com/vyrx-dev/symphony [colors.primary] background = '{{colors.surface.default.hex}}' diff --git a/.config/matugen/templates/btop.theme b/config/matugen/templates/btop.theme similarity index 100% rename from .config/matugen/templates/btop.theme rename to config/matugen/templates/btop.theme diff --git a/.config/matugen/templates/cava-colors.ini b/config/matugen/templates/cava-colors.ini similarity index 100% rename from .config/matugen/templates/cava-colors.ini rename to config/matugen/templates/cava-colors.ini diff --git a/.config/matugen/templates/colors.css b/config/matugen/templates/colors.css similarity index 100% rename from .config/matugen/templates/colors.css rename to config/matugen/templates/colors.css diff --git a/.config/matugen/templates/fuzzel_theme.ini b/config/matugen/templates/fuzzel_theme.ini similarity index 100% rename from .config/matugen/templates/fuzzel_theme.ini rename to config/matugen/templates/fuzzel_theme.ini diff --git a/.config/matugen/templates/ghostty b/config/matugen/templates/ghostty similarity index 100% rename from .config/matugen/templates/ghostty rename to config/matugen/templates/ghostty diff --git a/.config/matugen/templates/gtk-colors.css b/config/matugen/templates/gtk-colors.css similarity index 100% rename from .config/matugen/templates/gtk-colors.css rename to config/matugen/templates/gtk-colors.css diff --git a/.config/matugen/templates/hyprland-colors.conf b/config/matugen/templates/hyprland-colors.conf similarity index 100% rename from .config/matugen/templates/hyprland-colors.conf rename to config/matugen/templates/hyprland-colors.conf diff --git a/.config/matugen/templates/kitty-colors.conf b/config/matugen/templates/kitty-colors.conf similarity index 96% rename from .config/matugen/templates/kitty-colors.conf rename to config/matugen/templates/kitty-colors.conf index e748df9c..8cab559d 100644 --- a/.config/matugen/templates/kitty-colors.conf +++ b/config/matugen/templates/kitty-colors.conf @@ -1,5 +1,5 @@ # Symphony - Kitty Colors (generated by matugen) -# https://github.com/vyrx-dev/dotfiles +# https://github.com/vyrx-dev/symphony cursor {{colors.primary.default.hex}} cursor_text_color {{colors.on_primary.default.hex}} diff --git a/.config/matugen/templates/mako b/config/matugen/templates/mako similarity index 100% rename from .config/matugen/templates/mako rename to config/matugen/templates/mako diff --git a/.config/matugen/templates/midnight-color.css b/config/matugen/templates/midnight-color.css similarity index 100% rename from .config/matugen/templates/midnight-color.css rename to config/matugen/templates/midnight-color.css diff --git a/.config/matugen/templates/obsidian-theme.css b/config/matugen/templates/obsidian-theme.css similarity index 100% rename from .config/matugen/templates/obsidian-theme.css rename to config/matugen/templates/obsidian-theme.css diff --git a/.config/matugen/templates/pywalfox-colors b/config/matugen/templates/pywalfox-colors similarity index 100% rename from .config/matugen/templates/pywalfox-colors rename to config/matugen/templates/pywalfox-colors diff --git a/.config/matugen/templates/pywalfox-colors.json b/config/matugen/templates/pywalfox-colors.json similarity index 100% rename from .config/matugen/templates/pywalfox-colors.json rename to config/matugen/templates/pywalfox-colors.json diff --git a/.config/matugen/templates/rmpc-theme.ron b/config/matugen/templates/rmpc-theme.ron similarity index 100% rename from .config/matugen/templates/rmpc-theme.ron rename to config/matugen/templates/rmpc-theme.ron diff --git a/.config/matugen/templates/rofi-colors.rasi b/config/matugen/templates/rofi-colors.rasi similarity index 100% rename from .config/matugen/templates/rofi-colors.rasi rename to config/matugen/templates/rofi-colors.rasi diff --git a/.config/matugen/templates/spicetify-colors.ini b/config/matugen/templates/spicetify-colors.ini similarity index 100% rename from .config/matugen/templates/spicetify-colors.ini rename to config/matugen/templates/spicetify-colors.ini diff --git a/.config/matugen/templates/starship-colors.toml b/config/matugen/templates/starship-colors.toml similarity index 100% rename from .config/matugen/templates/starship-colors.toml rename to config/matugen/templates/starship-colors.toml diff --git a/.config/matugen/templates/yazi-theme.toml b/config/matugen/templates/yazi-theme.toml similarity index 100% rename from .config/matugen/templates/yazi-theme.toml rename to config/matugen/templates/yazi-theme.toml diff --git a/.config/mpd/mpd.conf b/config/mpd/mpd.conf similarity index 100% rename from .config/mpd/mpd.conf rename to config/mpd/mpd.conf diff --git a/.config/mpdscribble/mpdscribble.conf b/config/mpdscribble/mpdscribble.conf similarity index 100% rename from .config/mpdscribble/mpdscribble.conf rename to config/mpdscribble/mpdscribble.conf diff --git a/config/nvim/.luarc.json b/config/nvim/.luarc.json new file mode 100644 index 00000000..c2d33c20 --- /dev/null +++ b/config/nvim/.luarc.json @@ -0,0 +1,3 @@ +{ + "diagnostics.globals": ["vim"] +} diff --git a/config/nvim/after/ftplugin/css.lua b/config/nvim/after/ftplugin/css.lua new file mode 100644 index 00000000..ef99652b --- /dev/null +++ b/config/nvim/after/ftplugin/css.lua @@ -0,0 +1,4 @@ +vim.opt_local.shiftwidth = 2 +vim.opt_local.tabstop = 2 +vim.opt_local.softtabstop = 2 +vim.opt_local.expandtab = true diff --git a/config/nvim/after/ftplugin/dart.lua b/config/nvim/after/ftplugin/dart.lua new file mode 100644 index 00000000..ef99652b --- /dev/null +++ b/config/nvim/after/ftplugin/dart.lua @@ -0,0 +1,4 @@ +vim.opt_local.shiftwidth = 2 +vim.opt_local.tabstop = 2 +vim.opt_local.softtabstop = 2 +vim.opt_local.expandtab = true diff --git a/config/nvim/after/ftplugin/go.lua b/config/nvim/after/ftplugin/go.lua new file mode 100644 index 00000000..9dfa1f03 --- /dev/null +++ b/config/nvim/after/ftplugin/go.lua @@ -0,0 +1,4 @@ +vim.opt_local.shiftwidth = 4 +vim.opt_local.tabstop = 4 +vim.opt_local.softtabstop = 4 +vim.opt_local.expandtab = false diff --git a/config/nvim/after/ftplugin/html.lua b/config/nvim/after/ftplugin/html.lua new file mode 100644 index 00000000..ef99652b --- /dev/null +++ b/config/nvim/after/ftplugin/html.lua @@ -0,0 +1,4 @@ +vim.opt_local.shiftwidth = 2 +vim.opt_local.tabstop = 2 +vim.opt_local.softtabstop = 2 +vim.opt_local.expandtab = true diff --git a/config/nvim/after/ftplugin/javascript.lua b/config/nvim/after/ftplugin/javascript.lua new file mode 100644 index 00000000..ef99652b --- /dev/null +++ b/config/nvim/after/ftplugin/javascript.lua @@ -0,0 +1,4 @@ +vim.opt_local.shiftwidth = 2 +vim.opt_local.tabstop = 2 +vim.opt_local.softtabstop = 2 +vim.opt_local.expandtab = true diff --git a/config/nvim/after/ftplugin/lua.lua b/config/nvim/after/ftplugin/lua.lua new file mode 100644 index 00000000..ef99652b --- /dev/null +++ b/config/nvim/after/ftplugin/lua.lua @@ -0,0 +1,4 @@ +vim.opt_local.shiftwidth = 2 +vim.opt_local.tabstop = 2 +vim.opt_local.softtabstop = 2 +vim.opt_local.expandtab = true diff --git a/config/nvim/after/ftplugin/python.lua b/config/nvim/after/ftplugin/python.lua new file mode 100644 index 00000000..d48799f4 --- /dev/null +++ b/config/nvim/after/ftplugin/python.lua @@ -0,0 +1,4 @@ +vim.opt_local.shiftwidth = 4 +vim.opt_local.tabstop = 4 +vim.opt_local.softtabstop = 4 +vim.opt_local.expandtab = true diff --git a/config/nvim/after/ftplugin/typescript.lua b/config/nvim/after/ftplugin/typescript.lua new file mode 100644 index 00000000..ef99652b --- /dev/null +++ b/config/nvim/after/ftplugin/typescript.lua @@ -0,0 +1,4 @@ +vim.opt_local.shiftwidth = 2 +vim.opt_local.tabstop = 2 +vim.opt_local.softtabstop = 2 +vim.opt_local.expandtab = true diff --git a/.config/nvim/init.lua b/config/nvim/init.lua similarity index 100% rename from .config/nvim/init.lua rename to config/nvim/init.lua diff --git a/.config/nvim/lua/config/autocmd.lua b/config/nvim/lua/config/autocmd.lua similarity index 99% rename from .config/nvim/lua/config/autocmd.lua rename to config/nvim/lua/config/autocmd.lua index c898ed7a..1302f93f 100644 --- a/.config/nvim/lua/config/autocmd.lua +++ b/config/nvim/lua/config/autocmd.lua @@ -30,8 +30,6 @@ vim.api.nvim_create_autocmd("TextYankPost", { end, }) - - -- format on save using efm langserver and configured formatters local lsp_fmt_group = vim.api.nvim_create_augroup("FormatOnSaveGroup", {}) vim.api.nvim_create_autocmd("BufWritePre", { diff --git a/.config/nvim/lua/config/keymaps.lua b/config/nvim/lua/config/keymaps.lua similarity index 70% rename from .config/nvim/lua/config/keymaps.lua rename to config/nvim/lua/config/keymaps.lua index aaf246c8..a5b9372d 100755 --- a/.config/nvim/lua/config/keymaps.lua +++ b/config/nvim/lua/config/keymaps.lua @@ -9,8 +9,6 @@ local opts = { noremap = true, silent = true } -- jj to escape insert mode set("i", "jj", "", opts) --- vim.keymap.set("n", "wm", "_||", { desc = "Maximize current window (no toggle)" }) - -- Disable the spacebar key's default behavior in Normal and Visual modes set({ "n", "v" }, "", "", { silent = true }) @@ -36,9 +34,6 @@ set("n", "pe", ":LiveServerStop", { desc = "Stop Live Server" }) -- file-explorer set("n", "e", ":NvimTreeToggle", { desc = "Nvim tree " }) --- Code Snippets -set("v", "cx", ":CodeSnapSave", { desc = "Save with CodeSnap", silent = true }) - -- Center the screen after scrolling up/down with Ctrl-u/d set("n", "", "zz") set("n", "", "zz") @@ -55,18 +50,11 @@ set("n", "lw", "set wrap!", opts) -- save, quit set("n", "w", " w ", opts) set("n", "sn", ":noautocmd w ", opts) --- set("n", "qq", " q " ,opts) -- move a blocks of text up/down with K/J in visual mode set("v", "K", ":m '<-2gv=gv", { silent = true }) set("v", "J", ":m '>+1gv=gv", { silent = true }) --- Toggle Screenkey -set("n", "vk", "Screenkey", opts) - --- Select all -set("n", "", "ggG") - -- delete single character without copying into register set("n", "x", '"_x', opts) @@ -86,11 +74,6 @@ set({ "n", "v" }, "d", [["_d]]) -- Paste in visual mode without yanking replaced text set("x", "p", [["_dP]]) --- CopilotChat -set("n", "tc", ":CopilotChatSave ") -set("n", "tl", ":CopilotChatLoad ") -set("n", "tp", ":CopilotChatPrompts") - -- Resize window set("n", "", ":vertical resize +20") set("n", "", ":vertical resize -20") @@ -103,25 +86,15 @@ set("n", "", ":bprevious", opts) set("n", "bd", ":bdelete!", opts) --close buffer set("n", "bn", " enew ", opts) -- new buffer --- Diagnostic -- handled by lspsaga now --- set("n", "[d", function() --- vim.diagnostic.jump { count = -1, float = true } --- end, { desc = "Go to previous diagnostic message" }) --- --- set("n", "]d", function() --- vim.diagnostic.jump { count = 1, float = true } --- end, { desc = "Go to next diagnostic message" }) --- --- set("n", "d", vim.diagnostic.open_float, { desc = "Open floating diagnostic message" }) --- set("n", "q", vim.diagnostic.setloclist, { desc = "Open diagnostics list" }) - --- Format buffer manually -set("n", "lf", function() - vim.lsp.buf.format() -end, { desc = "Format current buffer" }) +-- Lazy and Mason +set("n", "ll", "Lazy", { desc = "Open Lazy plugin manager" }) +set("n", "lm", "Mason", { desc = "Open Mason LSP installer" }) -- Toggle autoformat on save set("n", "tf", ":ToggleAutoformat", { desc = "Toggle format on save" }) -- Markdown render -set("n", "pt", ":RenderMarkdown toggle", { desc = "Toggle Markdown Render" }) +set("n", "pt", "RenderMarkdown toggle", { desc = "Toggle Markdown Render" }) + +-- Flutter watch +set("n", "ff", "silent !tmux new-window -n flutter-run -c %:p:h && tmux send-keys 'flutter-watch' Enter", { desc = "Flutter watch" }) diff --git a/.config/nvim/lua/config/lazy.lua b/config/nvim/lua/config/lazy.lua similarity index 91% rename from .config/nvim/lua/config/lazy.lua rename to config/nvim/lua/config/lazy.lua index f7a26962..93e3b3f6 100644 --- a/.config/nvim/lua/config/lazy.lua +++ b/config/nvim/lua/config/lazy.lua @@ -19,7 +19,8 @@ require "config.autocmd" -- Custom -- require ('cool.pacekeeper').chill() -require "custom.terminal" +require "custom.bottom-terminal" +require "custom.floatingterm" require("lazy").setup { spec = { diff --git a/.config/nvim/lua/config/options.lua b/config/nvim/lua/config/options.lua similarity index 78% rename from .config/nvim/lua/config/options.lua rename to config/nvim/lua/config/options.lua index b0602beb..7b7bdaa3 100644 --- a/.config/nvim/lua/config/options.lua +++ b/config/nvim/lua/config/options.lua @@ -1,20 +1,21 @@ vim.opt.fillchars = { eob = " " } +vim.opt.winbar = nil vim.o.hlsearch = false -- Set highlight on search vim.wo.number = true -- Make line numbers default -vim.o.mouse = 'a' -- Enable mouse mode -vim.o.clipboard = 'unnamedplus' -- Sync clipboard between OS and Neovim. +vim.o.mouse = "a" -- Enable mouse mode +vim.o.clipboard = "unnamedplus" -- Sync clipboard between OS and Neovim. vim.o.breakindent = true -- Enable break indent vim.o.undofile = true -- Save undo history vim.o.ignorecase = true -- Case-insensitive searching UNLESS \C or capital in search vim.o.smartcase = true -- smart case -vim.wo.signcolumn = 'yes' -- Keep signcolumn on by default +vim.wo.signcolumn = "yes" -- Keep signcolumn on by default vim.o.updatetime = 250 -- Decrease update time vim.o.timeoutlen = 300 -- time to wait for a mapped sequence to complete (in milliseconds) vim.o.backup = false -- creates a backup file vim.o.writebackup = false -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited -vim.o.completeopt = 'menuone,noselect' -- Set completeopt to have a better completion experience +vim.o.completeopt = "menuone,noselect" -- Set completeopt to have a better completion experience vim.opt.termguicolors = true -- set termguicolors to enable highlight groups -vim.o.whichwrap = 'bs<>[]hl' -- which "horizontal" keys are allowed to travel to prev/next line +vim.o.whichwrap = "bs<>[]hl" -- which "horizontal" keys are allowed to travel to prev/next line vim.o.wrap = false -- display lines as one long line vim.o.linebreak = true -- companion to wrap don't split words vim.o.scrolloff = 4 -- minimal number of screen lines to keep above and below the cursor @@ -32,13 +33,14 @@ vim.o.swapfile = false -- creates a swapfile vim.o.smartindent = true -- make indenting smarter again vim.o.showmode = false -- we don't need to see things like -- INSERT -- anymore vim.o.showtabline = 1 -- show if there are at least two tabs -vim.o.backspace = 'indent,eol,start' -- allow backspace on +vim.o.backspace = "indent,eol,start" -- allow backspace on vim.o.pumheight = 10 -- pop up menu height vim.o.conceallevel = 0 -- so that `` is visible in markdown files -vim.o.fileencoding = 'utf-8' -- the encoding written to a file +vim.o.fileencoding = "utf-8" -- the encoding written to a file vim.o.cmdheight = 1 -- more space in the neovim command line for displaying messages vim.o.autoindent = true -- copy indent from current line when starting new one -vim.opt.shortmess:append 'c' -- don't give |ins-completion-menu| messages -vim.opt.iskeyword:append '-' -- hyphenated words recognized by searches -vim.opt.formatoptions:remove { 'c', 'r', 'o' } -- don't insert the current comment leader automatically for auto-wrapping comments using 'textwidth', hitting in insert mode, or hitting 'o' or 'O' in normal mode. -vim.opt.runtimepath:remove '/usr/share/vim/vimfiles' -- separate vim plugins from neovim in case vim still in use +vim.opt.shortmess:append "c" -- don't give |ins-completion-menu| messages +vim.opt.iskeyword:append "-" -- hyphenated words recognized by searches +vim.opt.formatoptions:remove { "c", "r", "o" } -- don't insert the current comment leader automatically for auto-wrapping comments using 'textwidth', hitting in insert mode, or hitting 'o' or 'O' in normal mode. +vim.opt.runtimepath:remove "/usr/share/vim/vimfiles" -- separate vim plugins from neovim in case vim still in use + diff --git a/.config/nvim/lua/custom/terminal.lua b/config/nvim/lua/custom/bottom-terminal.lua similarity index 100% rename from .config/nvim/lua/custom/terminal.lua rename to config/nvim/lua/custom/bottom-terminal.lua diff --git a/config/nvim/lua/custom/floatingterm.lua b/config/nvim/lua/custom/floatingterm.lua new file mode 100644 index 00000000..64dd54c2 --- /dev/null +++ b/config/nvim/lua/custom/floatingterm.lua @@ -0,0 +1,67 @@ +local state = { + buf = nil, + win = nil, +} + +local function create_float_terminal() + local width = math.floor(vim.o.columns * 0.5) + local height = math.floor(vim.o.lines * 0.5) + local col = math.floor((vim.o.columns - width) / 2) + local row = math.floor((vim.o.lines - height) / 2) + + local buf_valid = state.buf and vim.api.nvim_buf_is_valid(state.buf) + local win_valid = state.win and vim.api.nvim_win_is_valid(state.win) + + if win_valid then + vim.api.nvim_win_close(state.win, true) + state.win = nil + return + end + + if not buf_valid then + state.buf = vim.api.nvim_create_buf(false, true) + end + + state.win = vim.api.nvim_open_win(state.buf, true, { + relative = "editor", + width = width, + height = height, + col = col, + row = row, + style = "minimal", + border = "rounded", + title = "Terminal", + title_pos = "center", + }) + + vim.api.nvim_set_option_value("winblend", 0, { win = state.win }) + vim.api.nvim_set_option_value("winhighlight", "Normal:Normal,FloatBorder:FloatBorder", { win = state.win }) + + if not buf_valid then + vim.cmd.terminal() + end + + vim.cmd.startinsert() +end + +local function delete_float_terminal() + local buf_valid = state.buf and vim.api.nvim_buf_is_valid(state.buf) + local win_valid = state.win and vim.api.nvim_win_is_valid(state.win) + + if win_valid then + vim.api.nvim_win_close(state.win, true) + state.win = nil + end + + if buf_valid then + vim.api.nvim_buf_delete(state.buf, { force = true }) + state.buf = nil + print "Terminal buffer deleted" + else + print "No Buffer to delete" + end +end + +vim.keymap.set("t", "", "", { desc = "exit terminal mode" }) +vim.keymap.set({ "n", "t" }, ";t", create_float_terminal, { desc = "Toggle Floating Terminal" }) +vim.keymap.set({ "n", "t" }, ";d", delete_float_terminal, { desc = "delete float terminal" }) diff --git a/config/nvim/lua/plugins/ai.lua b/config/nvim/lua/plugins/ai.lua new file mode 100644 index 00000000..4904efc3 --- /dev/null +++ b/config/nvim/lua/plugins/ai.lua @@ -0,0 +1,89 @@ +return { + -- { + -- "Exafunction/windsurf.vim", + -- event = "BufEnter", + -- }, + -- + { + "Exafunction/windsurf.nvim", + dependencies = { + "nvim-lua/plenary.nvim", + "hrsh7th/nvim-cmp", + }, + config = function() + require("codeium").setup {} + end, + keys = { + { "ct", "Codeium Toggle", mode = "n", desc = "Toggle Codeium" }, + { "cc", "Codeium Chat", mode = "n", desc = "Codeium Chat" }, + }, + }, + -- copilot { + -- "zbirenbaum/copilot.lua", + -- opts = { + -- suggestion = { + -- auto_trigger = false, + -- keymap = { + -- accept = "", + -- accept_word = "", + -- accept_line = "", + -- next = "", + -- prev = "", + -- dismiss = "", + -- }, + -- }, + -- filetypes = { + -- markdown = true, + -- help = true, + -- }, + -- }, + -- }, + + { + "NickvanDyke/opencode.nvim", + dependencies = { + -- Recommended for `ask()` and `select()`. + -- Required for `snacks` provider. + ---@module 'snacks' <- Loads `snacks.nvim` types for configuration intellisense. + { "folke/snacks.nvim", opts = { input = {}, picker = {}, terminal = {} } }, + }, + config = function() + ---@type opencode.Opts + vim.g.opencode_opts = { + -- Your configuration, if any — see `lua/opencode/config.lua`, or "goto definition" on the type or field. + } + + -- Required for `opts.events.reload`. + vim.o.autoread = true + + -- Recommended/example keymaps. + vim.keymap.set({ "n", "x" }, "", function() + require("opencode").ask("@this: ", { submit = true }) + end, { desc = "Ask opencode…" }) + vim.keymap.set({ "n", "x" }, "", function() + require("opencode").select() + end, { desc = "Execute opencode action…" }) + vim.keymap.set({ "n", "t" }, "", function() + require("opencode").toggle() + end, { desc = "Toggle opencode" }) + + vim.keymap.set({ "n", "x" }, "go", function() + return require("opencode").operator "@this " + end, { desc = "Add range to opencode", expr = true }) + vim.keymap.set("n", "goo", function() + return require("opencode").operator "@this " .. "_" + end, { desc = "Add line to opencode", expr = true }) + + vim.keymap.set("n", "", function() + require("opencode").command "session.half.page.up" + end, { desc = "Scroll opencode up" }) + vim.keymap.set("n", "", function() + require("opencode").command "session.half.page.down" + end, { desc = "Scroll opencode down" }) + + -- You may want these if you stick with the opinionated "" and "" above — otherwise consider "o…". + vim.keymap.set("n", "+", "", { desc = "Increment under cursor", noremap = true }) + vim.keymap.set("n", "-", "", { desc = "Decrement under cursor", noremap = true }) + end, + }, +} diff --git a/.config/nvim/lua/plugins/alpha.lua b/config/nvim/lua/plugins/alpha.lua similarity index 95% rename from .config/nvim/lua/plugins/alpha.lua rename to config/nvim/lua/plugins/alpha.lua index b787eb9a..760a9c10 100644 --- a/.config/nvim/lua/plugins/alpha.lua +++ b/config/nvim/lua/plugins/alpha.lua @@ -506,18 +506,10 @@ return { } dashboard.section.buttons.val = { - -- dashboard.button("e", " > New file", ":ene startinsert "), - dashboard.button("b", "󰍉 > Yazi", ":Yazi"), dashboard.button("z", " > Zoxide", ":FzfLua zoxide list"), - dashboard.button("f", "Ψ > Find file", ":FzfLua files"), - dashboard.button("r", " > Recent", ":FzfLua oldfiles"), - dashboard.button("c", " > Config", ":FzfLua files cwd=~/.config fd_opts='-L'"), - dashboard.button("m", " > Mappings", ":e ~/.config/nvim/lua/config/keymaps.lua"), - dashboard.button("p", "λ > Projects", ":lua require('mini.files').open('~/Projects')"), - dashboard.button("s", "󰯂 > Browse scripts", ":e ~/Scripts/"), - -- dashboard.button("r", " > Browse src", ":e ~/.local/src/"), - -- dashboard.button("q", "󰅙 Quit", ":q!"), - -- λ Ϡ Ϯ ϗ Ξ Ψ + dashboard.button("f", " > Find file", ":FzfLua files"), + dashboard.button("p", "λ > Projects", function() vim.cmd "cd ~/Projects" vim.cmd "Yazi cwd" end), + dashboard.button("s", "󰯂 > Browse scripts", ":FzfLua files cwd=~/Scripts"), vim.api.nvim_buf_set_keymap(0, "n", "q", ":q", { noremap = true, silent = true }), } diff --git a/.config/nvim/lua/plugins/cmp.lua b/config/nvim/lua/plugins/cmp.lua similarity index 96% rename from .config/nvim/lua/plugins/cmp.lua rename to config/nvim/lua/plugins/cmp.lua index 492d9725..1ad5ef59 100644 --- a/.config/nvim/lua/plugins/cmp.lua +++ b/config/nvim/lua/plugins/cmp.lua @@ -33,7 +33,7 @@ return { format = lspkind.cmp_format { mode = "symbol_text", menu = { - -- codeium = "", + codeium = "", luasnip = "", buffer = "", path = "", @@ -53,7 +53,7 @@ return { }, sources = { - -- { name = "codeium" }, + { name = "codeium" }, { name = "luasnip" }, { name = "nvim_lsp" }, { name = "buffer" }, diff --git a/config/nvim/lua/plugins/color-picker.lua b/config/nvim/lua/plugins/color-picker.lua new file mode 100644 index 00000000..27dc554b --- /dev/null +++ b/config/nvim/lua/plugins/color-picker.lua @@ -0,0 +1,22 @@ +return { + { + "eero-lehtinen/oklch-color-picker.nvim", + event = "VeryLazy", + -- version = "*", -- Pinning version is optional + keys = { + -- One handed keymap recommended, you will be using the mouse + { "co", function() require("oklch-color-picker").open_picker() end, desc = "Open Color Picker" }, + { "cu", function() require("oklch-color-picker").pick_under_cursor() end, desc = "Pick Color Under Cursor" }, + }, + opts = { + -- for example, to highlight colors in the buffer + highlight_colors = { + enable = true, + }, + -- for example, to use a different keymap to confirm the color + keymaps = { + confirm = "", + }, + }, + }, +} diff --git a/config/nvim/lua/plugins/colorscheme.lua b/config/nvim/lua/plugins/colorscheme.lua new file mode 100644 index 00000000..657a53fb --- /dev/null +++ b/config/nvim/lua/plugins/colorscheme.lua @@ -0,0 +1,24 @@ +return { + { "ellisonleao/gruvbox.nvim", lazy = true, opts = { transparent_mode = true } }, + -- superior gruvbox variant + { + "sainnhe/gruvbox-material", + lazy = true, + config = function() + vim.g.gruvbox_material_enable_italic = true + vim.g.gruvbox_material_background = "hard" + vim.g.gruvbox_material_transparent_background = 1 + end, + }, + -- fav theme (only this will be loaded on startup) + { + "vague2k/vague.nvim", + priority = 1000, + lazy = false, + opts = { transparent = true }, + config = function(_, opts) + require("vague").setup(opts) + vim.cmd.colorscheme "vague" + end, + }, +} diff --git a/config/nvim/lua/plugins/flutter.lua b/config/nvim/lua/plugins/flutter.lua new file mode 100644 index 00000000..b2386688 --- /dev/null +++ b/config/nvim/lua/plugins/flutter.lua @@ -0,0 +1,7 @@ +return { + "RobertBrunhage/dart-tools.nvim", + ft = "dart", + config = function() + require "dart-tools" + end, +} diff --git a/.config/nvim/lua/plugins/fzf.lua b/config/nvim/lua/plugins/fzf.lua similarity index 68% rename from .config/nvim/lua/plugins/fzf.lua rename to config/nvim/lua/plugins/fzf.lua index 2bd9398a..7c793543 100644 --- a/.config/nvim/lua/plugins/fzf.lua +++ b/config/nvim/lua/plugins/fzf.lua @@ -7,24 +7,17 @@ return { -- Quick access { ";r", function() require("fzf-lua").live_grep({ hidden = true }) end, desc = "Live Grep" }, { ";c", function() require("fzf-lua").colorschemes() end, desc = "Colorschemes" }, - { ";;", function() require("fzf-lua").buffers() end, desc = "Buffers" }, + { ";a", function() require("fzf-lua").buffers() end, desc = "Buffers" }, { "", function() require("fzf-lua").files({ hidden = true }) end, desc = "Search Files" }, { "\\\\", function() require("fzf-lua").resume() end, desc = "Resume Picker" }, - -- Leader + f - Find operations - { "fi", function() require("fzf-lua").lsp_incoming_calls() end, desc = "LSP Incoming Calls" }, - { "fx", function() require("fzf-lua").diagnostics_document() end, desc = "Diagnostics Document" }, - { "fX", function() require("fzf-lua").diagnostics_workspace() end, desc = "Diagnostics Workspace" }, - { "fs", function() require("fzf-lua").lsp_document_symbols() end, desc = "LSP Document Symbols" }, - { "fS", function() require("fzf-lua").lsp_workspace_symbols() end, desc = "LSP Workspace Symbols" }, - -- Leader + s - Search operations { "sh", function() require("fzf-lua").help_tags() end, desc = "Search Help" }, { "sk", function() require("fzf-lua").keymaps() end, desc = "Search Keymaps" }, - { "sf", function() require("fzf-lua").files() end, desc = "Search Files" }, { "ss", function() require("fzf-lua").builtin() end, desc = "Search Select" }, { "sw", function() require("fzf-lua").grep_cword() end, desc = "Search Word" }, { "sd", function() require("fzf-lua").diagnostics_document() end, desc = "Search Diagnostics" }, + { "sD", function() require("fzf-lua").diagnostics_workspace() end, desc = "Search Diagnostics" }, { "s.", function() require("fzf-lua").oldfiles() end, desc = "Search Recent Files" }, { "sp", function() require("fzf-lua").files { cwd = require("lazy.core.config").options.root } end, desc = "Search Plugin Files" }, { "sn", function() require("fzf-lua").files { cwd = vim.fn.stdpath "config" } end, desc = "Search Neovim Config" }, @@ -33,4 +26,4 @@ return { { "/", function() require("fzf-lua").blines() end, desc = "Search Current Buffer" }, }, opts = {}, -} +} diff --git a/config/nvim/lua/plugins/git.lua b/config/nvim/lua/plugins/git.lua new file mode 100644 index 00000000..6ac8fddb --- /dev/null +++ b/config/nvim/lua/plugins/git.lua @@ -0,0 +1,53 @@ +return { + -- git tui + { + "kdheepak/lazygit.nvim", + dependencies = { "nvim-lua/plenary.nvim" }, + cmd = { + "LazyGit", + "LazyGitConfig", + "LazyGitCurrentFile", + "LazyGitFilter", + "LazyGitFilterCurrentFile", + }, + }, + + { + "lewis6991/gitsigns.nvim", + event = { "BufReadPre", "BufNewFile" }, + opts = { + on_attach = function(bufnr) + local gitsigns = require "gitsigns" + + local function map(mode, l, r, opts) + opts = opts or {} + opts.buffer = bufnr + vim.keymap.set(mode, l, r, opts) + end + + -- Navigation + map("n", "]c", function() if vim.wo.diff then vim.cmd.normal { "]c", bang = true } else gitsigns.nav_hunk "next" end end, { desc = "Next Hunk" }) + map("n", "[c", function() if vim.wo.diff then vim.cmd.normal { "[c", bang = true } else gitsigns.nav_hunk "prev" end end, { desc = "Prev Hunk" }) + + -- Actions + map("n", "hs", gitsigns.stage_hunk, { desc = "Stage hunk" }) + map("n", "hr", gitsigns.reset_hunk, { desc = "Reset hunk" }) + + map("n", "hS", gitsigns.stage_buffer, { desc = "Stage buffer" }) + map("n", "hR", gitsigns.reset_buffer, { desc = "Reset buffer" }) + map("n", "hp", gitsigns.preview_hunk, { desc = "Preview hunk" }) + + map("n", "hb", function() gitsigns.blame_line { full = true } end, { desc = "Blame line" }) + map("n", "hd", gitsigns.diffthis, { desc = "Diff this" }) + map("n", "hD", function() gitsigns.diffthis "~" end, { desc = "Diff this ~" }) + + -- Toggles + map("n", "tb", gitsigns.toggle_current_line_blame, { desc = "Toggle line blame" }) + map("n", "tw", gitsigns.toggle_word_diff, { desc = "Toggle word diff" }) + + -- Text object + map({ "o", "x" }, "ih", ":Gitsigns select_hunk", { desc = "Gitsigns select hunk" }) + end, + }, + }, +} diff --git a/.config/nvim/lua/plugins/lsp-config.lua b/config/nvim/lua/plugins/lsp-config.lua similarity index 83% rename from .config/nvim/lua/plugins/lsp-config.lua rename to config/nvim/lua/plugins/lsp-config.lua index 4cbd73ee..70435efe 100644 --- a/.config/nvim/lua/plugins/lsp-config.lua +++ b/config/nvim/lua/plugins/lsp-config.lua @@ -7,7 +7,7 @@ return { }, config = function() require("mason").setup() - require("mason-tool-installer").setup({ + require("mason-tool-installer").setup { ensure_installed = { -- LSP Servers "bash-language-server", @@ -40,7 +40,7 @@ return { auto_update = false, run_on_start = true, start_delay = 3000, -- 3 sec delay to avoid blocking startup - }) + } end, }, @@ -48,9 +48,9 @@ return { { "neovim/nvim-lspconfig", dependencies = { - "mason-org/mason.nvim", - "creativenull/efmls-configs-nvim", - "hrsh7th/cmp-nvim-lsp", + "mason-org/mason.nvim", -- LSP/DAP/Linter installer & manager + "creativenull/efmls-configs-nvim", -- Preconfigured EFM Language Server setups + "hrsh7th/cmp-nvim-lsp", -- nvim-cmp source for LSP-based completion }, config = function() require("utils.diagnostics").setup() @@ -74,6 +74,9 @@ return { definition_action_keys = { edit = "", }, + symbol_in_winbar = { + enable = false, + }, } end, }, diff --git a/.config/nvim/lua/plugins/mini.lua b/config/nvim/lua/plugins/mini.lua similarity index 69% rename from .config/nvim/lua/plugins/mini.lua rename to config/nvim/lua/plugins/mini.lua index df94241e..8b1a3025 100644 --- a/.config/nvim/lua/plugins/mini.lua +++ b/config/nvim/lua/plugins/mini.lua @@ -1,11 +1,6 @@ return { - -- Text objects { "echasnovski/mini.ai", version = "*", opts = {} }, - - -- icons provider { "echasnovski/mini.icons", opts = {} }, - - -- auto pairs for brackets/quotes { "echasnovski/mini.pairs", opts = {} }, -- minimal notification UI @@ -38,16 +33,4 @@ return { n_lines = 30, }, }, - - -- better file explorer than oil (facts 🙂) - { - "echasnovski/mini.files", - version = false, - config = function() - require("mini.files").setup() - vim.keymap.set("n", "sf", function() - require("mini.files").open(vim.api.nvim_buf_get_name(0)) - end, { desc = "Open mini.files" }) - end, - }, } diff --git a/config/nvim/lua/plugins/navigation.lua b/config/nvim/lua/plugins/navigation.lua new file mode 100644 index 00000000..77a15c83 --- /dev/null +++ b/config/nvim/lua/plugins/navigation.lua @@ -0,0 +1,36 @@ +return { + -- Tmux integration + { + "christoomey/vim-tmux-navigator", + cmd = { + "TmuxNavigateLeft", + "TmuxNavigateDown", + "TmuxNavigateUp", + "TmuxNavigateRight", + "TmuxNavigatePrevious", + "TmuxNavigatorProcessList", + }, + keys = { + { "", "TmuxNavigateLeft" }, + { "", "TmuxNavigateDown" }, + { "", "TmuxNavigateUp" }, + { "", "TmuxNavigateRight" }, + { "", "TmuxNavigatePrevious" }, + }, + + -- fast navigation (better f) + { + "folke/flash.nvim", + event = "VeryLazy", + ---@type Flash.Config + opts = {}, + keys = { + { "zn", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" }, + { "zN", mode = { "n", "x", "o" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" }, + { "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" }, + { "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" }, + { "", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" }, + }, + }, + }, +} diff --git a/.config/nvim/lua/plugins/nvim-tree.lua b/config/nvim/lua/plugins/nvim-tree.lua similarity index 100% rename from .config/nvim/lua/plugins/nvim-tree.lua rename to config/nvim/lua/plugins/nvim-tree.lua diff --git a/.config/nvim/lua/plugins/preview.lua b/config/nvim/lua/plugins/preview.lua similarity index 70% rename from .config/nvim/lua/plugins/preview.lua rename to config/nvim/lua/plugins/preview.lua index 8399dbb7..a3b7f4a9 100644 --- a/.config/nvim/lua/plugins/preview.lua +++ b/config/nvim/lua/plugins/preview.lua @@ -17,26 +17,14 @@ return { require("peek").setup { close_on_bdelete = true, theme = "dark", - app = "chromium", -- Or 'browser' for your default + app = "brave", -- Or 'browser' for your default } vim.api.nvim_create_user_command("PeekOpen", require("peek").open, {}) vim.api.nvim_create_user_command("PeekClose", require("peek").close, {}) end, keys = { - { - "pm", - function() - require("peek").open() - end, - desc = "Markdown Preview Open", - }, - { - "pc", - function() - require("peek").close() - end, - desc = "Markdown Preview Close", - }, + { "pm", function() require("peek").open() end, desc = "Markdown Preview Open" }, + { "pc", function() require("peek").close() end, desc = "Markdown Preview Close" }, }, }, diff --git a/.config/nvim/lua/plugins/treesitter.lua b/config/nvim/lua/plugins/treesitter.lua similarity index 82% rename from .config/nvim/lua/plugins/treesitter.lua rename to config/nvim/lua/plugins/treesitter.lua index 1a6d77f8..c299b55d 100644 --- a/.config/nvim/lua/plugins/treesitter.lua +++ b/config/nvim/lua/plugins/treesitter.lua @@ -33,12 +33,6 @@ return { indent = { enable = true }, incremental_selection = { enable = true, - -- keymaps = { - -- init_selection = "", - -- node_incremental = "", - -- scope_incremental = "", - -- node_decremental = "", - -- }, }, } end, diff --git a/config/nvim/lua/plugins/trouble.lua b/config/nvim/lua/plugins/trouble.lua new file mode 100644 index 00000000..c0083cc6 --- /dev/null +++ b/config/nvim/lua/plugins/trouble.lua @@ -0,0 +1,15 @@ +-- Diagnostics viewer +return { + "folke/trouble.nvim", + opts = {}, -- for default options, refer to the configuration section for custom setup. + cmd = "Trouble", + lazy = true, + keys = { + {"xx", "Trouble diagnostics toggle", desc = "Workspace Diagnostics (Trouble)"}, + {"xX", "Trouble diagnostics toggle filter.buf=0", desc = "Buffer Diagnostics (Trouble)"}, + {"cs", "Trouble symbols toggle focus=false", desc = "Symbols (Trouble)"}, + {"cl", "Trouble lsp toggle focus=false win.position=right", desc = "LSP Definitions / references / ... (Trouble)"}, + {"xL", "Trouble loclist toggle", desc = "Location List (Trouble)"}, + {"xQ", "Trouble qflist toggle", desc = "Quickfix List (Trouble)"}, + }, +} diff --git a/.config/nvim/lua/plugins/ui.lua b/config/nvim/lua/plugins/ui.lua similarity index 63% rename from .config/nvim/lua/plugins/ui.lua rename to config/nvim/lua/plugins/ui.lua index 086f6d05..43f1c132 100644 --- a/.config/nvim/lua/plugins/ui.lua +++ b/config/nvim/lua/plugins/ui.lua @@ -1,22 +1,5 @@ -- UI enhancements return { - -- Color highlighter - { - "norcalli/nvim-colorizer.lua", - config = function() - require("colorizer").setup({ "*" }, { - RGB = true, -- #RGB hex codes - RRGGBB = true, -- #RRGGBB hex codes - names = true, -- "Name" codes like Blue - RRGGBBAA = true, -- #RRGGBBAA hex codes - rgb_fn = true, -- CSS rgb() and rgba() functions - hsl_fn = true, -- CSS hsl() and hsla() functions - css = true, -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB - css_fn = true, -- Enable all CSS *functions*: rgb_fn, hsl_fn - }) - end, - }, - -- focus mode (hide everything except the the file) { "folke/zen-mode.nvim", @@ -34,18 +17,6 @@ return { keys = { { "z", "ZenMode", desc = "Zen Mode" } }, }, - -- code snippets images - { - "mistricky/codesnap.nvim", - build = "make", - config = function() - require("codesnap").setup { - watermark = "", - save_path = "~/Pictures/CodeSnaps", -- Set a save directory - } - end, - }, - -- indent line { "lukas-reineke/indent-blankline.nvim", @@ -67,40 +38,12 @@ return { "packer", "neogitstatus", "NvimTree", - { - "j-hui/fidget.nvim", - opts = { - notification = { - window = { - winblend = 0, - normal_hl = "FloatBorder", - override_vim_notify = false, -- let mini.notify handle vim.notify - }, - }, - }, - }, "Trouble", }, }, }, }, - -- Show key presses on screen - { - "NStefan002/screenkey.nvim", - cmd = "Screenkey", - version = "*", - config = function() - require("screenkey").setup { - win_opts = { - width = 18, - height = 1, - title = "", - }, - } - end, - }, - -- status bar { "nvim-lualine/lualine.nvim", @@ -173,4 +116,21 @@ return { vim.keymap.set("n", "u", vim.cmd.UndotreeToggle) end, }, + + -- Incremental rename + { + "smjonas/inc-rename.nvim", + cmd = "IncRename", + config = true, + }, + + -- split and join + { + "Wansmer/treesj", + keys = { "m" }, + dependencies = { "nvim-treesitter/nvim-treesitter" }, + config = function() + require("treesj").setup { max_join_length = 200 } + end, + }, } diff --git a/config/nvim/lua/plugins/yazi.lua b/config/nvim/lua/plugins/yazi.lua new file mode 100644 index 00000000..425b41fc --- /dev/null +++ b/config/nvim/lua/plugins/yazi.lua @@ -0,0 +1,15 @@ +-- Yazi file manager +return { + "mikavilpas/yazi.nvim", + event = "VeryLazy", + keys = { + { "sf", "Yazi", desc = "Open Yazi at current file" }, + { "cw", "Yazi cwd", desc = "Open the file manager in nvim's working directory" }, + { "", "Yazi toggle", desc = "Resume the last yazi session" }, + }, + opts = { + open_for_directories = false, + keymaps = { show_help = "" }, + yazi_floating_window_border = "none", + }, +} diff --git a/.config/nvim/lua/servers/bashls.lua b/config/nvim/lua/servers/bashls.lua similarity index 100% rename from .config/nvim/lua/servers/bashls.lua rename to config/nvim/lua/servers/bashls.lua diff --git a/config/nvim/lua/servers/dartls.lua b/config/nvim/lua/servers/dartls.lua new file mode 100644 index 00000000..d2c7a69a --- /dev/null +++ b/config/nvim/lua/servers/dartls.lua @@ -0,0 +1,41 @@ +-- ================================================================================================ +-- TITLE : dartls +-- ABOUT : Dart language server (ships with Dart SDK, used for Flutter development) +-- LINKS : +-- > dart lsp : https://github.com/dart-lang/sdk/tree/main/pkg/analysis_server +-- > flutter : https://flutter.dev +-- ================================================================================================ + +--- @param capabilities table LSP client capabilities (from nvim-cmp) +--- @return nil +return function(capabilities) + local dartExcludedFolders = { + vim.fn.expand "$HOME/.pub-cache", + vim.fn.expand "$HOME/dev-tools/flutter/", + } + + vim.lsp.config("dartls", { + capabilities = capabilities, + cmd = { + "dart", + "language-server", + "--protocol=lsp", + }, + filetypes = { "dart" }, + init_options = { + onlyAnalyzeProjectsWithOpenFiles = false, + suggestFromUnimportedLibraries = true, + closingLabels = true, + outline = false, + flutterOutline = false, + }, + settings = { + dart = { + analysisExcludedFolders = dartExcludedFolders, + updateImportsOnRename = true, + completeFunctionCalls = true, + showTodos = true, + }, + }, + }) +end diff --git a/.config/nvim/lua/servers/dockerls.lua b/config/nvim/lua/servers/dockerls.lua similarity index 100% rename from .config/nvim/lua/servers/dockerls.lua rename to config/nvim/lua/servers/dockerls.lua diff --git a/.config/nvim/lua/servers/efm-langserver.lua b/config/nvim/lua/servers/efm-langserver.lua similarity index 94% rename from .config/nvim/lua/servers/efm-langserver.lua rename to config/nvim/lua/servers/efm-langserver.lua index 068fbbf9..ec72a2b5 100644 --- a/.config/nvim/lua/servers/efm-langserver.lua +++ b/config/nvim/lua/servers/efm-langserver.lua @@ -20,7 +20,7 @@ return function(capabilities) local fixjson = require "efmls-configs.formatters.fixjson" -- json formatter local shellcheck = require "efmls-configs.linters.shellcheck" -- bash linter local shfmt = require "efmls-configs.formatters.shfmt" -- bash formatter - -- local hadolint = require "efmls-configs.linters.hadolint" -- docker linter + local hadolint = require "efmls-configs.linters.hadolint" -- docker linter vim.lsp.config("efm", { capabilities = capabilities, @@ -37,7 +37,6 @@ return function(capabilities) "markdown", "python", "sh", - -- "solidity", "svelte", "typescript", "typescriptreact", @@ -54,7 +53,7 @@ return function(capabilities) settings = { languages = { css = { prettier_d }, - -- docker = { hadolint, prettier_d }, + docker = { hadolint, prettier_d }, go = { gofumpt, go_revive }, html = { prettier_d }, javascript = { eslint_d, prettier_d }, diff --git a/.config/nvim/lua/servers/emmet_ls.lua b/config/nvim/lua/servers/emmet_ls.lua similarity index 98% rename from .config/nvim/lua/servers/emmet_ls.lua rename to config/nvim/lua/servers/emmet_ls.lua index 56eab983..7d1d141f 100644 --- a/.config/nvim/lua/servers/emmet_ls.lua +++ b/config/nvim/lua/servers/emmet_ls.lua @@ -11,6 +11,7 @@ return function(capabilities) vim.lsp.config('emmet_ls', { capabilities = capabilities, filetypes = { + "html", "typescript", "javascript", "javascriptreact", diff --git a/.config/nvim/lua/servers/gopls.lua b/config/nvim/lua/servers/gopls.lua similarity index 100% rename from .config/nvim/lua/servers/gopls.lua rename to config/nvim/lua/servers/gopls.lua diff --git a/.config/nvim/lua/servers/init.lua b/config/nvim/lua/servers/init.lua similarity index 93% rename from .config/nvim/lua/servers/init.lua rename to config/nvim/lua/servers/init.lua index b4b6132f..171c50c1 100644 --- a/.config/nvim/lua/servers/init.lua +++ b/config/nvim/lua/servers/init.lua @@ -11,6 +11,7 @@ require("servers.dockerls")(capabilities) require("servers.emmet_ls")(capabilities) require("servers.yamlls")(capabilities) require("servers.tailwindcss")(capabilities) +require("servers.dartls")(capabilities) -- Linters & Formatters require("servers.efm-langserver")(capabilities) @@ -26,5 +27,6 @@ vim.lsp.enable { "emmet_ls", "yamlls", "tailwindcss", + "dartls", "efm", } diff --git a/.config/nvim/lua/servers/jsonls.lua b/config/nvim/lua/servers/jsonls.lua similarity index 100% rename from .config/nvim/lua/servers/jsonls.lua rename to config/nvim/lua/servers/jsonls.lua diff --git a/.config/nvim/lua/servers/lua_ls.lua b/config/nvim/lua/servers/lua_ls.lua similarity index 100% rename from .config/nvim/lua/servers/lua_ls.lua rename to config/nvim/lua/servers/lua_ls.lua diff --git a/.config/nvim/lua/servers/pyright.lua b/config/nvim/lua/servers/pyright.lua similarity index 100% rename from .config/nvim/lua/servers/pyright.lua rename to config/nvim/lua/servers/pyright.lua diff --git a/.config/nvim/lua/servers/tailwindcss.lua b/config/nvim/lua/servers/tailwindcss.lua similarity index 100% rename from .config/nvim/lua/servers/tailwindcss.lua rename to config/nvim/lua/servers/tailwindcss.lua diff --git a/.config/nvim/lua/servers/ts_ls.lua b/config/nvim/lua/servers/ts_ls.lua similarity index 100% rename from .config/nvim/lua/servers/ts_ls.lua rename to config/nvim/lua/servers/ts_ls.lua diff --git a/.config/nvim/lua/servers/yamlls.lua b/config/nvim/lua/servers/yamlls.lua similarity index 100% rename from .config/nvim/lua/servers/yamlls.lua rename to config/nvim/lua/servers/yamlls.lua diff --git a/.config/nvim/lua/utils/diagnostics.lua b/config/nvim/lua/utils/diagnostics.lua similarity index 100% rename from .config/nvim/lua/utils/diagnostics.lua rename to config/nvim/lua/utils/diagnostics.lua diff --git a/.config/nvim/lua/utils/lsp.lua b/config/nvim/lua/utils/lsp.lua similarity index 80% rename from .config/nvim/lua/utils/lsp.lua rename to config/nvim/lua/utils/lsp.lua index 3ebd1061..324dbb26 100755 --- a/.config/nvim/lua/utils/lsp.lua +++ b/config/nvim/lua/utils/lsp.lua @@ -30,7 +30,7 @@ M.on_attach = function(event) keymap("n", "fr", "FzfLua lsp_references", opts) -- Show all references to the symbol under the cursor keymap("n", "ft", "FzfLua lsp_typedefs", opts) -- Jump to the type definition of the symbol under the cursor keymap("n", "fs", "FzfLua lsp_document_symbols", opts) -- List all symbols (functions, classes, etc.) in the current file - keymap("n", "fs", "FzfLua lsp_workspace_symbols", opts) -- Search for any symbol across the entire project/workspace + keymap("n", "fw", "FzfLua lsp_workspace_symbols", opts) -- Search for any symbol across the entire project/workspace keymap("n", "fi", "FzfLua lsp_implementations", opts) -- Go to implementation -- Order Imports (if supported by the client LSP) @@ -50,17 +50,6 @@ M.on_attach = function(event) end, 50) -- slight delay to allow for the import order to go first end, opts) end - - -- -- === DAP keymaps === - -- if client.name == "rust-analyzer" then -- debugging only configured for Rust - -- local dap = require("dap") - -- keymap("n", "dc", dap.continue, opts) -- Continue / Start - -- keymap("n", "do", dap.step_over, opts) -- Step over - -- keymap("n", "di", dap.step_into, opts) -- Step into - -- keymap("n", "du", dap.step_out, opts) -- Step out - -- keymap("n", "db", dap.toggle_breakpoint, opts) -- Toggle breakpoint - -- keymap("n", "dr", dap.repl.open, opts) -- Open DAP REPL - -- end end return M diff --git a/.config/nvim/stylua.toml b/config/nvim/stylua.toml similarity index 100% rename from .config/nvim/stylua.toml rename to config/nvim/stylua.toml diff --git a/.config/rmpc/README.md b/config/rmpc/README.md similarity index 74% rename from .config/rmpc/README.md rename to config/rmpc/README.md index bf93bf11..ed6572fe 100644 --- a/.config/rmpc/README.md +++ b/config/rmpc/README.md @@ -5,7 +5,7 @@ ## Prerequisites - **MPD**: Must be pre-installed and configured -- Check configuration at [`~/dotfiles/.config/mpd`](../mpd/) +- Check configuration at [`~/symphony/.config/mpd`](../mpd/) ## Installation @@ -14,7 +14,7 @@ sudo pacman -S rmpc ``` ```bash -cp -r ~/dotfiles/.config/rmpc ~/.config/ +cp -r ~/symphony/.config/rmpc ~/.config/ ``` ![RMPC](../../images/rmpc.png) diff --git a/.config/rmpc/config.ron b/config/rmpc/config.ron similarity index 100% rename from .config/rmpc/config.ron rename to config/rmpc/config.ron diff --git a/.config/rmpc/fetch-lyrics b/config/rmpc/fetch-lyrics similarity index 100% rename from .config/rmpc/fetch-lyrics rename to config/rmpc/fetch-lyrics diff --git a/.config/rmpc/themes/catppuccin_mocha.ron b/config/rmpc/themes/catppuccin_mocha.ron similarity index 100% rename from .config/rmpc/themes/catppuccin_mocha.ron rename to config/rmpc/themes/catppuccin_mocha.ron diff --git a/.config/rmpc/themes/doublek_CT.ron b/config/rmpc/themes/doublek_CT.ron similarity index 100% rename from .config/rmpc/themes/doublek_CT.ron rename to config/rmpc/themes/doublek_CT.ron diff --git a/.config/rofi/config.rasi b/config/rofi/config.rasi similarity index 100% rename from .config/rofi/config.rasi rename to config/rofi/config.rasi diff --git a/.config/rofi/custom-rofi/config-clipboard.rasi b/config/rofi/custom-rofi/config-clipboard.rasi similarity index 100% rename from .config/rofi/custom-rofi/config-clipboard.rasi rename to config/rofi/custom-rofi/config-clipboard.rasi diff --git a/.config/rofi/custom-rofi/config-emoji.rasi b/config/rofi/custom-rofi/config-emoji.rasi similarity index 100% rename from .config/rofi/custom-rofi/config-emoji.rasi rename to config/rofi/custom-rofi/config-emoji.rasi diff --git a/.config/rofi/custom-rofi/config-keybinds.rasi b/config/rofi/custom-rofi/config-keybinds.rasi similarity index 100% rename from .config/rofi/custom-rofi/config-keybinds.rasi rename to config/rofi/custom-rofi/config-keybinds.rasi diff --git a/.config/rofi/custom-rofi/config-power-profiles.rasi b/config/rofi/custom-rofi/config-power-profiles.rasi similarity index 100% rename from .config/rofi/custom-rofi/config-power-profiles.rasi rename to config/rofi/custom-rofi/config-power-profiles.rasi diff --git a/.config/rofi/custom-rofi/config-powermenu.rasi b/config/rofi/custom-rofi/config-powermenu.rasi similarity index 100% rename from .config/rofi/custom-rofi/config-powermenu.rasi rename to config/rofi/custom-rofi/config-powermenu.rasi diff --git a/.config/rofi/custom-rofi/config-rofi-Beats-menu.rasi b/config/rofi/custom-rofi/config-rofi-Beats-menu.rasi similarity index 100% rename from .config/rofi/custom-rofi/config-rofi-Beats-menu.rasi rename to config/rofi/custom-rofi/config-rofi-Beats-menu.rasi diff --git a/.config/rofi/custom-rofi/config-rofi-Beats.rasi b/config/rofi/custom-rofi/config-rofi-Beats.rasi similarity index 100% rename from .config/rofi/custom-rofi/config-rofi-Beats.rasi rename to config/rofi/custom-rofi/config-rofi-Beats.rasi diff --git a/.config/rofi/custom-rofi/config-search.rasi b/config/rofi/custom-rofi/config-search.rasi similarity index 100% rename from .config/rofi/custom-rofi/config-search.rasi rename to config/rofi/custom-rofi/config-search.rasi diff --git a/.config/rofi/custom-rofi/config-theme-picker.rasi b/config/rofi/custom-rofi/config-theme-picker.rasi similarity index 100% rename from .config/rofi/custom-rofi/config-theme-picker.rasi rename to config/rofi/custom-rofi/config-theme-picker.rasi diff --git a/.config/rofi/custom-rofi/config-wallpaper.rasi b/config/rofi/custom-rofi/config-wallpaper.rasi similarity index 100% rename from .config/rofi/custom-rofi/config-wallpaper.rasi rename to config/rofi/custom-rofi/config-wallpaper.rasi diff --git a/.config/rofi/music.png b/config/rofi/music.png similarity index 100% rename from .config/rofi/music.png rename to config/rofi/music.png diff --git a/.config/swaync/config.json b/config/swaync/config.json similarity index 100% rename from .config/swaync/config.json rename to config/swaync/config.json diff --git a/.config/swaync/style.css b/config/swaync/style.css similarity index 100% rename from .config/swaync/style.css rename to config/swaync/style.css diff --git a/.config/swayosd/config.toml b/config/swayosd/config.toml similarity index 100% rename from .config/swayosd/config.toml rename to config/swayosd/config.toml diff --git a/.config/swayosd/style.css b/config/swayosd/style.css similarity index 100% rename from .config/swayosd/style.css rename to config/swayosd/style.css diff --git a/config/tmux/tmux.conf b/config/tmux/tmux.conf new file mode 100644 index 00000000..2220e2c7 --- /dev/null +++ b/config/tmux/tmux.conf @@ -0,0 +1,104 @@ +set -g default-terminal "tmux-256color" +set -ag terminal-overrides ",xterm-256color:RGB" + +#### PREFIX KEY #### +unbind C-b +set -g prefix C-s #Suggestion: Remap CAPSLOCK to CTRL + +#### RELOAD tmux.conf #### +unbind r +bind R source-file ~/.tmux.conf \; display "Reloaded!" + + +#### KEY BINDINGS #### +setw -g mode-keys vi + +set -g base-index 1 # start indexing windows at 1 instead of 0 +set -g detach-on-destroy off # don't exit from tmux when closing a session +set -g escape-time 0 # zero-out escape time delay +set -g history-limit 1000000 # increase history size (from 2,000) +set -g mouse on # enable mouse support +set -g focus-events on # enable focus events +set -g renumber-windows on # renumber all windows when any window is closed +set -g set-clipboard on # use system clipboard +set -g status-interval 3 # update the status bar every 3 seconds +bind-key x kill-pane # skip "kill-pane 1? (y/n)" prompt + +#### Pane resizing #### +bind -r S-Left resize-pane -L 5 +bind -r S-Down resize-pane -D 5 +bind -r S-Up resize-pane -U 5 +bind -r S-Right resize-pane -R 5 +bind -r m resize-pane -Z + +#### Navigation #### +bind-key -n C-h select-pane -L +bind-key -n C-j select-pane -D +bind-key -n C-k select-pane -U +bind-key -n C-l select-pane -R + +##### Splits #### +unbind '"' +unbind % +bind v split-window -h -c "#{pane_current_path}" +bind S split-window -v -c "#{pane_current_path}" + +# New windows in same directory +bind c new-window -c "#{pane_current_path}" + +#### status bar #### +set-option -g status-position top +bind u set -g status + +##### Display Popups ##### +bind f display-popup -w 80% -h 80% -E 'rmpc' + +bind -r g display-popup -d '#{pane_current_path}' -w80% -h80% -E lazygit + +##### scripts ##### +bind C-l display-popup -w 40% -h 20% -E "~/Scripts/clone" +bind C-k run-shell 'tmux neww ~/Scripts/sessionX' +bind C-c run-shell "~/Scripts/sessionX ~/workspace/.config/" +bind C-p run-shell '~/Scripts/sessionX ~/Projects/' +bind C-g run-shell "~/Scripts/open_github" +bind C-j run-shell "~/Scripts/ide" + +##### Display Menu ##### +bind l display-menu -T "#[align=centre]Dotfiles" -x C -y C \ + "sessionX" x "display-popup -E -w 80% -h 80% 'nvim ~/Scripts/sessionX'" \ + "aliases.fish" f "display-popup -E -w 80% -h 80% 'nvim ~/.config/fish/aliases.fish'" \ + "tmux.conf" t "display-popup -E -w 80% -h 80% 'nvim ~/.config/tmux/tmux.conf'" \ + "bindings.conf" b "display-popup -E -w 80% -h 80% 'nvim ~/.config/hypr/bindings.conf'" \ + "keymaps.lua" k "display-popup -E -w 80% -h 80% 'nvim ~/.config/nvim/lua/config/keymaps.lua'" \ + "Exit" q "" + +#### Plugins #### +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' +set -g @plugin 'christoomey/vim-tmux-navigator' + +#### statusline #### +set -g mode-style "fg=black,bg=cyan" +set -g message-style "fg=#fafafa,bg=#18181b" +set -g message-command-style "fg=#fafafa,bg=#18181b" +set -g pane-border-style "fg=#27272a" +set -g pane-active-border-style "fg=cyan" +set -g status "on" +set -g status-interval 1 +set -g status-justify "centre" +set -g status-style "fg=#fafafa,bg=#09090b" +set -g status-bg "#09090b" +set -g status-left-length "100" +set -g status-right-length "100" +set -g status-left-style NONE +set -g status-right-style NONE +set -g status-left "#[fg=#fafafa,bg=#09090b,bold]#S#[fg=#52525b]:#[fg=#71717a]#(tmux list-sessions | wc -l) " +set -g status-right "#[fg=#52525b]%H:%M" +setw -g window-status-activity-style "underscore,fg=cyan,bg=#09090b" +setw -g window-status-separator " " +setw -g window-status-style "NONE,fg=#52525b,bg=#09090b" +setw -g window-status-format '#[fg=#71717a]#I#[fg=#52525b]:#W' +setw -g window-status-current-format '#[fg=cyan,bold]#I#[fg=cyan,bold]:#W' + +# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) +run '~/.tmux/plugins/tpm/tpm' diff --git a/.config/uwsm/env b/config/uwsm/env similarity index 100% rename from .config/uwsm/env rename to config/uwsm/env diff --git a/.config/uwsm/env-hyprland b/config/uwsm/env-hyprland similarity index 100% rename from .config/uwsm/env-hyprland rename to config/uwsm/env-hyprland diff --git a/.config/waybar/config.jsonc b/config/waybar/config.jsonc similarity index 88% rename from .config/waybar/config.jsonc rename to config/waybar/config.jsonc index 66335614..5a0695b3 100644 --- a/.config/waybar/config.jsonc +++ b/config/waybar/config.jsonc @@ -41,19 +41,19 @@ }, "custom/logo": { "format": "󰎈", - "on-click": "kitty --title symphony-tui -e ~/dotfiles/install/themes/symphony-tui", - "on-click-right": "~/.config/rofi/scripts/rofibeats", + "on-click": "kitty --title symphony-tui -e ~/symphony/install/themes/symphony-tui", + "on-click-right": "~/.local/bin/rofibeats", "tooltip": false }, "custom/screenrecording-indicator": { - "on-click": "~/.config/hypr/scripts/screenrecord", - "exec": "~/.config/waybar/scripts/indicator-record", + "on-click": "~/.local/bin/screenrecord", + "exec": "~/.local/bin/indicator-record", "signal": 8, "return-type": "json" }, "custom/idle-indicator": { - "on-click": "~/.config/hypr/scripts/toggle-idle", - "exec": "~/.config/waybar/scripts/indicator-idle", + "on-click": "~/.local/bin/toggle-idle", + "exec": "~/.local/bin/indicator-idle", "signal": 9, "return-type": "json" }, @@ -85,8 +85,8 @@ "󰃠" ], "scroll-step": 10, - "on-click": "~/.config/waybar/scripts/wall-picker", - "on-click-right": "~/.config/waybar/scripts/random-wall" + "on-click": "~/.local/bin/wall-picker", + "on-click-right": "~/.local/bin/random-wall" }, "disk": { "interval": 30, @@ -110,7 +110,7 @@ "tooltip": false }, "network": { - "interface": "wlan*", + "interface": "wl*", "format-icons": [ "󰤯", "󰤟", @@ -133,7 +133,7 @@ "format-discharging": "{icon} {capacity}%", "format-charging": "{icon}", "format-plugged": "", - "on-click": "~/.config/rofi/scripts/power-profiles", + "on-click": "~/.local/bin/power-profiles", "format-icons": { "charging": [ "󰢜", diff --git a/.config/waybar/style.css b/config/waybar/style.css similarity index 100% rename from .config/waybar/style.css rename to config/waybar/style.css diff --git a/.config/wireplumber/wireplumber.conf.d/51-audio-priority.conf b/config/wireplumber/wireplumber.conf.d/51-audio-priority.conf similarity index 100% rename from .config/wireplumber/wireplumber.conf.d/51-audio-priority.conf rename to config/wireplumber/wireplumber.conf.d/51-audio-priority.conf diff --git a/.config/yazi/yazi.toml b/config/yazi/yazi.toml similarity index 100% rename from .config/yazi/yazi.toml rename to config/yazi/yazi.toml diff --git a/default/themed/alacritty.toml.tpl b/default/themed/alacritty.toml.tpl new file mode 100644 index 00000000..e2cd00b5 --- /dev/null +++ b/default/themed/alacritty.toml.tpl @@ -0,0 +1,31 @@ +[colors.primary] +background = "{{ background }}" +foreground = "{{ foreground }}" + +[colors.cursor] +text = "{{ background }}" +cursor = "{{ cursor }}" + +[colors.selection] +text = "{{ selection_foreground }}" +background = "{{ selection_background }}" + +[colors.normal] +black = "{{ color0 }}" +red = "{{ color1 }}" +green = "{{ color2 }}" +yellow = "{{ color3 }}" +blue = "{{ color4 }}" +magenta = "{{ color5 }}" +cyan = "{{ color6 }}" +white = "{{ color7 }}" + +[colors.bright] +black = "{{ color8 }}" +red = "{{ color9 }}" +green = "{{ color10 }}" +yellow = "{{ color11 }}" +blue = "{{ color12 }}" +magenta = "{{ color13 }}" +cyan = "{{ color14 }}" +white = "{{ color15 }}" diff --git a/default/themed/cava.conf.tpl b/default/themed/cava.conf.tpl new file mode 100644 index 00000000..121c9ddf --- /dev/null +++ b/default/themed/cava.conf.tpl @@ -0,0 +1,11 @@ +[color] +background = 'default' +gradient = 1 +gradient_count = 7 +gradient_color_1 = '{{ color8 }}' +gradient_color_2 = '{{ color2 }}' +gradient_color_3 = '{{ color10 }}' +gradient_color_4 = '{{ color3 }}' +gradient_color_5 = '{{ color11 }}' +gradient_color_6 = '{{ color6 }}' +gradient_color_7 = '{{ color14 }}' diff --git a/default/themed/ghostty.conf.tpl b/default/themed/ghostty.conf.tpl new file mode 100644 index 00000000..bafc6498 --- /dev/null +++ b/default/themed/ghostty.conf.tpl @@ -0,0 +1,22 @@ +background = {{ background }} +foreground = {{ foreground }} +cursor-color = {{ cursor }} +selection-background = {{ selection_background }} +selection-foreground = {{ selection_foreground }} + +palette = 0={{ color0 }} +palette = 1={{ color1 }} +palette = 2={{ color2 }} +palette = 3={{ color3 }} +palette = 4={{ color4 }} +palette = 5={{ color5 }} +palette = 6={{ color6 }} +palette = 7={{ color7 }} +palette = 8={{ color8 }} +palette = 9={{ color9 }} +palette = 10={{ color10 }} +palette = 11={{ color11 }} +palette = 12={{ color12 }} +palette = 13={{ color13 }} +palette = 14={{ color14 }} +palette = 15={{ color15 }} diff --git a/default/themed/hyprland.conf.tpl b/default/themed/hyprland.conf.tpl new file mode 100644 index 00000000..e4dbf3c3 --- /dev/null +++ b/default/themed/hyprland.conf.tpl @@ -0,0 +1,9 @@ +$activeBorderColor = rgb({{ accent_strip }}) + +general { + col.active_border = $activeBorderColor +} + +group { + col.border_active = $activeBorderColor +} diff --git a/default/themed/kitty.conf.tpl b/default/themed/kitty.conf.tpl new file mode 100644 index 00000000..3811e3e3 --- /dev/null +++ b/default/themed/kitty.conf.tpl @@ -0,0 +1,40 @@ +## Symphony +## Generated from template + +background {{ background }} +foreground {{ foreground }} +selection_background {{ selection_background }} +selection_foreground {{ selection_foreground }} +url_color {{ accent }} +cursor {{ cursor }} +cursor_text_color {{ background }} + +# Tabs +active_tab_background {{ accent }} +active_tab_foreground {{ background }} +inactive_tab_background {{ surface }} +inactive_tab_foreground {{ muted }} + +# Windows +active_border_color {{ accent }} +inactive_border_color {{ surface }} + +# normal +color0 {{ color0 }} +color1 {{ color1 }} +color2 {{ color2 }} +color3 {{ color3 }} +color4 {{ color4 }} +color5 {{ color5 }} +color6 {{ color6 }} +color7 {{ color7 }} + +# bright +color8 {{ color8 }} +color9 {{ color9 }} +color10 {{ color10 }} +color11 {{ color11 }} +color12 {{ color12 }} +color13 {{ color13 }} +color14 {{ color14 }} +color15 {{ color15 }} diff --git a/default/themed/rmpc.theme.ron.tpl b/default/themed/rmpc.theme.ron.tpl new file mode 100644 index 00000000..7eebc3b1 --- /dev/null +++ b/default/themed/rmpc.theme.ron.tpl @@ -0,0 +1,153 @@ +#![enable(implicit_some)] +#![enable(unwrap_newtypes)] +#![enable(unwrap_variant_newtypes)] +( + default_album_art_path: None, + show_song_table_header: false, + draw_borders: true, + browser_column_widths: [20, 38, 42], + text_color: "{{ text }}", + tab_bar: ( + enabled: true, + active_style: (fg: "{{ text }}", bg: "{{ background }}", modifiers: "Bold"), + inactive_style: (fg: "{{ muted }}", modifiers: ""), + ), + // Currently playing song + highlighted_item_style: (fg: "{{ accent }}", modifiers: "Bold"), + // Navigation selection + current_item_style: (fg: "{{ background }}", bg: "{{ accent }}", modifiers: "Bold"), + borders_style: (fg: "{{ overlay }}", modifiers: ""), + highlight_border_style: (fg: "{{ subtle }}"), + symbols: (song: "󰝚 ", dir: " ", marker: "* ", ellipsis: "..."), + progress_bar: ( + symbols: ["█", "█", "█"], + track_style: (fg: "{{ overlay }}"), + elapsed_style: (fg: "{{ accent }}"), + thumb_style: (fg: "{{ accent }}"), + ), + scrollbar: ( + symbols: ["", "", "", ""], + track_style: (fg: "{{ overlay }}"), + ends_style: (fg: "{{ overlay }}"), + thumb_style: (fg: "{{ subtle }}"), + ), + song_table_format: [ + ( + prop: (kind: Property(Title), style: (fg: "{{ text }}"), + highlighted_item_style: (fg: "{{ background }}", modifiers: "Bold"), + default: (kind: Property(Filename), style: (fg: "{{ muted }}"),) + ), + width: "70%", + ), + ( + prop: (kind: Property(Album), style: (fg: "{{ subtle }}"), + default: (kind: Text("Unknown Album"), style: (fg: "{{ muted }}")) + ), + width: "30%", + ), + ], + layout: Split( + direction: Vertical, + panes: [ + ( + size: "3", + pane: Pane(Tabs), + ), + ( + size: "4", + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "100%", + pane: Split( + direction: Vertical, + panes: [ + ( + size: "4", + borders: "ALL", + pane: Pane(Header), + ), + ] + ) + ), + ] + ), + ), + ( + size: "100%", + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "100%", + borders: "NONE", + pane: Pane(TabContent), + ), + ] + ), + ), + ( + size: "3", + borders: "TOP | BOTTOM", + pane: Pane(ProgressBar), + ), + ], + ), + header: ( + rows: [ + ( + left: [ + (kind: Property(Status(StateV2(playing_label: " ", paused_label: "❚❚", stopped_label: "❚❚"))), style: (fg: "{{ accent }}", modifiers: "Bold")), + ], + center: [ + (kind: Property(Song(Title)), style: (fg: "{{ text }}", modifiers: "Bold"), + default: (kind: Property(Song(Filename)), style: (fg: "{{ text }}", modifiers: "Bold")) + ) + ], + right: [ + (kind: Text("Vol: "), style: (fg: "{{ subtle }}", modifiers: "Bold")), + (kind: Property(Status(Volume)), style: (fg: "{{ subtle }}", modifiers: "Bold")), + (kind: Text("% "), style: (fg: "{{ subtle }}", modifiers: "Bold")) + ] + ), + ( + left: [ + (kind: Property(Status(Elapsed)), style: (fg: "{{ subtle }}")), + (kind: Text("/"), style: (fg: "{{ muted }}")), + (kind: Property(Status(Duration)), style: (fg: "{{ subtle }}")), + ], + center: [ + (kind: Property(Song(Artist)), style: (fg: "{{ accent }}", modifiers: "Bold"), + default: (kind: Text("Unknown Artist"), style: (fg: "{{ muted }}", modifiers: "")) + ), + ], + right: [ + ( + kind: Property(Widget(States( + active_style: (fg: "{{ accent }}", modifiers: "Bold"), + separator_style: (fg: "{{ muted }}")) + )), + style: (fg: "{{ muted }}") + ), + ] + ), + ], + ), + browser_song_format: [ + ( + kind: Group([ + (kind: Property(Track)), + (kind: Text(" ")), + ]) + ), + ( + kind: Group([ + (kind: Property(Artist)), + (kind: Text(" - ")), + (kind: Property(Title)), + ]), + default: (kind: Property(Filename)) + ), + ], +) diff --git a/default/themed/vesktop.discord.css.tpl b/default/themed/vesktop.discord.css.tpl new file mode 100644 index 00000000..feb29c73 --- /dev/null +++ b/default/themed/vesktop.discord.css.tpl @@ -0,0 +1,90 @@ +/** + * Symphony — Generated from template + * Based on midnight by refact0r + * @name midnight + * @description A dark, rounded discord theme. + * @author refact0r + * @version 1.6.2 + * @invite nz87hXyvcy + * @website https://github.com/refact0r/midnight-discord + * @source https://github.com/refact0r/midnight-discord/blob/master/midnight.theme.css + * @authorId 508863359777505290 + * @authorLink https://www.refact0r.dev + */ + +/* IMPORTANT: make sure to enable dark mode in discord settings for the theme to apply properly!!! */ + +@import url('https://refact0r.github.io/midnight-discord/build/midnight.css'); + +/* customize things here */ +:root { + --font: 'figtree'; + --corner-text: 'Symphony'; + + /* status indicators */ + --online-indicator: {{ color10 }}; + --dnd-indicator: {{ color9 }}; + --idle-indicator: {{ warn }}; + --streaming-indicator: {{ color13 }}; + + /* accent colors */ + --accent-1: {{ accent }}; + --accent-2: {{ accent }}; + --accent-3: {{ accent }}; + --accent-4: {{ color4 }}; + --accent-5: {{ color12 }}; + --mention: {{ color4 }}; + --mention-hover: {{ color12 }}; + + /* text colors */ + --text-0: {{ background }}; + --text-1: {{ foreground }}; + --text-2: {{ foreground }}; + --text-3: {{ text }}; + --text-4: {{ subtle }}; + --text-5: {{ muted }}; + + /* background and dark colors */ + --bg-1: {{ surface }}; + --bg-2: {{ overlay }}; + --bg-3: {{ surface }}; + --bg-4: {{ background }}; + --hover: {{ overlay }}; + --active: {{ color8 }}; + --message-hover: {{ surface }}; + + --spacing: 12px; + + --list-item-transition: 0.2s ease; + --unread-bar-transition: 0.2s ease; + --moon-spin-transition: 0.4s ease; + --icon-spin-transition: 1s ease; + + --roundness-xl: 22px; + --roundness-l: 20px; + --roundness-m: 16px; + --roundness-s: 12px; + --roundness-xs: 10px; + --roundness-xxs: 8px; + + --discord-icon: none; + --moon-icon: block; + --moon-icon-url: url('https://upload.wikimedia.org/wikipedia/commons/c/c4/Font_Awesome_5_solid_moon.svg'); + --moon-icon-size: auto; + + --login-bg-filter: saturate(0.3) hue-rotate(-15deg) brightness(0.4); + --green-to-accent-3-filter: hue-rotate(56deg) saturate(1.43); + --blurple-to-accent-3-filter: hue-rotate(304deg) saturate(0.84) brightness(1.2); +} + +/* Selected chat/friend text */ +.selected_f5eb4b, +.selected_f6f816 .link_d8bfb3 { + color: var(--text-0) !important; + background: var(--accent-3) !important; +} + +.selected_f6f816 .link_d8bfb3 * { + color: var(--text-0) !important; + fill: var(--text-0) !important; +} diff --git a/default/themed/yazi.theme.toml.tpl b/default/themed/yazi.theme.toml.tpl new file mode 100644 index 00000000..dcfdb287 --- /dev/null +++ b/default/themed/yazi.theme.toml.tpl @@ -0,0 +1,176 @@ +# Symphony — Generated from template +# {{ accent }} + +# : Manager [[[ + +[mgr] +cwd = { fg = "{{ text }}" } + +# Find +find_keyword = { fg = "{{ color1 }}", bold = true, italic = true, underline = true } +find_position = { fg = "{{ color1 }}", bold = true, italic = true } + +# Marker +marker_copied = { fg = "{{ color2 }}", bg = "{{ color2 }}" } +marker_cut = { fg = "{{ color1 }}", bg = "{{ color1 }}" } +marker_marked = { fg = "{{ color3 }}", bg = "{{ color3 }}" } +marker_selected = { fg = "{{ accent }}", bg = "{{ accent }}" } + +# Count +count_copied = { fg = "{{ background }}", bg = "{{ color2 }}" } +count_cut = { fg = "{{ background }}", bg = "{{ color1 }}" } +count_selected = { fg = "{{ background }}", bg = "{{ accent }}" } + +# Border +border_symbol = " " +border_style = { fg = "{{ subtle }}" } + +# : ]]] + + +# : Tabs [[[ + +[tabs] +active = { fg = "{{ background }}", bg = "{{ accent }}", bold = true } +inactive = { fg = "{{ subtle }}", bg = "{{ surface }}" } +sep_inner = { open = "[", close = "]" } + +# : ]]] + + +# : Status [[[ + +[status] +sep_left = { open = "", close = "🭠" } +sep_right = { open = "🭁", close = "" } + +# Permissions +perm_type = { fg = "{{ subtle }}" } +perm_read = { fg = "{{ color2 }}" } +perm_write = { fg = "{{ warn }}" } +perm_exec = { fg = "{{ color1 }}" } +perm_sep = { fg = "{{ muted }}" } + +# Progress +progress_label = { bold = true } +progress_normal = { fg = "{{ accent }}", bg = "{{ surface }}" } +progress_error = { fg = "{{ color1 }}", bg = "{{ surface }}" } + +# : ]]] + + +# : Mode [[[ + +[mode] +# Mode +normal_main = { bg = "{{ accent }}", fg = "{{ background }}", bold = true } +normal_alt = { bg = "{{ overlay }}", fg = "{{ text }}" } + +# Select mode +select_main = { bg = "{{ warn }}", fg = "{{ background }}", bold = true } +select_alt = { bg = "{{ overlay }}", fg = "{{ text }}" } + +# Unset mode +unset_main = { bg = "{{ color2 }}", fg = "{{ background }}", bold = true } +unset_alt = { bg = "{{ overlay }}", fg = "{{ text }}" } + +# : ]]] + + +# : Select [[[ + +[select] +border = { fg = "{{ subtle }}" } +active = { fg = "{{ text }}", bold = true } + +# : ]]] + + +# : Input [[[ + +[input] +border = { fg = "{{ subtle }}" } +value = { fg = "{{ foreground }}" } + +# : ]]] + + +# : Completion [[[ + +[cmp] +border = { fg = "{{ subtle }}", bg = "{{ surface }}" } + +# : ]]] + + +# : Tasks [[[ + +[tasks] +border = { fg = "{{ subtle }}" } +title = {} +hovered = { fg = "{{ text }}", underline = true } + +# : ]]] + + +# : Which [[[ + +[which] +cols = 3 +mask = { bg = "{{ surface }}" } +cand = { fg = "{{ accent }}" } +rest = { fg = "{{ muted }}" } +desc = { fg = "{{ text }}" } +separator = " > " +separator_style = { fg = "{{ text }}" } + +# : ]]] + + +# : Help [[[ + +[help] +on = { fg = "{{ text }}" } +run = { fg = "{{ text }}" } +footer = { fg = "{{ background }}", bg = "{{ subtle }}" } + +# : ]]] + + +# : Notify [[[ + +[notify] +title_info = { fg = "{{ color2 }}" } +title_warn = { fg = "{{ warn }}" } +title_error = { fg = "{{ color1 }}" } + +# : ]]] + + +# : File-specific styles [[[ + +[filetype] + +rules = [ + # Images + { mime = "image/*", fg = "{{ color6 }}" }, + + # Media + { mime = "{audio,video}/*", fg = "{{ warn }}" }, + + # Archives + { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "{{ color5 }}" }, + + # Documents + { mime = "application/{pdf,doc,rtf}", fg = "{{ color2 }}" }, + + # Special files + { url = "*", is = "orphan", bg = "{{ color1 }}" }, + { url = "*", is = "exec", fg = "{{ text }}" }, + + # Fallback + { url = "*", fg = "{{ text }}" }, + { url = "*/", fg = "{{ accent }}" }, +] + +# : ]]] diff --git a/install.sh b/install.sh index cfefdb07..986d551b 100755 --- a/install.sh +++ b/install.sh @@ -6,8 +6,13 @@ set -e -DOTFILES="$(cd "$(dirname "$0")" && pwd)" -source "$DOTFILES/install/utils.sh" +# Handle unknown terminal types (SSH from modern terminals) +if [[ -n "$TERM" ]] && ! tput longname &>/dev/null; then + export TERM=xterm-256color +fi + +SYMPHONY_DIR="$(cd "$(dirname "$0")" && pwd)" +source "$SYMPHONY_DIR/install/utils.sh" # Banner clear @@ -24,7 +29,7 @@ confirm "Continue?" || exit 0 # Check core dependencies step "Checking dependencies" missing=() -for dep in git stow; do +for dep in git; do pkg_installed "$dep" && ok "$dep" || { err "$dep"; missing+=("$dep"); } done @@ -36,30 +41,40 @@ if [[ ${#missing[@]} -gt 0 ]]; then fi # Install packages -source "$DOTFILES/install/packages.sh" +source "$SYMPHONY_DIR/install/packages.sh" -# Symlink dotfiles -source "$DOTFILES/install/stow.sh" +# Deploy configs +source "$SYMPHONY_DIR/install/deploy.sh" # Setup desktop entries -source "$DOTFILES/install/desktop-entries.sh" +source "$SYMPHONY_DIR/install/desktop-entries.sh" # Enable user services -source "$DOTFILES/install/services.sh" +source "$SYMPHONY_DIR/install/services.sh" -# Choose default shell -echo -"$DOTFILES/scripts/choose-shell" +# Set fish as default shell +if command -v fish &>/dev/null; then + sudo chsh -s "$(command -v fish)" "$USER" && ok "Shell set to fish" || warn "Failed to set shell" +fi -# Remove any stale first-run marker (fresh installs should run first-run) -rm -f ~/.local/state/symphony/first-run-done +# Note: first-run markers are preserved to prevent double theme install +# The theme installer will run once on first Hyprland login -# Install themes (skip logo since we already showed banner) -SYMPHONY_INSTALLING=1 "$DOTFILES/install/themes/install.sh" +# Optional post-install setup +source "$SYMPHONY_DIR/install/post-setup.sh" -# Done +# Reboot prompt echo ok "Installation complete" -info "Log out and back in for changes to take effect" -info "Run 'symphony help' to get started" echo +info "A reboot is required to finalize the setup." +info "Themes will be configured automatically when you first log in." +echo + +if confirm "Reboot now?"; then + ok "Rebooting..." + sleep 2 + sudo reboot +else + warn "Reboot skipped. Please restart manually to complete setup." +fi diff --git a/install/deploy.sh b/install/deploy.sh new file mode 100755 index 00000000..193a9f7f --- /dev/null +++ b/install/deploy.sh @@ -0,0 +1,168 @@ +#!/bin/bash +#|---/ /+---------------------+---/ /|# +#|--/ /-| Symphony Dotfiles |--/ /-|# +#|-/ /--| Deploy (cp-based) |-/ /--|# +#|/ /---+---------------------+/ /---|# +set -e +SYMPHONY_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +TIMESTAMP="$(date +%Y-%m-%d_%H-%M)" +BACKUP_DIR="$HOME/.config/symphony/backups/$TIMESTAMP" + +# Dirs inside symphony that should NOT be deployed to home +IGNORE_DIRS=( + "themes" + "install" + "bin" + "config" + "local" + "assets" + "branding" + ".git" + ".github" + "default" +) + +# ╭───────────────────────────────────────────────────────────────────────╮ +# │ Helpers │ +# ╰───────────────────────────────────────────────────────────────────────╯ + +should_ignore() { + local name="$1" + for ignored in "${IGNORE_DIRS[@]}"; do + [[ "$name" == "$ignored" ]] && return 0 + done + return 1 +} + +files_differ() { + local src="$1" dst="$2" + [[ ! -e "$dst" ]] && return 1 + [[ -L "$dst" ]] && return 0 + diff -rq "$src" "$dst" &>/dev/null && return 1 || return 0 +} + +backup_file() { + local src="$1" + local rel="${src#$HOME/}" + # Only backup real files/dirs that differ from what we're deploying + if [[ -e "$src" && ! -L "$src" ]]; then + mkdir -p "$(dirname "$BACKUP_DIR/$rel")" + cp -a "$src" "$BACKUP_DIR/$rel" + fi +} + +# ╭───────────────────────────────────────────────────────────────────────╮ +# │ Deploy .config and .local/share │ +# ╰───────────────────────────────────────────────────────────────────────╯ + +deploy_dir() { + local src_base="$1" # e.g. $SYMPHONY_DIR/config + local dst_base="$2" # e.g. $HOME/.config + + [[ -d "$src_base" ]] || return 0 + + for item in "$src_base"/*/; do + [[ -d "$item" ]] || continue + local name="$(basename "$item")" + local dst="$dst_base/$name" + + # Backup existing only if it differs from source + if [[ -d "$dst" && ! -L "$dst" ]] && files_differ "$item" "$dst"; then + backup_file "$dst" + fi + + # Remove existing symlink + [[ -L "$dst" ]] && rm "$dst" + + # Copy recursively + cp -rf "$item" "$dst_base/" + done +} + +deploy_files() { + local src_base="$1" + local dst_base="$2" + + for item in "$src_base"/*; do + [[ -f "$item" ]] || continue + local name="$(basename "$item")" + local dst="$dst_base/$name" + + # Backup existing file only if it differs + if [[ -f "$dst" && ! -L "$dst" ]] && ! diff -q "$item" "$dst" &>/dev/null; then + backup_file "$dst" + fi + cp -f "$item" "$dst" + done +} + +# ╭───────────────────────────────────────────────────────────────────────╮ +# │ Deploy scripts to ~/.local/bin │ +# ╰───────────────────────────────────────────────────────────────────────╯ + +deploy_scripts() { + local bin_dir="$HOME/.local/bin" + mkdir -p "$bin_dir" + + for script in "$SYMPHONY_DIR"/bin/*; do + [[ -f "$script" ]] || continue + cp -f "$script" "$bin_dir/" + chmod +x "$bin_dir/$(basename "$script")" + done +} + +# ╭───────────────────────────────────────────────────────────────────────╮ +# │ Main │ +# ╰───────────────────────────────────────────────────────────────────────╯ + +step "Deploying configs" + +# Ensure directories exist +mkdir -p "$HOME/.config" "$HOME/.local/share" "$HOME/.local/bin" +mkdir -p "$HOME/Pictures/Screenshots" "$HOME/Wallpapers" + +# Remove stale symlinks before deploying +for f in "$HOME"/.config/*; do + [[ -L "$f" ]] || continue + local_target="$(readlink "$f" 2>/dev/null)" + [[ "$local_target" == *symphony* ]] && rm "$f" +done + +# Deploy config +deploy_dir "$SYMPHONY_DIR/config" "$HOME/.config" +deploy_files "$SYMPHONY_DIR/config" "$HOME/.config" # standalone files like brave-flags.conf + +# Deploy local/share +deploy_dir "$SYMPHONY_DIR/local/share" "$HOME/.local/share" + +# Deploy scripts +deploy_scripts + +# Deploy themes to ~/.config/symphony/themes/ +SYMPHONY_CONFIG="$HOME/.config/symphony" +mkdir -p "$SYMPHONY_CONFIG/themes" +for theme_dir in "$SYMPHONY_DIR"/themes/*/; do + [[ -d "$theme_dir" ]] || continue + theme_name=$(basename "$theme_dir") + # Only copy if not already there (preserves user modifications) + [[ -d "$SYMPHONY_CONFIG/themes/$theme_name" ]] || cp -r "$theme_dir" "$SYMPHONY_CONFIG/themes/" +done + +# Link default theme if none active +if [[ ! -L "$SYMPHONY_CONFIG/current" ]]; then + if [[ -d "$SYMPHONY_CONFIG/themes/sakura" ]]; then + ln -sfn "$SYMPHONY_CONFIG/themes/sakura" "$SYMPHONY_CONFIG/current" + echo "sakura" > "$SYMPHONY_CONFIG/.current-theme" + elif [[ -d "$SYMPHONY_CONFIG/themes/nordic" ]]; then + ln -sfn "$SYMPHONY_CONFIG/themes/nordic" "$SYMPHONY_CONFIG/current" + echo "nordic" > "$SYMPHONY_CONFIG/.current-theme" + fi +fi + +ok "Dotfiles deployed" + +# Report backup location +if [[ -d "$BACKUP_DIR" && "$(ls -A "$BACKUP_DIR" 2>/dev/null)" ]]; then + info "Backed up existing configs: $BACKUP_DIR" + warn "To restore: symphony restore" +fi diff --git a/install/desktop-entries.sh b/install/desktop-entries.sh index ebfa52a7..2516d400 100755 --- a/install/desktop-entries.sh +++ b/install/desktop-entries.sh @@ -3,17 +3,17 @@ #|--/ /-| Symphony Dotfiles |--/ /-|# #|-/ /--| Desktop Entries |-/ /--|# #|/ /---+---------------------+/ /---|# - -DOTFILES="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" -APPS_DIR="$DOTFILES/.local/share/applications" +set -e +SYMPHONY_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +[[ -z "$RESET" ]] && source "$SYMPHONY_DIR/install/utils.sh" +APPS_DIR="$SYMPHONY_DIR/local/share/applications" TARGET_DIR="$HOME/.local/share/applications" step "Setting up desktop entries" -# If stow symlinked the whole directory, remove it +# Remove stale symlink if present if [[ -L "$TARGET_DIR" ]]; then rm "$TARGET_DIR" - info "Removed stale symlink" fi mkdir -p "$TARGET_DIR" @@ -31,8 +31,8 @@ if command -v chromium &>/dev/null && [[ -f "$APPS_DIR/chromium.desktop" ]]; the fi # Hide system clutter (LSP plugins, electron, etc) -if [[ -x "$DOTFILES/scripts/hide-apps" ]]; then - count=$("$DOTFILES/scripts/hide-apps" 2>/dev/null | grep -oP '\d+' || echo 0) +if [[ -x "$SYMPHONY_DIR/bin/hide-apps" ]]; then + count=$("$SYMPHONY_DIR/bin/hide-apps" 2>/dev/null | grep -oP '\d+' || echo 0) if [[ $count -gt 0 ]]; then ok "Hidden $count system apps" fi @@ -42,8 +42,8 @@ fi if command -v gum &>/dev/null; then echo if gum confirm "Install web apps?"; then - source "$DOTFILES/install/webapps.sh" - install_webapps + source "$SYMPHONY_DIR/install/webapps.sh" + install_webapps || true fi fi diff --git a/install/packages.sh b/install/packages.sh index 4b350093..2ae5424e 100755 --- a/install/packages.sh +++ b/install/packages.sh @@ -3,81 +3,39 @@ #|--/ /-| Symphony Dotfiles |--/ /-|# #|-/ /--| Package Installer |-/ /--|# #|/ /---+---------------------+/ /---|# - -# ╭───────────────────────────────────────────────────────────────────────╮ -# │ Core Packages │ -# ╰───────────────────────────────────────────────────────────────────────╯ +set -e +SYMPHONY_DIR="${SYMPHONY_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}" +[[ -z "$RESET" ]] && source "$SYMPHONY_DIR/install/utils.sh" packages=( - # Build - base-devel git stow - - # Hyprland + base-devel git git-lfs hyprland hypridle hyprlock hyprpicker hyprsunset xdg-desktop-portal-hyprland xdg-desktop-portal-gtk qt5-wayland qt6-wayland uwsm - - # Desktop - waybar rofi swaync swayosd swww wlogout brave-bin - - # Terminal & Shell + waybar rofi swaync swayosd awww brave-bin kitty alacritty fish starship tmux - - # CLI Tools eza bat fd ripgrep fzf zoxide jq - - # Files yazi nautilus - - # Editor neovim lazygit - - # Screenshot & Recording grim slurp satty wl-clipboard gpu-screen-recorder ffmpeg v4l-utils - - # Clipboard cliphist wl-clip-persist - - # Audio pipewire pipewire-alsa pipewire-pulse wireplumber pamixer wiremix - - # Music mpd mpc rmpc cava playerctl mpdscribble - spotify-launcher spicetify-cli mpd-mpris - - # Network & Bluetooth + spotify-launcher mpd-mpris spicetify-cli-git networkmanager nmgui-bin kdeconnect bluez bluez-utils blueman - - # System polkit-gnome brightnessctl ddcutil power-profiles-daemon upower libnotify xdg-utils xdg-user-dirs inotify-tools gnome-keyring libsecret xorg-xhost libappindicator - - # Theming matugen nwg-look adw-gtk-theme bibata-cursor-theme-bin imagemagick - - # Rofi Extras rofimoji wtype - - # Monitoring btop fastfetch chafa - - # Fonts ttf-jetbrains-mono-nerd ttf-cascadia-mono-nerd noto-fonts-emoji - - # Display Manager sddm qt5-quickcontrols qt5-quickcontrols2 qt5-graphicaleffects - - # Utilities python-terminaltexteffects gum wget curl unzip localsend deno npm keyd tree-sitter-cli ) -# ╭───────────────────────────────────────────────────────────────────────╮ -# │ Optional Applications │ -# ╰───────────────────────────────────────────────────────────────────────╯ - applications=( zen-browser-bin firefox chromium obsidian bitwarden code visual-studio-code-bin @@ -85,23 +43,38 @@ applications=( mpv yt-dlp steam lutris gamemode mangohud typora sddm-silent-theme nautilus-dropbox ) -# ╭───────────────────────────────────────────────────────────────────────╮ -# │ Functions │ -# ╰───────────────────────────────────────────────────────────────────────╯ - -setup_aur() { - aur_installed && return 0 - info "Installing yay..." +install_paru() { + command -v paru &>/dev/null && return 0 + + info "Installing paru..." + + # Install build dependencies + sudo pacman -S --needed --noconfirm base-devel git + local tmp=$(mktemp -d) - git clone https://aur.archlinux.org/yay-bin.git "$tmp/yay-bin" --depth 1 &>/dev/null - (cd "$tmp/yay-bin" && makepkg -si --noconfirm) &>/dev/null + trap "rm -rf '$tmp'" EXIT + + git clone https://aur.archlinux.org/paru.git "$tmp/paru" --depth 1 || { + err "Failed to clone paru" + trap - EXIT + return 1 + } + + (cd "$tmp/paru" && makepkg -si --noconfirm) || { + err "Failed to build paru" + trap - EXIT + return 1 + } + + trap - EXIT rm -rf "$tmp" - ok "yay" + + command -v paru &>/dev/null || { err "paru not found after install"; return 1; } + ok "paru installed" } do_install() { - local aur=$(get_aur_helper) - local official=() from_aur=() + local official=() aur=() for pkg in "$@"; do [[ -z "$pkg" ]] && continue @@ -109,8 +82,8 @@ do_install() { ok "$pkg" elif pacman -Si "$pkg" &>/dev/null; then official+=("$pkg") - elif [[ -n "$aur" ]] && $aur -Si "$pkg" &>/dev/null 2>&1; then - from_aur+=("$pkg") + elif paru -Si "$pkg" &>/dev/null 2>&1; then + aur+=("$pkg") else warn "$pkg not found" fi @@ -118,19 +91,15 @@ do_install() { if [[ ${#official[@]} -gt 0 ]]; then echo - info "Installing ${#official[@]} packages from official repos..." - echo + info "Installing ${#official[@]} official packages..." sudo pacman -S --needed --noconfirm "${official[@]}" fi - if [[ ${#from_aur[@]} -gt 0 ]]; then - echo - info "Installing ${#from_aur[@]} packages from AUR..." + if [[ ${#aur[@]} -gt 0 ]]; then echo - $aur -S --needed --noconfirm "${from_aur[@]}" + info "Installing ${#aur[@]} AUR packages..." + paru --skipreview --needed --noconfirm -S "${aur[@]}" 2>/dev/null || true fi - - return 0 } ask_applications() { @@ -144,14 +113,15 @@ ask_applications() { step "Installing applications" do_install $selected - return 0 } -# ╭───────────────────────────────────────────────────────────────────────╮ -# │ Run │ -# ╰───────────────────────────────────────────────────────────────────────╯ - step "Installing packages" -setup_aur + +install_paru || exit 1 do_install "${packages[@]}" ask_applications + +if command -v npm &>/dev/null; then + info "Installing live-server..." + sudo npm install -g live-server &>/dev/null && ok "live-server" || warn "live-server failed (non-fatal)" +fi diff --git a/install/post-setup.sh b/install/post-setup.sh new file mode 100755 index 00000000..0f0b314a --- /dev/null +++ b/install/post-setup.sh @@ -0,0 +1,75 @@ +#!/bin/bash +#|---/ /+---------------------+---/ /|# +#|--/ /-| Symphony Dotfiles |--/ /-|# +#|-/ /--| Post-Install Setup |-/ /--|# +#|/ /---+---------------------+/ /---|# +set -e +SYMPHONY_DIR="${SYMPHONY_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}" +source "$SYMPHONY_DIR/install/utils.sh" + +# ╭───────────────────────────────────────────────────────────────────────╮ +# │ SDDM Silent Theme │ +# ╰───────────────────────────────────────────────────────────────────────╯ + +setup_sddm() { + pkg_installed sddm-silent-theme || return 0 + + echo + confirm "Setup minimal SDDM login screen? (sddm-silent-theme)" || return 0 + + step "Configuring SDDM" + + # Write sddm.conf + info "Writing /etc/sddm.conf (requires sudo)" + sudo tee /etc/sddm.conf > /dev/null << 'SDDM_EOF' +[General] +InputMethod=qtvirtualkeyboard +GreeterEnvironment=QML2_IMPORT_PATH=/usr/share/sddm/themes/silent/components/,QT_IM_MODULE=qtvirtualkeyboard + +[Theme] +Current=silent +SDDM_EOF + + sudo systemctl enable sddm 2>/dev/null || true + ok "SDDM configured with silent theme" +} + +# ╭───────────────────────────────────────────────────────────────────────╮ +# │ Keyd — Capslock → Escape/Control │ +# ╰───────────────────────────────────────────────────────────────────────╯ + +setup_keyd() { + pkg_installed keyd || return 0 + + echo + info "keyd can remap Capslock → Escape (tap) / Control (hold)" + info " This is useful for Vim — tap Caps for Esc, hold for Ctrl" + confirm "Enable keyd capslock remap?" || return 0 + + step "Configuring keyd" + + sudo mkdir -p /etc/keyd + sudo tee /etc/keyd/default.conf > /dev/null << 'KEYD_EOF' +[ids] + +* + +[main] + +# Maps capslock to escape when pressed and control when held. +capslock = overload(control, esc) + +# Remaps the escape key to capslock +esc = capslock +KEYD_EOF + + sudo systemctl enable keyd --now 2>/dev/null || true + ok "keyd enabled — Capslock is now Esc/Ctrl" +} + +# ╭───────────────────────────────────────────────────────────────────────╮ +# │ Run │ +# ╰───────────────────────────────────────────────────────────────────────╯ + +setup_sddm +setup_keyd diff --git a/install/services.sh b/install/services.sh index 09593fb5..09cc79d4 100755 --- a/install/services.sh +++ b/install/services.sh @@ -3,6 +3,9 @@ #|--/ /-| Symphony Dotfiles |--/ /-|# #|-/ /--| User Services |-/ /--|# #|/ /---+---------------------+/ /---|# +set -e +SYMPHONY_DIR="${SYMPHONY_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}" +[[ -z "$RESET" ]] && source "$SYMPHONY_DIR/install/utils.sh" step "Setting up services" @@ -41,8 +44,8 @@ if pkg_installed mpd; then mkdir -p ~/.config/systemd/user/mpd.service.d echo -e "[Service]\nRuntimeDirectory=mpd" >~/.config/systemd/user/mpd.service.d/override.conf systemctl --user daemon-reload - systemctl --user enable --now mpd && ok "mpd" || warn "mpd failed" - systemctl --user --now enable mpd-mpris + systemctl --user enable --now mpd --quiet && ok "mpd" || warn "mpd failed" + systemctl --user enable --now mpd-mpris --quiet fi # ── mpdscribble ─────────────────────────────────────────────────────────────── @@ -51,7 +54,7 @@ if pkg_installed mpdscribble; then if grep -q "YOUR_USERNAME" ~/.config/mpdscribble/mpdscribble.conf 2>/dev/null; then warn "mpdscribble: Edit ~/.config/mpdscribble/mpdscribble.conf with your Last.fm credentials" else - systemctl --user enable --now mpdscribble && ok "mpdscribble" || warn "mpdscribble failed" + systemctl --user enable --now mpdscribble --quiet && ok "mpdscribble" || warn "mpdscribble failed" fi fi @@ -85,28 +88,8 @@ EOF fi fi -# ── keyd ────────────────────────────────────────────────────────────────────── -# if pkg_installed keyd; then -# echo -# if gum confirm "Remap Caps Lock to act as Escape (tap) and Control (hold)? -# You will thank me later 😉" --default=false; then -# sudo mkdir -p /etc/keyd -# cat >"/etc/keyd/default.conf" <<'EOF' -# [ids] -# * -# -# [main] -# capslock = overload(control, esc) -# esc = capslock -# EOF -# -# sudo systemctl enable --now keyd -# sudo keyd reload && ok "keyd configured" || warn "keyd failed" -# fi -# fi - # ── Git ─────────────────────────────────────────────────────────────────────────── -if pkg_installed -v git; then +if command -v git &>/dev/null; then echo if gum confirm "Set up Git user name and email (used for commits)?" --default=false; then @@ -181,8 +164,16 @@ if pkg_installed spicetify-cli; then spicetify config current_theme symphony color_scheme base &>/dev/null spicetify config inject_css 1 replace_colors 1 &>/dev/null - #setup marketplace - # curl -fsSL https://raw.githubusercontent.com/spicetify/marketplace/main/resources/install.sh | sh + # Install marketplace (fail-safe — won't break install if download fails) + if command -v curl &>/dev/null; then + if curl -fsSL --connect-timeout 10 --max-time 30 \ + https://raw.githubusercontent.com/spicetify/marketplace/main/resources/install.sh 2>/dev/null | sh 2>/dev/null; then + ok "spicetify marketplace" + else + warn "spicetify marketplace: download failed (can install manually later)" + fi + fi + if spicetify backup apply &>/dev/null; then ok "spicetify" else diff --git a/install/stow.sh b/install/stow.sh deleted file mode 100755 index 613f3547..00000000 --- a/install/stow.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -#|---/ /+---------------------+---/ /|# -#|--/ /-| Symphony Dotfiles |--/ /-|# -#|-/ /--| Stow Symlinks |-/ /--|# -#|/ /---+---------------------+/ /---|# - -DOTFILES="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" - -# Backup dir: dotfiles-backup, dotfiles-backup-2, etc. -BACKUP_DIR="$HOME/dotfiles-backup" -i=2; while [[ -d "$BACKUP_DIR" ]]; do BACKUP_DIR="$HOME/dotfiles-backup-$i"; ((i++)); done - -step "Linking dotfiles" -cd "$DOTFILES" - -# Clean stale symlinks from older installs -for f in "$HOME"/*; do - [[ -L "$f" ]] || continue - target="$(readlink "$f")" - # Remove symlinks to install scripts or root-level files that shouldn't be linked - [[ "$target" == dotfiles/install/* || "$target" == dotfiles/*.md || "$target" == dotfiles/*.sh ]] && rm "$f" -done - -# Prevent stow from symlinking ~/.config itself -mkdir -p "$HOME/.config" "$HOME/.local/share" - -# Create directories needed by scripts -mkdir -p "$HOME/Pictures/Screenshots" -mkdir -p "$HOME/Wallpapers" - -# Backup existing configs so stow creates clean directory symlinks -backup_if_exists() { - for item in "$1"/*; do - [[ -e "$item" ]] || continue - local name=$(basename "$item") - local target="$2/$name" - [[ -e "$target" && ! -L "$target" ]] || continue - mkdir -p "$BACKUP_DIR/$1" - mv "$target" "$BACKUP_DIR/$1/$name" - info "Backed up: $1/$name" - done -} - -backup_if_exists ".config" "$HOME/.config" -backup_if_exists ".local/share" "$HOME/.local/share" - -if stow . 2>/dev/null; then - ok "Dotfiles linked" -else - err "Stow failed:" - stow -v . 2>&1 | head -5 - exit 1 -fi - -[[ -d "$BACKUP_DIR" ]] && info "Your old configs: $BACKUP_DIR" diff --git a/install/themes/README.md b/install/themes/README.md deleted file mode 100644 index d0ff252a..00000000 --- a/install/themes/README.md +++ /dev/null @@ -1,155 +0,0 @@ -
- -![Banner](../../assets/banner.jpg) - -
- -I spend a lot of time with music — jazz, instrumentals, film scores. La La Land and Your Lie in April are some of my favorites. Symphony is named after that love, and you'll see the music touch throughout the setup. - -## Installation - -```bash -git clone https://github.com/vyrx-dev/dotfiles.git ~/dotfiles -cd ~/dotfiles/install/themes -./install.sh -``` - -Uninstall: -```bash -./uninstall.sh -``` - -## Themes - -
- - - - - - - - - - - - - - - - - - - - - - -

Void

Sakura

Espresso

Rosé Pine

Gruvbox Material

Tokyo Night

Kanagawa

Nordic

Forest

Zen
- -
- -
- -### Dynamic Theme - - - -*Colors generated from wallpaper using Matugen* - -
- -Wallpapers: [vyrx-dev/wallpapers](https://github.com/vyrx-dev/wallpapers) - -## Usage - -```bash -symphony switch # pick a theme -symphony switch zen # switch directly -symphony switch --random # switch to a random theme -symphony list # see all themes -symphony reload # re-apply current -symphony fix # fix broken symlinks -``` - -## Keybindings - -| Shortcut | Action | -|----------|--------| -| `Super + Ctrl + Shift + Space` | Theme switcher | -| `Super + Ctrl + Space` | Matugen (colors from wallpaper) | -| `Super + Alt + Space` | Wallpaper picker | -| `Super + Alt + Left/Right` | Cycle wallpapers | -| `Super + Backspace` | Toggle terminal transparency | -| `Super + Ctrl + Backspace` | Toggle focus/vibe mode | - -## How it works - -Symphony updates `~/.config/symphony/current` and runs hooks to reload apps. No files are overwritten. - -## Hooks (what it covers) - -- Terminals: kitty, ghostty, alacritty -- UI: Hyprland, Waybar, GTK3/4, Rofi -- Utilities: btop, cava -- Apps: yazi, rmpc, vesktop, obsidian -- Extras: pywalfox - -## Customization - -### Themed Rofi - -Rofi has a transparent glass/blur look by default - works well with any wallpaper. If you want it to match your theme colors instead: - -1. Open `~/.config/rofi/config.rasi` -2. Uncomment `@import "colors.rasi"` -3. Replace hardcoded color values with variables from `colors.rasi` - -Each theme has its own `colors.rasi` in `themes//.config/rofi/` - -### Themed Neovim - -Each theme includes a `theme.lua` in `themes//.config/nvim/`. To use it, copy or symlink to your nvim config: - -```bash -ln -sf ~/.config/symphony/current/.config/nvim/theme.lua ~/.config/nvim/lua/plugins/theme.lua -``` - -## Adding your own theme - -Copy an existing theme: -```bash -cp -r themes/zen themes/my-theme -``` -Edit configs in `themes/my-theme/.config/` and add wallpapers to `themes/my-theme/backgrounds/`. - -## Dependencies - -- Required: `stow`, `hyprctl`, `swww` -- Terminal (one of): `kitty`, `ghostty`, `alacritty` -- Optional: `waybar`, `rofi`, `gum`, `tte`, `matugen` - -## Troubleshooting - -```bash -symphony reload # colors not updating -symphony fix # symlinks broken -``` - ---- - -Thanks / Inspirations: -- [basecamp/omarchy](https://github.com/basecamp/omarchy) -- [HyDE-Project/HyDE](https://github.com/HyDE-Project/HyDE) -- [JaKooLit/Hyprland-Dots](https://github.com/JaKooLit/Hyprland-Dots) -- [mylinuxforwork/dotfiles](https://github.com/mylinuxforwork/dotfiles) -- [bjarneo/omarchy-sakura-theme](https://github.com/bjarneo/omarchy-sakura-theme) -- [rebelot/kanagawa.nvim](https://github.com/rebelot/kanagawa.nvim) -- [sainnhe/gruvbox-material](https://github.com/sainnhe/gruvbox-material) -- [EliverLara/Nordic](https://github.com/EliverLara/Nordic) -- [rose-pine/rose-pine-theme](https://github.com/rose-pine/rose-pine-theme) -- [folke/tokyonight.nvim](https://github.com/folke/tokyonight.nvim) -- [InioX/matugen](https://github.com/InioX/matugen) - -Have an idea or found a bug? -- Report a bug: [new bug](https://github.com/vyrx-dev/dotfiles/issues/new?template=bug_report.yml) -- Request a feature: [new feature](https://github.com/vyrx-dev/dotfiles/issues/new?template=feature_request.yml) diff --git a/install/themes/hooks/00-starship.sh b/install/themes/hooks/00-starship.sh index e0b51ca4..0295adfb 100755 --- a/install/themes/hooks/00-starship.sh +++ b/install/themes/hooks/00-starship.sh @@ -1,5 +1,5 @@ #!/bin/bash # starship - symlink config -src="$CURRENT_LINK/.config/starship.toml" +src="$CURRENT_LINK/starship.toml" [[ -f "$src" ]] || exit 0 ln -sf "$src" "$HOME/.config/starship.toml" diff --git a/install/themes/hooks/10-gtk.sh b/install/themes/hooks/10-gtk.sh index 17c397e6..d0c4950e 100755 --- a/install/themes/hooks/10-gtk.sh +++ b/install/themes/hooks/10-gtk.sh @@ -1,7 +1,7 @@ #!/bin/bash # gtk - symlink colors for gtk3 and gtk4 for ver in "gtk-3.0" "gtk-4.0"; do - src="$CURRENT_LINK/.config/$ver/colors.css" + src="$CURRENT_LINK/$ver/colors.css" [[ -f "$src" ]] || continue mkdir -p "$HOME/.config/$ver" ln -sf "$src" "$HOME/.config/$ver/colors.css" diff --git a/install/themes/hooks/10-rofi.sh b/install/themes/hooks/10-rofi.sh index 382bd590..c72a50e4 100755 --- a/install/themes/hooks/10-rofi.sh +++ b/install/themes/hooks/10-rofi.sh @@ -1,5 +1,5 @@ #!/bin/bash # rofi - symlink colors -src="$CURRENT_LINK/.config/rofi/colors.rasi" +src="$CURRENT_LINK/rofi/colors.rasi" [[ -f "$src" ]] || exit 0 ln -sf "$src" "$HOME/.config/rofi/colors.rasi" diff --git a/install/themes/hooks/10-waybar.sh b/install/themes/hooks/10-waybar.sh index 0cc205ae..fbd7e10b 100755 --- a/install/themes/hooks/10-waybar.sh +++ b/install/themes/hooks/10-waybar.sh @@ -1,6 +1,6 @@ #!/bin/bash # waybar - symlink colors and restart -src="$CURRENT_LINK/.config/waybar/colors.css" +src="$CURRENT_LINK/waybar/colors.css" [[ -f "$src" ]] || exit 0 ln -sf "$src" "$HOME/.config/waybar/colors.css" diff --git a/install/themes/hooks/20-btop.sh b/install/themes/hooks/20-btop.sh index 0ec3869a..a01b8d38 100755 --- a/install/themes/hooks/20-btop.sh +++ b/install/themes/hooks/20-btop.sh @@ -1,6 +1,6 @@ #!/bin/bash # btop - symlink theme and reload -src="$CURRENT_LINK/.config/btop/themes/current.theme" +src="$CURRENT_LINK/btop/themes/current.theme" [[ -f "$src" ]] || exit 0 mkdir -p "$HOME/.config/btop/themes" diff --git a/install/themes/hooks/20-cava.sh b/install/themes/hooks/20-cava.sh index 01314909..ffaef157 100755 --- a/install/themes/hooks/20-cava.sh +++ b/install/themes/hooks/20-cava.sh @@ -1,6 +1,6 @@ #!/bin/bash # cava - symlink config and reload -src="$CURRENT_LINK/.config/cava/config" +src="$CURRENT_LINK/cava/config" dst="$HOME/.config/cava/config" [[ -f "$src" ]] || exit 0 diff --git a/install/themes/hooks/30-rmpc.sh b/install/themes/hooks/30-rmpc.sh index 6ec72f9d..50900c26 100755 --- a/install/themes/hooks/30-rmpc.sh +++ b/install/themes/hooks/30-rmpc.sh @@ -1,7 +1,7 @@ #!/bin/bash # rmpc - symlink theme and hot-reload -src="$CURRENT_LINK/.config/rmpc/themes/current.ron" -[[ ! -f "$src" ]] && src="$CURRENT_LINK/.config/rmpc/themes/theme.ron" +src="$CURRENT_LINK/rmpc/themes/current.ron" +[[ ! -f "$src" ]] && src="$CURRENT_LINK/rmpc/themes/theme.ron" [[ -f "$src" ]] || exit 0 mkdir -p "$HOME/.config/rmpc/themes" diff --git a/install/themes/hooks/30-vesktop.sh b/install/themes/hooks/30-vesktop.sh index 21376266..58d1e206 100755 --- a/install/themes/hooks/30-vesktop.sh +++ b/install/themes/hooks/30-vesktop.sh @@ -1,6 +1,6 @@ #!/bin/bash # vesktop - symlink discord theme -src="$CURRENT_LINK/.config/vesktop/themes/symphony-discord.css" +src="$CURRENT_LINK/vesktop/themes/symphony-discord.css" [[ -f "$src" ]] || exit 0 mkdir -p "$HOME/.config/vesktop/themes" ln -sf "$src" "$HOME/.config/vesktop/themes/symphony-discord.css" diff --git a/install/themes/hooks/30-yazi.sh b/install/themes/hooks/30-yazi.sh index 766c0a4c..5c45ca0d 100755 --- a/install/themes/hooks/30-yazi.sh +++ b/install/themes/hooks/30-yazi.sh @@ -1,6 +1,6 @@ #!/bin/bash # yazi - symlink theme (applies on next launch) -src="$CURRENT_LINK/.config/yazi/theme.toml" +src="$CURRENT_LINK/yazi/theme.toml" [[ -f "$src" ]] || exit 0 mkdir -p "$HOME/.config/yazi" ln -sf "$src" "$HOME/.config/yazi/theme.toml" diff --git a/install/themes/hooks/40-obsidian.sh b/install/themes/hooks/40-obsidian.sh index d6ecbc3e..d7ddb8a9 100755 --- a/install/themes/hooks/40-obsidian.sh +++ b/install/themes/hooks/40-obsidian.sh @@ -7,7 +7,7 @@ for dir in "$HOME/Documents/Notes" "$HOME/Documents/Obsidian" "$HOME/obsidian" " done [[ -z "$vault" ]] && exit 0 -src="$CURRENT_LINK/.config/obsidian/theme.css" +src="$CURRENT_LINK/obsidian/theme.css" [[ -f "$src" ]] || exit 0 # create symphony theme dir and symlink diff --git a/install/themes/hooks/40-pywalfox.sh b/install/themes/hooks/40-pywalfox.sh index 7e3af8e9..463a2eb9 100755 --- a/install/themes/hooks/40-pywalfox.sh +++ b/install/themes/hooks/40-pywalfox.sh @@ -1,6 +1,6 @@ #!/bin/bash # pywalfox - copy colors and update firefox -src="$CURRENT_LINK/.cache/wal" +src="$CURRENT_LINK/wal" dst="$HOME/.cache/wal" [[ -f "$src/colors.json" ]] || exit 0 command -v pywalfox &>/dev/null || exit 0 diff --git a/install/themes/hooks/50-spotify.sh b/install/themes/hooks/50-spotify.sh index 95a70ab2..23e33b1b 100755 --- a/install/themes/hooks/50-spotify.sh +++ b/install/themes/hooks/50-spotify.sh @@ -3,7 +3,7 @@ command -v spicetify &>/dev/null || exit 0 -src="$CURRENT_LINK/.config/spicetify/Themes/symphony" +src="$CURRENT_LINK/spicetify/Themes/symphony" dest="$HOME/.config/spicetify/Themes/symphony" [[ -d "$src" ]] || exit 0 diff --git a/install/themes/install.sh b/install/themes/install.sh index d72d109f..c199aa5e 100755 --- a/install/themes/install.sh +++ b/install/themes/install.sh @@ -7,14 +7,15 @@ set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -DOTFILES="$(dirname "$(dirname "$SCRIPT_DIR")")" -THEMES_DIR="$DOTFILES/themes" -SYMPHONY_DIR="$HOME/.config/symphony" -BRANDING="$DOTFILES/branding" +SYMPHONY_DIR="${SYMPHONY_REPO:-$(dirname "$(dirname "$SCRIPT_DIR")")}" +THEMES_DIR="$SYMPHONY_DIR/themes" +SYMPHONY_CONFIG="$HOME/.config/symphony" +BRANDING="$SYMPHONY_DIR/branding" LOGO_FILE="$BRANDING/symphony.txt" MUSICAL_FILE="$BRANDING/musical.txt" +STATE_DIR="$HOME/.local/state/symphony" -source "$DOTFILES/install/utils.sh" +source "$SYMPHONY_DIR/install/utils.sh" # ╭───────────────────────────────────────────────────────────────────────╮ # │ Fullscreen Re-launch │ @@ -160,7 +161,7 @@ page_one() { heading "Tuning the Instruments" local missing=() - for dep in stow hyprctl swww; do + for dep in hyprctl awww; do if command -v "$dep" &>/dev/null; then check_mark "$dep" else @@ -202,7 +203,7 @@ page_one() { heading "Setting the Stage" spin "Arranging the seats" 0.4 - mkdir -p "$SYMPHONY_DIR" "$HOME/.config/rmpc/themes" "$HOME/.cache/wal" + mkdir -p "$SYMPHONY_CONFIG" "$HOME/.config/rmpc/themes" "$HOME/.cache/wal" spin "Adjusting the lights" 0.35 chmod +x "$SCRIPT_DIR/symphony" "$SCRIPT_DIR/hooks"/*.sh 2>/dev/null || true spin "Testing the acoustics" 0.35 @@ -313,7 +314,7 @@ page_two() { echo echo - center_text "https://github.com/vyrx-dev/dotfiles/issues" "$C_DIMMER" + center_text "https://github.com/vyrx-dev/symphony/issues" "$C_DIMMER" echo echo @@ -410,3 +411,6 @@ main() { } main +touch "$STATE_DIR/themes-installed" +notify-send "Symphony" "Theme setup complete! Enjoy your desktop." +exit 0 diff --git a/install/themes/symphony b/install/themes/symphony index 867977d3..89769ea6 100755 --- a/install/themes/symphony +++ b/install/themes/symphony @@ -7,17 +7,17 @@ # ║ ███████║ ██║ ██║ ╚═╝ ██║██║ ██║ ██║╚██████╔╝██║ ╚████║ ██║ ║ # ║ ╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═╝ ║ # ╚═══════════════════════════════════════════════════════════════════════════╝ -# https://github.com/vyrx-dev/dotfiles +# https://github.com/vyrx-dev/symphony set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -DOTFILES="${DOTFILES:-$HOME/dotfiles}" -THEMES_DIR="$DOTFILES/themes" +SYMPHONY_REPO="${SYMPHONY_REPO:-$HOME/symphony}" +THEMES_DIR="$SYMPHONY_REPO/themes" HOOKS_DIR="$SCRIPT_DIR/hooks" -SYMPHONY_DIR="$HOME/.config/symphony" -CURRENT_LINK="$SYMPHONY_DIR/current" -THEME_FILE="$SYMPHONY_DIR/.current-theme" +SYMPHONY_CONFIG="$HOME/.config/symphony" +CURRENT_LINK="$SYMPHONY_CONFIG/current" +THEME_FILE="$SYMPHONY_CONFIG/.current-theme" VERSION="3.0.0" @@ -71,7 +71,7 @@ set_wallpaper() { # Dynamic theme uses ~/Wallpapers with matugen if [[ "$theme" == "dynamic" ]]; then - "$HOME/.config/hypr/scripts/change-theme" + "$HOME/.local/bin/change-theme" return fi @@ -79,11 +79,11 @@ set_wallpaper() { wall=$(find "$THEMES_DIR/$theme/backgrounds" -type f \( -name "*.jpg" -o -name "*.png" -o -name "*.webp" \) 2>/dev/null | sort -V | head -1) [[ -z "$wall" ]] && return - swww query &>/dev/null || { - swww-daemon --format xrgb & + awww query &>/dev/null || { + awww-daemon --format xrgb & sleep 0.3 } - swww img "$wall" --transition-type center --transition-fps 120 --transition-duration 0.8 + awww img "$wall" --transition-type center --transition-fps 120 --transition-duration 0.8 ln -sfn "backgrounds/$(basename "$wall")" "$THEMES_DIR/$theme/wallpaper" } @@ -111,11 +111,11 @@ get_random_theme() { cmd_switch() { local theme="$1" - [[ "$theme" == "--random" ]] && theme=$(get_random_theme) + [[ "$theme" == "--random" ]] || [[ "$theme" == "-r" ]] && theme=$(get_random_theme) if [[ -z "$theme" ]]; then command -v rofi &>/dev/null || { err "rofi is required"; exit 1; } - local theme_picker="$HOME/.config/rofi/scripts/themePicker" + local theme_picker="$HOME/.local/bin/themePicker" if [[ -x "$theme_picker" ]]; then exec "$theme_picker" else @@ -136,7 +136,7 @@ cmd_switch() { info "Switching to $theme..." hyprctl keyword misc:disable_autoreload 1 &>/dev/null || true - mkdir -p "$SYMPHONY_DIR" + mkdir -p "$SYMPHONY_CONFIG" echo "$theme" > "$THEME_FILE" ln -sfn "$THEMES_DIR/$theme" "$CURRENT_LINK" @@ -160,7 +160,7 @@ cmd_reload() { theme=$(current_theme) info "Reloading $theme..." - mkdir -p "$SYMPHONY_DIR" + mkdir -p "$SYMPHONY_CONFIG" ln -sfn "$THEMES_DIR/$theme" "$CURRENT_LINK" hyprctl keyword misc:disable_autoreload 1 &>/dev/null || true @@ -211,7 +211,7 @@ cmd_fix() { info "Fixing symlinks..." theme_exists "$theme" || { err "Theme '$theme' not found"; exit 1; } - mkdir -p "$SYMPHONY_DIR" + mkdir -p "$SYMPHONY_CONFIG" ln -sfn "$THEMES_DIR/$theme" "$CURRENT_LINK" run_hooks ok "Fixed $theme" @@ -222,6 +222,124 @@ cmd_import() { "$SCRIPT_DIR/symphony-import/import.sh" "$@" } +cmd_update() { + info "Updating Symphony..." + + # Backup current configs + local timestamp + timestamp=$(date +%Y-%m-%d_%H-%M) + local backup="$HOME/.config/symphony/backups/$timestamp" + mkdir -p "$backup" + cp -r "$HOME/.config/symphony" "$backup/symphony" 2>/dev/null || true + ok "Backed up to $backup" + + # Pull latest + if ! git -C "$SYMPHONY_REPO" pull --ff-only; then + err "Git pull failed — resolve conflicts manually" + exit 1 + fi + ok "Pulled latest changes" + + # Redeploy configs + if [[ -f "$SYMPHONY_REPO/install/deploy.sh" ]]; then + source "$SYMPHONY_REPO/install/deploy.sh" + ok "Configs redeployed" + fi + + # Reapply current theme + local theme + theme=$(current_theme) + cmd_reload + ok "Updated to latest — theme: $theme" +} + +cmd_restore() { + local backup_base="$HOME/.config/symphony/backups" + [[ -d "$backup_base" ]] || { err "No backups found"; exit 1; } + + local backups=() + mapfile -t backups < <(ls -d "$backup_base"/*/ 2>/dev/null | sort -rV) + [[ ${#backups[@]} -eq 0 ]] && { err "No backups found"; exit 1; } + + local selected + if command -v gum &>/dev/null; then + selected=$(printf '%s\n' "${backups[@]}" | xargs -n1 basename | gum choose --header "Select backup to restore:") || exit 0 + selected="$backup_base/$selected" + else + echo "Available backups:" + for i in "${!backups[@]}"; do + echo " $((i+1)). $(basename "${backups[$i]}")" + done + read -rp "Select [1-${#backups[@]}]: " choice + [[ -z "$choice" ]] && exit 0 + selected="${backups[$((choice-1))]}" + fi + + [[ -d "$selected" ]] || { err "Invalid selection"; exit 1; } + + local current current_theme backup_name count=0 + current_theme=$(current_theme) + backup_name=$(basename "$selected") + + info "Current theme: $current_theme" + info "Restoring from backup: $backup_name" + + while IFS= read -r file; do + local dest="$HOME/${file#$selected/}" + mkdir -p "$(dirname "$dest")" + cp "$file" "$dest" + ((count++)) + done < <(find "$selected" -type f) + + ok "Restored $count files from $backup_name" + + # Show what was restored (max 5 files) + local shown=0 + while IFS= read -r file && [[ $shown -lt 5 ]]; do + local rel_path="${file#$selected/}" + echo " ${GREEN}→${RESET} ~/$rel_path" + ((shown++)) + done < <(find "$selected" -type f | head -5) + + local total + total=$(find "$selected" -type f | wc -l) + [[ $total -gt 5 ]] && echo " ${CYAN}…${RESET} and $((total - 5)) more" +} + +cmd_fresh_setup() { + echo + echo -e "${RED} ⚠ DESTRUCTIVE OPERATION${RESET}" + echo -e " This will:" + echo -e " 1. Backup current configs" + echo -e " 2. Remove ~/symphony" + echo -e " 3. Re-clone from GitHub" + echo -e " 4. Run full install" + echo + + printf 'Type "fresh" to confirm: ' + read -r confirm + [[ "$confirm" == "fresh" ]] || { info "Cancelled"; exit 0; } + + # Backup + local timestamp + timestamp=$(date +%Y-%m-%d_%H-%M) + local backup="$HOME/.config/symphony/backups/$timestamp" + mkdir -p "$backup" + cp -r "$HOME/.config/symphony" "$backup/symphony" 2>/dev/null || true + ok "Backed up to $backup" + + # Nuke and reclone + local repo + repo=$(git -C "$SYMPHONY_REPO" remote get-url origin 2>/dev/null || echo "https://github.com/vyrx-dev/symphony.git") + rm -rf "${SYMPHONY_REPO:?}" + git clone "$repo" "$SYMPHONY_REPO" + ok "Re-cloned from $repo" + + # Re-install + cd "$SYMPHONY_REPO" + source ./install.sh +} + # ╭───────────────────────────────────────────────────────────────────────╮ # │ Help │ # ╰───────────────────────────────────────────────────────────────────────╯ @@ -248,6 +366,9 @@ Commands: list Show all themes current Print current theme reload Re-apply current theme + update Pull latest changes & redeploy configs + restore Restore configs from a backup + fresh-setup Nuclear option — backup, nuke, reclone, reinstall fix Fix broken symlinks remove Delete a theme uninstall Remove Symphony @@ -282,7 +403,7 @@ FAQ: After this, themes auto-apply on every switch. EOF - echo " Found a problem? https://github.com/vyrx-dev/dotfiles/issues/new" + echo " Found a problem? https://github.com/vyrx-dev/symphony/issues/new" } cmd_version() { @@ -300,7 +421,7 @@ EOF echo "" echo " Symphony v$VERSION" echo " Author: vyrx" - echo " https://github.com/vyrx-dev/dotfiles" + echo " https://github.com/vyrx-dev/symphony" } # ╭───────────────────────────────────────────────────────────────────────╮ @@ -313,9 +434,12 @@ case "${1:-help}" in import) shift; cmd_import "$@" ;; tui) exec "$SCRIPT_DIR/symphony-tui" ;; reload) cmd_reload ;; + update) cmd_update ;; + restore) cmd_restore ;; + fresh-setup) cmd_fresh_setup ;; fix) cmd_fix ;; list|ls) cmd_list ;; - current) echo ""; echo -e " ${GREEN}●${RESET} $(current_theme)"; "$DOTFILES/scripts/fetch-colors" 2>/dev/null || true ;; + current) echo ""; echo -e " ${GREEN}●${RESET} $(current_theme)"; "$HOME/.local/bin/fetch-colors" 2>/dev/null || true ;; remove|rm) shift; cmd_remove "$@" ;; uninstall) "$SCRIPT_DIR/uninstall.sh" ;; help|-h|--help) cmd_help ;; diff --git a/install/themes/symphony-import/btop.sh b/install/themes/symphony-import/btop.sh index dd1bd3da..fbad1fe9 100644 --- a/install/themes/symphony-import/btop.sh +++ b/install/themes/symphony-import/btop.sh @@ -1,7 +1,7 @@ #!/bin/bash gen_btop() { - cat > "$dest/.config/btop/themes/current.theme" < "$dest/btop/themes/current.theme" < "$dest/.config/cava/config" < "$dest/cava/config" < "$gtk_css" < "$dest/.config/hypr/theme/colors.conf" < "$dest/hypr/theme/colors.conf" </dev/null || true @@ -113,8 +113,8 @@ run_import() { write_configs "$name" "$dest" "$bg" "$fg" "${palette[@]}" # use original theme configs if available - [[ -f "$tmp/repo/btop.theme" ]] && cp "$tmp/repo/btop.theme" "$dest/.config/btop/themes/current.theme" - [[ -f "$tmp/repo/neovim.lua" ]] && cp "$tmp/repo/neovim.lua" "$dest/.config/nvim/theme.lua" + [[ -f "$tmp/repo/btop.theme" ]] && cp "$tmp/repo/btop.theme" "$dest/btop/themes/current.theme" + [[ -f "$tmp/repo/neovim.lua" ]] && cp "$tmp/repo/neovim.lua" "$dest/nvim/theme.lua" ok "imported $name" local parent_script="$(dirname "$SCRIPT_DIR")/symphony" diff --git a/install/themes/symphony-import/obsidian.sh b/install/themes/symphony-import/obsidian.sh index ed93e715..54cc0f3e 100644 --- a/install/themes/symphony-import/obsidian.sh +++ b/install/themes/symphony-import/obsidian.sh @@ -1,7 +1,7 @@ #!/bin/bash gen_obsidian() { - cat > "$dest/.config/obsidian/theme.css" < "$dest/obsidian/theme.css" < "$dest/.config/rmpc/themes/current.ron" < "$dest/rmpc/themes/current.ron" < "$dest/.config/rofi/colors.rasi" < "$dest/rofi/colors.rasi" < "$spicetify_dir/color.ini" < "$dest/.config/starship.toml" < "$dest/starship.toml" < "$dest/.config/kitty/colors.conf" < "$dest/kitty/colors.conf" < "$dest/.config/alacritty/colors.toml" < "$dest/alacritty/colors.toml" < "$dest/.config/ghostty/theme" < "$dest/ghostty/theme" < "$dest/.config/vesktop/themes/symphony-discord.css" < "$dest/vesktop/themes/symphony-discord.css" < "$dest/.cache/wal/colors.json" < "$dest/.config/waybar/colors.css" < "$dest/waybar/colors.css" < "$dest/.config/yazi/theme.toml" < "$dest/yazi/theme.toml" <> "$sed_script" + + # Strip # for hex values: {{ key_strip }} + if [[ "$value" =~ ^# ]]; then + local stripped="${value#\#}" + echo "s|{{ ${key}_strip }}|$stripped|g" >> "$sed_script" + + # RGB conversion: {{ key_rgb }} + local r=$((16#${stripped:0:2})) + local g=$((16#${stripped:2:2})) + local b=$((16#${stripped:4:2})) + echo "s|{{ ${key}_rgb }}|${r},${g},${b}|g" >> "$sed_script" + fi + done < "$colors_file" + + # Process each template + local count=0 + for tpl_file in "$TEMPLATES_DIR"/*.tpl; do + [[ -f "$tpl_file" ]] || continue + + local tpl_name="$(basename "$tpl_file")" + local output_rel="${TEMPLATE_MAP[$tpl_name]}" + + if [[ -z "$output_rel" ]]; then + warn "No mapping for template: $tpl_name" + continue + fi + + local output_path="$theme_dir/$output_rel" + mkdir -p "$(dirname "$output_path")" + sed -f "$sed_script" "$tpl_file" > "$output_path" + ((count++)) + done + + ok "$theme_name — $count configs generated" +} + +# ╭───────────────────────────────────────────────────────────────────────╮ +# │ Main │ +# ╰───────────────────────────────────────────────────────────────────────╯ + +if [[ $# -eq 1 ]]; then + # Generate for a single theme + generate_theme "$1" +else + # Generate for all themes with colors.toml + echo -e "\n${GREEN}♫${RESET} Generating themed configs from templates...\n" + for theme_dir in "$SYMPHONY_DIR"/themes/*/; do + [[ -f "$theme_dir/colors.toml" ]] && generate_theme "$theme_dir" + done + echo "" +fi diff --git a/install/themes/symphony-tui b/install/themes/symphony-tui index 028dc375..07fb12f7 100755 --- a/install/themes/symphony-tui +++ b/install/themes/symphony-tui @@ -7,9 +7,9 @@ set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -DOTFILES="$(dirname "$(dirname "$SCRIPT_DIR")")" -THEMES_DIR="$DOTFILES/themes" -BRANDING="$DOTFILES/branding" +SYMPHONY_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" +THEMES_DIR="$SYMPHONY_DIR/themes" +BRANDING="$SYMPHONY_DIR/branding" API="https://omarchythemes.com/api/themes/all" C_ACCENT="\033[38;5;218m" @@ -52,12 +52,12 @@ browse_inner() { cat > "$preview_script" <<'EOF' #!/bin/bash [[ -z "$1" || "$1" == "null" ]] && exit 0 -command -v chafa &>/dev/null && curl -sL "$1" 2>/dev/null | chafa -s "${FZF_PREVIEW_COLUMNS:-60}x${FZF_PREVIEW_LINES:-30}" - +curl -sL "$1" 2>/dev/null | kitten icat --clear --transfer-mode=memory --unicode-placeholder --place="${FZF_PREVIEW_COLUMNS}x${FZF_PREVIEW_LINES}@0x0" EOF chmod +x "$preview_script" local sel - sel=$(echo "$data" | jq -r '.[] | select(.url | startswith("https://github.com")) | [.name, .url, .preview_img] | @tsv' | sort | \ + sel=$(echo "$data" | jq -r '.[] | select(.url and (.url | startswith("https://github.com"))) | [.name, .url, .preview_img] | @tsv' | sort | \ fzf --delimiter=$'\t' --with-nth=1 \ --preview="$preview_script {3}" \ --preview-window=right:50% \ @@ -147,7 +147,7 @@ omarchy_menu() { # │ Web Apps │ # ╰───────────────────────────────────────────────────────────────────────╯ -WEBAPP_DIR="$DOTFILES/.config/hypr/scripts" +WEBAPP_DIR="$SYMPHONY_DIR/bin" webapp_menu() { clear @@ -204,7 +204,7 @@ main() { case "$choice" in "Omarchy Themes") omarchy_menu; main ;; "Web Apps") webapp_menu; main ;; - "Choose Shell") "$DOTFILES/scripts/choose-shell"; main ;; + "Choose Shell") "$SYMPHONY_DIR/bin/choose-shell"; main ;; "Delete Themes") delete_themes; main ;; *) clear; exit 0 ;; esac diff --git a/install/themes/uninstall.sh b/install/themes/uninstall.sh index 746cf4a2..95e41f77 100755 --- a/install/themes/uninstall.sh +++ b/install/themes/uninstall.sh @@ -7,31 +7,12 @@ set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -DOTFILES_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" -source "$DOTFILES_ROOT/install/utils.sh" +SYMPHONY_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" +source "$SYMPHONY_ROOT/install/utils.sh" -THEMES_DIR="$DOTFILES_ROOT/themes" +THEMES_DIR="$SYMPHONY_ROOT/themes" SYMPHONY_DIR="$HOME/.config/symphony" -# ╭───────────────────────────────────────────────────────────────────────╮ -# │ Functions │ -# ╰───────────────────────────────────────────────────────────────────────╯ - -show_menu() { - clear - echo - show_banner - echo - warn "Theme Uninstaller" - echo - echo " 1) Delete specific themes" - echo " 2) Complete removal" - echo " 3) Cancel" - echo - read -rp " Select: " choice - echo "$choice" -} - delete_themes() { local themes=() @@ -41,24 +22,9 @@ delete_themes() { [[ ${#themes[@]} -eq 0 ]] && { info "No themes found"; return 0; } - local selected="" - if [[ $HAS_GUM -eq 1 ]]; then - info "Space to select, Enter to confirm" - selected=$(printf '%s\n' "${themes[@]}" | gum choose --no-limit) || return 0 - else - echo - info "Available themes:" - for i in "${!themes[@]}"; do - echo " $((i+1))) ${themes[$i]}" - done - echo - read -rp " Enter numbers (space-separated): " nums - - for num in $nums; do - local idx=$((num-1)) - [[ $idx -ge 0 && $idx -lt ${#themes[@]} ]] && selected+="${themes[$idx]}"$'\n' - done - fi + info "Space to select, Enter to confirm" + local selected + selected=$(printf '%s\n' "${themes[@]}" | gum choose --no-limit) || return 0 [[ -z "$selected" ]] && { info "Nothing selected"; return 0; } @@ -67,7 +33,7 @@ delete_themes() { echo "$selected" | while read -r t; do [[ -n "$t" ]] && echo " $t"; done echo - confirm "Continue?" || return 0 + gum confirm "Continue?" || return 0 while IFS= read -r theme; do [[ -z "$theme" ]] && continue @@ -82,41 +48,53 @@ nuke_everything() { echo warn "COMPLETE REMOVAL" echo - echo " This will remove:" - echo " - Symphony config ($SYMPHONY_DIR)" - echo " - Legacy theme file (~/.current-theme)" - echo " - Pywal cache symlink" + echo " The following will be removed:" + echo + echo " Config: $SYMPHONY_DIR" + echo " Legacy file: ~/.current-theme" + echo " Symlink: ~/.cache/wal/colors.json" echo - confirm "Continue?" || return 0 + gum confirm "Continue?" || return 0 echo read -rp " Type 'yes' to confirm: " answer [[ "$answer" != "yes" ]] && { info "Cancelled"; return 0; } - step "Removing" + step "Removing Symphony" - [[ -d "$SYMPHONY_DIR" ]] && rm -rf "$SYMPHONY_DIR" && ok "Symphony config" - [[ -f "$HOME/.current-theme" ]] && rm -f "$HOME/.current-theme" && ok "Legacy theme file" - [[ -L "$HOME/.cache/wal/colors.json" ]] && rm -f "$HOME/.cache/wal/colors.json" && ok "Pywal symlink" + [[ -d "$SYMPHONY_DIR" ]] && rm -rf "$SYMPHONY_DIR" && ok "Removed config directory" + [[ -f "$HOME/.current-theme" ]] && rm -f "$HOME/.current-theme" && ok "Removed legacy theme file" + [[ -L "$HOME/.cache/wal/colors.json" ]] && rm -f "$HOME/.cache/wal/colors.json" && ok "Removed pywal symlink" + ok "Uninstall complete" echo - ok "Complete removal done" + info "Manual cleanup required:" + info " - Remove PATH entry from your shell config:" + info " Fish: ~/.config/fish/config.fish" + info " Bash: ~/.bashrc" + info " Zsh: ~/.zshrc" echo - info "Manual cleanup:" - info " - Remove PATH entry from shell rc file" - info " - Reload shell: source ~/.bashrc or ~/.zshrc" + info " - Then reload your shell" return 0 } -# ╭───────────────────────────────────────────────────────────────────────╮ -# │ Main │ -# ╰───────────────────────────────────────────────────────────────────────╯ - -choice=$(show_menu) - -case $choice in +# Main +clear +echo +show_banner +echo +warn "Theme Uninstaller" +echo +echo " 1) Delete specific themes" +echo " 2) Complete removal" +echo " 3) Cancel" +echo + +read -rp " Select: " choice + +case "$choice" in 1) delete_themes ;; 2) nuke_everything ;; 3) info "Cancelled" ;; diff --git a/install/utils.sh b/install/utils.sh index fc724dc6..e9f395df 100755 --- a/install/utils.sh +++ b/install/utils.sh @@ -3,7 +3,7 @@ #|--/ /-| Symphony Dotfiles |--/ /-|# #|-/ /--| Shared Utilities |-/ /--|# #|/ /---+---------------------+/ /---|# - +set -e # Bail if not running in bash if [ -z "$BASH_VERSION" ]; then echo "Error: Run the installer with: ./install.sh" @@ -62,7 +62,7 @@ catch_error() { echo -e "${BOLD} Scan to DM me on Discord, happy to help!${RESET}" echo echo -e "${DIM} Or open an issue:${RESET}" - echo -e " https://github.com/vyrx-dev/dotfiles/issues" + echo -e " https://github.com/vyrx-dev/symphony/issues" echo exit 1 } @@ -75,7 +75,7 @@ trap catch_error ERR INT HAS_GUM=$(command -v gum &>/dev/null && echo 1 || echo 0) HAS_TTE=$(command -v tte &>/dev/null && echo 1 || echo 0) -DOTFILES_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +SYMPHONY_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" # ╭───────────────────────────────────────────────────────────────────────╮ # │ Section Headers │ @@ -105,7 +105,7 @@ EOF # Animated logo (only used in themes/install.sh where tte is optional) show_logo() { - local logo="${1:-$DOTFILES_ROOT/branding/symphony.txt}" + local logo="${1:-$SYMPHONY_ROOT/branding/symphony.txt}" [[ ! -f "$logo" ]] && return echo @@ -134,7 +134,7 @@ show_logo() { # Animated musical banner (only used in themes/install.sh) show_musical() { - local logo="${1:-$DOTFILES_ROOT/branding/musical.txt}" + local logo="${1:-$SYMPHONY_ROOT/branding/musical.txt}" [[ ! -f "$logo" ]] && return echo @@ -166,12 +166,7 @@ step() { echo -e "\n${MAGENTA}::${RESET} ${BOLD}$1${RESET}"; } spin() { local msg="$1" shift - if [[ $HAS_GUM -eq 1 ]]; then - gum spin --spinner dot --title " $msg" -- "$@" || true - else - info "$msg" - "$@" >/dev/null 2>&1 || true - fi + gum spin --spinner dot --title " $msg" -- "$@" || true } confirm() { diff --git a/install/webapps.sh b/install/webapps.sh index db98bd5b..cf1a1421 100755 --- a/install/webapps.sh +++ b/install/webapps.sh @@ -3,7 +3,7 @@ #|--/ /-| Symphony Dotfiles |--/ /-|# #|-/ /--| Web Apps Installer |-/ /--|# #|/ /---+---------------------+/ /---|# - +set -e # Predefined webapps: "Name|URL|Icon" # Icons from https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/ WEBAPPS=( @@ -12,11 +12,15 @@ WEBAPPS=( "Reddit|https://www.reddit.com/|https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/reddit.png" "WhatsApp|https://web.whatsapp.com/|https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/whatsapp.png" "ChatGPT|https://chatgpt.com/|https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/chatgpt.png" + "Perplexity|https://perplexity.ai/|https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/perplexity.png" "Gmail|https://mail.google.com/|https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/gmail.png" "Google Photos|https://photos.google.com/|https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/google-photos.png" "Google Meet|https://meet.google.com/|https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/google-meet.png" + "Google Drive|https://drive.google.com/|https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-drive.png" + "Todoist|https://todoist.com/|https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/todoist.png" + "Calendar|https://calendar.google.com/|https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-calendar.png" "LinkedIn|https://www.linkedin.com/|https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/linkedin.png" - "Pinterest|https://www.pinterest.com/|https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/pinterest.png" + "Pinterest|https://www.pinterest.com/|https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/pinterest.png" "Figma|https://figma.com/|https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/figma.png" "Notion|https://notion.so/|https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/notion.png" "Twitter|https://x.com/|https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/twitter.png" @@ -28,26 +32,20 @@ WEBAPPS=( "Discord|https://discord.com/channels/@me|https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/discord.png" "Spotify|https://open.spotify.com/|https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/spotify.png" "Hotstar|https://www.hotstar.com/in/home|https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/jiohotstar.png" - "Google Drive|https://drive.google.com/|https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-drive.png" "Netflix|https://www.netflix.com/|https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/netflix.png" - "Chess|https://www.chess.com/|https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/chess.png" + "AUR|https://aur.archlinux.org/|https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/arch-linux.png" + "YouTube Music|https://music.youtube.com/|https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/youtube-music.png" ) -WEBAPP_INSTALL="$HOME/.config/hypr/scripts/webapp-install" +WEBAPP_INSTALL="$HOME/.local/bin/webapp-install" APPS_DIR="$HOME/.local/share/applications" -# Check what's already installed is_installed() { local name="$1" [[ -f "$APPS_DIR/$name.desktop" ]] } install_webapps() { - command -v gum &>/dev/null || { - echo "gum required" - exit 1 - } - # Build selection list with install status local options=() local names=() @@ -76,10 +74,8 @@ install_webapps() { } while IFS= read -r choice; do - # Remove " (installed)" suffix if present name="${choice% (installed)}" - # Find the entry for entry in "${WEBAPPS[@]}"; do IFS='|' read -r n url icon <<<"$entry" if [[ "$n" == "$name" ]]; then @@ -98,5 +94,4 @@ install_webapps() { echo -e "\nDone! Apps available in launcher (Super + Space)" } -# Run if executed directly [[ "${BASH_SOURCE[0]}" == "${0}" ]] && install_webapps || true diff --git a/.local/share/applications/brave-browser.desktop b/local/share/applications/brave-browser.desktop similarity index 100% rename from .local/share/applications/brave-browser.desktop rename to local/share/applications/brave-browser.desktop diff --git a/.local/share/applications/chromium.desktop b/local/share/applications/chromium.desktop similarity index 100% rename from .local/share/applications/chromium.desktop rename to local/share/applications/chromium.desktop diff --git a/.local/share/applications/grub-customizer.desktop b/local/share/applications/grub-customizer.desktop similarity index 100% rename from .local/share/applications/grub-customizer.desktop rename to local/share/applications/grub-customizer.desktop diff --git a/pending-task.md b/pending-task.md new file mode 100644 index 00000000..37314608 --- /dev/null +++ b/pending-task.md @@ -0,0 +1,62 @@ +# Pending Tasks + +## 1. Move all config scripts into `bin/` + +Scripts currently scattered across 3 directories: +- `config/hypr/scripts/` — 27 scripts +- `config/rofi/scripts/` — 12 scripts +- `config/waybar/scripts/` — 4 scripts + +Move all 43 into `bin/`. One conflict: `restart-app` exists in both `bin/` and `config/hypr/scripts/` — compare and keep the right one. + +### References to update (~30 occurrences) + +**Hyprland configs:** +- `config/hypr/autostart.conf` — `battery-notify`, `first-run` +- `config/hypr/bindings.conf` — `launch-browser`, `launch-webapp`, `focus` +- `config/hypr/hypridle.conf` — `lock-screen`, `screensaver-launch` + +**Self-references inside scripts:** +- `screensaver-launch` → references `screensaver` +- `webapp-install` → references `launch-webapp` + +**Waybar:** +- `config/waybar/config.jsonc` — `rofibeats`, `screenrecord`, `indicator-record`, `indicator-idle`, `toggle-idle`, `wall-picker`, `random-wall`, `power-profiles` + +**Fish env:** +- `config/fish/env.fish` — PATH entries for `waybar/scripts` and `rofi/scripts` (remove — bin/ already in PATH) + +**Install scripts:** +- `install/themes/symphony` — `change-theme`, `themePicker` +- `install/webapps.sh` — `webapp-install` +- `bin/theme-showcase` — `change-theme` + +**Pattern:** All refs use `~/.config/{hypr,rofi,waybar}/scripts/name`. After move, scripts live in `~/.local/bin/` (deploy target for `bin/`), which is already in PATH. So refs become just the script name or `~/.local/bin/name`. + +--- + +## 2. Replace `config/tmux/` with single `.tmux.conf` + +Current: `config/tmux/tmux.conf`, `statusline.conf`, `utility.conf` +Replace with: `~/workspace/.tmux.conf` (single file) +Deploy to: `~/.tmux.conf` + +--- + +## 3. Update TODO.md + +- Tick: Neovim cleanup (done — replaced with workspace config) +- Add + tick: Single tmux file for all configuration + +--- + +## 4. Delete old directories + +- `config/hypr/scripts/` +- `config/rofi/scripts/` +- `config/waybar/scripts/` +- `config/tmux/` + +--- + +## 5. Do NOT commit/push yet — just stage changes diff --git a/scripts/restart-app b/scripts/restart-app deleted file mode 100755 index 6b61c6b4..00000000 --- a/scripts/restart-app +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -pkill -x $1 -setsid $1 >/dev/null 2>&1 & diff --git a/themes/dynamic/.config/alacritty/colors.toml b/themes/dynamic/alacritty/colors.toml similarity index 96% rename from themes/dynamic/.config/alacritty/colors.toml rename to themes/dynamic/alacritty/colors.toml index 4cc4e907..1abe05f2 100644 --- a/themes/dynamic/.config/alacritty/colors.toml +++ b/themes/dynamic/alacritty/colors.toml @@ -1,5 +1,5 @@ # Symphony - Alacritty Colors (generated by matugen) -# https://github.com/vyrx-dev/dotfiles +# https://github.com/vyrx-dev/symphony [colors.primary] background = '#18130b' diff --git a/themes/dynamic/.config/btop/themes/current.theme b/themes/dynamic/btop/themes/current.theme similarity index 100% rename from themes/dynamic/.config/btop/themes/current.theme rename to themes/dynamic/btop/themes/current.theme diff --git a/themes/dynamic/.config/cava/config b/themes/dynamic/cava/config similarity index 100% rename from themes/dynamic/.config/cava/config rename to themes/dynamic/cava/config diff --git a/themes/dynamic/.config/fuzzel/fuzzel_theme.ini b/themes/dynamic/fuzzel/fuzzel_theme.ini similarity index 100% rename from themes/dynamic/.config/fuzzel/fuzzel_theme.ini rename to themes/dynamic/fuzzel/fuzzel_theme.ini diff --git a/themes/dynamic/.config/ghostty/theme b/themes/dynamic/ghostty/theme similarity index 93% rename from themes/dynamic/.config/ghostty/theme rename to themes/dynamic/ghostty/theme index 5936dcd7..6d658805 100644 --- a/themes/dynamic/.config/ghostty/theme +++ b/themes/dynamic/ghostty/theme @@ -1,5 +1,5 @@ # Symphony - Ghostty Colors (generated by matugen) -# https://github.com/vyrx-dev/dotfiles +# https://github.com/vyrx-dev/symphony background = #18130b foreground = #ede1d4 diff --git a/themes/dynamic/.config/gtk-3.0/colors.css b/themes/dynamic/gtk-3.0/colors.css similarity index 100% rename from themes/dynamic/.config/gtk-3.0/colors.css rename to themes/dynamic/gtk-3.0/colors.css diff --git a/themes/dynamic/.config/gtk-4.0/colors.css b/themes/dynamic/gtk-4.0/colors.css similarity index 100% rename from themes/dynamic/.config/gtk-4.0/colors.css rename to themes/dynamic/gtk-4.0/colors.css diff --git a/themes/dynamic/.config/hypr/theme/colors.conf b/themes/dynamic/hypr/theme/colors.conf similarity index 100% rename from themes/dynamic/.config/hypr/theme/colors.conf rename to themes/dynamic/hypr/theme/colors.conf diff --git a/themes/dynamic/.config/kitty/colors.conf b/themes/dynamic/kitty/colors.conf similarity index 93% rename from themes/dynamic/.config/kitty/colors.conf rename to themes/dynamic/kitty/colors.conf index b2276218..ebc9879e 100644 --- a/themes/dynamic/.config/kitty/colors.conf +++ b/themes/dynamic/kitty/colors.conf @@ -1,5 +1,5 @@ # Symphony - Kitty Colors (generated by matugen) -# https://github.com/vyrx-dev/dotfiles +# https://github.com/vyrx-dev/symphony cursor #f2be6e cursor_text_color #442c00 diff --git a/themes/dynamic/.config/obsidian/theme.css b/themes/dynamic/obsidian/theme.css similarity index 100% rename from themes/dynamic/.config/obsidian/theme.css rename to themes/dynamic/obsidian/theme.css diff --git a/themes/dynamic/.config/rmpc/themes/current.ron b/themes/dynamic/rmpc/themes/current.ron similarity index 100% rename from themes/dynamic/.config/rmpc/themes/current.ron rename to themes/dynamic/rmpc/themes/current.ron diff --git a/themes/dynamic/.config/rofi/colors.rasi b/themes/dynamic/rofi/colors.rasi similarity index 100% rename from themes/dynamic/.config/rofi/colors.rasi rename to themes/dynamic/rofi/colors.rasi diff --git a/themes/dynamic/.config/spicetify/Themes/symphony/user.css b/themes/dynamic/spicetify/Themes/symphony/user.css similarity index 100% rename from themes/dynamic/.config/spicetify/Themes/symphony/user.css rename to themes/dynamic/spicetify/Themes/symphony/user.css diff --git a/themes/dynamic/.config/starship.toml b/themes/dynamic/starship.toml similarity index 100% rename from themes/dynamic/.config/starship.toml rename to themes/dynamic/starship.toml diff --git a/themes/dynamic/.config/swaync/matugen/colors.css b/themes/dynamic/swaync/matugen/colors.css similarity index 100% rename from themes/dynamic/.config/swaync/matugen/colors.css rename to themes/dynamic/swaync/matugen/colors.css diff --git a/themes/dynamic/.config/vesktop/themes/symphony-discord.css b/themes/dynamic/vesktop/themes/symphony-discord.css similarity index 100% rename from themes/dynamic/.config/vesktop/themes/symphony-discord.css rename to themes/dynamic/vesktop/themes/symphony-discord.css diff --git a/themes/dynamic/.cache/wal/colors b/themes/dynamic/wal/colors similarity index 100% rename from themes/dynamic/.cache/wal/colors rename to themes/dynamic/wal/colors diff --git a/themes/dynamic/.cache/wal/colors.json b/themes/dynamic/wal/colors.json similarity index 100% rename from themes/dynamic/.cache/wal/colors.json rename to themes/dynamic/wal/colors.json diff --git a/themes/dynamic/.config/waybar/colors.css b/themes/dynamic/waybar/colors.css similarity index 100% rename from themes/dynamic/.config/waybar/colors.css rename to themes/dynamic/waybar/colors.css diff --git a/themes/dynamic/.config/yazi/theme.toml b/themes/dynamic/yazi/theme.toml similarity index 100% rename from themes/dynamic/.config/yazi/theme.toml rename to themes/dynamic/yazi/theme.toml diff --git a/themes/espresso/.config/alacritty/colors.toml b/themes/espresso/alacritty/colors.toml similarity index 100% rename from themes/espresso/.config/alacritty/colors.toml rename to themes/espresso/alacritty/colors.toml diff --git a/themes/espresso/.config/btop/themes/current.theme b/themes/espresso/btop/themes/current.theme similarity index 100% rename from themes/espresso/.config/btop/themes/current.theme rename to themes/espresso/btop/themes/current.theme diff --git a/themes/espresso/.config/cava/config b/themes/espresso/cava/config similarity index 100% rename from themes/espresso/.config/cava/config rename to themes/espresso/cava/config diff --git a/themes/espresso/colors.toml b/themes/espresso/colors.toml new file mode 100644 index 00000000..2ae672c6 --- /dev/null +++ b/themes/espresso/colors.toml @@ -0,0 +1,35 @@ +# Symphony Theme Colors +# Theme: Espresso + +# === Standard palette === +accent = "#e8b89a" +cursor = "#e8b89a" +foreground = "#f0e4dc" +background = "#1a1513" +selection_foreground = "#1a1513" +selection_background = "#e8b89a" + +color0 = "#2e2520" +color1 = "#e8a090" +color2 = "#c8b888" +color3 = "#e8c8a0" +color4 = "#c8a898" +color5 = "#d8a8a0" +color6 = "#b8b098" +color7 = "#d8ccc0" +color8 = "#5c534a" +color9 = "#f0b8a8" +color10 = "#d8c8a0" +color11 = "#f0d8b8" +color12 = "#d8b8a8" +color13 = "#e8b8b0" +color14 = "#c8c0a8" +color15 = "#f0e4dc" + +# === Extended semantic === +surface = "#2e2520" +muted = "#5c534a" +subtle = "#8a7968" +text = "#d8ccc0" +overlay = "#3a322c" +warn = "#d8a078" diff --git a/themes/espresso/.config/ghostty/theme b/themes/espresso/ghostty/theme similarity index 100% rename from themes/espresso/.config/ghostty/theme rename to themes/espresso/ghostty/theme diff --git a/themes/espresso/.config/gtk-3.0/colors.css b/themes/espresso/gtk-3.0/colors.css similarity index 100% rename from themes/espresso/.config/gtk-3.0/colors.css rename to themes/espresso/gtk-3.0/colors.css diff --git a/themes/espresso/.config/gtk-4.0/colors.css b/themes/espresso/gtk-4.0/colors.css similarity index 100% rename from themes/espresso/.config/gtk-4.0/colors.css rename to themes/espresso/gtk-4.0/colors.css diff --git a/themes/espresso/.config/hypr/theme/colors.conf b/themes/espresso/hypr/theme/colors.conf similarity index 100% rename from themes/espresso/.config/hypr/theme/colors.conf rename to themes/espresso/hypr/theme/colors.conf diff --git a/themes/espresso/.config/kitty/colors.conf b/themes/espresso/kitty/colors.conf similarity index 100% rename from themes/espresso/.config/kitty/colors.conf rename to themes/espresso/kitty/colors.conf diff --git a/themes/espresso/.config/nvim/theme.lua b/themes/espresso/nvim/theme.lua similarity index 100% rename from themes/espresso/.config/nvim/theme.lua rename to themes/espresso/nvim/theme.lua diff --git a/themes/espresso/.config/obsidian/theme.css b/themes/espresso/obsidian/theme.css similarity index 100% rename from themes/espresso/.config/obsidian/theme.css rename to themes/espresso/obsidian/theme.css diff --git a/themes/espresso/.config/rmpc/themes/theme.ron b/themes/espresso/rmpc/themes/theme.ron similarity index 100% rename from themes/espresso/.config/rmpc/themes/theme.ron rename to themes/espresso/rmpc/themes/theme.ron diff --git a/themes/espresso/.config/rofi/colors.rasi b/themes/espresso/rofi/colors.rasi similarity index 100% rename from themes/espresso/.config/rofi/colors.rasi rename to themes/espresso/rofi/colors.rasi diff --git a/themes/espresso/.config/spicetify/Themes/symphony/color.ini b/themes/espresso/spicetify/Themes/symphony/color.ini similarity index 100% rename from themes/espresso/.config/spicetify/Themes/symphony/color.ini rename to themes/espresso/spicetify/Themes/symphony/color.ini diff --git a/themes/espresso/.config/spicetify/Themes/symphony/user.css b/themes/espresso/spicetify/Themes/symphony/user.css similarity index 100% rename from themes/espresso/.config/spicetify/Themes/symphony/user.css rename to themes/espresso/spicetify/Themes/symphony/user.css diff --git a/themes/espresso/.config/starship.toml b/themes/espresso/starship.toml similarity index 100% rename from themes/espresso/.config/starship.toml rename to themes/espresso/starship.toml diff --git a/themes/espresso/.config/vesktop/themes/symphony-discord.css b/themes/espresso/vesktop/themes/symphony-discord.css similarity index 100% rename from themes/espresso/.config/vesktop/themes/symphony-discord.css rename to themes/espresso/vesktop/themes/symphony-discord.css diff --git a/themes/espresso/.cache/wal/colors b/themes/espresso/wal/colors similarity index 100% rename from themes/espresso/.cache/wal/colors rename to themes/espresso/wal/colors diff --git a/themes/espresso/.cache/wal/colors.json b/themes/espresso/wal/colors.json similarity index 90% rename from themes/espresso/.cache/wal/colors.json rename to themes/espresso/wal/colors.json index 34e8df74..57be9f3a 100644 --- a/themes/espresso/.cache/wal/colors.json +++ b/themes/espresso/wal/colors.json @@ -1,5 +1,5 @@ { - "wallpaper": "/home/vyrx/dotfiles/themes/espresso/wallpaper", + "wallpaper": "/home/vyrx/symphony/themes/espresso/wallpaper", "alpha": "100", "special": { "background": "#1a1513", diff --git a/themes/espresso/.config/waybar/colors.css b/themes/espresso/waybar/colors.css similarity index 100% rename from themes/espresso/.config/waybar/colors.css rename to themes/espresso/waybar/colors.css diff --git a/themes/espresso/.config/yazi/theme.toml b/themes/espresso/yazi/theme.toml similarity index 100% rename from themes/espresso/.config/yazi/theme.toml rename to themes/espresso/yazi/theme.toml diff --git a/themes/forest/.config/alacritty/colors.toml b/themes/forest/alacritty/colors.toml similarity index 100% rename from themes/forest/.config/alacritty/colors.toml rename to themes/forest/alacritty/colors.toml diff --git a/themes/forest/.config/btop/themes/current.theme b/themes/forest/btop/themes/current.theme similarity index 100% rename from themes/forest/.config/btop/themes/current.theme rename to themes/forest/btop/themes/current.theme diff --git a/themes/forest/.config/cava/config b/themes/forest/cava/config similarity index 100% rename from themes/forest/.config/cava/config rename to themes/forest/cava/config diff --git a/themes/forest/colors.toml b/themes/forest/colors.toml new file mode 100644 index 00000000..350f012d --- /dev/null +++ b/themes/forest/colors.toml @@ -0,0 +1,35 @@ +# Symphony Theme Colors +# Theme: Forest + +# === Standard palette === +accent = "#62e2a4" +cursor = "#62e2a4" +foreground = "#fdfffd" +background = "#020802" +selection_foreground = "#020802" +selection_background = "#62e2a4" + +color0 = "#020802" +color1 = "#bf5a7c" +color2 = "#70cf6c" +color3 = "#DFEC63" +color4 = "#62e2a4" +color5 = "#e0eb7a" +color6 = "#9ed8dd" +color7 = "#bff2ab" +color8 = "#518a51" +color9 = "#dcb0be" +color10 = "#b4e8b2" +color11 = "#f6fdb7" +color12 = "#b0f3d2" +color13 = "#f8fdce" +color14 = "#e3f5f6" +color15 = "#fdfffd" + +# === Extended semantic === +surface = "#202620" +muted = "#6a8a6a" +subtle = "#9ab89a" +text = "#fdfffd" +overlay = "#2f352f" +warn = "#DFEC63" diff --git a/themes/forest/.config/ghostty/theme b/themes/forest/ghostty/theme similarity index 100% rename from themes/forest/.config/ghostty/theme rename to themes/forest/ghostty/theme diff --git a/themes/forest/.config/gtk-3.0/colors.css b/themes/forest/gtk-3.0/colors.css similarity index 100% rename from themes/forest/.config/gtk-3.0/colors.css rename to themes/forest/gtk-3.0/colors.css diff --git a/themes/forest/.config/gtk-4.0/colors.css b/themes/forest/gtk-4.0/colors.css similarity index 100% rename from themes/forest/.config/gtk-4.0/colors.css rename to themes/forest/gtk-4.0/colors.css diff --git a/themes/forest/.config/hypr/theme/colors.conf b/themes/forest/hypr/theme/colors.conf similarity index 100% rename from themes/forest/.config/hypr/theme/colors.conf rename to themes/forest/hypr/theme/colors.conf diff --git a/themes/forest/.config/kitty/colors.conf b/themes/forest/kitty/colors.conf similarity index 100% rename from themes/forest/.config/kitty/colors.conf rename to themes/forest/kitty/colors.conf diff --git a/themes/forest/.config/nvim/theme.lua b/themes/forest/nvim/theme.lua similarity index 100% rename from themes/forest/.config/nvim/theme.lua rename to themes/forest/nvim/theme.lua diff --git a/themes/forest/.config/obsidian/theme.css b/themes/forest/obsidian/theme.css similarity index 100% rename from themes/forest/.config/obsidian/theme.css rename to themes/forest/obsidian/theme.css diff --git a/themes/forest/.config/rmpc/themes/theme.ron b/themes/forest/rmpc/themes/theme.ron similarity index 100% rename from themes/forest/.config/rmpc/themes/theme.ron rename to themes/forest/rmpc/themes/theme.ron diff --git a/themes/forest/.config/rofi/colors.rasi b/themes/forest/rofi/colors.rasi similarity index 100% rename from themes/forest/.config/rofi/colors.rasi rename to themes/forest/rofi/colors.rasi diff --git a/themes/forest/.config/spicetify/Themes/symphony/color.ini b/themes/forest/spicetify/Themes/symphony/color.ini similarity index 100% rename from themes/forest/.config/spicetify/Themes/symphony/color.ini rename to themes/forest/spicetify/Themes/symphony/color.ini diff --git a/themes/forest/.config/spicetify/Themes/symphony/user.css b/themes/forest/spicetify/Themes/symphony/user.css similarity index 100% rename from themes/forest/.config/spicetify/Themes/symphony/user.css rename to themes/forest/spicetify/Themes/symphony/user.css diff --git a/themes/forest/.config/starship.toml b/themes/forest/starship.toml similarity index 100% rename from themes/forest/.config/starship.toml rename to themes/forest/starship.toml diff --git a/themes/forest/.config/vesktop/themes/symphony-discord.css b/themes/forest/vesktop/themes/symphony-discord.css similarity index 100% rename from themes/forest/.config/vesktop/themes/symphony-discord.css rename to themes/forest/vesktop/themes/symphony-discord.css diff --git a/themes/forest/.cache/wal/colors b/themes/forest/wal/colors similarity index 100% rename from themes/forest/.cache/wal/colors rename to themes/forest/wal/colors diff --git a/themes/forest/.cache/wal/colors.json b/themes/forest/wal/colors.json similarity index 90% rename from themes/forest/.cache/wal/colors.json rename to themes/forest/wal/colors.json index e6c12943..0d1d9785 100644 --- a/themes/forest/.cache/wal/colors.json +++ b/themes/forest/wal/colors.json @@ -1,5 +1,5 @@ { - "wallpaper": "/home/vyrx/dotfiles/themes/forest/wallpaper", + "wallpaper": "/home/vyrx/symphony/themes/forest/wallpaper", "alpha": "100", "special": { "background": "#020802", diff --git a/themes/forest/.config/waybar/colors.css b/themes/forest/waybar/colors.css similarity index 100% rename from themes/forest/.config/waybar/colors.css rename to themes/forest/waybar/colors.css diff --git a/themes/forest/.config/yazi/theme.toml b/themes/forest/yazi/theme.toml similarity index 100% rename from themes/forest/.config/yazi/theme.toml rename to themes/forest/yazi/theme.toml diff --git a/themes/gruvbox-material/.config/alacritty/colors.toml b/themes/gruvbox-material/alacritty/colors.toml similarity index 100% rename from themes/gruvbox-material/.config/alacritty/colors.toml rename to themes/gruvbox-material/alacritty/colors.toml diff --git a/themes/gruvbox-material/.config/btop/themes/current.theme b/themes/gruvbox-material/btop/themes/current.theme similarity index 100% rename from themes/gruvbox-material/.config/btop/themes/current.theme rename to themes/gruvbox-material/btop/themes/current.theme diff --git a/themes/gruvbox-material/.config/cava/config b/themes/gruvbox-material/cava/config similarity index 100% rename from themes/gruvbox-material/.config/cava/config rename to themes/gruvbox-material/cava/config diff --git a/themes/gruvbox-material/colors.toml b/themes/gruvbox-material/colors.toml new file mode 100644 index 00000000..c364e016 --- /dev/null +++ b/themes/gruvbox-material/colors.toml @@ -0,0 +1,35 @@ +# Symphony Theme Colors +# Theme: Gruvbox Material + +# === Standard palette === +accent = "#7daea3" +cursor = "#ddc7a1" +foreground = "#ddc7a1" +background = "#111313" +selection_foreground = "#111313" +selection_background = "#ddc7a1" + +color0 = "#111313" +color1 = "#ea6962" +color2 = "#a9b665" +color3 = "#d8a657" +color4 = "#7daea3" +color5 = "#d3869b" +color6 = "#89b482" +color7 = "#d4be98" +color8 = "#32302f" +color9 = "#ea6962" +color10 = "#a9b665" +color11 = "#d8a657" +color12 = "#7daea3" +color13 = "#d3869b" +color14 = "#89b482" +color15 = "#ddc7a1" + +# === Extended semantic === +surface = "#2f3131" +muted = "#7c6f64" +subtle = "#a89984" +text = "#ddc7a1" +overlay = "#3e4040" +warn = "#d8a657" diff --git a/themes/gruvbox-material/.config/ghostty/theme b/themes/gruvbox-material/ghostty/theme similarity index 100% rename from themes/gruvbox-material/.config/ghostty/theme rename to themes/gruvbox-material/ghostty/theme diff --git a/themes/gruvbox-material/.config/gtk-3.0/colors.css b/themes/gruvbox-material/gtk-3.0/colors.css similarity index 100% rename from themes/gruvbox-material/.config/gtk-3.0/colors.css rename to themes/gruvbox-material/gtk-3.0/colors.css diff --git a/themes/gruvbox-material/.config/gtk-4.0/colors.css b/themes/gruvbox-material/gtk-4.0/colors.css similarity index 100% rename from themes/gruvbox-material/.config/gtk-4.0/colors.css rename to themes/gruvbox-material/gtk-4.0/colors.css diff --git a/themes/gruvbox-material/.config/hypr/theme/colors.conf b/themes/gruvbox-material/hypr/theme/colors.conf similarity index 100% rename from themes/gruvbox-material/.config/hypr/theme/colors.conf rename to themes/gruvbox-material/hypr/theme/colors.conf diff --git a/themes/gruvbox-material/.config/kitty/colors.conf b/themes/gruvbox-material/kitty/colors.conf similarity index 100% rename from themes/gruvbox-material/.config/kitty/colors.conf rename to themes/gruvbox-material/kitty/colors.conf diff --git a/themes/gruvbox-material/.config/nvim/theme.lua b/themes/gruvbox-material/nvim/theme.lua similarity index 100% rename from themes/gruvbox-material/.config/nvim/theme.lua rename to themes/gruvbox-material/nvim/theme.lua diff --git a/themes/gruvbox-material/.config/obsidian/theme.css b/themes/gruvbox-material/obsidian/theme.css similarity index 100% rename from themes/gruvbox-material/.config/obsidian/theme.css rename to themes/gruvbox-material/obsidian/theme.css diff --git a/themes/gruvbox-material/.config/rmpc/themes/theme.ron b/themes/gruvbox-material/rmpc/themes/theme.ron similarity index 100% rename from themes/gruvbox-material/.config/rmpc/themes/theme.ron rename to themes/gruvbox-material/rmpc/themes/theme.ron diff --git a/themes/gruvbox-material/.config/rofi/colors.rasi b/themes/gruvbox-material/rofi/colors.rasi similarity index 100% rename from themes/gruvbox-material/.config/rofi/colors.rasi rename to themes/gruvbox-material/rofi/colors.rasi diff --git a/themes/gruvbox-material/.config/spicetify/Themes/symphony/color.ini b/themes/gruvbox-material/spicetify/Themes/symphony/color.ini similarity index 100% rename from themes/gruvbox-material/.config/spicetify/Themes/symphony/color.ini rename to themes/gruvbox-material/spicetify/Themes/symphony/color.ini diff --git a/themes/gruvbox-material/.config/spicetify/Themes/symphony/user.css b/themes/gruvbox-material/spicetify/Themes/symphony/user.css similarity index 100% rename from themes/gruvbox-material/.config/spicetify/Themes/symphony/user.css rename to themes/gruvbox-material/spicetify/Themes/symphony/user.css diff --git a/themes/gruvbox-material/.config/starship.toml b/themes/gruvbox-material/starship.toml similarity index 100% rename from themes/gruvbox-material/.config/starship.toml rename to themes/gruvbox-material/starship.toml diff --git a/themes/gruvbox-material/.config/vesktop/themes/symphony-discord.css b/themes/gruvbox-material/vesktop/themes/symphony-discord.css similarity index 100% rename from themes/gruvbox-material/.config/vesktop/themes/symphony-discord.css rename to themes/gruvbox-material/vesktop/themes/symphony-discord.css diff --git a/themes/gruvbox-material/.cache/wal/colors b/themes/gruvbox-material/wal/colors similarity index 100% rename from themes/gruvbox-material/.cache/wal/colors rename to themes/gruvbox-material/wal/colors diff --git a/themes/gruvbox-material/.cache/wal/colors.json b/themes/gruvbox-material/wal/colors.json similarity index 90% rename from themes/gruvbox-material/.cache/wal/colors.json rename to themes/gruvbox-material/wal/colors.json index fd18d57a..6426cd49 100644 --- a/themes/gruvbox-material/.cache/wal/colors.json +++ b/themes/gruvbox-material/wal/colors.json @@ -1,5 +1,5 @@ { - "wallpaper": "/home/vyrx/dotfiles/themes/gruvbox-material/wallpaper", + "wallpaper": "/home/vyrx/symphony/themes/gruvbox-material/wallpaper", "alpha": "100", "special": { "background": "#111313", diff --git a/themes/gruvbox-material/.config/waybar/colors.css b/themes/gruvbox-material/waybar/colors.css similarity index 100% rename from themes/gruvbox-material/.config/waybar/colors.css rename to themes/gruvbox-material/waybar/colors.css diff --git a/themes/gruvbox-material/.config/yazi/theme.toml b/themes/gruvbox-material/yazi/theme.toml similarity index 100% rename from themes/gruvbox-material/.config/yazi/theme.toml rename to themes/gruvbox-material/yazi/theme.toml diff --git a/themes/kanagawa/.config/alacritty/colors.toml b/themes/kanagawa/alacritty/colors.toml similarity index 100% rename from themes/kanagawa/.config/alacritty/colors.toml rename to themes/kanagawa/alacritty/colors.toml diff --git a/themes/kanagawa/.config/btop/themes/current.theme b/themes/kanagawa/btop/themes/current.theme similarity index 100% rename from themes/kanagawa/.config/btop/themes/current.theme rename to themes/kanagawa/btop/themes/current.theme diff --git a/themes/kanagawa/.config/cava/config b/themes/kanagawa/cava/config similarity index 100% rename from themes/kanagawa/.config/cava/config rename to themes/kanagawa/cava/config diff --git a/themes/kanagawa/colors.toml b/themes/kanagawa/colors.toml new file mode 100644 index 00000000..8135cf6b --- /dev/null +++ b/themes/kanagawa/colors.toml @@ -0,0 +1,35 @@ +# Symphony Theme Colors +# Theme: Kanagawa + +# === Standard palette === +accent = "#7E9CD8" +cursor = "#C8C093" +foreground = "#DCD7BA" +background = "#1F1F28" +selection_foreground = "#C8C093" +selection_background = "#2D4F67" + +color0 = "#16161D" +color1 = "#C34043" +color2 = "#76946A" +color3 = "#C0A36E" +color4 = "#7E9CD8" +color5 = "#957FB8" +color6 = "#6A9589" +color7 = "#C8C093" +color8 = "#727169" +color9 = "#E82424" +color10 = "#98BB6C" +color11 = "#E6C384" +color12 = "#7FB4CA" +color13 = "#938AA9" +color14 = "#7AA89F" +color15 = "#DCD7BA" + +# === Extended semantic === +surface = "#2A2A37" +muted = "#54546D" +subtle = "#727169" +text = "#C8C093" +overlay = "#363646" +warn = "#DCA561" diff --git a/themes/kanagawa/.config/ghostty/theme b/themes/kanagawa/ghostty/theme similarity index 100% rename from themes/kanagawa/.config/ghostty/theme rename to themes/kanagawa/ghostty/theme diff --git a/themes/kanagawa/.config/gtk-3.0/colors.css b/themes/kanagawa/gtk-3.0/colors.css similarity index 100% rename from themes/kanagawa/.config/gtk-3.0/colors.css rename to themes/kanagawa/gtk-3.0/colors.css diff --git a/themes/kanagawa/.config/gtk-4.0/colors.css b/themes/kanagawa/gtk-4.0/colors.css similarity index 100% rename from themes/kanagawa/.config/gtk-4.0/colors.css rename to themes/kanagawa/gtk-4.0/colors.css diff --git a/themes/kanagawa/.config/hypr/theme/colors.conf b/themes/kanagawa/hypr/theme/colors.conf similarity index 100% rename from themes/kanagawa/.config/hypr/theme/colors.conf rename to themes/kanagawa/hypr/theme/colors.conf diff --git a/themes/kanagawa/.config/kitty/colors.conf b/themes/kanagawa/kitty/colors.conf similarity index 100% rename from themes/kanagawa/.config/kitty/colors.conf rename to themes/kanagawa/kitty/colors.conf diff --git a/themes/kanagawa/.config/nvim/theme.lua b/themes/kanagawa/nvim/theme.lua similarity index 100% rename from themes/kanagawa/.config/nvim/theme.lua rename to themes/kanagawa/nvim/theme.lua diff --git a/themes/kanagawa/.config/obsidian/theme.css b/themes/kanagawa/obsidian/theme.css similarity index 100% rename from themes/kanagawa/.config/obsidian/theme.css rename to themes/kanagawa/obsidian/theme.css diff --git a/themes/kanagawa/.config/rmpc/themes/theme.ron b/themes/kanagawa/rmpc/themes/theme.ron similarity index 100% rename from themes/kanagawa/.config/rmpc/themes/theme.ron rename to themes/kanagawa/rmpc/themes/theme.ron diff --git a/themes/kanagawa/.config/rofi/colors.rasi b/themes/kanagawa/rofi/colors.rasi similarity index 100% rename from themes/kanagawa/.config/rofi/colors.rasi rename to themes/kanagawa/rofi/colors.rasi diff --git a/themes/kanagawa/.config/spicetify/Themes/symphony/color.ini b/themes/kanagawa/spicetify/Themes/symphony/color.ini similarity index 100% rename from themes/kanagawa/.config/spicetify/Themes/symphony/color.ini rename to themes/kanagawa/spicetify/Themes/symphony/color.ini diff --git a/themes/kanagawa/.config/spicetify/Themes/symphony/user.css b/themes/kanagawa/spicetify/Themes/symphony/user.css similarity index 100% rename from themes/kanagawa/.config/spicetify/Themes/symphony/user.css rename to themes/kanagawa/spicetify/Themes/symphony/user.css diff --git a/themes/kanagawa/.config/starship.toml b/themes/kanagawa/starship.toml similarity index 100% rename from themes/kanagawa/.config/starship.toml rename to themes/kanagawa/starship.toml diff --git a/themes/kanagawa/.config/vesktop/themes/symphony-discord.css b/themes/kanagawa/vesktop/themes/symphony-discord.css similarity index 100% rename from themes/kanagawa/.config/vesktop/themes/symphony-discord.css rename to themes/kanagawa/vesktop/themes/symphony-discord.css diff --git a/themes/kanagawa/.cache/wal/colors b/themes/kanagawa/wal/colors similarity index 100% rename from themes/kanagawa/.cache/wal/colors rename to themes/kanagawa/wal/colors diff --git a/themes/kanagawa/.cache/wal/colors.json b/themes/kanagawa/wal/colors.json similarity index 90% rename from themes/kanagawa/.cache/wal/colors.json rename to themes/kanagawa/wal/colors.json index 9ad9a83d..2e22b126 100644 --- a/themes/kanagawa/.cache/wal/colors.json +++ b/themes/kanagawa/wal/colors.json @@ -1,5 +1,5 @@ { - "wallpaper": "/home/vyrx/dotfiles/themes/kanagawa/wallpaper", + "wallpaper": "/home/vyrx/symphony/themes/kanagawa/wallpaper", "alpha": "100", "special": { "background": "#1F1F28", diff --git a/themes/kanagawa/.config/waybar/colors.css b/themes/kanagawa/waybar/colors.css similarity index 100% rename from themes/kanagawa/.config/waybar/colors.css rename to themes/kanagawa/waybar/colors.css diff --git a/themes/kanagawa/.config/yazi/theme.toml b/themes/kanagawa/yazi/theme.toml similarity index 100% rename from themes/kanagawa/.config/yazi/theme.toml rename to themes/kanagawa/yazi/theme.toml diff --git a/themes/nordic/.config/alacritty/colors.toml b/themes/nordic/alacritty/colors.toml similarity index 100% rename from themes/nordic/.config/alacritty/colors.toml rename to themes/nordic/alacritty/colors.toml diff --git a/themes/nordic/.config/btop/themes/current.theme b/themes/nordic/btop/themes/current.theme similarity index 100% rename from themes/nordic/.config/btop/themes/current.theme rename to themes/nordic/btop/themes/current.theme diff --git a/themes/nordic/.config/cava/config b/themes/nordic/cava/config similarity index 100% rename from themes/nordic/.config/cava/config rename to themes/nordic/cava/config diff --git a/themes/nordic/colors.toml b/themes/nordic/colors.toml new file mode 100644 index 00000000..fc0a7226 --- /dev/null +++ b/themes/nordic/colors.toml @@ -0,0 +1,35 @@ +# Symphony Theme Colors +# Theme: Nordic + +# === Standard palette === +accent = "#8fbcbb" +cursor = "#d8dee9" +foreground = "#d8dee9" +background = "#2e3440" +selection_foreground = "#d8dee9" +selection_background = "#434c5e" + +color0 = "#3b4252" +color1 = "#bf616a" +color2 = "#a3be8c" +color3 = "#ebcb8b" +color4 = "#81a1c1" +color5 = "#b48ead" +color6 = "#88c0d0" +color7 = "#e5e9f0" +color8 = "#4c566a" +color9 = "#bf616a" +color10 = "#a3be8c" +color11 = "#ebcb8b" +color12 = "#81a1c1" +color13 = "#b48ead" +color14 = "#8fbcbb" +color15 = "#eceff4" + +# === Extended semantic === +surface = "#3b4252" +muted = "#4c566a" +subtle = "#d8dee9" +text = "#d8dee9" +overlay = "#434c5e" +warn = "#d08770" diff --git a/themes/nordic/.config/ghostty/theme b/themes/nordic/ghostty/theme similarity index 100% rename from themes/nordic/.config/ghostty/theme rename to themes/nordic/ghostty/theme diff --git a/themes/nordic/.config/gtk-3.0/colors.css b/themes/nordic/gtk-3.0/colors.css similarity index 100% rename from themes/nordic/.config/gtk-3.0/colors.css rename to themes/nordic/gtk-3.0/colors.css diff --git a/themes/nordic/.config/gtk-4.0/colors.css b/themes/nordic/gtk-4.0/colors.css similarity index 100% rename from themes/nordic/.config/gtk-4.0/colors.css rename to themes/nordic/gtk-4.0/colors.css diff --git a/themes/nordic/.config/hypr/theme/colors.conf b/themes/nordic/hypr/theme/colors.conf similarity index 100% rename from themes/nordic/.config/hypr/theme/colors.conf rename to themes/nordic/hypr/theme/colors.conf diff --git a/themes/nordic/.config/kitty/colors.conf b/themes/nordic/kitty/colors.conf similarity index 100% rename from themes/nordic/.config/kitty/colors.conf rename to themes/nordic/kitty/colors.conf diff --git a/themes/nordic/.config/nvim/theme.lua b/themes/nordic/nvim/theme.lua similarity index 100% rename from themes/nordic/.config/nvim/theme.lua rename to themes/nordic/nvim/theme.lua diff --git a/themes/nordic/.config/obsidian/theme.css b/themes/nordic/obsidian/theme.css similarity index 100% rename from themes/nordic/.config/obsidian/theme.css rename to themes/nordic/obsidian/theme.css diff --git a/themes/nordic/.config/rmpc/themes/theme.ron b/themes/nordic/rmpc/themes/theme.ron similarity index 100% rename from themes/nordic/.config/rmpc/themes/theme.ron rename to themes/nordic/rmpc/themes/theme.ron diff --git a/themes/nordic/.config/rofi/colors.rasi b/themes/nordic/rofi/colors.rasi similarity index 100% rename from themes/nordic/.config/rofi/colors.rasi rename to themes/nordic/rofi/colors.rasi diff --git a/themes/nordic/.config/spicetify/Themes/symphony/color.ini b/themes/nordic/spicetify/Themes/symphony/color.ini similarity index 100% rename from themes/nordic/.config/spicetify/Themes/symphony/color.ini rename to themes/nordic/spicetify/Themes/symphony/color.ini diff --git a/themes/nordic/.config/spicetify/Themes/symphony/user.css b/themes/nordic/spicetify/Themes/symphony/user.css similarity index 100% rename from themes/nordic/.config/spicetify/Themes/symphony/user.css rename to themes/nordic/spicetify/Themes/symphony/user.css diff --git a/themes/nordic/.config/starship.toml b/themes/nordic/starship.toml similarity index 100% rename from themes/nordic/.config/starship.toml rename to themes/nordic/starship.toml diff --git a/themes/nordic/.config/vesktop/themes/symphony-discord.css b/themes/nordic/vesktop/themes/symphony-discord.css similarity index 100% rename from themes/nordic/.config/vesktop/themes/symphony-discord.css rename to themes/nordic/vesktop/themes/symphony-discord.css diff --git a/themes/nordic/.cache/wal/colors b/themes/nordic/wal/colors similarity index 100% rename from themes/nordic/.cache/wal/colors rename to themes/nordic/wal/colors diff --git a/themes/nordic/.cache/wal/colors.json b/themes/nordic/wal/colors.json similarity index 90% rename from themes/nordic/.cache/wal/colors.json rename to themes/nordic/wal/colors.json index d1ba82a1..cf985363 100644 --- a/themes/nordic/.cache/wal/colors.json +++ b/themes/nordic/wal/colors.json @@ -1,5 +1,5 @@ { - "wallpaper": "/home/vyrx/dotfiles/themes/nordic/wallpaper", + "wallpaper": "/home/vyrx/symphony/themes/nordic/wallpaper", "alpha": "100", "special": { "background": "#2e3440", diff --git a/themes/nordic/.config/waybar/colors.css b/themes/nordic/waybar/colors.css similarity index 100% rename from themes/nordic/.config/waybar/colors.css rename to themes/nordic/waybar/colors.css diff --git a/themes/nordic/.config/yazi/theme.toml b/themes/nordic/yazi/theme.toml similarity index 100% rename from themes/nordic/.config/yazi/theme.toml rename to themes/nordic/yazi/theme.toml diff --git a/themes/rose-pine/.config/alacritty/colors.toml b/themes/rose-pine/alacritty/colors.toml similarity index 100% rename from themes/rose-pine/.config/alacritty/colors.toml rename to themes/rose-pine/alacritty/colors.toml diff --git a/themes/rose-pine/.config/btop/themes/current.theme b/themes/rose-pine/btop/themes/current.theme similarity index 100% rename from themes/rose-pine/.config/btop/themes/current.theme rename to themes/rose-pine/btop/themes/current.theme diff --git a/themes/rose-pine/.config/cava/config b/themes/rose-pine/cava/config similarity index 100% rename from themes/rose-pine/.config/cava/config rename to themes/rose-pine/cava/config diff --git a/themes/rose-pine/colors.toml b/themes/rose-pine/colors.toml new file mode 100644 index 00000000..7b5d175c --- /dev/null +++ b/themes/rose-pine/colors.toml @@ -0,0 +1,35 @@ +# Symphony Theme Colors +# Theme: Rose Pine + +# === Standard palette === +accent = "#c4a7e7" +cursor = "#524f67" +foreground = "#e0def4" +background = "#191724" +selection_foreground = "#e0def4" +selection_background = "#403d52" + +color0 = "#26233a" +color1 = "#eb6f92" +color2 = "#31748f" +color3 = "#f6c177" +color4 = "#9ccfd8" +color5 = "#c4a7e7" +color6 = "#ebbcba" +color7 = "#e0def4" +color8 = "#6e6a86" +color9 = "#eb6f92" +color10 = "#31748f" +color11 = "#f6c177" +color12 = "#9ccfd8" +color13 = "#c4a7e7" +color14 = "#ebbcba" +color15 = "#e0def4" + +# === Extended semantic === +surface = "#26233a" +muted = "#6e6a86" +subtle = "#908caa" +text = "#e0def4" +overlay = "#403d52" +warn = "#f6c177" diff --git a/themes/rose-pine/.config/ghostty/theme b/themes/rose-pine/ghostty/theme similarity index 100% rename from themes/rose-pine/.config/ghostty/theme rename to themes/rose-pine/ghostty/theme diff --git a/themes/rose-pine/.config/gtk-3.0/colors.css b/themes/rose-pine/gtk-3.0/colors.css similarity index 100% rename from themes/rose-pine/.config/gtk-3.0/colors.css rename to themes/rose-pine/gtk-3.0/colors.css diff --git a/themes/rose-pine/.config/gtk-4.0/colors.css b/themes/rose-pine/gtk-4.0/colors.css similarity index 100% rename from themes/rose-pine/.config/gtk-4.0/colors.css rename to themes/rose-pine/gtk-4.0/colors.css diff --git a/themes/rose-pine/.config/hypr/theme/colors.conf b/themes/rose-pine/hypr/theme/colors.conf similarity index 100% rename from themes/rose-pine/.config/hypr/theme/colors.conf rename to themes/rose-pine/hypr/theme/colors.conf diff --git a/themes/rose-pine/.config/kitty/colors.conf b/themes/rose-pine/kitty/colors.conf similarity index 100% rename from themes/rose-pine/.config/kitty/colors.conf rename to themes/rose-pine/kitty/colors.conf diff --git a/themes/rose-pine/.config/nvim/theme.lua b/themes/rose-pine/nvim/theme.lua similarity index 100% rename from themes/rose-pine/.config/nvim/theme.lua rename to themes/rose-pine/nvim/theme.lua diff --git a/themes/rose-pine/.config/obsidian.css b/themes/rose-pine/obsidian.css similarity index 100% rename from themes/rose-pine/.config/obsidian.css rename to themes/rose-pine/obsidian.css diff --git a/themes/rose-pine/.config/obsidian/theme.css b/themes/rose-pine/obsidian/theme.css similarity index 100% rename from themes/rose-pine/.config/obsidian/theme.css rename to themes/rose-pine/obsidian/theme.css diff --git a/themes/rose-pine/.config/rmpc/themes/theme.ron b/themes/rose-pine/rmpc/themes/theme.ron similarity index 100% rename from themes/rose-pine/.config/rmpc/themes/theme.ron rename to themes/rose-pine/rmpc/themes/theme.ron diff --git a/themes/rose-pine/.config/rofi/colors.rasi b/themes/rose-pine/rofi/colors.rasi similarity index 100% rename from themes/rose-pine/.config/rofi/colors.rasi rename to themes/rose-pine/rofi/colors.rasi diff --git a/themes/rose-pine/.config/spicetify/Themes/symphony/color.ini b/themes/rose-pine/spicetify/Themes/symphony/color.ini similarity index 100% rename from themes/rose-pine/.config/spicetify/Themes/symphony/color.ini rename to themes/rose-pine/spicetify/Themes/symphony/color.ini diff --git a/themes/rose-pine/.config/spicetify/Themes/symphony/user.css b/themes/rose-pine/spicetify/Themes/symphony/user.css similarity index 100% rename from themes/rose-pine/.config/spicetify/Themes/symphony/user.css rename to themes/rose-pine/spicetify/Themes/symphony/user.css diff --git a/themes/rose-pine/.config/starship.toml b/themes/rose-pine/starship.toml similarity index 100% rename from themes/rose-pine/.config/starship.toml rename to themes/rose-pine/starship.toml diff --git a/themes/rose-pine/.config/vesktop/themes/symphony-discord.css b/themes/rose-pine/vesktop/themes/symphony-discord.css similarity index 100% rename from themes/rose-pine/.config/vesktop/themes/symphony-discord.css rename to themes/rose-pine/vesktop/themes/symphony-discord.css diff --git a/themes/rose-pine/.cache/wal/colors b/themes/rose-pine/wal/colors similarity index 100% rename from themes/rose-pine/.cache/wal/colors rename to themes/rose-pine/wal/colors diff --git a/themes/rose-pine/.cache/wal/colors.json b/themes/rose-pine/wal/colors.json similarity index 90% rename from themes/rose-pine/.cache/wal/colors.json rename to themes/rose-pine/wal/colors.json index d237b4b8..0d37ef7b 100644 --- a/themes/rose-pine/.cache/wal/colors.json +++ b/themes/rose-pine/wal/colors.json @@ -1,5 +1,5 @@ { - "wallpaper": "/home/vyrx/dotfiles/themes/rose-pine/wallpaper", + "wallpaper": "/home/vyrx/symphony/themes/rose-pine/wallpaper", "alpha": "100", "special": { "background": "#191724", diff --git a/themes/rose-pine/.config/waybar/colors.css b/themes/rose-pine/waybar/colors.css similarity index 100% rename from themes/rose-pine/.config/waybar/colors.css rename to themes/rose-pine/waybar/colors.css diff --git a/themes/rose-pine/.config/yazi/theme.toml b/themes/rose-pine/yazi/theme.toml similarity index 100% rename from themes/rose-pine/.config/yazi/theme.toml rename to themes/rose-pine/yazi/theme.toml diff --git a/themes/sakura/.config/alacritty/colors.toml b/themes/sakura/alacritty/colors.toml similarity index 100% rename from themes/sakura/.config/alacritty/colors.toml rename to themes/sakura/alacritty/colors.toml diff --git a/themes/sakura/.config/btop/themes/current.theme b/themes/sakura/btop/themes/current.theme similarity index 100% rename from themes/sakura/.config/btop/themes/current.theme rename to themes/sakura/btop/themes/current.theme diff --git a/themes/sakura/.config/cava/config b/themes/sakura/cava/config similarity index 100% rename from themes/sakura/.config/cava/config rename to themes/sakura/cava/config diff --git a/themes/sakura/colors.toml b/themes/sakura/colors.toml new file mode 100644 index 00000000..302db735 --- /dev/null +++ b/themes/sakura/colors.toml @@ -0,0 +1,35 @@ +# Symphony Theme Colors +# Theme: Sakura + +# === Standard palette === +accent = "#D9A56C" +cursor = "#E3C5AB" +foreground = "#f0eaed" +background = "#0d0509" +selection_foreground = "#f0eaed" +selection_background = "#4a3c45" + +color0 = "#0d0509" +color1 = "#E85F6F" +color2 = "#F29B9A" +color3 = "#D4A882" +color4 = "#D9A56C" +color5 = "#D1B399" +color6 = "#E8C099" +color7 = "#f0eaed" +color8 = "#4a3c45" +color9 = "#FF7A8A" +color10 = "#FFB5B4" +color11 = "#E6BA94" +color12 = "#EBB97E" +color13 = "#E3C5AB" +color14 = "#FBD2AB" +color15 = "#ffffff" + +# === Extended semantic === +surface = "#2b2327" +muted = "#7a6e74" +subtle = "#a89ca2" +text = "#f0eaed" +overlay = "#3a3236" +warn = "#D4A882" diff --git a/themes/sakura/.config/ghostty/theme b/themes/sakura/ghostty/theme similarity index 100% rename from themes/sakura/.config/ghostty/theme rename to themes/sakura/ghostty/theme diff --git a/themes/sakura/.config/gtk-3.0/colors.css b/themes/sakura/gtk-3.0/colors.css similarity index 100% rename from themes/sakura/.config/gtk-3.0/colors.css rename to themes/sakura/gtk-3.0/colors.css diff --git a/themes/sakura/.config/gtk-4.0/colors.css b/themes/sakura/gtk-4.0/colors.css similarity index 100% rename from themes/sakura/.config/gtk-4.0/colors.css rename to themes/sakura/gtk-4.0/colors.css diff --git a/themes/sakura/.config/hypr/theme/colors.conf b/themes/sakura/hypr/theme/colors.conf similarity index 100% rename from themes/sakura/.config/hypr/theme/colors.conf rename to themes/sakura/hypr/theme/colors.conf diff --git a/themes/sakura/.config/kitty/colors.conf b/themes/sakura/kitty/colors.conf similarity index 100% rename from themes/sakura/.config/kitty/colors.conf rename to themes/sakura/kitty/colors.conf diff --git a/themes/sakura/.config/nvim/theme.lua b/themes/sakura/nvim/theme.lua similarity index 100% rename from themes/sakura/.config/nvim/theme.lua rename to themes/sakura/nvim/theme.lua diff --git a/themes/sakura/.config/obsidian/theme.css b/themes/sakura/obsidian/theme.css similarity index 100% rename from themes/sakura/.config/obsidian/theme.css rename to themes/sakura/obsidian/theme.css diff --git a/themes/sakura/.config/rmpc/themes/theme.ron b/themes/sakura/rmpc/themes/theme.ron similarity index 100% rename from themes/sakura/.config/rmpc/themes/theme.ron rename to themes/sakura/rmpc/themes/theme.ron diff --git a/themes/sakura/.config/rofi/colors.rasi b/themes/sakura/rofi/colors.rasi similarity index 100% rename from themes/sakura/.config/rofi/colors.rasi rename to themes/sakura/rofi/colors.rasi diff --git a/themes/sakura/.config/spicetify/Themes/symphony/color.ini b/themes/sakura/spicetify/Themes/symphony/color.ini similarity index 100% rename from themes/sakura/.config/spicetify/Themes/symphony/color.ini rename to themes/sakura/spicetify/Themes/symphony/color.ini diff --git a/themes/sakura/.config/spicetify/Themes/symphony/user.css b/themes/sakura/spicetify/Themes/symphony/user.css similarity index 100% rename from themes/sakura/.config/spicetify/Themes/symphony/user.css rename to themes/sakura/spicetify/Themes/symphony/user.css diff --git a/themes/sakura/.config/starship.toml b/themes/sakura/starship.toml similarity index 100% rename from themes/sakura/.config/starship.toml rename to themes/sakura/starship.toml diff --git a/themes/sakura/.config/vesktop/themes/symphony-discord.css b/themes/sakura/vesktop/themes/symphony-discord.css similarity index 100% rename from themes/sakura/.config/vesktop/themes/symphony-discord.css rename to themes/sakura/vesktop/themes/symphony-discord.css diff --git a/themes/sakura/.cache/wal/colors b/themes/sakura/wal/colors similarity index 100% rename from themes/sakura/.cache/wal/colors rename to themes/sakura/wal/colors diff --git a/themes/sakura/.cache/wal/colors.json b/themes/sakura/wal/colors.json similarity index 90% rename from themes/sakura/.cache/wal/colors.json rename to themes/sakura/wal/colors.json index 1ef09b6b..f0d685e3 100644 --- a/themes/sakura/.cache/wal/colors.json +++ b/themes/sakura/wal/colors.json @@ -1,5 +1,5 @@ { - "wallpaper": "/home/vyrx/dotfiles/themes/sakura/wallpaper", + "wallpaper": "/home/vyrx/symphony/themes/sakura/wallpaper", "alpha": "100", "special": { "background": "#0d0509", diff --git a/themes/sakura/.config/waybar/colors.css b/themes/sakura/waybar/colors.css similarity index 100% rename from themes/sakura/.config/waybar/colors.css rename to themes/sakura/waybar/colors.css diff --git a/themes/sakura/.config/yazi/theme.toml b/themes/sakura/yazi/theme.toml similarity index 100% rename from themes/sakura/.config/yazi/theme.toml rename to themes/sakura/yazi/theme.toml diff --git a/themes/tokyo-night/.config/alacritty/colors.toml b/themes/tokyo-night/alacritty/colors.toml similarity index 100% rename from themes/tokyo-night/.config/alacritty/colors.toml rename to themes/tokyo-night/alacritty/colors.toml diff --git a/themes/tokyo-night/.config/btop/themes/current.theme b/themes/tokyo-night/btop/themes/current.theme similarity index 100% rename from themes/tokyo-night/.config/btop/themes/current.theme rename to themes/tokyo-night/btop/themes/current.theme diff --git a/themes/tokyo-night/.config/cava/config b/themes/tokyo-night/cava/config similarity index 100% rename from themes/tokyo-night/.config/cava/config rename to themes/tokyo-night/cava/config diff --git a/themes/tokyo-night/colors.toml b/themes/tokyo-night/colors.toml new file mode 100644 index 00000000..53f4ad09 --- /dev/null +++ b/themes/tokyo-night/colors.toml @@ -0,0 +1,35 @@ +# Symphony Theme Colors +# Theme: Tokyo Night + +# === Standard palette === +accent = "#7aa2f7" +cursor = "#c0caf5" +foreground = "#c0caf5" +background = "#1a1b26" +selection_foreground = "#c0caf5" +selection_background = "#283457" + +color0 = "#15161e" +color1 = "#f7768e" +color2 = "#9ece6a" +color3 = "#e0af68" +color4 = "#7aa2f7" +color5 = "#bb9af7" +color6 = "#7dcfff" +color7 = "#a9b1d6" +color8 = "#414868" +color9 = "#f7768e" +color10 = "#9ece6a" +color11 = "#e0af68" +color12 = "#7aa2f7" +color13 = "#bb9af7" +color14 = "#7dcfff" +color15 = "#c0caf5" + +# === Extended semantic === +surface = "#292e42" +muted = "#565f89" +subtle = "#545c7e" +text = "#a9b1d6" +overlay = "#383944" +warn = "#ff9e64" diff --git a/themes/tokyo-night/.config/ghostty/theme b/themes/tokyo-night/ghostty/theme similarity index 100% rename from themes/tokyo-night/.config/ghostty/theme rename to themes/tokyo-night/ghostty/theme diff --git a/themes/tokyo-night/.config/gtk-3.0/colors.css b/themes/tokyo-night/gtk-3.0/colors.css similarity index 100% rename from themes/tokyo-night/.config/gtk-3.0/colors.css rename to themes/tokyo-night/gtk-3.0/colors.css diff --git a/themes/tokyo-night/.config/gtk-4.0/colors.css b/themes/tokyo-night/gtk-4.0/colors.css similarity index 100% rename from themes/tokyo-night/.config/gtk-4.0/colors.css rename to themes/tokyo-night/gtk-4.0/colors.css diff --git a/themes/tokyo-night/.config/hypr/theme/colors.conf b/themes/tokyo-night/hypr/theme/colors.conf similarity index 100% rename from themes/tokyo-night/.config/hypr/theme/colors.conf rename to themes/tokyo-night/hypr/theme/colors.conf diff --git a/themes/tokyo-night/.config/kitty/colors.conf b/themes/tokyo-night/kitty/colors.conf similarity index 100% rename from themes/tokyo-night/.config/kitty/colors.conf rename to themes/tokyo-night/kitty/colors.conf diff --git a/themes/tokyo-night/.config/nvim/theme.lua b/themes/tokyo-night/nvim/theme.lua similarity index 100% rename from themes/tokyo-night/.config/nvim/theme.lua rename to themes/tokyo-night/nvim/theme.lua diff --git a/themes/tokyo-night/.config/obsidian/theme.css b/themes/tokyo-night/obsidian/theme.css similarity index 100% rename from themes/tokyo-night/.config/obsidian/theme.css rename to themes/tokyo-night/obsidian/theme.css diff --git a/themes/tokyo-night/.config/rmpc/themes/theme.ron b/themes/tokyo-night/rmpc/themes/theme.ron similarity index 100% rename from themes/tokyo-night/.config/rmpc/themes/theme.ron rename to themes/tokyo-night/rmpc/themes/theme.ron diff --git a/themes/tokyo-night/.config/rofi/colors.rasi b/themes/tokyo-night/rofi/colors.rasi similarity index 100% rename from themes/tokyo-night/.config/rofi/colors.rasi rename to themes/tokyo-night/rofi/colors.rasi diff --git a/themes/tokyo-night/.config/spicetify/Themes/symphony/color.ini b/themes/tokyo-night/spicetify/Themes/symphony/color.ini similarity index 100% rename from themes/tokyo-night/.config/spicetify/Themes/symphony/color.ini rename to themes/tokyo-night/spicetify/Themes/symphony/color.ini diff --git a/themes/tokyo-night/.config/spicetify/Themes/symphony/user.css b/themes/tokyo-night/spicetify/Themes/symphony/user.css similarity index 100% rename from themes/tokyo-night/.config/spicetify/Themes/symphony/user.css rename to themes/tokyo-night/spicetify/Themes/symphony/user.css diff --git a/themes/tokyo-night/.config/starship.toml b/themes/tokyo-night/starship.toml similarity index 100% rename from themes/tokyo-night/.config/starship.toml rename to themes/tokyo-night/starship.toml diff --git a/themes/tokyo-night/.config/vesktop/themes/symphony-discord.css b/themes/tokyo-night/vesktop/themes/symphony-discord.css similarity index 100% rename from themes/tokyo-night/.config/vesktop/themes/symphony-discord.css rename to themes/tokyo-night/vesktop/themes/symphony-discord.css diff --git a/themes/tokyo-night/.cache/wal/colors b/themes/tokyo-night/wal/colors similarity index 100% rename from themes/tokyo-night/.cache/wal/colors rename to themes/tokyo-night/wal/colors diff --git a/themes/tokyo-night/.cache/wal/colors.json b/themes/tokyo-night/wal/colors.json similarity index 90% rename from themes/tokyo-night/.cache/wal/colors.json rename to themes/tokyo-night/wal/colors.json index cbe1200f..004a9d43 100644 --- a/themes/tokyo-night/.cache/wal/colors.json +++ b/themes/tokyo-night/wal/colors.json @@ -1,5 +1,5 @@ { - "wallpaper": "/home/vyrx/dotfiles/themes/tokyo-night/wallpaper", + "wallpaper": "/home/vyrx/symphony/themes/tokyo-night/wallpaper", "alpha": "100", "special": { "background": "#1a1b26", diff --git a/themes/tokyo-night/.config/waybar/colors.css b/themes/tokyo-night/waybar/colors.css similarity index 100% rename from themes/tokyo-night/.config/waybar/colors.css rename to themes/tokyo-night/waybar/colors.css diff --git a/themes/tokyo-night/.config/yazi/theme.toml b/themes/tokyo-night/yazi/theme.toml similarity index 100% rename from themes/tokyo-night/.config/yazi/theme.toml rename to themes/tokyo-night/yazi/theme.toml diff --git a/themes/void/.config/alacritty/colors.toml b/themes/void/alacritty/colors.toml similarity index 100% rename from themes/void/.config/alacritty/colors.toml rename to themes/void/alacritty/colors.toml diff --git a/themes/void/.config/btop/themes/current.theme b/themes/void/btop/themes/current.theme similarity index 100% rename from themes/void/.config/btop/themes/current.theme rename to themes/void/btop/themes/current.theme diff --git a/themes/void/.config/cava/config b/themes/void/cava/config similarity index 100% rename from themes/void/.config/cava/config rename to themes/void/cava/config diff --git a/themes/void/colors.toml b/themes/void/colors.toml new file mode 100644 index 00000000..d04a97d6 --- /dev/null +++ b/themes/void/colors.toml @@ -0,0 +1,35 @@ +# Symphony Theme Colors +# Theme: Void + +# === Standard palette === +accent = "#BB9AF7" +cursor = "#814DDE" +foreground = "#FFFFFF" +background = "#05010C" +selection_foreground = "#05010C" +selection_background = "#FFFFFF" + +color0 = "#382952" +color1 = "#F07178" +color2 = "#C2B8FF" +color3 = "#DDCCFF" +color4 = "#BB9AF7" +color5 = "#B49AE6" +color6 = "#A6B8FF" +color7 = "#DECCFF" +color8 = "#6B578F" +color9 = "#FF8A95" +color10 = "#B3A8F7" +color11 = "#D1BFF7" +color12 = "#CBA6F8" +color13 = "#C4AAF0" +color14 = "#C2CCFF" +color15 = "#C3AAF0" + +# === Extended semantic === +surface = "#231f2a" +muted = "#b9b9b9" +subtle = "#d7d7d7" +text = "#FFFFFF" +overlay = "#322e39" +warn = "#D1BFF7" diff --git a/themes/void/.config/ghostty/theme b/themes/void/ghostty/theme similarity index 100% rename from themes/void/.config/ghostty/theme rename to themes/void/ghostty/theme diff --git a/themes/void/.config/gtk-3.0/colors.css b/themes/void/gtk-3.0/colors.css similarity index 100% rename from themes/void/.config/gtk-3.0/colors.css rename to themes/void/gtk-3.0/colors.css diff --git a/themes/void/.config/gtk-4.0/colors.css b/themes/void/gtk-4.0/colors.css similarity index 100% rename from themes/void/.config/gtk-4.0/colors.css rename to themes/void/gtk-4.0/colors.css diff --git a/themes/void/.config/hypr/theme/colors.conf b/themes/void/hypr/theme/colors.conf similarity index 100% rename from themes/void/.config/hypr/theme/colors.conf rename to themes/void/hypr/theme/colors.conf diff --git a/themes/void/.config/kitty/colors.conf b/themes/void/kitty/colors.conf similarity index 100% rename from themes/void/.config/kitty/colors.conf rename to themes/void/kitty/colors.conf diff --git a/themes/void/.config/nvim/theme.lua b/themes/void/nvim/theme.lua similarity index 100% rename from themes/void/.config/nvim/theme.lua rename to themes/void/nvim/theme.lua diff --git a/themes/void/.config/obsidian/theme.css b/themes/void/obsidian/theme.css similarity index 100% rename from themes/void/.config/obsidian/theme.css rename to themes/void/obsidian/theme.css diff --git a/themes/void/.config/rmpc/themes/theme.ron b/themes/void/rmpc/themes/theme.ron similarity index 100% rename from themes/void/.config/rmpc/themes/theme.ron rename to themes/void/rmpc/themes/theme.ron diff --git a/themes/void/.config/rofi/colors.rasi b/themes/void/rofi/colors.rasi similarity index 100% rename from themes/void/.config/rofi/colors.rasi rename to themes/void/rofi/colors.rasi diff --git a/themes/void/.config/spicetify/Themes/symphony/color.ini b/themes/void/spicetify/Themes/symphony/color.ini similarity index 100% rename from themes/void/.config/spicetify/Themes/symphony/color.ini rename to themes/void/spicetify/Themes/symphony/color.ini diff --git a/themes/void/.config/spicetify/Themes/symphony/user.css b/themes/void/spicetify/Themes/symphony/user.css similarity index 100% rename from themes/void/.config/spicetify/Themes/symphony/user.css rename to themes/void/spicetify/Themes/symphony/user.css diff --git a/themes/void/.config/starship.toml b/themes/void/starship.toml similarity index 100% rename from themes/void/.config/starship.toml rename to themes/void/starship.toml diff --git a/themes/void/.config/vesktop/themes/symphony-discord.css b/themes/void/vesktop/themes/symphony-discord.css similarity index 100% rename from themes/void/.config/vesktop/themes/symphony-discord.css rename to themes/void/vesktop/themes/symphony-discord.css diff --git a/themes/void/.cache/wal/colors b/themes/void/wal/colors similarity index 100% rename from themes/void/.cache/wal/colors rename to themes/void/wal/colors diff --git a/themes/void/.cache/wal/colors.json b/themes/void/wal/colors.json similarity index 91% rename from themes/void/.cache/wal/colors.json rename to themes/void/wal/colors.json index 348bee64..c0b65fa4 100644 --- a/themes/void/.cache/wal/colors.json +++ b/themes/void/wal/colors.json @@ -1,5 +1,5 @@ { - "wallpaper": "/home/vyrx/dotfiles/themes/void/wallpaper", + "wallpaper": "/home/vyrx/symphony/themes/void/wallpaper", "alpha": "100", "special": { "background": "#05010C", diff --git a/themes/void/.config/waybar/colors.css b/themes/void/waybar/colors.css similarity index 100% rename from themes/void/.config/waybar/colors.css rename to themes/void/waybar/colors.css diff --git a/themes/void/.config/yazi/theme.toml b/themes/void/yazi/theme.toml similarity index 100% rename from themes/void/.config/yazi/theme.toml rename to themes/void/yazi/theme.toml diff --git a/themes/zen/.config/alacritty/colors.toml b/themes/zen/alacritty/colors.toml similarity index 100% rename from themes/zen/.config/alacritty/colors.toml rename to themes/zen/alacritty/colors.toml diff --git a/themes/zen/.config/btop/themes/current.theme b/themes/zen/btop/themes/current.theme similarity index 100% rename from themes/zen/.config/btop/themes/current.theme rename to themes/zen/btop/themes/current.theme diff --git a/themes/zen/.config/cava/config b/themes/zen/cava/config similarity index 100% rename from themes/zen/.config/cava/config rename to themes/zen/cava/config diff --git a/themes/zen/colors.toml b/themes/zen/colors.toml new file mode 100644 index 00000000..14979f94 --- /dev/null +++ b/themes/zen/colors.toml @@ -0,0 +1,35 @@ +# Symphony Theme Colors +# Theme: Zen + +# === Standard palette === +accent = "#7a7a7c" +cursor = "#e8e8ed" +foreground = "#e8e8ed" +background = "#0f0f0f" +selection_foreground = "#f5f5f7" +selection_background = "#2c2c2e" + +color0 = "#1c1c1e" +color1 = "#5c5c5e" +color2 = "#98989a" +color3 = "#7a7a7c" +color4 = "#6c6c6e" +color5 = "#86868a" +color6 = "#a8a8ac" +color7 = "#d1d1d6" +color8 = "#48484a" +color9 = "#6e6e70" +color10 = "#aeaeb0" +color11 = "#8e8e90" +color12 = "#828284" +color13 = "#9c9ca0" +color14 = "#bebec2" +color15 = "#f5f5f7" + +# === Extended semantic === +surface = "#1a1a1a" +muted = "#505050" +subtle = "#959595" +text = "#e8e8ed" +overlay = "#2a2a2a" +warn = "#8e8e90" diff --git a/themes/zen/.config/ghostty/theme b/themes/zen/ghostty/theme similarity index 100% rename from themes/zen/.config/ghostty/theme rename to themes/zen/ghostty/theme diff --git a/themes/zen/.config/gtk-3.0/colors.css b/themes/zen/gtk-3.0/colors.css similarity index 100% rename from themes/zen/.config/gtk-3.0/colors.css rename to themes/zen/gtk-3.0/colors.css diff --git a/themes/zen/.config/gtk-4.0/colors.css b/themes/zen/gtk-4.0/colors.css similarity index 100% rename from themes/zen/.config/gtk-4.0/colors.css rename to themes/zen/gtk-4.0/colors.css diff --git a/themes/zen/.config/hypr/theme/colors.conf b/themes/zen/hypr/theme/colors.conf similarity index 100% rename from themes/zen/.config/hypr/theme/colors.conf rename to themes/zen/hypr/theme/colors.conf diff --git a/themes/zen/.config/kitty/colors.conf b/themes/zen/kitty/colors.conf similarity index 100% rename from themes/zen/.config/kitty/colors.conf rename to themes/zen/kitty/colors.conf diff --git a/themes/zen/.config/nvim/theme.lua b/themes/zen/nvim/theme.lua similarity index 100% rename from themes/zen/.config/nvim/theme.lua rename to themes/zen/nvim/theme.lua diff --git a/themes/zen/.config/obsidian/theme.css b/themes/zen/obsidian/theme.css similarity index 100% rename from themes/zen/.config/obsidian/theme.css rename to themes/zen/obsidian/theme.css diff --git a/themes/zen/.config/rmpc/themes/theme.ron b/themes/zen/rmpc/themes/theme.ron similarity index 100% rename from themes/zen/.config/rmpc/themes/theme.ron rename to themes/zen/rmpc/themes/theme.ron diff --git a/themes/zen/.config/rofi/colors.rasi b/themes/zen/rofi/colors.rasi similarity index 100% rename from themes/zen/.config/rofi/colors.rasi rename to themes/zen/rofi/colors.rasi diff --git a/themes/zen/.config/spicetify/Themes/symphony/color.ini b/themes/zen/spicetify/Themes/symphony/color.ini similarity index 100% rename from themes/zen/.config/spicetify/Themes/symphony/color.ini rename to themes/zen/spicetify/Themes/symphony/color.ini diff --git a/themes/zen/.config/spicetify/Themes/symphony/user.css b/themes/zen/spicetify/Themes/symphony/user.css similarity index 100% rename from themes/zen/.config/spicetify/Themes/symphony/user.css rename to themes/zen/spicetify/Themes/symphony/user.css diff --git a/themes/zen/.config/starship.toml b/themes/zen/starship.toml similarity index 100% rename from themes/zen/.config/starship.toml rename to themes/zen/starship.toml diff --git a/themes/zen/.config/vesktop/themes/symphony-discord.css b/themes/zen/vesktop/themes/symphony-discord.css similarity index 100% rename from themes/zen/.config/vesktop/themes/symphony-discord.css rename to themes/zen/vesktop/themes/symphony-discord.css diff --git a/themes/zen/.cache/wal/colors b/themes/zen/wal/colors similarity index 100% rename from themes/zen/.cache/wal/colors rename to themes/zen/wal/colors diff --git a/themes/zen/.cache/wal/colors.json b/themes/zen/wal/colors.json similarity index 91% rename from themes/zen/.cache/wal/colors.json rename to themes/zen/wal/colors.json index f4f6fe6d..17b12550 100644 --- a/themes/zen/.cache/wal/colors.json +++ b/themes/zen/wal/colors.json @@ -1,5 +1,5 @@ { - "wallpaper": "/home/vyrx/dotfiles/themes/zen/wallpaper", + "wallpaper": "/home/vyrx/symphony/themes/zen/wallpaper", "alpha": "100", "special": { "background": "#0f0f0f", diff --git a/themes/zen/.config/waybar/colors.css b/themes/zen/waybar/colors.css similarity index 100% rename from themes/zen/.config/waybar/colors.css rename to themes/zen/waybar/colors.css diff --git a/themes/zen/.config/yazi/theme.toml b/themes/zen/yazi/theme.toml similarity index 100% rename from themes/zen/.config/yazi/theme.toml rename to themes/zen/yazi/theme.toml diff --git a/uninstall.sh b/uninstall.sh index 77a8dfe2..e0685e92 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -6,12 +6,12 @@ set -e -DOTFILES="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -source "$DOTFILES/install/utils.sh" +SYMPHONY_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +source "$SYMPHONY_DIR/install/utils.sh" # Core stuff - don't offer to uninstall skip=( - base-devel git stow fish tmux neovim nautilus + base-devel git fish tmux neovim nautilus pipewire pipewire-alsa pipewire-pulse pipewire-jack wireplumber networkmanager bluez bluez-utils polkit-gnome power-profiles-daemon xdg-utils xdg-user-dirs libnotify wl-clipboard ffmpeg jq wget curl unzip @@ -33,26 +33,51 @@ is_skipped() { get_packages() { # Grab package names from packages.sh - sed -n '/^packages=(/,/^)/p' "$DOTFILES/install/packages.sh" | grep -oP '^\s+\K[a-z][a-z0-9_-]*' - sed -n '/^applications=(/,/^)/p' "$DOTFILES/install/packages.sh" | grep -oP '^\s+\K[a-z][a-z0-9_-]*' + sed -n '/^packages=(/,/^)/p' "$SYMPHONY_DIR/install/packages.sh" | grep -oP '^\s+\K[a-z][a-z0-9_-]*' + sed -n '/^applications=(/,/^)/p' "$SYMPHONY_DIR/install/packages.sh" | grep -oP '^\s+\K[a-z][a-z0-9_-]*' } -do_unstow() { - step "Removing symlinks" - cd "$DOTFILES" - stow -D . 2>/dev/null && ok "Removed" || warn "Some failed" +do_undeploy() { + step "Removing deployed configs" + local symphony_config="$SYMPHONY_DIR/config" + [[ -d "$symphony_config" ]] || return 0 + + for item in "$symphony_config"/*/; do + [[ -d "$item" ]] || continue + local name="$(basename "$item")" + local target="$HOME/.config/$name" + [[ -d "$target" || -L "$target" ]] && rm -rf "$target" && ok "Removed $name" + done + + # Remove deployed scripts from ~/.local/bin + for script in "$SYMPHONY_DIR"/bin/*; do + [[ -f "$script" ]] || continue + local name="$(basename "$script")" + rm -f "$HOME/.local/bin/$name" + done + ok "Deployed scripts removed" } restore_backups() { step "Restoring backups" - # Find most recent backup directory (dotfiles-backup, dotfiles-backup-2, etc.) - local latest=$(ls -d "$HOME"/dotfiles-backup* 2>/dev/null | sort -V | tail -1) + # Check new backup location first, fall back to old + local backup_base="$HOME/.config/symphony/backups" + local latest + + if [[ -d "$backup_base" ]]; then + latest=$(ls -d "$backup_base"/*/ 2>/dev/null | sort -V | tail -1) + fi + + # Fall back to legacy backup location + if [[ -z "$latest" ]]; then + latest=$(ls -d "$HOME"/symphony-backup* 2>/dev/null | sort -V | tail -1) + fi + [[ -z "$latest" || ! -d "$latest" ]] && { info "No backups found"; return 0; } info "Restoring from: $latest" - # Restore preserving directory structure while IFS= read -r file; do local dest="$HOME/${file#$latest/}" mkdir -p "$(dirname "$dest")" @@ -106,14 +131,14 @@ clean_shell() { clean_desktop_entries() { step "Cleaning desktop entries" local target_dir="$HOME/.local/share/applications" - local apps_dir="$DOTFILES/.local/share/applications" + local apps_dir="$SYMPHONY_DIR/local/share/applications" [[ -d "$target_dir" ]] || return 0 # Collect entries installed by Symphony local entries=() - # Web apps from dotfiles + # Web apps from symphony for file in "$apps_dir"/*.desktop; do [[ -f "$file" ]] || continue local name=$(basename "$file") @@ -193,7 +218,7 @@ else fi echo -do_unstow +do_undeploy restore_backups clean_desktop_entries ask_packages