update: huge style update

This commit is contained in:
2026-03-13 10:37:01 +03:00
parent 1dea8c1a69
commit c49c97d55c
55 changed files with 686 additions and 332 deletions

View File

@@ -1,3 +1,24 @@
# editor
export EDITOR=nvim
# infinite bash history
# remove '-1' in both places if your bash version < 4.3
export HISTFILESIZE=-1
export HISTSIZE=-1
# writes bash history after every command
export PROMPT_COMMAND="history -a"
# pyenv
if command -v pyenv >/dev/null 2>&1; then
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"
fi
# android-sdk
export ANDROID_SDK_ROOT=/opt/android-sdk
export PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin
export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools

39
.bashrc
View File

@@ -1,21 +1,4 @@
# Configs
export EDITOR=nvim
# infinite bash history
# remove '-1' in both places if your bash version < 4.3
export HISTFILESIZE=-1
export HISTSIZE=-1
# writes bash history after every command
export PROMPT_COMMAND="history -a"
# pyenv
if command -v pyenv >/dev/null 2>&1; then
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"
fi
# additional aliases
if [ -f "$HOME/.bash_private" ]; then
. "$HOME/.bash_private"
fi
@@ -45,13 +28,14 @@ alias t='cd ~/tmp'
alias cleartmp='rm -r ~/tmp/*'
# edit configs aliases
alias cfghypr='nvim ~/.config/hypr'
alias cfgkitty='nvim ~/.config/kitty'
alias cfgnvim='nvim ~/.config/nvim'
alias cfgrofi='nvim ~/.config/rofi'
alias cfgwaybar='nvim ~/.config/waybar'
alias cfgdunst='nvim ~/.config/dunst'
alias cfgyazi='nvim ~/.config/yazi'
alias cfghypr='(nvim ~/.config/hypr)'
alias cfgkitty='(nvim ~/.config/kitty)'
alias cfgnvim='(nvim ~/.config/nvim)'
alias cfgrofi='(nvim ~/.config/rofi)'
alias cfgwaybar='(nvim ~/.config/waybar)'
alias cfgdunst='(nvim ~/.config/dunst)'
alias cfgyazi='(nvim ~/.config/yazi)'
alias cfgfastfetch='(nvim ~/.config/fastfetch)'
# utils aliases
alias y='yazi'
@@ -63,13 +47,16 @@ alias hload='hyprctl reload'
alias shy='start-hyprland'
alias wifi-reload='nmcli r wifi off && nmcli r wifi on'
alias swagger-docs='sudo host-docs'
alias share='python3 -m http.server'
alias download='aria2c -x16 -s16'
# kitty aliases
alias ssh='kitty +kitten ssh'
alias edit-in-kitty='kitten edit-in-kitty'
# yay aliases
# yay/pacman aliases
alias pzf='yay -Qq | fzf --preview '\''yay -Qil {}'\'' --layout reverse --bind '\''enter:execute(yay -Qil {} | less)'\'' --bind '\''ctrl-r:execute(yay -R {} | less)'\'''
alias paclean='sudo pacman -Rs '
# fun aliases
alias ff='fastfetch'

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 MiB

View File

Before

Width:  |  Height:  |  Size: 2.5 MiB

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

Before

Width:  |  Height:  |  Size: 16 MiB

After

Width:  |  Height:  |  Size: 16 MiB

View File

Before

Width:  |  Height:  |  Size: 3.6 MiB

After

Width:  |  Height:  |  Size: 3.6 MiB

View File

Before

Width:  |  Height:  |  Size: 11 MiB

After

Width:  |  Height:  |  Size: 11 MiB

View File

@@ -0,0 +1,10 @@
# Wallpaper
env = WALLPAPER,$HOME/.config/hypr/Wallpapers/Arcane/jinx-fog.png
# Lockscreen wallpaper
env = LOCK_WALLPAPER,$HOME/.config/hypr/Wallpapers/Arcane/airship.png
env = LOCK_BLUR_PASSES,0 # 0 disable blurring
# Custom env to switch between default hyprland workspace switching style and hyprnome style
env = GNOME_STYLE_WORKSPACES,true

View File

@@ -1,3 +1,6 @@
# TODO: testing
exec-once = bash -c "sleep 1 && for monitor in $(hyprctl monitors -j | jq -r '.[].name'); do hyprctl dispatch workspace 100 && hyprctl dispatch focusworkspaceoncurrentmonitor 100; done"
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = uwsm app -- /usr/lib/xdg-desktop-portal-hyprland
@@ -6,9 +9,8 @@ exec-once = uwsm app -- /usr/lib/xdg-desktop-portal-gtk
exec-once = uwsm app -- hypridle
# exec-once = uwsm app -- hyprpaper
exec-once = uwsm app -- swww-daemon
exec-once = swww img "$WALLPAPER"
exec-once = uwsm app -- swww img "$WALLPAPER"
exec-once = uwsm app -- waybar
exec-once = uwsm app -- dunst

View File

