Compare commits

...

No commits in common. "neo" and "stable" have entirely different histories.
neo ... stable

135 changed files with 3368 additions and 1632 deletions

View file

@ -1,10 +0,0 @@
# Load login settings and environment variables
if [[ -f ~/.profile ]]; then
source ~/.profile
fi
# Load interactive settings
if [[ -f ~/.bashrc ]]; then
source ~/.bashrc
fi

55
.bashrc
View file

@ -1,55 +0,0 @@
#################################
## Check for Interactivy Shell ##
#################################
case $- in
*i*) ;;
*) return;;
esac
#################################
## Oh My Bash ##
#################################
export OSH="$HOME/.config/oh-my-bash"
OSH_CUSTOM="$HOME/.config/oh-my-bash-custom"
OSH_THEME="agnoster-modded"
DEFAULT_USER=$(whoami)
ENABLE_CORRECTION=true
OMB_USE_SUDO=true
completions=(
git
composer
ssh
)
aliases=(
general
)
plugins=(
git
bashmarks
)
source "$OSH"/oh-my-bash.sh
#################################
## Application Envs ##
#################################
# Volta
export PATH=$PATH:~/.local/bin
export VOLTA_HOME="$HOME/.volta"
export PATH="$VOLTA_HOME/bin:$PATH"
# Podman as Docker on Immutable Distros
export DOCKER_HOST=unix:///run/user/1000/podman/podman.sock
#################################
## Aliases ##
#################################
alias nvim-conf="nvim ~/.config/nvim"
alias bash-conf="nvim #/.bashrc"
alias nano="nvim"
alias neofetch="fastfetch"

View file

@ -1,210 +0,0 @@
{
"document": {
"block_prefix": "\n",
"block_suffix": "\n",
"color": "#cad3f5",
"margin": 2
},
"block_quote": {
"indent": 1,
"indent_token": "│ "
},
"paragraph": {},
"list": {
"level_indent": 2
},
"heading": {
"block_suffix": "\n",
"color": "#cad3f5",
"bold": true
},
"h1": {
"prefix": " ",
"suffix": " ",
"color": "#24273a",
"background_color": "#8aadf4",
"bold": true
},
"h2": {
"prefix": "██ ",
"suffix": " ",
"color": "#24273a",
"background_color": "#7dc4e4"
},
"h3": {
"prefix": "████ ",
"suffix": " ",
"color": "#24273a",
"background_color": "#91d7e3"
},
"h4": {
"prefix": "██████ ",
"suffix": " ",
"color": "#24273a",
"background_color": "#8bd5ca"
},
"h5": {
"prefix": "████████ ",
"suffix": " ",
"color": "#24273a",
"background_color": "#7dc4e4"
},
"h6": {
"prefix": "██████████ ",
"suffix": " ",
"color": "#24273a",
"background_color": "#b7bdf8"
},
"text": {},
"strikethrough": {
"crossed_out": true
},
"emph": {
"italic": true
},
"strong": {
"bold": true
},
"hr": {
"color": "#6e738d",
"format": "\n──────────────────────────────────────────────────────────────────────────\n"
},
"item": {
"block_prefix": "• "
},
"enumeration": {
"block_prefix": ". "
},
"task": {
"ticked": " ",
"unticked": " "
},
"link": {
"color": "#8aadf4",
"underline": true
},
"link_text": {
"color": "#b7bdf8",
"bold": true
},
"image": {
"color": "#8aadf4",
"underline": true
},
"image_text": {
"color": "#b7bdf8",
"format": "Image: {{.text}} →"
},
"code": {
"prefix": " ",
"suffix": " ",
"color": "#8aadf4",
"background_color": "#363a4f"
},
"code_block": {
"color": "#1e2030",
"margin": 2,
"chroma": {
"text": {
"color": "#cad3f5"
},
"error": {
"color": "#cad3f5",
"background_color": "#ed8796"
},
"comment": {
"color": "#6e738d"
},
"comment_preproc": {
"color": "#8aadf4"
},
"keyword": {
"color": "#c6a0f6"
},
"keyword_reserved": {
"color": "#c6a0f6"
},
"keyword_namespace": {
"color": "#eed49f"
},
"keyword_type": {
"color": "#eed49f"
},
"operator": {
"color": "#91d7e3"
},
"punctuation": {
"color": "#939ab7"
},
"name": {
"color": "#b7bdf8"
},
"name_builtin": {
"color": "#f5a97f"
},
"name_tag": {
"color": "#c6a0f6"
},
"name_attribute": {
"color": "#eed49f"
},
"name_class": {
"color": "#eed49f"
},
"name_constant": {
"color": "#eed49f"
},
"name_decorator": {
"color": "#f5bde6"
},
"name_exception": {},
"name_function": {
"color": "#8aadf4"
},
"name_other": {},
"literal": {},
"literal_number": {
"color": "#f5a97f"
},
"literal_date": {},
"literal_string": {
"color": "#a6da95"
},
"literal_string_escape": {
"color": "#f5bde6"
},
"generic_deleted": {
"color": "#ed8796"
},
"generic_emph": {
"color": "#cad3f5",
"italic": true
},
"generic_inserted": {
"color": "#a6da95"
},
"generic_strong": {
"color": "#cad3f5",
"bold": true
},
"generic_subheading": {
"color": "#91d7e3"
},
"background": {
"background_color": "#363a4f"
}
}
},
"table": {
"center_separator": "┼",
"column_separator": "│",
"row_separator": "─"
},
"definition_list": {},
"definition_term": {},
"definition_description": {
"block_prefix": "\n🠶 "
},
"html_block": {},
"html_span": {}
}

View file

@ -1 +0,0 @@
neovim lua gcc curl wget git unzip tar gzip ripgrep php composer go nodejs npm delve

View file

@ -1 +0,0 @@
require("core")

View file

@ -1,8 +0,0 @@
-- Use 2 Spaces Instead of Tabs --
vim.cmd("set expandtab")
vim.cmd("set tabstop=4")
vim.cmd("set softtabstop=4")
vim.cmd("set shiftwidth=4")
-- Enable Line Number --
vim.cmd("set number")

View file

@ -1,3 +0,0 @@
require("core.keymap")
require("core.editor")
require("core.package_manager")

View file

@ -1,5 +0,0 @@
vim.g.mapleader = " "
--[[ Indentation ]]--
vim.keymap.set("n", "<Tab>", " >>")
vim.keymap.set("n", "<S-Tab>", " <<")

View file

@ -1,15 +0,0 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable",
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
local opts = {}
require("lazy").setup("plugins", opts)

View file

@ -1,32 +0,0 @@
return {
"goolord/alpha-nvim",
dependencies = {
"nvim-tree/nvim-web-devicons",
},
config = function()
-- Setup --
local alpha = require("alpha")
local dashboard = require("alpha.themes.startify")
-- Header --
dashboard.section.header.val = {
[[ ]],
[[ ]],
[[ ]],
[[ ]],
[[  ]],
[[ ████ ██████ █████ ██ ]],
[[ ███████████ █████  ]],
[[ █████████ ███████████████████ ███ ███████████ ]],
[[ █████████ ███ █████████████ █████ ██████████████ ]],
[[ █████████ ██████████ █████████ █████ █████ ████ █████ ]],
[[ ███████████ ███ ███ █████████ █████ █████ ████ █████ ]],
[[ ██████ █████████████████████ ████ █████ █████ ████ ██████ ]],
[[ ]],
[[ ]],
[[ ]],
}
alpha.setup(dashboard.opts)
end,
}

View file

@ -1,8 +0,0 @@
return {
require("plugins.editor.editor_auto_brackets"),
require("plugins.editor.editor_code_highlighting"),
require("plugins.editor.editor_code_snippets"),
require("plugins.editor.editor_debugging"),
require("plugins.editor.editor_language_server"),
require("plugins.editor.editor_markdown_preview")
}

View file

@ -1,25 +0,0 @@
return {
"leoluz/nvim-dap-go",
config = function()
require("dap-go").setup({
delve = {
cwd = require("utils.finder").find_project_dir(
"go.mod",
3,
{
"src",
"app",
"pkg"
},
{
"test"
},
true
)
}
})
end,
}

View file

@ -1,6 +0,0 @@
return {
'm4xshen/autoclose.nvim',
config = function()
require("autoclose").setup()
end
}

View file

@ -1,19 +0,0 @@
return {
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
config = function()
-- Setup --
local config = require("nvim-treesitter.configs")
config.setup({
auto_install = true,
highlight = { enable = true },
indent = { enable = true },
})
end,
},
{
"NoahTheDuke/vim-just",
ft = { "just" },
},
}

View file

@ -1,74 +0,0 @@
return {
{
"L3MON4D3/LuaSnip",
version = "2.*",
dependencies = {
"rafamadriz/friendly-snippets",
"mireq/luasnip-snippets",
},
build = "make install_jsregexp",
config = function()
-- Setup --
require("luasnip.loaders.from_vscode").lazy_load()
require("luasnip.loaders.from_snipmate").lazy_load()
require("luasnip_snippets.common.snip_utils").setup()
end,
},
{
"hrsh7th/nvim-cmp",
dependencies = {
"L3MON4D3/LuaSnip",
"saadparwaiz1/cmp_luasnip",
"hrsh7th/cmp-nvim-lsp",
},
config = function()
-- Setup --
local cmp = require("cmp")
local luasnip = require("luasnip")
luasnip.setup({
load_ft_func = require("luasnip_snippets.common.snip_utils").load_ft_func,
ft_func = require("luasnip_snippets.common.snip_utils").ft_func,
enable_autosnippets = true,
})
-- Keybinding --
vim.keymap.set({ "i", "s" }, "<Tab>", function()
if luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
else
vim.api.nvim_input("<C-V><Tab>")
end
end, { silent = true })
vim.keymap.set({ "i", "s" }, "<S-Tab>", function()
luasnip.jump(-1)
end, { silent = true })
local doc_keybindings = {
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.abort(),
["<CR>"] = cmp.mapping.confirm({ select = true }),
}
-- Setup --
cmp.setup({
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
mapping = cmp.mapping.preset.insert(doc_keybindings),
sources = cmp.config.sources({
{ name = "nvim_lsp" },
{ name = "luasnip" },
}, { { name = "buffer" } }),
})
end,
},
}

View file

