Merge remote-tracking branch 'refs/remotes/origin/master'

This commit is contained in:
whoami 2025-04-10 23:21:07 +01:00
commit 5e26e71219
136 changed files with 4129 additions and 1449 deletions

View file

@ -0,0 +1,5 @@
--UseOzonePlatform=wayland
--ozone-platform=wayland
--password-store=kwallet6
--enable-wayland-ime
--force-device-scale-factor=1.75

495
platforms/linux/dunstrc Normal file
View file

@ -0,0 +1,495 @@
# See dunst(5) for all configuration options
[global]
### Display ###
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = none
### Geometry ###
# The width of the window, excluding the frame.
# dynamic width from 0 to 300
# width = (0, 300)
# constant width of 300
width = 300
# The height of a single notification, excluding the frame.
# dynamic height from 0 to 300
height = (0, 300)
# constant height of 300
# height = 300
# NOTE: Dunst from version 1.11 and older don't support dynamic height
# and the given value is treated as the maximum height
# Position the notification in the top right corner
origin = top-right
# Offset from the origin
# NOTE: Dunst from version 1.11 and older use this alternative notation
# offset = 10x50
offset = (10, 50)
# Scale factor. It is auto-detected if value is 0.
scale = 2
# Maximum number of notification (0 means no limit)
notification_limit = 20
### Progress bar ###
# Turn on the progress bar. It appears when a progress hint is passed with
# for example dunstify -h int:value:12
progress_bar = true
# Set the progress bar height. This includes the frame, so make sure
# it's at least twice as big as the frame width.
progress_bar_height = 10
# Set the frame width of the progress bar
progress_bar_frame_width = 1
# Set the minimum width for the progress bar
progress_bar_min_width = 150
# Set the maximum width for the progress bar
progress_bar_max_width = 300
# Corner radius for the progress bar. 0 disables rounded corners.
progress_bar_corner_radius = 0
# Define which corners to round when drawing the progress bar. If progress_bar_corner_radius
# is set to 0 this option will be ignored.
progress_bar_corners = all
# Corner radius for the icon image.
icon_corner_radius = 0
# Define which corners to round when drawing the icon image. If icon_corner_radius
# is set to 0 this option will be ignored.
icon_corners = all
# Show how many messages are currently hidden (because of
# notification_limit).
indicate_hidden = yes
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
transparency = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
# If gap_size is greater than 0, this setting will be ignored.
separator_height = 2
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Padding between text and icon.
text_icon_padding = 0
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 3
# Defines color of the frame around the notification window.
frame_color = "#89b4fa"
highlight = "#89b4fa"
# Size of gap to display between notifications - requires a compositor.
# If value is greater than 0, separator_height will be ignored and a border
# of size frame_width will be drawn around each notification instead.
# Click events on gaps do not currently propagate to applications below.
gap_size = 0
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort type.
# possible values are:
# * id: sort by id
# * urgency_ascending: sort by urgency (low then normal then critical)
# * urgency_descending: sort by urgency (critical then normal then low)
# * update: sort by update (most recent always at the top)
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
# idle_threshold = 120
### Text ###
font = Maple Mono NF CN 8
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <https://docs.gtk.org/Pango/pango_markup.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# Vertical alignment of message text and icon.
# Possible values are "top", "center" and "bottom".
vertical_alignment = center
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Stack together notifications with the same content
stack_duplicates = true
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Recursive icon lookup. You can set a single theme, instead of having to
# define all lookup paths.
enable_recursive_icon_lookup = true
# Set icon theme (only used for recursive icon lookup)
icon_theme = "Papirus-Dark, Papirus, breeze, Adwaita"
# You can also set multiple icon themes, with the leftmost one being used first.
# icon_theme = "Adwaita, breeze"
# Align icons left/right/top/off
icon_position = left
# Scale small icons up to this size, set to 0 to disable. Helpful
# for e.g. small files or high-dpi screens. In case of conflict,
# max_icon_size takes precedence over this.
min_icon_size = 32
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 128
# Paths to default icons (only necessary when not using recursive icon lookup)
icon_path = /home/js0ny/.local/share/icons/ePapirus/16x16/:/usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/xdg-open
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst (X11 only)
title = Dunst
# Define the class of the windows spawned by dunst (X11 only)
class = Dunst
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 0
# Define which corners to round when drawing the window. If the corner radius
# is set to 0 this option will be ignored.
#
# Comma-separated list of the corners. The accepted corner values are bottom-right,
# bottom-left, top-right, top-left, top, bottom, left, right or all.
corners = all
# Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this
# parameter, an application may close the notification sent before the
# user defined timeout.
ignore_dbusclose = false
### Wayland ###
# These settings are Wayland-specific. They have no effect when using X11
# Uncomment this if you want to let notifications appear under fullscreen
# applications (default: overlay)
# layer = top
# Set this to true to use X11 output on Wayland.
force_xwayland = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
### mouse
# Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: Invoke the action determined by the action_name rule. If there is no
# such action, open the context menu.
# * open_url: If the notification has exactly one url, open it. If there are multiple
# ones, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
# * context: Open context menu for the notification.
# * context_all: Open context menu for all notifications.
# These values can be strung together for each mouse event, and
# will be executed in sequence.
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#1e1e2e"
foreground = "#cdd6f4"
timeout = 10
# Icon for notifications with low urgency
default_icon = dialog-information
[urgency_normal]
background = "#1e1e2e"
foreground = "#cdd6f4"
timeout = 10
override_pause_level = 30
# Icon for notifications with normal urgency
default_icon = dialog-information
[urgency_critical]
background = "#1e1e2e"
foreground = "#cdd6f4"
frame_color = "#fab387"
timeout = 0
override_pause_level = 60
# Icon for notifications with critical urgency
default_icon = dialog-warning
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# set_category
# timeout
# urgency
# icon_position
# skip_display
# history_ignore
# action_name
# word_wrap
# ellipsize
# alignment
# hide_text
# override_pause_level
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# You can also allow a notification to appear even when paused. Notification will appear whenever notification's override_pause_level >= dunst's paused level.
# This can be used to set partial pause modes, where more urgent notifications get through, but less urgent stay paused. To do that, you can override the following in the rules:
# override_pause_level = X
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# skip_display = true
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[skip-display]
# # This notification will not be displayed, but will be included in the history
# summary = "foobar"
# skip_display = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
#[stack-volumes]
# appname = "some_volume_notifiers"
# set_stack_tag = "volume"
#
# vim: ft=cfg

View file

@ -0,0 +1,5 @@
--enable-features=WaylandWindowDecorations
--enable-features=UseOzonePlatform
--ozone-platform-hint=auto
--enable-wayland-ime
--force-device-scale-factor=1.75

1
platforms/linux/hypr/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
.sass-cache

View file

@ -0,0 +1,19 @@
general {
lock_cmd = notify-send "lock!" # dbus/sysd lock command (loginctl lock-session)
unlock_cmd = notify-send "unlock!" # same as above, but unlock
before_sleep_cmd = notify-send "Zzz" # command ran before sleep
after_sleep_cmd = notify-send "Awake!" # command ran after sleep
ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam)
ignore_systemd_inhibit = false # whether to ignore systemd-inhibit --what=idle inhibitors
}
listener {
timeout = 600 # in seconds
on-timeout = swaylock # command to run when timeout has passed
on-resume = notify-send "Welcome back!" # command to run when activity is detected after timeout has fired.
}
listener {
timeout = 1800 # 30min
on-timeout = systemctl suspend # suspend pc
}

View file