@@ -3,17 +3,19 @@ $mainMod = SUPER
# navigation binds
bind = $mainMod SHIFT, C, killactive,
bind = $mainMod SHIFT, M, exit,
bind = $mainMod SHIFT, V, togglefloating,
bind = $mainMod SHIFT, C, killactive
bind = $mainMod SHIFT, M, exit
# window special
bind = $mainMod SHIFT, P, togglefloating
bind = $mainMod, F, fullscreen, 1
bind = $mainMod SHIFT, F, fullscreen, 0
# dwindle
bind = $mainMod, P, pseudo,
bind = $mainMod, T, togglesplit,
bind = $mainMod SHIFT, T, swapsplit,
bind = $mainMod, P, pseudo
bind = $mainMod, T, layoutmsg, togglesplit
bind = $mainMod SHIFT, T, layoutmsg, swapsplit
# apps binds
@@ -24,7 +26,7 @@ bind = $mainMod SHIFT, R, exec, .config/rofi/network-manager/run-manager.sh
# copy binds
bind = $mainMod, V, exec, rofi -modi clipboard:/$HOME/.config/rofi/cliphist-rofi-img.sh -show clipboard -show-icon
bind = $mainMod, V, exec, rofi -modi clipboard:/$HOME/.config/rofi/clipboard/cliphist-rofi-img.sh -show clipboard -show-icon -config ~/.config/rofi/clipboard-config.rasi
# -config $HOME/.config/rofi/clipboard-config.rasi
bind = $mainMod SHIFT, S, exec, IMG=~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).png && grim -g "$(slurp)" $IMG && wl-copy < $IMG
bind = , PRINT, exec, grim - | wl-copy
@@ -102,41 +104,26 @@ bindm = $mainMod, mouse:273, resizewindow
bindm = $mainMod SHIFT, mouse:272, resizewindow
# Resize with keyboard
bind = $mainMod CTRL, h, resizeactive, -30 0
bind = $mainMod CTRL, l, resizeactive, 30 0
bind = $mainMod CTRL, j, resizeactive, 0 30
bind = $mainMod CTRL, k, resizeactive, 0 -30
# Switch workspaces
bind = $mainMod, A, focusworkspaceoncurrentmonitor, r-1
bind = $mainMod, D, focusworkspaceoncurrentmonitor, r+1
bind = $mainMod, A, exec, .config/hypr/scripts/workspace-handler.sh change previous
bind = $mainMod, D, exec, .config/hypr/scripts/workspace-handler.sh change next
bind = $mainMod CTRL, A, focusworkspaceoncurrentmonitor, r-1
bind = $mainMod CTRL, D, focusworkspaceoncurrentmonitor, r+1
# Move active window to the next or previous workspace
bind = $mainMod SHIFT, A, movetoworkspace, r-1
bind = $mainMod SHIFT, D, movetoworkspace, r+1
# Move active window between workspaces
bind = $mainMod SHIFT, A, exec, .config/hypr/scripts/workspace-handler.sh move previous
bind = $mainMod SHIFT, D, exec, .config/hypr/scripts/workspace-handler.sh move next
bind = $mainMod CTRL SHIFT, A, movetoworkspace, r-1
bind = $mainMod CTRL SHIFT, D, movetoworkspace, r+1
# Swap worlspaces between monitors
bind = $mainMod, TAB, swapactiveworkspaces, 1 0
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, focusworkspaceoncurrentmonitor, 1
bind = $mainMod, 2, focusworkspaceoncurrentmonitor, 2
bind = $mainMod, 3, focusworkspaceoncurrentmonitor, 3
bind = $mainMod, 4, focusworkspaceoncurrentmonitor, 4
bind = $mainMod, 5, focusworkspaceoncurrentmonitor, 5
bind = $mainMod, 6, focusworkspaceoncurrentmonitor, 6
bind = $mainMod, 7, focusworkspaceoncurrentmonitor, 7
bind = $mainMod, 8, focusworkspaceoncurrentmonitor, 8
bind = $mainMod, 9, focusworkspaceoncurrentmonitor, 9
bind = $mainMod, 0, focusworkspaceoncurrentmonitor, 0
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 0

View File

@@ -12,6 +12,7 @@ exec = gsettings set org.gnome.desktop.interface gtk-theme "adw-gtk3-dark"
env = XCURSOR_SIZE,24
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
env = MOZ_ENABLE_WAYLAND,1
# env = chrome,--enable-features=TouchpadOverscrollHistoryNavigation
env = GDK_SCALE,1

View File