@ -1,75 +0,0 @@
return {
{
"mfussenegger/nvim-dap",
dependencies = {
"rcarriga/nvim-dap-ui",
"nvim-neotest/nvim-nio",
},
config = function()
-- Setup Debugging --
local dap = require("dap")
-- Open UI on Debugging --
local dapui = require("dapui")
dapui.setup({
layouts = {
{
elements = {
{ id = "scopes", size = 0.65 },
{ id = "breakpoints", size = 0.35 },
},
position = "left",
size = 40,
},
{
elements = {
{ id = "repl", size = 0.5 },
{ id = "console", size = 0.5 },
},
position = "bottom",
size = 10,
},
},
})
dap.listeners.before.attach.dapui_config = function()
dapui.open()
end
dap.listeners.before.launch.dapui_config = function()
dapui.open()
end
-- Keybinding --
vim.keymap.set("n", "<Leader>dt", dapui.toggle, { desc = "Toggle Debugger UI" })
vim.keymap.set("n", "<Leader>db", dap.toggle_breakpoint, { desc = "Toggle Breakpoint" })
vim.keymap.set("n", "<Leader>dc", dap.continue, { desc = "Debugger Continue" })
vim.keymap.set("n", "<Leader>dx", dap.terminate, { desc = "Debugger Terminate" })
vim.keymap.set("n", "<Leader>ds", dap.step_over, { desc = "Debugger Step Over" })
-- Breakpoints --
vim.api.nvim_set_hl(0, "DapBreakpoint", { ctermbg = 0, fg = "#993939", bg = "#31353f" })
vim.api.nvim_set_hl(0, "DapLogPoint", { ctermbg = 0, fg = "#61afef", bg = "#31353f" })
vim.api.nvim_set_hl(0, "DapStopped", { ctermbg = 0, fg = "#98c379", bg = "#31353f" })
vim.fn.sign_define(
"DapBreakpoint",
{ text = "", texthl = "DapBreakpoint", linehl = "DapBreakpoint", numhl = "DapBreakpoint" }
)
vim.fn.sign_define(
"DapBreakpointCondition",
{ text = "󰣏", texthl = "DapBreakpoint", linehl = "DapBreakpoint", numhl = "DapBreakpoint" }
)
vim.fn.sign_define(
"DapBreakpointRejected",
{ text = "", texthl = "DapBreakpoint", linehl = "DapBreakpoint", numhl = "DapBreakpoint" }
)
vim.fn.sign_define(
"DapLogPoint",
{ text = "", texthl = "DapLogPoint", linehl = "DapLogPoint", numhl = "DapLogPoint" }
)
vim.fn.sign_define(
"DapStopped",
{ text = "", texthl = "DapStopped", linehl = "DapStopped", numhl = "DapStopped" }
)
end,
},
require("plugins.editor.debugger.debugger_go"),
}

View file

@ -1,5 +0,0 @@
return {
require("plugins.editor.language_server.language_server"),
require("plugins.editor.language_server.language_server_extra"),
require("plugins.editor.language_server.language_server_nvim_configuration"),
}

View file

@ -1,30 +0,0 @@
return {
"mrjones2014/mdpreview.nvim",
ft = "markdown",
dependencies = {
"norcalli/nvim-terminal.lua",
config = true,
},
config = function()
require("mdpreview").setup({
cli_args = {
"glow",
"-s",
"~/.config/glow/catppuccin-macchiato.json",
"-w",
"1",
"--local",
},
renderer = {
opts = {
win_opts = {
number = true,
wrap = false,
},
},
},
})
vim.keymap.set("n", "<Leader>mp", ":Mdpreview<CR>", { desc = "Show Markdown Preview" })
end,
}

View file

@ -1,170 +0,0 @@
return {
{
"williamboman/mason.nvim",
lazy = false,
config = function()
require("mason").setup()
end,
},
{
"williamboman/mason-lspconfig.nvim",
lazy = false,
opts = {
auto_install = true,
},
config = function()
require("mason-lspconfig").setup({
ensure_installed = {
"lua_ls",
"bashls",
"dotls",
"jsonls",
"sqlls",
"lemminx",
"yamlls",
"marksman",
"html",
"emmet_ls",
"cssls",
"tailwindcss",
"tsserver",
"stimulus_ls",
"svelte",
"volar",
"eslint",
"phpactor",
"gopls",
"rust_analyzer",
"jdtls",
"kotlin_language_server",
"pylsp",
},
})
end,
},
{
"neovim/nvim-lspconfig",
lazy = false,
config = function()
-- Setup --
local capabilities = require("cmp_nvim_lsp").default_capabilities()
local lspconfig = require("lspconfig")
-- Lua support --
lspconfig.lua_ls.setup({
capabilities = capabilities,
settings = {
Lua = {
diagnostics = {
globals = { "vim" },
}
}
}
})
-- Bash support --
lspconfig.bashls.setup({
capabilities = capabilities,
})
-- Dotenv support --
lspconfig.dotls.setup({
capabilities = capabilities,
})
-- JSON support --
lspconfig.jsonls.setup({
capabilities = capabilities,
})
-- SQL support --
lspconfig.sqlls.setup({
capabilities = capabilities,
})
-- XML support --
lspconfig.lemminx.setup({
capabilities = capabilities,
})
-- YAML support --
lspconfig.yamlls.setup({
capabilities = capabilities,
})
-- Markdown support --
lspconfig.marksman.setup({
capabilities = capabilities,
})
-- HTML support --
lspconfig.html.setup({
capabilities = capabilities,
})
-- Emmet support --
lspconfig.emmet_ls.setup({
capabilities = capabilities,
})
-- PHP support --
lspconfig.phpactor.setup({
capabilities = capabilities,
})
-- CSS & SCSS support --$response
lspconfig.cssls.setup({
capabilities = capabilities,
})
-- Tailwind support --
lspconfig.tailwindcss.setup({
capabilities = capabilities,
})
-- JavaScript & TypeScript support --
lspconfig.tsserver.setup({
capabilities = capabilities,
})
-- Stimulus support --
lspconfig.stimulus_ls.setup({
capabilities = capabilities,
})
-- Svelte support --
lspconfig.svelte.setup({
capabilities = capabilities,
})
-- Vue support --
lspconfig.volar.setup({
capabilities = capabilities,
})
-- Go support --
lspconfig.gopls.setup({
capabilities = capabilities,
})
-- Rust support --
lspconfig.rust_analyzer.setup({
capabilities = capabilities,
})
-- Java support --
lspconfig.jdtls.setup({
capabilities = capabilities,
})
-- Kotlin support --
lspconfig.kotlin_language_server.setup({
capabilities = capabilities,
})
-- Python support --
lspconfig.pylsp.setup({
capabilities = capabilities,
})
-- Eslint support --
lspconfig.eslint.setup({
capabilities = capabilities,
})
-- Keybinding --
vim.keymap.set("n", "<leader>cd", vim.lsp.buf.hover, { desc = "Show Code Definition" })
vim.keymap.set("n", "<leader>gd", vim.lsp.buf.definition, { desc = "Go to Definition" })
vim.keymap.set("n", "<leader>gr", vim.lsp.buf.references, { desc = "Go to References" })
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, { desc = "Do Code Actions" })
end,
}
}

View file

@ -1,40 +0,0 @@
return {
"nvimtools/none-ls.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
},
config = function()
-- Setup --
local null_ls = require("null-ls")
null_ls.setup({
sources = {
-- Prettier --
null_ls.builtins.formatting.prettier,
-- Php --
null_ls.builtins.diagnostics.phpstan,
null_ls.builtins.formatting.phpcsfixer.with({
prefer_local = "vendor/bin/php-cs-fixer",
args = { "fix", "--allow-risky=yes", "$FILENAME" }
}),
-- Twig --
null_ls.builtins.diagnostics.twigcs,
-- JavaScript & Typescript
--null_ls.builtins.formatting.eslint_d,
-- Lua --
null_ls.builtins.formatting.stylua,
-- Go --
null_ls.builtins.formatting.gofumpt,
null_ls.builtins.code_actions.gomodifytags,
null_ls.builtins.code_actions.impl
},
})
-- Keybinding --
vim.keymap.set("n", "<leader>fc", vim.lsp.buf.format, { desc = "Format Code" })
end,
}

View file

@ -1,16 +0,0 @@
return {
"folke/neodev.nvim",
dependencies = {
"rcarriga/nvim-dap-ui",
},
config = function()
require("neodev").setup({
library = {
plugins = {
"nvim-dap-ui",
},
types = true,
},
})
end,
}

View file

@ -1,67 +0,0 @@
return {
"nvim-neo-tree/neo-tree.nvim",
branch = "v3.x",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons",
"MunifTanjim/nui.nvim",
},
config = function()
-- Setup --
require("neo-tree").setup({
close_if_last_window = false,
enable_git_status = true,
enable_diagnostics = true,
name = {
trailing_slash = false,
use_git_status_colors = true,
highlight = "NeoTreeFileName",
},
git_status = {
symbols = {
-- Git Change type Icon --
added = "",
modified = "",
deleted = "",
renamed = "󰁕",
-- Git Status type Icon --
untracked = "",
ignored = "",
unstaged = "󰄱",
staged = "",
conflict = "",
}
},
symlink_target = {
enabled = false,
},
filesystem = {
hijack_netrw_behavior = "open_default"
},
-- Keybinding --
window = {
mappings = {
["<space>"] = "open"
}
}
})
-- Dignostic Icons --
vim.fn.sign_define("DiagnosticSignError", {
text = "", texthl = "DiagnosticSignError"
})
vim.fn.sign_define("DiagnosticSignWarn", {
text = "", texthl = "DiagnosticSignWarn"
})
vim.fn.sign_define("DiagnosticSignInfo", {
text = "", texthl = "DiagnosticSignInfo"
})
vim.fn.sign_define("DiagnosticSignHint", {
text = "󰌵", texthl = "DiagnosticSignHint"
})
-- Keybinding --
vim.keymap.set("n", "<C-n>", ":Neotree toggle reveal left<CR>", { desc = "Toggle File Tree" })
vim.keymap.set("n", "<leader>bf", ":Neotree buffers reveal float<CR>", { desc = "Show Open Files" })
end,
}

View file

@ -1,17 +0,0 @@
return {
{
"tpope/vim-fugitive",
},
{
"lewis6991/gitsigns.nvim",
config = function()
-- Setup --
require("gitsigns").setup()
-- Keybinding --
vim.keymap.set("n", "<leader>gh", ":Gitsigns preview_hunk_inline<CR>", { desc = "Toggle Inline Git Diff" })
vim.keymap.set("n", "<leader>gb", ":Gitsigns toggle_current_line_blame<CR>", { desc = "Toggle Inline Git Blame" })
vim.keymap.set("n", "<leader>go", ":Git <CR>", { desc = "Open Git" })
end,
},
}

View file

@ -1,10 +0,0 @@
return {
"folke/which-key.nvim",
config = function()
vim.o.timeout = true;
vim.o.timeoutlen = 300
require("which-key").setup({
})
end
}

View file

