mirror of
https://github.com/ksyasuda/rice.git
synced 2024-11-22 03:19:58 -08:00
Compare commits
2 Commits
4307fa28db
...
7eafb32215
Author | SHA1 | Date | |
---|---|---|---|
|
7eafb32215 | ||
|
758fc2fe3f |
@ -34,7 +34,7 @@
|
|||||||
origin = top-right
|
origin = top-right
|
||||||
|
|
||||||
# Offset from the origin
|
# Offset from the origin
|
||||||
offset = 9x48
|
offset = 12x54
|
||||||
|
|
||||||
# Scale factor. It is auto-detected if value is 0.
|
# Scale factor. It is auto-detected if value is 0.
|
||||||
scale = 0
|
scale = 0
|
||||||
@ -113,7 +113,7 @@
|
|||||||
|
|
||||||
### Text ###
|
### Text ###
|
||||||
|
|
||||||
font = "mononoki-Regular Nerd Font Complete" 12
|
font = "JetBrainsMono Nerd Font Complete" 12
|
||||||
|
|
||||||
# The spacing between lines. If the height is smaller than the
|
# The spacing between lines. If the height is smaller than the
|
||||||
# font height, it will get raised to the font height.
|
# font height, it will get raised to the font height.
|
||||||
|
@ -30,7 +30,7 @@ set showmatch
|
|||||||
set list
|
set list
|
||||||
set listchars=tab:\ ,trail:
|
set listchars=tab:\ ,trail:
|
||||||
" set path from current directory and all directories under
|
" set path from current directory and all directories under
|
||||||
set path=$PWD/**
|
" set path=$PWD/**
|
||||||
set encoding=UTF-8
|
set encoding=UTF-8
|
||||||
set guifont=FiraCode\ Nerd\ Font\ 18
|
set guifont=FiraCode\ Nerd\ Font\ 18
|
||||||
set expandtab
|
set expandtab
|
||||||
@ -78,6 +78,7 @@ let g:maplocalleader = ','
|
|||||||
if has('nvim')
|
if has('nvim')
|
||||||
Plug 'nvim-lua/plenary.nvim'
|
Plug 'nvim-lua/plenary.nvim'
|
||||||
Plug 'nvim-lua/popup.nvim'
|
Plug 'nvim-lua/popup.nvim'
|
||||||
|
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
|
||||||
" Plug 'nvim-telescope/telescope.nvim'
|
" Plug 'nvim-telescope/telescope.nvim'
|
||||||
|
|
||||||
" Plug 'TimUntersberger/neogit'
|
" Plug 'TimUntersberger/neogit'
|
||||||
@ -91,7 +92,6 @@ if has('nvim')
|
|||||||
Plug 'lewis6991/gitsigns.nvim'
|
Plug 'lewis6991/gitsigns.nvim'
|
||||||
Plug 'lewis6991/gitsigns.nvim'
|
Plug 'lewis6991/gitsigns.nvim'
|
||||||
Plug 'nvim-lualine/lualine.nvim'
|
Plug 'nvim-lualine/lualine.nvim'
|
||||||
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
|
|
||||||
Plug 'ojroques/nvim-lspfuzzy'
|
Plug 'ojroques/nvim-lspfuzzy'
|
||||||
|
|
||||||
Plug 'L3MON4D3/LuaSnip'
|
Plug 'L3MON4D3/LuaSnip'
|
||||||
@ -139,6 +139,7 @@ if has('nvim')
|
|||||||
let g:fzf_command = 'fzf --height 90% --width=85% --layout=reverse --preview "bat --color=always {}"'
|
let g:fzf_command = 'fzf --height 90% --width=85% --layout=reverse --preview "bat --color=always {}"'
|
||||||
source ~/.config/nvim/keybindings.vim
|
source ~/.config/nvim/keybindings.vim
|
||||||
|
|
||||||
|
" nvim plugins
|
||||||
source ~/.config/nvim/plugin-confs/bufferline.lua
|
source ~/.config/nvim/plugin-confs/bufferline.lua
|
||||||
source ~/.config/nvim/plugin-confs/dashboard-art.vim
|
source ~/.config/nvim/plugin-confs/dashboard-art.vim
|
||||||
source ~/.config/nvim/plugin-confs/dashboard-nvim.lua
|
source ~/.config/nvim/plugin-confs/dashboard-nvim.lua
|
||||||
@ -163,6 +164,7 @@ if has('nvim')
|
|||||||
source ~/.config/nvim/plugin-confs/symbols-outline.lua
|
source ~/.config/nvim/plugin-confs/symbols-outline.lua
|
||||||
source ~/.config/nvim/plugin-confs/trouble.lua
|
source ~/.config/nvim/plugin-confs/trouble.lua
|
||||||
|
|
||||||
|
" nvim and vim plugins
|
||||||
source ~/.vim/plugin-confs/floaterm.vim
|
source ~/.vim/plugin-confs/floaterm.vim
|
||||||
source ~/.vim/plugin-confs/fzf.vim
|
source ~/.vim/plugin-confs/fzf.vim
|
||||||
source ~/.vim/plugin-confs/lightline.vim
|
source ~/.vim/plugin-confs/lightline.vim
|
||||||
|
@ -93,7 +93,7 @@ nmap <leader>ob :FloatermNew --title=bpytop --opener=vsplit bpytop<CR>
|
|||||||
nmap <leader>od :FloatermNew --title=lazydocker --opener=vsplit lazydocker<CR>
|
nmap <leader>od :FloatermNew --title=lazydocker --opener=vsplit lazydocker<CR>
|
||||||
nmap <leader>on :FloatermNew --title=ncmpcpp --opener=vsplit ncmpcpp<CR>
|
nmap <leader>on :FloatermNew --title=ncmpcpp --opener=vsplit ncmpcpp<CR>
|
||||||
nmap <leader>or :FloatermNew --title=ranger --opener=vsplit ranger --cmd="cd $PWD"<CR>
|
nmap <leader>or :FloatermNew --title=ranger --opener=vsplit ranger --cmd="cd $PWD"<CR>
|
||||||
nmap <leader>ot :FloatermNew --title=floaterm --name=vsplit-term --wintype=vsplit --position=botright --width=0.5<CR>
|
nmap <leader>ot :FloatermNew --title=floaterm --name=vsplit-term --opener=edit --wintype=vsplit --position=botright --width=0.5<CR>
|
||||||
|
|
||||||
nmap <leader>r :NvimTreeRefresh<CR>
|
nmap <leader>r :NvimTreeRefresh<CR>
|
||||||
|
|
||||||
|
@ -176,7 +176,7 @@ end)
|
|||||||
|
|
||||||
-- Use a loop to conveniently call 'setup' on multiple servers and
|
-- Use a loop to conveniently call 'setup' on multiple servers and
|
||||||
-- map buffer local keybindings when the language server attaches
|
-- map buffer local keybindings when the language server attaches
|
||||||
local servers = { 'pyright', 'bashls', 'sqls', 'vimls', 'yamlls', 'dockerls', 'html', 'sumneko_lua', 'jsonls', 'dotls', 'rust_analyzer', 'clangd' }
|
local servers = { 'pyright', 'bashls', 'vimls', 'yamlls', 'dockerls', 'html', 'sumneko_lua', 'dotls', 'rust_analyzer', 'clangd' }
|
||||||
for _, lsp in pairs(servers) do
|
for _, lsp in pairs(servers) do
|
||||||
require('lspconfig')[lsp].setup {
|
require('lspconfig')[lsp].setup {
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
|
@ -5,27 +5,28 @@ require('lualine').setup {
|
|||||||
-- theme = 'dracula',
|
-- theme = 'dracula',
|
||||||
-- theme = 'horizon',
|
-- theme = 'horizon',
|
||||||
-- theme = 'onedark',
|
-- theme = 'onedark',
|
||||||
component_separators = { left = '', right = ''},
|
component_separators = { left = '', right = '' },
|
||||||
section_separators = { left = '', right = ''},
|
section_separators = { left = '', right = ''},
|
||||||
|
-- section_separators = { left = '', right = '' },
|
||||||
disabled_filetypes = {},
|
disabled_filetypes = {},
|
||||||
always_divide_middle = true,
|
always_divide_middle = true,
|
||||||
},
|
},
|
||||||
sections = {
|
sections = {
|
||||||
lualine_a = { 'mode' },
|
lualine_a = { 'mode' },
|
||||||
lualine_b = {'branch', 'diff'},
|
lualine_b = { 'branch', 'diff' },
|
||||||
lualine_c = {'filename'},
|
lualine_c = { 'filename' },
|
||||||
lualine_x = {
|
lualine_x = {
|
||||||
{
|
{
|
||||||
'diagnostics',
|
'diagnostics',
|
||||||
'fileformat',
|
'fileformat',
|
||||||
symbols = {
|
symbols = {
|
||||||
unix = '', -- e712
|
unix = '', -- e712
|
||||||
dos = '', -- e70f
|
dos = '', -- e70f
|
||||||
mac = '', -- e711
|
mac = '', -- e711
|
||||||
}
|
}
|
||||||
}, 'encoding', 'fileformat', {'filetype', colored=true, icon_only=false}},
|
}, 'encoding', 'fileformat', { 'filetype', colored = true, icon_only = false } },
|
||||||
lualine_y = {'progress'},
|
lualine_y = { 'progress' },
|
||||||
lualine_z = {'location'}
|
lualine_z = { 'location' }
|
||||||
},
|
},
|
||||||
inactive_sections = {
|
inactive_sections = {
|
||||||
lualine_a = {},
|
lualine_a = {},
|
||||||
@ -33,20 +34,20 @@ require('lualine').setup {
|
|||||||
lualine_c = {
|
lualine_c = {
|
||||||
{
|
{
|
||||||
'filename',
|
'filename',
|
||||||
file_status = true, -- Displays file status (readonly status, modified status)
|
file_status = true, -- Displays file status (readonly status, modified status)
|
||||||
path = 0, -- 0: Just the filename
|
path = 0, -- 0: Just the filename
|
||||||
shorting_target = 40, -- Shortens path to leave 40 spaces in the window
|
shorting_target = 40, -- Shortens path to leave 40 spaces in the window
|
||||||
symbols = {
|
symbols = {
|
||||||
modified = '[+]', -- Text to show when the file is modified.
|
modified = '[+]', -- Text to show when the file is modified.
|
||||||
readonly = '[-]', -- Text to show when the file is non-modifiable or readonly.
|
readonly = '[-]', -- Text to show when the file is non-modifiable or readonly.
|
||||||
unnamed = '[No Name]', -- Text to show for unnamed buffers.
|
unnamed = '[No Name]', -- Text to show for unnamed buffers.
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
lualine_x = {'location'},
|
lualine_x = { 'location' },
|
||||||
lualine_y = {},
|
lualine_y = {},
|
||||||
lualine_z = {}
|
lualine_z = {}
|
||||||
},
|
},
|
||||||
tabline = {},
|
tabline = {},
|
||||||
extensions = {'quickfix', 'fzf', 'nvim-tree', 'symbols-outline', 'fugitive'}
|
extensions = { 'quickfix', 'fzf', 'nvim-tree', 'symbols-outline', 'fugitive' }
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ require("null-ls").setup({
|
|||||||
require("null-ls").builtins.diagnostics.cppcheck,
|
require("null-ls").builtins.diagnostics.cppcheck,
|
||||||
require("null-ls").builtins.diagnostics.gitlint,
|
require("null-ls").builtins.diagnostics.gitlint,
|
||||||
require("null-ls").builtins.diagnostics.jsonlint,
|
require("null-ls").builtins.diagnostics.jsonlint,
|
||||||
require("null-ls").builtins.diagnostics.luacheck,
|
-- require("null-ls").builtins.diagnostics.luacheck,
|
||||||
require("null-ls").builtins.diagnostics.markdownlint,
|
require("null-ls").builtins.diagnostics.markdownlint,
|
||||||
require("null-ls").builtins.diagnostics.pylint,
|
require("null-ls").builtins.diagnostics.pylint,
|
||||||
require("null-ls").builtins.diagnostics.pydocstyle.with({
|
require("null-ls").builtins.diagnostics.pydocstyle.with({
|
||||||
@ -28,13 +28,14 @@ require("null-ls").setup({
|
|||||||
}),
|
}),
|
||||||
require("null-ls").builtins.diagnostics.vint,
|
require("null-ls").builtins.diagnostics.vint,
|
||||||
require("null-ls").builtins.formatting.json_tool,
|
require("null-ls").builtins.formatting.json_tool,
|
||||||
require("null-ls").builtins.formatting.lua_format,
|
-- require("null-ls").builtins.formatting.lua_format,
|
||||||
require("null-ls").builtins.formatting.markdownlint,
|
require("null-ls").builtins.formatting.markdownlint,
|
||||||
require("null-ls").builtins.formatting.prettier,
|
require("null-ls").builtins.formatting.prettier,
|
||||||
require("null-ls").builtins.formatting.rustfmt,
|
-- handled by lsp server
|
||||||
|
-- require("null-ls").builtins.formatting.rustfmt,
|
||||||
require("null-ls").builtins.formatting.shfmt.with({
|
require("null-ls").builtins.formatting.shfmt.with({
|
||||||
filetypes = {"sh", "bash"},
|
filetypes = {"sh", "bash"},
|
||||||
extra_args = { "-i", "4", "-ci", "-sr" }
|
extra_args = { "-i", "0", "-ci", "-sr" }
|
||||||
}),
|
}),
|
||||||
require("null-ls").builtins.diagnostics.shellcheck.with({
|
require("null-ls").builtins.diagnostics.shellcheck.with({
|
||||||
extra_args = { "-s", "bash", "-o", "check-extra-masked-returns, check-set-e-suppressed, check-unassigned-uppercase, deprecate-which, quote-safe-variables" }
|
extra_args = { "-s", "bash", "-o", "check-extra-masked-returns, check-set-e-suppressed, check-unassigned-uppercase, deprecate-which, quote-safe-variables" }
|
||||||
|
@ -20,8 +20,8 @@ onedarkpro.setup({
|
|||||||
styles = {
|
styles = {
|
||||||
comments = "italic",
|
comments = "italic",
|
||||||
functions = "bold",
|
functions = "bold",
|
||||||
keywords = "bold,italic",
|
keywords = "italic,bold",
|
||||||
strings = "italic",
|
strings = "NONE",
|
||||||
variables = "bold"
|
variables = "bold"
|
||||||
},
|
},
|
||||||
options = {
|
options = {
|
||||||
|
@ -7,12 +7,12 @@
|
|||||||
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
||||||
# unless explicitly requested using the wintypes option.
|
# unless explicitly requested using the wintypes option.
|
||||||
#
|
#
|
||||||
# shadow = false
|
shadow = true
|
||||||
shadow = true;
|
# shadow = true;
|
||||||
|
|
||||||
# The blur radius for shadows, in pixels. (defaults to 12)
|
# The blur radius for shadows, in pixels. (defaults to 12)
|
||||||
# shadow-radius = 12
|
shadow-radius = 12
|
||||||
shadow-radius = 24;
|
# shadow-radius = 24;
|
||||||
|
|
||||||
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||||
# shadow-opacity = .75
|
# shadow-opacity = .75
|
||||||
@ -163,23 +163,31 @@ opacity-rule = [
|
|||||||
"100:class_g = 'mpv'",
|
"100:class_g = 'mpv'",
|
||||||
|
|
||||||
"95:class_g = 'firefoxdeveloperedition' && focused",
|
"95:class_g = 'firefoxdeveloperedition' && focused",
|
||||||
|
"95:class_g = 'xfreerdp' && focused",
|
||||||
|
|
||||||
"90:class_g = 'Alacritty' && focused",
|
"90:class_g = 'Alacritty' && focused",
|
||||||
|
"90:class_g = 'discord' && focused",
|
||||||
"90:class_g = 'Emacs' && focused",
|
"90:class_g = 'Emacs' && focused",
|
||||||
|
"90:class_g = 'Jellyfin Media Player' && focused",
|
||||||
|
"90:class_g = 'Steam' && focused",
|
||||||
"90:class_g = 'Thunar' && focused",
|
"90:class_g = 'Thunar' && focused",
|
||||||
"90:class_g = 'Thunderbird' && focused",
|
"90:class_g = 'Thunderbird' && focused",
|
||||||
"90:class_g = 'qutebrowser' && focused",
|
"90:class_g = 'qutebrowser' && focused",
|
||||||
|
|
||||||
"90:class_g = 'DBeaver' && !focused",
|
"90:class_g = 'DBeaver' && !focused",
|
||||||
"90:class_g = 'firefoxdeveloperedition' && !focused",
|
"90:class_g = 'firefoxdeveloperedition' && !focused",
|
||||||
|
"90:class_g = 'xfreerdp' && !focused",
|
||||||
|
|
||||||
"85:class_g = 'Alacritty' && !focused",
|
"85:class_g = 'Alacritty' && !focused",
|
||||||
"85:class_g = 'Bitwarden' && !focused",
|
"85:class_g = 'Bitwarden' && !focused",
|
||||||
|
"85:class_g = 'discord' && !focused",
|
||||||
"85:class_g = 'Emacs' && !focused",
|
"85:class_g = 'Emacs' && !focused",
|
||||||
|
"85:class_g = 'Jellyfin Media Player' && !focused",
|
||||||
"85:class_g = 'Joplin' && !focused",
|
"85:class_g = 'Joplin' && !focused",
|
||||||
"85:class_g = 'Microsoft Teams - Preview' && !focused",
|
"85:class_g = 'Microsoft Teams - Preview' && !focused",
|
||||||
"85:class_g = 'Notepadqq' && !focused",
|
"85:class_g = 'Notepadqq' && !focused",
|
||||||
"85:class_g = 'Polybar' && !focused",
|
"85:class_g = 'Polybar' && !focused",
|
||||||
|
"85:class_g = 'Steam' && !focused",
|
||||||
"85:class_g = 'Thunar' && !focused",
|
"85:class_g = 'Thunar' && !focused",
|
||||||
"85:class_g = 'Thunderbird' && !focused",
|
"85:class_g = 'Thunderbird' && !focused",
|
||||||
"85:class_g = 'qutebrowser' && !focused",
|
"85:class_g = 'qutebrowser' && !focused",
|
||||||
@ -233,7 +241,8 @@ blur-background-exclude = [
|
|||||||
"window_type = 'desktop'",
|
"window_type = 'desktop'",
|
||||||
"_GTK_FRAME_EXTENTS@:c",
|
"_GTK_FRAME_EXTENTS@:c",
|
||||||
"name *= 'rect-overlay'",
|
"name *= 'rect-overlay'",
|
||||||
"name *= 'mpv'"
|
"name *= 'mpv'",
|
||||||
|
"name *= 'Peek'"
|
||||||
];
|
];
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
@ -270,7 +279,7 @@ mark-ovredir-focused = true;
|
|||||||
# shaped windows. The accuracy is not very high, unfortunately.
|
# shaped windows. The accuracy is not very high, unfortunately.
|
||||||
#
|
#
|
||||||
# detect-rounded-corners = false
|
# detect-rounded-corners = false
|
||||||
detect-rounded-corners = false;
|
detect-rounded-corners = true;
|
||||||
|
|
||||||
# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
|
# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
|
||||||
# not passing '_NET_WM_OPACITY' of client windows to frame windows.
|
# not passing '_NET_WM_OPACITY' of client windows to frame windows.
|
||||||
@ -346,14 +355,14 @@ detect-client-leader = true
|
|||||||
# practically happened) and may not work with blur-background.
|
# practically happened) and may not work with blur-background.
|
||||||
# My tests show a 15% performance boost. Recommended.
|
# My tests show a 15% performance boost. Recommended.
|
||||||
#
|
#
|
||||||
glx-no-stencil = false
|
glx-no-stencil = true
|
||||||
|
|
||||||
# GLX backend: Avoid rebinding pixmap on window damage.
|
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||||
# Probably could improve performance on rapid window content changes,
|
# Probably could improve performance on rapid window content changes,
|
||||||
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
||||||
# Recommended if it works.
|
# Recommended if it works.
|
||||||
#
|
#
|
||||||
glx-no-rebind-pixmap = false
|
glx-no-rebind-pixmap = true
|
||||||
|
|
||||||
# Disable the use of damage information.
|
# Disable the use of damage information.
|
||||||
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
|
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
|
||||||
@ -367,7 +376,7 @@ glx-no-rebind-pixmap = false
|
|||||||
# calls are finished before picom starts drawing. Needed on nvidia-drivers
|
# calls are finished before picom starts drawing. Needed on nvidia-drivers
|
||||||
# with GLX backend for some users.
|
# with GLX backend for some users.
|
||||||
#
|
#
|
||||||
xrender-sync-fence = false
|
xrender-sync-fence = true
|
||||||
|
|
||||||
# GLX backend: Use specified GLSL fragment shader for rendering window contents.
|
# GLX backend: Use specified GLSL fragment shader for rendering window contents.
|
||||||
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
|
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
|
||||||
@ -454,7 +463,6 @@ log-level = "warn";
|
|||||||
#stop tearing on fullscreen windows
|
#stop tearing on fullscreen windows
|
||||||
unredir-if-possible = false;
|
unredir-if-possible = false;
|
||||||
|
|
||||||
|
|
||||||
wintypes:
|
wintypes:
|
||||||
{
|
{
|
||||||
tooltip = { fade = true; shadow = true; opacity = 0.95; focus = true; full-shadow = false; };
|
tooltip = { fade = true; shadow = true; opacity = 0.95; focus = true; full-shadow = false; };
|
||||||
@ -487,7 +495,8 @@ rounded-corners-exclude = [
|
|||||||
blur: {
|
blur: {
|
||||||
method = "dual_kawase";
|
method = "dual_kawase";
|
||||||
# method = "kawase";
|
# method = "kawase";
|
||||||
strength = 2;
|
# strength = 4;
|
||||||
|
# strength = 12;
|
||||||
background = true;
|
background = true;
|
||||||
background-frame = false;
|
background-frame = false;
|
||||||
background-fixed = false;
|
background-fixed = false;
|
||||||
|
@ -179,7 +179,7 @@ locale = en_US.UTF-8
|
|||||||
; right
|
; right
|
||||||
; none
|
; none
|
||||||
; tray-position = center
|
; tray-position = center
|
||||||
tray-position = none
|
tray-position = center
|
||||||
|
|
||||||
; If true, the bar will not shift its
|
; If true, the bar will not shift its
|
||||||
; contents when the tray changes
|
; contents when the tray changes
|
||||||
|
@ -15,6 +15,7 @@ c.url.searchengines["ap"] = "https://www.archlinux.org/packages/?sort=&q={}"
|
|||||||
c.url.searchengines["aur"] = "https://aur.archlinux.org/packages/?K={}"
|
c.url.searchengines["aur"] = "https://aur.archlinux.org/packages/?K={}"
|
||||||
c.url.searchengines["gh"] = "https://github.com/search?q={}&type=Code"
|
c.url.searchengines["gh"] = "https://github.com/search?q={}&type=Code"
|
||||||
c.url.searchengines["r"] = "https://www.reddit.com/r/{}"
|
c.url.searchengines["r"] = "https://www.reddit.com/r/{}"
|
||||||
|
c.url.searchengines["p"] = "https://docs.python.org/3/library/{}"
|
||||||
|
|
||||||
c.aliases["gd"] = "open -t http://192.168.4.77:4000"
|
c.aliases["gd"] = "open -t http://192.168.4.77:4000"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user