@@ -1,3 +1,4 @@
# Splashes
ecosystem {
no_update_news = true
no_donation_nag = true
@@ -5,24 +6,31 @@ ecosystem {
misc {
disable_hyprland_logo = true
disable_splash_rendering = true
disable_splash_rendering = true
}
# General config
general {
gaps_in = 3
gaps_out = 5
border_size = 2
col.active_border = rgba(33ccffee) rgba(bd93f9ee) 45deg
col.active_border = rgba(6aa0d2ff) rgba(cb7194ff) 24deg
col.inactive_border = rgba(595959aa)
layout = dwindle
}
dwindle {
pseudotile = yes
preserve_split = yes
}
cursor {
inactive_timeout = 2
}
# Window styling
decoration {
rounding = 10
blur {
@@ -67,13 +75,6 @@ animations {
# animation = workspaces, 1, 6, myBezier, slide
}
dwindle {
pseudotile = yes
preserve_split = yes
}
group {
col.border_active = rgba(33ccffee) rgba(bd93f9ee) 45deg
groupbar {

View File

@@ -1 +0,0 @@
env = WALLPAPER_PATH,$HOME/.config/hypr/Wallpapers/kotamota2.png

View File

@@ -17,6 +17,7 @@ windowrule = tag +tools, match:class ^([Dd][Bb]eaver|[Dd][Bb]eaver-ce|[Dd][Bb]ea
windowrule = opacity 0.85 0.75, match:tag tools*
# jetbrains
windowrule = no_initial_focus on, match:class (jetbrains-idea), match:title ^win.*
windowrule = no_initial_focus on, match:class (jetbrains-studio), match:title ^win(.*)
@@ -24,6 +25,12 @@ windowrule = no_initial_focus on, match:class (jetbrains-goland), match:title ^
windowrule = no_initial_focus on, match:class (jetbrains-toolbox), match:float yes
windowrule = no_initial_focus on, match:class (jetbrains-goland), match:float yes, match:title ^$, match:initial_title ^$
# other
# windowrule = float, center, match:class ^(xfce-polkit)$
# windowrule = float, center, match:class ^(file-roller)$
# Permanent
# windowrule = size 800 400,match:float yes
# set

View File

@@ -0,0 +1,40 @@
## Sources
https://colorscheme.ru/color-converter.html
http://maketintsandshades.com/#colors=0661b4,a9124d&hashtag=0&steps=10
https://meyerweb.com/eric/tools/color-blend/#0661B4:A9124D:4:hex
## Original colors:
### Jinx Blue
`#0661b4`
### Vi Red
`#a9124d`
## Gradients:
### Jinx Blue -> Vi Red
`#0661b4`
`#27519f`
`#47418b`
`#683276`
`#882262`
`#a9124d`
### Jinx Blue ^
`#0661b4`
`#3881c3`
`#6aa0d2`
`#9bc0e1`
`#cddff0`
### Vi Red ^
`#a9124d`
`#ba4171`
`#cb7194`
`#dda0b8`
`#eed0db`
## Most used:
Blue: `#6aa0d2`
Red: `#cb7194`

View File

@@ -1,10 +1,16 @@
# General
general {
fail_timeout = 300
}
animations {
animation = fadeIn, 0
animation = fadeOut, 0
}
background {
path = $HOME/.config/hypr/Wallpapers/kita.png
blur_passes = 1 # 0 disables blurring
path = $LOCK_WALLPAPER
blur_passes = $LOCK_BLUR_PASSES
blur_size = 3
noise = 0.0117
contrast = 0.8916
@@ -13,34 +19,50 @@ background {
vibrancy_darkness = 0.0
}
input-field {
size = 250, 60
outline_thickness = 4
dots_size = 0.2
dots_spacing = 0.2
dots_center = true
outer_color = rgba(51, 204, 255, 0.93)
inner_color = rgba(10, 0, 30, 0)
font_color = rgb(200, 200, 200)
fade_on_empty = false
font_family = JetBrains Mono Nerd Font Mono
placeholder_text = <i><span foreground="##cdd6f4">Мур Кусь</span></i>
hide_input = false
position = 0, -280
halign = center
valign = center
}
# Positioning
# Time
label {
text = cmd[update:1000] echo "$(date +"%R")"
color = $foreground
font_size = 60
font_family = JetBrains Mono Nerd Font Mono ExtraBold
position = 0, -180
halign = center
position = 210, 240
halign = left
valign = center
}
# Date
label {
text = cmd[update:1000] echo -e "$(date +"%A, %B %d")"
color = rgba(216, 222, 233, 0.75)
font_size = 20
font_family = SF Pro Display Bold
position = 202, 175
halign = left
valign = center
}
# Input
input-field {
size = 350, 55
outline_thickness = 2
dots_size = 0.2
dots_spacing = 0.2
dots_center = true
outer_color = rgba(56, 129, 195, 0.94)
inner_color = rgba(10, 0, 30, 0.3)
font_color = rgb(200, 200, 200)
fade_on_empty = false
font_family = JetBrains Mono Nerd Font Mono
placeholder_text = <i><span foreground="##cdd6f4">Poow</span></i>
hide_input = false
position = 160, 40
halign = left
valign = center
}
# Player (TODO: fix it)
label {
text = cmd[update:1000] echo "$($HOME/.config/hypr/scripts/player-status.sh)"
color = $foreground
@@ -51,7 +73,3 @@ label {
valign = bottom
}
animations {
animation = fadeIn, 0
animation = fadeOut, 0
}

View File

@@ -0,0 +1,52 @@
#!/bin/bash
# Usage: workspace-handler.sh <mode> <direction>
# mode: "change" | "move"
# direction: "next" | "previous"
mode="$1"
direction="$2"
if [[ -z "$mode" || -z "$direction" ]]; then
exit 1
fi
if [[ "$mode" != "change" && "$mode" != "move" ]]; then
exit 1
fi
if [[ "$direction" != "next" && "$direction" != "previous" ]]; then
exit 1
fi
if [[ "$GNOME_STYLE_WORKSPACES" == "true" ]] && command -v hyprnome &>/dev/null; then
# Hyprnome style
if [[ "$mode" == "change" ]]; then
if [[ "$direction" == "previous" ]]; then
exec hyprnome --previous
else
exec hyprnome
fi
else
if [[ "$direction" == "previous" ]]; then
exec hyprnome --previous --move
else
exec hyprnome --move
fi
fi
else
# Hyprland style
if [[ "$mode" == "change" ]]; then
if [[ "$direction" == "previous" ]]; then
exec hyprctl dispatch focusworkspaceoncurrentmonitor r-1
else
exec hyprctl dispatch focusworkspaceoncurrentmonitor r+1
fi
else
if [[ "$direction" == "previous" ]]; then
exec hyprctl dispatch movetoworkspace r-1
else
exec hyprctl dispatch movetoworkspace r+1
fi
fi
fi

View File

@@ -1,78 +1,38 @@
linux_display_server wayland
# wayland_titlebar_color background
# Coloring
# BEGIN_KITTY_THEME
# Catppuccin-Mocha
include current-theme.conf
# END_KITTY_THEME
# The color for highlighting URLs on mouse-over
url color #5de4c7
# Fonts
font_family JetBrainsMono Nerd Font
bold_font auto
italic_font auto
bold_italic_font auto
font_size 14
background_opacity 0.4
disable_ligatures always
# window settings
# Styling
# Opacity
background_opacity 0.4
# Curor trail
cursor_trail 4
cursor_trail_decay 0.1 0.4
# Window settings
initial_window_width 95c
initial_window_height 35c
window_padding_width 20
confirm_os_window_close 0
# Upstream colors {{{
# Special
# background #14151e
# foreground #98b0d3
# Black
# color0 #151720
# color8 #4f5572
# Red
# color1 #dd6777
# color9 #e26c7c
# Green
# color2 #90ceaa
# color10 #95d3af
# Yellow
# color3 #ecd3a0
# color11 #f1d8a5
# Blue
# color4 #86aaec
# color12 #8baff1
# Magenta
# color5 #c296eb
# color13 #c79bf0
# Cyan
# color6 #93cee9
# color14 #98d3ee
# White
# color7 #cbced3
# color15 #d0d3d8
# Cursor
# cursor #cbced3
# cursor_text_color #a5b6cf
# Selection highlight
# selection_foreground #a5b6cf
# selection_background #1c1e27
# The color for highlighting URLs on mouse-over
# url_color #9ece6a
url color #5de4c7
# Window borders
# active_border_color #3d59a1
# inactive_border_color #101014
# bell_border_color #fffac2
# Tab bar
tab_bar_style fade
tab_fade 1
@@ -84,18 +44,12 @@ active_tab_font_style bold
inactive_tab_font_style bold
# tab_bar_background #101014
# Title bar
# macos_titlebar_color #16161e
# Keyboard bindings
map kitty_mod+t new_tab_with_cwd
map ctrl+v paste_from_clipboard
# Binds
# Mouse bindings
mouse_map b4 press grabbed,ungrabbed send_key ctrl+o
mouse_map b5 press grabbed,ungrabbed send_key ctrl+shift+i
# BEGIN_KITTY_THEME
# Catppuccin-Mocha
include current-theme.conf
# END_KITTY_THEME
# Keyboard bindings
map kitty_mod+t new_tab_with_cwd
map ctrl+v paste_from_clipboard

View File

@@ -2,4 +2,4 @@ require("config.lazy")
require("config.config")
require("config.options")
require("config.key_binds")
require("config.osc52")
require("config.clipboard")

View File

@@ -0,0 +1,9 @@
vim.o.clipboard = "unnamedplus"
-- vim.api.nvim_create_autocmd("TextYankPost", {
-- callback = function()
-- local copy_to_unnamedplus = require("vim.ui.clipboard.osc52").copy("+")
-- copy_to_unnamedplus(vim.v.event.regcontents)
-- local copy_to_unnamed = require("vim.ui.clipboard.osc52").copy("*")
-- copy_to_unnamed(vim.v.event.regcontents)
-- end,
-- })

View File

@@ -1,18 +1,34 @@
-- Also check plugins/neo-tree.lua for binds
vim.cmd([[
tnoremap <C-h> <C-\\><C-o><C-w>h
tnoremap <C-k> <C-\\><C-o><C-w>k
tnoremap <C-l> <C-\\><C-o><C-w>l
tnoremap <C-j> <C-\\><C-o><C-w>j
tnoremap <C-h> <C-\\><C-o><C-w>h
tnoremap <C-k> <C-\\><C-o><C-w>k
tnoremap <C-l> <C-\\><C-o><C-w>l
tnoremap <C-j> <C-\\><C-o><C-w>j
nnoremap <C-h> <C-w>h
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
nnoremap <C-j> <C-w>j
" Moving between windows
nnoremap <C-h> <C-w>h
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
nnoremap <C-j> <C-w>j
nnoremap <Space> @q
nnoremap <C-Space> 
vnoremap <C-Space> 
vnoremap <leader>e :!sh<CR>
" I don't remember
nnoremap <C-Space> 
vnoremap <C-Space> 
nnoremap ' @q
" Paste shell command output
vnoremap <leader>e :!sh<CR>
" Quick qq macros
nnoremap ' @q
" Clear search
nnoremap @/ <Esc>:noh<CR>
" Copy relative path to clipboard (from infile)
nnoremap <F3> :let @+ = expand("%:f")<CR>
" Copy filename to clipboard (from infile)
nnoremap <F4> :let @+ = expand("%:t")<CR>
" Delete trailing spaces
nnoremap <leader>w :let _s=@/<Bar>:%s/\s\+$//e<Bar>:let @/=_s<Bar>:nohl<CR>
]])

View File

@@ -1,7 +1,4 @@
vim.opt.clipboard = "unnamedplus"
vim.opt.fixeol = true
vim.opt.list = true
vim.opt.listchars = {
trail = "·",

View File

@@ -1,27 +0,0 @@
vim.g.osc_enabled = false
vim.api.nvim_create_user_command("ToggleOsc", function(input)
if not vim.g.osc_enabled then
vim.g.clipboard = {
name = "osc 52",
copy = {
["+"] = require("vim.ui.clipboard.osc52").copy("+"),
["*"] = require("vim.ui.clipboard.osc52").copy("*"),
},
paste = {
["+"] = function()
return { vim.fn.split(vim.fn.getreg(""), "\n"), vim.fn.getregtype("") }
end,
["*"] = function()
return { vim.fn.split(vim.fn.getreg(""), "\n"), vim.fn.getregtype("") }
end,
},
}
vim.g.osc_enabled = true
vim.api.nvim_echo({ { "OSC 52 Clipboard Enabled", "Normal" } }, true, {})
else
vim.g.clipboard = nil
vim.g.osc_enabled = false
vim.api.nvim_echo({ { "OSC 52 Clipboard Disabled", "Normal" } }, true, {})
end
end, {})
vim.keymap.set("n", "<leader>H", vim.cmd.ToggleOsc, { desc = "Toggle OSC 52 clipboard" })

View File

@@ -9,6 +9,9 @@ return {
local tree = require("neo-tree")
tree.setup({
clipboard = {
sync = "universal",
},
document_symbols = {
custom_kinds = {},
},
@@ -19,8 +22,31 @@ return {
["h"] = "close_node",
["<Right>"] = "open",
["<Left>"] = "close_node",
["C"] = "convert_to_directory",
},
},
commands = {
convert_to_directory = function(state)
local node = state.tree:get_node()
local path = node.path
if node.type ~= "file" then
print("Node is not a file")
return
end
local confirm = vim.fn.confirm("Convert " .. node.name .. " to directory?", "&Yes\n&No", 2)
if confirm ~= 1 then
return
end
vim.fn.delete(path)
vim.fn.mkdir(path, "p")
require("neo-tree.sources.manager").refresh(state.name)
print("Converted to directory: " .. path)
end,
},
})
vim.keymap.set("n", "<F2>", "<CMD>Neotree toggle<CR>")
end,

View File

@@ -1,22 +1,26 @@
// Configuration
configuration {
modi: "drun,run,filebrowser,window";
modi: "clipboard";
show-icons: true;
display-drun: " ";
display-run: " ";
display-filebrowser: " ";
display-window: " ";
display-clipboard: "󰅌 Clipboard";
drun-display-format: "{name}";
window-format: "{w} · {c} · {t}";
// binds
// kb-row-up: "Up,Control+k,Shift+Tab,Shift+ISO_Left_Tab";
// kb-row-down: "Down,Control+j";
kb-row-up: "Up,Control+k,Shift+Tab,Shift+ISO_Left_Tab";
kb-row-down: "Down,Control+j";
kb-accept-entry: "Control+m,Return,KP_Enter";
terminal: "mate-terminal";
kb-remove-to-eol: "Control+Shift+e";
kb-mode-complete: "Control+Shift+t";
kb-mode-next: "Shift+Right,Control+Tab,Control+l";
kb-mode-previous: "Shift+Left,Control+Shift+Tab,Control+h";
kb-remove-char-back: "BackSpace";
}
// Global Properties
@import "./colors.rasi"
@import "./fonts.rasi"
@import "./themes/colors.rasi"
@import "./themes/fonts.rasi"
* {
border-color: var(border);

View File

@@ -1,10 +1,8 @@
// Configuration
configuration {
modi: "drun,run,filebrowser,window";
modi: "drun,window";
show-icons: false;
display-drun: " ";
display-run: " ";
display-filebrowser: " ";
display-window: " ";
drun-display-format: "{name}";
window-format: "{w} · {c} · {t}";
@@ -22,8 +20,8 @@ configuration {
}
// Global Properties
@import "./colors.rasi"
@import "./fonts.rasi"
@import "./themes/colors.rasi"
@import "./themes/fonts.rasi"
* {
border-color: var(border);

View File

@@ -1,9 +0,0 @@
# rofi.kb-row-up: Up,Control+k,Shift+Tab,Shift+ISO_Left_Tab
# rofi.kb-row-down: Down,Control+j
rofi.kb-accept-entry: Control+m,Return,KP_Enter
rofi.terminal: mate-terminal
rofi.kb-remove-to-eol: Control+Shift+e
rofi.kb-mode-complete: Control+Shift+t
rofi.kb-mode-next: Shift+Right,Control+Tab,Control+l
rofi.kb-mode-previous: Shift+Left,Control+Shift+Tab,Control+h
rofi.kb-remove-char-back: BackSpace

View File

@@ -3,8 +3,8 @@
sel-foreground: #111218;
background-alt: #282B3C00;
foreground: #DADAFF;
selected: #87B2F6;
selected: #6aa0d2;
active: #33CCFF;
urgent: #50FA7B;
border: #87B2F6;
border: #0661b4;
}

View File

@@ -1,19 +1,23 @@
{
"position": "bottom",
"layer": "top",
"modules-left": ["group/workspaces-group", "custom/media"],
"modules-center": [],
"modules-right": [
"modules-left": [
"~/.config/waybar/modules/tray.jsonc",
"tray",
"custom/media",
],
"modules-center": [
"group/workspaces-group",
],
"modules-right": [
"group/pulseaudio-group",
"group/network-group",
"group/power-group",
"group/network-group",
"clock",
],
"include": [
"~/.config/waybar/modules/workspaces.jsonc",
"~/.config/waybar/modules/network.jsonc",
"~/.config/waybar/modules/tray.jsonc",
"~/.config/waybar/modules/pulseaudio.jsonc",
"~/.config/waybar/modules/power.jsonc",
"~/.config/waybar/modules/mediaplayer.jsonc",

View File

@@ -1,2 +0,0 @@
#!/bin/bash
date +"%a %d"

View File

@@ -1,5 +1,23 @@
{
"clock": {
"format": "{:%H:%M}",
"format": "{:%H:%M}",
"tooltip-format": "<span>{calendar}</span>",
"calendar": {
"mode": "month",
"mode-mon-col": 3,
"on-scroll": 1,
"on-click-right": "mode",
"format": {
"months": "<span color='#3881c3'><b>{}</b></span>",
"weekdays": "<span color='#cb7194'><b>{}</b></span>",
"today": "<span color='#3881c3'><b>{}</b></span>"
}
},
"actions": {
"on-click": "shift_reset",
"on-click-right": "mode",
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down"
},
},
}

View File

@@ -1,7 +0,0 @@
{
"hyprland/language": {
"format": " {}",
"format-en": "en",
"format-ru": "ru",
},
}

View File

@@ -5,19 +5,19 @@
},
"bluetooth": {
"format": "",
"format-disabled": "Bd",
"format-connected": " ",
"format": "",
"format-disabled": "󰂲",
"format-connected": "",
"on-click": "kitty bluetui",
"tooltip-format": "{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}",
},
"network": {
"format": "{ifname}",
"format-disabled": "Wd",
"format-wifi": "",
"format-ethernet": "󰈀 ",
"format-disconnected": "󰖪 ",
"format-disabled": "󰤮",
"format-wifi": "󰖩",
"format-ethernet": "󰈀",
"format-disconnected": "󰖪",
"tooltip-format-wifi": "{essid}",
"tooltip-format-ethernet": "{ipaddr}",
"on-click": "~/.config/rofi/network-manager/run_manager.sh",

View File

@@ -6,15 +6,16 @@
"battery": {
"format": "{icon}",
"format-icons": [" ", " ", " ", " ", " "],
"format-charging": " ",
// "format-icons": [" ", " ", " ", " ", " "],
"format-icons": ["󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"],
"format-charging": " {capacity}%",
"tooltip-format": "{capacity}% {timeTo}",
},
"backlight": {
"device": "intel_backlight",
"format": "{icon}",
"format-icons": ["", "", "", "", "", "", "", "", ""],
"smooth-scrolling-threshold": 1, // This value was tested using a trackpad, it should be lowered if using a mouse.
"smooth-scrolling-threshold": 1,
"on-scroll-down": "brightnessctl --class='backlight' set 5%+",
"on-scroll-up": "brightnessctl --class='backlight' set 5%-",
"on-click": "python $HOME/.config/hypr/scripts/swww.py",

View File

@@ -2,11 +2,9 @@
"tray": {
"icon-size": 14,
"spacing": 10,
"show-passive-items": true,
"icons": {
"Spotify": " ",
"Steam": "",
"Telegram Desktop": "",
"Mattermost Desktop": "",
},
},
}

View File

@@ -12,18 +12,18 @@
"empty": "",
},
"all-outputs": false,
"on-scroll-up": "hyprctl dispatch focusworkspaceoncurrentmonitor r-1",
"on-scroll-down": "hyprctl dispatch focusworkspaceoncurrentmonitor r+1",
"on-scroll-up": "workspace-change next",
"on-scroll-down": "workspace-change previous",
"format-icons": {
"active": "",
"default": "",
"active": "󰣠", // 
"default": "󰣇", // 
},
},
"hyprland/windowcount": {
"format": "{}",
"format": "{icon}",
"format-empty": "{}",
"format-windowed": "{}",
"separate-outputs": true,
"on-click": "rofi -show window",
"on-click": "rofi -show",
},
}

View File

@@ -1,3 +1,11 @@
/* Colors */
@define-color primary_fg rgba(205, 223, 240, 1);
@define-color primary_bg rgba(44, 44, 44, 0.42);
@define-color primary_bd rgba(205, 223, 240, 0.3);
@define-color tooltip_bg rgba(32, 33, 44, 0.6);
/* General */
* {
border: none;
font-family: "JetBrains Mono Nerd Font";
@@ -5,78 +13,126 @@
font-weight: 700;
font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
min-height: 20px;
color: #c0caf5;
color: @primary_fg;
}
window#waybar {
background: transparent;
}
/* Common */
tooltip,
#clock,
#tray,
#language,
#custom-media,
#network-group,
#pulseaudio-group,
#workspaces-group,
#power-group {
border: 2px solid rgba(192, 202, 245, 0.5);
border: 2px solid @primary_bd;
border-radius: 11px;
background-color: rgba(32, 33, 44, 0.42);
background-color: @primary_bg;
padding-top: 1px;
margin-bottom: 2px;
margin-top: 1px;
}
/* Tooltip */
tooltip {
background: rgba(32, 33, 44, 0.82);
background: @tooltip_bg;
}
tooltip label {
}
#hyprland-group,
#custom-media {
/* Groups */
#hyprland-group {
margin-left: 5px;
}
#clock,
#power-group,
#network-group,
#pulseaudio-group,
#tray {
#pulseaudio-group {
margin-right: 5px;
}
#pulseaudio,
#custom-media,
#network,
#battery,
#clock,
#tray,
#language,
#backlight,
#bluetooth,
#windowcount {
#power-group {
margin-right: 5px;
}
#network-group {
margin-right: 5px;
}
/* Parts */
#tray * {
/* margin-right: 5px; */
padding-left: 4px;
padding-right: 4px;
}
#tray {
margin-right: 5px;
padding-left: 8px;
padding-right: 8px;
}
#custom-media {
margin-left: 5px;
padding-left: 12px;
padding-right: 12px;
}
#windowcount {
padding-left: 12px;
padding-right: 4px;
}
#workspaces button {
padding-left: 4px;
padding-left: 4px;
}
#windowcount {
padding-right: 4px;
}
#network,
#battery {
padding-left: 6px;
}
#workspaces,
#pulseaudio.input,
#backlight,
#bluetooth {
#workspaces {
padding-right: 6px;
}
#pulseaudio {
padding-left: 8px;
padding-right: 6px;
}
#pulseaudio.input {
padding-right: 6px;
}
#backlight {
padding-left: 12px;
padding-right: 6px;
}
#battery {
padding-right: 12px;
padding-left: 6px;
}
#bluetooth {
padding-left: 12px;
padding-right: 6px;
}
#network {
padding-left: 6px;
padding-right: 17px;
}
#clock {
margin-right: 5px;
padding-left: 12px;
padding-right: 12px;
}