@ -1,36 +0,0 @@
return {
"nvim-telescope/telescope.nvim",
tag = "0.1.5",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope-ui-select.nvim"
},
config = function()
-- Setup --
require("telescope").setup({
extensions = {
["ui-select"] = {
require("telescope.themes").get_dropdown({}),
},
},
})
require("telescope").load_extension("ui-select")
-- Keybinding --
local function setTelescopeBinding(mode, keymap, method, search_global, description)
local function binding()
local path = search_global and "~" or require("neo-tree.sources.manager").get_state("filesystem").path
method({ search_dirs = { path } })
end
vim.keymap.set(mode, keymap, binding, { desc = description })
end
local telescope = require("telescope.builtin")
setTelescopeBinding("n", "<leader>ff", telescope.find_files, false, "Find File")
setTelescopeBinding("n", "<leader>fz", telescope.live_grep, false, "Fuzzy Find")
setTelescopeBinding("n", "<leader>gff", telescope.find_files, true, "Global Find File")
setTelescopeBinding("n", "<leader>gfz", telescope.live_grep, true, "Global Fuzzy Find")
end
}

View file

@ -1,60 +0,0 @@
return {
{
"nvim-lualine/lualine.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
-- Setup --
require("lualine").setup({
options = {
component_separators = { left = "", right = "" },
section_separators = { left = "", right = "" },
disabled_filetypes = {
"neo-tree",
"fugitive",
"help",
},
ignore_focus = {},
always_divide_middle = true,
globalstatus = false,
refresh = {
statusline = 1000,
tabline = 1000,
winbar = 1000,
},
},
sections = {
lualine_a = { "mode" },
lualine_b = { "branch", "diff", "diagnostics" },
lualine_x = { "location" },
lualine_y = { "encoding" },
lualine_z = { "filetype" },
},
inactive_sections = {
lualine_a = { "mode" },
lualine_b = { "branch", "diff", "diagnostics" },
lualine_x = { "location" },
lualine_y = { "encoding" },
lualine_z = { "filetype" },
},
tabline = {},
winbar = {
lualine_a = { "filename" },
},
inactive_winbar = {
lualine_a = { "filename" },
},
extensions = {},
})
end,
},
{
"romgrk/barbar.nvim",
dependencies = {
"lewis6991/gitsigns.nvim",
"nvim-tree/nvim-web-devicons",
},
config = function()
require("barbar").setup()
end,
},
}

View file

@ -1,21 +0,0 @@
return {
"caenrique/buffer-term.nvim",
config = function()
local buffer_term = require("buffer-term")
buffer_term.setup()
-- Keybindings --
vim.keymap.set({ "n", "t" }, "<F6>", buffer_term.toggle_last, { desc = "Toggle Last Terminal" })
local function getToggleTerminalFunction(terminalNumber)
return function()
buffer_term.toggle(terminalNumber)
end
end
for i = 0, 9 do
local key = "<F6>" .. i
vim.keymap.set({ "n", "t" }, key, getToggleTerminalFunction(tostring(i)), { desc = "Toggle Terminal " .. i })
end
end,
}

View file

@ -1,9 +0,0 @@
return {
"catppuccin/nvim",
name = "catppuccin",
priority = 1000,
config = function()
-- Set Theme --
vim.cmd("colorscheme catppuccin")
end
}

View file

@ -1,114 +0,0 @@
local Finder = {}
Finder = {}
local function is_ignored(entry, ignore_dot_dirs, ignored_dirs)
if entry == ".." or entry == "." then
return true
end
if ignore_dot_dirs and string.match(entry, "^%.") then
return true
end
for _, dir in ipairs(ignored_dirs) do
if entry == dir or string.find(entry, dir, 1, true) then
return true
end
end
return false
end
local function read_dir(dir)
local handle = io.popen('ls -a "' .. dir .. '"')
if not handle then
return nil
end
local result = handle:read("*a")
handle:close()
return result
end
local function is_dir(path)
local f = io.open(path, "r")
if f == nil then
return false
end
local _, _, code = f:read(1)
f:close()
return code == 21
end
local function find_path_recursive(_dir, options)
-- Check max Depth
if options.current_depth > options.max_depth then
return nil
end
local entries = read_dir(_dir)
if entries == nil then
return nil
end
for entry in string.gmatch(entries, "[^\r\n]+") do
-- Check Ignored
if is_ignored(entry, options.ignore_dot_dirs, options.ignored_dirs) then
goto continue
end
local full_path = _dir .. "/" .. entry
-- Check for File
if entry == options.needle_file then
return full_path
end
-- Check is Dir
if not is_dir(full_path) then
goto continue
end
-- Recursive Call
options.current_depth = options.current_depth + 1
local result = find_path_recursive(full_path, options)
if result ~= nil then
return result
end
-- Cleanup
options.current_depth = options.current_depth - 1
::continue::
end
return nil
end
local function get_opened_folder()
local cwd = vim.fn.getcwd()
local file_path = vim.fn.expand('%:p:h')
if file_path ~= '' then
return file_path
end
return cwd
end
function Finder.find_project_dir(needle_file, max_depth, priority_dirs, ignored_dirs, ignore_dot_dirs)
local options = {
needle_file = needle_file,
max_depth = max_depth,
priority_dirs = priority_dirs,
ignored_dirs = ignored_dirs,
ignore_dot_dirs = ignore_dot_dirs,
current_depth = 0
}
local dir = get_opened_folder()
local file = find_path_recursive(dir, options)
if file == nil then
return nil
end
return file:match("(.*/)")
end
return Finder

@ -1 +0,0 @@
Subproject commit f882b9af13c1c5183fc7283c60c99315bf68a48f

View file

@ -1 +0,0 @@

View file

@ -1,5 +0,0 @@
# agnoster modded
```bash
DEFAULT_USER="username"
```

View file