@ -14,7 +14,15 @@
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################
source=~/.config/hypr/dark.conf
$mainMod = SUPER # Sets "Windows" key as main modifier
$terminal = kitty
$fileManager = dolphin
$menu = rofi
$iconTheme = Papirus
source=~/.config/hypr/hyprland/dark.conf
source=~/.config/hypr/hyprland/+colemak.conf
source=~/.config/hypr/hyprland/rules.conf
autogenerated = 0 # remove this line to remove the warning
@ -25,11 +33,6 @@ autogenerated = 0 # remove this line to remove the warning
# Please note not all available settings / options are set here.
# For a full list, see the wiki
# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf
#
xwayland {
force_zero_scaling = true
}
@ -44,7 +47,7 @@ xwayland {
# monitor=,preferred,auto,auto
# Format:
# MONITOR_NAME,RESOLUTION@REFRESH_RATE,OFFSET_XxOFFSET_Y,SCALE
monitor=DP-2,3840x2160@59,0x0,1.666667
monitor=DP-2,3840x2160@60,0x0,1.667
###################
@ -54,9 +57,6 @@ monitor=DP-2,3840x2160@59,0x0,1.666667
# See https://wiki.hyprland.org/Configuring/Keywords/
# Set programs that you use
$terminal = wezterm-gui
$fileManager = dolphin
$menu = wofi
#################
@ -68,13 +68,14 @@ $menu = wofi
# exec-once = $terminal
# exec-once = nm-applet &
# exec-once = waybar & hyprpaper & mako & systemctl --user start hyprpolkitagent & fcitx5 & albert
# Top Bar
exec-once = waybar &
# Notifications
exec-once = mako &
exec-once = dunst &
# exec-once = hyprpanel &
# wallpapers
exec-once = hyprpaper &
exec-once = swww-daemon &
exec-once = hypridle &
# Authentication agent
exec-once = systemctl --user start hyprpolkitagent
# Input Method
@ -86,9 +87,6 @@ exec-once = wl-paste --watch cliphist store
exec-once = blueman-applet &
# Time Tracker
exec-once = aw-qt &
# https://github.com/hyprwm/Hyprland/discussions/5867
exec = gsettings set org.gnome.desktop.interface gtk-theme "Breeze-Dark" # for GTK3 apps
exec = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" # for GTK4 apps
@ -103,11 +101,9 @@ exec = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" #
env = HYPRCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt6ct # for Qt apps
# https://discuss.kde.org/t/the-themes-i-use-with-qt6ct-are-not-applied-in-discover/17118
env = QT_QUICK_CONTROLS_STYLE,org.kde.desktop
env = LC_CTYPE,zh_CN.UTF-8
env = LC_ALL,zh_CN.UTF-8
env = LC_CTYPE,en_GB.UTF-8
#####################
@ -124,9 +120,8 @@ general {
border_size = 3
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
# col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.active_border = $mauve
col.inactive_border = $overlay2
col.active_border = $lavender $pink 45deg
col.inactive_border = $overlay1
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = true
@ -144,8 +139,8 @@ decoration {
rounding = 10
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
active_opacity = 0.97
inactive_opacity = 0.90
shadow {
enabled = true
@ -231,7 +226,7 @@ input {
kb_layout = us
kb_variant =
kb_model =
kb_options = caps:escape
kb_options =
kb_rules =
follow_mouse = 1
@ -264,14 +259,22 @@ device {
$mainMod = SUPER # Sets "Windows" key as main modifier
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
## Open Applications
bind = $mainMod, R, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, F, exec, $fileManager
bind = $mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
bind = $mainMod SHIFT, V, togglefloating
# bind = $mainMod, M, exit
bind = $mainMod SHIFT, F, exec, hyprctl --batch "dispatch togglefloating ; dispatch resizeactive exact 1440 810 ; dispatch centerwindow 1;"
## Launcher
bind = $mainMod, W, exec, $menu -show window -icon-theme $iconTheme -show-icons
bind = $mainMod, V, exec, cliphist list | $menu -dmenu | cliphist decode | wl-copy
bind = $mainMod, D, exec, $HOME/.local/scripts/picker/sdcv.sh
bind = alt, space, exec, $menu -show drun -icon-theme $iconTheme -show-icons
bind = $mainMod, SLASH, exec, $HOME/.local/scripts/picker/baloo.sh
bind = $mainMod, space, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, X, togglesplit, # dwindle
@ -280,12 +283,12 @@ bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
bind = $mainMod, h, movefocus, l
bind = $mainMod, i, movefocus, r
bind = $mainMod, e, movefocus, u
bind = $mainMod, n, movefocus, d
bind = $mainMod, c, exec, grimblast copy area
bind = $mainMod SHIFT, l, exec, swaylock
bind = $mainMod, c, exec, grimblast copysave area $HOME/Pictures/Screenshots/"$(date +%Y%m%d-%H%M%S)"
bind = $mainMod SHIFT, c, exec, notify-send "Color: $(hyprpicker)"
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
@ -312,8 +315,8 @@ bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
bind = $mainMod, GRAVE, togglespecialworkspace, magic
bind = $mainMod SHIFT, GRAVE, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
@ -337,21 +340,3 @@ bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0

View file

@ -0,0 +1,10 @@
bind = $mainMod, H, movefocus, l
bind = $mainMod, I, movefocus, r
bind = $mainMod, E, movefocus, u
bind = $mainMod, N, movefocus, d
bind = $mainMod SHIFT, H, swapwindow, l
bind = $mainMod SHIFT, I, swapwindow, r
bind = $mainMod SHIFT, E, swapwindow, u
bind = $mainMod SHIFT, N, swapwindow, d
bind = $mainMod, F, exec, $fileManager

View file

@ -0,0 +1,11 @@
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d
bind = $mainMod SHIFT, H, swapwindow, l
bind = $mainMod SHIFT, L, swapwindow, r
bind = $mainMod SHIFT, K, swapwindow, u
bind = $mainMod SHIFT, J, swapwindow, d
bind = $mainMod, E, exec, $fileManager

View file

@ -76,3 +76,9 @@ $mantleAlpha = 181825
$crust = rgb(11111b)
$crustAlpha = 11111b
# https://github.com/hyprwm/Hyprland/discussions/5867
exec = gsettings set org.gnome.desktop.interface gtk-theme "BreezeDark" # for GTK3 apps
exec = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" # for GTK4 apps
exec = kwriteconfig5 --group "General" --key "ColorScheme" "BreezeDark"
exec = hyprsunset -t 6000 &

View file

@ -0,0 +1,78 @@
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
windowrulev2 = float, class:qt6ct
windowrulev2 = float, size 2560 1440, class:^(org.kde.gwenview)$
windowrulev2 = float, size 50%, center, class:^(org.kde.konsole)$
windowrulev2 = float, class:^(steam)$
# Browser Extension Popup
windowrulev2 = float, title:^(Bitwarden - )(.*)$
# Picture-in-Picture
windowrulev2 = float, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrulev2 = keepaspectratio, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrulev2 = move 73% 72%, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrulev2 = size 25%, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrulev2 = float, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrulev2 = pin, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrulev2 = float, title:^(画中画)(.*)$
windowrulev2 = keepaspectratio, title:^(画中画)(.*)$
windowrulev2 = move 73% 72%, title:^(画中画)(.*)$
windowrulev2 = size 25%, title:^(画中画)(.*)$
windowrulev2 = float, title:^(画中画)(.*)$
windowrulev2 = pin, title:^(画中画)(.*)$
# Dialog windows float+center these windows.
windowrulev2 = center, title:^(Open File)(.*)$
windowrulev2 = center, title:^(打开文件)(.*)$
windowrulev2 = center, title:^(Select a File)(.*)$
windowrulev2 = center, title:^(选择文件)(.*)$
windowrulev2 = center, title:^(Choose wallpaper)(.*)$
windowrulev2 = center, title:^(Open Folder)(.*)$
windowrulev2 = center, title:^(Save As)(.*)$
windowrulev2 = center, title:^(保存)(.*)$
windowrulev2 = center, title:^(Library)(.*)$
windowrulev2 = center, title:^(File Upload)(.*)$
windowrulev2 = float, title:^(Open File)(.*)$
windowrulev2 = center, title:^(打开文件)(.*)$
windowrulev2 = float, title:^(Select a File)(.*)$
windowrulev2 = center, title:^(选择文件)(.*)$
windowrulev2 = float, title:^(Choose wallpaper)(.*)$
windowrulev2 = float, title:^(Open Folder)(.*)$
windowrulev2 = float, title:^(Save As)(.*)$
windowrulev2 = center, title:^(保存)(.*)$
windowrulev2 = float, title:^(Library)(.*)$
windowrulev2 = float, title:^(File Upload)(.*)$
# Centering pictures preview windows
# Telegram
windowrulev2 = center, title:^(Media viewer)(.*)$
windowrulev2 = float, title:^(Media viewer)(.*)$
windowrulev2 = size 50%, title:^(Media viewer)(.*)$
# WeChat
windowrulev2 = center, title:^(预览)(.*)$
windowrulev2 = float, title:^(预览)(.*)$
windowrulev2 = size 50%, title:^(预览)(.*)$
# QQ
windowrulev2 = center, title:^(图片查看器)(.*)$
windowrulev2 = float, title:^(图片查看器)(.*)$
windowrulev2 = size 50%, title:^(图片查看器)(.*)$

View file

@ -0,0 +1,69 @@
# BACKGROUND
background {
monitor =
path = ~/.config/hypr/walls/1.png
# blur_passes = 0
# contrast = 1
# brightness = 1
# vibrancy = 0.2
# vibrancy_darkness = 0.2
}
# GENERAL
general {
no_fade_in = false
no_fade_out = false
hide_cursor = true
grace = 0
disable_loading_bar = true
ignore_empty_input = true
}
# INPUT FIELD
input-field {
monitor =
size = 250, 60
outline_thickness = 2
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.35 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = rgba(0, 0, 0, 0)
inner_color = rgba(0, 0, 0, 0.2)
font_color = rgb(205, 214, 244)
fade_on_empty = false
rounding = -1
placeholder_text = <span foreground="##cdd6f4">Password</span>
hide_input = false
position = 0, -200
halign = center
valign = center
check_color = rgb(108, 112, 134)
fail_color = rgb(243, 139, 168) # if authentication failed, changes outer_color and fail message color
fail_text = <b>$ATTEMPTS</b> # can be set to empty
fail_timeout = 2000 # milliseconds before fail_text and fail_color disappears
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
}
# DATE
label {
monitor =
text = cmd[update:1000] date +"%A, %B %d"
color = rgb(205, 214, 244)
font_size = 22
font_family = JetBrains Mono
position = 0, 300
halign = center
valign = center
}
# TIME
label {
monitor =
text = cmd[update:1000] date +"%-I:%M"
color = rgb(205, 214, 244)
font_size = 95
font_family = JetBrains Mono Extrabold
position = 0, 200
halign = center
valign = center
}

View file

@ -9,4 +9,5 @@
# ln -sf $DOTFILES/platforms/linux/hypr $XDG_CONFIG_HOME/hypr
preload = ~/Pictures/Wallpaper/current.jpg
wallpaper = DP-2, ~/Pictures/Wallpaper/current.jpg
preload = ~/Pictures/Wallpaper/current.png
wallpaper = DP-2, ~/Pictures/Wallpaper/current.png

View file

@ -1,5 +0,0 @@
[ElisaFileIndexer]
RootPath[$e]=$HOME/Music
[Views]
InitialFilesViewPath=/mnt/d/Media/Music

View file

@ -1,13 +1,23 @@
[ActivityManager]
_k_friendly_name=Activity Manager
_k_friendly_name=活动管理器
switch-to-activity-32e1f2d2-08d1-4a8b-886a-0a062f999068=none,none,Switch to activity "Default"
switch-to-activity-e1ebfdac-0f52-47a5-9e7a-d9eb5cc26845=none,none,切换到活动“默认”
[Clementine]
_k_friendly_name=Clementine
next_album=Shift+Media Next,none,Next album
next_track=none,none,下一个曲目
play_pause=none,none,播放/暂停
prev_track=none,none,上一个曲目
stop=none,none,停止
[KDE Keyboard Layout Switcher]
Switch keyboard layout to English (Colemak)=none,none,Switch keyboard layout to English (Colemak)
Switch keyboard layout to English (US)=none,none,Switch keyboard layout to English (US)
Switch to Last-Used Keyboard Layout=Meta+Alt+L,Meta+Alt+L,Switch to Last-Used Keyboard Layout
Switch to Next Keyboard Layout=Meta+Alt+K,Meta+Alt+K,Switch to Next Keyboard Layout
_k_friendly_name=Keyboard Layout Switcher
Switch keyboard layout to 英语(美国)=none,none,切换键盘布局为 英语(美国)
Switch to Last-Used Keyboard Layout=Meta+Alt+L,Meta+Alt+L,切换到上次使用过的键盘布局
Switch to Next Keyboard Layout=Meta+Alt+K,Meta+Alt+K,切换到下一个键盘布局
_k_friendly_name=键盘布局切换器
[Strawberry]
_k_friendly_name=Strawberry
@ -17,54 +27,59 @@ prev_track=none,none,Previous track
stop=none,none,Stop
[kaccess]
Toggle Screen Reader On and Off=Meta+Alt+S,Meta+Alt+S,Toggle Screen Reader On and Off
_k_friendly_name=Accessibility
Toggle Screen Reader On and Off=Meta+Alt+S,Meta+Alt+S,切换屏幕阅读器开关
_k_friendly_name=无障碍辅助
[kcm_touchpad]
Disable Touchpad=Touchpad Off,Touchpad Off,
Enable Touchpad=Touchpad On,Touchpad On,
Toggle Touchpad=Touchpad Toggle\tMeta+Ctrl+Zenkaku Hankaku,Touchpad Toggle\tTouchpad Toggle\tMeta+Ctrl+Touchpad Toggle\tMeta+Ctrl+Zenkaku Hankaku,
_k_friendly_name=Touchpad
_k_friendly_name=触摸板
[kmix]
_k_friendly_name=KMix
decrease_microphone_volume=Microphone Volume Down,Microphone Volume Down,Decrease Microphone Volume
decrease_volume=Volume Down,Volume Down,Decrease Volume
decrease_volume_small=Shift+Volume Down,Shift+Volume Down,Decrease Volume by 1%
increase_microphone_volume=Microphone Volume Up,Microphone Volume Up,Increase Microphone Volume
increase_volume=Volume Up,Volume Up,Increase Volume
increase_volume_small=Shift+Volume Up,Shift+Volume Up,Increase Volume by 1%
mic_mute=Microphone Mute\tMeta+Volume Mute,Microphone Mute\tMeta+Volume Mute,Mute Microphone
mute=Volume Mute,Volume Mute,Mute
_k_friendly_name=音量
decrease_microphone_volume=Microphone Volume Down,Microphone Volume Down,降低麦克风音量
decrease_volume=Volume Down,Volume Down,降低音量
decrease_volume_small=Shift+Volume Down,Shift+Volume Down,音量降低 1%
increase_microphone_volume=Microphone Volume Up,Microphone Volume Up,提高麦克风音量
increase_volume=Volume Up,Volume Up,提高音量
increase_volume_small=Shift+Volume Up,Shift+Volume Up,音量提高 1%
mic_mute=Microphone Mute\tMeta+Volume Mute,Microphone Mute\tMeta+Volume Mute,麦克风静音
mute=Volume Mute,Volume Mute,静音
[krusader]
_k_friendly_name=Krusader
bring_main_window_to_top=Meta+K,Meta+K,Bring Main Window to Top
bring_main_window_to_top=none,Meta+K,Bring Main Window to Top
[ksmserver]
Halt Without Confirmation=none,,Shut Down Without Confirmation
Lock Session=Meta+L\tScreensaver,Meta+L\tScreensaver,Lock Session
Log Out=Ctrl+Alt+Del,Ctrl+Alt+Del,Show Logout Screen
Log Out Without Confirmation=none,,Log Out Without Confirmation
LogOut=none,,Log Out
Reboot=none,,Reboot
Reboot Without Confirmation=none,,Reboot Without Confirmation
Shut Down=none,,Shut Down
_k_friendly_name=Session Management
Halt Without Confirmation=none,,关机 (无需确认)
Lock Session=Meta+L\tScreensaver,Meta+L\tScreensaver,锁定会话
Log Out=Ctrl+Alt+Del,Ctrl+Alt+Del,显示注销屏幕
Log Out Without Confirmation=none,,注销 (无需确认)
LogOut=none,,注销
Reboot=none,,重启
Reboot Without Confirmation=none,,重启 (无需确认)
Shut Down=none,,关机
_k_friendly_name=会话管理
[ktorrent]
_k_friendly_name=KTorrent
queue_suspend=Alt+Shift+P,Alt+Shift+P,暂停种子
show_kt=Alt+Shift+T,Alt+Shift+T,显示/隐藏 KTorrent
[kwin]
Activate Window Demanding Attention=Meta+Ctrl+A,Meta+Ctrl+A,Activate Window Demanding Attention
Cycle Overview=none,none,Cycle through Overview and Grid View
Cycle Overview Opposite=none,none,Cycle through Grid View and Overview
Decrease Opacity=none,,Decrease Opacity of Active Window by 5%
Edit Tiles=Meta+T,Meta+T,Toggle Tiles Editor
Expose=Ctrl+F9,Ctrl+F9,Toggle Present Windows (Current desktop)
ExposeAll=Ctrl+F10\tLaunch (C),Ctrl+F10\tLaunch (C),Toggle Present Windows (All desktops)
ExposeClass=Ctrl+F7,Ctrl+F7,Toggle Present Windows (Window class)
ExposeClassCurrentDesktop=none,none,Toggle Present Windows (Window class on current desktop)
Grid View=Meta+G,Meta+G,Toggle Grid View
Increase Opacity=none,,Increase Opacity of Active Window by 5%
Kill Window=Meta+Ctrl+Esc,Meta+Ctrl+Esc,Kill Window
Activate Window Demanding Attention=Meta+Ctrl+A,Meta+Ctrl+A,激活请求注意的窗口
Cycle Overview=none,none,循环显示桌面概览和网格视图
Cycle Overview Opposite=none,none,循环显示网格视图和桌面概览
Decrease Opacity=none,,降低活动窗口不透明度 5%
Edit Tiles=Meta+T,Meta+T,磁贴编辑器开关
Expose=Ctrl+F9,Ctrl+F9,显示/隐藏窗口平铺 (当前桌面)
ExposeAll=Ctrl+F10\tLaunch (C),Ctrl+F10\tLaunch (C),显示/隐藏窗口平铺 (全部桌面)
ExposeClass=Ctrl+F7,Ctrl+F7,显示/隐藏窗口平铺 (窗口类)
ExposeClassCurrentDesktop=none,none,显示/隐藏窗口平铺 (当前桌面的窗口类)
Grid View=Meta+G,Meta+G,切换网格视图
Increase Opacity=none,,提高活动窗口不透明度 5%
Kill Window=Meta+Ctrl+Esc,Meta+Ctrl+Esc,强制终止窗口
KrohnkiteBTreeLayout=Meta+X,none,Krohnkite: BTree Layout
KrohnkiteColumnsLayout=none,none,Krohnkite: Columns Layout
KrohnkiteDecrease=none,none,Krohnkite: Decrease
@ -99,210 +114,212 @@ KrohnkiteTileLayout=none,none,Krohnkite: Tile Layout
KrohnkiteToggleFloat=Meta+Shift+F,none,Krohnkite: Toggle Float
KrohnkiteTreeColumnLayout=none,none,Krohnkite: Tree Column Layout
KrohnkitegrowWidth=Meta+Ctrl+I,none,Krohnkite: Grow Width
Move Tablet to Next Output=none,none,Move the tablet to the next output
MoveMouseToCenter=Meta+F6,Meta+F6,Move Mouse to Centre
MoveMouseToFocus=Meta+F5,Meta+F5,Move Mouse to Focus
MoveZoomDown=none,none,Move Zoomed Area Downwards
MoveZoomLeft=none,none,Move Zoomed Area to Left
MoveZoomRight=none,none,Move Zoomed Area to Right
MoveZoomUp=none,none,Move Zoomed Area Upwards
Overview=Meta+W\tMeta+Tab,Meta+W,Toggle Overview
Setup Window Shortcut=none,,Setup Window Shortcut
Show Desktop=Meta+D,Meta+D,Peek at Desktop
Switch One Desktop Down=Meta+Ctrl+Down,Meta+Ctrl+Down,Switch One Desktop Down
Switch One Desktop Up=Meta+Ctrl+Up,Meta+Ctrl+Up,Switch One Desktop Up
Switch One Desktop to the Left=Meta+Ctrl+Left,Meta+Ctrl+Left,Switch One Desktop to the Left
Switch One Desktop to the Right=Meta+Ctrl+Right,Meta+Ctrl+Right,Switch One Desktop to the Right
Switch Window Down=Meta+Alt+Down,Meta+Alt+Down,Switch to Window Below
Switch Window Left=Meta+Alt+Left,Meta+Alt+Left,Switch to Window to the Left
Switch Window Right=Meta+Alt+Right,Meta+Alt+Right,Switch to Window to the Right
Switch Window Up=Meta+Alt+Up,Meta+Alt+Up,Switch to Window Above
Switch to Desktop 1=Meta+1,Ctrl+F1,Switch to Desktop 1
Switch to Desktop 10=none,,Switch to Desktop 10
Switch to Desktop 11=none,,Switch to Desktop 11
Switch to Desktop 12=none,,Switch to Desktop 12
Switch to Desktop 13=none,,Switch to Desktop 13
Switch to Desktop 14=none,,Switch to Desktop 14
Switch to Desktop 15=none,,Switch to Desktop 15
Switch to Desktop 16=none,,Switch to Desktop 16
Switch to Desktop 17=none,,Switch to Desktop 17
Switch to Desktop 18=none,,Switch to Desktop 18
Switch to Desktop 19=none,,Switch to Desktop 19
Switch to Desktop 2=Meta+2,Ctrl+F2,Switch to Desktop 2
Switch to Desktop 20=none,,Switch to Desktop 20
Switch to Desktop 3=Meta+3,Ctrl+F3,Switch to Desktop 3
Switch to Desktop 4=Meta+4,Ctrl+F4,Switch to Desktop 4
Switch to Desktop 5=Meta+5,,Switch to Desktop 5
Switch to Desktop 6=Meta+6,,Switch to Desktop 6
Switch to Desktop 7=Meta+7,,Switch to Desktop 7
Switch to Desktop 8=Meta+8,,Switch to Desktop 8
Switch to Desktop 9=Meta+9,,Switch to Desktop 9
Switch to Next Desktop=none,,Switch to Next Desktop
Switch to Next Screen=none,,Switch to Next Screen
Switch to Previous Desktop=none,,Switch to Previous Desktop
Switch to Previous Screen=none,,Switch to Previous Screen
Switch to Screen 0=none,,Switch to Screen 0
Switch to Screen 1=none,,Switch to Screen 1
Switch to Screen 2=none,,Switch to Screen 2
Switch to Screen 3=none,,Switch to Screen 3
Switch to Screen 4=none,,Switch to Screen 4
Switch to Screen 5=none,,Switch to Screen 5
Switch to Screen 6=none,,Switch to Screen 6
Switch to Screen 7=none,,Switch to Screen 7
Switch to Screen Above=none,,Switch to Screen Above
Switch to Screen Below=none,,Switch to Screen Below
Switch to Screen to the Left=none,,Switch to Screen to the Left
Switch to Screen to the Right=none,,Switch to Screen to the Right
Toggle Night Color=none,none,Suspend/Resume Night Light
Toggle Window Raise/Lower=none,,Toggle Window Raise/Lower
Walk Through Windows=Alt+Tab,Alt+Tab,Walk Through Windows
Walk Through Windows (Reverse)=Alt+Shift+Tab,Alt+Shift+Tab,Walk Through Windows (Reverse)
Walk Through Windows Alternative=none,,Walk Through Windows Alternative
Walk Through Windows Alternative (Reverse)=none,,Walk Through Windows Alternative (Reverse)
Walk Through Windows of Current Application=Alt+`,Alt+`,Walk Through Windows of Current Application
Walk Through Windows of Current Application (Reverse)=Alt+~,Alt+~,Walk Through Windows of Current Application (Reverse)
Walk Through Windows of Current Application Alternative=none,,Walk Through Windows of Current Application Alternative
Walk Through Windows of Current Application Alternative (Reverse)=none,,Walk Through Windows of Current Application Alternative (Reverse)
Window Above Other Windows=none,,Keep Window Above Others
Window Below Other Windows=none,,Keep Window Below Others
Window Close=Alt+F4\tMeta+Q,Alt+F4,Close Window
Window Custom Quick Tile Bottom=none,,Custom Quick Tile Window to the Bottom
Window Custom Quick Tile Left=none,,Custom Quick Tile Window to the Left
Window Custom Quick Tile Right=none,,Custom Quick Tile Window to the Right
Window Custom Quick Tile Top=none,,Custom Quick Tile Window to the Top
Window Fullscreen=none,,Make Window Fullscreen
Window Grow Horizontal=none,,Expand Window Horizontally
Window Grow Vertical=none,,Expand Window Vertically
Window Lower=none,,Lower Window
Window Maximize=Meta+PgUp,Meta+PgUp,Maximise Window
Window Maximize Horizontal=none,,Maximise Window Horizontally
Window Maximize Vertical=none,,Maximise Window Vertically
Window Minimize=Meta+PgDown,Meta+PgDown,Minimise Window
Window Move=none,,Move Window
Window Move Center=none,,Move Window to the Centre
Window No Border=none,,Toggle Window Titlebar and Frame
Window On All Desktops=none,,Keep Window on All Desktops
Window One Desktop Down=Meta+Ctrl+Shift+Down,Meta+Ctrl+Shift+Down,Window One Desktop Down
Window One Desktop Up=Meta+Ctrl+Shift+Up,Meta+Ctrl+Shift+Up,Window One Desktop Up
Window One Desktop to the Left=Meta+Ctrl+Shift+Left,Meta+Ctrl+Shift+Left,Window One Desktop to the Left
Window One Desktop to the Right=Meta+Ctrl+Shift+Right,Meta+Ctrl+Shift+Right,Window One Desktop to the Right
Window One Screen Down=none,,Move Window One Screen Down
Window One Screen Up=none,,Move Window One Screen Up
Window One Screen to the Left=none,,Move Window One Screen to the Left
Window One Screen to the Right=none,,Move Window One Screen to the Right
Window Operations Menu=Alt+F3,Alt+F3,Window Operations Menu
Window Pack Down=none,,Move Window Down
Window Pack Left=none,,Move Window Left
Window Pack Right=none,,Move Window Right
Window Pack Up=none,,Move Window Up
Window Quick Tile Bottom=Meta+Down,Meta+Down,Quick Tile Window to the Bottom
Window Quick Tile Bottom Left=none,,Quick Tile Window to the Bottom Left
Window Quick Tile Bottom Right=none,,Quick Tile Window to the Bottom Right
Window Quick Tile Left=Meta+Left,Meta+Left,Quick Tile Window to the Left
Window Quick Tile Right=Meta+Right,Meta+Right,Quick Tile Window to the Right
Window Quick Tile Top=Meta+Up,Meta+Up,Quick Tile Window to the Top
Window Quick Tile Top Left=none,,Quick Tile Window to the Top Left
Window Quick Tile Top Right=none,,Quick Tile Window to the Top Right
Window Raise=none,,Raise Window
Window Resize=none,,Resize Window
Window Shade=none,,Shade Window
Window Shrink Horizontal=none,,Shrink Window Horizontally
Window Shrink Vertical=none,,Shrink Window Vertically
Window to Desktop 1=Meta+!,,Window to Desktop 1
Window to Desktop 10=none,,Window to Desktop 10
Window to Desktop 11=none,,Window to Desktop 11
Window to Desktop 12=none,,Window to Desktop 12
Window to Desktop 13=none,,Window to Desktop 13
Window to Desktop 14=none,,Window to Desktop 14
Window to Desktop 15=none,,Window to Desktop 15
Window to Desktop 16=none,,Window to Desktop 16
Window to Desktop 17=none,,Window to Desktop 17
Window to Desktop 18=none,,Window to Desktop 18
Window to Desktop 19=none,,Window to Desktop 19
Window to Desktop 2=Meta+@,,Window to Desktop 2
Window to Desktop 20=none,,Window to Desktop 20
Window to Desktop 3=Meta+#,,Window to Desktop 3
Window to Desktop 4=Meta+$,,Window to Desktop 4
Window to Desktop 5=Meta+%,,Window to Desktop 5
Window to Desktop 6=Meta+^,,Window to Desktop 6
Window to Desktop 7=Meta+&,,Window to Desktop 7
Window to Desktop 8=Meta+*,,Window to Desktop 8
Window to Desktop 9=none,,Window to Desktop 9
Window to Next Desktop=none,,Window to Next Desktop
Window to Next Screen=Meta+Shift+Right,Meta+Shift+Right,Move Window to Next Screen
Window to Previous Desktop=none,,Window to Previous Desktop
Window to Previous Screen=Meta+Shift+Left,Meta+Shift+Left,Move Window to Previous Screen
Window to Screen 0=none,,Move Window to Screen 0
Window to Screen 1=none,,Move Window to Screen 1
Window to Screen 2=none,,Move Window to Screen 2
Window to Screen 3=none,,Move Window to Screen 3
Window to Screen 4=none,,Move Window to Screen 4
Window to Screen 5=none,,Move Window to Screen 5
Window to Screen 6=none,,Move Window to Screen 6
Window to Screen 7=none,,Move Window to Screen 7
Move Tablet to Next Output=none,none,移动数位板到下一个输出设备
MoveMouseToCenter=Meta+F6,Meta+F6,移动鼠标到中央
MoveMouseToFocus=Meta+F5,Meta+F5,移动鼠标到焦点
MoveZoomDown=none,none,将缩放区域向下移动
MoveZoomLeft=none,none,将缩放区域向左移动
MoveZoomRight=none,none,将缩放区域向右移动
MoveZoomUp=none,none,将缩放区域向上移动
Overview=Meta+W\tMeta+Tab,Meta+W,显示/隐藏桌面总览
Setup Window Shortcut=none,,设置窗口快捷键
Show Desktop=Meta+D,Meta+D,暂时显示桌面
Switch One Desktop Down=Meta+Ctrl+Down,Meta+Ctrl+Down,切换到下方桌面
Switch One Desktop Up=Meta+Ctrl+Up,Meta+Ctrl+Up,切换到上方桌面
Switch One Desktop to the Left=Meta+Ctrl+Left,Meta+Ctrl+Left,切换到左侧桌面
Switch One Desktop to the Right=Meta+Ctrl+Right,Meta+Ctrl+Right,切换到右侧桌面
Switch Window Down=Meta+Alt+Down,Meta+Alt+Down,切换到下面的窗口
Switch Window Left=Meta+Alt+Left,Meta+Alt+Left,切换到左侧的窗口
Switch Window Right=Meta+Alt+Right,Meta+Alt+Right,切换到右侧的窗口
Switch Window Up=Meta+Alt+Up,Meta+Alt+Up,切换到上面的窗口
Switch to Desktop 1=Meta+1,Ctrl+F1,切换到桌面 1
Switch to Desktop 10=none,,切换到桌面 10
Switch to Desktop 11=none,,切换到桌面 11
Switch to Desktop 12=none,,切换到桌面 12
Switch to Desktop 13=none,,切换到桌面 13
Switch to Desktop 14=none,,切换到桌面 14
Switch to Desktop 15=none,,切换到桌面 15
Switch to Desktop 16=none,,切换到桌面 16
Switch to Desktop 17=none,,切换到桌面 17
Switch to Desktop 18=none,,切换到桌面 18
Switch to Desktop 19=none,,切换到桌面 19
Switch to Desktop 2=Meta+2,Ctrl+F2,切换到桌面 2
Switch to Desktop 20=none,,切换到桌面 20
Switch to Desktop 3=Meta+3,Ctrl+F3,切换到桌面 3
Switch to Desktop 4=Meta+4,Ctrl+F4,切换到桌面 4
Switch to Desktop 5=Meta+5,,切换到桌面 5
Switch to Desktop 6=Meta+6,,切换到桌面 6
Switch to Desktop 7=Meta+7,,切换到桌面 7
Switch to Desktop 8=Meta+8,,切换到桌面 8
Switch to Desktop 9=Meta+9,,切换到桌面 9
Switch to Next Desktop=none,,切换到下一桌面
Switch to Next Screen=none,,切换到下一屏幕
Switch to Previous Desktop=none,,切换到上一桌面
Switch to Previous Screen=none,,切换到上一屏幕
Switch to Screen 0=none,,切换到屏幕 0
Switch to Screen 1=none,,切换到屏幕 1
Switch to Screen 2=none,,切换到屏幕 2
Switch to Screen 3=none,,切换到屏幕 3
Switch to Screen 4=none,,切换到屏幕 4
Switch to Screen 5=none,,切换到屏幕 5
Switch to Screen 6=none,,切换到屏幕 6
Switch to Screen 7=none,,切换到屏幕 7
Switch to Screen Above=none,,切换到上方屏幕
Switch to Screen Below=none,,切换到下方屏幕
Switch to Screen to the Left=none,,切换到左侧屏幕
Switch to Screen to the Right=none,,切换到右侧屏幕
Toggle Night Color=none,none,暂停/继续夜间色温
Toggle Window Raise/Lower=none,,提升/降低窗口
Walk Through Windows=Alt+Tab,Alt+Tab,遍历窗口
Walk Through Windows (Reverse)=Alt+Shift+Tab,Alt+Shift+Tab,遍历窗口 (反向)
Walk Through Windows Alternative=none,,遍历窗口交替
Walk Through Windows Alternative (Reverse)=none,,遍历窗口交替 (反向)
Walk Through Windows of Current Application=Alt+`,Alt+`,遍历当前应用程序窗口
Walk Through Windows of Current Application (Reverse)=Alt+~,Alt+~,遍历当前应用程序窗口 (反向)
Walk Through Windows of Current Application Alternative=none,,遍历当前应用程序窗口交替
Walk Through Windows of Current Application Alternative (Reverse)=none,,遍历当前应用程序窗口交替 (反向)
Window Above Other Windows=none,,窗口置顶
Window Below Other Windows=none,,窗口置底
Window Close=Alt+F4\tMeta+Q,Alt+F4,关闭窗口
Window Custom Quick Tile Bottom=none,,自定义快速铺放窗口到下方
Window Custom Quick Tile Left=none,,自定义快速铺放窗口到左侧
Window Custom Quick Tile Right=none,,自定义快速铺放窗口到右侧
Window Custom Quick Tile Top=none,,自定义快速铺放窗口到上方
Window Fullscreen=Meta+F11,,全屏显示窗口
Window Grow Horizontal=none,,水平扩展窗口
Window Grow Vertical=none,,垂直扩展窗口
Window Lower=none,,降低窗口
Window Maximize=Meta+PgUp,Meta+PgUp,最大化窗口
Window Maximize Horizontal=none,,水平最大化窗口
Window Maximize Vertical=none,,垂直最大化窗口
Window Minimize=Meta+PgDown\tMeta+M,Meta+PgDown,最小化窗口
Window Move=none,,移动窗口
Window Move Center=none,,移动窗口到中央
Window No Border=none,,显示/隐藏窗口标题栏和框架
Window On All Desktops=none,,在所有桌面上显示窗口
Window One Desktop Down=Meta+Ctrl+Shift+Down,Meta+Ctrl+Shift+Down,窗口下移一个桌面
Window One Desktop Up=Meta+Ctrl+Shift+Up,Meta+Ctrl+Shift+Up,窗口上移一个桌面
Window One Desktop to the Left=Meta+Ctrl+Shift+Left,Meta+Ctrl+Shift+Left,窗口左移一个桌面
Window One Desktop to the Right=Meta+Ctrl+Shift+Right,Meta+Ctrl+Shift+Right,窗口右移一个桌面
Window One Screen Down=none,,移动窗口到下方屏幕
Window One Screen Up=none,,移动窗口到上方屏幕
Window One Screen to the Left=none,,移动窗口到左侧屏幕
Window One Screen to the Right=none,,移动窗口到右侧屏幕
Window Operations Menu=Alt+F3,Alt+F3,窗口操作菜单
Window Pack Down=none,,下移窗口
Window Pack Left=none,,左移窗口
Window Pack Right=none,,右移窗口
Window Pack Up=none,,上移窗口
Window Quick Tile Bottom=Meta+Down,Meta+Down,快速铺放窗口到下方
Window Quick Tile Bottom Left=none,,快速铺放窗口到左下方
Window Quick Tile Bottom Right=none,,快速铺放窗口到右下方
Window Quick Tile Left=Meta+Left,Meta+Left,快速铺放窗口到左侧
Window Quick Tile Right=Meta+Right,Meta+Right,快速铺放窗口到右侧
Window Quick Tile Top=Meta+Up,Meta+Up,快速铺放窗口到上方
Window Quick Tile Top Left=none,,快速铺放窗口到左上方
Window Quick Tile Top Right=none,,快速铺放窗口到右上方
Window Raise=none,,提升窗口
Window Resize=none,,调整窗口大小
Window Shade=none,,折叠窗口
Window Shrink Horizontal=none,,水平缩小窗口
Window Shrink Vertical=none,,垂直缩小窗口
Window to Desktop 1=Meta+!,,窗口移动到桌面 1
Window to Desktop 10=none,,窗口移动到桌面 10
Window to Desktop 11=none,,窗口移动到桌面 11
Window to Desktop 12=none,,窗口移动到桌面 12
Window to Desktop 13=none,,窗口移动到桌面 13
Window to Desktop 14=none,,窗口移动到桌面 14
Window to Desktop 15=none,,窗口移动到桌面 15
Window to Desktop 16=none,,窗口移动到桌面 16
Window to Desktop 17=none,,窗口移动到桌面 17
Window to Desktop 18=none,,窗口移动到桌面 18
Window to Desktop 19=none,,窗口移动到桌面 19
Window to Desktop 2=Meta+@,,窗口移动到桌面 2
Window to Desktop 20=none,,窗口移动到桌面 20
Window to Desktop 3=Meta+#,,窗口移动到桌面 3
Window to Desktop 4=Meta+$,,窗口移动到桌面 4
Window to Desktop 5=Meta+%,,窗口移动到桌面 5
Window to Desktop 6=Meta+^,,窗口移动到桌面 6
Window to Desktop 7=Meta+&,,窗口移动到桌面 7
Window to Desktop 8=Meta+*,,窗口移动到桌面 8
Window to Desktop 9=Meta+(,,窗口移动到桌面 9
Window to Next Desktop=none,,窗口移动到下一桌面
Window to Next Screen=Meta+Shift+Right,Meta+Shift+Right,移动窗口到下一屏幕
Window to Previous Desktop=none,,窗口移动到上一桌面
Window to Previous Screen=Meta+Shift+Left,Meta+Shift+Left,移动窗口到上一屏幕
Window to Screen 0=none,,移动窗口到屏幕 0
Window to Screen 1=none,,移动窗口到屏幕 1
Window to Screen 2=none,,移动窗口到屏幕 2
Window to Screen 3=none,,移动窗口到屏幕 3
Window to Screen 4=none,,移动窗口到屏幕 4
Window to Screen 5=none,,移动窗口到屏幕 5
Window to Screen 6=none,,移动窗口到屏幕 6
Window to Screen 7=none,,移动窗口到屏幕 7
_k_friendly_name=KWin
disableInputCapture=Meta+Shift+Esc,Meta+Shift+Esc,Disable Active Input Capture
view_actual_size=Meta+0,Meta+0,Zoom to Actual Size
view_zoom_in=Meta++\tMeta+=,Meta++\tMeta+=,Zoom In
view_zoom_out=Meta+-,Meta+-,Zoom Out
disableInputCapture=Meta+Shift+Esc,Meta+Shift+Esc,禁用活动输入捕获
view_actual_size=Meta+0,Meta+0,缩放为实际大小(A)
view_zoom_in=Meta++\tMeta+=,Meta++\tMeta+=,放大(I)
view_zoom_out=Meta+-,Meta+-,缩小(O)
[mediacontrol]
_k_friendly_name=Media Controller
mediavolumedown=none,,Media volume down
mediavolumeup=none,,Media volume up
nextmedia=Media Next,Media Next,Media playback next
pausemedia=Media Pause,Media Pause,Pause media playback
playmedia=none,,Play media playback
playpausemedia=Media Play,Media Play,Play/Pause media playback
previousmedia=Media Previous,Media Previous,Media playback previous
stopmedia=Media Stop,Media Stop,Stop media playback
_k_friendly_name=媒体控制器
mediavolumedown=none,,媒体音量降低
mediavolumeup=none,,媒体音量提高
nextmedia=Media Next,Media Next,播放下一首媒体
pausemedia=Media Pause,Media Pause,暂停媒体播放
playmedia=none,,播放媒体
playpausemedia=Media Play,Media Play,播放/暂停媒体播放
previousmedia=Media Previous,Media Previous,播放上一首媒体
stopmedia=Media Stop,Media Stop,停止媒体播放
[org_kde_powerdevil]
Decrease Keyboard Brightness=Keyboard Brightness Down,Keyboard Brightness Down,Decrease Keyboard Brightness
Decrease Screen Brightness=Monitor Brightness Down,Monitor Brightness Down,Decrease Screen Brightness
Decrease Screen Brightness Small=Shift+Monitor Brightness Down,Shift+Monitor Brightness Down,Decrease Screen Brightness by 1%
Hibernate=Hibernate,Hibernate,Hibernate
Increase Keyboard Brightness=Keyboard Brightness Up,Keyboard Brightness Up,Increase Keyboard Brightness
Increase Screen Brightness=Monitor Brightness Up,Monitor Brightness Up,Increase Screen Brightness
Increase Screen Brightness Small=Shift+Monitor Brightness Up,Shift+Monitor Brightness Up,Increase Screen Brightness by 1%
PowerDown=Power Down,Power Down,Power Down
PowerOff=Power Off,Power Off,Power Off
Sleep=Sleep,Sleep,Suspend
Toggle Keyboard Backlight=Keyboard Light On/Off,Keyboard Light On/Off,Toggle Keyboard Backlight
Turn Off Screen=none,none,Turn Off Screen
_k_friendly_name=Power Management
powerProfile=Battery\tMeta+B,Battery\tMeta+B,Switch Power Profile
Decrease Keyboard Brightness=Keyboard Brightness Down,Keyboard Brightness Down,降低键盘亮度
Decrease Screen Brightness=Monitor Brightness Down,Monitor Brightness Down,降低屏幕亮度
Decrease Screen Brightness Small=Shift+Monitor Brightness Down,Shift+Monitor Brightness Down,降低屏幕亮度 1%
Hibernate=Hibernate,Hibernate,休眠
Increase Keyboard Brightness=Keyboard Brightness Up,Keyboard Brightness Up,提高键盘亮度
Increase Screen Brightness=Monitor Brightness Up,Monitor Brightness Up,提高屏幕亮度
Increase Screen Brightness Small=Shift+Monitor Brightness Up,Shift+Monitor Brightness Up,提高屏幕亮度 1%
PowerDown=Power Down,Power Down,断电
PowerOff=Power Off,Power Off,关机
Sleep=Sleep,Sleep,挂起
Toggle Keyboard Backlight=Keyboard Light On/Off,Keyboard Light On/Off,开关键盘背光
Turn Off Screen=none,none,关闭屏幕
_k_friendly_name=电源管理
powerProfile=Battery\tMeta+B,Battery\tMeta+B,切换电源管理方案
[plasmashell]
_k_friendly_name=plasmashell
activate application launcher=Meta\tAlt+F1,Meta\tAlt+F1,Activate Application Launcher
activate task manager entry 1=none,Meta+1,Activate Task Manager Entry 1
activate task manager entry 10=none,,Activate Task Manager Entry 10
activate task manager entry 2=none,Meta+2,Activate Task Manager Entry 2
activate task manager entry 3=none,Meta+3,Activate Task Manager Entry 3
activate task manager entry 4=none,Meta+4,Activate Task Manager Entry 4
activate task manager entry 5=none,Meta+5,Activate Task Manager Entry 5
activate task manager entry 6=none,Meta+6,Activate Task Manager Entry 6
activate task manager entry 7=none,Meta+7,Activate Task Manager Entry 7
activate task manager entry 8=none,Meta+8,Activate Task Manager Entry 8
activate task manager entry 9=none,Meta+9,Activate Task Manager Entry 9
activate application launcher=Meta\tAlt+F1,Meta\tAlt+F1,激活应用程序启动器
activate task manager entry 1=none,Meta+1,激活任务管理器条目 1
activate task manager entry 10=none,,激活任务管理器条目 10
activate task manager entry 2=none,Meta+2,激活任务管理器条目 2
activate task manager entry 3=none,Meta+3,激活任务管理器条目 3
activate task manager entry 4=none,Meta+4,激活任务管理器条目 4
activate task manager entry 5=none,Meta+5,激活任务管理器条目 5
activate task manager entry 6=none,Meta+6,激活任务管理器条目 6
activate task manager entry 7=none,Meta+7,激活任务管理器条目 7
activate task manager entry 8=none,Meta+8,激活任务管理器条目 8
activate task manager entry 9=none,Meta+9,激活任务管理器条目 9
activate widget 115=none,none,激活 应用程序启动器 挂件
activate widget 120=none,none,激活 数字时钟 挂件
activate widget 3=none,none,Activate Application Launcher Widget
clear-history=none,,Clear Clipboard History
clipboard_action=Meta+Ctrl+X,Meta+Ctrl+X,Automatic Action Popup Menu
cycle-panels=Meta+Alt+P,Meta+Alt+P,Move keyboard focus between panels
cycleNextAction=none,,Next History Item
cyclePrevAction=none,,Previous History Item
manage activities=none,Meta+Q,Show Activity Switcher
next activity=Meta+A,none,Walk through activities
previous activity=Meta+Shift+A,none,Walk through activities (Reverse)
repeat_action=none,,Manually Invoke Action on Current Clipboard
show dashboard=Ctrl+F12,Ctrl+F12,Show Desktop
show-barcode=none,,Show Barcode
show-on-mouse-pos=Meta+V,Meta+V,Show Clipboard Items at Mouse Position
stop current activity=Meta+S,Meta+S,Stop Current Activity
switch to next activity=none,,Switch to Next Activity
switch to previous activity=none,,Switch to Previous Activity
toggle do not disturb=none,,Toggle do not disturb
clear-history=none,,清除剪贴板历史(L)
clipboard_action=Meta+Ctrl+X,Meta+Ctrl+X,自动弹出操作菜单
cycle-panels=Meta+Alt+P,Meta+Alt+P,在面板之间移动键盘焦点
cycleNextAction=none,,下一条历史记录
cyclePrevAction=none,,上一条历史记录
manage activities=none,Meta+Q,显示活动切换器
next activity=Meta+A,none,遍历活动
previous activity=Meta+Shift+A,none,遍历活动 (反向)
repeat_action=none,,在当前剪贴板上手动执行操作
show dashboard=Ctrl+F12,Ctrl+F12,显示桌面
show-barcode=none,,显示条形码(S)
show-on-mouse-pos=Meta+V,Meta+V,在鼠标位置显示剪贴板项目
stop current activity=Meta+S,Meta+S,停止当前活动
switch to next activity=none,,切换到下一个活动
switch to previous activity=none,,切换到上一个活动
toggle do not disturb=none,,切换勿扰模式
[services][kitty.desktop]
_launch=Meta+R
@ -314,8 +331,7 @@ _launch=Meta+F
_launch=none
[services][org.kde.krunner.desktop]
RunClipboard=Alt+Shift+F2\tAlt+Space
_launch=Alt+F2\tSearch
_launch=Alt+F2\tMeta+K\tSearch\tAlt+Space
[services][org.kde.kscreen.desktop]
ShowOSD=Display
@ -336,5 +352,5 @@ Toggle touch tool=Meta+Ctrl+T,Meta+Ctrl+T,Enable/Disable the Touch Tool
_k_friendly_name=Wacom Tablet
[yakuake]
_k_friendly_name=Yakuake
toggle-window-state=Meta+`,F12,Open/Retract Yakuake
_k_friendly_name=Yakuake 下拉式终端
toggle-window-state=Meta+`,F12,展开/折叠 Yakuake 窗口

View file

@ -0,0 +1,19 @@
[org-telegram-desktop]
alt.n = macro(C-tab)
alt.e = C-S-tab
[wechat]
alt.n = A-down
alt.e = A-up
[qq]
alt.n = C-down
alt.e = C-up
alt.h = C-left
alt.i = enter
[zotero]
alt.n = pagedown
alt.e = pageup

View file

@ -0,0 +1,26 @@
# $XDG_CONFIG_HOME/neovide/config.toml
# ln -sf $DOTFILES/mac/neovide.toml $XDG_CONFIG_HOME/neovide/config.toml
# New-Item -ItemType SymbolicLink -Path $Env:XDG_CONFIG_HOME/neovide/config.toml -Value $DOTFILES\mac\neovide.toml (Mac)
# https://neovide.dev/config-file.html?highlight=toml#config-file
# 设置为 fork 默认后台运行,不会占用终端
fork = true
# frame = "full"
idle = true
maximized = false
# neovim-bin = "/opt/homebrew/bin/nvim"
frame = "transparent"
no-multigrid = false
srgb = false
tabs = true
theme = "auto"
title-hidden = true
vsync = true
wsl = false
[font]
normal = [
"Maple Mono NF CN",
"Iosevka Nerd Font",
"霞鹜文楷等宽",
] # Will use the bundled Fira Code Nerd Font by default
size = 14.0

View file

@ -0,0 +1,29 @@
* {
rosewater: #f5e0dc;
flamingo: #f2cdcd;
pink: #f5c2e7;
mauve: #cba6f7;
red: #f38ba8;
maroon: #eba0ac;
peach: #fab387;
yellow: #f9e2af;
green: #a6e3a1;
teal: #94e2d5;
sky: #89dceb;
sapphire: #74c7ec;
blue: #89b4fa;
lavender: #b4befe;
text: #cdd6f4;
subtext1: #bac2de;
subtext0: #a6adc8;
overlay2: #9399b2;
overlay1: #7f849c;
overlay0: #6c7086;
surface2: #585b70;
surface1: #45475a;
surface0: #313244;
base: #1e1e2e;
mantle: #181825;
crust: #11111b;
accent: @lavender;
}

View file

@ -0,0 +1,172 @@
@import "catppuccin-mocha"
* {
selected-active-foreground: @background;
lightfg: @text;
separatorcolor: @foreground;
urgent-foreground: @red;
alternate-urgent-background: @lightbg;
lightbg: @mantle;
background-color: transparent;
border-color: @foreground;
normal-background: @background;
selected-urgent-background: @red;
alternate-active-background: @lightbg;
spacing: 2;
alternate-normal-foreground: @foreground;
urgent-background: @background;
selected-normal-foreground: @lightbg;
active-foreground: @blue;
background: @base;
selected-active-background: @blue;
active-background: @background;
selected-normal-background: @pink;
alternate-normal-background: @lightbg;
foreground: @text;
selected-urgent-foreground: @background;
normal-foreground: @foreground;
alternate-urgent-foreground: @red;
alternate-active-foreground: @blue;
}
element {
padding: 1px ;
cursor: pointer;
spacing: 5px ;
border: 0;
}
element normal.normal {
background-color: @normal-background;
text-color: @normal-foreground;
}
element normal.urgent {
background-color: @urgent-background;
text-color: @urgent-foreground;
}
element normal.active {
background-color: @active-background;
text-color: @active-foreground;
}
element selected.normal {
background-color: @selected-normal-background;
text-color: @selected-normal-foreground;
}
element selected.urgent {
background-color: @selected-urgent-background;
text-color: @selected-urgent-foreground;
}
element selected.active {
background-color: @selected-active-background;
text-color: @selected-active-foreground;
}
element alternate.normal {
background-color: @alternate-normal-background;
text-color: @alternate-normal-foreground;
}
element alternate.urgent {
background-color: @alternate-urgent-background;
text-color: @alternate-urgent-foreground;
}
element alternate.active {
background-color: @alternate-active-background;
text-color: @alternate-active-foreground;
}
element-text {
background-color: transparent;
cursor: inherit;
highlight: inherit;
text-color: inherit;
}
element-icon {
background-color: transparent;
size: 1.0000em ;
cursor: inherit;
text-color: inherit;
}
window {
location: center;
border-radius: 10px;
padding: 5;
background-color: @background;
border: 1;
}
mainbox {
padding: 0;
border: 0;
}
message {
padding: 1px ;
border-color: @separatorcolor;
border: 2px dash 0px 0px ;
}
textbox {
text-color: @foreground;
}
listview {
padding: 2px 0px 0px ;
scrollbar: true;
border-color: @separatorcolor;
spacing: 2px ;
fixed-height: 0;
border: 2px dash 0px 0px ;
}
scrollbar {
width: 4px ;
padding: 0;
handle-width: 8px ;
border: 0;
handle-color: @normal-foreground;
}
sidebar {
border-color: @separatorcolor;
border: 2px dash 0px 0px ;
}
button {
cursor: pointer;
spacing: 0;
text-color: @normal-foreground;
}
button selected {
background-color: @selected-normal-background;
text-color: @selected-normal-foreground;
}
num-filtered-rows {
expand: false;
text-color: Gray;
}
num-rows {
expand: false;
text-color: Gray;
}
textbox-num-sep {
expand: false;
str: "/";
text-color: Gray;
}
inputbar {
padding: 1px ;
spacing: 0px ;
text-color: @normal-foreground;
children: [ "prompt","textbox-prompt-colon","entry","num-filtered-rows","textbox-num-sep","num-rows","case-indicator" ];
}
case-indicator {
spacing: 0;
text-color: @normal-foreground;
}
entry {
text-color: @normal-foreground;
cursor: text;
spacing: 0;
placeholder-color: Gray;
placeholder: "搜索...";
}
prompt {
spacing: 0;
text-color: @accent;
}
textbox-prompt-colon {
margin: 0px 0.3000em 0.0000em 0.0000em ;
expand: false;
str: ">";
text-color: inherit;
}

View file

@ -0,0 +1,37 @@
* {
bg: #faf4ed;
cur: #fffaf3;
fgd: #575279;
cmt: #9893a5;
cya: #56949f;
grn: #286983;
ora: #d7827e;
pur: #907aa9;
red: #b4637a;
yel: #ea9d34;
alt-fgd: #faf4ed;
font: "Cartograph CF 12";
foreground: @fgd;
background: @bg;
active-background: @grn;
active-foreground: @alt-fgd;
urgent-background: @red;
urgent-foreground: @alt-fgd;
selected-background: @active-background;
selected-foreground: @active-foreground;
selected-urgent-background: @urgent-background;
selected-urgent-foreground: @urgent-foreground;
selected-active-background: @active-background;
selected-active-foreground: @active-foreground;
separatorcolor: @active-background;
bordercolor: @ora;
}

6
platforms/linux/swaylock Normal file
View file

@ -0,0 +1,6 @@
image=~/Pictures/Wallpaper/lock.png
ignore-empty-password
show-failed-attempts
show-keyboard-layout

View file

@ -0,0 +1,13 @@
[Unit]
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
[Service]
Type=forking
ExecStart=/usr/bin/emacs --daemon
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
Environment=SSH_AUTH_SOCK=%t/keyring/ssh
Restart=on-failure
[Install]
WantedBy=default.target

View file

@ -0,0 +1,13 @@
[Unit]
Description=Keyd Application Specific Mapping
Documentation=man:keyd-application-mapper(1) https://github.com/rvaiya/keyd
[Service]
Type=forking
ExecStart=/usr/bin/keyd-application-mapper -d
ExecStop=pkill keyd-applicatio
Restart=on-failure
[Install]
WantedBy=default.target

View file

@ -0,0 +1,9 @@
# $DOTFILES/platforms/linux/user-dirs.dirs
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"

View file

@ -0,0 +1 @@
zh_CN

View file

@ -1,37 +0,0 @@
{
"include": "~/.config/waybar/modules",
"name": "main-bar",
"id": "main-bar",
"layer": "top",
"mode": "dock",
"exclusive": true,
"passthrough": false,
"position": "top",
"output": "DP-2",
"height": 32,
"width": "",
"spacing": 6,
"margin": 0,
"margin-top": 0,
"margin-bottom": 0,
"margin-left": 0,
"margin-right": 0,
"fixed-center": true,
"ipc": true,
"modules-left": [
"custom/menu",
"hyprland/workspaces"
],
// "modules-center": [
// "hyprland/window",
// "mpd"
// ],
"modules-right": [
"tray",
"pulseaudio",
"custom/weather",
"battery",
"clock",
"custom/power"
]
}

View file

@ -0,0 +1,35 @@
// -*- mode: jsonc -*-
{
// "layer": "top", // Waybar at top layer
// "position": "bottom", // Waybar position (top|bottom|left|right)
"include": [
"~/.config/waybar/modules/hyprland-workspace.jsonc",
"~/.config/waybar/modules/misc.jsonc"
],
"height": 30, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width
"spacing": 4, // Gaps between modules (4px)
// Choose the order of the modules
"modules-left": [
"hyprland/workspaces",
"sway/mode",
"sway/scratchpad"
],
// "modules-center": [
// "hyprland/window"
// ],
"modules-right": [
"tray",
// "idle_inhibitor",
"pulseaudio",
"network",
// "power-profiles-daemon",
"cpu",
"memory",
"temperature",
"backlight",
// "hyprland/language",
"battery",
"clock"
],
}

View file

@ -1,149 +0,0 @@
// Waybar modules configuration
{
// waybar-backlight
"backlight": {
"interval": 2,
"align": 0,
"rotate": 0,
//"device": "amdgpu_bl0",
"format": "{icon} {percent}%",
"format-icons": [
"",
"",
"",
""
],
// Commands to execute on events
"on-click": "",
"on-click-middle": "",
"on-click-right": "",
"on-update": "",
"on-scroll-up": "light -A 5%",
"on-scroll-down": "light -U 5%",
"smooth-scrolling-threshold": 1
},
"hyprland/workspaces": {
"format": "{icon} {windows}",
"format-window-separator": " ",
"window-rewrite-default": "",
"window-rewrite": {
"title<.*youtube.*>": "",
"class<firefox>": "",
"class<.*wezterm>": "",
"class<kitty>": "",
"class<wofi>": "󱓞",
"class<firefox> title<.*github.*>": "",
"class<Vivaldi.*>": "󰰬",
"obsidian": "󱓩",
"foot": "",
"Cider": "",
"class<org.kde.dolphin>": "",
"code": "󰨞",
"class<.*telegram.*>": "",
"discord": "",
"neovide": "",
"class<org.kde.okular>": "",
"class<.*wechat.*>": "",
"QQ": "",
"class<Tor Browser>": "",
"Zotero": "",
"class<ticktick>": "",
"class<net.ankiweb.Anki>": "",
}
},
// waybar-battery
"battery": {
"interval": 60,
"align": 0,
"rotate": 0,
//"bat": "BAT1",
//"adapter": "ACAD",
"full-at": 100,
"design-capacity": false,
"states": {
"good": 95,
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-charging": " {capacity}%",
"format-plugged": " {capacity}%",
"format-full": "{icon} Full",
//"format-good": "",
"format-alt": "{icon} {time}",
"format-icons": [
"",
"",
"",
"",
""
],
"format-time": "{H}h {M}min",
"tooltip": true
},
// waybar-clock
"clock": {
"interval": 1,
"align": 0,
"rotate": 0,
"tooltip-format": "<big>{:%B %Y}</big>\n<tt><small>{calendar}</small></tt>",
"format": " {:%H:%M:%S}",
"format-alt": " {:%a %b %d, %G}"
},
// waybar-cpu
"cpu": {
"interval": 5,
"format": " {usage}%"
},
// waybar-custom
"custom/menu": {
"format": "󰣇 ",
"tooltip": false,
"on-click": "wofi"
},
"custom/power": {
"format": "⏻",
"tooltip": false,
"on-click": "wlogout"
},
// weather-custom
"custom/weather": {
"format": "{}",
"format-alt": "{alt}: {}",
"format-alt-click": "click-right",
"interval": 1800,
"return-type": "json",
"exec": "~/.config/hypr/scripts/weather.sh",
"exec-if": "ping wttr.in -c1"
},
// waybar-tray
"tray": {
"icon-size": 16,
"spacing": 10
},
"pulseaudio": {
"format": "{volume}% {icon}",
"format-bluetooth": "{volume}% {icon}",
"format-muted": "",
"format-icons": {
"alsa_output.pci-0000_00_1f.3.analog-stereo": "",
"alsa_output.pci-0000_00_1f.3.analog-stereo-muted": "",
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"phone-muted": "",
"portable": "",
"car": "",
"default": [
"",
""
]
},
"scroll-step": 1,
"on-click": "pavucontrol",
"ignored-sinks": [
"Easy Effects Sink"
]
}
}

View file

@ -0,0 +1,123 @@
{
"hyprland/workspaces": {
"disable-scroll": true,
"all-outputs": true,
"warp-on-scroll": false,
"sort-by-number": true,
"show-special": false,
"on-click": "activate",
"on-scroll-up": "hyprctl dispatch workspace e+1",
"on-scroll-down": "hyprctl dispatch workspace e-1",
"persistent-workspaces": {
"*": 5
},
"format-icons": {
"1": "一",
"2": "二",
"3": "三",
"4": "四",
"5": "五",
"6": "六",
"7": "七",
"8": "八",
"9": "九",
"10": "十",
"active": "",
"default": "",
},
"format": "{icon} {windows}",
"format-window-separator": " ",
"window-rewrite-default": " ",
"window-rewrite": {
"title<.*amazon.*>": " ",
"title<.*reddit.*>": " ",
"class<firefox|org.mozilla.firefox|librewolf|floorp|mercury-browser|[Cc]achy-browser>": " ",
"class<zen>": "󰰷 ",
"class<Vivaldi-stable>": "󰰬 ",
"class<waterfox|waterfox-bin>": " ",
"class<microsoft-edge>": " ",
"class<Chromium|Thorium|[Cc]hrome>": " ",
"class<brave-browser>": "🦁 ",
"class<tor browser>": " ",
"class<firefox-developer-edition>": "🦊 ",
"class<kitty|konsole>": " ",
"class<kitty-dropterm>": " ",
"class<com.mitchellh.ghostty>": " ",
"class<org.wezfurlong.wezterm>": " ",
"class<[Tt]hunderbird|[Tt]hunderbird-esr>": " ",
"class<eu.betterbird.Betterbird>": " ",
"title<.*gmail.*>": "󰊫 ",
"class<[Tt]elegram-desktop|org.telegram.desktop|io.github.tdesktop_x64.TDesktop>": " ",
"class<discord|[Ww]ebcord|Vesktop>": " ",
"title<.*whatsapp.*>": " ",
"title<.*zapzap.*>": " ",
"title<.*messenger.*>": " ",
"title<.*facebook.*>": " ",
"title<.*reddit.*>": " ",
"title<.*ChatGPT.*>": "󰚩 ",
"title<.*deepseek.*>": "󰚩 ",
"title<.*qwen.*>": "󰚩 ",
"class<subl>": "󰅳 ",
"class<slack>": " ",
"class<mpv>": " ",
"class<celluloid|Zoom>": " ",
"class<Cider>": "󰎆 ",
"title<.*Picture-in-Picture.*>": " ",
"title<.*youtube.*>": " ",
"class<vlc>": "󰕼 ",
"title<.*cmus.*>": " ",
"class<[Ss]potify>": " ",
"class<virt-manager>": " ",
"class<.virt-manager-wrapped>": " ",
"class<virtualbox manager>": "💽 ",
"title<virtualbox>": "💽 ",
"class<remmina>": "🖥️ ",
"class<Code|code-url-handler|code-oss|codium|codium-url-handler|VSCodium>": "󰨞 ",
"class<dev.zed.Zed>": "󰵁",
"class<codeblocks>": "󰅩 ",
"title<.*github.*>": " ",
"class<mousepad>": " ",
"class<libreoffice-writer>": " ",
"class<libreoffice-startcenter>": "󰏆 ",
"class<libreoffice-calc>": " ",
// "title<.*nvim ~.*>": " ",
"title<.*vim.*>": " ",
"title<.*nvim.*>": " ",
"class<neovide>": " ",
"class<emacs>": " ",
"class<CherryStudio>": "🍒",
"title<.*figma.*>": " ",
"title<.*jira.*>": " ",
"class<jetbrains-idea>": " ",
"class<obsidian>": " ",
"class<Zotero>": "󱉟 ",
"class<com.obsproject.Studio>": " ",
"class<polkit-gnome-authentication-agent-1>": "󰒃 ",
"class<nwg-look>": " ",
"class<[Pp]avucontrol|org.pulseaudio.pavucontrol>": "󱡫 ",
"class<steam>": " ",
"class<thunar|nemo|dolphin>": "󰝰 ",
"class<Gparted>":"",
"class<gimp>": " ",
"class<emulator>": "📱 ",
"class<android-studio>": " ",
"class<org.pipewire.Helvum>": "󰓃",
"class<localsend>":"",
"class<PrusaSlicer|UltiMaker-Cura|OrcaSlicer>": "󰹛",
}
}
}

View file

@ -0,0 +1,187 @@
{
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": "{name} {icon}",
"format-icons": {
"locked": "",
"unlocked": ""
}
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"sway/scratchpad": {
"format": "{icon} {count}",
"show-empty": false,
"format-icons": [
"",
""
],
"tooltip": true,
"tooltip-format": "{app}: {title}"
},
"mpd": {
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
"format-disconnected": "Disconnected ",
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
"unknown-tag": "N/A",
"interval": 5,
"consume-icons": {
"on": " "
},
"random-icons": {
"off": "<span color=\"#f53c3c\"></span> ",
"on": " "
},
"repeat-icons": {
"on": " "
},
"single-icons": {
"on": "1 "
},
"state-icons": {
"paused": "",
"playing": ""
},
"tooltip-format": "MPD (connected)",
"tooltip-format-disconnected": "MPD (disconnected)"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"tray": {
// "icon-size": 21,
"spacing": 10
},
"clock": {
// "timezone": "America/New_York",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "{:%Y-%m-%d}"
},
"cpu": {
"format": "{usage}% ",
"tooltip": false
},
"memory": {
"format": "{}% "
},
"temperature": {
// "thermal-zone": 2,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": [
"",
"",
""
]
},
"backlight": {
// "device": "acpi_video1",
"format": "{percent}% {icon}",
"format-icons": [
"🌑",
"🌘",
"🌗",
"🌖",
"🌕"
]
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-full": "{capacity}% {icon}",
"format-charging": "{capacity}% ",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": [
"",
"",
"",
"",
""
]
},
"battery#bat2": {
"bat": "BAT2"
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "",
"balanced": "",
"power-saver": ""
}
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{essid} ({signalStrength}%) ",
"format-ethernet": "{ipaddr}/{cidr} ",
"tooltip-format": "{ifname} via {gwaddr} ",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected ⚠",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{volume}% {icon} {format_source}",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": [
"",
"",
""
]
},
"on-click": "pavucontrol"
},
"custom/media": {
"format": "{icon} {}",
"return-type": "json",
"max-length": 40,
"format-icons": {
"spotify": "",
"default": "🎜"
},
"escape": true,
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
},
"custom/power": {
"format": "⏻ ",
"tooltip": false,
"menu": "on-click",
"menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
"menu-actions": {
"shutdown": "shutdown",
"reboot": "reboot",
"suspend": "systemctl suspend",
"hibernate": "systemctl hibernate"
}
}
}

View file

@ -1,184 +1,354 @@
/** ********** Fonts ********** **/
@define-color rosewater #f5e0dc;
@define-color flamingo #f2cdcd;
@define-color pink #f5c2e7;
@define-color mauve #cba6f7;
@define-color red #f38ba8;
@define-color maroon #eba0ac;
@define-color peach #fab387;
@define-color yellow #f9e2af;
@define-color green #a6e3a1;
@define-color teal #94e2d5;
@define-color sky #89dceb;
@define-color sapphire #74c7ec;
@define-color blue #89b4fa;
@define-color lavender #b4befe;
@define-color text #cdd6f4;
@define-color subtext1 #bac2de;
@define-color subtext0 #a6adc8;
@define-color overlay2 #9399b2;
@define-color overlay1 #7f849c;
@define-color overlay0 #6c7086;
@define-color surface2 #585b70;
@define-color surface1 #45475a;
@define-color surface0 #313244;
@define-color base #1e1e2e;
@define-color mantle #181825;
@define-color crust #11111b;*
* {
font-family: "JetBrains Mono", "Iosevka Nerd Font", archcraft, sans-serif;
font-size: 12px;
font-family: 'Maple Mono NF SC', 'Noto Sans Mono', 'Font Awesome 6 Free', 'Font Awesome 6 Brands', monospace;
font-size: 13px;
}
/** ********** Waybar Window ********** **/
window#waybar {
background-color: #1e1e2e;
color: #1e1e2e;
border-bottom: 2px solid #313244;
/* background-color: rgba(43, 48, 59, 0.5); */
/* border-bottom: 3px solid rgba(100, 114, 125, 0.5); */
background-color: @base;
color: @text;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.hidden {
opacity: 0.5;
opacity: 0.2;
}
/** ********** Backlight ********** **/
#backlight {
background-color: #cba6f7;
/*
window#waybar.empty {
background-color: transparent;
}
window#waybar.solo {
background-color: #FFFFFF;
}
*/
window#waybar.termite {
background-color: #3F3F3F;
}
window#waybar.chromium {
background-color: #000000;
border: none;
}
button {
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
/* Avoid rounded borders under each button name */
border: none;
border-radius: 0;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: inset 0 -3px #ffffff;
}
/* you can set a style on hover for any module like this */
#pulseaudio:hover {
background-color: @lavender;
}
#workspaces button {
padding: 0 5px;
background-color: transparent;
color: #ffffff;
}
#workspaces button:hover {
background: rgba(0, 0, 0, 0.2);
}
#workspaces button.focused {
background-color: #64727D;
box-shadow: inset 0 -3px #ffffff;
}
#workspaces button.urgent {
background-color: #eb4d4b;
}
#mode {
background-color: #64727D;
box-shadow: inset 0 -3px #ffffff;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#tray,
#mode,
#idle_inhibitor,
#scratchpad,
#power-profiles-daemon,
#mpd {
padding: 0 10px;
color: #ffffff;
}
#window,
#workspaces {
margin: 0 4px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#clock {
background-color: #64727D;
}
/** ********** Battery ********** **/
#battery {
background-color: #f9e2af;
background-color: #ffffff;
color: #000000;
}
#battery.charging {
}
#battery.plugged {
#battery.charging, #battery.plugged {
color: #ffffff;
background-color: #26A65B;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
/* Using steps() instead of linear as a timing function to limit cpu usage */
#battery.critical:not(.charging) {
background-color: #f38ba8;
color: #f38ba8;
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
/** ********** Clock ********** **/
#clock {
background-color: #a6e3a1;
#power-profiles-daemon {
padding-right: 15px;
}
#power-profiles-daemon.performance {
background-color: #f53c3c;
color: #ffffff;
}
#power-profiles-daemon.balanced {
background-color: #2980b9;
color: #ffffff;
}
#power-profiles-daemon.power-saver {
background-color: #2ecc71;
color: #000000;
}
label:focus {
background-color: #000000;
}
/** ********** CPU ********** **/
#cpu {
background-color: #89dceb;
background-color: @green;
color: #000000;
}
/** ********** Memory ********** **/
#memory {
background-color: #eba0ac;
background-color: @mauve;
}
/** ********** Disk ********** **/
#disk {
background-color: #b4befe;
background-color: #964B00;
}
/** ********** Tray ********** **/
#tray {
background-color: #cdd6f4;
#backlight {
background-color: #90b1b1;
}
#network {
background-color: @blue;
}
#network.disconnected {
background-color: #f53c3c;
}
#pulseaudio {
background-color: @yellow;
color: #000000;
}
#pulseaudio.muted {
background-color: #90b1b1;
color: #2a5c45;
}
#wireplumber {
background-color: #fff0f5;
color: #000000;
}
#wireplumber.muted {
background-color: #f53c3c;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
}
#temperature {
background-color: @peach;
}
#temperature.critical {
background-color: #eb4d4b;
}
#tray {
background-color: @blue;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
}
#tray > .active {
background-color: #eb4d4b;
}
#idle_inhibitor {
background-color: #2d3436;
}
#idle_inhibitor.activated {
background-color: #ecf0f1;
color: #2d3436;
}
/** ********** MPD ********** **/
#mpd {
background-color: #94e2d5;
background-color: #66cc99;
color: #2a5c45;
}
#mpd.disconnected {
background-color: #f38ba8;
background-color: #f53c3c;
}
#mpd.stopped {
background-color: #f5c2e7;
}
#mpd.playing {
background-color: #74c7ec;
background-color: #90b1b1;
}
#mpd.paused {
background-color: #51a37a;
}
/** ********** Pulseaudio ********** **/
#pulseaudio {
background-color: #fab387;
#language {
background: #00b093;
color: #740864;
padding: 0 5px;
margin: 0 5px;
min-width: 16px;
}
#pulseaudio.bluetooth {
background-color: #f5c2e7;
}
#pulseaudio.muted {
background-color: #313244;
color: #cdd6f4;
#keyboard-state {
background: #97e1ad;
color: #000000;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
/** ********** Network ********** **/
#network {
background-color: #89b4fa;
#keyboard-state > label {
padding: 0 5px;
}
#network.disconnected,#network.disabled {
background-color: #313244;
color: #cdd6f4;
}
#network.linked {
}
#network.ethernet {
}
#network.wifi {
#keyboard-state > label.locked {
background: rgba(0, 0, 0, 0.2);
}
/** ********** Custom ********** **/
#custom-menu, #custom-power, #custom-weather, #custom-updater {
border-radius: 4px;
margin: 6px 0px;
padding: 2px 8px;
#scratchpad {
background: rgba(0, 0, 0, 0.2);
}
#custom-menu {
background-color: #f5c2e7;
margin-left: 6px;
padding: 2px 6px;
font-size: 16px;
#scratchpad.empty {
background-color: transparent;
}
#custom-power {
background-color: #f38ba8;
margin-right: 6px;
padding: 2px 8px;
font-size: 16px;
#privacy {
padding: 0;
}
#custom-updater {
background-color: #e6ed7b;
margin-right: 6px;
padding: 2px 8px;
font-size: 12px;
#privacy-item {
padding: 0 5px;
color: white;
}
#custom-weather {
background-color: #cba6f7;
margin-right: 6px;
padding: 2px 8px;
font-size: 12px;
#privacy-item.screenshare {
background-color: #cf5700;
}
/** Common style **/
#backlight,
#battery,
#clock,
#cpu,
#disk,
#mode,
#memory,
#mpd,
#tray,
#pulseaudio,
#network {
border-radius: 4px;
margin: 6px 0px;
padding: 2px 8px;
#privacy-item.audio-in {
background-color: #1ca000;
}
#privacy-item.audio-out {
background-color: #0069d4;
}