View File

@@ -1,29 +1,85 @@
[mgr]
prepend_keymap = [
{on = [ ";" ], run = 'shell "$SHELL" --block --confirm', desc = "Open shell here"},
[[mgr.prepend_keymap]]
on = [ ";" ]
run = 'shell "$SHELL" --block --confirm'
desc = "Open shell here"
{on = [ ":","q","a","<Enter>" ], run = 'quit', desc = "Close the current tab"},
{on = [ ":","q","<Enter>" ], run = 'close', desc = "Close the current tab"},
[[mgr.prepend_keymap]]
on = [ ":","q","a","<Enter>" ]
run = 'quit'
desc = "Close the current tab"
[[mgr.prepend_keymap]]
on = [ ":","q","<Enter>" ]
run = 'close'
desc = "Close the current tab"
# Makes "Enter" key necessary to press
{on = [ ":","q","a","<Esc>" ], run = 'echo meow', desc = ""},
# Makes "Enter" key necessary to press
[[mgr.prepend_keymap]]
on = [ ":","q","a","<Esc>" ]
run = 'echo meow'
desc = ""
{on = [ "q" ], run = 'noop'},
[[mgr.prepend_keymap]]
on = [ "q" ]
run = 'noop'
{on = [ "g","e" ], run = 'cd /etc', desc = "Go to /etc"},
{on = [ "g","r" ], run = 'cd /', desc = "Go to /"},
{on = [ "g","s" ], run = 'cd /srv', desc = "Go to /srv"},
{on = [ "g","u" ], run = 'cd /usr', desc = "Go to /usr"},
{on = [ "g","v" ], run = 'cd /var', desc = "Go to /var"},
{on = [ "g","c" ], run = 'cd ~/.config', desc = "Go to .config"},
{on = [ "v" ], run = 'select_all --state=true', desc = "Select all files"},
{on = [ "V" ], run = 'visual_mode', desc = "Enter visual mode"},
[[mgr.prepend_keymap]]
on = [ "g","r" ]
run = 'cd /'
desc = "Go to /"
[[mgr.prepend_keymap]]
on = [ "g","u" ]
run = 'cd /usr'
desc = "Go to /usr"
[[mgr.prepend_keymap]]
on = [ "g","e" ]
run = 'cd /etc'
desc = "Go to /etc"
[[mgr.prepend_keymap]]
on = [ "g","v" ]
run = 'cd /var'
desc = "Go to /var"
{on = [ "y" ], run = [
'shell -- for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list',
"yank"
]},
[[mgr.prepend_keymap]]
on = [ "g","a" ]
run = 'cd /run/media/eugenebee'
desc = "Go to attached devices"
{on = [ "D", "<Enter>" ], run = 'remove --force --permanently', desc = "Permanently delete"},
[[mgr.prepend_keymap]]
on = [ "g","c" ]
run = 'cd ~/.config'
desc = "Go to .config"
[[mgr.prepend_keymap]]
on = [ "g","d" ]
run = 'cd ~/Downloads'
desc = "Go to Downloads"
[[mgr.prepend_keymap]]
on = [ "g","p" ]
run = 'cd ~/Pictures'
desc = "Go to Pictures"
[[mgr.prepend_keymap]]
on = [ "v" ]
run = 'select_all --state=true'
desc = "Select all files"
[[mgr.prepend_keymap]]
on = [ "V" ]
run = 'visual_mode'
desc = "Enter visual mode"
[[mgr.prepend_keymap]]
on = [ "y" ]
run = [
'shell -- for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list',
"yank"
]
[[mgr.prepend_keymap]]
on = "<C-y>"
run = ["plugin wl-clipboard"]
[[mgr.prepend_keymap]]
on = [ "D", "<Enter>" ]
run = 'remove --force --permanently'
desc = "Permanently delete"

View File

@@ -0,0 +1,29 @@
[mgr]
prepend_keymap = [
{on = [ ";" ], run = 'shell "$SHELL" --block --confirm', desc = "Open shell here"},
{on = [ ":","q","a","<Enter>" ], run = 'quit', desc = "Close the current tab"},
{on = [ ":","q","<Enter>" ], run = 'close', desc = "Close the current tab"},
# Makes "Enter" key necessary to press
{on = [ ":","q","a","<Esc>" ], run = 'echo meow', desc = ""},
{on = [ "q" ], run = 'noop'},
{on = [ "g","e" ], run = 'cd /etc', desc = "Go to /etc"},
{on = [ "g","r" ], run = 'cd /', desc = "Go to /"},
{on = [ "g","s" ], run = 'cd /srv', desc = "Go to /srv"},
{on = [ "g","u" ], run = 'cd /usr', desc = "Go to /usr"},
{on = [ "g","v" ], run = 'cd /var', desc = "Go to /var"},
{on = [ "g","c" ], run = 'cd ~/.config', desc = "Go to .config"},
{on = [ "v" ], run = 'select_all --state=true', desc = "Select all files"},
{on = [ "V" ], run = 'visual_mode', desc = "Enter visual mode"},
{on = [ "y" ], run = [
'shell -- for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list',
"yank"
]},
{on = [ "D", "<Enter>" ], run = 'remove --force --permanently', desc = "Permanently delete"},
]

View File

@@ -0,0 +1,7 @@
[[plugin.deps]]
use = "grappas/wl-clipboard"
rev = "e9a38e4"
hash = "6b8e5d6b09626facec713923d3ddb54b"
[flavor]
deps = []

View File

@@ -0,0 +1,7 @@
Copyright 2024 grappas
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -0,0 +1,34 @@
# wl-clipboard.yazi
Forked from: [orhnk/system-clipboard.yazi](https://github.com/orhnk/system-clipboard.yazi) to work with wayland compositors.
## Demo
<https://github.com/user-attachments/assets/74d59f49-266a-497e-b67e-d77e64209026>
## Config
> [!NOTE]
> You need yazi 3.x for this plugin to work.
> [!Important]
> This plugin utilizes ["wl-clipboard" project](https://github.com/bugaevc/wl-clipboard).
> You need to have it installed on your system. (Make sure that It's on your $PATH)
## Installation
```bash
ya pkg add grappas/wl-clipboard
```
## Configuration
Copy or install this plugin and add the following keymap to your `manager.prepend_keymap`:
```toml
on = "<C-y>"
run = ["plugin wl-clipboard"]
```
> [!Tip]
> If you want to use this plugin with yazi's default yanking behaviour you should use `cx.yanked` instead of `tab.selected` in `init.lua` (See [#1487](https://github.com/sxyazi/yazi/issues/1487))

View File

@@ -0,0 +1,60 @@
-- Meant to run at async context. (yazi system-clipboard)
local selected_or_hovered = ya.sync(function()
local tab, paths = cx.active, {}
for _, u in pairs(tab.selected) do
paths[#paths + 1] = tostring(u)
end
if #paths == 0 and tab.current.hovered then
paths[1] = tostring(tab.current.hovered.url)
end
return paths
end)
return {
entry = function()
ya.manager_emit("escape", { visual = true })
local urls = selected_or_hovered()
if #urls == 0 then
return ya.notify({ title = "System Clipboard", content = "No file selected", level = "warn", timeout = 5 })
end
-- ya.notify({ title = #urls, content = table.concat(urls, " "), level = "info", timeout = 5 })
-- Format the URLs for `text/uri-list` specification
local function encode_uri(uri)
return uri:gsub("([^%w%-%._~:/])", function(c)
return string.format("%%%02X", string.byte(c))
end)
end
local file_list_formatted = ""
for _, path in ipairs(urls) do
-- Each file path must be URI-encoded and prefixed with "file://"
file_list_formatted = file_list_formatted .. "file://" .. encode_uri(path) .. "\r\n"
end
local status, err =
Command("wl-copy"):arg("--type"):arg("text/uri-list"):arg(file_list_formatted):spawn():wait()
if status or status.succes then
ya.notify({
title = "System Clipboard",
content = "Succesfully copied the file(s) to system clipboard",
level = "info",
timeout = 5,
})
end
if not status or not status.success then
ya.notify({
title = "System Clipboard",
content = string.format("Could not copy selected file(s) %s", status and status.code or err),
level = "error",
timeout = 5,
})
end
end,
}