@ -1,427 +0,0 @@
#! bash oh-my-bash.module
PROMPT_DIRTRIM=${PROMPT_DIRTRIM:-2} # bash4 and above
######################################################################
## Configurations in Oh My Bash
OMB_PROMPT_SHOW_PYTHON_VENV=${OMB_PROMPT_SHOW_PYTHON_VENV:=true}
######################################################################
DEBUG=0
function debug {
if [[ ${DEBUG} -ne 0 ]]; then
>&2 echo -e "$@"
fi
}
######################################################################
### Segment drawing
# A few utility functions to make it easy and re-usable to draw segmented prompts
CURRENT_BG='NONE'
CURRENT_RBG='NONE'
SEGMENT_SEPARATOR=''
RIGHT_SEPARATOR=''
LEFT_SUBSEG=''
RIGHT_SUBSEG=''
function text_effect {
case "$1" in
reset) echo 0;;
bold) echo 1;;
underline) echo 4;;
esac
}
# to add colors, see
# http://bitmote.com/index.php?post/2012/11/19/Using-ANSI-Color-Codes-to-Colorize-Your-Bash-Prompt-on-Linux
# under the "256 (8-bit) Colors" section, and follow the example for orange below
function fg_color {
case "$1" in
black) echo 30;;
red) echo 31;;
green) echo 32;;
yellow) echo 33;;
blue) echo 34;;
magenta) echo 35;;
cyan) echo 36;;
white) echo 37;;
orange) echo 38\;5\;166;;
esac
}
function bg_color {
case "$1" in
black) echo 40;;
red) echo 41;;
green) echo 42;;
yellow) echo 43;;
blue) echo 44;;
magenta) echo 45;;
cyan) echo 46;;
white) echo 47;;
orange) echo 48\;5\;166;;
esac;
}
# TIL: declare is global not local, so best use a different name
# for codes (mycodes) as otherwise it'll clobber the original.
# this changes from BASH v3 to BASH v4.
function ansi {
local seq
local -a mycodes=("${!1}")
debug "ansi: ${!1} all: $* aka ${mycodes[@]}"
seq=""
local i
for ((i = 0; i < ${#mycodes[@]}; i++)); do
if [[ -n $seq ]]; then
seq="${seq};"
fi
seq="${seq}${mycodes[$i]}"
done
debug "ansi debug:" '\\[\\033['${seq}'m\\]'
echo -ne '\[\033['${seq}'m\]'
# PR="$PR\[\033[${seq}m\]"
}
function ansi_single {
echo -ne '\[\033['$1'm\]'
}
# Begin a segment
# Takes two arguments, background and foreground. Both can be omitted,
# rendering default background/foreground.
function prompt_segment {
local bg fg
local -a codes
debug "Prompting $1 $2 $3"
# if commented out from kruton's original... I'm not clear
# if it did anything, but it messed up things like
# prompt_status - Erik 1/14/17
# if [[ -z $1 || ( -z $2 && $2 != default ) ]]; then
codes=("${codes[@]}" $(text_effect reset))
# fi
if [[ -n $1 ]]; then
bg=$(bg_color $1)
codes=("${codes[@]}" $bg)
debug "Added $bg as background to codes"
fi
if [[ -n $2 ]]; then
fg=$(fg_color $2)
codes=("${codes[@]}" $fg)
debug "Added $fg as foreground to codes"
fi
debug "Codes: "
# local -p codes
if [[ $CURRENT_BG != NONE && $1 != $CURRENT_BG ]]; then
local -a intermediate=($(fg_color $CURRENT_BG) $(bg_color $1))
debug "pre prompt " $(ansi intermediate[@])
PR="$PR $(ansi intermediate[@])$SEGMENT_SEPARATOR"
debug "post prompt " $(ansi codes[@])
PR="$PR$(ansi codes[@]) "
else
debug "no current BG, codes is $codes[@]"
PR="$PR$(ansi codes[@]) "
fi
CURRENT_BG=$1
[[ -n $3 ]] && PR="$PR$3"
}
# End the prompt, closing any open segments
function prompt_end {
if [[ -n $CURRENT_BG ]]; then
local -a codes=($(text_effect reset) $(fg_color $CURRENT_BG))
PR="$PR $(ansi codes[@])$SEGMENT_SEPARATOR"
fi
local -a reset=($(text_effect reset))
PR="$PR $(ansi reset[@])"
CURRENT_BG=''
}
### virtualenv prompt
function prompt_virtualenv {
# Exclude pyenv
[[ $PYENV_VIRTUALENV_INIT == 1 ]] && _omb_util_binary_exists pyenv && return 0
if [[ -d $VIRTUAL_ENV ]]; then
# Python could output the version information in both stdout and
# stderr (e.g. if using pyenv, the output goes to stderr).
local VERSION_OUTPUT=$("$VIRTUAL_ENV"/bin/python --version 2>&1)
# The last word of the output of `python --version`
# corresponds to the version number.
local VENV_VERSION=$(awk '{print $NF}' <<< "$VERSION_OUTPUT")
prompt_segment cyan white "[v] $(basename "$VENV_VERSION")"
fi
}
### pyenv prompt
function prompt_pyenv {
if [[ $PYENV_VIRTUALENV_INIT == 1 ]] && _omb_util_binary_exists pyenv; then
# Priority is shell > local > global
# When pyenv shell is set, the environment variable $PYENV_VERSION is set with the value we want
if [[ ! ${PYENV_VERSION-} ]]; then
# If not set, fall back to pyenv local/global to get the version
local PYENV_VERSION=$(pyenv local 2>/dev/null || pyenv global 2>/dev/null)
fi
# If it is not the system's python, then display additional info
if [[ "$PYENV_VERSION" != "system" ]]; then
# It's a pyenv virtualenv, get the version number
if [[ -d $PYENV_VIRTUAL_ENV ]]; then
local VERSION_OUTPUT=$("$PYENV_VIRTUAL_ENV"/bin/python --version 2>&1)
local PYENV_VENV_VERSION=$(awk '{print $NF}' <<< "$VERSION_OUTPUT")
prompt_segment cyan white "[$PYENV_VERSION] $(basename "$PYENV_VENV_VERSION")"
else
prompt_segment cyan white "$PYENV_VERSION"
fi
fi
fi
}
### conda env prompt
function prompt_condaenv {
if [[ -d $CONDA_PREFIX ]]; then
if [[ ! $CONDA_PROMPT_MODIFIER ]]; then
CONDA_PROMPT_MODIFIER=$(basename "$CONDA_PREFIX")
fi
local CONDA_PYTHON_VERSION=$("$CONDA_PREFIX"/bin/python -c 'import platform;print(platform.python_version())')
prompt_segment cyan white "[c] $CONDA_PROMPT_MODIFIER $CONDA_PYTHON_VERSION"
fi
}
### Prompt components
# Each component will draw itself, and hide itself if no information needs to be shown
# Context: user@hostname (who am I and where am I)
function prompt_context {
local user=$(whoami)
if [[ $user != $DEFAULT_USER || -n $SSH_CLIENT ]]; then
prompt_segment black default "$user@\h"
fi
}
# prints history followed by HH:MM, useful for remembering what
# we did previously
function prompt_histdt {
prompt_segment black default "\! [\A]"
}
function git_status_dirty {
dirty=$(command git status -s 2> /dev/null | tail -n 1)
[[ -n $dirty ]] && echo " ●"
}
function git_stash_dirty {
stash=$(command git stash list 2> /dev/null | tail -n 1)
[[ -n $stash ]] && echo " ⚑"
}
# Git: branch/detached head, dirty status
function prompt_git {
local ref dirty
if command git rev-parse --is-inside-work-tree &>/dev/null; then
ZSH_THEME_GIT_PROMPT_DIRTY='±'
dirty=$(git_status_dirty)
stash=$(git_stash_dirty)
ref=$(command git symbolic-ref HEAD 2> /dev/null) ||
ref="$(command git describe --exact-match --tags HEAD 2> /dev/null)" ||
ref="$(command git show-ref --head -s --abbrev | head -n1 2> /dev/null)"
if [[ -n $dirty ]]; then
prompt_segment yellow black
else
prompt_segment green black
fi
PR="$PR${ref/refs\/heads\// }$stash$dirty"
fi
}
# Mercurial: clean, modified and uncomitted files
function prompt_hg {
local rev st branch
if hg id &>/dev/null; then
if hg prompt &>/dev/null; then
if [[ $(hg prompt "{status|unknown}") == '?' ]]; then
# if files are not added
prompt_segment red white
st='±'
elif [[ $(hg prompt "{status|modified}") ]]; then
# if any modification
prompt_segment yellow black
st='±'
else
# if working copy is clean
prompt_segment green black $CURRENT_FG
fi
PR="$PR$(hg prompt "☿ {rev}@{branch}") $st"
else
st=""
rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g')
branch=$(hg id -b 2>/dev/null)
if hg st | grep -q "^\?"; then
prompt_segment red white
st='±'
elif hg st | grep -q "^[MA]"; then
prompt_segment yellow black
st='±'
else
prompt_segment green black $CURRENT_FG
fi
PR="$PR$rev@$branch $st"
fi
fi
}
# Dir: current working directory
function prompt_dir {
prompt_segment blue black '\w'
}
# Status:
# - was there an error
# - am I root
# - are there background jobs?
function prompt_status {
local symbols
symbols=()
[[ $RETVAL -ne 0 ]] && symbols+="$(ansi_single $(fg_color red))"
[[ $UID -eq 0 ]] && symbols+="$(ansi_single $(fg_color yellow))"
[[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="$(ansi_single $(fg_color cyan))"
[[ -n "$symbols" ]] && prompt_segment black default "$symbols"
}
######################################################################
#
# experimental right prompt stuff
# requires setting prompt_foo to use PRIGHT vs PR
# doesn't quite work per above
function rightprompt {
printf "%*s" $COLUMNS "$PRIGHT"
}
# quick right prompt I grabbed to test things.
function __command_rprompt {
local times= n=$COLUMNS tz
for tz in ZRH:Europe/Zurich PIT:US/Eastern \
MTV:US/Pacific TOK:Asia/Tokyo; do
[ $n -gt 40 ] || break
times="$times ${tz%%:*}\e[30;1m:\e[0;36;1m"
times="$times$(TZ=${tz#*:} date +%H:%M)\e[0m"
n=$(( $n - 10 ))
done
[ -z "$times" ] || printf "%${n}s$times\\r" ''
}
# this doens't wrap code in \[ \]
function ansi_r {
local seq
local -a mycodes2=("${!1}")
debug "ansi: ${!1} all: $* aka ${mycodes2[@]}"
seq=""
local i
for ((i = 0; i < ${#mycodes2[@]}; i++)); do
if [[ -n $seq ]]; then
seq="${seq};"
fi
seq="${seq}${mycodes2[$i]}"
done
debug "ansi debug:" '\\[\\033['${seq}'m\\]'
echo -ne '\033['${seq}'m'
# PR="$PR\[\033[${seq}m\]"
}
# Begin a segment on the right
# Takes two arguments, background and foreground. Both can be omitted,
# rendering default background/foreground.
function prompt_right_segment {
local bg fg
local -a codes
debug "Prompt right"
debug "Prompting $1 $2 $3"
# if [[ -z $1 || ( -z $2 && $2 != default ) ]]; then
codes=("${codes[@]}" $(text_effect reset))
# fi
if [[ -n $1 ]]; then
bg=$(bg_color $1)
codes=("${codes[@]}" $bg)
debug "Added $bg as background to codes"
fi
if [[ -n $2 ]]; then
fg=$(fg_color $2)
codes=("${codes[@]}" $fg)
debug "Added $fg as foreground to codes"
fi
debug "Right Codes: "
# local -p codes
local -a intermediate2=($(fg_color $1) $(bg_color $CURRENT_RBG) )
# PRIGHT="$PRIGHT---"
debug "pre prompt " $(ansi_r intermediate2[@])
PRIGHT="$PRIGHT$(ansi_r intermediate2[@])$RIGHT_SEPARATOR"
debug "post prompt " $(ansi_r codes[@])
PRIGHT="$PRIGHT$(ansi_r codes[@]) "
# else
# debug "no current BG, codes is $codes[@]"
# PRIGHT="$PRIGHT$(ansi codes[@]) "
# fi
CURRENT_RBG=$1
[[ -n $3 ]] && PRIGHT="$PRIGHT$3"
}
######################################################################
## Emacs prompt --- for dir tracking
function prompt_emacsdir {
# no color or other setting... this will be deleted per above
PR="DIR \w DIR$PR"
}
######################################################################
## Main prompt
function build_prompt {
[[ ! -z ${AG_EMACS_DIR+x} ]] && prompt_emacsdir
prompt_status
#[[ -z ${AG_NO_HIST+x} ]] && prompt_histdt
[[ -z ${AG_NO_CONTEXT+x} ]] && prompt_context
if [[ ${OMB_PROMPT_SHOW_PYTHON_VENV-} ]]; then
prompt_virtualenv
prompt_pyenv
prompt_condaenv
fi
prompt_dir
prompt_git
prompt_hg
prompt_end
}
function _omb_theme_PROMPT_COMMAND {
local RETVAL=$?
local PRIGHT=""
local CURRENT_BG=NONE
local PR="$(ansi_single $(text_effect reset))"
build_prompt
# uncomment below to use right prompt
# PS1='\[$(tput sc; printf "%*s" $COLUMNS "$PRIGHT"; tput rc)\]'$PR
PS1=$PR
}
_omb_util_add_prompt_command _omb_theme_PROMPT_COMMAND

View file

@ -1,11 +0,0 @@
Host git.euph.dev
User git
HostName git.euph.dev
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitea-snoweuph
Host github.com
User git
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github-snoweuph

View file

@ -1,22 +0,0 @@
[user]
name = Snoweuph
email = snow+git@euph.email
signingKey = A494330694B208EF
[commit]
gpgSign = true
[push]
autosetupremote = true
[help]
autoCorrect = prompt
[merge]
tool = meld
conflictstyle = zdiff3
[core]
editor = nvim
[diff]
colorMoved = default
[fetch]
prune = true
prunetags = true
[alias]
adog = log --all --decorate --oneline --graph

58
.gitignore vendored
View file

@ -1,23 +1,49 @@
# Ignore Everything By Default # Ignore All
/* *
# Include Git Files # Include .gitignore
!.gitignore !.gitignore
!.gitmodules
# Include Git config # Include Readme.md
!.gitconfig !Readme.md
# Include bash config # Include Rice-bowl Dir
!.bash_profile !rice-bowl/**/*
!.bashrc !rice-bowl/*
!.profile !rice-bowl/
# Include config # Include I3 Dir
!.config/ !i3/**/*
!i3/
# Include ssh Symlink # Include Awesone Dir
!.ssh !awesome/**/*
!awesome
# Include Resource # Include Picom Dir
!Resources/ !picom/**/*
!picom/
# Include Polybar Dir
!polybar/**/*
!polybar
# Include Allacrity Dir
!alacritty/**/*
!alacritty/
# Include Flameshot Dir
!flameshot/**/*
!flameshot/
# Include Cava Dir
!cava/**/*
!cava/
# Include Rofi Dir
!rofi/**/*
!rofi/
# Include Dunst Dir
!dunst/**/*
!dunst/

3
.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule ".config/oh-my-bash"]
path = .config/oh-my-bash
url = https://github.com/ohmybash/oh-my-bash.git

View file

@ -1,3 +0,0 @@
# Volta
export VOLTA_HOME="$HOME/.volta"
export PATH="$VOLTA_HOME/bin:$PATH"

1
.ssh
View file

@ -1 +0,0 @@
./.config/ssh

167
Readme.md Normal file
View file

@ -0,0 +1,167 @@
## Rice Bowl
I've created a Dir under .config called Rice Bowl which is something like the Rice Controller / Master
### Intallation
- Install the software that is used by this tat you want to used
- clone repository `git clone git@git.euph.dev:snoweuph/Dotfiles.git`
- run install script that is located under `Dotfiles/rice-bowl/script/install.sh`
- set paths and other values in config under `.config/rice-bowl/config`
- run generate script once to generate config files `.config/rice-bowl/Scripts/generate_config.sh`
## Software Used
### Base
- Shell: ZSH
- Terminal: Alacritty
- Display Manager:
- Window Manager: I3
- Compositor: Picom
- Program Launcher: Rofi
- Panel: Polybar
- Notification Server: Dunst
- Audio Server: Pipewire
### Progress
- [x] Alacritty
- [x] i3
- [x] feh
- [x] dunst
- [x] picom
- [x] polybar
- [x] rofi
- [x] cava
- [x] flameshot
### CLI
- System Monitor: HTop
- Music Visualizer: Cava
- Image Viewer: Feh
- Fetch: Neofetch
### GUI
## Dir
### Tree
```
".config/"
|__"rice-bowl/"
| |__"demon.sh"
| |__"config.sh"
| |
| |__"config/"
| | |__"paths.sh"
| | |__"fonts.sh"
| | |__"styling.sh"
| |
| |__"scripts/"
| | |__"generate_config.sh"
| | |
| | |__"generators/"
| | |__"generate_<generator>_config.sh"
| |
| |__"themes/"
| |__"<theme>.sh"
|
|__"rofi/"
| |__"scripts/"
| | |__"<script-name>/"
| | |__"<script-name>.sh"
| | |__"<script-name>.rasi"
| |
| |__"themes/"
| |__"<theme-name>.rasi"
|
|__"i3/"
| |__"config"
| |
| |__"conf/"
| | |__"colors.conf"
| | |__"fonts.conf"
| | |__"bindings.conf"
| | |__"apps.conf"
| | |__"apps2.conf"
| | |__"workspaces.conf"
| | |__"styling.conf"
| | |__"styling1.conf
| | |__"rules.conf"
| |
| |__"scripts"
| |__"polybar.sh"
| |__"<script-name>.sh"
|
|__"picom/"
| |__"picom.conf"
|
|__"dunst/"
| |__"dunstrc"
| |
| |__"dunstrc.d"
| |__"00-colors.conf"
| |__"10-fonts.conf"
| |__"50-bindings.conf"
| |__"80-styling.conf"
|
|__"polybar/"
| |__"launch.sh"
| |__"config.ini"
| |
| |__"config/"
| | |__"colors.ini"
| | |__"fonts.ini"
| | |__"styling.ini"
| |
| |__"modules/"
| | |__"<module-name>/"
| | |__"<module-name>.ini"
| | |__"?<module-name>.sh"
| | |
| | |__"?config/"
| | |__"<module-name>.conf"
| |
| |__"bars/"
| |__"<bar-name>.ini"
|
|__"alacritty/"
| |__"alacritty.yml"
| |
| |__"config/"
| |__"colors.yml"
| |__"fonts.yml"
| |__"styling.yml"
```
### Files
#### rice-bowl/config/paths.txt
```
config-dir =
images-dir =
wallpaper-dir =
screenshot-dir =
```
## Themeing Engines
- GTK
- gtkrc
- gtk 2
- gtk 3
- gtk 4
### Important Envoirment Variables
- GTK_RC_FILES
- GTK2_RC_FILES
### Tools
*All of these are their names under fedora*
- qt5 - qt5ct
- qt4 - qtconfig-qt4 (provided by qtconfig)
- gtk - lxappearance

7
alacritty/alacritty.yml Normal file
View file

@ -0,0 +1,7 @@
# This File is Automaticly Generated. Changes inside of this won't persist. For more Information Look into /home/snoweuph/.config/rice-bowl
#Import Config
import:
- /home/snoweuph/.config/alacritty/config/colors.nogit.yml
- /home/snoweuph/.config/alacritty/config/fonts.nogit.yml
- /home/snoweuph/.config/alacritty/config/styling.nogit.yml

1
alacritty/config/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
*.nogit.yml

46
awesome/bindings.lua Normal file
View file

@ -0,0 +1,46 @@
local gears = require("gears")
local awful = require("awful")
clientkeys = gears.table.join(
awful.key({ modkey, }, "f",
function (c)
c.fullscreen = not c.fullscreen
c:raise()
end,
{description = "toggle fullscreen", group = "client"}),
awful.key({ modkey, "Shift" }, "q", function (c) c:kill() end,
{description = "close", group = "client"}),
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ,
{description = "toggle floating", group = "client"}),
awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end,
{description = "move to master", group = "client"}),
awful.key({ modkey, }, "o", function (c) c:move_to_screen() end,
{description = "move to screen", group = "client"}),
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end,
{description = "toggle keep on top", group = "client"}),
awful.key({ modkey, }, "n",
function (c)
-- The client currently has the input focus, so it cannot be
-- minimized, since minimized clients can't have the focus.
c.minimized = true
end ,
{description = "minimize", group = "client"}),
awful.key({ modkey, }, "m",
function (c)
c.maximized = not c.maximized
c:raise()
end ,
{description = "(un)maximize", group = "client"}),
awful.key({ modkey, "Control" }, "m",
function (c)
c.maximized_vertical = not c.maximized_vertical
c:raise()
end ,
{description = "(un)maximize vertically", group = "client"}),
awful.key({ modkey, "Shift" }, "m",
function (c)
c.maximized_horizontal = not c.maximized_horizontal
c:raise()
end ,
{description = "(un)maximize horizontally", group = "client"})
)

View file

@ -0,0 +1,31 @@
-- Require Libs
local gears = require("gears")
local awful = require("awful")
-- List of All Layouts
--[[
awful.layout.suit.floating
awful.layout.suit.tile
awful.layout.suit.tile.left
awful.layout.suit.tile.bottom
awful.layout.suit.tile.top
awful.layout.suit.fair
awful.layout.suit.fair.horizontal
awful.layout.suit.spiral
awful.layout.suit.spiral.dwindle
awful.layout.suit.max
awful.layout.suit.max.fullscreen
awful.layout.suit.magnifier
awful.layout.suit.corner.nw
awful.layout.suit.corner.ne
awful.layout.suit.corner.sw
awful.layout.suit.corner.se
]]--
-- Table of layouts to Use, Order Matters
awful.layout.layouts = {
awful.layout.suit.tile,
awful.layout.suit.floating,
awful.layout.suit.spiral,
awful.layout.suit.max.fullscreen,
}

33
awesome/rc.lua Normal file
View file

@ -0,0 +1,33 @@
-- This File is Automaticly Generated. Changes inside of this won't persist. For more Information Look into /home/snoweuph/.config/rice-bowl
-- Check if Lua Roocks, aka Import lib is installed
pcall(require, "luarocks.loader")
-- Require Libs
local naughty = require("naughty")
-- Check For Errors, fallback if found any
if awesome.startup_errors then
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, there were errors during startup!",
text = awesome.startup_errors })
end
do
local in_error = false
awesome.connect_signal("debug::error", function (err)
-- Make sure we don't go into an endless error loop
if in_error then return end
in_error = true
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, an error happened!",
text = tostring(err) })
in_error = false
end)
end
-- Import Themp Lua File
dofile ("/home/snoweuph/.config/awesome/themp.lua")

472
awesome/themp.lua Normal file
View file

@ -0,0 +1,472 @@
-- Standard awesome library
local gears = require("gears")
local awful = require("awful")
require("awful.autofocus")
-- Widget and layout library
local wibox = require("wibox")
-- Theme handling library
local beautiful = require("beautiful")
-- Notification library
local naughty = require("naughty")
local menubar = require("menubar")
local hotkeys_popup = require("awful.hotkeys_popup")
-- Enable hotkeys help widget for VIM and other apps
-- when client with a matching name is opened:
require("awful.hotkeys_popup.keys")
-- {{{ Variable definitions
-- Themes define colours, icons, font and wallpapers.
beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua")
-- This is used later as the default terminal and editor to run.
terminal = "alacritty"
editor = os.getenv("EDITOR") or "nano"
editor_cmd = terminal .. " -e " .. editor
-- Default modkey.
-- Usually, Mod4 is the key with a logo between Control and Alt.
-- If you do not like this or do not have such a key,
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
-- However, you can use another modifier like Mod1, but it may interact with others.
modkey = "Mod4"
dofile ("/home/snoweuph/.config/awesome/config/layouts.lua")
-- {{{ Menu
-- Create a launcher widget and a main menu
myawesomemenu = {
{ "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end },
{ "manual", terminal .. " -e man awesome" },
{ "edit config", editor_cmd .. " " .. awesome.conffile },
{ "restart", awesome.restart },
{ "quit", function() awesome.quit() end },
}
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
{ "open terminal", terminal }
}
})
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
menu = mymainmenu })
-- Menubar configuration
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
-- }}}
-- Keyboard map indicator and switcher
mykeyboardlayout = awful.widget.keyboardlayout()
-- {{{ Wibar
-- Create a textclock widget
mytextclock = wibox.widget.textclock()
-- Create a wibox for each screen and add it
local taglist_buttons = gears.table.join(
awful.button({ }, 1, function(t) t:view_only() end),
awful.button({ modkey }, 1, function(t)
if client.focus then
client.focus:move_to_tag(t)
end
end),
awful.button({ }, 3, awful.tag.viewtoggle),
awful.button({ modkey }, 3, function(t)
if client.focus then
client.focus:toggle_tag(t)
end
end),
awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end),
awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end)
)
local tasklist_buttons = gears.table.join(
awful.button({ }, 1, function (c)
if c == client.focus then
c.minimized = true
else
c:emit_signal(
"request::activate",
"tasklist",
{raise = true}
)
end
end),
awful.button({ }, 3, function()
awful.menu.client_list({ theme = { width = 250 } })
end),
awful.button({ }, 4, function ()
awful.client.focus.byidx(1)
end),
awful.button({ }, 5, function ()
awful.client.focus.byidx(-1)
end))
local function set_wallpaper(s)
-- Wallpaper
if beautiful.wallpaper then
local wallpaper = beautiful.wallpaper
-- If wallpaper is a function, call it with the screen
if type(wallpaper) == "function" then
wallpaper = wallpaper(s)
end
gears.wallpaper.maximized(wallpaper, s, true)
end
end
-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
screen.connect_signal("property::geometry", set_wallpaper)
awful.screen.connect_for_each_screen(function(s)
-- Wallpaper
set_wallpaper(s)
-- Each screen has its own tag table.
awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1])
-- Create a promptbox for each screen
s.mypromptbox = awful.widget.prompt()
-- Create an imagebox widget which will contain an icon indicating which layout we're using.
-- We need one layoutbox per screen.
s.mylayoutbox = awful.widget.layoutbox(s)
s.mylayoutbox:buttons(gears.table.join(
awful.button({ }, 1, function () awful.layout.inc( 1) end),
awful.button({ }, 3, function () awful.layout.inc(-1) end),
awful.button({ }, 4, function () awful.layout.inc( 1) end),
awful.button({ }, 5, function () awful.layout.inc(-1) end)))
-- Create a taglist widget
s.mytaglist = awful.widget.taglist {
screen = s,
filter = awful.widget.taglist.filter.all,
buttons = taglist_buttons
}
-- Create a tasklist widget
s.mytasklist = awful.widget.tasklist {
screen = s,
filter = awful.widget.tasklist.filter.currenttags,
buttons = tasklist_buttons
}
-- Create the wibox
s.mywibox = awful.wibar({ position = "top", screen = s })
-- Add widgets to the wibox
s.mywibox:setup {
layout = wibox.layout.align.horizontal,
{ -- Left widgets
layout = wibox.layout.fixed.horizontal,
mylauncher,
s.mytaglist,
s.mypromptbox,
},
s.mytasklist, -- Middle widget
{ -- Right widgets
layout = wibox.layout.fixed.horizontal,
mykeyboardlayout,
wibox.widget.systray(),
mytextclock,
s.mylayoutbox,
},
}
end)
-- }}}
-- {{{ Mouse bindings
root.buttons(gears.table.join(
awful.button({ }, 3, function () mymainmenu:toggle() end),
awful.button({ }, 4, awful.tag.viewnext),
awful.button({ }, 5, awful.tag.viewprev)
))
-- }}}
-- {{{ Key bindings
globalkeys = gears.table.join(
awful.key({ modkey, }, "s", hotkeys_popup.show_help,
{description="show help", group="awesome"}),
awful.key({ modkey, }, "Left", awful.tag.viewprev,
{description = "view previous", group = "tag"}),
awful.key({ modkey, }, "Right", awful.tag.viewnext,
{description = "view next", group = "tag"}),
awful.key({ modkey, }, "Escape", awful.tag.history.restore,
{description = "go back", group = "tag"}),
awful.key({ modkey, }, "j",
function ()
awful.client.focus.byidx( 1)
end,
{description = "focus next by index", group = "client"}
),
awful.key({ modkey, }, "k",
function ()
awful.client.focus.byidx(-1)
end,
{description = "focus previous by index", group = "client"}
),
awful.key({ modkey, }, "w", function () mymainmenu:show() end,
{description = "show main menu", group = "awesome"}),
-- Layout manipulation
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end,
{description = "swap with next client by index", group = "client"}),
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end,
{description = "swap with previous client by index", group = "client"}),
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end,
{description = "focus the next screen", group = "screen"}),
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
{description = "focus the previous screen", group = "screen"}),
awful.key({ modkey, }, "u", awful.client.urgent.jumpto,
{description = "jump to urgent client", group = "client"}),
awful.key({ modkey, }, "Tab",
function ()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end,
{description = "go back", group = "client"}),
-- Standard program
awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end,
{description = "open a terminal", group = "launcher"}),
awful.key({ modkey, "Control" }, "r", awesome.restart,
{description = "reload awesome", group = "awesome"}),
awful.key({ modkey, "Shift" }, "e", awesome.quit,
{description = "quit awesome", group = "awesome"}),
awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end,
{description = "increase master width factor", group = "layout"}),
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end,
{description = "decrease master width factor", group = "layout"}),
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end,
{description = "increase the number of master clients", group = "layout"}),
awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end,
{description = "decrease the number of master clients", group = "layout"}),
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end,
{description = "increase the number of columns", group = "layout"}),
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end,
{description = "decrease the number of columns", group = "layout"}),
awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end,
{description = "select next", group = "layout"}),
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end,
{description = "select previous", group = "layout"}),
awful.key({ modkey, "Control" }, "n",
function ()
local c = awful.client.restore()
-- Focus restored client
if c then
c:emit_signal(
"request::activate", "key.unminimize", {raise = true}
)
end
end,
{description = "restore minimized", group = "client"}),
-- Prompt
awful.key({ modkey }, "d", function () awful.spawn.with_shell("rofi -show drun") end,
{description = "run prompt", group = "launcher"}),
awful.key({ modkey }, "x",
function ()
awful.prompt.run {
prompt = "Run Lua code: ",
textbox = awful.screen.focused().mypromptbox.widget,
exe_callback = awful.util.eval,
history_path = awful.util.get_cache_dir() .. "/history_eval"
}
end,
{description = "lua execute prompt", group = "awesome"})
)
dofile ("/home/snoweuph/.config/awesome/bindings.lua")
-- Bind all key numbers to tags.
-- Be careful: we use keycodes to make it work on any keyboard layout.
-- This should map on the top row of your keyboard, usually 1 to 9.
for i = 1, 9 do
globalkeys = gears.table.join(globalkeys,
-- View tag only.
awful.key({ modkey }, "#" .. i + 9,
function ()
local screen = awful.screen.focused()
local tag = screen.tags[i]
if tag then
tag:view_only()
end
end,
{description = "view tag #"..i, group = "tag"}),
-- Toggle tag display.
awful.key({ modkey, "Control" }, "#" .. i + 9,
function ()
local screen = awful.screen.focused()
local tag = screen.tags[i]
if tag then
awful.tag.viewtoggle(tag)
end
end,
{description = "toggle tag #" .. i, group = "tag"}),
-- Move client to tag.
awful.key({ modkey, "Shift" }, "#" .. i + 9,
function ()
if client.focus then
local tag = client.focus.screen.tags[i]
if tag then
client.focus:move_to_tag(tag)
end
end
end,
{description = "move focused client to tag #"..i, group = "tag"}),
-- Toggle tag on focused client.
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
function ()
if client.focus then
local tag = client.focus.screen.tags[i]
if tag then
client.focus:toggle_tag(tag)
end
end
end,
{description = "toggle focused client on tag #" .. i, group = "tag"})
)
end
clientbuttons = gears.table.join(
awful.button({ }, 1, function (c)
c:emit_signal("request::activate", "mouse_click", {raise = true})
end),
awful.button({ modkey }, 1, function (c)
c:emit_signal("request::activate", "mouse_click", {raise = true})
awful.mouse.client.move(c)
end),
awful.button({ modkey }, 3, function (c)
c:emit_signal("request::activate", "mouse_click", {raise = true})
awful.mouse.client.resize(c)
end)
)
-- Set keys
root.keys(globalkeys)
-- }}}
-- {{{ Rules
-- Rules to apply to new clients (through the "manage" signal).
awful.rules.rules = {
-- All clients will match this rule.
{ rule = { },
properties = { border_width = beautiful.border_width,
border_color = beautiful.border_normal,
focus = awful.client.focus.filter,
raise = true,
keys = clientkeys,
buttons = clientbuttons,
screen = awful.screen.preferred,
placement = awful.placement.no_overlap+awful.placement.no_offscreen
}
},
-- Floating clients.
{ rule_any = {
instance = {
"DTA", -- Firefox addon DownThemAll.
"copyq", -- Includes session name in class.
"pinentry",
},
class = {
"Arandr",
"Blueman-manager",
"Gpick",
"Kruler",
"MessageWin", -- kalarm.
"Sxiv",
"Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
"Wpa_gui",
"veromix",
"xtightvncviewer"},
-- Note that the name property shown in xprop might be set slightly after creation of the client
-- and the name shown there might not match defined rules here.
name = {
"Event Tester", -- xev.
},
role = {
"AlarmWindow", -- Thunderbird's calendar.
"ConfigManager", -- Thunderbird's about:config.
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
}
}, properties = { floating = true }},
-- Add titlebars to normal clients and dialogs
{ rule_any = {type = { "normal", "dialog" }
}, properties = { titlebars_enabled = true }
},
-- Set Firefox to always map on the tag named "2" on screen 1.
-- { rule = { class = "Firefox" },
-- properties = { screen = 1, tag = "2" } },
}
-- }}}
-- {{{ Signals
-- Signal function to execute when a new client appears.
client.connect_signal("manage", function (c)
-- Set the windows at the slave,
-- i.e. put it at the end of others instead of setting it master.
-- if not awesome.startup then awful.client.setslave(c) end
if awesome.startup
and not c.size_hints.user_position
and not c.size_hints.program_position then
-- Prevent clients from being unreachable after screen count changes.
awful.placement.no_offscreen(c)
end
end)
-- Add a titlebar if titlebars_enabled is set to true in the rules.
client.connect_signal("request::titlebars", function(c)
-- buttons for the titlebar
local buttons = gears.table.join(
awful.button({ }, 1, function()
c:emit_signal("request::activate", "titlebar", {raise = true})
awful.mouse.client.move(c)
end),
awful.button({ }, 3, function()
c:emit_signal("request::activate", "titlebar", {raise = true})
awful.mouse.client.resize(c)
end)
)
awful.titlebar(c) : setup {
{ -- Left
awful.titlebar.widget.iconwidget(c),
buttons = buttons,
layout = wibox.layout.fixed.horizontal
},
{ -- Middle
{ -- Title
align = "center",
widget = awful.titlebar.widget.titlewidget(c)
},
buttons = buttons,
layout = wibox.layout.flex.horizontal
},
{ -- Right
awful.titlebar.widget.floatingbutton (c),
awful.titlebar.widget.maximizedbutton(c),
awful.titlebar.widget.stickybutton (c),
awful.titlebar.widget.ontopbutton (c),
awful.titlebar.widget.closebutton (c),
layout = wibox.layout.fixed.horizontal()
},
layout = wibox.layout.align.horizontal
}
end)
-- Enable sloppy focus, so that focus follows mouse.
client.connect_signal("mouse::enter", function(c)
c:emit_signal("request::activate", "mouse_enter", {raise = false})
end)
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
-- }}}

16
cava/config Normal file
View file

@ -0,0 +1,16 @@
# This File is Automaticly Generated. Changes inside of this won't persist. For more Information Look into /home/snoweuph/.config/rice-bowl
[output]
method = ncurses
[color]
gradient = 1
gradient_count = 8
gradient_color_1 = '#5e81ac'
gradient_color_2 = '#7db0d1'
gradient_color_3 = '#7ebdbc'
gradient_color_4 = '#80bf83'
gradient_color_5 = '#adbf7c'
gradient_color_6 = '#ebcb8b'
gradient_color_7 = '#d08770'
gradient_color_8 = '#bf616a'

69
dunst/dunstrc Normal file
View file

@ -0,0 +1,69 @@
# See dunst(5) for all configuration options
[global]
### Display ###
monitor = 0
follow = none
origin = top-right
scale = 0
notification_limit = 5
### Progress bar ###
progress_bar = true
progress_bar_height = 10
progress_bar_frame_width = 1
progress_bar_min_width = 150
progress_bar_max_width = 300
indicate_hidden = yes
transparency = 0
separator_height = 2
padding = 8
horizontal_padding = 8
text_icon_padding = 0
separator_color = frame
sort = yes
line_height = 0
markup = full
format = "<b>%s</b>\n%b"
alignment = left
vertical_alignment = center
show_age_threshold = 60
ellipsize = middle
ignore_newline = no
stack_duplicates = true
hide_duplicate_count = false
show_indicators = yes
### Icons ###
enable_recursive_icon_lookup = true
icon_theme = Adwaita
icon_position = left
min_icon_size = 32
max_icon_size = 128
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
sticky_history = yes
history_length = 20
### Misc/Advanced ###
dmenu = /usr/bin/dmenu -p dunst:
browser = /usr/bin/xdg-open
always_run_script = true
title = Dunst
class = Dunst
ignore_dbusclose = false
### mouse
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
[urgency_low]
timeout = 10
[urgency_normal]
timeout = 10
[urgency_critical]
timeout = 0

1
dunst/dunstrc.d/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
*.nogit.conf

11
flameshot/flameshot.ini Normal file
View file

@ -0,0 +1,11 @@
# This File is Automaticly Generated. Changes inside of this won't persist. For more Information Look into /home/snoweuph/.config/rice-bowl
[General]
uiColor=#937db5
contrastUiColor=#5e81ac
drawColor=#7db0d1
userColors=picker, #7db0d1, #5e81ac, #937db5
disabledTrayIcon=true

View file

@ -0,0 +1,6 @@
[General]
contrastOpacity=204
contrastUiColor=#5e81ac
disabledTrayIcon=truedrawColor=#81a1c1
uiColor=#88c0d0
userColors=picker, #2e3440, #bf616a, #b48ead

1
i3/conf/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
*.nogit.conf

28
i3/conf/apps.conf Normal file
View file

@ -0,0 +1,28 @@
##########################
# Configure Apps #
##########################
# Include Generated Version
include ./apps.nogit.conf
# Make Volume Function Keys Work
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status # Increase Volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status # Decrease Volume
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status # Mute Speaker
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status # Mute Mic
bindsym $mod+Return exec alacritty # open a Terminal
bindsym $mod+d exec --no-startup-id rofi -show drun # open Rofi
bindsym $mod+b exec --no-startup-id firefox # open a Browser
# Set Lockscreen for Suspending
exec --no-startup-id xss-lock --transfer-sleep-lock --i3lock --nofork
# KDE Connect
exec --no-startup-id kdeconnect-indicator
# Pulsemeeter
exec --no-startup-id pulsemeeter

23
i3/conf/apps.conf.save Normal file
View file

@ -0,0 +1,23 @@
##########################
# Configure Apps #
##########################
# Include Generated Version
include ./apps.nogit.conf
# Make Volume Function Keys Work
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status # Increase Volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status # Decrease Volume
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status # Mute Speaker
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status # Mute Mic
# Set Lockscreen for Suspending
exec --no-startup-id xss-lock --transfer-sleep-lock --i3lock --nofork
#KDE Connect
exec --no-startup-id kdeconnect-indicator

65
i3/conf/bindings.conf Normal file
View file

@ -0,0 +1,65 @@
##########################
# Configure Key Bindings #
##########################
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# change focus
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacked
bindsym $mod+t layout tabbed
bindsym $mod+w layout toggle split
# Set Split Mode
bindsym $mod+h split h
bindsym $mod+v split v
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# resize window (you can also use the mouse for that)
bindsym $mod+r mode "resize"
mode "resize" {
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym Left resize shrink width 5 px or 5ppt
bindsym Down resize shrink height 5 px or 5 ppt
bindsym Up resize grow height 5 px or 5 ppt
bindsym Right resize grow width 5 px or 5 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# kill focused window
bindsym $mod+Shift+q kill

23
i3/conf/rules.conf Normal file
View file

@ -0,0 +1,23 @@
##########################
# Configure Rules #
##########################
# Firefox
assign [class="(?i)Firefox"] 1
# Coding Related Windows
assign [class="(?i)Godot"] 3
assign [class="(?i)Code - OSS"] 3
assign [class="(?i)Gittyup"] 4
# Gaming Related Windows
assign [class="(?i)Heroic"] 5
assign [class="(?i)Steam"] 5
# Discord
assign [class="(?i)Discord"] 6
# Pulsemeeter
assign [class="(?i)Pulsemeeter"] 10

55
i3/conf/workspaces.conf Normal file
View file

@ -0,0 +1,55 @@
##########################
# Configure Workspaces #
##########################
# Set Monitor Variables (get list with xrandr --listmonitors)
set $monitor1 "DisplayPort-0"
set $monitor2 "DisplayPort-1"
set $monitor3 "DVI-D-0"
# Set Base Variables
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# Bind Workspaces to Screens
workspace $ws1 output $monitor1
workspace $ws2 output $monitor1
workspace $ws3 output $monitor2
workspace $ws4 output $monitor2
workspace $ws5 output $monitor2
workspace $ws6 output $monitor3
workspace $ws7 output $monitor3
# switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10

25
i3/config Normal file
View file

@ -0,0 +1,25 @@
#############################################################################
# i3 config file (v4) #
# Please see https://i3wm.org/docs/userguide.html for a complete reference! #
#############################################################################
# Set Mod Key
set $mod Mod4
##########################
# Include Files #
##########################
# Bindings
include ./conf/bindings.conf
# Workspaces
include ./conf/workspaces.conf
# Styling
include ./conf/styling.nogit.conf
# Fonts
include ./conf/fonts.nogit.conf
# Applications
include ./conf/apps.conf
# Application Rules
include ./conf/rules.conf

1
picom/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
*.nogit.conf

35
picom/picom.conf Normal file
View file

@ -0,0 +1,35 @@
#################################
# Base #
#################################
use-damage = true;
backend= "glx";
#################################
# Shadows #
#################################
shadow = false;
shadow-radius = 7;
shadow-offset-x = -7;
shadow-offset-y = -7;
shadow-exclude = [
"name = 'Notification'",
"class_g = 'Conky'",
"class_g ?= 'Notify-osd'",
"class_g = 'Cairo-clock'",
"_GTK_FRAME_EXTENTS@:c"
];
#################################
# Fading #
#################################
fading = true;
fade-in-step = 0.1;
fade-out-step = 0.1;
#################################
# Transparency / Opacity #
#################################
inactive-opacity-override = false;
focus-exclude = [ "class_g = 'Cairo-clock'" ];

1
polybar/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
**.nogit.ini

13
polybar/bars/main.ini Normal file
View file

@ -0,0 +1,13 @@
[bar/main]
inherit = base/bar
modules-left = cpm space-invert sep-b
modules-center = single-xworkspaces
modules-right = pulseaudio space sep-a space-invert dunst-snooze space-invert sep-b space time space sep-a date space-invert
tray-position = left
tray-detached = true
tray-scale = 0.9
tray-offset-x = 130
tray-offset-y = 3

13
polybar/bars/single.ini Normal file
View file

@ -0,0 +1,13 @@
[bar/single]
inherit = base/bar
modules-left = cpm space-invert sep-b
modules-center = xworkspaces
modules-right = pulseaudio space sep-a space-invert dunst-snooze space-invert sep-b space time space sep-a date space-invert
tray-position = left
tray-detached = true
tray-scale = 0.9
tray-offset-x = 130
tray-offset-y = 3

View file

@ -0,0 +1,17 @@
[bar/workspaces]
inherit = base/bar
modules-center = single-xworkspaces
bottom = true
width = 12%
offset-x = ${style.double-gaps}
offset-y = ${style.double-gaps}
border-size = ${style.border-thickness}
border-bottom-size = ${style.border-thickness}
border-color = ${colors.primary-accent}
override-redirect = true
wm-restack = ${env:RESTACK:}

View file

10
polybar/config.ini Normal file
View file

@ -0,0 +1,10 @@
include-file = ~/.config/polybar/config.d/colors.nogit.ini
include-file = ~/.config/polybar/config.d/fonts.nogit.ini
include-file = ~/.config/polybar/config.d/exec.nogit.ini
include-file = ~/.config/polybar/config.d/style.nogit.ini
include-file = ~/.config/polybar/settings.nogit.ini
include-directory = ~/.config/polybar/modules
include-directory = ~/.config/polybar/bars

7
polybar/modules/cava.ini Normal file
View file

@ -0,0 +1,7 @@
[module/cava]
type = custom/script
tail = true
exec = "${exec.cava}"
format = <label>
label-font = 3
label = "%output%"

10
polybar/modules/cpm.ini Normal file
View file

@ -0,0 +1,10 @@
[module/cpm]
type = custom/script
exec = ~/.config/polybar/scripts/cpm.sh
tail = true
label = " %output%"
label-font = 3
label-background = ${colors.primary-accent}
label-foreground = ${colors.primary-background}

11
polybar/modules/date.ini Normal file
View file

@ -0,0 +1,11 @@
[module/date]
type = internal/date
interval = 1
date = %d.%m
label-font = 3
label = "%date%"
label-background = ${colors.primary-accent}
label-foreground = ${colors.primary-background}

View file

@ -0,0 +1,9 @@
[module/dunst-snooze]
type = custom/script
exec = "${exec.dunst-snooze}"
tail = true
click-left = ~/.config/polybar/scripts/dunst-snooze.sh --toggle &
label = "%output%"
label-background = ${colors.primary-accent}
label-foreground = ${colors.primary-background}

View file

@ -0,0 +1,18 @@
[module/pulseaudio]
type = internal/pulseaudio
format-volume-prefix = " "
format-volume-prefix-background = ${colors.primary-background }
format-volume-prefix-foreground = ${colors.primary-accent}
format-volume = <label-volume>
label-volume = "%percentage%"
label-volume-background = ${colors.primary-background }
label-volume-foreground = ${colors.primary-accent}
label-muted = " 婢 "
label-muted-foreground = ${colors.alert}
label-muted-background = ${colors.primary-background }
interval = 5
click-right = pavucontrol

View file

@ -0,0 +1,12 @@
[module/sep-a]
type = custom/text
content =
content-foreground = ${colors.primary-accent}
content-background = ${colors.primary-background}
content-font = 2
[module/sep-b]
type = custom/text
content =
content-foreground = ${colors.primary-accent}
content-background = ${colors.primarybackground}
content-font = 2

View file

@ -0,0 +1,48 @@
[module/single-xworkspaces]
type = internal/xworkspaces
#Icons
#  Consoles
# ﭮ Discord
#  Firefox
#  Music
#  Code
#  Steam
#  Files
icon-default = ""
icon-0 = "1;"
icon-1 = "2;"
icon-2 = "3;"
icon-3 = "4;"
icon-4 = "5;"
icon-5 = "6;ﭮ"
icon-9 = "10;"
icon-6 = "7"
icon-7 = "8"
icon-8 = "9"
label-active = "%icon%"
label-active-background = ${colors.primary-accent}
label-active-foreground = ${colors.primary-background}
label-active-underline = ${colors.primary-accent}
label-active-padding = 0
label-active-font = 2
label-occupied = %icon%
label-occupied-padding = 1
label-occupied-font = 2
label-urgent = %icon%
label-urgent-foreground = ${colors.warn}
label-urgent-padding = 1
label-urgent-font = 2
label-empty = %icon%
label-empty-padding = 1
label-empty-font = 2
pin-workspaces = true

View file

@ -0,0 +1,9 @@
[module/space]
type = custom/text
content = ""
content-padding = 3pt
[module/space-invert]
type = custom/text
content = ""
content-background = ${colors.primary-accent}
content-padding = 3pt

11
polybar/modules/time.ini Normal file
View file

@ -0,0 +1,11 @@
[module/time]
type = internal/date
interval = 1
date = %H:%M
label-font = 3
label = " %date%"
label-foreground = ${colors.primary-accent}
label-background = ${colors.primary-background}

View file

@ -0,0 +1,4 @@
[module/xwindow]
type = internal/xwindow
label = %title:0:60:...%
format-foreground = ${colors.primary-accent}

View file

@ -0,0 +1,46 @@
[module/xworkspaces]
type = internal/xworkspaces
#Icons
#  Consoles
# ﭮ Discord
#  Firefox
#  Music
#  Code
#  Steam
#  Files
icon-default = ""
icon-0 = "1;"
icon-1 = "2;"
icon-2 = "3;"
icon-3 = "4;"
icon-4 = "5;"
icon-5 = "6;ﭮ"
icon-9 = "10;"
icon-6 = "7"
icon-7 = "8"
icon-8 = "9"
label-active = "%icon%"
label-active-background = ${colors.primary-accent}
label-active-foreground = ${colors.primary-background}
label-active-underline = ${colors.primary-accent}
label-active-padding = 0
label-active-font = 2
label-occupied = %icon%
label-occupied-padding = 1
label-occupied-font = 2
label-urgent = %icon%
label-urgent-foreground = ${colors.warn}
label-urgent-padding = 1
label-urgent-font = 2
label-empty = %icon%
label-empty-padding = 1
label-empty-font = 2

65
polybar/scripts/cava.sh Executable file
View file

@ -0,0 +1,65 @@
#!/bin/bash
#bar="▁▂▃▄▅▆▇█"
# make sure to clean pipe
pipe="/tmp/cava.fifo"
if [ -p $pipe ]; then
unlink $pipe
fi
mkfifo $pipe
# write cava config
config_file="/tmp/polybar_cava_config"
echo "
[general]
bars = 9
[output]
method = raw
raw_target = $pipe
data_format = ascii
ascii_max_range = 7
" > $config_file
# run cava in the background
cava -p $config_file &
#bar="▁▂▃▄▅▆▇█"
# reading data from fifo
while read -r cmd; do
i=0
output=""
while [ $i -lt $((${#cmd}/2)) ]
do
number="${cmd:$i*2:1}"
i=$((i=i+1))
case "$number" in
0)
output="$output$(echo "%{F$1}▁")"
;;
1)
output="$output$(echo "%{F$2}▂")"
;;
2)
output="$output$(echo "%{F$3}▃")"
;;
3)
output="$output$(echo "%{F$4}▄")"
;;
4)
output="$output$(echo "%{F$5}▅")"
;;
5)
output="$output$(echo "%{F$6}▆")"
;;
6)
output="$output$(echo "%{F$7}▇")"
;;
7)
output="$output$(echo "%{F$8}█")"
esac
done
echo $output
done < $pipe

64
polybar/scripts/cpm.sh Executable file
View file

@ -0,0 +1,64 @@
#!/bin/sh
# shellcheck disable=SC2016,SC2059
KEYBOARD_ID="Cooler Master Technology Inc. SK650"
# cpm: characters per minute
# wpm: words per minute (1 word = 5 characters)
METRIC=cpm
FORMAT=" %d$METRIC"
INTERVAL=2,5
# If you have a keyboard layout that is not listed here yet, create a condition
# yourself. $3 is the key index. Use `xinput test "AT Translated Set 2 keyboard"`
# to see key codes in real time. Be sure to open a pull request for your
# layout's condition!
LAYOUT=qwerty
case "$LAYOUT" in
qwerty) CONDITION='($3 >= 10 && $3 <= 19) || ($3 >= 24 && $3 <= 33) || ($3 >= 37 && $3 <= 53) || ($3 >= 52 && $3 <= 58)'; ;;
azerty) CONDITION='($3 >= 10 && $3 <= 19) || ($3 >= 24 && $3 <= 33) || ($3 >= 37 && $3 <= 54) || ($3 >= 52 && $3 <= 57)'; ;;
qwertz) CONDITION='($3 >= 10 && $3 <= 20) || ($3 >= 24 && $3 <= 34) || ($3 == 36) || ($3 >= 38 && $3 <= 48) || ($3 >= 52 && $3 <= 58)'; ;;
dvorak) CONDITION='($3 >= 10 && $3 <= 19) || ($3 >= 27 && $3 <= 33) || ($3 >= 38 && $3 <= 47) || ($3 >= 53 && $3 <= 61)'; ;;
dontcare) CONDITION='1'; ;; # Just register all key presses, not only letters and numbers
*) echo "Unsupported layout \"$LAYOUT\""; exit 1; ;;
esac
# We have to account for the fact we're not listening a whole minute
multiply_by=60
divide_by=$INTERVAL
case "$METRIC" in
wpm) divide_by=$((divide_by * 5)); ;;
cpm) ;;
*) echo "Unsupported metric \"$METRIC\""; exit 1; ;;
esac
hackspeed_cache="$(mktemp -p '' hackspeed_cache.XXXXX)"
trap 'rm "$hackspeed_cache"' EXIT
# Write a dot to our cache for each key press
printf '' > "$hackspeed_cache"
xinput test "$KEYBOARD_ID" | \
stdbuf -o0 awk '$1 == "key" && $2 == "press" && ('"$CONDITION"') {printf "."}' >> "$hackspeed_cache" &
while true; do
# Ask the kernel how big the file is with the command `stat`. The number we
# get is the file size in bytes, which equals the amount of dots the file
# contains, and hence how much keys were pressed since the file was last
# cleared.
lines=$(stat --format %s "$hackspeed_cache")
# Truncate the cache file so that in the next iteration, we count only new
# keypresses
printf '' > "$hackspeed_cache"
# The shell only does integer operations, so make sure to first multiply and
# then divide
value=$((lines * multiply_by / divide_by))
printf "$FORMAT\\n" "$value"
sleep $INTERVAL
done

14
polybar/scripts/dunst-snooze.sh Executable file
View file

@ -0,0 +1,14 @@
#!/bin/sh
case "$1" in
--toggle)
dunstctl set-paused toggle
;;
*)
if [ "$(dunstctl is-paused)" = "true" ]; then
echo "%{F$2} $(dunstctl count waiting)"
else
echo "%{F$1} $(dunstctl count displayed)"
fi
;;
esac

18
polybar/scripts/launch.sh Executable file
View file

@ -0,0 +1,18 @@
#!/bin/bash
killall -q polybar
restack_list=('' 'i3' '')
i=0
while read bar; do
if [[ $i -eq 0 ]]; then
# Launch Main Bar
MONITOR=$bar polybar main 2>&1 | tee -a /tmp/polybar_$bar.log & disown
else
# Launch Sub Bar
MONITOR=$bar RESTACK=${restack_list[$i]} polybar workspaces 2>&1 | tee -a /tmp/polybar_$bar.log & disown
fi
i=$((i + 1))
done < <(polybar -M | cut -d ':' -f 1)

9
rice-bowl/config.sh Executable file
View file

@ -0,0 +1,9 @@
#!/bin/bash
SH_DIR_config=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
RICE_GENERATED_HEADER="This File is Automaticly Generated. Changes inside of this won't persist. For more Information Look into $SH_DIR_config"
source $SH_DIR_config/config/paths.sh
source $SH_DIR_config/config/fonts.sh
source $SH_DIR_config/config/styling.sh

13
rice-bowl/config/fonts.sh Executable file
View file

@ -0,0 +1,13 @@
#!/bin/bash
RICE_FONT_NORMAL="Hack Nerd Font"
RICE_FONT_MONO="Hack Nerd Font Mono"
RICE_FONT_ICONS="Hack Nerd Font Mono"
RICE_FONT_SIZE_SMALL=14
RICE_FONT_SIZE_NORMAL=18
RICE_FONT_SIZE_BIG=26
RICE_FONT_SIZE_ICONS_SMALL=22
RICE_FONT_SIZE_ICONS_NORMAL=28
RICE_FONT_SIZE_ICONS_BIG=64

9
rice-bowl/config/paths.sh Executable file
View file

@ -0,0 +1,9 @@
#!/bin/bash
RICE_DIR_CONFIG=~/.config
RICE_DIR_RICE_BOWL=$RICE_DIR_CONFIG/rice-bowl
RICE_DIR_AUTORUN=~/.autorun
RICE_DIR_FONTS=/usr/share/fonts
RICE_DIR_IMAGES=~/Bilder
RICE_DIR_WALLPAPER=$RICE_DIR_IMAGES/Wallpaper
RICE_DIR_SCREENSHOTS=$RICE_DIR_IMAGES/Screenshots

18
rice-bowl/config/styling.sh Executable file
View file

@ -0,0 +1,18 @@
#!/bin/bash
RICE_THEME=nord
RICE_PADDING=4
RICE_GAPS=8
RICE_DPI=96
RICE_ELEMENT_HEIGHT_SMALL=22
RICE_ELEMENT_HEIGHT_MEDIUM=$(($((RICE_ELEMENT_HEIGHT_SMALL*9))/2))
RICE_ELEMENT_HEIGHT_BIG=$(($((RICE_ELEMENT_HEIGHT_MEDIUM*9))/2))
RICE_BORDER_RADIUS=8
RICE_BORDER_THICKNESS=2
RICE_OPACITY_FLOAT="0.8"
RICE_INACTIVE_OPACITY_FLOAT="0.8"
ROCE_OPACITY_PERCENTAGE="80%"

0
rice-bowl/demon.sh Normal file
View file

Some files were not shown because too many files have changed in this diff Show more