Compare commits
No commits in common. "9923f42b6a1a27b129aa54ada8b918f97f2e3b11" and "e18d6cba194549bf74abf3d27e0aa16821db2e27" have entirely different histories.
9923f42b6a
...
e18d6cba19
107 changed files with 4691 additions and 6389 deletions
8
.config/QtProject.conf
Normal file
8
.config/QtProject.conf
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
[FileDialog]
|
||||||
|
history=file:///home/unconfer/dwnlds, file:///home/unconfer/adrenaline/chem, file:///home/unconfer/vids
|
||||||
|
lastVisited=file:///home/unconfer/vids
|
||||||
|
qtVersion=6.9.2
|
||||||
|
shortcuts=file:, file:///home/unconfer, file:///home/unconfer/Desktop, file:///home/unconfer/Downloads, file:///home/unconfer/Music, file:///home/unconfer/Documents/lmms
|
||||||
|
sidebarWidth=111
|
||||||
|
treeViewHeader=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1\xb5\0\0\0\x4\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x4\0\0\0\xe1\0\0\0\x1\0\0\0\0\0\0\0\x39\0\0\0\x1\0\0\0\0\0\0\0\x39\0\0\0\x1\0\0\0\0\0\0\0\x62\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1)
|
||||||
|
viewMode=Detail
|
||||||
1190
.config/apps-list.md
Normal file
1190
.config/apps-list.md
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,18 +1,18 @@
|
||||||
#? Config file for btop v.1.4.6
|
#? Config file for btop v. 1.4.5
|
||||||
|
|
||||||
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
||||||
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
||||||
color_theme = "TTY"
|
color_theme = "TTY"
|
||||||
|
|
||||||
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||||
theme_background = true
|
theme_background = False
|
||||||
|
|
||||||
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
||||||
truecolor = true
|
truecolor = True
|
||||||
|
|
||||||
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
||||||
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
||||||
force_tty = false
|
force_tty = False
|
||||||
|
|
||||||
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
||||||
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
||||||
|
|
@ -22,13 +22,10 @@ presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:defaul
|
||||||
|
|
||||||
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
||||||
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
||||||
vim_keys = false
|
vim_keys = False
|
||||||
|
|
||||||
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||||
rounded_corners = false
|
rounded_corners = True
|
||||||
|
|
||||||
#* Use terminal synchronized output sequences to reduce flickering on supported terminals.
|
|
||||||
terminal_sync = true
|
|
||||||
|
|
||||||
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
||||||
#* "braille" offers the highest resolution but might not be included in all fonts.
|
#* "braille" offers the highest resolution but might not be included in all fonts.
|
||||||
|
|
@ -63,40 +60,37 @@ update_ms = 2000
|
||||||
proc_sorting = "memory"
|
proc_sorting = "memory"
|
||||||
|
|
||||||
#* Reverse sorting order, True or False.
|
#* Reverse sorting order, True or False.
|
||||||
proc_reversed = false
|
proc_reversed = False
|
||||||
|
|
||||||
#* Show processes as a tree.
|
#* Show processes as a tree.
|
||||||
proc_tree = true
|
proc_tree = True
|
||||||
|
|
||||||
#* Use the cpu graph colors in the process list.
|
#* Use the cpu graph colors in the process list.
|
||||||
proc_colors = true
|
proc_colors = True
|
||||||
|
|
||||||
#* Use a darkening gradient in the process list.
|
#* Use a darkening gradient in the process list.
|
||||||
proc_gradient = true
|
proc_gradient = True
|
||||||
|
|
||||||
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
||||||
proc_per_core = false
|
proc_per_core = True
|
||||||
|
|
||||||
#* Show process memory as bytes instead of percent.
|
#* Show process memory as bytes instead of percent.
|
||||||
proc_mem_bytes = true
|
proc_mem_bytes = True
|
||||||
|
|
||||||
#* Show cpu graph for each process.
|
#* Show cpu graph for each process.
|
||||||
proc_cpu_graphs = true
|
proc_cpu_graphs = True
|
||||||
|
|
||||||
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
||||||
proc_info_smaps = false
|
proc_info_smaps = False
|
||||||
|
|
||||||
#* Show proc box on left side of screen instead of right.
|
#* Show proc box on left side of screen instead of right.
|
||||||
proc_left = false
|
proc_left = False
|
||||||
|
|
||||||
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
||||||
proc_filter_kernel = false
|
proc_filter_kernel = False
|
||||||
|
|
||||||
#* In tree-view, always accumulate child process resources in the parent process.
|
#* In tree-view, always accumulate child process resources in the parent process.
|
||||||
proc_aggregate = false
|
proc_aggregate = False
|
||||||
|
|
||||||
#* Should cpu and memory usage display be preserved for dead processes when paused.
|
|
||||||
keep_dead_proc_usage = false
|
|
||||||
|
|
||||||
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
||||||
#* Select from a list of detected attributes from the options menu.
|
#* Select from a list of detected attributes from the options menu.
|
||||||
|
|
@ -107,31 +101,31 @@ cpu_graph_upper = "Auto"
|
||||||
cpu_graph_lower = "Auto"
|
cpu_graph_lower = "Auto"
|
||||||
|
|
||||||
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
|
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
|
||||||
show_gpu_info = "On"
|
show_gpu_info = "Auto"
|
||||||
|
|
||||||
#* Toggles if the lower CPU graph should be inverted.
|
#* Toggles if the lower CPU graph should be inverted.
|
||||||
cpu_invert_lower = true
|
cpu_invert_lower = True
|
||||||
|
|
||||||
#* Set to True to completely disable the lower CPU graph.
|
#* Set to True to completely disable the lower CPU graph.
|
||||||
cpu_single_graph = false
|
cpu_single_graph = False
|
||||||
|
|
||||||
#* Show cpu box at bottom of screen instead of top.
|
#* Show cpu box at bottom of screen instead of top.
|
||||||
cpu_bottom = false
|
cpu_bottom = False
|
||||||
|
|
||||||
#* Shows the system uptime in the CPU box.
|
#* Shows the system uptime in the CPU box.
|
||||||
show_uptime = true
|
show_uptime = True
|
||||||
|
|
||||||
#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
|
#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
|
||||||
show_cpu_watts = true
|
show_cpu_watts = True
|
||||||
|
|
||||||
#* Show cpu temperature.
|
#* Show cpu temperature.
|
||||||
check_temp = true
|
check_temp = True
|
||||||
|
|
||||||
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
||||||
cpu_sensor = "Auto"
|
cpu_sensor = "Auto"
|
||||||
|
|
||||||
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
||||||
show_coretemp = true
|
show_coretemp = True
|
||||||
|
|
||||||
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
||||||
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
||||||
|
|
@ -143,20 +137,17 @@ cpu_core_map = ""
|
||||||
temp_scale = "celsius"
|
temp_scale = "celsius"
|
||||||
|
|
||||||
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
||||||
base_10_sizes = true
|
base_10_sizes = False
|
||||||
|
|
||||||
#* Show CPU frequency.
|
#* Show CPU frequency.
|
||||||
show_cpu_freq = true
|
show_cpu_freq = True
|
||||||
|
|
||||||
#* How to calculate CPU frequency, available values: "first", "range", "lowest", "highest" and "average".
|
|
||||||
freq_mode = "first"
|
|
||||||
|
|
||||||
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
||||||
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
||||||
clock_format = "%X"
|
clock_format = "%X"
|
||||||
|
|
||||||
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
||||||
background_update = true
|
background_update = True
|
||||||
|
|
||||||
#* Custom cpu model name, empty string to disable.
|
#* Custom cpu model name, empty string to disable.
|
||||||
custom_cpu_name = ""
|
custom_cpu_name = ""
|
||||||
|
|
@ -166,43 +157,43 @@ custom_cpu_name = ""
|
||||||
disks_filter = ""
|
disks_filter = ""
|
||||||
|
|
||||||
#* Show graphs instead of meters for memory values.
|
#* Show graphs instead of meters for memory values.
|
||||||
mem_graphs = true
|
mem_graphs = True
|
||||||
|
|
||||||
#* Show mem box below net box instead of above.
|
#* Show mem box below net box instead of above.
|
||||||
mem_below_net = false
|
mem_below_net = False
|
||||||
|
|
||||||
#* Count ZFS ARC in cached and available memory.
|
#* Count ZFS ARC in cached and available memory.
|
||||||
zfs_arc_cached = true
|
zfs_arc_cached = True
|
||||||
|
|
||||||
#* If swap memory should be shown in memory box.
|
#* If swap memory should be shown in memory box.
|
||||||
show_swap = true
|
show_swap = True
|
||||||
|
|
||||||
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||||
swap_disk = true
|
swap_disk = True
|
||||||
|
|
||||||
#* If mem box should be split to also show disks info.
|
#* If mem box should be split to also show disks info.
|
||||||
show_disks = true
|
show_disks = True
|
||||||
|
|
||||||
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
||||||
only_physical = true
|
only_physical = True
|
||||||
|
|
||||||
#* Read disks list from /etc/fstab. This also disables only_physical.
|
#* Read disks list from /etc/fstab. This also disables only_physical.
|
||||||
use_fstab = true
|
use_fstab = True
|
||||||
|
|
||||||
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
||||||
zfs_hide_datasets = false
|
zfs_hide_datasets = False
|
||||||
|
|
||||||
#* Set to true to show available disk space for privileged users.
|
#* Set to true to show available disk space for privileged users.
|
||||||
disk_free_priv = false
|
disk_free_priv = False
|
||||||
|
|
||||||
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
||||||
show_io_stat = true
|
show_io_stat = True
|
||||||
|
|
||||||
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
||||||
io_mode = false
|
io_mode = False
|
||||||
|
|
||||||
#* Set to True to show combined read/write io graphs in io mode.
|
#* Set to True to show combined read/write io graphs in io mode.
|
||||||
io_graph_combined = false
|
io_graph_combined = False
|
||||||
|
|
||||||
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
||||||
#* Example: "/mnt/media:100 /:20 /boot:1".
|
#* Example: "/mnt/media:100 /:20 /boot:1".
|
||||||
|
|
@ -214,10 +205,10 @@ net_download = 100
|
||||||
net_upload = 100
|
net_upload = 100
|
||||||
|
|
||||||
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
||||||
net_auto = true
|
net_auto = True
|
||||||
|
|
||||||
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
||||||
net_sync = true
|
net_sync = False
|
||||||
|
|
||||||
#* Starts with the Network Interface specified here.
|
#* Starts with the Network Interface specified here.
|
||||||
net_iface = ""
|
net_iface = ""
|
||||||
|
|
@ -226,32 +217,26 @@ net_iface = ""
|
||||||
base_10_bitrate = "Auto"
|
base_10_bitrate = "Auto"
|
||||||
|
|
||||||
#* Show battery stats in top right if battery is present.
|
#* Show battery stats in top right if battery is present.
|
||||||
show_battery = true
|
show_battery = True
|
||||||
|
|
||||||
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
||||||
selected_battery = "Auto"
|
selected_battery = "Auto"
|
||||||
|
|
||||||
#* Show power stats of battery next to charge indicator.
|
#* Show power stats of battery next to charge indicator.
|
||||||
show_battery_watts = true
|
show_battery_watts = True
|
||||||
|
|
||||||
#* Set loglevel for "~/.local/state/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
||||||
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
||||||
log_level = "DEBUG"
|
log_level = "WARNING"
|
||||||
|
|
||||||
#* Automatically save current settings to config file on exit.
|
|
||||||
save_config_on_exit = true
|
|
||||||
|
|
||||||
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
||||||
nvml_measure_pcie_speeds = true
|
nvml_measure_pcie_speeds = True
|
||||||
|
|
||||||
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
|
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
|
||||||
rsmi_measure_pcie_speeds = true
|
rsmi_measure_pcie_speeds = True
|
||||||
|
|
||||||
#* Horizontally mirror the GPU graph.
|
#* Horizontally mirror the GPU graph.
|
||||||
gpu_mirror_graph = true
|
gpu_mirror_graph = True
|
||||||
|
|
||||||
#* Set which GPU vendors to show. Available values are "nvidia amd intel"
|
|
||||||
shown_gpus = "nvidia amd intel"
|
|
||||||
|
|
||||||
#* Custom gpu0 model name, empty string to disable.
|
#* Custom gpu0 model name, empty string to disable.
|
||||||
custom_gpu_name0 = ""
|
custom_gpu_name0 = ""
|
||||||
35
.config/clipse/config.json
Normal file
35
.config/clipse/config.json
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
{
|
||||||
|
"allowDuplicates": false,
|
||||||
|
"historyFile": "clipboard_history.json",
|
||||||
|
"maxHistory": 10000,
|
||||||
|
"logFile": "clipse.log",
|
||||||
|
"themeFile": "custom_theme.json",
|
||||||
|
"tempDir": "tmp_files",
|
||||||
|
"keyBindings": {
|
||||||
|
"choose": "enter",
|
||||||
|
"clearSelected": "S",
|
||||||
|
"down": "down",
|
||||||
|
"end": "end",
|
||||||
|
"filter": "/",
|
||||||
|
"home": "home",
|
||||||
|
"more": "?",
|
||||||
|
"nextPage": "right",
|
||||||
|
"prevPage": "left",
|
||||||
|
"preview": " ",
|
||||||
|
"quit": "q",
|
||||||
|
"remove": "x",
|
||||||
|
"selectDown": "ctrl+down",
|
||||||
|
"selectSingle": "s",
|
||||||
|
"selectUp": "ctrl+up",
|
||||||
|
"togglePin": "p",
|
||||||
|
"togglePinned": "tab",
|
||||||
|
"up": "up",
|
||||||
|
"yankFilter": "ctrl+s"
|
||||||
|
},
|
||||||
|
"imageDisplay": {
|
||||||
|
"type": "kitty",
|
||||||
|
"scaleX": 9,
|
||||||
|
"scaleY": 9,
|
||||||
|
"heightCut": 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"UseCustom": true,
|
"useCustomTheme": true,
|
||||||
"TitleFore": "#07090B",
|
"TitleFore": "#07090B",
|
||||||
"TitleBack": "#A1F7C6",
|
"TitleBack": "#A1F7C6",
|
||||||
"TitleInfo": "#25C39F",
|
"TitleInfo": "#25C39F",
|
||||||
|
|
@ -4,7 +4,7 @@ input {
|
||||||
layout "us,ru"
|
layout "us,ru"
|
||||||
options "grp:caps_toggle"
|
options "grp:caps_toggle"
|
||||||
}
|
}
|
||||||
repeat-delay 225
|
repeat-delay 250
|
||||||
repeat-rate 25
|
repeat-rate 25
|
||||||
// track-layout "global"
|
// track-layout "global"
|
||||||
numlock
|
numlock
|
||||||
|
|
@ -33,7 +33,7 @@ input {
|
||||||
scroll-method "on-button-down"
|
scroll-method "on-button-down"
|
||||||
}
|
}
|
||||||
warp-mouse-to-focus
|
warp-mouse-to-focus
|
||||||
focus-follows-mouse max-scroll-amount="0%"
|
focus-follows-mouse max-scroll-amount="50%"
|
||||||
|
|
||||||
trackpoint {
|
trackpoint {
|
||||||
// off
|
// off
|
||||||
|
|
@ -47,7 +47,7 @@ input {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
output "DP-1" {
|
/-output "DP-1" {
|
||||||
// off
|
// off
|
||||||
mode "1920x1080@165.000"
|
mode "1920x1080@165.000"
|
||||||
scale 1.0
|
scale 1.0
|
||||||
|
|
@ -58,14 +58,13 @@ output "DP-1" {
|
||||||
}
|
}
|
||||||
|
|
||||||
layout {
|
layout {
|
||||||
gaps 10
|
gaps 5
|
||||||
background-color "transparent"
|
|
||||||
center-focused-column "never"
|
center-focused-column "never"
|
||||||
default-column-display "normal"
|
default-column-display "normal"
|
||||||
preset-column-widths {
|
preset-column-widths {
|
||||||
proportion 0.33333
|
|
||||||
proportion 0.5
|
proportion 0.5
|
||||||
proportion 0.66666
|
proportion 1.0
|
||||||
}
|
}
|
||||||
|
|
||||||
preset-window-heights {
|
preset-window-heights {
|
||||||
|
|
@ -73,7 +72,7 @@ layout {
|
||||||
proportion 1.0
|
proportion 1.0
|
||||||
}
|
}
|
||||||
|
|
||||||
default-column-width { proportion 1.0; }
|
default-column-width { proportion 0.5; }
|
||||||
|
|
||||||
// By default focus ring and border are rendered as a solid background rectangle
|
// By default focus ring and border are rendered as a solid background rectangle
|
||||||
// behind windows. That is, they will show up through semitransparent windows.
|
// behind windows. That is, they will show up through semitransparent windows.
|
||||||
|
|
@ -88,17 +87,17 @@ layout {
|
||||||
|
|
||||||
// You can change how the focus ring looks.
|
// You can change how the focus ring looks.
|
||||||
focus-ring {
|
focus-ring {
|
||||||
off
|
// off
|
||||||
|
|
||||||
width 2
|
width 2
|
||||||
// - CSS named colors: "red"
|
// - CSS named colors: "red"
|
||||||
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
|
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
|
||||||
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
|
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
|
||||||
// active-color "#EEF7FD"
|
// active-color "#EEF7FD"
|
||||||
//active-color "#EEF7FD"
|
active-color "#C1D6D6"
|
||||||
// foreground #C1D6D6
|
// foreground #C1D6D6
|
||||||
//background #07090B
|
//background #07090B
|
||||||
// inactive-color "#5C6871"
|
inactive-color "#000000"
|
||||||
// Changing the color space is also supported, check the wiki for more info.
|
// Changing the color space is also supported, check the wiki for more info.
|
||||||
//
|
//
|
||||||
// active-gradient from="#80c8ff" to="#c7ff7f" angle=45
|
// active-gradient from="#80c8ff" to="#c7ff7f" angle=45
|
||||||
|
|
@ -112,14 +111,11 @@ layout {
|
||||||
|
|
||||||
// You can also add a border. It's similar to the focus ring, but always visible.
|
// You can also add a border. It's similar to the focus ring, but always visible.
|
||||||
border {
|
border {
|
||||||
//off
|
off
|
||||||
width 4
|
urgent-color "#9b0000"
|
||||||
active-color "#25c39f"
|
|
||||||
inactive-color "#eef7fd"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
shadow {
|
shadow {
|
||||||
off
|
|
||||||
color "#0007"
|
color "#0007"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -129,29 +125,27 @@ layout {
|
||||||
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
|
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
|
||||||
// layer-shell panels and regular gaps.
|
// layer-shell panels and regular gaps.
|
||||||
struts {
|
struts {
|
||||||
left 0
|
// left 64
|
||||||
right 0
|
// right 64
|
||||||
top 0
|
// top 64
|
||||||
bottom 0
|
// bottom 64
|
||||||
|
}
|
||||||
|
tab-indicator{
|
||||||
|
// off
|
||||||
}
|
}
|
||||||
tab-indicator {
|
|
||||||
//off
|
|
||||||
active-color "#f6db8b"
|
|
||||||
inactive-color "#8fd2f7"
|
|
||||||
urgent-color "#eef7fd"
|
|
||||||
width 5
|
|
||||||
}
|
|
||||||
insert-hint {
|
insert-hint {
|
||||||
//off
|
off
|
||||||
color "#EEF7FD"
|
color "#ffc87f80"
|
||||||
|
gradient from="#ffbb6680" to="#ffc88080" angle=45 relative-to="workspace-view"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
background-color "#07090B"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
overview {
|
overview {
|
||||||
zoom 0.4
|
zoom 0.45
|
||||||
backdrop-color "#07090b"
|
backdrop-color "#07090b"
|
||||||
|
|
||||||
workspace-shadow {
|
workspace-shadow {
|
||||||
|
|
@ -162,22 +156,16 @@ clipboard {
|
||||||
disable-primary
|
disable-primary
|
||||||
}
|
}
|
||||||
cursor {
|
cursor {
|
||||||
xcursor-theme "BreezeX-Black"
|
//xcursor-theme "Dot-Dark"
|
||||||
xcursor-size 26
|
xcursor-size 12
|
||||||
hide-when-typing
|
hide-when-typing
|
||||||
hide-after-inactive-ms 1000
|
hide-after-inactive-ms 1000
|
||||||
}
|
}
|
||||||
|
|
||||||
spawn-at-startup "niri-screen-time" "-daemon"
|
spawn-at-startup "waybar"
|
||||||
|
|
||||||
spawn-at-startup "mpDris2"
|
spawn-at-startup "fnott"
|
||||||
spawn-at-startup "swayosd-server"
|
|
||||||
spawn-at-startup "walker" "--gapplication-service"
|
|
||||||
|
|
||||||
spawn-at-startup "hyprwave"
|
|
||||||
spawn-at-startup "swaync"
|
|
||||||
spawn-at-startup "clipse" "-listen"
|
spawn-at-startup "clipse" "-listen"
|
||||||
spawn-at-startup "swaybg" "-i" "imgs/bafkreiax76e2p3xqoikrkbppjl4mipnaamqrgxkcfgwqtrsa3glksq644m"
|
|
||||||
|
|
||||||
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
|
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
|
||||||
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
|
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
|
||||||
|
|
@ -197,9 +185,9 @@ prefer-no-csd
|
||||||
// You can change the path where screenshots are saved.
|
// You can change the path where screenshots are saved.
|
||||||
// A ~ at the front will be expanded to the home directory.
|
// A ~ at the front will be expanded to the home directory.
|
||||||
// The path is formatted with strftime(3) to give you the screenshot date and time.
|
// The path is formatted with strftime(3) to give you the screenshot date and time.
|
||||||
screenshot-path "~/imgs/screenshots/screenshot-from-%Y-%m-%d %H-%M-%S.png"
|
screenshot-path "~/imgs/screenshots/screenshot from %Y-%m-%d %H-%M-%S.png"
|
||||||
//spawn-at-startup "throne"
|
//spawn-at-startup "throne"
|
||||||
//spawn-at-startup "kitty" "sudo" "sing-box" "run" "-c" "/home/unconfer/.sing-box/sing-box-03.json"
|
spawn-at-startup "kitty" "sudo" "sing-box" "run" "-c" "/home/unconfer/.sing-box/sing-box-03.json"
|
||||||
|
|
||||||
// You can also set this to null to disable saving screenshots to disk.
|
// You can also set this to null to disable saving screenshots to disk.
|
||||||
// screenshot-path null
|
// screenshot-path null
|
||||||
|
|
@ -213,59 +201,6 @@ animations {
|
||||||
|
|
||||||
// Slow down all animations by this factor. Values below 1 speed them up instead.
|
// Slow down all animations by this factor. Values below 1 speed them up instead.
|
||||||
slowdown 1.0
|
slowdown 1.0
|
||||||
workspace-switch {
|
|
||||||
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
|
|
||||||
}
|
|
||||||
window-open {
|
|
||||||
// duration-ms 200
|
|
||||||
// curve "ease-out-quad"
|
|
||||||
//
|
|
||||||
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
window-close {
|
|
||||||
//duration-ms 200
|
|
||||||
|
|
||||||
//curve "ease-out-quad"
|
|
||||||
//
|
|
||||||
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
|
|
||||||
}
|
|
||||||
horizontal-view-movement {
|
|
||||||
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
|
|
||||||
}
|
|
||||||
|
|
||||||
window-movement {
|
|
||||||
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
|
|
||||||
}
|
|
||||||
|
|
||||||
window-resize {
|
|
||||||
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
|
|
||||||
}
|
|
||||||
|
|
||||||
config-notification-open-close {
|
|
||||||
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
|
|
||||||
}
|
|
||||||
|
|
||||||
exit-confirmation-open-close {
|
|
||||||
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
|
|
||||||
}
|
|
||||||
|
|
||||||
screenshot-ui-open {
|
|
||||||
// duration-ms 200
|
|
||||||
//curve "ease-out-quad"
|
|
||||||
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
|
|
||||||
}
|
|
||||||
|
|
||||||
overview-open-close {
|
|
||||||
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
|
|
||||||
}
|
|
||||||
|
|
||||||
recent-windows-close {
|
|
||||||
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Window rules let you adjust behavior for individual windows.
|
// Window rules let you adjust behavior for individual windows.
|
||||||
|
|
@ -288,30 +223,17 @@ window-rule {
|
||||||
match app-id="clipse"
|
match app-id="clipse"
|
||||||
// match is-floating=true
|
// match is-floating=true
|
||||||
open-maximized true
|
open-maximized true
|
||||||
open-floating true
|
// open-floating true
|
||||||
tiled-state true
|
tiled-state false
|
||||||
}
|
}
|
||||||
window-rule {
|
window-rule {
|
||||||
// open-maximized false
|
open-maximized false
|
||||||
geometry-corner-radius 10
|
geometry-corner-radius 5
|
||||||
tiled-state true
|
tiled-state true
|
||||||
clip-to-geometry true
|
clip-to-geometry true
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
window-rule {
|
|
||||||
match app-id="one.alynx.showmethekey"
|
|
||||||
open-floating true
|
|
||||||
open-focused false
|
|
||||||
default-floating-position x=990 y=28 relative-to="top-left"
|
|
||||||
min-width 900
|
|
||||||
min-height 170
|
|
||||||
|
|
||||||
border {
|
|
||||||
off
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Open the Firefox picture-in-picture player as floating by default.
|
// Open the Firefox picture-in-picture player as floating by default.
|
||||||
window-rule {
|
window-rule {
|
||||||
// This app-id regular expression will work for both:
|
// This app-id regular expression will work for both:
|
||||||
|
|
@ -332,56 +254,20 @@ window-rule {
|
||||||
// Use this instead if you want them visible on third-party screenshot tools.
|
// Use this instead if you want them visible on third-party screenshot tools.
|
||||||
// block-out-from "screencast"
|
// block-out-from "screencast"
|
||||||
}
|
}
|
||||||
window-rule {
|
|
||||||
match title="Media viewer"
|
|
||||||
default-column-width {
|
|
||||||
proportion 0.5
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
window-rule {
|
|
||||||
match title="sudo"
|
|
||||||
|
|
||||||
border {
|
|
||||||
active-color "#ff0100"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Example: enable rounded corners for all windows.
|
// Example: enable rounded corners for all windows.
|
||||||
// (This example rule is commented out with a "/-" in front.)
|
// (This example rule is commented out with a "/-" in front.)
|
||||||
window-rule {
|
/-window-rule {
|
||||||
geometry-corner-radius 10
|
geometry-corner-radius 12
|
||||||
clip-to-geometry true
|
clip-to-geometry true
|
||||||
}
|
}
|
||||||
layer-rule {
|
layer-rule {
|
||||||
match namespace="waybar"
|
//clip-to-geometry true
|
||||||
match at-startup=true
|
match namespace="fnott"
|
||||||
|
geometry-corner-radius 5
|
||||||
|
|
||||||
// Properties that apply continuously.
|
|
||||||
opacity 1.0
|
|
||||||
// block-out-from "screen-capture"
|
|
||||||
|
|
||||||
shadow {
|
|
||||||
|
|
||||||
off
|
|
||||||
softness 40
|
|
||||||
spread 5
|
|
||||||
offset x=0 y=5
|
|
||||||
draw-behind-window true
|
|
||||||
// inactive-color "#00000064"
|
|
||||||
}
|
|
||||||
|
|
||||||
geometry-corner-radius 20
|
|
||||||
place-within-backdrop true
|
|
||||||
}
|
}
|
||||||
// Put swaybg inside the overview backdrop.
|
|
||||||
layer-rule {
|
|
||||||
match namespace="^wallpaper$"
|
|
||||||
|
|
||||||
place-within-backdrop true
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
environment{
|
environment{
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -392,30 +278,6 @@ xwayland-satellite {
|
||||||
}
|
}
|
||||||
|
|
||||||
binds {
|
binds {
|
||||||
|
|
||||||
// MOD+SHIFT+M { spawn "hyprwave-toggle visibility"; }
|
|
||||||
// MOD+M { spawn-sh "hyprwave-toggle expand"; }
|
|
||||||
|
|
||||||
//Mod+M { spawn "hyprwave-toggle" "visibility"; }
|
|
||||||
// Media Controls
|
|
||||||
Mod+P { spawn-sh "playerctl -p mpd play-pause"; }
|
|
||||||
Mod+Period { spawn-sh "playerctl -p mpd next"; }
|
|
||||||
Mod+Comma { spawn-sh "playerctl -p mpd previous"; }
|
|
||||||
|
|
||||||
// Theme Switching (v1.0)
|
|
||||||
// MOD+SHIFT+T { spawn-sh "hyprwave-toggle set-theme zzz"; }
|
|
||||||
|
|
||||||
// Position Switching (v1.0)
|
|
||||||
// MOD+SHIFT+LEFT { spawn-sh "hyprwave-toggle set-position left"; }
|
|
||||||
//MOD+SHIFT+RIGHT { spawn-sh "hyprwave-toggle set-position right"; }
|
|
||||||
//MOD+SHIFT+UP { spawn-sh "hyprwave-toggle set-position top"; }
|
|
||||||
//MOD+SHIFT+DOWN { spawn-sh "hyprwave-toggle set-position bottom"; }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//ВНИМАНИЕ СЕКЦИЯ НЕЙРОСЛОПА
|
|
||||||
|
|
||||||
// Keys consist of modifiers separated by + signs, followed by an XKB key name
|
// Keys consist of modifiers separated by + signs, followed by an XKB key name
|
||||||
// in the end. To find an XKB name for a particular key, you may use a program
|
// in the end. To find an XKB name for a particular key, you may use a program
|
||||||
// like wev.
|
// like wev.
|
||||||
|
|
@ -429,50 +291,29 @@ binds {
|
||||||
// Mod-Shift-/, which is usually the same as Mod-?,
|
// Mod-Shift-/, which is usually the same as Mod-?,
|
||||||
// shows a list of important hotkeys.
|
// shows a list of important hotkeys.
|
||||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||||
Super+F{ maximize-column;}
|
Super+F{ toggle-window-floating;}
|
||||||
Mod+M { spawn "hyprwave-toggle" "visibility"; }
|
|
||||||
|
|
||||||
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
||||||
Mod+Q { spawn "kitty"; }
|
Mod+Q { spawn "kitty"; }
|
||||||
//Mod+D { spawn "fuzzel"; }
|
Mod+D { spawn "fuzzel"; }
|
||||||
|
|
||||||
Mod+D { spawn "walker"; }
|
|
||||||
Mod+Grave repeat=false { toggle-overview; }
|
|
||||||
Mod+Shift+Grave repeat=false { spawn "kitty" "--class" "-e" "btop" ; }
|
|
||||||
Super+W { spawn "kitty" "--class" "clipse" "-e" "clipse"; }
|
Super+W { spawn "kitty" "--class" "clipse" "-e" "clipse"; }
|
||||||
Mod+Escape { spawn "hyprlock"; }
|
Mod+Alt+L { spawn "gtklock"; }
|
||||||
Mod+Shift+Return { spawn "shutdown" "now"; }
|
Mod+Shift+P{spawn "shutdown" "now";}
|
||||||
Mod+Ctrl+S { screenshot-window write-to-disk=false; }
|
Mod+Shift+Alt+P{spawn "shutdown" "-" "c";}
|
||||||
Mod+T repeat=false { spawn "swaync-client" "--toggle-panel";}
|
Alt+C{spawn "hyprpicker" "-a";}
|
||||||
|
|
||||||
|
|
||||||
Mod+Ctrl+Return { spawn "reboot"; }
|
|
||||||
Mod+Shift+P{spawn "shutdown" "-c";}
|
|
||||||
Alt+I repeat=false {spawn "hyprpicker" "-a";}
|
|
||||||
// Mod+Alt+C {;}
|
|
||||||
|
|
||||||
// Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc.
|
// Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc.
|
||||||
// Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`.
|
// Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`.
|
||||||
// For example, this is a standard bind to toggle the screen reader (orca).
|
// For example, this is a standard bind to toggle the screen reader (orca).
|
||||||
// Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
|
Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
|
||||||
|
|
||||||
// Example volume keys mappings for PipeWire & WirePlumber.
|
// Example volume keys mappings for PipeWire & WirePlumber.
|
||||||
//
|
|
||||||
// The allow-when-locked=true property makes them work even when the session is locked.
|
// The allow-when-locked=true property makes them work even when the session is locked.
|
||||||
// Using spawn-sh allows to pass multiple arguments together with the command.
|
// Using spawn-sh allows to pass multiple arguments together with the command.
|
||||||
// XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; }
|
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; }
|
||||||
// XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
|
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
|
||||||
// XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
||||||
//XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
||||||
|
|
||||||
// XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
|
||||||
|
|
||||||
XF86AudioRaiseVolume { spawn "swayosd-client" "--output-volume" "5" "--max-volume" "200";}
|
|
||||||
|
|
||||||
XF86AudioMute allow-when-locked=true { spawn "swayosd-client" "--output-volume" "mute-toggle"; }
|
|
||||||
|
|
||||||
XF86AudioLowerVolume { spawn "swayosd-client" "--output-volume" "-5" "--max-volume" "200";}
|
|
||||||
Mod+Y allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
|
||||||
|
|
||||||
// Example brightness key mappings for brightnessctl.
|
// Example brightness key mappings for brightnessctl.
|
||||||
// You can use regular spawn with multiple arguments too (to avoid going through "sh"),
|
// You can use regular spawn with multiple arguments too (to avoid going through "sh"),
|
||||||
|
|
@ -485,9 +326,7 @@ binds {
|
||||||
// or do a four-finger swipe up on a touchpad.
|
// or do a four-finger swipe up on a touchpad.
|
||||||
Mod+O repeat=false { toggle-overview; }
|
Mod+O repeat=false { toggle-overview; }
|
||||||
|
|
||||||
//Mod+Escape repeat=false { toggle-overview; }
|
Mod+C repeat=false { close-window; }
|
||||||
|
|
||||||
Mod+Shift+C repeat=false { close-window; }
|
|
||||||
|
|
||||||
Mod+Left { focus-column-left; }
|
Mod+Left { focus-column-left; }
|
||||||
Mod+Down { focus-window-down; }
|
Mod+Down { focus-window-down; }
|
||||||
|
|
@ -497,10 +336,6 @@ binds {
|
||||||
Mod+J { focus-window-down; }
|
Mod+J { focus-window-down; }
|
||||||
Mod+K { focus-window-up; }
|
Mod+K { focus-window-up; }
|
||||||
Mod+L { focus-column-right; }
|
Mod+L { focus-column-right; }
|
||||||
|
|
||||||
|
|
||||||
Mod+Shift+Z { focus-column-left; }
|
|
||||||
Mod+Shift+X { focus-column-right; }
|
|
||||||
|
|
||||||
Mod+Ctrl+Left { move-column-left; }
|
Mod+Ctrl+Left { move-column-left; }
|
||||||
Mod+Ctrl+Down { move-window-down; }
|
Mod+Ctrl+Down { move-window-down; }
|
||||||
|
|
@ -511,9 +346,6 @@ binds {
|
||||||
Mod+Ctrl+K { move-window-up; }
|
Mod+Ctrl+K { move-window-up; }
|
||||||
Mod+Ctrl+L { move-column-right; }
|
Mod+Ctrl+L { move-column-right; }
|
||||||
|
|
||||||
Mod+Ctrl+MouseForward { move-column-right; }
|
|
||||||
Mod+Ctrl+MouseBack { move-column-left; }
|
|
||||||
|
|
||||||
// Alternative commands that move across workspaces when reaching
|
// Alternative commands that move across workspaces when reaching
|
||||||
// the first or last window in a column.
|
// the first or last window in a column.
|
||||||
// Mod+J { focus-window-or-workspace-down; }
|
// Mod+J { focus-window-or-workspace-down; }
|
||||||
|
|
@ -556,17 +388,6 @@ binds {
|
||||||
Mod+Page_Up { focus-workspace-up; }
|
Mod+Page_Up { focus-workspace-up; }
|
||||||
Mod+U { focus-workspace-down; }
|
Mod+U { focus-workspace-down; }
|
||||||
Mod+I { focus-workspace-up; }
|
Mod+I { focus-workspace-up; }
|
||||||
|
|
||||||
Mod+2 { focus-workspace-down; }
|
|
||||||
Mod+1 { focus-workspace-up; }
|
|
||||||
|
|
||||||
Mod+Ctrl+2 { move-column-to-workspace-down; }
|
|
||||||
Mod+Ctrl+1 { move-column-to-workspace-up; }
|
|
||||||
|
|
||||||
|
|
||||||
Mod+Shift+1 {focus-column-left;}
|
|
||||||
Mod+Shift+2 {focus-column-right;}
|
|
||||||
|
|
||||||
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
|
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
|
||||||
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
|
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
|
||||||
Mod+Ctrl+U { move-column-to-workspace-down; }
|
Mod+Ctrl+U { move-column-to-workspace-down; }
|
||||||
|
|
@ -633,24 +454,24 @@ binds {
|
||||||
//
|
//
|
||||||
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
|
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
|
||||||
// will all refer to the 3rd workspace.
|
// will all refer to the 3rd workspace.
|
||||||
// Mod+1 { focus-workspace 1; }
|
Mod+1 { focus-workspace 1; }
|
||||||
//Mod+2 { focus-workspace 2; }
|
Mod+2 { focus-workspace 2; }
|
||||||
//Mod+3 repeat=false { toggle-overview; }
|
Mod+3 { focus-workspace 3; }
|
||||||
// Mod+4 { focus-workspace 4; }
|
Mod+4 { focus-workspace 4; }
|
||||||
//Mod+5 { focus-workspace 5; }
|
Mod+5 { focus-workspace 5; }
|
||||||
//Mod+6 { focus-workspace 6; }
|
Mod+6 { focus-workspace 6; }
|
||||||
//Mod+7 { focus-workspace 7; }
|
Mod+7 { focus-workspace 7; }
|
||||||
//Mod+8 { focus-workspace 8; }
|
Mod+8 { focus-workspace 8; }
|
||||||
//Mod+9 { focus-workspace 9; }
|
Mod+9 { focus-workspace 9; }
|
||||||
//Mod+Ctrl+1 { move-column-to-workspace 1; }
|
Mod+Ctrl+1 { move-column-to-workspace 1; }
|
||||||
//Mod+Ctrl+2 { move-column-to-workspace 2; }
|
Mod+Ctrl+2 { move-column-to-workspace 2; }
|
||||||
Mod+Ctrl+3 { move-column-to-workspace 3; }
|
Mod+Ctrl+3 { move-column-to-workspace 3; }
|
||||||
//Mod+Ctrl+4 { move-column-to-workspace 4; }
|
Mod+Ctrl+4 { move-column-to-workspace 4; }
|
||||||
//Mod+Ctrl+5 { move-column-to-workspace 5; }
|
Mod+Ctrl+5 { move-column-to-workspace 5; }
|
||||||
//Mod+Ctrl+6 { move-column-to-workspace 6; }
|
Mod+Ctrl+6 { move-column-to-workspace 6; }
|
||||||
//Mod+Ctrl+7 { move-column-to-workspace 7; }
|
Mod+Ctrl+7 { move-column-to-workspace 7; }
|
||||||
//Mod+Ctrl+8 { move-column-to-workspace 8; }
|
Mod+Ctrl+8 { move-column-to-workspace 8; }
|
||||||
//Mod+Ctrl+9 { move-column-to-workspace 9; }
|
Mod+Ctrl+9 { move-column-to-workspace 9; }
|
||||||
|
|
||||||
// Alternatively, there are commands to move just a single window:
|
// Alternatively, there are commands to move just a single window:
|
||||||
// Mod+Ctrl+1 { move-window-to-workspace 1; }
|
// Mod+Ctrl+1 { move-window-to-workspace 1; }
|
||||||
|
|
@ -665,26 +486,27 @@ binds {
|
||||||
Mod+BracketRight { consume-or-expel-window-right; }
|
Mod+BracketRight { consume-or-expel-window-right; }
|
||||||
|
|
||||||
// Consume one window from the right to the bottom of the focused column.
|
// Consume one window from the right to the bottom of the focused column.
|
||||||
Mod+3 { consume-window-into-column; }
|
Mod+Comma { consume-window-into-column; }
|
||||||
// Expel the bottom window from the focused column to the right.
|
// Expel the bottom window from the focused column to the right.
|
||||||
Mod+4 { expel-window-from-column; }
|
Mod+Period { expel-window-from-column; }
|
||||||
|
|
||||||
Mod+A repeat=false { switch-preset-column-width; }
|
Mod+R repeat=false { switch-preset-column-width; }
|
||||||
Mod+Shift+W { toggle-column-tabbed-display; }
|
Mod+Shift+W { toggle-column-tabbed-display; }
|
||||||
// Cycling through the presets in reverse order is also possible.
|
// Cycling through the presets in reverse order is also possible.
|
||||||
// Mod+R { switch-preset-column-width-back; }
|
// Mod+R { switch-preset-column-width-back; }
|
||||||
Mod+Shift+R repeat=false { switch-preset-window-height; }
|
Mod+Shift+R repeat=false { switch-preset-window-height; }
|
||||||
Mod+Ctrl+R { reset-window-height; }
|
Mod+Ctrl+R { reset-window-height; }
|
||||||
Mod+Shift+F repeat=false { fullscreen-window; }
|
Mod+A repeat=false { maximize-column; }
|
||||||
|
Mod+Shift+A repeat=false { fullscreen-window; }
|
||||||
|
|
||||||
// Expand the focused column to space not taken up by other fully visible columns.
|
// Expand the focused column to space not taken up by other fully visible columns.
|
||||||
// Makes the column "fill the rest of the space".
|
// Makes the column "fill the rest of the space".
|
||||||
Mod+Ctrl+F { expand-column-to-available-width; }
|
Mod+Ctrl+F { expand-column-to-available-width; }
|
||||||
|
|
||||||
//Mod+M { center-column; }
|
Mod+M { center-column; }
|
||||||
|
|
||||||
// Center all fully visible columns on screen.
|
// Center all fully visible columns on screen.
|
||||||
Mod+C { center-column; }
|
Mod+Ctrl+C { center-visible-columns; }
|
||||||
|
|
||||||
// Finer width adjustments.
|
// Finer width adjustments.
|
||||||
// This command can also:
|
// This command can also:
|
||||||
|
|
@ -694,16 +516,15 @@ binds {
|
||||||
// * adjust width as a percentage of screen width: "-10%" or "+10%"
|
// * adjust width as a percentage of screen width: "-10%" or "+10%"
|
||||||
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
|
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
|
||||||
// set-column-width "100" will make the column occupy 200 physical screen pixels.
|
// set-column-width "100" will make the column occupy 200 physical screen pixels.
|
||||||
Mod+Minus { set-column-width "-5%"; }
|
Mod+Minus { set-column-width "-10%"; }
|
||||||
Mod+Equal { set-column-width "+5%"; }
|
Mod+Equal { set-column-width "+10%"; }
|
||||||
|
|
||||||
// Finer height adjustments when in column with other windows.
|
// Finer height adjustments when in column with other windows.
|
||||||
Mod+Shift+Minus { set-window-height "-5%"; }
|
Mod+Shift+Minus { set-window-height "-10%"; }
|
||||||
Mod+Shift+Equal { set-window-height "+5%"; }
|
Mod+Shift+Equal { set-window-height "+10%"; }
|
||||||
|
|
||||||
Mod+V { toggle-window-floating; }
|
|
||||||
// Move the focused window between the floating and the tiling layout.
|
// Move the focused window between the floating and the tiling layout.
|
||||||
//Mod+V {spawn "pavucontrol"; }
|
Mod+V { toggle-window-floating; }
|
||||||
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
|
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
|
||||||
|
|
||||||
// Toggle tabbed column display mode.
|
// Toggle tabbed column display mode.
|
||||||
|
|
@ -721,6 +542,7 @@ binds {
|
||||||
|
|
||||||
Mod+S { screenshot; }
|
Mod+S { screenshot; }
|
||||||
Super+Shift+S { screenshot-screen; }
|
Super+Shift+S { screenshot-screen; }
|
||||||
|
Alt+Print { screenshot-window; }
|
||||||
|
|
||||||
// Applications such as remote-desktop clients and software KVM switches may
|
// Applications such as remote-desktop clients and software KVM switches may
|
||||||
// request that niri stops processing the keyboard shortcuts defined here
|
// request that niri stops processing the keyboard shortcuts defined here
|
||||||
|
|
@ -5,17 +5,11 @@
|
||||||
"display": {
|
"display": {
|
||||||
"pipe": true,
|
"pipe": true,
|
||||||
"key": {
|
"key": {
|
||||||
"width": 16,
|
"width": 16
|
||||||
},
|
},
|
||||||
"separator": "│ ",
|
"separator": "│ ",
|
||||||
"percent": {
|
"percent": {
|
||||||
"type": 9,
|
"type": ["bar", "hide-others"]
|
||||||
"color": {
|
|
||||||
"green": "green",
|
|
||||||
"yellow": "light_yellow",
|
|
||||||
"red": "light_red"
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
},
|
||||||
"bar": {
|
"bar": {
|
||||||
"border": null,
|
"border": null,
|
||||||
|
|
@ -51,24 +45,6 @@
|
||||||
"type": "custom",
|
"type": "custom",
|
||||||
"format": "├────────────┬──────────────────────────────────────────┤"
|
"format": "├────────────┬──────────────────────────────────────────┤"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "datetime",
|
|
||||||
"key": "│ TIME │{$1}",
|
|
||||||
"format": "{hour-pretty}:{minute-pretty}",
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"type": "datetime",
|
|
||||||
"key": "│ DATE │{$1}",
|
|
||||||
"format": "{day-pretty}.{month}.{year-short}, {weekday}",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "custom",
|
|
||||||
"format": "├────────────┼──────────────────────────────────────────┤"
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"type": "os",
|
"type": "os",
|
||||||
"key": "│ OS │{$1}"
|
"key": "│ OS │{$1}"
|
||||||
|
|
@ -78,8 +54,18 @@
|
||||||
"key": "│ KERNEL │{$1}"
|
"key": "│ KERNEL │{$1}"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "title",
|
||||||
|
"key": "│ HOSTNAME │{$1}",
|
||||||
|
"format": "{host-name}"
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "host",
|
||||||
|
"key": "│ MACHINE │{$1}",
|
||||||
|
"format": "{name}{?vendor}({vendor}){?}"
|
||||||
|
},
|
||||||
// {
|
// {
|
||||||
// "type":"display",
|
// "type":"display",
|
||||||
// "key":"│ MONITOR │{$1}"
|
// "key":"│ MONITOR │{$1}"
|
||||||
|
|
@ -108,22 +94,35 @@
|
||||||
// },
|
// },
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "packages",
|
||||||
|
"key": "│ PACKAGES │{$1}"
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"type": "custom",
|
"type": "custom",
|
||||||
"format": "├────────────┼──────────────────────────────────────────┤"
|
"format": "├────────────┼──────────────────────────────────────────┤"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "cpu",
|
"type": "cpu",
|
||||||
"key": "│ CPU │{$1}",
|
"key": "│ PROCESSOR │{$1}",
|
||||||
"temp": true,
|
"format": "{name}"
|
||||||
"format": "{name}, {freq-max}{/freq-max}{freq-base}{/} - {temperature}"
|
},
|
||||||
|
{
|
||||||
|
"type": "cpu",
|
||||||
|
"key": "│ CORES │{$1}",
|
||||||
|
"format": "{cores-physical} PHYSICAL CORES / {cores-logical} THREADS",
|
||||||
|
"showPeCoreCount": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cpu",
|
||||||
|
"key": "│ CPU FREQ │{$1}",
|
||||||
|
"format": "{freq-max}{/freq-max}{freq-base}{/}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "gpu",
|
"type": "gpu",
|
||||||
"key": "│ GPU │{$1}",
|
"key": "│ GPU │{$1}"
|
||||||
"temp": true,
|
|
||||||
"format": "{name} - {temperature} {frequency}"
|
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
@ -143,26 +142,76 @@
|
||||||
// }
|
// }
|
||||||
// },
|
// },
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": "├────────────┼──────────────────────────────────────────┤"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "disk",
|
"type": "disk",
|
||||||
"key": "│ DISK │{$1}",
|
"key": "│ DISK USAGE │{$1}",
|
||||||
"format": "{size-used} / {size-total} [{size-percentage}]",
|
"format": "{size-used} / {size-total} [{size-percentage}]",
|
||||||
"folders": "/",
|
"folders": "/",
|
||||||
"percent": {
|
"percent": {
|
||||||
"type": ["num"]
|
"type": ["num"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"type": "disk",
|
||||||
|
"key": "│ DISK USAGE │{$1}",
|
||||||
|
"format": "",
|
||||||
|
"percent": {
|
||||||
|
"type": ["bar", "hide-others"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
"type": "custom",
|
"type": "custom",
|
||||||
"format": "├────────────┼──────────────────────────────────────────┤"
|
"format": "├────────────┼──────────────────────────────────────────┤"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
{
|
"type": "wm",
|
||||||
|
"key": "│ WM │{$1}",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "LM",
|
||||||
|
"key": "│ LM │{$1}"
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type":"Shell",
|
||||||
|
"key":"│ SHELL │{$1}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminal",
|
||||||
|
"key":"│ TERMINAL │{$1}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "weather",
|
||||||
|
"key":"│ WEATHER │{$1}",
|
||||||
|
"timeout": 1000
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": "├────────────┼──────────────────────────────────────────┤"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "users",
|
||||||
|
"key": "│ LAST LOGIN │{$1}",
|
||||||
|
"format": "{login-time}{?client-ip} ({client-ip})",
|
||||||
|
"myselfOnly": true
|
||||||
|
},
|
||||||
|
{
|
||||||
"type": "uptime",
|
"type": "uptime",
|
||||||
"key": "│ UPTIME │{$1}"
|
"key": "│ UPTIME │{$1}"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "title",
|
||||||
|
"key": "│ USER │{$1}",
|
||||||
|
"format": "{user-name}"
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"type": "disk",
|
"type": "disk",
|
||||||
"format": "{create-time}",
|
"format": "{create-time}",
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
if status is-interactive
|
if status is-interactive
|
||||||
set -U fish_cursor_replace_one underscore
|
|
||||||
# Commands to run in interactive sessions can go here
|
# Commands to run in interactive sessions can go here
|
||||||
end
|
end
|
||||||
32
.config/fish/fish_variables
Normal file
32
.config/fish/fish_variables
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
# This file contains fish universal variable definitions.
|
||||||
|
# VERSION: 3.0
|
||||||
|
SETUVAR __fish_initialized:3800
|
||||||
|
SETUVAR fish_color_autosuggestion:brblack
|
||||||
|
SETUVAR fish_color_cancel:\x2dr
|
||||||
|
SETUVAR fish_color_command:normal
|
||||||
|
SETUVAR fish_color_comment:red
|
||||||
|
SETUVAR fish_color_cwd:green
|
||||||
|
SETUVAR fish_color_cwd_root:red
|
||||||
|
SETUVAR fish_color_end:green
|
||||||
|
SETUVAR fish_color_error:brred
|
||||||
|
SETUVAR fish_color_escape:brcyan
|
||||||
|
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_host:normal
|
||||||
|
SETUVAR fish_color_host_remote:yellow
|
||||||
|
SETUVAR fish_color_normal:normal
|
||||||
|
SETUVAR fish_color_operator:brcyan
|
||||||
|
SETUVAR fish_color_param:cyan
|
||||||
|
SETUVAR fish_color_quote:yellow
|
||||||
|
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
|
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
|
SETUVAR fish_color_status:red
|
||||||
|
SETUVAR fish_color_user:brgreen
|
||||||
|
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||||
|
SETUVAR fish_greeting:\x1d
|
||||||
|
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||||
|
SETUVAR fish_pager_color_completion:normal
|
||||||
|
SETUVAR fish_pager_color_description:yellow\x1e\x2di
|
||||||
|
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||||
|
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||||
|
SETUVAR fish_pager_color_selected_background:\x2dr
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
function ls --wraps='eza --color' --description 'alias ls=eza --color'
|
function ls --wraps='eza --color' --description 'alias ls=eza --color'
|
||||||
eza --icons always --color always $argv
|
eza --color $argv
|
||||||
end
|
end
|
||||||
75
.config/fnott/fnott.ini
Normal file
75
.config/fnott/fnott.ini
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
# -*- conf -*-
|
||||||
|
|
||||||
|
# For documentation on these options, see `man fnott.ini`
|
||||||
|
|
||||||
|
# Global values
|
||||||
|
# output=<undefined>#
|
||||||
|
# min-width=0
|
||||||
|
# max-width=0
|
||||||
|
# max-height=0
|
||||||
|
# stacking-order=bottom-up
|
||||||
|
anchor=top-right
|
||||||
|
edge-margin-vertical=8
|
||||||
|
edge-margin-horizontal=8
|
||||||
|
selection-helper=fuzzel
|
||||||
|
selection-helper-uses-null-separator=no
|
||||||
|
default-timeout=10
|
||||||
|
# notification-margin=10
|
||||||
|
icon-theme=
|
||||||
|
max-icon-size=32
|
||||||
|
# selection-helper=dmenu
|
||||||
|
# selection-helper-uses-null-separator=no
|
||||||
|
# play-sound=aplay ${filename}
|
||||||
|
|
||||||
|
# Default values, may be overridden in 'urgency' specific sections
|
||||||
|
# layer=top
|
||||||
|
background=07090Bff
|
||||||
|
|
||||||
|
border-color=C1D6D6ff
|
||||||
|
|
||||||
|
border-radius=5
|
||||||
|
border-size=4
|
||||||
|
|
||||||
|
# padding-vertical=20
|
||||||
|
# padding-horizontal=20
|
||||||
|
|
||||||
|
dpi-aware=no
|
||||||
|
|
||||||
|
title-font=IosevkaTerm NFP:size=17:weight=bold
|
||||||
|
|
||||||
|
# title-color=ffffffff
|
||||||
|
title-format=<b>%a%A</b>
|
||||||
|
|
||||||
|
summary-font=IosevkaTerm NFP:size=13:weight=bold:slant=italic
|
||||||
|
title-color=c1d6d6ff
|
||||||
|
|
||||||
|
summary-color=c1d6d6ff
|
||||||
|
summary-format=%s</b>\n
|
||||||
|
|
||||||
|
body-font=IosevkaTerm NFP:size=12:weight=bold
|
||||||
|
|
||||||
|
body-color=C1D6D6ff
|
||||||
|
body-format=%b
|
||||||
|
|
||||||
|
# progress-bar-height=20
|
||||||
|
progress-color=c1d6d6ff
|
||||||
|
# progress-style=bar
|
||||||
|
|
||||||
|
# sound-file=
|
||||||
|
#icon=
|
||||||
|
|
||||||
|
# Timeout values are in seconds. 0 to disable
|
||||||
|
# max-timeout=0
|
||||||
|
# default-timeout=0
|
||||||
|
# idle-timeout=0
|
||||||
|
|
||||||
|
# [low]
|
||||||
|
# background=2b2b2bff
|
||||||
|
# title-color=888888ff
|
||||||
|
# summary-color=888888ff
|
||||||
|
# body-color=888888ff
|
||||||
|
|
||||||
|
# [normal]
|
||||||
|
|
||||||
|
# [critical]
|
||||||
|
# background=6c3333ff
|
||||||
|
|
@ -187,6 +187,8 @@ misc {
|
||||||
animate_manual_resizes = false
|
animate_manual_resizes = false
|
||||||
animate_mouse_windowdragging = true
|
animate_mouse_windowdragging = true
|
||||||
focus_on_activate = false
|
focus_on_activate = false
|
||||||
|
new_window_takes_over_fullscreen = 2
|
||||||
|
middle_click_paste = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -332,3 +334,21 @@ bindl = , XF86AudioPrev, exec, playerctl previous
|
||||||
# windowrule = float,class:^(kitty)$,title:^(kitty)$
|
# windowrule = float,class:^(kitty)$,title:^(kitty)$
|
||||||
|
|
||||||
# Ignore maximize requests from apps. You'll probably like this.
|
# Ignore maximize requests from apps. You'll probably like this.
|
||||||
|
windowrule = suppressevent maximize, class:.*
|
||||||
|
|
||||||
|
# Fix some dragging issues with XWayland
|
||||||
|
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||||
|
windowrule = float, class:(clipse)
|
||||||
|
windowrule = fullscreenstate 1, class:(clipse)
|
||||||
|
#windowrule = size 622 652, class:(clipse)
|
||||||
|
windowrule = stayfocused, class:(clipse)
|
||||||
|
windowrule = opacity 1.0 override 1.0 override,title:(.*)(- YouTube — Zen Browser)
|
||||||
|
windowrule = float, title:(Picture-in-Picture)
|
||||||
|
|
||||||
|
windowrule = float, title:(Media viewer)
|
||||||
|
|
||||||
|
windowrule = float, title:(Save Image)
|
||||||
|
|
||||||
|
windowrule = float, title:(Save File)
|
||||||
|
windowrule = float, title:(Save Video)
|
||||||
|
windowrule = fullscreenstate 1, title:(Media viewer)
|
||||||
|
|
@ -267,7 +267,7 @@
|
||||||
|
|
||||||
#: Text cursor customization {{{
|
#: Text cursor customization {{{
|
||||||
|
|
||||||
cursor #eef7fd
|
# cursor #cccccc
|
||||||
|
|
||||||
#: Default text cursor color. If set to the special value none the
|
#: Default text cursor color. If set to the special value none the
|
||||||
#: cursor will be rendered with a "reverse video" effect. Its color
|
#: cursor will be rendered with a "reverse video" effect. Its color
|
||||||
|
|
@ -279,7 +279,7 @@
|
||||||
#: some themes set this value, so if you want to override it, place
|
#: some themes set this value, so if you want to override it, place
|
||||||
#: your value after the lines where the theme file is included.
|
#: your value after the lines where the theme file is included.
|
||||||
|
|
||||||
cursor_text_color background
|
# cursor_text_color #111111
|
||||||
|
|
||||||
#: The color of text under the cursor. If you want it rendered with
|
#: The color of text under the cursor. If you want it rendered with
|
||||||
#: the background color of the cell underneath instead, use the
|
#: the background color of the cell underneath instead, use the
|
||||||
|
|
@ -288,7 +288,7 @@
|
||||||
#: so if you want to override it, place your value after the lines
|
#: so if you want to override it, place your value after the lines
|
||||||
#: where the theme file is included.
|
#: where the theme file is included.
|
||||||
|
|
||||||
cursor_shape underline
|
# cursor_shape block
|
||||||
|
|
||||||
#: The cursor shape can be one of block, beam, underline. Note that
|
#: The cursor shape can be one of block, beam, underline. Note that
|
||||||
#: when reloading the config this will be changed only if the cursor
|
#: when reloading the config this will be changed only if the cursor
|
||||||
|
|
@ -299,7 +299,7 @@
|
||||||
#: the cursor shape to beam at shell prompts. You can avoid this by
|
#: the cursor shape to beam at shell prompts. You can avoid this by
|
||||||
#: setting shell_integration to no-cursor.
|
#: setting shell_integration to no-cursor.
|
||||||
|
|
||||||
cursor_shape_unfocused beam
|
# cursor_shape_unfocused hollow
|
||||||
|
|
||||||
#: Defines the text cursor shape when the OS window is not focused.
|
#: Defines the text cursor shape when the OS window is not focused.
|
||||||
#: The unfocused cursor shape can be one of block, beam, underline,
|
#: The unfocused cursor shape can be one of block, beam, underline,
|
||||||
|
|
@ -1001,7 +1001,7 @@ cursor_shape_unfocused beam
|
||||||
#: set the vertical and horizontal sides. Three values set top,
|
#: set the vertical and horizontal sides. Three values set top,
|
||||||
#: horizontal and bottom. Four values set top, right, bottom and left.
|
#: horizontal and bottom. Four values set top, right, bottom and left.
|
||||||
|
|
||||||
window_padding_width 5
|
# window_padding_width 0
|
||||||
|
|
||||||
#: The window padding (in pts) (blank area between the text and the
|
#: The window padding (in pts) (blank area between the text and the
|
||||||
#: window border). A single value sets all four sides. Two values set
|
#: window border). A single value sets all four sides. Two values set
|
||||||
|
|
@ -1314,8 +1314,9 @@ cursor_shape_unfocused beam
|
||||||
#: }}}
|
#: }}}
|
||||||
|
|
||||||
#: Color scheme {{{
|
#: Color scheme {{{
|
||||||
#foreground #C1D6D6
|
|
||||||
# background #07090B
|
foreground #C1D6D6
|
||||||
|
background #07090B
|
||||||
|
|
||||||
#: The foreground and background colors.
|
#: The foreground and background colors.
|
||||||
|
|
||||||
|
|
@ -1441,9 +1442,9 @@ cursor_shape_unfocused beam
|
||||||
|
|
||||||
#: How much to dim text that has the DIM/FAINT attribute set. One
|
#: How much to dim text that has the DIM/FAINT attribute set. One
|
||||||
#: means no dimming and zero means fully dimmed (i.e. invisible).
|
#: means no dimming and zero means fully dimmed (i.e. invisible).
|
||||||
# selection_foreground #07090B
|
|
||||||
# selection_background #ffffff
|
|
||||||
|
|
||||||
|
selection_foreground #07090B
|
||||||
|
selection_background #E2F9F9
|
||||||
|
|
||||||
#: The foreground and background colors for text selected with the
|
#: The foreground and background colors for text selected with the
|
||||||
#: mouse. Setting both of these to none will cause a "reverse video"
|
#: mouse. Setting both of these to none will cause a "reverse video"
|
||||||
|
|
@ -1458,83 +1459,44 @@ cursor_shape_unfocused beam
|
||||||
#: The 256 terminal colors. There are 8 basic colors, each color has a
|
#: The 256 terminal colors. There are 8 basic colors, each color has a
|
||||||
#: dull and bright version, for the first 16 colors. You can set the
|
#: dull and bright version, for the first 16 colors. You can set the
|
||||||
#: remaining 240 colors as color16 to color255.
|
#: remaining 240 colors as color16 to color255.
|
||||||
#color0 #07090B
|
|
||||||
#color8 #5C6871
|
color0 #07090B
|
||||||
#596269 good
|
color8 #718091
|
||||||
#464646
|
|
||||||
#7E7E7F
|
|
||||||
#545256
|
|
||||||
#B2B2B2
|
|
||||||
#BCBEBF
|
|
||||||
#B2B2B2
|
|
||||||
#9F9F9F
|
|
||||||
#181818
|
|
||||||
|
|
||||||
#: black
|
#: black
|
||||||
#color1 #FF0100
|
|
||||||
#color9 #E46468
|
color1 #FE3F48
|
||||||
#F87173
|
color9 #F87173
|
||||||
|
|
||||||
#: red
|
#: red
|
||||||
# color2 #25C39F
|
|
||||||
# color10 #82D1B9
|
color2 #25C39F
|
||||||
#92ED47 from zzz
|
color10 #A1F7C6
|
||||||
#A1F7C6
|
|
||||||
|
|
||||||
#: green
|
#: green
|
||||||
# color3 #FFDE00
|
|
||||||
#FEDE00
|
color3 #EFFF2B
|
||||||
#F4DA00
|
color11 #ECE782
|
||||||
#F4DA00
|
|
||||||
#EFFF2B
|
|
||||||
##BAF000
|
|
||||||
# color11 #F6DB8B
|
|
||||||
#FFC777
|
|
||||||
#F6DB8B
|
|
||||||
#FDC849
|
|
||||||
#FFEC38
|
|
||||||
#ECE782
|
|
||||||
|
|
||||||
#: yellow
|
#: yellow
|
||||||
# color4 #109FFF
|
|
||||||
#1C55E3
|
color4 #3783FF
|
||||||
#00A9FF
|
color12 #96E1FF
|
||||||
# color12 #8FD2F7
|
|
||||||
#1BB7F9
|
|
||||||
#2EB6FF
|
|
||||||
#8077EA
|
|
||||||
#606ECF
|
|
||||||
#072857 --best
|
|
||||||
#0F474B
|
|
||||||
#13545E
|
|
||||||
#2CDCE1
|
|
||||||
#96E1FF
|
|
||||||
|
|
||||||
#: blue
|
#: blue
|
||||||
# color5 #FE31FF
|
|
||||||
# color13 #F79DE7
|
color5 #FE31FF
|
||||||
#EF61D6
|
color13 #F586FF
|
||||||
#FFA4A5
|
|
||||||
#FF498C
|
|
||||||
#F978F2
|
|
||||||
#F586FF
|
|
||||||
|
|
||||||
#: magenta
|
#: magenta
|
||||||
# color6 #00FED4
|
|
||||||
#00FFD3
|
color6 #22BEE8
|
||||||
#22BEE8
|
color14 #DFFBE8
|
||||||
# color14 #7EFEDE
|
|
||||||
#7EFEDE
|
|
||||||
#65E09F good green
|
|
||||||
#4EC2D9
|
|
||||||
#4CBBC1 --best
|
|
||||||
#1CE0EF
|
|
||||||
#6BE6E4
|
|
||||||
#DFFBE8
|
|
||||||
|
|
||||||
#: cyan
|
#: cyan
|
||||||
#color7 #EEF7FD
|
|
||||||
#color15 #C1D6D6
|
color7 #C1D6D6
|
||||||
|
color15 #E2F9F9
|
||||||
|
|
||||||
#: white
|
#: white
|
||||||
|
|
||||||
|
|
@ -2832,9 +2794,3 @@ bold_font auto
|
||||||
italic_font auto
|
italic_font auto
|
||||||
bold_italic_font auto
|
bold_italic_font auto
|
||||||
# END_KITTY_FONTS
|
# END_KITTY_FONTS
|
||||||
|
|
||||||
|
|
||||||
# BEGIN_KITTY_THEME
|
|
||||||
#Tokyo Night
|
|
||||||
include current-theme.conf
|
|
||||||
# END_KITTY_THEME
|
|
||||||
|
|
@ -288,7 +288,7 @@
|
||||||
#: so if you want to override it, place your value after the lines
|
#: so if you want to override it, place your value after the lines
|
||||||
#: where the theme file is included.
|
#: where the theme file is included.
|
||||||
|
|
||||||
cursor_shape underline
|
# cursor_shape block
|
||||||
|
|
||||||
#: The cursor shape can be one of block, beam, underline. Note that
|
#: The cursor shape can be one of block, beam, underline. Note that
|
||||||
#: when reloading the config this will be changed only if the cursor
|
#: when reloading the config this will be changed only if the cursor
|
||||||
|
|
@ -1315,7 +1315,7 @@
|
||||||
|
|
||||||
#: Color scheme {{{
|
#: Color scheme {{{
|
||||||
|
|
||||||
foreground #C1D6D6
|
foreground #E2F9F9
|
||||||
background #07090B
|
background #07090B
|
||||||
|
|
||||||
#: The foreground and background colors.
|
#: The foreground and background colors.
|
||||||
|
|
@ -1443,9 +1443,8 @@
|
||||||
#: How much to dim text that has the DIM/FAINT attribute set. One
|
#: How much to dim text that has the DIM/FAINT attribute set. One
|
||||||
#: means no dimming and zero means fully dimmed (i.e. invisible).
|
#: means no dimming and zero means fully dimmed (i.e. invisible).
|
||||||
|
|
||||||
selection_foreground #07090B
|
# selection_foreground #000000
|
||||||
selection_background #ffffff
|
# selection_background #fffacd
|
||||||
|
|
||||||
|
|
||||||
#: The foreground and background colors for text selected with the
|
#: The foreground and background colors for text selected with the
|
||||||
#: mouse. Setting both of these to none will cause a "reverse video"
|
#: mouse. Setting both of these to none will cause a "reverse video"
|
||||||
|
|
@ -1462,90 +1461,42 @@ selection_background #ffffff
|
||||||
#: remaining 240 colors as color16 to color255.
|
#: remaining 240 colors as color16 to color255.
|
||||||
|
|
||||||
color0 #07090B
|
color0 #07090B
|
||||||
color8 #5C6871
|
color8 #6D8199
|
||||||
#596269 good
|
|
||||||
#464646
|
|
||||||
#7E7E7F
|
|
||||||
#545256
|
|
||||||
#B2B2B2
|
|
||||||
#BCBEBF
|
|
||||||
#B2B2B2
|
|
||||||
#9F9F9F
|
|
||||||
#181818
|
|
||||||
|
|
||||||
#: black
|
#: black
|
||||||
|
|
||||||
color1 #FF0100
|
# color1 #FA444E
|
||||||
color9 #E46468
|
# color9 #FB8087
|
||||||
#F87173
|
|
||||||
|
|
||||||
#: red
|
#: red
|
||||||
|
|
||||||
color2 #25C39F
|
# color2 #2DEAC4
|
||||||
|
# color10 #BEF9F9
|
||||||
color10 #82D1B9
|
|
||||||
#92ED47 from zzz
|
|
||||||
#A1F7C6
|
|
||||||
|
|
||||||
#: green
|
#: green
|
||||||
|
|
||||||
color3 #FFDE00
|
# color3 #FBFB43
|
||||||
#FEDE00
|
# color11 #FBFBB4
|
||||||
#F4DA00
|
|
||||||
#F4DA00
|
|
||||||
#EFFF2B
|
|
||||||
##BAF000
|
|
||||||
color11 #F6DB8B
|
|
||||||
#FFC777
|
|
||||||
#F6DB8B
|
|
||||||
#FDC849
|
|
||||||
#FFEC38
|
|
||||||
#ECE782
|
|
||||||
|
|
||||||
#: yellow
|
#: yellow
|
||||||
|
|
||||||
color4 #109FFF
|
# color4 #409FFC
|
||||||
#1C55E3
|
# color12 #A9FAFA
|
||||||
#00A9FF
|
|
||||||
color12 #8FD2F7
|
|
||||||
#1BB7F9
|
|
||||||
#2EB6FF
|
|
||||||
#8077EA
|
|
||||||
#606ECF
|
|
||||||
#072857 --best
|
|
||||||
#0F474B
|
|
||||||
#13545E
|
|
||||||
#2CDCE1
|
|
||||||
#96E1FF
|
|
||||||
|
|
||||||
#: blue
|
#: blue
|
||||||
|
|
||||||
color5 #FE31FF
|
# color5 #F932F9
|
||||||
color13 #F79DE7
|
# color13 #F99FFA
|
||||||
#EF61D6
|
|
||||||
#FFA4A5
|
|
||||||
#FF498C
|
|
||||||
#F978F2
|
|
||||||
#F586FF
|
|
||||||
|
|
||||||
#: magenta
|
#: magenta
|
||||||
|
|
||||||
color6 #00FED4
|
# color6 #2EECF9
|
||||||
#00FFD3
|
# color14 #FDFDFD
|
||||||
#22BEE8
|
|
||||||
color14 #7EFEDE
|
|
||||||
#7EFEDE
|
|
||||||
#65E09F good green
|
|
||||||
#4EC2D9
|
|
||||||
#4CBBC1 --best
|
|
||||||
#1CE0EF
|
|
||||||
#6BE6E4
|
|
||||||
#DFFBE8
|
|
||||||
|
|
||||||
#: cyan
|
#: cyan
|
||||||
|
|
||||||
color7 #EEF7FD
|
# color7 #F2F9F9
|
||||||
color15 #C1D6D6
|
# color15 #F7F7F7
|
||||||
|
|
||||||
#: white
|
#: white
|
||||||
|
|
||||||
|
|
@ -2838,7 +2789,7 @@ color15 #C1D6D6
|
||||||
|
|
||||||
|
|
||||||
# BEGIN_KITTY_FONTS
|
# BEGIN_KITTY_FONTS
|
||||||
font_family family="IosevkaTerm Nerd Font"
|
font_family family='Terminess Nerd Font Mono' postscript_name=TerminessNFM
|
||||||
bold_font auto
|
bold_font auto
|
||||||
italic_font auto
|
italic_font auto
|
||||||
bold_italic_font auto
|
bold_italic_font auto
|
||||||
32
.config/mimeapps.list
Normal file
32
.config/mimeapps.list
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
[Default Applications]
|
||||||
|
x-scheme-handler/http=zen.desktop
|
||||||
|
x-scheme-handler/https=zen.desktop
|
||||||
|
x-scheme-handler/chrome=zen.desktop
|
||||||
|
text/html=zen.desktop
|
||||||
|
application/x-extension-htm=zen.desktop
|
||||||
|
application/x-extension-html=zen.desktop
|
||||||
|
application/x-extension-shtml=zen.desktop
|
||||||
|
application/xhtml+xml=zen.desktop
|
||||||
|
application/x-extension-xhtml=zen.desktop
|
||||||
|
application/x-extension-xht=zen.desktop
|
||||||
|
application/pdf=org.pwmt.zathura.desktop
|
||||||
|
image/vnd.djvu=org.pwmt.zathura.desktop
|
||||||
|
image/gif=imv.desktop
|
||||||
|
image/png=imv.desktop
|
||||||
|
x-scheme-handler/discord=vesktop.desktop
|
||||||
|
x-scheme-handler/tg=org.telegram.desktop.desktop
|
||||||
|
x-scheme-handler/tonsite=org.telegram.desktop.desktop
|
||||||
|
|
||||||
|
[Added Associations]
|
||||||
|
x-scheme-handler/http=zen.desktop;firefox.desktop;
|
||||||
|
x-scheme-handler/https=zen.desktop;firefox.desktop;
|
||||||
|
x-scheme-handler/chrome=zen.desktop;firefox.desktop;
|
||||||
|
text/html=firefox.desktop;
|
||||||
|
application/x-extension-htm=firefox.desktop;
|
||||||
|
application/x-extension-html=firefox.desktop;
|
||||||
|
application/x-extension-shtml=firefox.desktop;
|
||||||
|
application/xhtml+xml=firefox.desktop;
|
||||||
|
application/x-extension-xhtml=firefox.desktop;
|
||||||
|
application/x-extension-xht=firefox.desktop;
|
||||||
|
x-scheme-handler/tg=org.telegram.desktop.desktop;
|
||||||
|
x-scheme-handler/tonsite=org.telegram.desktop.desktop;
|
||||||
708
.config/niri/config-01.kdl
Normal file
708
.config/niri/config-01.kdl
Normal file
|
|
@ -0,0 +1,708 @@
|
||||||
|
// This config is in the KDL format: https://kdl.dev
|
||||||
|
// "/-" comments out the following node.
|
||||||
|
// Check the wiki for a full description of the configuration:
|
||||||
|
// https://yalter.github.io/niri/Configuration:-Introduction
|
||||||
|
|
||||||
|
// Input device configuration.
|
||||||
|
// Find the full list of options on the wiki:
|
||||||
|
// https://yalter.github.io/niri/Configuration:-Input
|
||||||
|
input {
|
||||||
|
keyboard {
|
||||||
|
xkb {
|
||||||
|
// You can set rules, model, layout, variant and options.
|
||||||
|
// For more information, see xkeyboard-config(7).
|
||||||
|
|
||||||
|
// For example:
|
||||||
|
layout "us,ru"
|
||||||
|
options "grp:caps_toggle"
|
||||||
|
|
||||||
|
// If this section is empty, niri will fetch xkb settings
|
||||||
|
// from org.freedesktop.locale1. You can control these using
|
||||||
|
// localectl set-x11-keymap.
|
||||||
|
}
|
||||||
|
repeat-delay 250
|
||||||
|
repeat-rate 25
|
||||||
|
// track-layout "global"
|
||||||
|
|
||||||
|
// Enable numlock on startup, omitting this setting disables it.
|
||||||
|
numlock
|
||||||
|
}
|
||||||
|
|
||||||
|
// Next sections include libinput settings.
|
||||||
|
// Omitting settings disables them, or leaves them at their default values.
|
||||||
|
// All commented-out settings here are examples, not defaults.
|
||||||
|
touchpad {
|
||||||
|
// off
|
||||||
|
tap
|
||||||
|
// dwt
|
||||||
|
// dwtp
|
||||||
|
// drag false
|
||||||
|
// drag-lock
|
||||||
|
natural-scroll
|
||||||
|
// accel-speed 0.2
|
||||||
|
// accel-profile "flat"
|
||||||
|
// scroll-method "two-finger"
|
||||||
|
// disabled-on-external-mouse
|
||||||
|
}
|
||||||
|
|
||||||
|
mouse {
|
||||||
|
// off
|
||||||
|
// natural-scroll
|
||||||
|
// accel-speed 0.2
|
||||||
|
accel-profile "adaptive"
|
||||||
|
scroll-button 274
|
||||||
|
|
||||||
|
scroll-method "on-button-down"
|
||||||
|
}
|
||||||
|
warp-mouse-to-focus
|
||||||
|
focus-follows-mouse max-scroll-amount="50%"
|
||||||
|
|
||||||
|
trackpoint {
|
||||||
|
// off
|
||||||
|
// natural-scroll
|
||||||
|
// accel-speed 0.2
|
||||||
|
// accel-profile "flat"
|
||||||
|
// scroll-method "on-button-down"
|
||||||
|
// scroll-button 273
|
||||||
|
// scroll-button-lock
|
||||||
|
// middle-emulation
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uncomment this to make the mouse warp to the center of newly focused windows.
|
||||||
|
// warp-mouse-to-focus
|
||||||
|
|
||||||
|
// Focus windows and outputs automatically when moving the mouse into them.
|
||||||
|
// Setting max-scroll-amount="0%" makes it work only on windows already fully on screen.
|
||||||
|
// focus-follows-mouse max-scroll-amount="0%"
|
||||||
|
}
|
||||||
|
|
||||||
|
// You can configure outputs by their name, which you can find
|
||||||
|
// by running `niri msg outputs` while inside a niri instance.
|
||||||
|
// The built-in laptop monitor is usually called "eDP-1".
|
||||||
|
// Find more information on the wiki:
|
||||||
|
// https://yalter.github.io/niri/Configuration:-Outputs
|
||||||
|
// Remember to uncomment the node by removing "/-"!
|
||||||
|
/-output "DP-1" {
|
||||||
|
// Uncomment this line to disable this output.
|
||||||
|
// off
|
||||||
|
|
||||||
|
// Resolution and, optionally, refresh rate of the output.
|
||||||
|
// The format is "<width>x<height>" or "<width>x<height>@<refresh rate>".
|
||||||
|
// If the refresh rate is omitted, niri will pick the highest refresh rate
|
||||||
|
// for the resolution.
|
||||||
|
// If the mode is omitted altogether or is invalid, niri will pick one automatically.
|
||||||
|
// Run `niri msg outputs` while inside a niri instance to list all outputs and their modes.
|
||||||
|
mode "1920x1080@165.000"
|
||||||
|
|
||||||
|
// You can use integer or fractional scale, for example use 1.5 for 150% scale.
|
||||||
|
scale 1.0
|
||||||
|
|
||||||
|
// Transform allows to rotate the output counter-clockwise, valid values are:
|
||||||
|
// normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270.
|
||||||
|
transform "normal"
|
||||||
|
|
||||||
|
// Position of the output in the global coordinate space.
|
||||||
|
// This affects directional monitor actions like "focus-monitor-left", and cursor movement.
|
||||||
|
// The cursor can only move between directly adjacent outputs.
|
||||||
|
// Output scale and rotation has to be taken into account for positioning:
|
||||||
|
// outputs are sized in logical, or scaled, pixels.
|
||||||
|
// For example, a 3840×2160 output with scale 2.0 will have a logical size of 1920×1080,
|
||||||
|
// so to put another output directly adjacent to it on the right, set its x to 1920.
|
||||||
|
// If the position is unset or results in an overlap, the output is instead placed
|
||||||
|
// automatically.
|
||||||
|
position x=1280 y=0
|
||||||
|
variable-refresh-rate on-demand=true
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Settings that influence how windows are positioned and sized.
|
||||||
|
// Find more information on the wiki:
|
||||||
|
// https://yalter.github.io/niri/Configuration:-Layout
|
||||||
|
layout {
|
||||||
|
// Set gaps around windows in logical pixels.
|
||||||
|
gaps 10
|
||||||
|
|
||||||
|
// When to center a column when changing focus, options are:
|
||||||
|
// - "never", default behavior, focusing an off-screen column will keep at the left
|
||||||
|
// or right edge of the screen.
|
||||||
|
// - "always", the focused column will always be centered.
|
||||||
|
// - "on-overflow", focusing a column will center it if it doesn't fit
|
||||||
|
// together with the previously focused column.
|
||||||
|
center-focused-column "never"
|
||||||
|
|
||||||
|
default-column-display "normal"
|
||||||
|
// You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between.
|
||||||
|
preset-column-widths {
|
||||||
|
// Proportion sets the width as a fraction of the output width, taking gaps into account.
|
||||||
|
// For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
|
||||||
|
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
|
||||||
|
proportion 0.33333
|
||||||
|
proportion 0.5
|
||||||
|
proportion 0.66667
|
||||||
|
|
||||||
|
// Fixed sets the width in logical pixels exactly.
|
||||||
|
// fixed 1920
|
||||||
|
}
|
||||||
|
|
||||||
|
// You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between.
|
||||||
|
// preset-window-heights { }
|
||||||
|
|
||||||
|
// You can change the default width of the new windows.
|
||||||
|
default-column-width { proportion 0.5; }
|
||||||
|
// If you leave the brackets empty, the windows themselves will decide their initial width.
|
||||||
|
// default-column-width {}
|
||||||
|
|
||||||
|
// By default focus ring and border are rendered as a solid background rectangle
|
||||||
|
// behind windows. That is, they will show up through semitransparent windows.
|
||||||
|
// This is because windows using client-side decorations can have an arbitrary shape.
|
||||||
|
//
|
||||||
|
// If you don't like that, you should uncomment `prefer-no-csd` below.
|
||||||
|
// Niri will draw focus ring and border *around* windows that agree to omit their
|
||||||
|
// client-side decorations.
|
||||||
|
//
|
||||||
|
// Alternatively, you can override it with a window rule called
|
||||||
|
// `draw-border-with-background`.
|
||||||
|
|
||||||
|
// You can change how the focus ring looks.
|
||||||
|
focus-ring {
|
||||||
|
// Uncomment this line to disable the focus ring.
|
||||||
|
// off
|
||||||
|
|
||||||
|
// How many logical pixels the ring extends out from the windows.
|
||||||
|
width 4
|
||||||
|
|
||||||
|
// Colors can be set in a variety of ways:
|
||||||
|
// - CSS named colors: "red"
|
||||||
|
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
|
||||||
|
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
|
||||||
|
|
||||||
|
// Color of the ring on the active monitor.
|
||||||
|
active-color "#C1D6D6"
|
||||||
|
// foreground #C1D6D6
|
||||||
|
//background #07090B
|
||||||
|
// Color of the ring on inactive monitors.
|
||||||
|
//
|
||||||
|
// The focus ring only draws around the active window, so the only place
|
||||||
|
// where you can see its inactive-color is on other monitors.
|
||||||
|
inactive-color "#000000"
|
||||||
|
|
||||||
|
// You can also use gradients. They take precedence over solid colors.
|
||||||
|
// Gradients are rendered the same as CSS linear-gradient(angle, from, to).
|
||||||
|
// The angle is the same as in linear-gradient, and is optional,
|
||||||
|
// defaulting to 180 (top-to-bottom gradient).
|
||||||
|
// You can use any CSS linear-gradient tool on the web to set these up.
|
||||||
|
// Changing the color space is also supported, check the wiki for more info.
|
||||||
|
//
|
||||||
|
// active-gradient from="#80c8ff" to="#c7ff7f" angle=45
|
||||||
|
|
||||||
|
// You can also color the gradient relative to the entire view
|
||||||
|
// of the workspace, rather than relative to just the window itself.
|
||||||
|
// To do that, set relative-to="workspace-view".
|
||||||
|
//
|
||||||
|
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||||
|
}
|
||||||
|
|
||||||
|
// You can also add a border. It's similar to the focus ring, but always visible.
|
||||||
|
border {
|
||||||
|
// The settings are the same as for the focus ring.
|
||||||
|
// If you enable the border, you probably want to disable the focus ring.
|
||||||
|
off
|
||||||
|
|
||||||
|
width 2
|
||||||
|
active-color "#ffc87f"
|
||||||
|
inactive-color "#505050"
|
||||||
|
|
||||||
|
// Color of the border around windows that request your attention.
|
||||||
|
urgent-color "#9b0000"
|
||||||
|
|
||||||
|
// Gradients can use a few different interpolation color spaces.
|
||||||
|
// For example, this is a pastel rainbow gradient via in="oklch longer hue".
|
||||||
|
//
|
||||||
|
// active-gradient from="#e5989b" to="#ffb4a2" angle=45 relative-to="workspace-view" in="oklch longer hue"
|
||||||
|
|
||||||
|
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||||
|
}
|
||||||
|
|
||||||
|
// You can enable drop shadows for windows.
|
||||||
|
shadow {
|
||||||
|
// Uncomment the next line to enable shadows.
|
||||||
|
// on
|
||||||
|
|
||||||
|
// By default, the shadow draws only around its window, and not behind it.
|
||||||
|
// Uncomment this setting to make the shadow draw behind its window.
|
||||||
|
//
|
||||||
|
// Note that niri has no way of knowing about the CSD window corner
|
||||||
|
// radius. It has to assume that windows have square corners, leading to
|
||||||
|
// shadow artifacts inside the CSD rounded corners. This setting fixes
|
||||||
|
// those artifacts.
|
||||||
|
//
|
||||||
|
// However, instead you may want to set prefer-no-csd and/or
|
||||||
|
// geometry-corner-radius. Then, niri will know the corner radius and
|
||||||
|
// draw the shadow correctly, without having to draw it behind the
|
||||||
|
// window. These will also remove client-side shadows if the window
|
||||||
|
// draws any.
|
||||||
|
//
|
||||||
|
// draw-behind-window true
|
||||||
|
|
||||||
|
// You can change how shadows look. The values below are in logical
|
||||||
|
// pixels and match the CSS box-shadow properties.
|
||||||
|
|
||||||
|
// Softness controls the shadow blur radius.
|
||||||
|
softness 30
|
||||||
|
|
||||||
|
// Spread expands the shadow.
|
||||||
|
spread 5
|
||||||
|
|
||||||
|
// Offset moves the shadow relative to the window.
|
||||||
|
offset x=0 y=5
|
||||||
|
|
||||||
|
// You can also change the shadow color and opacity.
|
||||||
|
color "#0007"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Struts shrink the area occupied by windows, similarly to layer-shell panels.
|
||||||
|
// You can think of them as a kind of outer gaps. They are set in logical pixels.
|
||||||
|
// Left and right struts will cause the next window to the side to always be visible.
|
||||||
|
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
|
||||||
|
// layer-shell panels and regular gaps.
|
||||||
|
struts {
|
||||||
|
// left 64
|
||||||
|
// right 64
|
||||||
|
// top 64
|
||||||
|
// bottom 64
|
||||||
|
}
|
||||||
|
tab-indicator{
|
||||||
|
// off
|
||||||
|
}
|
||||||
|
insert-hint {
|
||||||
|
off
|
||||||
|
color "#ffc87f80"
|
||||||
|
gradient from="#ffbb6680" to="#ffc88080" angle=45 relative-to="workspace-view"
|
||||||
|
}
|
||||||
|
|
||||||
|
background-color "#07090B"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
overview {
|
||||||
|
zoom 0.45
|
||||||
|
backdrop-color "#07090b"
|
||||||
|
|
||||||
|
workspace-shadow {
|
||||||
|
off
|
||||||
|
softness 40
|
||||||
|
spread 10
|
||||||
|
offset x=0 y=10
|
||||||
|
color "#00000050"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
clipboard {
|
||||||
|
disable-primary
|
||||||
|
}
|
||||||
|
cursor {
|
||||||
|
//xcursor-theme "Dot-Dark"
|
||||||
|
xcursor-size 12
|
||||||
|
|
||||||
|
hide-when-typing
|
||||||
|
hide-after-inactive-ms 1000
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add lines like this to spawn processes at startup.
|
||||||
|
// Note that running niri as a session supports xdg-desktop-autostart,
|
||||||
|
// which may be more convenient to use.
|
||||||
|
// See the binds section below for more spawn examples.
|
||||||
|
|
||||||
|
// This line starts waybar, a commonly used bar for Wayland compositors.
|
||||||
|
spawn-at-startup "waybar"
|
||||||
|
|
||||||
|
spawn-at-startup "fnott"
|
||||||
|
spawn-at-startup "clipse -listen"
|
||||||
|
|
||||||
|
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
|
||||||
|
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
|
||||||
|
|
||||||
|
hotkey-overlay {
|
||||||
|
// Uncomment this line to disable the "Important Hotkeys" pop-up at startup.
|
||||||
|
skip-at-startup
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
|
||||||
|
// If the client will specifically ask for CSD, the request will be honored.
|
||||||
|
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
|
||||||
|
// This option will also fix border/focus ring drawing behind some semitransparent windows.
|
||||||
|
// After enabling or disabling this, you need to restart the apps for this to take effect.
|
||||||
|
prefer-no-csd
|
||||||
|
|
||||||
|
// You can change the path where screenshots are saved.
|
||||||
|
// A ~ at the front will be expanded to the home directory.
|
||||||
|
// The path is formatted with strftime(3) to give you the screenshot date and time.
|
||||||
|
screenshot-path "~/imgs/screenshots/screenshot from %Y-%m-%d %H-%M-%S.png"
|
||||||
|
spawn-at-startup "throne"
|
||||||
|
|
||||||
|
// You can also set this to null to disable saving screenshots to disk.
|
||||||
|
// screenshot-path null
|
||||||
|
|
||||||
|
// Animation settings.
|
||||||
|
// The wiki explains how to configure individual animations:
|
||||||
|
// https://yalter.github.io/niri/Configuration:-Animations
|
||||||
|
animations {
|
||||||
|
// Uncomment to turn off all animations.
|
||||||
|
// off
|
||||||
|
|
||||||
|
// Slow down all animations by this factor. Values below 1 speed them up instead.
|
||||||
|
// slowdown 3.0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Window rules let you adjust behavior for individual windows.
|
||||||
|
// Find more information on the wiki:
|
||||||
|
// https://yalter.github.io/niri/Configuration:-Window-Rules
|
||||||
|
|
||||||
|
// Work around WezTerm's initial configure bug
|
||||||
|
// by setting an empty default-column-width.
|
||||||
|
window-rule {
|
||||||
|
// This regular expression is intentionally made as specific as possible,
|
||||||
|
// since this is the default config, and we want no false positives.
|
||||||
|
// You can get away with just app-id="wezterm" if you want.
|
||||||
|
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
||||||
|
default-column-width {}
|
||||||
|
}
|
||||||
|
|
||||||
|
window-rule {
|
||||||
|
match app-id="clipse"
|
||||||
|
// match is-floating=true
|
||||||
|
open-maximized true
|
||||||
|
// open-floating true
|
||||||
|
tiled-state false
|
||||||
|
}
|
||||||
|
window-rule {
|
||||||
|
open-maximized false
|
||||||
|
geometry-corner-radius 5
|
||||||
|
tiled-state true
|
||||||
|
clip-to-geometry true
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Open the Firefox picture-in-picture player as floating by default.
|
||||||
|
window-rule {
|
||||||
|
// This app-id regular expression will work for both:
|
||||||
|
// - host Firefox (app-id is "firefox")
|
||||||
|
// - Flatpak Firefox (app-id is "org.mozilla.firefox")
|
||||||
|
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
|
||||||
|
open-floating true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Example: block out two password managers from screen capture.
|
||||||
|
// (This example rule is commented out with a "/-" in front.)
|
||||||
|
/-window-rule {
|
||||||
|
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
|
||||||
|
match app-id=r#"^org\.gnome\.World\.Secrets$"#
|
||||||
|
|
||||||
|
block-out-from "screen-capture"
|
||||||
|
|
||||||
|
// Use this instead if you want them visible on third-party screenshot tools.
|
||||||
|
// block-out-from "screencast"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Example: enable rounded corners for all windows.
|
||||||
|
// (This example rule is commented out with a "/-" in front.)
|
||||||
|
/-window-rule {
|
||||||
|
geometry-corner-radius 12
|
||||||
|
clip-to-geometry true
|
||||||
|
}
|
||||||
|
layer-rule {
|
||||||
|
//clip-to-geometry true
|
||||||
|
match namespace="fnott"
|
||||||
|
baba-is-float true
|
||||||
|
geometry-corner-radius 5
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
environment{
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
xwayland-satellite {
|
||||||
|
// off
|
||||||
|
path "xwayland-satellite"
|
||||||
|
}
|
||||||
|
|
||||||
|
binds {
|
||||||
|
// Keys consist of modifiers separated by + signs, followed by an XKB key name
|
||||||
|
// in the end. To find an XKB name for a particular key, you may use a program
|
||||||
|
// like wev.
|
||||||
|
//
|
||||||
|
// "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
|
||||||
|
// when running as a winit window.
|
||||||
|
//
|
||||||
|
// Most actions that you can bind here can also be invoked programmatically with
|
||||||
|
// `niri msg action do-something`.
|
||||||
|
|
||||||
|
// Mod-Shift-/, which is usually the same as Mod-?,
|
||||||
|
// shows a list of important hotkeys.
|
||||||
|
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||||
|
Super+F{ toggle-window-floating;}
|
||||||
|
// Mod+Shift+L{spawn "gtklock";}
|
||||||
|
|
||||||
|
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
||||||
|
Mod+Q hotkey-overlay-title="Open a Terminal: alacritty" { spawn "kitty"; }
|
||||||
|
Mod+D hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; }
|
||||||
|
Super+W { spawn "kitty" "--class" "clipse" "-e" "clipse"; }
|
||||||
|
Mod+Alt+L hotkey-overlay-title="Lock the Screen: swaylock" { spawn "gtklock"; }
|
||||||
|
|
||||||
|
// Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc.
|
||||||
|
// Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`.
|
||||||
|
// For example, this is a standard bind to toggle the screen reader (orca).
|
||||||
|
Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
|
||||||
|
|
||||||
|
// Example volume keys mappings for PipeWire & WirePlumber.
|
||||||
|
// The allow-when-locked=true property makes them work even when the session is locked.
|
||||||
|
// Using spawn-sh allows to pass multiple arguments together with the command.
|
||||||
|
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; }
|
||||||
|
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
|
||||||
|
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
||||||
|
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
||||||
|
|
||||||
|
// Example brightness key mappings for brightnessctl.
|
||||||
|
// You can use regular spawn with multiple arguments too (to avoid going through "sh"),
|
||||||
|
// but you need to manually put each argument in separate "" quotes.
|
||||||
|
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
|
||||||
|
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
|
||||||
|
|
||||||
|
// Open/close the Overview: a zoomed-out view of workspaces and windows.
|
||||||
|
// You can also move the mouse into the top-left hot corner,
|
||||||
|
// or do a four-finger swipe up on a touchpad.
|
||||||
|
Mod+O repeat=false { toggle-overview; }
|
||||||
|
|
||||||
|
Mod+C repeat=false { close-window; }
|
||||||
|
|
||||||
|
Mod+Left { focus-column-left; }
|
||||||
|
Mod+Down { focus-window-down; }
|
||||||
|
Mod+Up { focus-window-up; }
|
||||||
|
Mod+Right { focus-column-right; }
|
||||||
|
Mod+H { focus-column-left; }
|
||||||
|
Mod+J { focus-window-down; }
|
||||||
|
Mod+K { focus-window-up; }
|
||||||
|
Mod+L { focus-column-right; }
|
||||||
|
|
||||||
|
Mod+Ctrl+Left { move-column-left; }
|
||||||
|
Mod+Ctrl+Down { move-window-down; }
|
||||||
|
Mod+Ctrl+Up { move-window-up; }
|
||||||
|
Mod+Ctrl+Right { move-column-right; }
|
||||||
|
Mod+Ctrl+H { move-column-left; }
|
||||||
|
Mod+Ctrl+J { move-window-down; }
|
||||||
|
Mod+Ctrl+K { move-window-up; }
|
||||||
|
Mod+Ctrl+L { move-column-right; }
|
||||||
|
|
||||||
|
// Alternative commands that move across workspaces when reaching
|
||||||
|
// the first or last window in a column.
|
||||||
|
// Mod+J { focus-window-or-workspace-down; }
|
||||||
|
// Mod+K { focus-window-or-workspace-up; }
|
||||||
|
// Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
|
||||||
|
// Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
|
||||||
|
|
||||||
|
Mod+Home { focus-column-first; }
|
||||||
|
Mod+End { focus-column-last; }
|
||||||
|
Mod+Ctrl+Home { move-column-to-first; }
|
||||||
|
Mod+Ctrl+End { move-column-to-last; }
|
||||||
|
|
||||||
|
Mod+Shift+Left { focus-monitor-left; }
|
||||||
|
Mod+Shift+Down { focus-monitor-down; }
|
||||||
|
Mod+Shift+Up { focus-monitor-up; }
|
||||||
|
Mod+Shift+Right { focus-monitor-right; }
|
||||||
|
Mod+Shift+H { focus-monitor-left; }
|
||||||
|
Mod+Shift+J { focus-monitor-down; }
|
||||||
|
Mod+Shift+K { focus-monitor-up; }
|
||||||
|
// Mod+Shift+L { focus-monitor-right; }
|
||||||
|
|
||||||
|
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
|
||||||
|
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
|
||||||
|
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
|
||||||
|
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
|
||||||
|
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
|
||||||
|
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
|
||||||
|
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
|
||||||
|
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
|
||||||
|
|
||||||
|
// Alternatively, there are commands to move just a single window:
|
||||||
|
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
|
||||||
|
// ...
|
||||||
|
|
||||||
|
// And you can also move a whole workspace to another monitor:
|
||||||
|
// Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
|
||||||
|
// ...
|
||||||
|
|
||||||
|
Mod+Page_Down { focus-workspace-down; }
|
||||||
|
Mod+Page_Up { focus-workspace-up; }
|
||||||
|
Mod+U { focus-workspace-down; }
|
||||||
|
Mod+I { focus-workspace-up; }
|
||||||
|
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
|
||||||
|
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
|
||||||
|
Mod+Ctrl+U { move-column-to-workspace-down; }
|
||||||
|
Mod+Ctrl+I { move-column-to-workspace-up; }
|
||||||
|
|
||||||
|
// Alternatively, there are commands to move just a single window:
|
||||||
|
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
|
||||||
|
// ...
|
||||||
|
|
||||||
|
Mod+Shift+Page_Down { move-workspace-down; }
|
||||||
|
Mod+Shift+Page_Up { move-workspace-up; }
|
||||||
|
Mod+Shift+U { move-workspace-down; }
|
||||||
|
Mod+Shift+I { move-workspace-up; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Mod+Shift+MouseForward { focus-workspace-down; }
|
||||||
|
Mod+Shift+MouseBack { focus-workspace-up; }
|
||||||
|
|
||||||
|
Mod+MouseForward { focus-column-right; }
|
||||||
|
Mod+MouseBack { focus-column-left; }
|
||||||
|
// You can bind mouse wheel scroll ticks using the following syntax.
|
||||||
|
// These binds will change direction based on the natural-scroll setting.
|
||||||
|
//
|
||||||
|
// To avoid scrolling through workspaces really fast, you can use
|
||||||
|
// the cooldown-ms property. The bind will be rate-limited to this value.
|
||||||
|
// You can set a cooldown on any bind, but it's most useful for the wheel.
|
||||||
|
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||||
|
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||||
|
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||||
|
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||||
|
|
||||||
|
Mod+WheelScrollRight { focus-column-right; }
|
||||||
|
Mod+WheelScrollLeft { focus-column-left; }
|
||||||
|
Mod+Ctrl+WheelScrollRight { move-column-right; }
|
||||||
|
Mod+Ctrl+WheelScrollLeft { move-column-left; }
|
||||||
|
|
||||||
|
// Usually scrolling up and down with Shift in applications results in
|
||||||
|
// horizontal scrolling; these binds replicate that.
|
||||||
|
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||||
|
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||||
|
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||||
|
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||||
|
|
||||||
|
// Similarly, you can bind touchpad scroll "ticks".
|
||||||
|
// Touchpad scrolling is continuous, so for these binds it is split into
|
||||||
|
// discrete intervals.
|
||||||
|
// These binds are also affected by touchpad's natural-scroll, so these
|
||||||
|
// example binds are "inverted", since we have natural-scroll enabled for
|
||||||
|
// touchpads by default.
|
||||||
|
// Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
|
||||||
|
// Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }
|
||||||
|
|
||||||
|
// You can refer to workspaces by index. However, keep in mind that
|
||||||
|
// niri is a dynamic workspace system, so these commands are kind of
|
||||||
|
// "best effort". Trying to refer to a workspace index bigger than
|
||||||
|
// the current workspace count will instead refer to the bottommost
|
||||||
|
// (empty) workspace.
|
||||||
|
//
|
||||||
|
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
|
||||||
|
// will all refer to the 3rd workspace.
|
||||||
|
Mod+1 { focus-workspace 1; }
|
||||||
|
Mod+2 { focus-workspace 2; }
|
||||||
|
Mod+3 { focus-workspace 3; }
|
||||||
|
Mod+4 { focus-workspace 4; }
|
||||||
|
Mod+5 { focus-workspace 5; }
|
||||||
|
Mod+6 { focus-workspace 6; }
|
||||||
|
Mod+7 { focus-workspace 7; }
|
||||||
|
Mod+8 { focus-workspace 8; }
|
||||||
|
Mod+9 { focus-workspace 9; }
|
||||||
|
Mod+Ctrl+1 { move-column-to-workspace 1; }
|
||||||
|
Mod+Ctrl+2 { move-column-to-workspace 2; }
|
||||||
|
Mod+Ctrl+3 { move-column-to-workspace 3; }
|
||||||
|
Mod+Ctrl+4 { move-column-to-workspace 4; }
|
||||||
|
Mod+Ctrl+5 { move-column-to-workspace 5; }
|
||||||
|
Mod+Ctrl+6 { move-column-to-workspace 6; }
|
||||||
|
Mod+Ctrl+7 { move-column-to-workspace 7; }
|
||||||
|
Mod+Ctrl+8 { move-column-to-workspace 8; }
|
||||||
|
Mod+Ctrl+9 { move-column-to-workspace 9; }
|
||||||
|
|
||||||
|
// Alternatively, there are commands to move just a single window:
|
||||||
|
// Mod+Ctrl+1 { move-window-to-workspace 1; }
|
||||||
|
|
||||||
|
// Switches focus between the current and the previous workspace.
|
||||||
|
Mod+Tab { focus-workspace-previous; }
|
||||||
|
|
||||||
|
// The following binds move the focused window in and out of a column.
|
||||||
|
// If the window is alone, they will consume it into the nearby column to the side.
|
||||||
|
// If the window is already in a column, they will expel it out.
|
||||||
|
Mod+BracketLeft { consume-or-expel-window-left; }
|
||||||
|
Mod+BracketRight { consume-or-expel-window-right; }
|
||||||
|
|
||||||
|
// Consume one window from the right to the bottom of the focused column.
|
||||||
|
Mod+Comma { consume-window-into-column; }
|
||||||
|
// Expel the bottom window from the focused column to the right.
|
||||||
|
Mod+Period { expel-window-from-column; }
|
||||||
|
|
||||||
|
Mod+R { switch-preset-column-width; }
|
||||||
|
Mod+Shift+W { toggle-column-tabbed-display; }
|
||||||
|
// Cycling through the presets in reverse order is also possible.
|
||||||
|
// Mod+R { switch-preset-column-width-back; }
|
||||||
|
Mod+Shift+R { switch-preset-window-height; }
|
||||||
|
Mod+Ctrl+R { reset-window-height; }
|
||||||
|
Mod+A { maximize-column; }
|
||||||
|
Mod+Shift+A { fullscreen-window; }
|
||||||
|
|
||||||
|
// Expand the focused column to space not taken up by other fully visible columns.
|
||||||
|
// Makes the column "fill the rest of the space".
|
||||||
|
Mod+Ctrl+F { expand-column-to-available-width; }
|
||||||
|
|
||||||
|
Mod+M { center-column; }
|
||||||
|
|
||||||
|
// Center all fully visible columns on screen.
|
||||||
|
Mod+Ctrl+C { center-visible-columns; }
|
||||||
|
|
||||||
|
// Finer width adjustments.
|
||||||
|
// This command can also:
|
||||||
|
// * set width in pixels: "1000"
|
||||||
|
// * adjust width in pixels: "-5" or "+5"
|
||||||
|
// * set width as a percentage of screen width: "25%"
|
||||||
|
// * adjust width as a percentage of screen width: "-10%" or "+10%"
|
||||||
|
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
|
||||||
|
// set-column-width "100" will make the column occupy 200 physical screen pixels.
|
||||||
|
Mod+Minus { set-column-width "-10%"; }
|
||||||
|
Mod+Equal { set-column-width "+10%"; }
|
||||||
|
|
||||||
|
// Finer height adjustments when in column with other windows.
|
||||||
|
Mod+Shift+Minus { set-window-height "-10%"; }
|
||||||
|
Mod+Shift+Equal { set-window-height "+10%"; }
|
||||||
|
|
||||||
|
// Move the focused window between the floating and the tiling layout.
|
||||||
|
Mod+V { toggle-window-floating; }
|
||||||
|
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
|
||||||
|
|
||||||
|
// Toggle tabbed column display mode.
|
||||||
|
// Windows in this column will appear as vertical tabs,
|
||||||
|
// rather than stacked on top of each other.
|
||||||
|
//Mod+W { toggle-column-tabbed-display; }
|
||||||
|
|
||||||
|
// Actions to switch layouts.
|
||||||
|
// Note: if you uncomment these, make sure you do NOT have
|
||||||
|
// a matching layout switch hotkey configured in xkb options above.
|
||||||
|
// Having both at once on the same hotkey will break the switching,
|
||||||
|
// since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
|
||||||
|
// Mod+Space { switch-layout "next"; }
|
||||||
|
// Mod+Shift+Space { switch-layout "prev"; }
|
||||||
|
|
||||||
|
Mod+Shift+S { screenshot; }
|
||||||
|
Ctrl+Print { screenshot-screen; }
|
||||||
|
Alt+Print { screenshot-window; }
|
||||||
|
|
||||||
|
// Applications such as remote-desktop clients and software KVM switches may
|
||||||
|
// request that niri stops processing the keyboard shortcuts defined here
|
||||||
|
// so they may, for example, forward the key presses as-is to a remote machine.
|
||||||
|
// It's a good idea to bind an escape hatch to toggle the inhibitor,
|
||||||
|
// so a buggy application can't hold your session hostage.
|
||||||
|
//
|
||||||
|
// The allow-inhibiting=false property can be applied to other binds as well,
|
||||||
|
// which ensures niri always processes them, even when an inhibitor is active.
|
||||||
|
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
|
||||||
|
|
||||||
|
// The quit action will show a confirmation dialog to avoid accidental exits.
|
||||||
|
Mod+Shift+E { quit; }
|
||||||
|
Ctrl+Alt+Delete { quit; }
|
||||||
|
|
||||||
|
// Powers off the monitors. To turn them back on, do any input like
|
||||||
|
// moving the mouse or pressing any other key.
|
||||||
|
Mod+Shift+P { power-off-monitors; }
|
||||||
|
}
|
||||||
563
.config/niri/config.kdl
Normal file
563
.config/niri/config.kdl
Normal file
|
|
@ -0,0 +1,563 @@
|
||||||
|
input {
|
||||||
|
keyboard {
|
||||||
|
xkb {
|
||||||
|
layout "us,ru"
|
||||||
|
options "grp:caps_toggle"
|
||||||
|
}
|
||||||
|
repeat-delay 250
|
||||||
|
repeat-rate 25
|
||||||
|
// track-layout "global"
|
||||||
|
numlock
|
||||||
|
}
|
||||||
|
touchpad {
|
||||||
|
// off
|
||||||
|
tap
|
||||||
|
// dwt
|
||||||
|
// dwtp
|
||||||
|
// drag false
|
||||||
|
// drag-lock
|
||||||
|
natural-scroll
|
||||||
|
// accel-speed 0.2
|
||||||
|
// accel-profile "flat"
|
||||||
|
// scroll-method "two-finger"
|
||||||
|
// disabled-on-external-mouse
|
||||||
|
}
|
||||||
|
|
||||||
|
mouse {
|
||||||
|
// off
|
||||||
|
// natural-scroll
|
||||||
|
// accel-speed 0.2
|
||||||
|
accel-profile "adaptive"
|
||||||
|
scroll-button 274
|
||||||
|
|
||||||
|
scroll-method "on-button-down"
|
||||||
|
}
|
||||||
|
warp-mouse-to-focus
|
||||||
|
focus-follows-mouse max-scroll-amount="50%"
|
||||||
|
|
||||||
|
trackpoint {
|
||||||
|
// off
|
||||||
|
// natural-scroll
|
||||||
|
// accel-speed 0.2
|
||||||
|
// accel-profile "flat"
|
||||||
|
// scroll-method "on-button-down"
|
||||||
|
// scroll-button 273
|
||||||
|
// scroll-button-lock
|
||||||
|
// middle-emulation
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
/-output "DP-1" {
|
||||||
|
// off
|
||||||
|
mode "1920x1080@165.000"
|
||||||
|
scale 1.0
|
||||||
|
transform "normal"
|
||||||
|
position x=1280 y=0
|
||||||
|
variable-refresh-rate on-demand=true
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
layout {
|
||||||
|
gaps 5
|
||||||
|
|
||||||
|
center-focused-column "never"
|
||||||
|
default-column-display "normal"
|
||||||
|
preset-column-widths {
|
||||||
|
proportion 0.5
|
||||||
|
proportion 1.0
|
||||||
|
}
|
||||||
|
|
||||||
|
preset-window-heights {
|
||||||
|
proportion 0.5
|
||||||
|
proportion 1.0
|
||||||
|
}
|
||||||
|
|
||||||
|
default-column-width { proportion 0.5; }
|
||||||
|
|
||||||
|
// By default focus ring and border are rendered as a solid background rectangle
|
||||||
|
// behind windows. That is, they will show up through semitransparent windows.
|
||||||
|
// This is because windows using client-side decorations can have an arbitrary shape.
|
||||||
|
//
|
||||||
|
// If you don't like that, you should uncomment `prefer-no-csd` below.
|
||||||
|
// Niri will draw focus ring and border *around* windows that agree to omit their
|
||||||
|
// client-side decorations.
|
||||||
|
//
|
||||||
|
// Alternatively, you can override it with a window rule called
|
||||||
|
// `draw-border-with-background`.
|
||||||
|
|
||||||
|
// You can change how the focus ring looks.
|
||||||
|
focus-ring {
|
||||||
|
// off
|
||||||
|
|
||||||
|
width 2
|
||||||
|
// - CSS named colors: "red"
|
||||||
|
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
|
||||||
|
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
|
||||||
|
// active-color "#EEF7FD"
|
||||||
|
active-color "#C1D6D6"
|
||||||
|
// foreground #C1D6D6
|
||||||
|
//background #07090B
|
||||||
|
inactive-color "#000000"
|
||||||
|
// Changing the color space is also supported, check the wiki for more info.
|
||||||
|
//
|
||||||
|
// active-gradient from="#80c8ff" to="#c7ff7f" angle=45
|
||||||
|
|
||||||
|
// You can also color the gradient relative to the entire view
|
||||||
|
// of the workspace, rather than relative to just the window itself.
|
||||||
|
// To do that, set relative-to="workspace-view".
|
||||||
|
//
|
||||||
|
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||||
|
}
|
||||||
|
|
||||||
|
// You can also add a border. It's similar to the focus ring, but always visible.
|
||||||
|
border {
|
||||||
|
off
|
||||||
|
urgent-color "#9b0000"
|
||||||
|
}
|
||||||
|
|
||||||
|
shadow {
|
||||||
|
color "#0007"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Struts shrink the area occupied by windows, similarly to layer-shell panels.
|
||||||
|
// You can think of them as a kind of outer gaps. They are set in logical pixels.
|
||||||
|
// Left and right struts will cause the next window to the side to always be visible.
|
||||||
|
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
|
||||||
|
// layer-shell panels and regular gaps.
|
||||||
|
struts {
|
||||||
|
// left 64
|
||||||
|
// right 64
|
||||||
|
// top 64
|
||||||
|
// bottom 64
|
||||||
|
}
|
||||||
|
tab-indicator{
|
||||||
|
// off
|
||||||
|
}
|
||||||
|
insert-hint {
|
||||||
|
off
|
||||||
|
color "#ffc87f80"
|
||||||
|
gradient from="#ffbb6680" to="#ffc88080" angle=45 relative-to="workspace-view"
|
||||||
|
}
|
||||||
|
|
||||||
|
background-color "#07090B"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
overview {
|
||||||
|
zoom 0.45
|
||||||
|
backdrop-color "#07090b"
|
||||||
|
|
||||||
|
workspace-shadow {
|
||||||
|
off
|
||||||
|
}
|
||||||
|
}
|
||||||
|
clipboard {
|
||||||
|
disable-primary
|
||||||
|
}
|
||||||
|
cursor {
|
||||||
|
//xcursor-theme "Dot-Dark"
|
||||||
|
xcursor-size 12
|
||||||
|
hide-when-typing
|
||||||
|
hide-after-inactive-ms 1000
|
||||||
|
}
|
||||||
|
|
||||||
|
spawn-at-startup "waybar"
|
||||||
|
|
||||||
|
spawn-at-startup "fnott"
|
||||||
|
spawn-at-startup "clipse" "-listen"
|
||||||
|
|
||||||
|
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
|
||||||
|
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
|
||||||
|
|
||||||
|
hotkey-overlay {
|
||||||
|
// Uncomment this line to disable the "Important Hotkeys" pop-up at startup.
|
||||||
|
skip-at-startup
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
|
||||||
|
// If the client will specifically ask for CSD, the request will be honored.
|
||||||
|
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
|
||||||
|
// This option will also fix border/focus ring drawing behind some semitransparent windows.
|
||||||
|
// After enabling or disabling this, you need to restart the apps for this to take effect.
|
||||||
|
prefer-no-csd
|
||||||
|
|
||||||
|
// You can change the path where screenshots are saved.
|
||||||
|
// A ~ at the front will be expanded to the home directory.
|
||||||
|
// The path is formatted with strftime(3) to give you the screenshot date and time.
|
||||||
|
screenshot-path "~/imgs/screenshots/screenshot from %Y-%m-%d %H-%M-%S.png"
|
||||||
|
spawn-at-startup "throne"
|
||||||
|
|
||||||
|
// You can also set this to null to disable saving screenshots to disk.
|
||||||
|
// screenshot-path null
|
||||||
|
|
||||||
|
// Animation settings.
|
||||||
|
// The wiki explains how to configure individual animations:
|
||||||
|
// https://yalter.github.io/niri/Configuration:-Animations
|
||||||
|
animations {
|
||||||
|
// Uncomment to turn off all animations.
|
||||||
|
// off
|
||||||
|
|
||||||
|
// Slow down all animations by this factor. Values below 1 speed them up instead.
|
||||||
|
slowdown 1.0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Window rules let you adjust behavior for individual windows.
|
||||||
|
// Find more information on the wiki:
|
||||||
|
// https://yalter.github.io/niri/Configuration:-Window-Rules
|
||||||
|
|
||||||
|
// Work around WezTerm's initial configure bug
|
||||||
|
// by setting an empty default-column-width.
|
||||||
|
window-rule {
|
||||||
|
// This regular expression is intentionally made as specific as possible,
|
||||||
|
// since this is the default config, and we want no false positives.
|
||||||
|
// You can get away with just app-id="wezterm" if you want.
|
||||||
|
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
||||||
|
default-column-width {
|
||||||
|
proportion 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window-rule {
|
||||||
|
match app-id="clipse"
|
||||||
|
// match is-floating=true
|
||||||
|
open-maximized true
|
||||||
|
// open-floating true
|
||||||
|
tiled-state false
|
||||||
|
}
|
||||||
|
window-rule {
|
||||||
|
open-maximized false
|
||||||
|
geometry-corner-radius 5
|
||||||
|
tiled-state true
|
||||||
|
clip-to-geometry true
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Open the Firefox picture-in-picture player as floating by default.
|
||||||
|
window-rule {
|
||||||
|
// This app-id regular expression will work for both:
|
||||||
|
// - host Firefox (app-id is "firefox")
|
||||||
|
// - Flatpak Firefox (app-id is "org.mozilla.firefox")
|
||||||
|
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
|
||||||
|
open-floating true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Example: block out two password managers from screen capture.
|
||||||
|
// (This example rule is commented out with a "/-" in front.)
|
||||||
|
/-window-rule {
|
||||||
|
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
|
||||||
|
match app-id=r#"^org\.gnome\.World\.Secrets$"#
|
||||||
|
|
||||||
|
block-out-from "screen-capture"
|
||||||
|
|
||||||
|
// Use this instead if you want them visible on third-party screenshot tools.
|
||||||
|
// block-out-from "screencast"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Example: enable rounded corners for all windows.
|
||||||
|
// (This example rule is commented out with a "/-" in front.)
|
||||||
|
/-window-rule {
|
||||||
|
geometry-corner-radius 12
|
||||||
|
clip-to-geometry true
|
||||||
|
}
|
||||||
|
layer-rule {
|
||||||
|
//clip-to-geometry true
|
||||||
|
match namespace="fnott"
|
||||||
|
geometry-corner-radius 5
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
environment{
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
xwayland-satellite {
|
||||||
|
// off
|
||||||
|
path "xwayland-satellite"
|
||||||
|
}
|
||||||
|
|
||||||
|
binds {
|
||||||
|
// Keys consist of modifiers separated by + signs, followed by an XKB key name
|
||||||
|
// in the end. To find an XKB name for a particular key, you may use a program
|
||||||
|
// like wev.
|
||||||
|
//
|
||||||
|
// "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
|
||||||
|
// when running as a winit window.
|
||||||
|
//
|
||||||
|
// Most actions that you can bind here can also be invoked programmatically with
|
||||||
|
// `niri msg action do-something`.
|
||||||
|
|
||||||
|
// Mod-Shift-/, which is usually the same as Mod-?,
|
||||||
|
// shows a list of important hotkeys.
|
||||||
|
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||||
|
Super+F{ toggle-window-floating;}
|
||||||
|
|
||||||
|
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
||||||
|
Mod+Q { spawn "kitty"; }
|
||||||
|
Mod+D { spawn "fuzzel"; }
|
||||||
|
Super+W { spawn "kitty" "--class" "clipse" "-e" "clipse"; }
|
||||||
|
Mod+Alt+L { spawn "gtklock"; }
|
||||||
|
Mod+Shift+P{spawn "shutdown" "now";}
|
||||||
|
Mod+Shift+Alt+P{spawn "shutdown" "-" "c";}
|
||||||
|
Alt+C{spawn "hyprpicker" "-a";}
|
||||||
|
|
||||||
|
// Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc.
|
||||||
|
// Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`.
|
||||||
|
// For example, this is a standard bind to toggle the screen reader (orca).
|
||||||
|
Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
|
||||||
|
|
||||||
|
// Example volume keys mappings for PipeWire & WirePlumber.
|
||||||
|
// The allow-when-locked=true property makes them work even when the session is locked.
|
||||||
|
// Using spawn-sh allows to pass multiple arguments together with the command.
|
||||||
|
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; }
|
||||||
|
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
|
||||||
|
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
||||||
|
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
||||||
|
|
||||||
|
// Example brightness key mappings for brightnessctl.
|
||||||
|
// You can use regular spawn with multiple arguments too (to avoid going through "sh"),
|
||||||
|
// but you need to manually put each argument in separate "" quotes.
|
||||||
|
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
|
||||||
|
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
|
||||||
|
|
||||||
|
// Open/close the Overview: a zoomed-out view of workspaces and windows.
|
||||||
|
// You can also move the mouse into the top-left hot corner,
|
||||||
|
// or do a four-finger swipe up on a touchpad.
|
||||||
|
Mod+O repeat=false { toggle-overview; }
|
||||||
|
|
||||||
|
Mod+C repeat=false { close-window; }
|
||||||
|
|
||||||
|
Mod+Left { focus-column-left; }
|
||||||
|
Mod+Down { focus-window-down; }
|
||||||
|
Mod+Up { focus-window-up; }
|
||||||
|
Mod+Right { focus-column-right; }
|
||||||
|
Mod+H { focus-column-left; }
|
||||||
|
Mod+J { focus-window-down; }
|
||||||
|
Mod+K { focus-window-up; }
|
||||||
|
Mod+L { focus-column-right; }
|
||||||
|
|
||||||
|
Mod+Ctrl+Left { move-column-left; }
|
||||||
|
Mod+Ctrl+Down { move-window-down; }
|
||||||
|
Mod+Ctrl+Up { move-window-up; }
|
||||||
|
Mod+Ctrl+Right { move-column-right; }
|
||||||
|
Mod+Ctrl+H { move-column-left; }
|
||||||
|
Mod+Ctrl+J { move-window-down; }
|
||||||
|
Mod+Ctrl+K { move-window-up; }
|
||||||
|
Mod+Ctrl+L { move-column-right; }
|
||||||
|
|
||||||
|
// Alternative commands that move across workspaces when reaching
|
||||||
|
// the first or last window in a column.
|
||||||
|
// Mod+J { focus-window-or-workspace-down; }
|
||||||
|
// Mod+K { focus-window-or-workspace-up; }
|
||||||
|
// Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
|
||||||
|
// Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
|
||||||
|
|
||||||
|
Mod+Home { focus-column-first; }
|
||||||
|
Mod+End { focus-column-last; }
|
||||||
|
Mod+Ctrl+Home { move-column-to-first; }
|
||||||
|
Mod+Ctrl+End { move-column-to-last; }
|
||||||
|
|
||||||
|
Mod+Shift+Left { focus-monitor-left; }
|
||||||
|
Mod+Shift+Down { focus-monitor-down; }
|
||||||
|
Mod+Shift+Up { focus-monitor-up; }
|
||||||
|
Mod+Shift+Right { focus-monitor-right; }
|
||||||
|
Mod+Shift+H { focus-monitor-left; }
|
||||||
|
Mod+Shift+J { focus-monitor-down; }
|
||||||
|
Mod+Shift+K { focus-monitor-up; }
|
||||||
|
// Mod+Shift+L { focus-monitor-right; }
|
||||||
|
|
||||||
|
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
|
||||||
|
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
|
||||||
|
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
|
||||||
|
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
|
||||||
|
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
|
||||||
|
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
|
||||||
|
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
|
||||||
|
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
|
||||||
|
|
||||||
|
// Alternatively, there are commands to move just a single window:
|
||||||
|
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
|
||||||
|
// ...
|
||||||
|
|
||||||
|
// And you can also move a whole workspace to another monitor:
|
||||||
|
// Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
|
||||||
|
// ...
|
||||||
|
|
||||||
|
Mod+Page_Down { focus-workspace-down; }
|
||||||
|
Mod+Page_Up { focus-workspace-up; }
|
||||||
|
Mod+U { focus-workspace-down; }
|
||||||
|
Mod+I { focus-workspace-up; }
|
||||||
|
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
|
||||||
|
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
|
||||||
|
Mod+Ctrl+U { move-column-to-workspace-down; }
|
||||||
|
Mod+Ctrl+I { move-column-to-workspace-up; }
|
||||||
|
|
||||||
|
// Alternatively, there are commands to move just a single window:
|
||||||
|
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
|
||||||
|
// ...
|
||||||
|
|
||||||
|
Mod+Shift+Page_Down { move-workspace-down; }
|
||||||
|
Mod+Shift+Page_Up { move-workspace-up; }
|
||||||
|
Mod+Shift+U { move-workspace-down; }
|
||||||
|
Mod+Shift+I { move-workspace-up; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Mod+Shift+MouseForward { focus-workspace-down; }
|
||||||
|
Mod+Shift+MouseBack { focus-workspace-up; }
|
||||||
|
|
||||||
|
Mod+MouseForward { focus-column-right; }
|
||||||
|
Mod+MouseBack { focus-column-left; }
|
||||||
|
// You can bind mouse wheel scroll ticks using the following syntax.
|
||||||
|
// These binds will change direction based on the natural-scroll setting.
|
||||||
|
//
|
||||||
|
// To avoid scrolling through workspaces really fast, you can use
|
||||||
|
// the cooldown-ms property. The bind will be rate-limited to this value.
|
||||||
|
// You can set a cooldown on any bind, but it's most useful for the wheel.
|
||||||
|
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||||
|
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||||
|
|
||||||
|
//Mod+Shift+WheelScrollDown cooldown-ms=150 { focus-column-left; }
|
||||||
|
//Mod+Shift+WheelScrollUp cooldown-ms=150 { focus-column-right; }
|
||||||
|
|
||||||
|
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||||
|
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||||
|
|
||||||
|
Mod+WheelScrollRight { focus-column-right; }
|
||||||
|
Mod+WheelScrollLeft { focus-column-left; }
|
||||||
|
Mod+Ctrl+WheelScrollRight { move-column-right; }
|
||||||
|
Mod+Ctrl+WheelScrollLeft { move-column-left; }
|
||||||
|
|
||||||
|
// Usually scrolling up and down with Shift in applications results in
|
||||||
|
// horizontal scrolling; these binds replicate that.
|
||||||
|
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||||
|
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||||
|
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||||
|
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||||
|
|
||||||
|
// Similarly, you can bind touchpad scroll "ticks".
|
||||||
|
// Touchpad scrolling is continuous, so for these binds it is split into
|
||||||
|
// discrete intervals.
|
||||||
|
// These binds are also affected by touchpad's natural-scroll, so these
|
||||||
|
// example binds are "inverted", since we have natural-scroll enabled for
|
||||||
|
// touchpads by default.
|
||||||
|
// Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
|
||||||
|
// Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }
|
||||||
|
|
||||||
|
// You can refer to workspaces by index. However, keep in mind that
|
||||||
|
// niri is a dynamic workspace system, so these commands are kind of
|
||||||
|
// "best effort". Trying to refer to a workspace index bigger than
|
||||||
|
// the current workspace count will instead refer to the bottommost
|
||||||
|
// (empty) workspace.
|
||||||
|
//
|
||||||
|
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
|
||||||
|
// will all refer to the 3rd workspace.
|
||||||
|
Mod+1 { focus-workspace 1; }
|
||||||
|
Mod+2 { focus-workspace 2; }
|
||||||
|
Mod+3 { focus-workspace 3; }
|
||||||
|
Mod+4 { focus-workspace 4; }
|
||||||
|
Mod+5 { focus-workspace 5; }
|
||||||
|
Mod+6 { focus-workspace 6; }
|
||||||
|
Mod+7 { focus-workspace 7; }
|
||||||
|
Mod+8 { focus-workspace 8; }
|
||||||
|
Mod+9 { focus-workspace 9; }
|
||||||
|
Mod+Ctrl+1 { move-column-to-workspace 1; }
|
||||||
|
Mod+Ctrl+2 { move-column-to-workspace 2; }
|
||||||
|
Mod+Ctrl+3 { move-column-to-workspace 3; }
|
||||||
|
Mod+Ctrl+4 { move-column-to-workspace 4; }
|
||||||
|
Mod+Ctrl+5 { move-column-to-workspace 5; }
|
||||||
|
Mod+Ctrl+6 { move-column-to-workspace 6; }
|
||||||
|
Mod+Ctrl+7 { move-column-to-workspace 7; }
|
||||||
|
Mod+Ctrl+8 { move-column-to-workspace 8; }
|
||||||
|
Mod+Ctrl+9 { move-column-to-workspace 9; }
|
||||||
|
|
||||||
|
// Alternatively, there are commands to move just a single window:
|
||||||
|
// Mod+Ctrl+1 { move-window-to-workspace 1; }
|
||||||
|
|
||||||
|
// Switches focus between the current and the previous workspace.
|
||||||
|
Mod+Tab { focus-workspace-previous; }
|
||||||
|
|
||||||
|
// The following binds move the focused window in and out of a column.
|
||||||
|
// If the window is alone, they will consume it into the nearby column to the side.
|
||||||
|
// If the window is already in a column, they will expel it out.
|
||||||
|
Mod+BracketLeft { consume-or-expel-window-left; }
|
||||||
|
Mod+BracketRight { consume-or-expel-window-right; }
|
||||||
|
|
||||||
|
// Consume one window from the right to the bottom of the focused column.
|
||||||
|
Mod+Comma { consume-window-into-column; }
|
||||||
|
// Expel the bottom window from the focused column to the right.
|
||||||
|
Mod+Period { expel-window-from-column; }
|
||||||
|
|
||||||
|
Mod+R repeat=false { switch-preset-column-width; }
|
||||||
|
Mod+Shift+W { toggle-column-tabbed-display; }
|
||||||
|
// Cycling through the presets in reverse order is also possible.
|
||||||
|
// Mod+R { switch-preset-column-width-back; }
|
||||||
|
Mod+Shift+R repeat=false { switch-preset-window-height; }
|
||||||
|
Mod+Ctrl+R { reset-window-height; }
|
||||||
|
Mod+A repeat=false { maximize-column; }
|
||||||
|
Mod+Shift+A repeat=false { fullscreen-window; }
|
||||||
|
|
||||||
|
// Expand the focused column to space not taken up by other fully visible columns.
|
||||||
|
// Makes the column "fill the rest of the space".
|
||||||
|
Mod+Ctrl+F { expand-column-to-available-width; }
|
||||||
|
|
||||||
|
Mod+M { center-column; }
|
||||||
|
|
||||||
|
// Center all fully visible columns on screen.
|
||||||
|
Mod+Ctrl+C { center-visible-columns; }
|
||||||
|
|
||||||
|
// Finer width adjustments.
|
||||||
|
// This command can also:
|
||||||
|
// * set width in pixels: "1000"
|
||||||
|
// * adjust width in pixels: "-5" or "+5"
|
||||||
|
// * set width as a percentage of screen width: "25%"
|
||||||
|
// * adjust width as a percentage of screen width: "-10%" or "+10%"
|
||||||
|
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
|
||||||
|
// set-column-width "100" will make the column occupy 200 physical screen pixels.
|
||||||
|
Mod+Minus { set-column-width "-10%"; }
|
||||||
|
Mod+Equal { set-column-width "+10%"; }
|
||||||
|
|
||||||
|
// Finer height adjustments when in column with other windows.
|
||||||
|
Mod+Shift+Minus { set-window-height "-10%"; }
|
||||||
|
Mod+Shift+Equal { set-window-height "+10%"; }
|
||||||
|
|
||||||
|
// Move the focused window between the floating and the tiling layout.
|
||||||
|
Mod+V { toggle-window-floating; }
|
||||||
|
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
|
||||||
|
|
||||||
|
// Toggle tabbed column display mode.
|
||||||
|
// Windows in this column will appear as vertical tabs,
|
||||||
|
// rather than stacked on top of each other.
|
||||||
|
Mod+N { toggle-column-tabbed-display; }
|
||||||
|
|
||||||
|
// Actions to switch layouts.
|
||||||
|
// Note: if you uncomment these, make sure you do NOT have
|
||||||
|
// a matching layout switch hotkey configured in xkb options above.
|
||||||
|
// Having both at once on the same hotkey will break the switching,
|
||||||
|
// since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
|
||||||
|
// Mod+Space { switch-layout "next"; }
|
||||||
|
// Mod+Shift+Space { switch-layout "prev"; }
|
||||||
|
|
||||||
|
Mod+S { screenshot; }
|
||||||
|
Super+Shift+S { screenshot-screen; }
|
||||||
|
Alt+Print { screenshot-window; }
|
||||||
|
|
||||||
|
// Applications such as remote-desktop clients and software KVM switches may
|
||||||
|
// request that niri stops processing the keyboard shortcuts defined here
|
||||||
|
// so they may, for example, forward the key presses as-is to a remote machine.
|
||||||
|
// It's a good idea to bind an escape hatch to toggle the inhibitor,
|
||||||
|
// so a buggy application can't hold your session hostage.
|
||||||
|
//
|
||||||
|
// The allow-inhibiting=false property can be applied to other binds as well,
|
||||||
|
// which ensures niri always processes them, even when an inhibitor is active.
|
||||||
|
//Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
|
||||||
|
|
||||||
|
// The quit action will show a confirmation dialog to avoid accidental exits.
|
||||||
|
Mod+Shift+Escape { quit; }
|
||||||
|
Ctrl+Alt+Delete { quit; }
|
||||||
|
|
||||||
|
// Powers off the monitors. To turn them back on, do any input like
|
||||||
|
// moving the mouse or pressing any other key.
|
||||||
|
//Mod+Shift+P { power-off-monitors; }
|
||||||
|
}
|
||||||
35
.config/nvim/lazy-lock.json
Normal file
35
.config/nvim/lazy-lock.json
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
{
|
||||||
|
"LazyVim": { "branch": "main", "commit": "060e6dfaf7d4157b1a144df7d83179640dc52400" },
|
||||||
|
"blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" },
|
||||||
|
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
||||||
|
"catppuccin": { "branch": "main", "commit": "5af9374957a65be8770696da295dc9016b96f241" },
|
||||||
|
"conform.nvim": { "branch": "master", "commit": "016bc8174a675e1dbf884b06a165cd0c6c03f9af" },
|
||||||
|
"flash.nvim": { "branch": "main", "commit": "b68bda044d68e4026c4e1ec6df3c5afd7eb8e341" },
|
||||||
|
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "23ae90a2a52fdc9b8c50dc61d6c30ebb18521343" },
|
||||||
|
"grug-far.nvim": { "branch": "main", "commit": "48f9afb684de1c191af7bed96bc1db85ba33f6a4" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||||
|
"lazydev.nvim": { "branch": "main", "commit": "258d2a5ef4a3e3d6d9ba9da72c9725c53e9afcbd" },
|
||||||
|
"lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "f760507df8c49a4bf46a4d12e1fc616797508979" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "b3689a41dd77e5294498dba9757fb22cc80cbebd" },
|
||||||
|
"mini.ai": { "branch": "main", "commit": "e0d00c227112e942ed2789dd4c21d651002831c0" },
|
||||||
|
"mini.icons": { "branch": "main", "commit": "e8fae66cb400744daeedf6e387347df50271c252" },
|
||||||
|
"mini.pairs": { "branch": "main", "commit": "bada72fe4ec607f882a098d15aa4a3279bc6883d" },
|
||||||
|
"noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
|
||||||
|
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||||
|
"nvim-lint": { "branch": "master", "commit": "335a6044be16d7701001059cba9baa36fbeef422" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "0867a61e745920dd754c660a504fed4afb44bd0f" },
|
||||||
|
"nvim-treesitter": { "branch": "main", "commit": "77362027f7aa850c87419fd571151e76b0b342a6" },
|
||||||
|
"nvim-treesitter-textobjects": { "branch": "main", "commit": "1b2d85d3de6114c4bcea89ffb2cd1ce9e3a19931" },
|
||||||
|
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
|
||||||
|
"persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||||
|
"snacks.nvim": { "branch": "main", "commit": "5d9dacd09876eed33bde204d224fa7596ac850e8" },
|
||||||
|
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
|
||||||
|
"tokyonight.nvim": { "branch": "main", "commit": "4d159616aee17796c2c94d2f5f87d2ee1a3f67c7" },
|
||||||
|
"trouble.nvim": { "branch": "main", "commit": "f176232e7759c4f8abd923c21e3e5a5c76cd6837" },
|
||||||
|
"ts-comments.nvim": { "branch": "main", "commit": "1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "904308e6885bbb7b60714c80ab3daf0c071c1492" },
|
||||||
|
"xkbswitch.nvim": { "branch": "master", "commit": "aae56d49db9baf0d9b9675a77da35173d8d87a30" }
|
||||||
|
}
|
||||||
7
.config/nwg-look/config
Normal file
7
.config/nwg-look/config
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"export-settings-ini": true,
|
||||||
|
"export-gtkrc-20": true,
|
||||||
|
"export-index-theme": true,
|
||||||
|
"export-xsettingsd": true,
|
||||||
|
"export-gtk4-symlinks": true
|
||||||
|
}
|
||||||
9
.config/pavucontrol.ini
Normal file
9
.config/pavucontrol.ini
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
[window]
|
||||||
|
width=500
|
||||||
|
height=400
|
||||||
|
sinkInputType=0
|
||||||
|
sourceOutputType=0
|
||||||
|
sinkType=0
|
||||||
|
sourceType=0
|
||||||
|
showVolumeMeters=1
|
||||||
|
hideUnavailableCardProfiles=0
|
||||||
|
|
@ -4,12 +4,12 @@
|
||||||
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
||||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||||
# absolute path. No other format is supported.
|
# absolute path. No other format is supported.
|
||||||
#
|
#
|
||||||
XDG_DESKTOP_DIR="$HOME/desk"
|
XDG_DESKTOP_DIR="$HOME/"
|
||||||
XDG_DOWNLOAD_DIR="$HOME/dwnlds"
|
XDG_DOWNLOAD_DIR="$HOME/dwnlds"
|
||||||
XDG_TEMPLATES_DIR="$HOME/templ"
|
XDG_TEMPLATES_DIR="$HOME/"
|
||||||
XDG_PUBLICSHARE_DIR="$HOME/"
|
XDG_PUBLICSHARE_DIR="$HOME/"
|
||||||
XDG_DOCUMENTS_DIR="$HOME/docs"
|
XDG_DOCUMENTS_DIR="$HOME/docs"
|
||||||
XDG_MUSIC_DIR="$HOME/mus"
|
XDG_MUSIC_DIR="$HOME/"
|
||||||
XDG_PICTURES_DIR="$HOME/imgs"
|
XDG_PICTURES_DIR="$HOME/pics"
|
||||||
XDG_VIDEOS_DIR="$HOME/vids"
|
XDG_VIDEOS_DIR="$HOME/vids"
|
||||||
1
.config/user-dirs.locale
Normal file
1
.config/user-dirs.locale
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
en_US
|
||||||
1
.config/zathura/zathurarc
Normal file
1
.config/zathura/zathurarc
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
set selection-clipboard clipboard
|
||||||
33
README.md
33
README.md
|
|
@ -1,32 +1 @@
|
||||||
|
my .conf files for arch
|
||||||
# This is my configuration files for:
|
|
||||||
- niri
|
|
||||||
- kitty
|
|
||||||
- btop
|
|
||||||
- clipse
|
|
||||||
- fastfetch
|
|
||||||
- hypr (outdated)
|
|
||||||
- fuzzel
|
|
||||||
- hyprwave
|
|
||||||
- neovim
|
|
||||||
- termusic
|
|
||||||
- yazi
|
|
||||||
- waybar (outdated)
|
|
||||||
- fish
|
|
||||||
|
|
||||||
also here is the list of arch packages that i use
|
|
||||||
|
|
||||||
if you want to use the niri config without editing, you should install the dependencies:
|
|
||||||
```
|
|
||||||
paru -Syu niri-screen-time swayosd walker swaync clipse swaybg xwayland-satellite hyprwave hyprlock hyprpicker
|
|
||||||
```
|
|
||||||
|
|
||||||
if u wanna install **all** packages that i use do next:
|
|
||||||
copy that repository
|
|
||||||
```
|
|
||||||
cd arch-conf
|
|
||||||
xargs -a apps-list.md paru -Syu
|
|
||||||
|
|
||||||
```
|
|
||||||
(not recommended)
|
|
||||||
|
|
||||||
|
|
|
||||||
1762
apps-list.md
1762
apps-list.md
File diff suppressed because it is too large
Load diff
|
|
@ -1,55 +0,0 @@
|
||||||
{
|
|
||||||
"allowDuplicates": false,
|
|
||||||
"historyFile": "clipboard_history.json",
|
|
||||||
"maxHistory": 1000000,
|
|
||||||
"deleteAfter": 0,
|
|
||||||
"logFile": "clipse.log",
|
|
||||||
"pollInterval": 50,
|
|
||||||
"maxEntryLength": 65,
|
|
||||||
"themeFile": "custom_theme.json",
|
|
||||||
"tempDir": "tmp_files",
|
|
||||||
"keyBindings": {
|
|
||||||
"choose": "enter",
|
|
||||||
"clearSelected": "S",
|
|
||||||
"down": "down",
|
|
||||||
"end": "end",
|
|
||||||
"filter": "/",
|
|
||||||
"forceQuit": "Q",
|
|
||||||
"home": "home",
|
|
||||||
"more": "?",
|
|
||||||
"nextPage": "right",
|
|
||||||
"prevPage": "left",
|
|
||||||
"preview": " ",
|
|
||||||
"quit": "esc",
|
|
||||||
"remove": "backspace",
|
|
||||||
"selectDown": "shift+down",
|
|
||||||
"selectSingle": "s",
|
|
||||||
"selectUp": "shift+up",
|
|
||||||
"togglePin": "p",
|
|
||||||
"togglePinned": "tab",
|
|
||||||
"up": "up",
|
|
||||||
"yankFilter": "ctrl+s"
|
|
||||||
},
|
|
||||||
"imageDisplay": {
|
|
||||||
"type": "kitty",
|
|
||||||
"scaleX": 18,
|
|
||||||
"scaleY": 20,
|
|
||||||
"heightCut": 20
|
|
||||||
},
|
|
||||||
"excludedApps": [
|
|
||||||
"1Password",
|
|
||||||
"Bitwarden",
|
|
||||||
"KeePassXC",
|
|
||||||
"LastPass",
|
|
||||||
"Dashlane",
|
|
||||||
"Password Safe",
|
|
||||||
"Keychain Access"
|
|
||||||
],
|
|
||||||
"autoPaste": {
|
|
||||||
"enabled": false,
|
|
||||||
"keybind": "ctrl+v",
|
|
||||||
"buffer": 10
|
|
||||||
},
|
|
||||||
"enableMouse": true,
|
|
||||||
"enableDescription": true
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
complete --command fisher --exclusive --long help --description "Print help"
|
|
||||||
complete --command fisher --exclusive --long version --description "Print version"
|
|
||||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments install --description "Install plugins"
|
|
||||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments update --description "Update installed plugins"
|
|
||||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments remove --description "Remove installed plugins"
|
|
||||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments list --description "List installed plugins matching regex"
|
|
||||||
complete --command fisher --exclusive --condition "__fish_seen_subcommand_from update remove" --arguments "(fisher list)"
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
complete fzf_configure_bindings --no-files
|
|
||||||
complete fzf_configure_bindings --long help --short h --description "Print help" --condition "not __fish_seen_argument --help -h"
|
|
||||||
complete fzf_configure_bindings --long directory --description "Change the key binding for Search Directory" --condition "not __fish_seen_argument --directory"
|
|
||||||
complete fzf_configure_bindings --long git_log --description "Change the key binding for Search Git Log" --condition "not __fish_seen_argument --git_log"
|
|
||||||
complete fzf_configure_bindings --long git_status --description "Change the key binding for Search Git Status" --condition "not __fish_seen_argument --git_status"
|
|
||||||
complete fzf_configure_bindings --long history --description "Change the key binding for Search History" --condition "not __fish_seen_argument --history"
|
|
||||||
complete fzf_configure_bindings --long processes --description "Change the key binding for Search Processes" --condition "not __fish_seen_argument --processes"
|
|
||||||
complete fzf_configure_bindings --long variables --description "Change the key binding for Search Variables" --condition "not __fish_seen_argument --variables"
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
# This file was created by fish when upgrading to version 4.3, to migrate
|
|
||||||
# the 'fish_key_bindings' variable from its old default scope (universal)
|
|
||||||
# to its new default scope (global). We recommend you delete this file
|
|
||||||
# and configure key bindings in ~/.config/fish/config.fish if needed.
|
|
||||||
|
|
||||||
# set --global fish_key_bindings fish_default_key_bindings
|
|
||||||
|
|
||||||
# Prior to version 4.3, fish shipped an event handler that runs
|
|
||||||
# `set --universal fish_key_bindings fish_default_key_bindings`
|
|
||||||
# whenever the fish_key_bindings variable is erased.
|
|
||||||
# This means that as long as any fish < 4.3 is still running on this system,
|
|
||||||
# we cannot complete the migration.
|
|
||||||
# As a workaround, erase the universal variable at every shell startup.
|
|
||||||
set --erase --universal fish_key_bindings
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
# This file was created by fish when upgrading to version 4.3, to migrate
|
|
||||||
# theme variables from universal to global scope.
|
|
||||||
# Don't edit this file, as it will be written by the web-config tool (`fish_config`).
|
|
||||||
# To customize your theme, delete this file and see
|
|
||||||
# help interactive#syntax-highlighting
|
|
||||||
# or
|
|
||||||
# man fish-interactive | less +/^SYNTAX.HIGHLIGHTING
|
|
||||||
# for appropriate commands to add to ~/.config/fish/config.fish instead.
|
|
||||||
# See also the release notes for fish 4.3.0 (run `help relnotes`).
|
|
||||||
|
|
||||||
set --global fish_color_autosuggestion brblack
|
|
||||||
set --global fish_color_cancel -r
|
|
||||||
set --global fish_color_command normal
|
|
||||||
set --global fish_color_comment red
|
|
||||||
set --global fish_color_cwd green
|
|
||||||
set --global fish_color_cwd_root red
|
|
||||||
set --global fish_color_end green
|
|
||||||
set --global fish_color_error brred
|
|
||||||
set --global fish_color_escape brcyan
|
|
||||||
set --global fish_color_history_current --bold
|
|
||||||
set --global fish_color_host normal
|
|
||||||
set --global fish_color_host_remote yellow
|
|
||||||
set --global fish_color_normal normal
|
|
||||||
set --global fish_color_operator brcyan
|
|
||||||
set --global fish_color_param cyan
|
|
||||||
set --global fish_color_quote yellow
|
|
||||||
set --global fish_color_redirection cyan --bold
|
|
||||||
set --global fish_color_search_match white --background=brblack
|
|
||||||
set --global fish_color_selection white --bold --background=brblack
|
|
||||||
set --global fish_color_status red
|
|
||||||
set --global fish_color_user brgreen
|
|
||||||
set --global fish_color_valid_path --underline
|
|
||||||
set --global fish_pager_color_completion normal
|
|
||||||
set --global fish_pager_color_description yellow -i
|
|
||||||
set --global fish_pager_color_prefix normal --bold --underline
|
|
||||||
set --global fish_pager_color_progress brwhite --background=cyan
|
|
||||||
set --global fish_pager_color_selected_background -r
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
# fzf.fish is only meant to be used in interactive mode. If not in interactive mode and not in CI, skip the config to speed up shell startup
|
|
||||||
if not status is-interactive && test "$CI" != true
|
|
||||||
exit
|
|
||||||
end
|
|
||||||
|
|
||||||
# Because of scoping rules, to capture the shell variables exactly as they are, we must read
|
|
||||||
# them before even executing _fzf_search_variables. We use psub to store the
|
|
||||||
# variables' info in temporary files and pass in the filenames as arguments.
|
|
||||||
# This variable is global so that it can be referenced by fzf_configure_bindings and in tests
|
|
||||||
set --global _fzf_search_vars_command '_fzf_search_variables (set --show | psub) (set --names | psub)'
|
|
||||||
|
|
||||||
# Install the default bindings, which are mnemonic and minimally conflict with fish's preset bindings
|
|
||||||
fzf_configure_bindings
|
|
||||||
|
|
||||||
# Doesn't erase autoloaded _fzf_* functions because they are not easily accessible once key bindings are erased
|
|
||||||
function _fzf_uninstall --on-event fzf_uninstall
|
|
||||||
_fzf_uninstall_bindings
|
|
||||||
|
|
||||||
set --erase _fzf_search_vars_command
|
|
||||||
functions --erase _fzf_uninstall _fzf_migration_message _fzf_uninstall_bindings fzf_configure_bindings
|
|
||||||
complete --erase fzf_configure_bindings
|
|
||||||
|
|
||||||
set_color cyan
|
|
||||||
echo "fzf.fish uninstalled."
|
|
||||||
echo "You may need to manually remove fzf_configure_bindings from your config.fish if you were using custom key bindings."
|
|
||||||
set_color normal
|
|
||||||
end
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
|
|
||||||
if test -e /home/unconfer/.nix-profile/etc/profile.d/nix.fish; . /home/unconfer/.nix-profile/etc/profile.d/nix.fish; end # added by Nix installer
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
jorgebucaran/fisher
|
|
||||||
patrickf1/fzf.fish
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
# This file contains fish universal variable definitions.
|
|
||||||
# VERSION: 3.0
|
|
||||||
SETUVAR --export EDITOR:nvim
|
|
||||||
SETUVAR __fish_initialized:4300
|
|
||||||
SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish
|
|
||||||
SETUVAR _fisher_patrickf1_2F_fzf_2E_fish_files:\x7e/\x2econfig/fish/functions/_fzf_configure_bindings_help\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_extract_var_info\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_preview_changed_file\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_preview_file\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_report_diff_type\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_report_file_type\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_directory\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_git_log\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_git_status\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_history\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_processes\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_variables\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_wrapper\x2efish\x1e\x7e/\x2econfig/fish/functions/fzf_configure_bindings\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/fzf\x2efish\x1e\x7e/\x2econfig/fish/completions/fzf_configure_bindings\x2efish
|
|
||||||
SETUVAR _fisher_plugins:jorgebucaran/fisher\x1epatrickf1/fzf\x2efish
|
|
||||||
SETUVAR _fisher_upgraded_to_4_4:\x1d
|
|
||||||
SETUVAR fish_cursor_default:block
|
|
||||||
SETUVAR fish_cursor_replace_one:underscore
|
|
||||||
SETUVAR fish_greeting:\x1d
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
function _fzf_configure_bindings_help --description "Prints the help message for fzf_configure_bindings."
|
|
||||||
echo "\
|
|
||||||
USAGE:
|
|
||||||
fzf_configure_bindings [--COMMAND=[KEY_SEQUENCE]...]
|
|
||||||
|
|
||||||
DESCRIPTION
|
|
||||||
fzf_configure_bindings installs key bindings for fzf.fish's commands and erases any bindings it
|
|
||||||
previously installed. It installs bindings for both default and insert modes. fzf.fish executes
|
|
||||||
it without options on fish startup to install the out-of-the-box key bindings.
|
|
||||||
|
|
||||||
By default, commands are bound to a mnemonic key sequence, shown below. Each command's binding
|
|
||||||
can be configured using a namesake corresponding option:
|
|
||||||
COMMAND | DEFAULT KEY SEQUENCE | CORRESPONDING OPTION
|
|
||||||
Search Directory | Ctrl+Alt+F (F for file) | --directory
|
|
||||||
Search Git Log | Ctrl+Alt+L (L for log) | --git_log
|
|
||||||
Search Git Status | Ctrl+Alt+S (S for status) | --git_status
|
|
||||||
Search History | Ctrl+R (R for reverse) | --history
|
|
||||||
Search Processes | Ctrl+Alt+P (P for process) | --processes
|
|
||||||
Search Variables | Ctrl+V (V for variable) | --variables
|
|
||||||
Override a command's binding by specifying its corresponding option with the desired key
|
|
||||||
sequence using fish's key name syntax (e.g. ctrl-f, ctrl-alt-v). Disable a command's binding
|
|
||||||
by specifying its corresponding option with no value.
|
|
||||||
|
|
||||||
Because fzf_configure_bindings erases bindings it previously installed, it can be cleanly
|
|
||||||
executed multiple times. Once the desired fzf_configure_bindings command has been found, add it
|
|
||||||
to your config.fish in order to persist the customized bindings.
|
|
||||||
|
|
||||||
In terms of validation, fzf_configure_bindings fails if passed unknown options. It expects an
|
|
||||||
equals sign between an option's name and value. However, it does not validate key sequences.
|
|
||||||
|
|
||||||
Pass -h or --help to print this help message and exit.
|
|
||||||
|
|
||||||
EXAMPLES
|
|
||||||
Default bindings but bind Search Directory to Ctrl+F and Search Variables to Ctrl+Alt+V
|
|
||||||
\$ fzf_configure_bindings --directory=ctrl-f --variables=ctrl-alt-v
|
|
||||||
Default bindings but disable Search History
|
|
||||||
\$ fzf_configure_bindings --history=
|
|
||||||
An agglomeration of different options
|
|
||||||
\$ fzf_configure_bindings --git_status=ctrl-g --history=ctrl-h --variables= --processes=
|
|
||||||
|
|
||||||
SEE Also
|
|
||||||
To learn more about fish key bindings, see bind(1) and fish_key_reader(1).
|
|
||||||
"
|
|
||||||
end
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
# helper function for _fzf_search_variables
|
|
||||||
function _fzf_extract_var_info --argument-names variable_name set_show_output --description "Extract and reformat lines pertaining to \$variable_name from \$set_show_output."
|
|
||||||
# Extract only the lines about the variable, all of which begin with either
|
|
||||||
# $variable_name: ...or... $variable_name[
|
|
||||||
string match --regex "^\\\$$variable_name(?::|\[).*" <$set_show_output |
|
|
||||||
# Strip the variable name prefix, including ": " for scope info lines
|
|
||||||
string replace --regex "^\\\$$variable_name(?:: )?" '' |
|
|
||||||
# Distill the lines of values, replacing...
|
|
||||||
# [1]: |value|
|
|
||||||
# ...with...
|
|
||||||
# [1] value
|
|
||||||
string replace --regex ": \|(.*)\|" ' $1'
|
|
||||||
end
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
# helper for _fzf_search_git_status
|
|
||||||
# arg should be a line from git status --short, e.g.
|
|
||||||
# MM functions/_fzf_preview_changed_file.fish
|
|
||||||
# D README.md
|
|
||||||
# R LICENSE -> "New License"
|
|
||||||
function _fzf_preview_changed_file --argument-names path_status --description "Show the git diff of the given file."
|
|
||||||
# remove quotes because they'll be interpreted literally by git diff
|
|
||||||
# no need to requote when referencing $path because fish does not perform word splitting
|
|
||||||
# https://fishshell.com/docs/current/fish_for_bash_users.html
|
|
||||||
set -f path (string unescape (string sub --start 4 $path_status))
|
|
||||||
# first letter of short format shows index, second letter shows working tree
|
|
||||||
# https://git-scm.com/docs/git-status/2.35.0#_short_format
|
|
||||||
set -f index_status (string sub --length 1 $path_status)
|
|
||||||
set -f working_tree_status (string sub --start 2 --length 1 $path_status)
|
|
||||||
|
|
||||||
set -f diff_opts --color=always
|
|
||||||
|
|
||||||
if test $index_status = '?'
|
|
||||||
_fzf_report_diff_type Untracked
|
|
||||||
_fzf_preview_file $path
|
|
||||||
else if contains {$index_status}$working_tree_status DD AU UD UA DU AA UU
|
|
||||||
# Unmerged statuses taken directly from git status help's short format table
|
|
||||||
# Unmerged statuses are mutually exclusive with other statuses, so if we see
|
|
||||||
# these, then safe to assume the path is unmerged
|
|
||||||
_fzf_report_diff_type Unmerged
|
|
||||||
git diff $diff_opts -- $path
|
|
||||||
else
|
|
||||||
if test $index_status != ' '
|
|
||||||
_fzf_report_diff_type Staged
|
|
||||||
|
|
||||||
# renames are only detected in the index, never working tree, so only need to test for it here
|
|
||||||
# https://stackoverflow.com/questions/73954214
|
|
||||||
if test $index_status = R
|
|
||||||
# diff the post-rename path with the original path, otherwise the diff will show the entire file as being added
|
|
||||||
set -f orig_and_new_path (string split --max 1 -- ' -> ' $path)
|
|
||||||
git diff --staged $diff_opts -- $orig_and_new_path[1] $orig_and_new_path[2]
|
|
||||||
# path currently has the form of "original -> current", so we need to correct it before it's used below
|
|
||||||
set path $orig_and_new_path[2]
|
|
||||||
else
|
|
||||||
git diff --staged $diff_opts -- $path
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if test $working_tree_status != ' '
|
|
||||||
_fzf_report_diff_type Unstaged
|
|
||||||
git diff $diff_opts -- $path
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
# helper function for _fzf_search_directory and _fzf_search_git_status
|
|
||||||
function _fzf_preview_file --description "Print a preview for the given file based on its file type."
|
|
||||||
# because there's no way to guarantee that _fzf_search_directory passes the path to _fzf_preview_file
|
|
||||||
# as one argument, we collect all the arguments into one single variable and treat that as the path
|
|
||||||
set -f file_path $argv
|
|
||||||
|
|
||||||
if test -L "$file_path" # symlink
|
|
||||||
# notify user and recurse on the target of the symlink, which can be any of these file types
|
|
||||||
set -l target_path (realpath "$file_path")
|
|
||||||
|
|
||||||
set_color yellow
|
|
||||||
echo "'$file_path' is a symlink to '$target_path'."
|
|
||||||
set_color normal
|
|
||||||
|
|
||||||
_fzf_preview_file "$target_path"
|
|
||||||
else if test -f "$file_path" # regular file
|
|
||||||
if set --query fzf_preview_file_cmd
|
|
||||||
# need to escape quotes to make sure eval receives file_path as a single arg
|
|
||||||
eval "$fzf_preview_file_cmd '$file_path'"
|
|
||||||
else
|
|
||||||
bat --style=numbers --color=always "$file_path"
|
|
||||||
end
|
|
||||||
else if test -d "$file_path" # directory
|
|
||||||
if set --query fzf_preview_dir_cmd
|
|
||||||
# see above
|
|
||||||
eval "$fzf_preview_dir_cmd '$file_path'"
|
|
||||||
else
|
|
||||||
# -A list hidden files as well, except for . and ..
|
|
||||||
# -F helps classify files by appending symbols after the file name
|
|
||||||
command ls -A -F "$file_path"
|
|
||||||
end
|
|
||||||
else if test -c "$file_path"
|
|
||||||
_fzf_report_file_type "$file_path" "character device file"
|
|
||||||
else if test -b "$file_path"
|
|
||||||
_fzf_report_file_type "$file_path" "block device file"
|
|
||||||
else if test -S "$file_path"
|
|
||||||
_fzf_report_file_type "$file_path" socket
|
|
||||||
else if test -p "$file_path"
|
|
||||||
_fzf_report_file_type "$file_path" "named pipe"
|
|
||||||
else
|
|
||||||
echo "$file_path doesn't exist." >&2
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
# helper for _fzf_preview_changed_file
|
|
||||||
# prints out something like
|
|
||||||
# ╭────────╮
|
|
||||||
# │ Staged │
|
|
||||||
# ╰────────╯
|
|
||||||
function _fzf_report_diff_type --argument-names diff_type --description "Print a distinct colored header meant to preface a git patch."
|
|
||||||
# number of "-" to draw is the length of the string to box + 2 for padding
|
|
||||||
set -f repeat_count (math 2 + (string length $diff_type))
|
|
||||||
set -f line (string repeat --count $repeat_count ─)
|
|
||||||
set -f top_border ╭$line╮
|
|
||||||
set -f btm_border ╰$line╯
|
|
||||||
|
|
||||||
set_color yellow
|
|
||||||
echo $top_border
|
|
||||||
echo "│ $diff_type │"
|
|
||||||
echo $btm_border
|
|
||||||
set_color normal
|
|
||||||
end
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
# helper function for _fzf_preview_file
|
|
||||||
function _fzf_report_file_type --argument-names file_path file_type --description "Explain the file type for a file."
|
|
||||||
set_color red
|
|
||||||
echo "Cannot preview '$file_path': it is a $file_type."
|
|
||||||
set_color normal
|
|
||||||
end
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
function _fzf_search_directory --description "Search the current directory. Replace the current token with the selected file paths."
|
|
||||||
# Directly use fd binary to avoid output buffering delay caused by a fd alias, if any.
|
|
||||||
# Debian-based distros install fd as fdfind and the fd package is something else, so
|
|
||||||
# check for fdfind first. Fall back to "fd" for a clear error message.
|
|
||||||
set -f fd_cmd (command -v fdfind || command -v fd || echo "fd")
|
|
||||||
set -f --append fd_cmd --color=always $fzf_fd_opts
|
|
||||||
|
|
||||||
set -f fzf_arguments --multi --ansi $fzf_directory_opts
|
|
||||||
set -f token (commandline --current-token)
|
|
||||||
# expand any variables or leading tilde (~) in the token
|
|
||||||
set -f expanded_token (eval echo -- $token)
|
|
||||||
# unescape token because it's already quoted so backslashes will mess up the path
|
|
||||||
set -f unescaped_exp_token (string unescape -- $expanded_token)
|
|
||||||
|
|
||||||
# If the current token is a directory and has a trailing slash,
|
|
||||||
# then use it as fd's base directory.
|
|
||||||
if string match --quiet -- "*/" $unescaped_exp_token && test -d "$unescaped_exp_token"
|
|
||||||
set --append fd_cmd --base-directory=$unescaped_exp_token
|
|
||||||
# use the directory name as fzf's prompt to indicate the search is limited to that directory
|
|
||||||
set --prepend fzf_arguments --prompt="Directory $unescaped_exp_token> " --preview="_fzf_preview_file $expanded_token{}"
|
|
||||||
set -f file_paths_selected $unescaped_exp_token($fd_cmd 2>/dev/null | _fzf_wrapper $fzf_arguments)
|
|
||||||
else
|
|
||||||
set --prepend fzf_arguments --prompt="Directory> " --query="$unescaped_exp_token" --preview='_fzf_preview_file {}'
|
|
||||||
set -f file_paths_selected ($fd_cmd 2>/dev/null | _fzf_wrapper $fzf_arguments)
|
|
||||||
end
|
|
||||||
|
|
||||||
if test $status -eq 0
|
|
||||||
commandline --current-token --replace -- (string escape -- $file_paths_selected | string join ' ')
|
|
||||||
end
|
|
||||||
|
|
||||||
commandline --function repaint
|
|
||||||
end
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
function _fzf_search_git_log --description "Search the output of git log and preview commits. Replace the current token with the selected commit hash."
|
|
||||||
if not git rev-parse --git-dir >/dev/null 2>&1
|
|
||||||
echo '_fzf_search_git_log: Not in a git repository.' >&2
|
|
||||||
else
|
|
||||||
if not set --query fzf_git_log_format
|
|
||||||
# %h gives you the abbreviated commit hash, which is useful for saving screen space, but we will have to expand it later below
|
|
||||||
set -f fzf_git_log_format '%C(bold blue)%h%C(reset) - %C(cyan)%ad%C(reset) %C(yellow)%d%C(reset) %C(normal)%s%C(reset) %C(dim normal)[%an]%C(reset)'
|
|
||||||
end
|
|
||||||
|
|
||||||
set -f preview_cmd 'git show --color=always --stat --patch {1}'
|
|
||||||
if set --query fzf_diff_highlighter
|
|
||||||
set preview_cmd "$preview_cmd | $fzf_diff_highlighter"
|
|
||||||
end
|
|
||||||
|
|
||||||
set -f selected_log_lines (
|
|
||||||
git log --no-show-signature --color=always --format=format:$fzf_git_log_format --date=short | \
|
|
||||||
_fzf_wrapper --ansi \
|
|
||||||
--multi \
|
|
||||||
--scheme=history \
|
|
||||||
--prompt="Git Log> " \
|
|
||||||
--preview=$preview_cmd \
|
|
||||||
--query=(commandline --current-token) \
|
|
||||||
$fzf_git_log_opts
|
|
||||||
)
|
|
||||||
if test $status -eq 0
|
|
||||||
for line in $selected_log_lines
|
|
||||||
set -f abbreviated_commit_hash (string split --field 1 " " $line)
|
|
||||||
set -f full_commit_hash (git rev-parse $abbreviated_commit_hash)
|
|
||||||
set -f --append commit_hashes $full_commit_hash
|
|
||||||
end
|
|
||||||
commandline --current-token --replace (string join ' ' $commit_hashes)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
commandline --function repaint
|
|
||||||
end
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
function _fzf_search_git_status --description "Search the output of git status. Replace the current token with the selected file paths."
|
|
||||||
if not git rev-parse --git-dir >/dev/null 2>&1
|
|
||||||
echo '_fzf_search_git_status: Not in a git repository.' >&2
|
|
||||||
else
|
|
||||||
set -f preview_cmd '_fzf_preview_changed_file {}'
|
|
||||||
if set --query fzf_diff_highlighter
|
|
||||||
set preview_cmd "$preview_cmd | $fzf_diff_highlighter"
|
|
||||||
end
|
|
||||||
|
|
||||||
set -f selected_paths (
|
|
||||||
# Pass configuration color.status=always to force status to use colors even though output is sent to a pipe
|
|
||||||
git -c color.status=always status --short |
|
|
||||||
_fzf_wrapper --ansi \
|
|
||||||
--multi \
|
|
||||||
--prompt="Git Status> " \
|
|
||||||
--query=(commandline --current-token) \
|
|
||||||
--preview=$preview_cmd \
|
|
||||||
--nth="2.." \
|
|
||||||
$fzf_git_status_opts
|
|
||||||
)
|
|
||||||
if test $status -eq 0
|
|
||||||
# git status --short automatically escapes the paths of most files for us so not going to bother trying to handle
|
|
||||||
# the few edges cases of weird file names that should be extremely rare (e.g. "this;needs;escaping")
|
|
||||||
set -f cleaned_paths
|
|
||||||
|
|
||||||
for path in $selected_paths
|
|
||||||
if test (string sub --length 1 $path) = R
|
|
||||||
# path has been renamed and looks like "R LICENSE -> LICENSE.md"
|
|
||||||
# extract the path to use from after the arrow
|
|
||||||
set --append cleaned_paths (string split -- "-> " $path)[-1]
|
|
||||||
else
|
|
||||||
set --append cleaned_paths (string sub --start=4 $path)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
commandline --current-token --replace -- (string join ' ' $cleaned_paths)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
commandline --function repaint
|
|
||||||
end
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
function _fzf_search_history --description "Search command history. Replace the command line with the selected command."
|
|
||||||
# history merge incorporates history changes from other fish sessions
|
|
||||||
# it errors out if called in private mode
|
|
||||||
if test -z "$fish_private_mode"
|
|
||||||
builtin history merge
|
|
||||||
end
|
|
||||||
|
|
||||||
if not set --query fzf_history_time_format
|
|
||||||
# Reference https://devhints.io/strftime to understand strftime format symbols
|
|
||||||
set -f fzf_history_time_format "%m-%d %H:%M:%S"
|
|
||||||
end
|
|
||||||
|
|
||||||
# Delinate time from command in history entries using the vertical box drawing char (U+2502).
|
|
||||||
# Then, to get raw command from history entries, delete everything up to it. The ? on regex is
|
|
||||||
# necessary to make regex non-greedy so it won't match into commands containing the char.
|
|
||||||
set -f time_prefix_regex '^.*? │ '
|
|
||||||
# Delinate commands throughout pipeline using null rather than newlines because commands can be multi-line
|
|
||||||
set -f commands_selected (
|
|
||||||
builtin history --null --show-time="$fzf_history_time_format │ " |
|
|
||||||
_fzf_wrapper --read0 \
|
|
||||||
--print0 \
|
|
||||||
--multi \
|
|
||||||
--scheme=history \
|
|
||||||
--prompt="History> " \
|
|
||||||
--query=(commandline) \
|
|
||||||
--preview="string replace --regex '$time_prefix_regex' '' -- {} | fish_indent --ansi" \
|
|
||||||
--preview-window="bottom:3:wrap" \
|
|
||||||
$fzf_history_opts |
|
|
||||||
string split0 |
|
|
||||||
# remove timestamps from commands selected
|
|
||||||
string replace --regex $time_prefix_regex ''
|
|
||||||
)
|
|
||||||
|
|
||||||
if test $status -eq 0
|
|
||||||
commandline --replace -- $commands_selected
|
|
||||||
end
|
|
||||||
|
|
||||||
commandline --function repaint
|
|
||||||
end
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
function _fzf_search_processes --description "Search all running processes. Replace the current token with the pid of the selected process."
|
|
||||||
# Directly use ps command because it is often aliased to a different command entirely
|
|
||||||
# or with options that dirty the search results and preview output
|
|
||||||
set -f ps_cmd (command -v ps || echo "ps")
|
|
||||||
# use all caps to be consistent with ps default format
|
|
||||||
# snake_case because ps doesn't seem to allow spaces in the field names
|
|
||||||
set -f ps_preview_fmt (string join ',' 'pid' 'ppid=PARENT' 'user' '%cpu' 'rss=RSS_IN_KB' 'start=START_TIME' 'command')
|
|
||||||
set -f processes_selected (
|
|
||||||
$ps_cmd -A -opid,command | \
|
|
||||||
_fzf_wrapper --multi \
|
|
||||||
--prompt="Processes> " \
|
|
||||||
--query (commandline --current-token) \
|
|
||||||
--ansi \
|
|
||||||
# first line outputted by ps is a header, so we need to mark it as so
|
|
||||||
--header-lines=1 \
|
|
||||||
# ps uses exit code 1 if the process was not found, in which case show an message explaining so
|
|
||||||
--preview="$ps_cmd -o '$ps_preview_fmt' -p {1} || echo 'Cannot preview {1} because it exited.'" \
|
|
||||||
--preview-window="bottom:4:wrap" \
|
|
||||||
$fzf_processes_opts
|
|
||||||
)
|
|
||||||
|
|
||||||
if test $status -eq 0
|
|
||||||
for process in $processes_selected
|
|
||||||
set -f --append pids_selected (string split --no-empty --field=1 -- " " $process)
|
|
||||||
end
|
|
||||||
|
|
||||||
# string join to replace the newlines outputted by string split with spaces
|
|
||||||
commandline --current-token --replace -- (string join ' ' $pids_selected)
|
|
||||||
end
|
|
||||||
|
|
||||||
commandline --function repaint
|
|
||||||
end
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
# This function expects the following two arguments:
|
|
||||||
# argument 1 = output of (set --show | psub), i.e. a file with the scope info and values of all variables
|
|
||||||
# argument 2 = output of (set --names | psub), i.e. a file with all variable names
|
|
||||||
function _fzf_search_variables --argument-names set_show_output set_names_output --description "Search and preview shell variables. Replace the current token with the selected variable."
|
|
||||||
if test -z "$set_names_output"
|
|
||||||
printf '%s\n' '_fzf_search_variables requires 2 arguments.' >&2
|
|
||||||
|
|
||||||
commandline --function repaint
|
|
||||||
return 22 # 22 means invalid argument in POSIX
|
|
||||||
end
|
|
||||||
|
|
||||||
# Exclude the history variable from being piped into fzf because
|
|
||||||
# 1. it's not included in $set_names_output
|
|
||||||
# 2. it tends to be a very large value => increases computation time
|
|
||||||
# 3._fzf_search_history is a much better way to examine history anyway
|
|
||||||
set -f all_variable_names (string match --invert history <$set_names_output)
|
|
||||||
|
|
||||||
set -f current_token (commandline --current-token)
|
|
||||||
# Use the current token to pre-populate fzf's query. If the current token begins
|
|
||||||
# with a $, remove it from the query so that it will better match the variable names
|
|
||||||
set -f cleaned_curr_token (string replace -- '$' '' $current_token)
|
|
||||||
|
|
||||||
set -f variable_names_selected (
|
|
||||||
printf '%s\n' $all_variable_names |
|
|
||||||
_fzf_wrapper --preview "_fzf_extract_var_info {} $set_show_output" \
|
|
||||||
--prompt="Variables> " \
|
|
||||||
--preview-window="wrap" \
|
|
||||||
--multi \
|
|
||||||
--query=$cleaned_curr_token \
|
|
||||||
$fzf_variables_opts
|
|
||||||
)
|
|
||||||
|
|
||||||
if test $status -eq 0
|
|
||||||
# If the current token begins with a $, do not overwrite the $ when
|
|
||||||
# replacing the current token with the selected variable.
|
|
||||||
# Uses brace expansion to prepend $ to each variable name.
|
|
||||||
commandline --current-token --replace (
|
|
||||||
if string match --quiet -- '$*' $current_token
|
|
||||||
string join " " \${$variable_names_selected}
|
|
||||||
else
|
|
||||||
string join " " $variable_names_selected
|
|
||||||
end
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
commandline --function repaint
|
|
||||||
end
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
function _fzf_wrapper --description "Prepares some environment variables before executing fzf."
|
|
||||||
# Make sure fzf uses fish to execute preview commands, some of which
|
|
||||||
# are autoloaded fish functions so don't exist in other shells.
|
|
||||||
# Use --function so that it doesn't clobber SHELL outside this function.
|
|
||||||
set -f --export SHELL (command --search fish)
|
|
||||||
|
|
||||||
# If neither FZF_DEFAULT_OPTS nor FZF_DEFAULT_OPTS_FILE are set, then set some sane defaults.
|
|
||||||
# See https://github.com/junegunn/fzf#environment-variables
|
|
||||||
set --query FZF_DEFAULT_OPTS FZF_DEFAULT_OPTS_FILE
|
|
||||||
if test $status -eq 2
|
|
||||||
# cycle allows jumping between the first and last results, making scrolling faster
|
|
||||||
# layout=reverse lists results top to bottom, mimicking the familiar layouts of git log, history, and env
|
|
||||||
# border shows where the fzf window begins and ends
|
|
||||||
# height=90% leaves space to see the current command and some scrollback, maintaining context of work
|
|
||||||
# preview-window=wrap wraps long lines in the preview window, making reading easier
|
|
||||||
# marker=* makes the multi-select marker more distinguishable from the pointer (since both default to >)
|
|
||||||
set --export FZF_DEFAULT_OPTS '--cycle --layout=reverse --border --height=90% --preview-window=wrap --marker="*"'
|
|
||||||
end
|
|
||||||
|
|
||||||
fzf $argv
|
|
||||||
end
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
function ff --wraps=fastfetch --description 'alias ff=fastfetch'
|
|
||||||
fastfetch $argv
|
|
||||||
end
|
|
||||||
|
|
@ -1,251 +0,0 @@
|
||||||
function fisher --argument-names cmd --description "A plugin manager for Fish"
|
|
||||||
set --query fisher_path || set --local fisher_path $__fish_config_dir
|
|
||||||
set --local fisher_version 4.4.8
|
|
||||||
set --local fish_plugins $__fish_config_dir/fish_plugins
|
|
||||||
|
|
||||||
switch "$cmd"
|
|
||||||
case -v --version
|
|
||||||
echo "fisher, version $fisher_version"
|
|
||||||
case "" -h --help
|
|
||||||
echo "Usage: fisher install <plugins...> Install plugins"
|
|
||||||
echo " fisher remove <plugins...> Remove installed plugins"
|
|
||||||
echo " fisher uninstall <plugins...> Remove installed plugins (alias)"
|
|
||||||
echo " fisher update <plugins...> Update installed plugins"
|
|
||||||
echo " fisher update Update all installed plugins"
|
|
||||||
echo " fisher list [<regex>] List installed plugins matching regex"
|
|
||||||
echo "Options:"
|
|
||||||
echo " -v, --version Print version"
|
|
||||||
echo " -h, --help Print this help message"
|
|
||||||
echo "Variables:"
|
|
||||||
echo " \$fisher_path Plugin installation path. Default: $__fish_config_dir" | string replace --regex -- $HOME \~
|
|
||||||
case ls list
|
|
||||||
string match --entire --regex -- "$argv[2]" $_fisher_plugins
|
|
||||||
case install update remove uninstall
|
|
||||||
isatty || read --local --null --array stdin && set --append argv $stdin
|
|
||||||
|
|
||||||
test "$cmd" = uninstall && set cmd remove
|
|
||||||
|
|
||||||
set --local install_plugins
|
|
||||||
set --local update_plugins
|
|
||||||
set --local remove_plugins
|
|
||||||
set --local arg_plugins $argv[2..-1]
|
|
||||||
set --local old_plugins $_fisher_plugins
|
|
||||||
set --local new_plugins
|
|
||||||
|
|
||||||
test -e $fish_plugins && set --local file_plugins (string match --regex -- '^[^\s]+$' <$fish_plugins | string replace -- \~ ~)
|
|
||||||
|
|
||||||
if ! set --query argv[2]
|
|
||||||
if test "$cmd" != update
|
|
||||||
echo "fisher: Not enough arguments for command: \"$cmd\"" >&2 && return 1
|
|
||||||
else if ! set --query file_plugins
|
|
||||||
echo "fisher: \"$fish_plugins\" file not found: \"$cmd\"" >&2 && return 1
|
|
||||||
end
|
|
||||||
set arg_plugins $file_plugins
|
|
||||||
else if test "$cmd" = install && ! set --query old_plugins[1]
|
|
||||||
set --append arg_plugins $file_plugins
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $arg_plugins
|
|
||||||
set plugin (test -e "$plugin" && realpath $plugin || string lower -- $plugin)
|
|
||||||
contains -- "$plugin" $new_plugins || set --append new_plugins $plugin
|
|
||||||
end
|
|
||||||
|
|
||||||
if set --query argv[2]
|
|
||||||
for plugin in $new_plugins
|
|
||||||
if contains -- "$plugin" $old_plugins
|
|
||||||
test "$cmd" = remove &&
|
|
||||||
set --append remove_plugins $plugin ||
|
|
||||||
set --append update_plugins $plugin
|
|
||||||
else if test "$cmd" = install
|
|
||||||
set --append install_plugins $plugin
|
|
||||||
else
|
|
||||||
echo "fisher: Plugin not installed: \"$plugin\"" >&2 && return 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
for plugin in $new_plugins
|
|
||||||
contains -- "$plugin" $old_plugins &&
|
|
||||||
set --append update_plugins $plugin ||
|
|
||||||
set --append install_plugins $plugin
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $old_plugins
|
|
||||||
contains -- "$plugin" $new_plugins || set --append remove_plugins $plugin
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
set --local pid_list
|
|
||||||
set --local source_plugins
|
|
||||||
set --local fetch_plugins $update_plugins $install_plugins
|
|
||||||
set --local fish_path (status fish-path)
|
|
||||||
|
|
||||||
echo (set_color --bold)fisher $cmd version $fisher_version(set_color normal)
|
|
||||||
|
|
||||||
for plugin in $fetch_plugins
|
|
||||||
set --local source (command mktemp -d)
|
|
||||||
set --append source_plugins $source
|
|
||||||
|
|
||||||
command mkdir -p $source/{completions,conf.d,themes,functions}
|
|
||||||
|
|
||||||
$fish_path --command "
|
|
||||||
if test -e $plugin
|
|
||||||
command cp -Rf $plugin/* $source
|
|
||||||
else
|
|
||||||
set resp (command mktemp)
|
|
||||||
set temp (command mktemp -d)
|
|
||||||
set repo (string split -- \@ $plugin) || set repo[2] HEAD
|
|
||||||
|
|
||||||
if set path (string replace --regex -- '^(https://)?gitlab.com/' '' \$repo[1])
|
|
||||||
set name (string split -- / \$path)[-1]
|
|
||||||
set url https://gitlab.com/\$path/-/archive/\$repo[2]/\$name-\$repo[2].tar.gz
|
|
||||||
else
|
|
||||||
set url https://api.github.com/repos/\$repo[1]/tarball/\$repo[2]
|
|
||||||
end
|
|
||||||
|
|
||||||
echo Fetching (set_color --underline)\$url(set_color normal)
|
|
||||||
|
|
||||||
set http (command curl -q --silent -L -o \$resp -w %{http_code} \$url)
|
|
||||||
|
|
||||||
if test \"\$http\" = 200 && command tar -xzC \$temp -f \$resp 2>/dev/null
|
|
||||||
command cp -Rf \$temp/*/* $source
|
|
||||||
else if test \"\$http\" = 403
|
|
||||||
echo fisher: GitHub API rate limit exceeded \(HTTP 403\) >&2
|
|
||||||
command rm -rf $source
|
|
||||||
else
|
|
||||||
echo fisher: Invalid plugin name or host unavailable: \\\"$plugin\\\" >&2
|
|
||||||
command rm -rf $source
|
|
||||||
end
|
|
||||||
|
|
||||||
command rm -rf \$temp
|
|
||||||
end
|
|
||||||
|
|
||||||
set files $source/* && string match --quiet --regex -- .+\.fish\\\$ \$files
|
|
||||||
" &
|
|
||||||
|
|
||||||
set --append pid_list (jobs --last --pid)
|
|
||||||
end
|
|
||||||
|
|
||||||
wait $pid_list 2>/dev/null
|
|
||||||
|
|
||||||
for plugin in $fetch_plugins
|
|
||||||
if set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)] && test ! -e $source
|
|
||||||
if set --local index (contains --index -- "$plugin" $install_plugins)
|
|
||||||
set --erase install_plugins[$index]
|
|
||||||
else
|
|
||||||
set --erase update_plugins[(contains --index -- "$plugin" $update_plugins)]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $update_plugins $remove_plugins
|
|
||||||
if set --local index (contains --index -- "$plugin" $_fisher_plugins)
|
|
||||||
set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files
|
|
||||||
|
|
||||||
if contains -- "$plugin" $remove_plugins
|
|
||||||
for name in (string replace --filter --regex -- '.+/conf\.d/([^/]+)\.fish$' '$1' $$plugin_files_var)
|
|
||||||
emit {$name}_uninstall
|
|
||||||
end
|
|
||||||
printf "%s\n" Removing\ (set_color red --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~
|
|
||||||
set --erase _fisher_plugins[$index]
|
|
||||||
end
|
|
||||||
|
|
||||||
command rm -rf (string replace -- \~ ~ $$plugin_files_var)
|
|
||||||
|
|
||||||
functions --erase (string replace --filter --regex -- '.+/functions/([^/]+)\.fish$' '$1' $$plugin_files_var)
|
|
||||||
|
|
||||||
for name in (string replace --filter --regex -- '.+/completions/([^/]+)\.fish$' '$1' $$plugin_files_var)
|
|
||||||
complete --erase --command $name
|
|
||||||
end
|
|
||||||
|
|
||||||
set --erase $plugin_files_var
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if set --query update_plugins[1] || set --query install_plugins[1]
|
|
||||||
command mkdir -p $fisher_path/{functions,themes,conf.d,completions}
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $update_plugins $install_plugins
|
|
||||||
set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)]
|
|
||||||
set --local files $source/{functions,themes,conf.d,completions}/*
|
|
||||||
|
|
||||||
if set --local index (contains --index -- $plugin $install_plugins)
|
|
||||||
set --local user_files $fisher_path/{functions,themes,conf.d,completions}/*
|
|
||||||
set --local conflict_files
|
|
||||||
|
|
||||||
for file in (string replace -- $source/ $fisher_path/ $files)
|
|
||||||
contains -- $file $user_files && set --append conflict_files $file
|
|
||||||
end
|
|
||||||
|
|
||||||
if set --query conflict_files[1] && set --erase install_plugins[$index]
|
|
||||||
echo -s "fisher: Cannot install \"$plugin\": please remove or move conflicting files first:" \n" "$conflict_files >&2
|
|
||||||
continue
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
for file in (string replace -- $source/ "" $files)
|
|
||||||
command cp -RLf $source/$file $fisher_path/$file
|
|
||||||
end
|
|
||||||
|
|
||||||
set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files
|
|
||||||
|
|
||||||
set --query files[1] && set --universal $plugin_files_var (string replace -- $source $fisher_path $files | string replace -- ~ \~)
|
|
||||||
|
|
||||||
contains -- $plugin $_fisher_plugins || set --universal --append _fisher_plugins $plugin
|
|
||||||
contains -- $plugin $install_plugins && set --local event install || set --local event update
|
|
||||||
|
|
||||||
printf "%s\n" Installing\ (set_color --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~
|
|
||||||
|
|
||||||
for file in (string match --regex -- '.+/[^/]+\.fish$' $$plugin_files_var | string replace -- \~ ~)
|
|
||||||
source $file
|
|
||||||
if set --local name (string replace --regex -- '.+conf\.d/([^/]+)\.fish$' '$1' $file)
|
|
||||||
emit {$name}_$event
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
command rm -rf $source_plugins
|
|
||||||
|
|
||||||
if set --query _fisher_plugins[1]
|
|
||||||
set --local commit_plugins
|
|
||||||
|
|
||||||
for plugin in $file_plugins
|
|
||||||
contains -- (string lower -- $plugin) (string lower -- $_fisher_plugins) && set --append commit_plugins $plugin
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $_fisher_plugins
|
|
||||||
contains -- (string lower -- $plugin) (string lower -- $commit_plugins) || set --append commit_plugins $plugin
|
|
||||||
end
|
|
||||||
|
|
||||||
string replace --regex -- $HOME \~ $commit_plugins >$fish_plugins
|
|
||||||
else
|
|
||||||
set --erase _fisher_plugins
|
|
||||||
command rm -f $fish_plugins
|
|
||||||
end
|
|
||||||
|
|
||||||
set --local total (count $install_plugins) (count $update_plugins) (count $remove_plugins)
|
|
||||||
|
|
||||||
test "$total" != "0 0 0" && echo (string join ", " (
|
|
||||||
test $total[1] = 0 || echo "Installed $total[1]") (
|
|
||||||
test $total[2] = 0 || echo "Updated $total[2]") (
|
|
||||||
test $total[3] = 0 || echo "Removed $total[3]")
|
|
||||||
) plugin/s
|
|
||||||
case \*
|
|
||||||
echo "fisher: Unknown command: \"$cmd\"" >&2 && return 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if ! set --query _fisher_upgraded_to_4_4
|
|
||||||
set --universal _fisher_upgraded_to_4_4
|
|
||||||
if functions --query _fisher_list
|
|
||||||
set --query XDG_DATA_HOME[1] || set --local XDG_DATA_HOME ~/.local/share
|
|
||||||
command rm -rf $XDG_DATA_HOME/fisher
|
|
||||||
functions --erase _fisher_{list,plugin_parse}
|
|
||||||
fisher update >/dev/null 2>/dev/null
|
|
||||||
else
|
|
||||||
for var in (set --names | string match --entire --regex '^_fisher_.+_files$')
|
|
||||||
set $var (string replace -- ~ \~ $$var)
|
|
||||||
end
|
|
||||||
functions --erase _fisher_fish_postexec
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
@ -1,46 +0,0 @@
|
||||||
# Always installs bindings for insert and default mode for simplicity and b/c it has almost no side-effect
|
|
||||||
# https://gitter.im/fish-shell/fish-shell?at=60a55915ee77a74d685fa6b1
|
|
||||||
function fzf_configure_bindings --description "Installs the default key bindings for fzf.fish with user overrides passed as options."
|
|
||||||
# no need to install bindings if not in interactive mode or running tests
|
|
||||||
status is-interactive || test "$CI" = true; or return
|
|
||||||
|
|
||||||
set -f options_spec h/help 'directory=?' 'git_log=?' 'git_status=?' 'history=?' 'processes=?' 'variables=?'
|
|
||||||
argparse --max-args=0 --ignore-unknown $options_spec -- $argv 2>/dev/null
|
|
||||||
if test $status -ne 0
|
|
||||||
echo "Invalid option or a positional argument was provided." >&2
|
|
||||||
_fzf_configure_bindings_help
|
|
||||||
return 22
|
|
||||||
else if set --query _flag_help
|
|
||||||
_fzf_configure_bindings_help
|
|
||||||
return
|
|
||||||
else
|
|
||||||
# Initialize with default key sequences and then override or disable them based on flags
|
|
||||||
# index 1 = directory, 2 = git_log, 3 = git_status, 4 = history, 5 = processes, 6 = variables
|
|
||||||
set -f key_sequences ctrl-alt-f ctrl-alt-l ctrl-alt-s ctrl-r ctrl-alt-p ctrl-v
|
|
||||||
set --query _flag_directory && set key_sequences[1] "$_flag_directory"
|
|
||||||
set --query _flag_git_log && set key_sequences[2] "$_flag_git_log"
|
|
||||||
set --query _flag_git_status && set key_sequences[3] "$_flag_git_status"
|
|
||||||
set --query _flag_history && set key_sequences[4] "$_flag_history"
|
|
||||||
set --query _flag_processes && set key_sequences[5] "$_flag_processes"
|
|
||||||
set --query _flag_variables && set key_sequences[6] "$_flag_variables"
|
|
||||||
|
|
||||||
# If fzf bindings already exists, uninstall it first for a clean slate
|
|
||||||
if functions --query _fzf_uninstall_bindings
|
|
||||||
_fzf_uninstall_bindings
|
|
||||||
end
|
|
||||||
|
|
||||||
for mode in default insert
|
|
||||||
test -n $key_sequences[1] && bind --mode $mode $key_sequences[1] _fzf_search_directory
|
|
||||||
test -n $key_sequences[2] && bind --mode $mode $key_sequences[2] _fzf_search_git_log
|
|
||||||
test -n $key_sequences[3] && bind --mode $mode $key_sequences[3] _fzf_search_git_status
|
|
||||||
test -n $key_sequences[4] && bind --mode $mode $key_sequences[4] _fzf_search_history
|
|
||||||
test -n $key_sequences[5] && bind --mode $mode $key_sequences[5] _fzf_search_processes
|
|
||||||
test -n $key_sequences[6] && bind --mode $mode $key_sequences[6] "$_fzf_search_vars_command"
|
|
||||||
end
|
|
||||||
|
|
||||||
function _fzf_uninstall_bindings --inherit-variable key_sequences
|
|
||||||
bind --erase -- $key_sequences
|
|
||||||
bind --erase --mode insert -- $key_sequences
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
function n --wraps=nvim --description 'alias n=nvim'
|
|
||||||
nvim $argv
|
|
||||||
end
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
function p --wraps='paru -Syu' --description 'alias p=paru -Syu'
|
|
||||||
paru -Syu $argv
|
|
||||||
end
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
function sshp --wraps='ssh -P 49111' --description 'alias sshp=ssh -P 49111'
|
|
||||||
ssh -P 49111 $argv
|
|
||||||
end
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
function vpn --wraps='sudo ~/./sing-box-sh' --description 'alias vpn=sudo ~/./sing-box-sh'
|
|
||||||
sudo ~/./sing-box-sh $argv
|
|
||||||
end
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
function webka --wraps='scrcpy --v4l2-sink=/dev/video0 --camera-size=1920x1080 --video-source=camera --video-codec=h265 --video-encoder=c2.qti.hevc.encoder --video-buffer=100' --description 'alias webka=scrcpy --v4l2-sink=/dev/video0 --camera-size=1920x1080 --video-source=camera --video-codec=h265 --video-encoder=c2.qti.hevc.encoder --video-buffer=100'
|
|
||||||
scrcpy --v4l2-sink=/dev/video0 --camera-size=1920x1080 --video-source=camera --video-codec=h265 --video-encoder=c2.qti.hevc.encoder --video-buffer=100 $argv
|
|
||||||
end
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
function y
|
|
||||||
set tmp (mktemp -t "yazi-cwd.XXXXXX")
|
|
||||||
yazi $argv --cwd-file="$tmp"
|
|
||||||
if read -z cwd <"$tmp"; and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
|
|
||||||
builtin cd -- "$cwd"
|
|
||||||
end
|
|
||||||
rm -f -- "$tmp"
|
|
||||||
end
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
function yz --wraps=yazi --description 'alias yz=yazi'
|
|
||||||
yazi $argv
|
|
||||||
end
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
function ня --wraps=yazi --description 'alias ня=yazi'
|
|
||||||
yazi $argv
|
|
||||||
end
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
# sample hyprlock.conf
|
|
||||||
# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
|
|
||||||
#
|
|
||||||
# rendered text in all widgets supports pango markup (e.g. <b> or <i> tags)
|
|
||||||
# ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks
|
|
||||||
#
|
|
||||||
# shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace
|
|
||||||
#
|
|
||||||
# you can get started by copying this config to ~/.config/hypr/hyprlock.conf
|
|
||||||
#
|
|
||||||
|
|
||||||
$font = IosevkaTerm NFM ExtraBold
|
|
||||||
|
|
||||||
general {
|
|
||||||
hide_cursor = true
|
|
||||||
}
|
|
||||||
|
|
||||||
# uncomment to enable fingerprint authentication
|
|
||||||
# auth {
|
|
||||||
# fingerprint {
|
|
||||||
# enabled = true
|
|
||||||
# ready_message = Scan fingerprint to unlock
|
|
||||||
# present_message = Scanning...
|
|
||||||
# retry_delay = 250 # in milliseconds
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
|
|
||||||
animations {
|
|
||||||
enabled = false
|
|
||||||
bezier = linear, 1, 1, 0, 0
|
|
||||||
animation = fadeIn, 1, 5, linear
|
|
||||||
animation = fadeOut, 1, 5, linear
|
|
||||||
animation = inputFieldDots, 1, 2, linear
|
|
||||||
}
|
|
||||||
|
|
||||||
background {
|
|
||||||
monitor =
|
|
||||||
path = screenshot
|
|
||||||
blur_passes = 4
|
|
||||||
}
|
|
||||||
|
|
||||||
input-field {
|
|
||||||
monitor =
|
|
||||||
size = 20%, 5%
|
|
||||||
outline_thickness = 3
|
|
||||||
inner_color = rgba(0, 0, 0, 0.0) # no fill
|
|
||||||
|
|
||||||
#outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
|
|
||||||
#check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg
|
|
||||||
#fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg
|
|
||||||
|
|
||||||
outer_color = rgba(EEF7FDee)
|
|
||||||
check_color = rgba(FFDE00ee)
|
|
||||||
fail_color = rgba(FF0100ee)
|
|
||||||
|
|
||||||
font_color = rgb(143, 143, 143)
|
|
||||||
fade_on_empty = false
|
|
||||||
rounding = 3
|
|
||||||
|
|
||||||
font_family = $font
|
|
||||||
placeholder_text = Password here:
|
|
||||||
fail_text = $PAMFAIL
|
|
||||||
|
|
||||||
# uncomment to use a letter instead of a dot to indicate the typed password
|
|
||||||
# dots_text_format = *
|
|
||||||
# dots_size = 0.4
|
|
||||||
dots_spacing = 0.3
|
|
||||||
|
|
||||||
# uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator)
|
|
||||||
# hide_input = true
|
|
||||||
|
|
||||||
position = 0, -200
|
|
||||||
halign = center
|
|
||||||
valign = center
|
|
||||||
}
|
|
||||||
|
|
||||||
# TIME
|
|
||||||
label {
|
|
||||||
monitor =
|
|
||||||
text = $TIME # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution
|
|
||||||
font_size = 90
|
|
||||||
font_family = $font
|
|
||||||
|
|
||||||
position = 0, -40
|
|
||||||
halign = center
|
|
||||||
valign = top
|
|
||||||
}
|
|
||||||
|
|
||||||
# DATE
|
|
||||||
label {
|
|
||||||
monitor =
|
|
||||||
text = cmd[update:60000] date +"%A, %d %B %Y" # update every 60 seconds
|
|
||||||
font_size = 25
|
|
||||||
font_family = $font
|
|
||||||
|
|
||||||
position = 0, -200
|
|
||||||
halign = center
|
|
||||||
valign = top
|
|
||||||
}
|
|
||||||
|
|
||||||
label {
|
|
||||||
monitor =
|
|
||||||
text = $LAYOUT[en,ru]
|
|
||||||
font_size = 24
|
|
||||||
onclick = hyprctl switchxkblayout all next
|
|
||||||
|
|
||||||
position = 250, -200
|
|
||||||
halign = center
|
|
||||||
valign = center
|
|
||||||
}
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
# HyprWave Configuration File
|
|
||||||
|
|
||||||
[General]
|
|
||||||
# Edge to anchor HyprWave to
|
|
||||||
# Options: right, left, top, bottom
|
|
||||||
edge = top
|
|
||||||
|
|
||||||
|
|
||||||
# Margin from the screen edge (in pixels)
|
|
||||||
margin = 20
|
|
||||||
|
|
||||||
# Layer to render on
|
|
||||||
# Options: background, bottom, top, overlay
|
|
||||||
layer = overlay
|
|
||||||
|
|
||||||
idle_timeout= 1
|
|
||||||
# Exclusive zone: 0 = respect other surfaces, -1 = overlap everything
|
|
||||||
exclusive_zone = -1
|
|
||||||
|
|
||||||
[Notifications]
|
|
||||||
enabled = true
|
|
||||||
now_playing = true
|
|
||||||
|
|
||||||
[Visualizer]
|
|
||||||
# Enable/disable visualizer (horizontal layout only)
|
|
||||||
enabled = false
|
|
||||||
|
|
||||||
# Idle timeout in seconds before visualizer appears
|
|
||||||
# Set to 0 to disable auto-activation
|
|
||||||
idle_timeout = 1
|
|
||||||
|
|
||||||
[VerticalDisplay]
|
|
||||||
enabled=true
|
|
||||||
idle_timeout=1
|
|
||||||
|
|
||||||
[MusicPlayer]
|
|
||||||
preference = mpd
|
|
||||||
|
|
@ -1,585 +0,0 @@
|
||||||
/* ========================================
|
|
||||||
HyprWave - Mystic Portal Theme
|
|
||||||
Inspired by purple/pink portal with blue depths
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
:root {
|
|
||||||
/* Background Colors - Deep Void */
|
|
||||||
--bg-primary: rgba(15, 12, 30, 1.0);
|
|
||||||
--bg-secondary: rgba(20, 18, 40, 0.75);
|
|
||||||
--bg-album-cover: rgba(25, 22, 48, 0.85);
|
|
||||||
--bg-album-secondary: rgba(30, 28, 55, 0.85);
|
|
||||||
|
|
||||||
/* Button Colors - Default (Prev/Next) - Mystic Purple */
|
|
||||||
--btn-default: rgba(140, 100, 180, 0.85);
|
|
||||||
--btn-default-secondary: rgba(130, 90, 170, 0.85);
|
|
||||||
--btn-default-hover: rgba(160, 120, 200, 0.92);
|
|
||||||
--btn-default-hover-secondary: rgba(150, 110, 190, 0.92);
|
|
||||||
|
|
||||||
/* Button Colors - Play/Pause - Bright Pink Portal */
|
|
||||||
--btn-play: rgba(255, 100, 200, 0.95);
|
|
||||||
--btn-play-secondary: rgba(240, 80, 180, 0.95);
|
|
||||||
--btn-play-hover: rgba(255, 120, 215, 0.98);
|
|
||||||
--btn-play-hover-secondary: rgba(255, 110, 205, 0.98);
|
|
||||||
--btn-play-active: rgba(230, 70, 170, 0.95);
|
|
||||||
--btn-play-active-secondary: rgba(220, 60, 160, 0.95);
|
|
||||||
|
|
||||||
/* Button Colors - Expand - Deep Violet */
|
|
||||||
--btn-expand: rgba(120, 60, 200, 0.95);
|
|
||||||
--btn-expand-secondary: rgba(110, 50, 190, 0.95);
|
|
||||||
--btn-expand-hover: rgba(140, 80, 220, 0.98);
|
|
||||||
--btn-expand-hover-secondary: rgba(130, 70, 210, 0.98);
|
|
||||||
--btn-expand-active: rgba(100, 40, 180, 0.95);
|
|
||||||
--btn-expand-active-secondary: rgba(90, 35, 170, 0.95);
|
|
||||||
|
|
||||||
/* Progress Bar Colors */
|
|
||||||
--progress-bg: rgba(40, 30, 60, 0.25);
|
|
||||||
--progress-fill-start: rgba(255, 100, 200, 0.95);
|
|
||||||
--progress-fill-end: rgba(120, 60, 200, 0.95);
|
|
||||||
|
|
||||||
/* Slider Handle Colors */
|
|
||||||
--handle-color: rgba(255, 100, 200, 0.98);
|
|
||||||
--handle-hover: rgba(255, 120, 215, 1.0);
|
|
||||||
--handle-border: rgba(230, 70, 170, 0.5);
|
|
||||||
--handle-shadow: rgba(255, 100, 200, 0.6);
|
|
||||||
|
|
||||||
/* Text Colors - Soft pink/purple on dark */
|
|
||||||
--text-primary: rgba(255, 220, 245, 0.95);
|
|
||||||
--text-secondary: rgba(230, 190, 220, 0.85);
|
|
||||||
--text-tertiary: rgba(200, 160, 195, 0.75);
|
|
||||||
--text-muted: rgba(160, 120, 165, 0.65);
|
|
||||||
|
|
||||||
/* Border Colors */
|
|
||||||
/*--border-primary: rgba(100, 70, 140, 0.35);*/
|
|
||||||
--border-button: rgba(120, 85, 160, 0.3);
|
|
||||||
--border-button-hover: rgba(140, 100, 180, 0.45);
|
|
||||||
--border-play: rgba(255, 100, 200, 0.4);
|
|
||||||
--border-play-hover: rgba(255, 120, 215, 0.55);
|
|
||||||
--border-expand: rgba(120, 60, 200, 0.4);
|
|
||||||
--border-expand-hover: rgba(140, 80, 220, 0.55);
|
|
||||||
|
|
||||||
/* Shadow Colors */
|
|
||||||
--shadow-default: rgba(0, 0, 0, 0.6);
|
|
||||||
--shadow-button: rgba(0, 0, 0, 0.5);
|
|
||||||
--shadow-play: rgba(255, 100, 200, 0.5);
|
|
||||||
--shadow-play-hover: rgba(255, 120, 215, 0.7);
|
|
||||||
--shadow-expand: rgba(120, 60, 200, 0.5);
|
|
||||||
--shadow-expand-hover: rgba(140, 80, 220, 0.7);
|
|
||||||
--shadow-focus: rgba(255, 100, 200, 0.7);
|
|
||||||
|
|
||||||
/* Spacing & Sizes */
|
|
||||||
--border-radius-container: 100px;
|
|
||||||
--border-radius-section: 20px;
|
|
||||||
--border-radius-album: 16px;
|
|
||||||
--border-radius-button: 50%;
|
|
||||||
--border-radius-progress: 2px;
|
|
||||||
|
|
||||||
--padding-container: 12px;
|
|
||||||
--padding-section: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Visualizer bars - mystic portal glow */
|
|
||||||
.visualizer-bar {
|
|
||||||
background: linear-gradient(180deg,
|
|
||||||
rgba(255, 120, 215, 0.98),
|
|
||||||
rgba(180, 100, 220, 0.98),
|
|
||||||
rgba(140, 80, 220, 0.98));
|
|
||||||
border-radius: 0px;
|
|
||||||
transition: all 0.05s ease-out;
|
|
||||||
margin: 0px;
|
|
||||||
min-width: 1px;
|
|
||||||
min-height: 3px;
|
|
||||||
box-shadow: 0 0 16px rgba(255, 100, 200, 0.8),
|
|
||||||
0 0 10px rgba(140, 80, 220, 0.6);
|
|
||||||
}
|
|
||||||
|
|
||||||
.vertical-display-label {
|
|
||||||
font-family: 'VT323', monospace;
|
|
||||||
font-size: 28px;
|
|
||||||
font-weight: bold;
|
|
||||||
color: rgba(255, 120, 215, 0.98);
|
|
||||||
letter-spacing: 0px;
|
|
||||||
line-height: 1.2;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* CRITICAL: Disable CSS transitions during JavaScript animations */
|
|
||||||
.no-transition,
|
|
||||||
.no-transition * {
|
|
||||||
transition: none !important;
|
|
||||||
animation: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================
|
|
||||||
Base Styles
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
/* GTK4 transparent window - CRITICAL for compositor transparency */
|
|
||||||
window,
|
|
||||||
window.background,
|
|
||||||
.hyprwave-window {
|
|
||||||
background-color: transparent;
|
|
||||||
background-image: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Ensure ALL window-level elements are transparent */
|
|
||||||
window>* {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Main container - transparent */
|
|
||||||
.main-container {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================
|
|
||||||
Control Container (Vertical Bar)
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
.control-container {
|
|
||||||
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
|
|
||||||
border-radius: var(--border-radius-container);
|
|
||||||
border: 4px solid rgb(255, 1, 0, 1.0);
|
|
||||||
|
|
||||||
padding: var(--padding-container);
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================
|
|
||||||
Control Container (Horizontal Bar)
|
|
||||||
For Top/Bottom Layouts
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
.control-container-horizontal {
|
|
||||||
/* Match the vertical style exactly for consistency */
|
|
||||||
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
|
|
||||||
border-radius: var(--border-radius-container);
|
|
||||||
/* Keeps the pill shape */
|
|
||||||
border: 4px solid var(--border-primary);
|
|
||||||
|
|
||||||
/* Horizontal padding is critical here to prevent buttons
|
|
||||||
from touching the rounded edges */
|
|
||||||
padding: 8px 24px;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================
|
|
||||||
Expanded Section (Album Details Card)
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
.expanded-section {
|
|
||||||
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
|
|
||||||
border-radius: var(--border-radius-section);
|
|
||||||
border: 4px solid var(--border-primary);
|
|
||||||
padding: var(--padding-section);
|
|
||||||
margin: 0;
|
|
||||||
margin-top: 4px;
|
|
||||||
/* Reduced spacing from control bar */
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================
|
|
||||||
Expanded Section (Horizontal Layout)
|
|
||||||
For Top/Bottom Layouts
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
.expanded-section-horizontal {
|
|
||||||
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
|
|
||||||
border-radius: var(--border-radius-section);
|
|
||||||
border: 1px solid var(--border-primary);
|
|
||||||
|
|
||||||
|
|
||||||
/* Slightly different padding/margin to look good below/above the bar */
|
|
||||||
padding: var(--padding-section);
|
|
||||||
margin-top: 2px;
|
|
||||||
/* Adds gap between control bar and this panel */
|
|
||||||
margin-bottom: 2px;
|
|
||||||
|
|
||||||
/* Ensure it doesn't get too squeezed */
|
|
||||||
min-width: 300px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Album cover */
|
|
||||||
.album-cover {
|
|
||||||
background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary));
|
|
||||||
border-radius: var(--border-radius-album);
|
|
||||||
border: 1px solid var(--border-button);
|
|
||||||
box-shadow: 0 4px 16px var(--shadow-button);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================
|
|
||||||
Text Styles
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
/* Source label (e.g., "Spotify") */
|
|
||||||
.source-label {
|
|
||||||
color: var(--text-muted);
|
|
||||||
font-size: 11px;
|
|
||||||
font-weight: 500;
|
|
||||||
margin-top: 8px;
|
|
||||||
text-transform: uppercase;
|
|
||||||
letter-spacing: 0.5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Track title */
|
|
||||||
.track-title {
|
|
||||||
color: var(--text-primary);
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: 600;
|
|
||||||
margin-top: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Artist label */
|
|
||||||
.artist-label {
|
|
||||||
color: var(--text-secondary);
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 500;
|
|
||||||
margin-top: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Time remaining */
|
|
||||||
.time-remaining {
|
|
||||||
color: var(--text-tertiary);
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 500;
|
|
||||||
margin-top: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================
|
|
||||||
Progress Bar - FIXED FOR GTK4
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
.track-progress {
|
|
||||||
min-height: 4px;
|
|
||||||
margin-top: 8px;
|
|
||||||
margin-bottom: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The background track */
|
|
||||||
.track-progress trough {
|
|
||||||
background: var(--progress-bg);
|
|
||||||
border-radius: var(--border-radius-progress);
|
|
||||||
min-height: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The filled progress portion - GTK4 specific */
|
|
||||||
.track-progress progress {
|
|
||||||
background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end));
|
|
||||||
border-radius: var(--border-radius-progress);
|
|
||||||
min-height: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* GTK4 also needs this for the fill bar to show */
|
|
||||||
progressbar trough {
|
|
||||||
background: var(--progress-bg);
|
|
||||||
border-radius: var(--border-radius-progress);
|
|
||||||
min-height: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
progressbar progress {
|
|
||||||
background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end));
|
|
||||||
border-radius: var(--border-radius-progress);
|
|
||||||
min-height: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================
|
|
||||||
Control Buttons - FIXED ROUNDED SHAPE
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
/* All control buttons - base styles */
|
|
||||||
.control-button {
|
|
||||||
padding: 0;
|
|
||||||
|
|
||||||
/* Add margin to compensate for removed border */
|
|
||||||
margin: 1.5px;
|
|
||||||
/* Same as the old border width */
|
|
||||||
|
|
||||||
min-width: 44px;
|
|
||||||
min-height: 44px;
|
|
||||||
|
|
||||||
background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));
|
|
||||||
|
|
||||||
border: none;
|
|
||||||
box-shadow:
|
|
||||||
inset 0 0 0 1.5px var(--border-button),
|
|
||||||
0 4px 16px var(--shadow-button),
|
|
||||||
inset 0 1px 1px rgba(255, 255, 255, 0.2);
|
|
||||||
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-button:hover {
|
|
||||||
background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary));
|
|
||||||
border-color: var(--border-button-hover);
|
|
||||||
box-shadow:
|
|
||||||
0 6px 20px var(--shadow-button),
|
|
||||||
inset 0 1px 1px rgba(255, 255, 255, 0.25);
|
|
||||||
transform: translateY(-1px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-button:active {
|
|
||||||
transform: scale(0.96);
|
|
||||||
box-shadow:
|
|
||||||
0 2px 8px var(--shadow-button),
|
|
||||||
inset 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================
|
|
||||||
Play/Pause Button (Blue)
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
.play-button {
|
|
||||||
background: linear-gradient(135deg, var(--btn-play), var(--btn-play-secondary));
|
|
||||||
border-color: var(--border-play);
|
|
||||||
box-shadow:
|
|
||||||
0 4px 16px var(--shadow-play),
|
|
||||||
inset 0 1px 1px rgba(255, 255, 255, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.play-button:hover {
|
|
||||||
background: linear-gradient(135deg, var(--btn-play-hover), var(--btn-play-hover-secondary));
|
|
||||||
border-color: var(--border-play-hover);
|
|
||||||
box-shadow:
|
|
||||||
0 6px 20px var(--shadow-play-hover),
|
|
||||||
inset 0 1px 1px rgba(255, 255, 255, 0.4);
|
|
||||||
}
|
|
||||||
|
|
||||||
.play-button:active {
|
|
||||||
background: linear-gradient(135deg, var(--btn-play-active), var(--btn-play-active-secondary));
|
|
||||||
box-shadow:
|
|
||||||
0 2px 10px var(--shadow-play),
|
|
||||||
inset 0 2px 4px rgba(0, 0, 0, 0.15);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================
|
|
||||||
Expand Button (Purple)
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
.expand-button {
|
|
||||||
background: linear-gradient(135deg, var(--btn-expand), var(--btn-expand-secondary));
|
|
||||||
border-color: var(--border-expand);
|
|
||||||
box-shadow:
|
|
||||||
0 4px 16px var(--shadow-expand),
|
|
||||||
inset 0 1px 1px rgba(255, 255, 255, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.expand-button:hover {
|
|
||||||
background: linear-gradient(135deg, var(--btn-expand-hover), var(--btn-expand-hover-secondary));
|
|
||||||
border-color: var(--border-expand-hover);
|
|
||||||
box-shadow:
|
|
||||||
0 6px 20px var(--shadow-expand-hover),
|
|
||||||
inset 0 1px 1px rgba(255, 255, 255, 0.4);
|
|
||||||
}
|
|
||||||
|
|
||||||
.expand-button:active {
|
|
||||||
background: linear-gradient(135deg, var(--btn-expand-active), var(--btn-expand-active-secondary));
|
|
||||||
box-shadow:
|
|
||||||
0 2px 10px var(--shadow-expand),
|
|
||||||
inset 0 2px 4px rgba(0, 0, 0, 0.15);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================
|
|
||||||
Previous/Next Buttons
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
.prev-button,
|
|
||||||
.next-button {
|
|
||||||
background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));
|
|
||||||
}
|
|
||||||
|
|
||||||
.prev-button:hover,
|
|
||||||
.next-button:hover {
|
|
||||||
background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================
|
|
||||||
Focus & Accessibility
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
button {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:focus {
|
|
||||||
outline: none;
|
|
||||||
box-shadow:
|
|
||||||
0 0 0 3px var(--shadow-focus),
|
|
||||||
0 4px 16px var(--shadow-play),
|
|
||||||
inset 0 1px 1px rgba(255, 255, 255, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================
|
|
||||||
Notification Styles
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
.notification-window {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-container {
|
|
||||||
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
|
|
||||||
border-radius: var(--border-radius-section);
|
|
||||||
border: 1px solid var(--border-primary);
|
|
||||||
padding: 10px 12px;
|
|
||||||
/* Reduced from 12px to 10px vertical padding */
|
|
||||||
min-width: 280px;
|
|
||||||
/* Reduced from 320px */
|
|
||||||
max-width: 300px;
|
|
||||||
/* Added max-width */
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-album {
|
|
||||||
background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary));
|
|
||||||
border-radius: var(--border-radius-album);
|
|
||||||
border: 1px solid var(--border-button);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-header {
|
|
||||||
color: var(--text-muted);
|
|
||||||
font-size: 10px;
|
|
||||||
/* Reduced from 11px */
|
|
||||||
font-weight: 600;
|
|
||||||
text-transform: uppercase;
|
|
||||||
letter-spacing: 0.5px;
|
|
||||||
margin-bottom: 6px;
|
|
||||||
/* Reduced from 8px */
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-song {
|
|
||||||
color: var(--text-primary);
|
|
||||||
font-size: 13px;
|
|
||||||
/* Reduced from 14px */
|
|
||||||
font-weight: 600;
|
|
||||||
line-height: 1.2;
|
|
||||||
/* Added for tighter spacing */
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-artist {
|
|
||||||
color: var(--text-secondary);
|
|
||||||
font-size: 11px;
|
|
||||||
/* Reduced from 12px */
|
|
||||||
font-weight: 500;
|
|
||||||
line-height: 1.2;
|
|
||||||
/* Added for tighter spacing */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================
|
|
||||||
Volume Control Styles
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
.volume-container {
|
|
||||||
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
|
|
||||||
border-radius: var(--border-radius-section);
|
|
||||||
border: 1px solid var(--border-primary);
|
|
||||||
padding: 12px;
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.volume-icon {
|
|
||||||
min-width: 20px;
|
|
||||||
min-height: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.volume-percentage {
|
|
||||||
color: var(--text-primary);
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: 600;
|
|
||||||
min-width: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Volume slider - similar to progress bar but with different colors */
|
|
||||||
.volume-slider {
|
|
||||||
min-height: 24px;
|
|
||||||
min-width: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The background track */
|
|
||||||
.volume-slider trough {
|
|
||||||
background: var(--progress-bg);
|
|
||||||
border-radius: var(--border-radius-progress);
|
|
||||||
min-height: 6px;
|
|
||||||
min-width: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The filled portion */
|
|
||||||
.volume-slider progress {
|
|
||||||
background: linear-gradient(90deg, var(--btn-default), var(--btn-default-secondary));
|
|
||||||
border-radius: var(--border-radius-progress);
|
|
||||||
min-height: 6px;
|
|
||||||
min-width: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The slider handle */
|
|
||||||
.volume-slider slider {
|
|
||||||
min-height: 16px;
|
|
||||||
min-width: 16px;
|
|
||||||
background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));
|
|
||||||
border: 2px solid var(--border-button);
|
|
||||||
border-radius: 50%;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.volume-slider slider:hover {
|
|
||||||
background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary));
|
|
||||||
border-color: var(--border-button-hover);
|
|
||||||
transform: scale(1.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.volume-slider slider:active {
|
|
||||||
background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));
|
|
||||||
transform: scale(0.95);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* GTK4 specific for vertical sliders */
|
|
||||||
.volume-slider.vertical trough {
|
|
||||||
min-width: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.volume-slider.vertical progress {
|
|
||||||
min-width: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* ========================================
|
|
||||||
Visualizer Bars - Idle Mode Animation
|
|
||||||
======================================== */
|
|
||||||
|
|
||||||
/* Container padding to keep bars inside control bar edges */
|
|
||||||
.visualizer-container {
|
|
||||||
padding: 0px;
|
|
||||||
/* 5px padding on left/right keeps bars inside */
|
|
||||||
padding-bottom: 1px;
|
|
||||||
/* Small bottom padding to align with control bar bottom */
|
|
||||||
border-radius: 0 0 12px 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
Smooth control bar height transitions for idle mode */ .control-container-horizontal {
|
|
||||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Smooth button fade transitions */
|
|
||||||
.control-button {
|
|
||||||
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1),
|
|
||||||
opacity 0.3s ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Ensure overlay respects size changes */
|
|
||||||
overlay {
|
|
||||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Vertical Display (for vertical layouts) */
|
|
||||||
.vertical-display-container {
|
|
||||||
background: transparent;
|
|
||||||
padding: 8px 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.vertical-display-label {
|
|
||||||
font-family: 'VT323', monospace;
|
|
||||||
font-size: 28px;
|
|
||||||
font-weight: bold;
|
|
||||||
color: white;
|
|
||||||
/* Match visualizer bar color */
|
|
||||||
letter-spacing: 0px;
|
|
||||||
line-height: 1.2;
|
|
||||||
}
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
# vim:ft=kitty
|
|
||||||
|
|
||||||
## name: Tokyo Night
|
|
||||||
## license: popachcka-rulet
|
|
||||||
## author: an idiot
|
|
||||||
## upstream: /////////gol
|
|
||||||
|
|
||||||
|
|
||||||
background #07090B
|
|
||||||
foreground #EEF7FD
|
|
||||||
selection_background #C1D6D6
|
|
||||||
selection_foreground #07090B
|
|
||||||
url_color #73daca
|
|
||||||
cursor #c0caf5
|
|
||||||
cursor_text_color #1a1b26
|
|
||||||
|
|
||||||
# Tabs
|
|
||||||
active_tab_background #C1D6D6
|
|
||||||
active_tab_foreground #25C39F
|
|
||||||
inactive_tab_background #5C6871
|
|
||||||
inactive_tab_foreground #07090B
|
|
||||||
#tab_bar_background #15161e
|
|
||||||
|
|
||||||
# Windows
|
|
||||||
active_border_color #25C39F
|
|
||||||
inactive_border_color #C0CAF5
|
|
||||||
|
|
||||||
# normal
|
|
||||||
color0 #07090B
|
|
||||||
color1 #FF0100
|
|
||||||
color2 #25C39F
|
|
||||||
color3 #FFDE00
|
|
||||||
color4 #109FFF
|
|
||||||
color5 #FE31FF
|
|
||||||
color6 #00FED4
|
|
||||||
color7 #EEF7FD
|
|
||||||
|
|
||||||
# bright
|
|
||||||
color8 #5C6871
|
|
||||||
color9 #E46468
|
|
||||||
color10 #82D1B9
|
|
||||||
color11 #F6DB8B
|
|
||||||
color12 #8FD2F7
|
|
||||||
color13 #F79DE7
|
|
||||||
color14 #7EFEDE
|
|
||||||
color15 #C1D6D6
|
|
||||||
|
|
||||||
# extended colors
|
|
||||||
color16 #ff9e64
|
|
||||||
color17 #db4b4b
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
||||||
[Added Associations]
|
|
||||||
application/json=neovide.desktop;
|
|
||||||
application/octet-stream=mpv.desktop;
|
|
||||||
application/x-extension-htm=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop;
|
|
||||||
application/x-extension-html=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop;
|
|
||||||
application/x-extension-shtml=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop;
|
|
||||||
application/x-extension-xht=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop;
|
|
||||||
application/x-extension-xhtml=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop;
|
|
||||||
application/x-msdownload=ru.launcher.StartWine.desktop;
|
|
||||||
application/x-php=mpv.desktop;
|
|
||||||
application/xhtml+xml=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop;
|
|
||||||
application/zip=org.gnome.Nautilus.desktop;
|
|
||||||
audio/flac=mpv.desktop;
|
|
||||||
audio/mp4=mpv.desktop;
|
|
||||||
audio/ogg=mpv.desktop;
|
|
||||||
audio/vorbis=mpv.desktop;
|
|
||||||
audio/x-oggflac=mpv.desktop;
|
|
||||||
audio/x-vorbis=mpv.desktop;
|
|
||||||
audio/x-vorbis+ogg=mpv.desktop;
|
|
||||||
image/jpeg=gimp.desktop;org.gnome.gThumb.desktop;org.gnome.eog.desktop;
|
|
||||||
image/png=gimp.desktop;org.gnome.eog.desktop;
|
|
||||||
image/webp=org.gnome.eog.desktop;
|
|
||||||
text/html=zen.desktop;userapp-Zen-PIXJK3.desktop;
|
|
||||||
text/plain=neovide.desktop;
|
|
||||||
video/mp4=mpv.desktop;
|
|
||||||
video/webm=mpv.desktop;
|
|
||||||
x-scheme-handler/chrome=zen.desktop;userapp-Zen-PIXJK3.desktop;firefox.desktop;
|
|
||||||
x-scheme-handler/http=zen.desktop;userapp-Zen-PIXJK3.desktop;firefox.desktop;
|
|
||||||
x-scheme-handler/https=zen.desktop;userapp-Zen-PIXJK3.desktop;firefox.desktop;
|
|
||||||
x-scheme-handler/mailto=zen.desktop;
|
|
||||||
x-scheme-handler/tg=org.telegram.desktop.desktop;userapp-AyuGram Desktop-YAGQF3.desktop;userapp-AyuGram Desktop-352WJ3.desktop;org.fagram.desktop;
|
|
||||||
x-scheme-handler/tonsite=org.telegram.desktop.desktop;userapp-AyuGram Desktop-UNJQF3.desktop;userapp-AyuGram Desktop-31ZUJ3.desktop;org.fagram.desktop;
|
|
||||||
|
|
||||||
[Default Applications]
|
|
||||||
application/fb2=org.pwmt.zathura.desktop
|
|
||||||
application/json=neovide.desktop
|
|
||||||
application/octet-stream=mpv.desktop
|
|
||||||
application/pdf=org.pwmt.zathura.desktop
|
|
||||||
application/x-extension-htm=zen.desktop
|
|
||||||
application/x-extension-html=zen.desktop
|
|
||||||
application/x-extension-shtml=zen.desktop
|
|
||||||
application/x-extension-xht=zen.desktop
|
|
||||||
application/x-extension-xhtml=zen.desktop
|
|
||||||
application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program;text/win-bat;=PortProton.desktop
|
|
||||||
application/x-msdownload=ru.launcher.StartWine.desktop
|
|
||||||
application/x-php=mpv.desktop
|
|
||||||
application/x-zip-compressed-fb2=org.pwmt.zathura.desktop
|
|
||||||
application/xhtml+xml=zen.desktop
|
|
||||||
application/zip=org.gnome.Nautilus.desktop
|
|
||||||
audio/flac=mpv.desktop
|
|
||||||
audio/mp4=mpv.desktop
|
|
||||||
audio/ogg=mpv.desktop;
|
|
||||||
audio/vorbis=mpv.desktop;
|
|
||||||
audio/x-oggflac=mpv.desktop;
|
|
||||||
audio/x-vorbis=mpv.desktop;
|
|
||||||
audio/x-vorbis+ogg=mpv.desktop;
|
|
||||||
image/gif=imv.desktop
|
|
||||||
image/jpeg=org.gnome.eog.desktop
|
|
||||||
image/png=org.gnome.eog.desktop
|
|
||||||
image/vnd.djvu=org.pwmt.zathura.desktop
|
|
||||||
image/webp=org.gnome.eog.desktop
|
|
||||||
text/fb2+xml=org.pwmt.zathura.desktop
|
|
||||||
text/html=zen.desktop
|
|
||||||
text/plain=neovide.desktop
|
|
||||||
text/xml=com.github.johnfactotum.Foliate.desktop
|
|
||||||
video/mp4=mpv.desktop
|
|
||||||
video/webm=mpv.desktop
|
|
||||||
x-scheme-handler/anytype=anytype.desktop
|
|
||||||
x-scheme-handler/chrome=zen.desktop
|
|
||||||
x-scheme-handler/discord=vesktop.desktop
|
|
||||||
x-scheme-handler/http=zen.desktop
|
|
||||||
x-scheme-handler/https=zen.desktop
|
|
||||||
x-scheme-handler/mailto=zen.desktop;
|
|
||||||
x-scheme-handler/tg=org.fagram.desktop
|
|
||||||
x-scheme-handler/tonsite=org.fagram.desktop
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
# Copy this to /etc/mpDris2.conf or ~/.config/mpDris2/mpDris2.conf
|
|
||||||
# Default values are shown here, commented out.
|
|
||||||
|
|
||||||
[Connection]
|
|
||||||
# You can also export $MPD_HOST and/or $MPD_PORT to change the server.
|
|
||||||
host = /run/user/1000/mpd/socket
|
|
||||||
#port = 6600
|
|
||||||
#password =
|
|
||||||
|
|
||||||
[Library]
|
|
||||||
music_dir = ~/mus/
|
|
||||||
cover_regex = ^(album|cover|\.?folder|front).*\.(gif|jpeg|jpg|png)$
|
|
||||||
|
|
||||||
[Bling]
|
|
||||||
#mmkeys = True
|
|
||||||
notify = False
|
|
||||||
# Send notifications while paused?
|
|
||||||
#notify_paused = True
|
|
||||||
# CD-like previous command: if playback is past 3 seconds, seek to the beginning
|
|
||||||
#cdprev = True
|
|
||||||
|
|
||||||
#[Notify]
|
|
||||||
# Urgency of the notification: 0 for low, 1 for medium and 2 for high.
|
|
||||||
#urgency = 0
|
|
||||||
# Timeout of the notification in milliseconds. -1 uses the notification's default
|
|
||||||
# and 0 sets the notification to never timeout.
|
|
||||||
#timeout = -1
|
|
||||||
# Format the notification's summary and body in either playing or paused state.
|
|
||||||
# Leave blank to use mpDris2's internal defaults.
|
|
||||||
# Possible values:
|
|
||||||
# %album%, %title%, %id%, %time%, %timeposition%, %date%, %track%,
|
|
||||||
# %disc%, %artist%, %albumartist%, %composer%, %genre%, %file%
|
|
||||||
#summary =
|
|
||||||
#body =
|
|
||||||
#paused_summary =
|
|
||||||
#paused_body =
|
|
||||||
|
|
@ -1,403 +0,0 @@
|
||||||
# An example configuration file for MPD.
|
|
||||||
# Read the user manual for documentation: http://www.mausicpd.org/doc/user/
|
|
||||||
|
|
||||||
|
|
||||||
# Files and directories #######################################################
|
|
||||||
#
|
|
||||||
# This setting controls the top directory which MPD will search to discover the
|
|
||||||
# available audio files and add them to the daemon's online database. This
|
|
||||||
# setting defaults to the XDG directory, otherwise the music directory will be
|
|
||||||
# be disabled and audio files will only be accepted over ipc socket (using
|
|
||||||
# file:// protocol) or streaming files over an accepted protocol.
|
|
||||||
#
|
|
||||||
music_directory "/home/unconfer/mus"
|
|
||||||
#music_directory "~/music"
|
|
||||||
playlist_plugin {
|
|
||||||
name "save"
|
|
||||||
enabled "yes"
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# This setting sets the MPD internal playlist directory. The purpose of this
|
|
||||||
# directory is storage for playlists created by MPD. The server will use
|
|
||||||
# playlist files not created by the server but only if they are in the MPD
|
|
||||||
# format. This setting defaults to playlist saving being disabled.
|
|
||||||
#
|
|
||||||
#playlist_directory "$XDG_CONFIG_HOME/mpd/playlists"
|
|
||||||
playlist_directory "$XDG_MUSIC_DIR/playlists"
|
|
||||||
#
|
|
||||||
# This setting sets the location of the MPD database. This file is used to
|
|
||||||
# load the database at server start up and store the database while the
|
|
||||||
# server is not up. This setting defaults to disabled which will allow
|
|
||||||
# MPD to accept files over ipc socket (using file:// protocol) or streaming
|
|
||||||
# files over an accepted protocol.
|
|
||||||
#
|
|
||||||
#db_file "$XDG_CACHE_HOME/mpd/database"
|
|
||||||
db_file "~/.mpd/database"
|
|
||||||
|
|
||||||
# These settings are the locations for the daemon log files for the daemon.
|
|
||||||
#
|
|
||||||
# The special value "syslog" makes MPD use the local syslog daemon. This
|
|
||||||
# setting defaults to logging to syslog.
|
|
||||||
#
|
|
||||||
# If you use systemd, do not configure a log_file. With systemd, MPD
|
|
||||||
# defaults to the systemd journal, which is fine.
|
|
||||||
#
|
|
||||||
#log_file "$XDG_CACHE_HOME/mpd/log"
|
|
||||||
#log_file "~/.mpd/log"
|
|
||||||
|
|
||||||
# This setting sets the location of the file which stores the process ID
|
|
||||||
# for use of mpd --kill and some init scripts. This setting is disabled by
|
|
||||||
# default and the pid file will not be stored.
|
|
||||||
#
|
|
||||||
# If you use systemd, do not configure a pid_file.
|
|
||||||
#
|
|
||||||
pid_file "$XDG_RUNTIME_DIR/mpd/mpd.pid"
|
|
||||||
#pid_file "~/.mpd/pid"
|
|
||||||
|
|
||||||
# This setting sets the location of the file which contains information about
|
|
||||||
# most variables to get MPD back into the same general shape it was in before
|
|
||||||
# it was brought down. This setting is disabled by default and the server
|
|
||||||
# state will be reset on server start up.
|
|
||||||
#
|
|
||||||
state_file "$XDG_RUNTIME_DIR/mpd/state"
|
|
||||||
#state_file "~/.mpd/state"
|
|
||||||
#
|
|
||||||
# The location of the sticker database. This is a database which
|
|
||||||
# manages dynamic information attached to songs.
|
|
||||||
#
|
|
||||||
#sticker_file "$XDG_CACHE_HOME/sticker.sql"
|
|
||||||
#sticker_file "~/.mpd/sticker.sql"
|
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# General music daemon options ################################################
|
|
||||||
#
|
|
||||||
# This setting specifies the user that MPD will run as. MPD should never run as
|
|
||||||
# root and you may use this setting to make MPD change its user ID after
|
|
||||||
# initialization. This setting is disabled by default and MPD is run as the
|
|
||||||
# current user.
|
|
||||||
#
|
|
||||||
#user "nobody"
|
|
||||||
#
|
|
||||||
# This setting sets the address for the daemon to listen on. Careful attention
|
|
||||||
# should be paid if this is assigned to anything other than the default, any.
|
|
||||||
# This setting can deny access to control of the daemon. Not effective if
|
|
||||||
# systemd socket activation is in use.
|
|
||||||
#
|
|
||||||
# For network
|
|
||||||
#bind_to_address "any"
|
|
||||||
#
|
|
||||||
# And for Unix Socket
|
|
||||||
#bind_to_address "$XDG_RUNTIME_DIR/mpd/socket"
|
|
||||||
bind_to_address "/tmp/mpd_socket"
|
|
||||||
#
|
|
||||||
# This setting is the TCP port that is desired for the daemon to get assigned
|
|
||||||
# to.
|
|
||||||
#port "6601"
|
|
||||||
#
|
|
||||||
# Suppress all messages below the given threshold. Use "verbose" for
|
|
||||||
# troubleshooting. Available setting arguments are "notice", "info", "verbose",
|
|
||||||
# "warning" and "error".
|
|
||||||
#
|
|
||||||
#log_level "notice"
|
|
||||||
#
|
|
||||||
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
|
|
||||||
# of starting playback after startup.
|
|
||||||
#
|
|
||||||
#restore_paused "no"
|
|
||||||
#
|
|
||||||
# This setting enables MPD to create playlists in a format usable by other
|
|
||||||
# music players.
|
|
||||||
#
|
|
||||||
#save_absolute_paths_in_playlists "no"
|
|
||||||
#
|
|
||||||
# This setting defines a list of tag types that will be extracted during the
|
|
||||||
# audio file discovery process. The complete list of possible values can be
|
|
||||||
# found in the user manual.
|
|
||||||
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
|
|
||||||
#
|
|
||||||
# This example just enables the "comment" tag without disabling all
|
|
||||||
# the other supported tags:
|
|
||||||
#metadata_to_use "+comment"
|
|
||||||
#
|
|
||||||
# This setting enables automatic update of MPD's database when files in
|
|
||||||
# music_directory are changed. (Linux only)
|
|
||||||
#
|
|
||||||
auto_update "yes"
|
|
||||||
#
|
|
||||||
# Limit the depth of the directories being watched, 0 means only watch
|
|
||||||
# the music directory itself. There is no limit by default.
|
|
||||||
#
|
|
||||||
#auto_update_depth "3"
|
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# Symbolic link behavior ######################################################
|
|
||||||
#
|
|
||||||
# If this setting is set to "yes", MPD will discover audio files by following
|
|
||||||
# symbolic links outside of the configured music_directory.
|
|
||||||
#
|
|
||||||
#follow_outside_symlinks "yes"
|
|
||||||
#
|
|
||||||
# If this setting is set to "yes", MPD will discover audio files by following
|
|
||||||
# symbolic links inside of the configured music_directory.
|
|
||||||
#
|
|
||||||
#follow_inside_symlinks "yes"
|
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# Zeroconf / Avahi Service Discovery ##########################################
|
|
||||||
#
|
|
||||||
# If this setting is set to "yes", service information will be published with
|
|
||||||
# Zeroconf / Avahi.
|
|
||||||
#
|
|
||||||
#zeroconf_enabled "yes"
|
|
||||||
#
|
|
||||||
# The argument to this setting will be the Zeroconf / Avahi unique name for
|
|
||||||
# this MPD server on the network. %h will be replaced with the hostname.
|
|
||||||
#
|
|
||||||
#zeroconf_name "Music Player @ %h"
|
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# Permissions #################################################################
|
|
||||||
#
|
|
||||||
# If this setting is set, MPD will require password authorization. The password
|
|
||||||
# setting can be specified multiple times for different password profiles.
|
|
||||||
#
|
|
||||||
#password "password@read,add,control,admin"
|
|
||||||
#
|
|
||||||
# This setting specifies the permissions a user has who has not yet logged in.
|
|
||||||
#
|
|
||||||
#default_permissions "read,add,control,admin"
|
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# Database #######################################################################
|
|
||||||
#
|
|
||||||
# An example of a database section instead of the old 'db_file' setting.
|
|
||||||
# It enables mounting other storages into the music directory.
|
|
||||||
#
|
|
||||||
#database {
|
|
||||||
# plugin "simple"
|
|
||||||
# path "~/.local/share/mpd/db"
|
|
||||||
# cache_directory "~/.local/share/mpd/cache"
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
# An example of database config for a satellite setup
|
|
||||||
#
|
|
||||||
#music_directory "nfs://fileserver.local/srv/mp3"
|
|
||||||
#database {
|
|
||||||
# plugin "proxy"
|
|
||||||
# host "other.mpd.host"
|
|
||||||
# port "6600"
|
|
||||||
#}
|
|
||||||
|
|
||||||
# Input #######################################################################
|
|
||||||
#
|
|
||||||
input {
|
|
||||||
plugin "curl"
|
|
||||||
# proxy "proxy.isp.com:8080"
|
|
||||||
# proxy_user "user"
|
|
||||||
# proxy_password "password"
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
# Audio Output ################################################################
|
|
||||||
#
|
|
||||||
# MPD supports various audio output types, as well as playing through multiple
|
|
||||||
# audio outputs at the same time, through multiple audio_output settings
|
|
||||||
# blocks. Setting this block is optional, though the server will only attempt
|
|
||||||
# autodetection for one sound card.
|
|
||||||
#
|
|
||||||
# An example of an ALSA output:
|
|
||||||
#
|
|
||||||
#audio_output {
|
|
||||||
# type "alsa"
|
|
||||||
# name "My ALSA Device"
|
|
||||||
## device "hw:0,0" # optional
|
|
||||||
## mixer_type "hardware" # optional
|
|
||||||
## mixer_device "default" # optional
|
|
||||||
## mixer_control "PCM" # optional
|
|
||||||
## mixer_index "0" # optional
|
|
||||||
#}
|
|
||||||
audio_output {
|
|
||||||
type "pipewire"
|
|
||||||
name "PipeWire Sound Server"
|
|
||||||
}
|
|
||||||
#
|
|
||||||
# An example of an OSS output:
|
|
||||||
#
|
|
||||||
#audio_output {
|
|
||||||
# type "oss"
|
|
||||||
# name "My OSS Device"
|
|
||||||
## device "/dev/dsp" # optional
|
|
||||||
## mixer_type "hardware" # optional
|
|
||||||
## mixer_device "/dev/mixer" # optional
|
|
||||||
## mixer_control "PCM" # optional
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
# An example of a shout output (for streaming to Icecast):
|
|
||||||
#
|
|
||||||
#audio_output {
|
|
||||||
# type "shout"
|
|
||||||
# encoder "vorbis" # optional
|
|
||||||
# name "My Shout Stream"
|
|
||||||
# host "localhost"
|
|
||||||
# port "8000"
|
|
||||||
# mount "/mpd.ogg"
|
|
||||||
# password "hackme"
|
|
||||||
# quality "5.0"
|
|
||||||
# bitrate "128"
|
|
||||||
# format "44100:16:1"
|
|
||||||
## protocol "icecast2" # optional
|
|
||||||
## user "source" # optional
|
|
||||||
## description "My Stream Description" # optional
|
|
||||||
## url "http://example.com" # optional
|
|
||||||
## genre "jazz" # optional
|
|
||||||
## public "no" # optional
|
|
||||||
## timeout "2" # optional
|
|
||||||
## mixer_type "software" # optional
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
# An example of a recorder output:
|
|
||||||
#
|
|
||||||
#audio_output {
|
|
||||||
# type "recorder"
|
|
||||||
# name "My recorder"
|
|
||||||
# encoder "vorbis" # optional, vorbis or lame
|
|
||||||
# path "/var/lib/mpd/recorder/mpd.ogg"
|
|
||||||
## quality "5.0" # do not define if bitrate is defined
|
|
||||||
# bitrate "128" # do not define if quality is defined
|
|
||||||
# format "44100:16:1"
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
# An example of a httpd output (built-in HTTP streaming server):
|
|
||||||
#
|
|
||||||
#audio_output {
|
|
||||||
# type "httpd"
|
|
||||||
# name "My HTTP Stream"
|
|
||||||
# encoder "vorbis" # optional, vorbis or lame
|
|
||||||
# port "8000"
|
|
||||||
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
|
|
||||||
## quality "5.0" # do not define if bitrate is defined
|
|
||||||
# bitrate "128" # do not define if quality is defined
|
|
||||||
# format "44100:16:1"
|
|
||||||
# max_clients "0" # optional 0=no limit
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
|
|
||||||
#
|
|
||||||
#audio_output {
|
|
||||||
# type "pulse"
|
|
||||||
# name "My Pulse Output"
|
|
||||||
## server "remote_server" # optional
|
|
||||||
## sink "remote_server_sink" # optional
|
|
||||||
## media_role "media_role" #optional
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
# An example of a winmm output (Windows multimedia API).
|
|
||||||
#
|
|
||||||
#audio_output {
|
|
||||||
# type "winmm"
|
|
||||||
# name "My WinMM output"
|
|
||||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
|
||||||
# or
|
|
||||||
## device "0" # optional
|
|
||||||
## mixer_type "hardware" # optional
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
# An example of a wasapi output (Windows multimedia API).
|
|
||||||
#
|
|
||||||
#audio_output {
|
|
||||||
# type "wasapi"
|
|
||||||
# name "My WASAPI output"
|
|
||||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
|
||||||
# or
|
|
||||||
## device "0" # optional
|
|
||||||
## mixer_type "hardware" # optional
|
|
||||||
## Exclusive mode blocks all other audio source, and get best audio quality without resampling.
|
|
||||||
## exclusive "no" # optional
|
|
||||||
## Enumerate all devices in log.
|
|
||||||
## enumerate "no" # optional
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
# An example of an openal output.
|
|
||||||
#
|
|
||||||
#audio_output {
|
|
||||||
# type "openal"
|
|
||||||
# name "My OpenAL output"
|
|
||||||
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
# An example of an sndio output.
|
|
||||||
#
|
|
||||||
#audio_output {
|
|
||||||
# type "sndio"
|
|
||||||
# name "sndio output"
|
|
||||||
# mixer_type "hardware"
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
# An example of an OS X output:
|
|
||||||
#
|
|
||||||
#audio_output {
|
|
||||||
# type "osx"
|
|
||||||
# name "My OS X Device"
|
|
||||||
## device "Built-in Output" # optional
|
|
||||||
## channel_map "-1,-1,0,1" # optional
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
## Example "pipe" output:
|
|
||||||
#
|
|
||||||
#audio_output {
|
|
||||||
# type "pipe"
|
|
||||||
# name "my pipe"
|
|
||||||
# command "aplay -f cd 2>/dev/null"
|
|
||||||
## Or if you're want to use AudioCompress
|
|
||||||
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
|
|
||||||
## Or to send raw PCM stream through PCM:
|
|
||||||
# command "nc example.org 8765"
|
|
||||||
# format "44100:16:2"
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
## An example of a null output (for no audio output):
|
|
||||||
#
|
|
||||||
#audio_output {
|
|
||||||
# type "null"
|
|
||||||
# name "My Null Output"
|
|
||||||
# mixer_type "none" # optional
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# Normalization automatic volume adjustments ##################################
|
|
||||||
#
|
|
||||||
# This setting specifies the type of ReplayGain to use. This setting can have
|
|
||||||
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
|
|
||||||
# chooses between "track" and "album" depending on the current state of
|
|
||||||
# random playback. If random playback is enabled then "track" mode is used.
|
|
||||||
# See <https://wiki.hydrogenaud.io/index.php?title=Replaygain> for
|
|
||||||
# more details about ReplayGain.
|
|
||||||
# This setting is off by default.
|
|
||||||
#
|
|
||||||
#replaygain "album"
|
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
# Character Encoding ##########################################################
|
|
||||||
#
|
|
||||||
# If file or directory names do not display correctly for your locale then you
|
|
||||||
# may need to modify this setting.
|
|
||||||
#
|
|
||||||
#filesystem_charset "UTF-8"
|
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
{
|
|
||||||
"LazyVim": { "branch": "main", "commit": "28db03f958d58dfff3c647ce28fdc1cb88ac158d" },
|
|
||||||
"LuaSnip": { "branch": "master", "commit": "5a1e39223db9a0498024a77b8441169d260c8c25" },
|
|
||||||
"blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" },
|
|
||||||
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
|
||||||
"catppuccin": { "branch": "main", "commit": "234fc048de931a0e42ebcad675bf6559d75e23df" },
|
|
||||||
"conform.nvim": { "branch": "master", "commit": "cde4da5c1083d3527776fee69536107d98dae6c9" },
|
|
||||||
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
|
|
||||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "20ad4419564d6e22b189f6738116b38871082332" },
|
|
||||||
"grug-far.nvim": { "branch": "main", "commit": "3e72397465f774b01aa38e4fe8e6eecf23d766d9" },
|
|
||||||
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
|
||||||
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
|
|
||||||
"lualine.nvim": { "branch": "master", "commit": "3946f0122255bc377d14a59b27b609fb3ab25768" },
|
|
||||||
"markview.nvim": { "branch": "main", "commit": "d72e1bd8634f7abad68a77ad3c6f97342c09ae0a" },
|
|
||||||
"marp-nvim": { "branch": "main", "commit": "4f38e6ffe2f5ea260f35f7ff3e4e424b9f8bea29" },
|
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "d7b5feb6e769e995f7fcf44d92f49f811c51d10c" },
|
|
||||||
"mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" },
|
|
||||||
"mini.ai": { "branch": "main", "commit": "0d3c9cf22e37b86b7a0dfbe7ef129ee7a5f4f93c" },
|
|
||||||
"mini.icons": { "branch": "main", "commit": "ff2e4f1d29f659cc2bad0f9256f2f6195c6b2428" },
|
|
||||||
"mini.nvim": { "branch": "main", "commit": "68d4478920c7afdfa21c13706464e275d9ce3255" },
|
|
||||||
"mini.pairs": { "branch": "main", "commit": "b316e68f2d242d5bd010deaab645daa27ed86297" },
|
|
||||||
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
|
|
||||||
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
|
||||||
"nvim-lint": { "branch": "master", "commit": "8b349e822a36e9480aed96c6dd2f757f80524a35" },
|
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "2010fc6ec03e2da552b4886fceb2f7bc0fc2e9c0" },
|
|
||||||
"nvim-snippy": { "branch": "master", "commit": "504ab14eeb14301d9b2a858a2a6cf99ccc8d60d0" },
|
|
||||||
"nvim-treesitter": { "branch": "main", "commit": "d97d226cfd4c00af000b3b8529261352677fc6a8" },
|
|
||||||
"nvim-treesitter-textobjects": { "branch": "main", "commit": "7024f8687b060dd9a425bde1fa8621c896a38138" },
|
|
||||||
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
|
|
||||||
"persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
|
|
||||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
|
||||||
"render-markdown.nvim": { "branch": "main", "commit": "060c911c62f995a9db4467dde6fafd699cf94d55" },
|
|
||||||
"snacks.nvim": { "branch": "main", "commit": "eee204d690f8d8e755229ff20f63d23d48565d7c" },
|
|
||||||
"todo-comments.nvim": { "branch": "main", "commit": "411503d3bedeff88484de572f2509c248e499b38" },
|
|
||||||
"tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" },
|
|
||||||
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
|
|
||||||
"ts-comments.nvim": { "branch": "main", "commit": "123a9fb12e7229342f807ec9e6de478b1102b041" },
|
|
||||||
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" },
|
|
||||||
"xkbswitch.nvim": { "branch": "master", "commit": "aae56d49db9baf0d9b9675a77da35173d8d87a30" }
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
return {
|
|
||||||
"L3MON4D3/LuaSnip",
|
|
||||||
-- follow latest release.
|
|
||||||
version = "v2.*", -- Replace <CurrentMajor> by the latest released major (first number of latest release)
|
|
||||||
-- install jsregexp (optional!).
|
|
||||||
build = "make install_jsregexp",
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
return {
|
|
||||||
"OXY2DEV/markview.nvim",
|
|
||||||
lazy = false,
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
return {
|
|
||||||
"mpas/marp-nvim",
|
|
||||||
config = function()
|
|
||||||
require("marp").setup({
|
|
||||||
port = 44666,
|
|
||||||
wait_for_response_timeout = 30,
|
|
||||||
wait_for_response_delay = 1,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
return {
|
|
||||||
"dcampos/nvim-snippy",
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
return {
|
|
||||||
"MeanderingProgrammer/render-markdown.nvim",
|
|
||||||
dependencies = { "nvim-treesitter/nvim-treesitter", "nvim-mini/mini.nvim" }, -- if you use the mini.nvim suite
|
|
||||||
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-mini/mini.icons' }, -- if you use standalone mini plugins
|
|
||||||
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons
|
|
||||||
---@module 'render-markdown'
|
|
||||||
---@type render.md.UserConfig
|
|
||||||
opts = {},
|
|
||||||
}
|
|
||||||
|
|
@ -1,281 +0,0 @@
|
||||||
#![enable(implicit_some)]
|
|
||||||
#![enable(unwrap_newtypes)]
|
|
||||||
#![enable(unwrap_variant_newtypes)]
|
|
||||||
(
|
|
||||||
address: "/run/user/1000/mpd/socket",
|
|
||||||
password: None,
|
|
||||||
theme: None,
|
|
||||||
cache_dir: None,
|
|
||||||
on_song_change: None,
|
|
||||||
volume_step: 5,
|
|
||||||
max_fps: 165,
|
|
||||||
scrolloff: 0,
|
|
||||||
wrap_navigation: false,
|
|
||||||
enable_mouse: true,
|
|
||||||
scroll_amount: 1,
|
|
||||||
enable_config_hot_reload: true,
|
|
||||||
enable_lyrics_hot_reload: false,
|
|
||||||
status_update_interval_ms: 1000,
|
|
||||||
rewind_to_start_sec: None,
|
|
||||||
keep_state_on_song_change: true,
|
|
||||||
reflect_changes_to_playlist: false,
|
|
||||||
select_current_song_on_change: false,
|
|
||||||
ignore_leading_the: false,
|
|
||||||
browser_song_sort: [Disc, Track, Artist, Title],
|
|
||||||
directories_sort: SortFormat(group_by_type: true, reverse: false),
|
|
||||||
auto_open_downloads: true,
|
|
||||||
album_art: (
|
|
||||||
method: Auto,
|
|
||||||
max_size_px: (width: 1200, height: 1200),
|
|
||||||
disabled_protocols: ["http://", "https://"],
|
|
||||||
vertical_align: Center,
|
|
||||||
horizontal_align: Center,
|
|
||||||
),
|
|
||||||
keybinds: (
|
|
||||||
global: {
|
|
||||||
"q": Quit,
|
|
||||||
"?": ShowHelp,
|
|
||||||
":": CommandMode,
|
|
||||||
"oI": ShowCurrentSongInfo,
|
|
||||||
"oo": ShowOutputs,
|
|
||||||
"op": ShowDecoders,
|
|
||||||
"od": ShowDownloads,
|
|
||||||
"oP": Partition(),
|
|
||||||
"z": ToggleRepeat,
|
|
||||||
"x": ToggleRandom,
|
|
||||||
"c": ToggleConsume,
|
|
||||||
"v": ToggleSingle,
|
|
||||||
"p": TogglePause,
|
|
||||||
"s": Stop,
|
|
||||||
">": NextTrack,
|
|
||||||
"<": PreviousTrack,
|
|
||||||
"f": SeekForward,
|
|
||||||
"b": SeekBack,
|
|
||||||
".": VolumeUp,
|
|
||||||
",": VolumeDown,
|
|
||||||
"<Tab>": NextTab,
|
|
||||||
"gt": NextTab,
|
|
||||||
"<S-Tab>": PreviousTab,
|
|
||||||
"gT": PreviousTab,
|
|
||||||
"1": SwitchToTab("Queue"),
|
|
||||||
"2": SwitchToTab("Directories"),
|
|
||||||
"3": SwitchToTab("Artists"),
|
|
||||||
"4": SwitchToTab("Album Artists"),
|
|
||||||
"5": SwitchToTab("Albums"),
|
|
||||||
"6": SwitchToTab("Playlists"),
|
|
||||||
"7": SwitchToTab("Search"),
|
|
||||||
"<C-u>": Update,
|
|
||||||
"<C-U>": Rescan,
|
|
||||||
"R": AddRandom,
|
|
||||||
},
|
|
||||||
navigation: {
|
|
||||||
"<C-c>": Close,
|
|
||||||
"<Esc>": Close,
|
|
||||||
"<CR>": Confirm,
|
|
||||||
"k": Up,
|
|
||||||
"<Up>": Up,
|
|
||||||
"j": Down,
|
|
||||||
"<Down>": Down,
|
|
||||||
"h": Left,
|
|
||||||
"<Left>": Left,
|
|
||||||
"l": Right,
|
|
||||||
"<Right>": Right,
|
|
||||||
"<C-w>k": PaneUp,
|
|
||||||
"<C-Up>": PaneUp,
|
|
||||||
"<C-w>j": PaneDown,
|
|
||||||
"<C-Down>": PaneDown,
|
|
||||||
"<C-w>h": PaneLeft,
|
|
||||||
"<C-Left>": PaneLeft,
|
|
||||||
"<C-w>l": PaneRight,
|
|
||||||
"<C-Right>": PaneRight,
|
|
||||||
"K": MoveUp,
|
|
||||||
"J": MoveDown,
|
|
||||||
"<C-u>": UpHalf,
|
|
||||||
"<C-d>": DownHalf,
|
|
||||||
"<C-b>": PageUp,
|
|
||||||
"<PageUp>": PageUp,
|
|
||||||
"<C-f>": PageDown,
|
|
||||||
"<PageDown>": PageDown,
|
|
||||||
"gg": Top,
|
|
||||||
"G": Bottom,
|
|
||||||
"<Space>": Select,
|
|
||||||
"<C-Space>": InvertSelection,
|
|
||||||
"/": EnterSearch,
|
|
||||||
"n": NextResult,
|
|
||||||
"N": PreviousResult,
|
|
||||||
"a": Add,
|
|
||||||
"A": AddAll,
|
|
||||||
"D": Delete,
|
|
||||||
"<C-r>": Rename,
|
|
||||||
"i": FocusInput,
|
|
||||||
"oi": ShowInfo,
|
|
||||||
"<C-z>": ContextMenu(),
|
|
||||||
"<C-s>s": Save(kind: Modal(all: false, duplicates_strategy: Ask)),
|
|
||||||
"<C-s>a": Save(kind: Modal(all: true, duplicates_strategy: Ask)),
|
|
||||||
"r": Rate(),
|
|
||||||
},
|
|
||||||
queue: {
|
|
||||||
"d": Delete,
|
|
||||||
"D": DeleteAll,
|
|
||||||
"<CR>": Play,
|
|
||||||
"C": JumpToCurrent,
|
|
||||||
"X": Shuffle,
|
|
||||||
},
|
|
||||||
),
|
|
||||||
search: (
|
|
||||||
case_sensitive: false,
|
|
||||||
ignore_diacritics: false,
|
|
||||||
search_button: false,
|
|
||||||
mode: Contains,
|
|
||||||
tags: [
|
|
||||||
(value: "any", label: "Any Tag"),
|
|
||||||
(value: "artist", label: "Artist"),
|
|
||||||
(value: "album", label: "Album"),
|
|
||||||
(value: "albumartist", label: "Album Artist"),
|
|
||||||
(value: "title", label: "Title"),
|
|
||||||
(value: "filename", label: "Filename"),
|
|
||||||
(value: "genre", label: "Genre"),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
artists: (
|
|
||||||
album_display_mode: SplitByDate,
|
|
||||||
album_sort_by: Date,
|
|
||||||
album_date_tags: [Date],
|
|
||||||
),
|
|
||||||
tabs: [
|
|
||||||
(
|
|
||||||
name: "Queue",
|
|
||||||
pane: Split(
|
|
||||||
direction: Horizontal,
|
|
||||||
panes: [
|
|
||||||
(
|
|
||||||
size: "35%",
|
|
||||||
pane: Split(
|
|
||||||
direction: Vertical,
|
|
||||||
panes: [
|
|
||||||
(
|
|
||||||
size: "100%",
|
|
||||||
borders: "LEFT | RIGHT | TOP",
|
|
||||||
border_symbols: Rounded,
|
|
||||||
pane: Pane(AlbumArt)
|
|
||||||
),
|
|
||||||
(
|
|
||||||
size: "7",
|
|
||||||
borders: "ALL",
|
|
||||||
border_symbols: Inherited(parent: Rounded, top_left: "├", top_right: "┤",),
|
|
||||||
border_title: [(kind: Text(" Lyrics "))],
|
|
||||||
border_title_alignment: Right,
|
|
||||||
pane: Pane(Lyrics)
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
(
|
|
||||||
size: "65%",
|
|
||||||
pane: Split(
|
|
||||||
direction: Vertical,
|
|
||||||
panes: [
|
|
||||||
(
|
|
||||||
size: "3",
|
|
||||||
borders: "ALL",
|
|
||||||
border_symbols: Inherited(parent: Rounded, bottom_left: "├", bottom_right: "┤",),
|
|
||||||
pane: Split(
|
|
||||||
direction: Horizontal,
|
|
||||||
panes: [
|
|
||||||
(
|
|
||||||
size: "1",
|
|
||||||
pane: Pane(Empty())
|
|
||||||
),
|
|
||||||
(
|
|
||||||
size: "100%",
|
|
||||||
pane: Pane(QueueHeader())
|
|
||||||
),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
),
|
|
||||||
(
|
|
||||||
size: "100%",
|
|
||||||
borders: "LEFT | RIGHT | BOTTOM",
|
|
||||||
border_symbols: Rounded,
|
|
||||||
pane: Split(
|
|
||||||
direction: Horizontal,
|
|
||||||
panes: [
|
|
||||||
(
|
|
||||||
size: "1",
|
|
||||||
pane: Pane(Empty())
|
|
||||||
),
|
|
||||||
(
|
|
||||||
size: "100%",
|
|
||||||
pane: Pane(Queue)
|
|
||||||
),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
(
|
|
||||||
name: "Directories",
|
|
||||||
borders: "ALL",
|
|
||||||
border_symbols: Rounded,
|
|
||||||
pane: Split(
|
|
||||||
size: "100%",
|
|
||||||
direction: Vertical,
|
|
||||||
panes: [(pane: Pane(Directories), size: "100%", borders: "ALL", border_symbols: Rounded)],
|
|
||||||
)
|
|
||||||
),
|
|
||||||
(
|
|
||||||
name: "Artists",
|
|
||||||
borders: "ALL",
|
|
||||||
border_symbols: Rounded,
|
|
||||||
pane: Split(
|
|
||||||
size: "100%",
|
|
||||||
direction: Vertical,
|
|
||||||
panes: [(pane: Pane(Artists), size: "100%", borders: "ALL", border_symbols: Rounded)],
|
|
||||||
)
|
|
||||||
),
|
|
||||||
(
|
|
||||||
name: "Album Artists",
|
|
||||||
borders: "ALL",
|
|
||||||
border_symbols: Rounded,
|
|
||||||
pane: Split(
|
|
||||||
size: "100%",
|
|
||||||
direction: Vertical,
|
|
||||||
panes: [(pane: Pane(AlbumArtists), size: "100%", borders: "ALL", border_symbols: Rounded)],
|
|
||||||
)
|
|
||||||
),
|
|
||||||
(
|
|
||||||
name: "Albums",
|
|
||||||
borders: "ALL",
|
|
||||||
border_symbols: Rounded,
|
|
||||||
pane: Split(
|
|
||||||
size: "100%",
|
|
||||||
direction: Vertical,
|
|
||||||
panes: [(pane: Pane(Albums), size: "100%", borders: "ALL", border_symbols: Rounded)],
|
|
||||||
)
|
|
||||||
),
|
|
||||||
(
|
|
||||||
name: "Playlists",
|
|
||||||
borders: "ALL",
|
|
||||||
border_symbols: Rounded,
|
|
||||||
pane: Split(
|
|
||||||
size: "100%",
|
|
||||||
direction: Vertical,
|
|
||||||
panes: [(pane: Pane(Playlists), size: "100%", borders: "ALL", border_symbols: Rounded)],
|
|
||||||
)
|
|
||||||
),
|
|
||||||
(
|
|
||||||
name: "Search",
|
|
||||||
borders: "ALL",
|
|
||||||
border_symbols: Rounded,
|
|
||||||
pane: Split(
|
|
||||||
size: "100%",
|
|
||||||
direction: Vertical,
|
|
||||||
panes: [(pane: Pane(Search), size: "100%", borders: "ALL", border_symbols: Rounded)],
|
|
||||||
)
|
|
||||||
),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
@ -1,307 +0,0 @@
|
||||||
#![enable(implicit_some)]
|
|
||||||
#![enable(unwrap_newtypes)]
|
|
||||||
#![enable(unwrap_variant_newtypes)]
|
|
||||||
(
|
|
||||||
default_album_art_path: None,
|
|
||||||
format_tag_separator: " | ",
|
|
||||||
browser_column_widths: [20, 38, 42],
|
|
||||||
background_color: None,
|
|
||||||
text_color: None,
|
|
||||||
header_background_color: None,
|
|
||||||
modal_background_color: None,
|
|
||||||
modal_backdrop: false,
|
|
||||||
preview_label_style: (fg: "yellow"),
|
|
||||||
preview_metadata_group_style: (fg: "yellow", modifiers: "Bold"),
|
|
||||||
highlighted_item_style: (fg: "blue", modifiers: "Bold"),
|
|
||||||
current_item_style: (fg: "black", bg: "blue", modifiers: "Bold"),
|
|
||||||
borders_style: (fg: "blue"),
|
|
||||||
highlight_border_style: (fg: "blue"),
|
|
||||||
symbols: (
|
|
||||||
song: "S",
|
|
||||||
dir: "D",
|
|
||||||
playlist: "P",
|
|
||||||
marker: "M",
|
|
||||||
ellipsis: "...",
|
|
||||||
song_style: None,
|
|
||||||
dir_style: None,
|
|
||||||
playlist_style: None,
|
|
||||||
),
|
|
||||||
level_styles: (
|
|
||||||
info: (fg: "green", bg: "black"),
|
|
||||||
warn: (fg: "yellow", bg: "black"),
|
|
||||||
error: (fg: "red", bg: "black"),
|
|
||||||
debug: (fg: "light_green", bg: "black"),
|
|
||||||
trace: (fg: "magenta", bg: "black"),
|
|
||||||
),
|
|
||||||
progress_bar: (
|
|
||||||
symbols: ["█", "█", "█", " ", "█"],
|
|
||||||
track_style: None,
|
|
||||||
elapsed_style: (fg: "green"),
|
|
||||||
thumb_style: (fg: "blue"),
|
|
||||||
use_track_when_empty: true,
|
|
||||||
),
|
|
||||||
scrollbar: (
|
|
||||||
symbols: ["│", "█", "▲", "▼"],
|
|
||||||
track_style: (),
|
|
||||||
ends_style: (),
|
|
||||||
thumb_style: (fg: "blue"),
|
|
||||||
),
|
|
||||||
tab_bar: (
|
|
||||||
active_style: (fg: "black", bg: "blue", modifiers: "Bold"),
|
|
||||||
inactive_style: (),
|
|
||||||
),
|
|
||||||
lyrics: (
|
|
||||||
timestamp: false
|
|
||||||
),
|
|
||||||
browser_song_format: [
|
|
||||||
(
|
|
||||||
kind: Group([
|
|
||||||
(kind: Property(Track)),
|
|
||||||
(kind: Text(" ")),
|
|
||||||
])
|
|
||||||
),
|
|
||||||
(
|
|
||||||
kind: Group([
|
|
||||||
(kind: Property(Artist)),
|
|
||||||
(kind: Text(" - ")),
|
|
||||||
(kind: Property(Title)),
|
|
||||||
]),
|
|
||||||
default: (kind: Property(Filename))
|
|
||||||
),
|
|
||||||
],
|
|
||||||
song_table_format: [
|
|
||||||
(
|
|
||||||
prop: (kind: Property(Artist),
|
|
||||||
default: (kind: Text("Unknown"))
|
|
||||||
),
|
|
||||||
label_prop: (kind: Text("Artist")),
|
|
||||||
width: "20%",
|
|
||||||
),
|
|
||||||
(
|
|
||||||
prop: (kind: Property(Title),
|
|
||||||
default: (kind: Text("Unknown"))
|
|
||||||
),
|
|
||||||
label_prop: (kind: Text("Title")),
|
|
||||||
width: "35%",
|
|
||||||
),
|
|
||||||
(
|
|
||||||
prop: (kind: Property(Album), style: (fg: "white"),
|
|
||||||
default: (kind: Text("Unknown Album"), style: (fg: "white"))
|
|
||||||
),
|
|
||||||
label_prop: (kind: Text("Album")),
|
|
||||||
width: "30%",
|
|
||||||
),
|
|
||||||
(
|
|
||||||
prop: (kind: Property(Duration),
|
|
||||||
default: (kind: Text("-"))
|
|
||||||
),
|
|
||||||
label_prop: (kind: Text("Duration")),
|
|
||||||
width: "15%",
|
|
||||||
alignment: Right,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
layout: Split(
|
|
||||||
direction: Vertical,
|
|
||||||
panes: [
|
|
||||||
(
|
|
||||||
size: "4",
|
|
||||||
pane: Split(
|
|
||||||
direction: Horizontal,
|
|
||||||
panes: [
|
|
||||||
(
|
|
||||||
size: "35",
|
|
||||||
borders: "LEFT | TOP | BOTTOM",
|
|
||||||
border_symbols: Inherited(parent: Rounded, bottom_left: "├"),
|
|
||||||
pane: Component("header_left")
|
|
||||||
),
|
|
||||||
(
|
|
||||||
size: "100%",
|
|
||||||
borders: "ALL",
|
|
||||||
border_symbols: Inherited(parent: Rounded, top_left: "┬", top_right: "┬", bottom_left: "┴", bottom_right: "┴"),
|
|
||||||
pane: Component("header_center")
|
|
||||||
),
|
|
||||||
(
|
|
||||||
size: "35",
|
|
||||||
borders: "RIGHT | TOP | BOTTOM",
|
|
||||||
border_symbols: Inherited(parent: Rounded, bottom_right: "┤"),
|
|
||||||
pane: Component("header_right")
|
|
||||||
),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
),
|
|
||||||
(
|
|
||||||
pane: Pane(Tabs),
|
|
||||||
borders: "RIGHT | LEFT | BOTTOM",
|
|
||||||
border_symbols: Rounded,
|
|
||||||
size: "2",
|
|
||||||
),
|
|
||||||
(
|
|
||||||
pane: Pane(TabContent),
|
|
||||||
size: "100%",
|
|
||||||
),
|
|
||||||
(
|
|
||||||
size: "3",
|
|
||||||
pane: Split(
|
|
||||||
direction: Horizontal,
|
|
||||||
panes: [
|
|
||||||
(
|
|
||||||
size: "12",
|
|
||||||
borders: "ALL",
|
|
||||||
border_symbols: Inherited(parent: Rounded, top_right: "┬", bottom_right: "┴"),
|
|
||||||
pane: Component("input_mode")
|
|
||||||
),
|
|
||||||
(
|
|
||||||
size: "100%",
|
|
||||||
borders: "TOP | BOTTOM | RIGHT",
|
|
||||||
border_symbols: Rounded,
|
|
||||||
border_title: [(kind: Text(" ")), (kind: Property(Status(QueueLength()))), (kind: Text(" songs / ")), (kind: Property(Status(QueueTimeTotal()))), (kind: Text(" total time "))],
|
|
||||||
border_title_alignment: Right,
|
|
||||||
pane: Component("progress_bar"),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
components: {
|
|
||||||
"state": Pane(Property(
|
|
||||||
content: [
|
|
||||||
(kind: Text("["), style: (fg: "yellow", modifiers: "Bold")),
|
|
||||||
(kind: Property(Status(StateV2( ))), style: (fg: "yellow", modifiers: "Bold")),
|
|
||||||
(kind: Text("]"), style: (fg: "yellow", modifiers: "Bold")),
|
|
||||||
], align: Left,
|
|
||||||
)),
|
|
||||||
"title": Pane(Property(
|
|
||||||
content: [
|
|
||||||
(kind: Property(Song(Title)), style: (modifiers: "Bold"),
|
|
||||||
default: (kind: Text("No Song"), style: (modifiers: "Bold"))),
|
|
||||||
], align: Center, scroll_speed: 1
|
|
||||||
)),
|
|
||||||
"volume": Split(
|
|
||||||
direction: Horizontal,
|
|
||||||
panes: [
|
|
||||||
(size: "1", pane: Pane(Property(content: [(kind: Text(""))]))),
|
|
||||||
(size: "100%", pane: Pane(Volume(kind: Slider(symbols: (filled: "─", thumb: "●", track: "─"))))),
|
|
||||||
(size: "3", pane: Pane(Property(content: [(kind: Property(Status(Volume)), style: (fg: "blue"))], align: Right))),
|
|
||||||
(size: "2", pane: Pane(Property(content: [(kind: Text("%"), style: (fg: "blue"))]))),
|
|
||||||
]
|
|
||||||
),
|
|
||||||
"elapsed_and_bitrate": Pane(Property(
|
|
||||||
content: [
|
|
||||||
(kind: Property(Status(Elapsed))),
|
|
||||||
(kind: Text(" / ")),
|
|
||||||
(kind: Property(Status(Duration))),
|
|
||||||
(kind: Group([
|
|
||||||
(kind: Text(" (")),
|
|
||||||
(kind: Property(Status(Bitrate))),
|
|
||||||
(kind: Text(" kbps)")),
|
|
||||||
])),
|
|
||||||
],
|
|
||||||
align: Left,
|
|
||||||
)),
|
|
||||||
"artist_and_album": Pane(Property(
|
|
||||||
content: [
|
|
||||||
(kind: Property(Song(Artist)), style: (fg: "yellow", modifiers: "Bold"),
|
|
||||||
default: (kind: Text("Unknown"), style: (fg: "yellow", modifiers: "Bold"))),
|
|
||||||
(kind: Text(" - ")),
|
|
||||||
(kind: Property(Song(Album)), default: (kind: Text("Unknown Album"))),
|
|
||||||
], align: Center, scroll_speed: 1
|
|
||||||
)),
|
|
||||||
"states": Split(
|
|
||||||
direction: Horizontal,
|
|
||||||
panes: [
|
|
||||||
(
|
|
||||||
size: "1",
|
|
||||||
pane: Pane(Empty())
|
|
||||||
),
|
|
||||||
(
|
|
||||||
size: "100%",
|
|
||||||
pane: Pane(Property(content: [(kind: Property(Status(InputBuffer())), style: (fg: "blue"), align: Left)]))
|
|
||||||
),
|
|
||||||
(
|
|
||||||
size: "6",
|
|
||||||
pane: Pane(Property(content: [
|
|
||||||
(kind: Text("["), style: (fg: "blue", modifiers: "Bold")),
|
|
||||||
(kind: Property(Status(RepeatV2(
|
|
||||||
on_label: "z",
|
|
||||||
off_label: "z",
|
|
||||||
on_style: (fg: "yellow", modifiers: "Bold"),
|
|
||||||
off_style: (fg: "blue", modifiers: "Dim"),
|
|
||||||
)))),
|
|
||||||
(kind: Property(Status(RandomV2(
|
|
||||||
on_label: "x",
|
|
||||||
off_label: "x",
|
|
||||||
on_style: (fg: "yellow", modifiers: "Bold"),
|
|
||||||
off_style: (fg: "blue", modifiers: "Dim"),
|
|
||||||
)))),
|
|
||||||
(kind: Property(Status(ConsumeV2(
|
|
||||||
on_label: "c",
|
|
||||||
off_label: "c",
|
|
||||||
oneshot_label: "c",
|
|
||||||
on_style: (fg: "yellow", modifiers: "Bold"),
|
|
||||||
off_style: (fg: "blue", modifiers: "Dim"),
|
|
||||||
oneshot_style: (fg: "red", modifiers: "Dim"),
|
|
||||||
)))),
|
|
||||||
(kind: Property(Status(SingleV2(
|
|
||||||
on_label: "v",
|
|
||||||
off_label: "v",
|
|
||||||
oneshot_label: "v",
|
|
||||||
on_style: (fg: "yellow", modifiers: "Bold"),
|
|
||||||
off_style: (fg: "blue", modifiers: "Dim"),
|
|
||||||
oneshot_style: (fg: "red", modifiers: "Bold"),
|
|
||||||
)))),
|
|
||||||
(kind: Text("]"), style: (fg: "blue", modifiers: "Bold")),
|
|
||||||
],
|
|
||||||
align: Right
|
|
||||||
))
|
|
||||||
),
|
|
||||||
]
|
|
||||||
),
|
|
||||||
"input_mode": Pane(Property(
|
|
||||||
content: [
|
|
||||||
(kind: Transform(Replace(content: (kind: Property(Status(InputMode()))), replacements: [
|
|
||||||
(match: "Normal", replace: (kind: Text(" NORMAL "), style: (fg: "black", bg: "blue"))),
|
|
||||||
(match: "Insert", replace: (kind: Text(" INSERT "), style: (fg: "black", bg: "green"))),
|
|
||||||
])))
|
|
||||||
], align: Center
|
|
||||||
)),
|
|
||||||
"header_left": Split(
|
|
||||||
direction: Vertical,
|
|
||||||
panes: [
|
|
||||||
(size: "1", pane: Component("state")),
|
|
||||||
(size: "1", pane: Component("elapsed_and_bitrate")),
|
|
||||||
]
|
|
||||||
),
|
|
||||||
"header_center": Split(
|
|
||||||
direction: Vertical,
|
|
||||||
panes: [
|
|
||||||
(size: "1", pane: Component("title")),
|
|
||||||
(size: "1", pane: Component("artist_and_album")),
|
|
||||||
]
|
|
||||||
),
|
|
||||||
"header_right": Split(
|
|
||||||
direction: Vertical,
|
|
||||||
panes: [
|
|
||||||
(size: "1", pane: Component("volume")),
|
|
||||||
(size: "1", pane: Component("states")),
|
|
||||||
]
|
|
||||||
),
|
|
||||||
"progress_bar": Split(
|
|
||||||
direction: Horizontal,
|
|
||||||
panes: [
|
|
||||||
(
|
|
||||||
size: "1",
|
|
||||||
pane: Pane(Empty())
|
|
||||||
),
|
|
||||||
(
|
|
||||||
size: "100%",
|
|
||||||
pane: Pane(ProgressBar)
|
|
||||||
),
|
|
||||||
(
|
|
||||||
size: "1",
|
|
||||||
pane: Pane(Empty())
|
|
||||||
),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
@ -1,99 +0,0 @@
|
||||||
{
|
|
||||||
"$schema": "/etc/xdg/swaync/configSchema.json",
|
|
||||||
"ignore-gtk-theme": true,
|
|
||||||
"positionX": "right",
|
|
||||||
"positionY": "top",
|
|
||||||
"layer": "overlay",
|
|
||||||
"control-center-layer": "top",
|
|
||||||
"layer-shell": true,
|
|
||||||
"layer-shell-cover-screen": true,
|
|
||||||
"cssPriority": "user",
|
|
||||||
"control-center-margin-top": 0,
|
|
||||||
"control-center-margin-bottom": 0,
|
|
||||||
"control-center-margin-right":0,
|
|
||||||
"control-center-margin-left": 0,
|
|
||||||
"notification-2fa-action": true,
|
|
||||||
"notification-inline-replies": false,
|
|
||||||
"notification-body-image-height": 100,
|
|
||||||
"notification-body-image-width": 200,
|
|
||||||
"timeout": 10,
|
|
||||||
"timeout-low": 5,
|
|
||||||
"timeout-critical": 0,
|
|
||||||
"fit-to-screen": true,
|
|
||||||
"relative-timestamps": true,
|
|
||||||
"control-center-width": 500,
|
|
||||||
"control-center-height": 600,
|
|
||||||
"notification-window-width": 500,
|
|
||||||
"keyboard-shortcuts": true,
|
|
||||||
"notification-grouping": true,
|
|
||||||
"image-visibility": "when-available",
|
|
||||||
"transition-time": 200,
|
|
||||||
"hide-on-clear": false,
|
|
||||||
"hide-on-action": true,
|
|
||||||
"text-empty": "No Notifications",
|
|
||||||
"script-fail-notify": true,
|
|
||||||
"scripts": {
|
|
||||||
"example-script": {
|
|
||||||
"exec": "echo 'Do something...'",
|
|
||||||
"urgency": "Normal"
|
|
||||||
},
|
|
||||||
"example-action-script": {
|
|
||||||
"exec": "echo 'Do something actionable!'",
|
|
||||||
"urgency": "Normal",
|
|
||||||
"run-on": "action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-visibility": {
|
|
||||||
"example-name": {
|
|
||||||
"state": "muted",
|
|
||||||
"urgency": "Low",
|
|
||||||
"app-name": "Spotify"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"widgets": [
|
|
||||||
"inhibitors",
|
|
||||||
"title",
|
|
||||||
"dnd",
|
|
||||||
"notifications"
|
|
||||||
],
|
|
||||||
"widget-config": {
|
|
||||||
"notifications": {
|
|
||||||
"vexpand": true
|
|
||||||
},
|
|
||||||
"inhibitors": {
|
|
||||||
"text": "Inhibitors",
|
|
||||||
"button-text": "Clear All",
|
|
||||||
"clear-all-button": true
|
|
||||||
},
|
|
||||||
"title": {
|
|
||||||
"text": "Notifications",
|
|
||||||
"clear-all-button": true,
|
|
||||||
"button-text": "Clear All"
|
|
||||||
},
|
|
||||||
"dnd": {
|
|
||||||
"text": "Do Not Disturb"
|
|
||||||
},
|
|
||||||
"label": {
|
|
||||||
"max-lines": 5,
|
|
||||||
"text": "Label Text"
|
|
||||||
},
|
|
||||||
"mpris": {
|
|
||||||
"blacklist": [],
|
|
||||||
"autohide": false,
|
|
||||||
"show-album-art": "always",
|
|
||||||
"loop-carousel": false
|
|
||||||
},
|
|
||||||
"buttons-grid": {
|
|
||||||
"buttons-per-row": 7,
|
|
||||||
"actions": [
|
|
||||||
{
|
|
||||||
"label": "直",
|
|
||||||
"type": "toggle",
|
|
||||||
"active": true,
|
|
||||||
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && nmcli radio wifi on || nmcli radio wifi off'",
|
|
||||||
"update-command": "sh -c '[[ $(nmcli radio wifi) == \"enabled\" ]] && echo true || echo false'"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,569 +0,0 @@
|
||||||
:root {
|
|
||||||
--cc-bg: #07090b;
|
|
||||||
--noti-border-color: #eef7fd;
|
|
||||||
--noti-bg: #07090b;
|
|
||||||
--noti-bg-alpha: 0.0;
|
|
||||||
--noti-bg-darker: #07090b;
|
|
||||||
--noti-bg-hover: #07090b;
|
|
||||||
--noti-bg-focus: #07090b;
|
|
||||||
--noti-close-bg: #1f2830;
|
|
||||||
--noti-close-bg-hover: #444446;
|
|
||||||
--text-color: #eef7fd;
|
|
||||||
--text-color-disabled: rgb(150, 150, 150);
|
|
||||||
--bg-selected: #1f2830;
|
|
||||||
--notification-icon-size: 64px;
|
|
||||||
--notification-app-icon-size: calc(var(--notification-icon-size) / 3);
|
|
||||||
--notification-group-icon-size: 32px;
|
|
||||||
--border: 4px solid var(--noti-border-color);
|
|
||||||
--border-radius: 10px;
|
|
||||||
--notification-shadow: 0 rgba(0, 0, 0, 0);
|
|
||||||
--font-size-body: 15px;
|
|
||||||
--font-size-summary: 16px;
|
|
||||||
/* Deprecated variables (because of their typos). Keeeping them around for backwards compatibility. */
|
|
||||||
--hover-tranistion: background 0.15s ease-out-quad;
|
|
||||||
--group-collapse-tranistion: opacity 100ms ease-out-quad;
|
|
||||||
--hover-transition: var(--hover-tranistion);
|
|
||||||
--group-collapse-transition: var(--group-collapse-tranistion);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Fallback for older CSS themes */
|
|
||||||
/* Fallback for older CSS themes
|
|
||||||
@define-color cc-bg #07090b;
|
|
||||||
@define-color noti-border-color #eef7fd;
|
|
||||||
@define-color noti-bg rgba(48, 48, 48, 0.8);
|
|
||||||
@define-color noti-bg-opaque rgb(48, 48, 48);
|
|
||||||
@define-color noti-bg-darker rgb(38, 38, 38);
|
|
||||||
@define-color noti-bg-hover rgb(56, 56, 56);
|
|
||||||
@define-color noti-bg-hover-opaque rgb(56, 56, 56);
|
|
||||||
@define-color noti-bg-focus rgba(68, 68, 68, 0.6);
|
|
||||||
@define-color noti-close-bg rgba(255, 255, 255, 0.1);
|
|
||||||
@define-color noti-close-bg-hover rgba(255, 255, 255, 0.15);
|
|
||||||
@define-color text-color rgb(255, 255, 255);
|
|
||||||
@define-color text-color-disabled rgb(150, 150, 150);
|
|
||||||
@define-color bg-selected rgb(0, 128, 255);
|
|
||||||
*/
|
|
||||||
notificationwindow,
|
|
||||||
blankwindow,
|
|
||||||
blankwindow {
|
|
||||||
background: #07090b;
|
|
||||||
}
|
|
||||||
|
|
||||||
.close-button {
|
|
||||||
/* The notification Close Button */
|
|
||||||
background: var(--noti-close-bg);
|
|
||||||
color: var(--text-color);
|
|
||||||
text-shadow: none;
|
|
||||||
padding: 0;
|
|
||||||
border-radius: 20%;
|
|
||||||
margin-top: 8px;
|
|
||||||
margin-right: 8px;
|
|
||||||
box-shadow: none;
|
|
||||||
border: none;
|
|
||||||
min-width: 24px;
|
|
||||||
min-height: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.close-button:hover {
|
|
||||||
box-shadow: none;
|
|
||||||
background: var(--noti-close-bg-hover);
|
|
||||||
transition: var(--hover-tranistion);
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row {
|
|
||||||
background: none;
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row:focus {
|
|
||||||
background: var(--noti-bg-focus);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background {
|
|
||||||
padding: 6px 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification {
|
|
||||||
/* The actual notification */
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
border: var(--border);
|
|
||||||
padding: 0;
|
|
||||||
transition: var(--hover-tranistion);
|
|
||||||
background: rgba(var(--noti-bg), var(--noti-bg-alpha));
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification.low {
|
|
||||||
/* Low Priority Notification */
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification.normal {
|
|
||||||
/* Normal Priority Notification */
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification.critical {
|
|
||||||
/* Critical Priority Notification */
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action {
|
|
||||||
/* The large action that also displays the notification summary and body */
|
|
||||||
padding: 10px;
|
|
||||||
margin: 0;
|
|
||||||
box-shadow: none;
|
|
||||||
background: #07090b;
|
|
||||||
border: none;
|
|
||||||
color: var(--text-color);
|
|
||||||
transition: var(--hover-tranistion);
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action:hover {
|
|
||||||
-gtk-icon-filter: none;
|
|
||||||
background: var(--noti-bg-hover);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action:not(:only-child) {
|
|
||||||
/* When alternative actions are visible */
|
|
||||||
border-bottom-left-radius: 0px;
|
|
||||||
border-bottom-right-radius: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content {
|
|
||||||
background: #07090b;
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content .image {
|
|
||||||
/* Notification Primary Image */
|
|
||||||
-gtk-icon-filter: none;
|
|
||||||
-gtk-icon-size: var(--notification-icon-size);
|
|
||||||
border-radius: 20px;
|
|
||||||
/* Size in px */
|
|
||||||
margin: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content .app-icon {
|
|
||||||
/* Notification app icon (only visible when the primary image is set) */
|
|
||||||
-gtk-icon-filter: none;
|
|
||||||
-gtk-icon-size: var(--notification-app-icon-size);
|
|
||||||
-gtk-icon-shadow: 0 1px 4px black;
|
|
||||||
margin: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box label {
|
|
||||||
/* Fixes base GTK 4 CSS setting a filter of opacity 50% for some odd reason */
|
|
||||||
filter: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .summary {
|
|
||||||
/* Notification summary/title */
|
|
||||||
font-size: var(--font-size-summary);
|
|
||||||
font-weight: bold;
|
|
||||||
background: #07090b;
|
|
||||||
color: var(--text-color);
|
|
||||||
text-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .time {
|
|
||||||
/* Notification time-ago */
|
|
||||||
font-size: var(--font-size-summary);
|
|
||||||
font-weight: bold;
|
|
||||||
background: #07090b;
|
|
||||||
color: var(--text-color);
|
|
||||||
text-shadow: none;
|
|
||||||
margin-right: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .body {
|
|
||||||
/* Notification body */
|
|
||||||
font-size: var(--font-size-body);
|
|
||||||
font-weight: normal;
|
|
||||||
background: #07090b;
|
|
||||||
color: var(--text-color);
|
|
||||||
text-shadow: none;
|
|
||||||
margin: 10px;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content progressbar {
|
|
||||||
/* The optional notification progress bar */
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content .body-image {
|
|
||||||
/* The "extra" optional bottom notification image */
|
|
||||||
margin-top: 4px;
|
|
||||||
background-color: white;
|
|
||||||
-gtk-icon-filter: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply {
|
|
||||||
/* The inline reply section */
|
|
||||||
margin-top: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-entry {
|
|
||||||
background: var(--noti-bg-darker);
|
|
||||||
color: var(--text-color);
|
|
||||||
caret-color: var(--text-color);
|
|
||||||
border: var(--border);
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button {
|
|
||||||
margin-left: 4px;
|
|
||||||
background: rgba(var(--noti-bg), var(--noti-bg-alpha));
|
|
||||||
border: var(--border);
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
color: var(--text-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button:disabled {
|
|
||||||
background: initial;
|
|
||||||
color: var(--text-color-disabled);
|
|
||||||
border: var(--border);
|
|
||||||
border-color: #07090b;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button:hover {
|
|
||||||
background: var(--noti-bg-hover);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-alt-actions {
|
|
||||||
background: none;
|
|
||||||
border-bottom-left-radius: var(--border-radius);
|
|
||||||
border-bottom-right-radius: var(--border-radius);
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-action {
|
|
||||||
/* The alternative actions below the default action */
|
|
||||||
margin: 4px;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-row .notification-background .notification .notification-action>button {
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
color: var(--text-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group {
|
|
||||||
/* Styling only for Grouped Notifications */
|
|
||||||
transition: opacity 200ms ease-in-out;
|
|
||||||
/* The groups close button */
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group:focus {
|
|
||||||
background: var(--noti-bg-focus);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group.low {
|
|
||||||
/* Low Priority Group */
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group.normal {
|
|
||||||
/* Low Priority Group */
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group.critical {
|
|
||||||
/* Low Priority Group */
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group .notification-group-close-button .close-button {
|
|
||||||
margin: 20px 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group .notification-group-buttons,
|
|
||||||
.notification-group .notification-group-headers {
|
|
||||||
margin: 0 16px;
|
|
||||||
color: var(--text-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group .notification-group-headers {
|
|
||||||
/* Notification Group Headers */
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group .notification-group-headers .notification-group-icon {
|
|
||||||
color: var(--text-color);
|
|
||||||
-gtk-icon-size: var(--notification-group-icon-size);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group .notification-group-headers .notification-group-header {
|
|
||||||
color: var(--text-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group .notification-group-buttons {
|
|
||||||
/* Notification Group Buttons */
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group.collapsed {
|
|
||||||
/* When another group is expanded, lower the opacity of the collapsed ones */
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group.collapsed.not-expanded {
|
|
||||||
opacity: 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group.collapsed .notification-row .notification {
|
|
||||||
background-color: rgba(var(--noti-bg), 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group.collapsed .notification-row:not(:last-child) {
|
|
||||||
/* Top notification in stack */
|
|
||||||
/* Set lower stacked notifications opacity to 0 */
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group.collapsed .notification-row:not(:last-child) .notification-action,
|
|
||||||
.notification-group.collapsed .notification-row:not(:last-child) .notification-default-action {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-group.collapsed:hover .notification-row:not(:only-child) .notification {
|
|
||||||
background-color: var(--noti-bg-hover);
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center {
|
|
||||||
/* The Control Center which contains the old notifications + widgets */
|
|
||||||
background: var(--cc-bg);
|
|
||||||
color: var(--text-color);
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
padding: 10px;
|
|
||||||
margin: 10px;
|
|
||||||
border: 4px solid var(--noti-border-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .control-center-list-placeholder {
|
|
||||||
/* The placeholder when there are no notifications */
|
|
||||||
opacity: 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .control-center-list {
|
|
||||||
/* List of notifications */
|
|
||||||
background: #07090b;
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .control-center-list .notification {
|
|
||||||
box-shadow: var(--notification-shadow);
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .control-center-list .notification .notification-default-action,
|
|
||||||
.control-center .control-center-list .notification .notification-action {
|
|
||||||
transition: var(--group-collapse-tranistion), var(--hover-tranistion);
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .control-center-list .notification .notification-default-action:hover,
|
|
||||||
.control-center .control-center-list .notification .notification-action:hover {
|
|
||||||
background-color: var(--noti-bg-hover);
|
|
||||||
}
|
|
||||||
|
|
||||||
.blank-window {
|
|
||||||
/* Window behind control center and on all other monitors */
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating-notifications {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating-notifications .notification {
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*** Widgets ***/
|
|
||||||
.widget {
|
|
||||||
margin: 8px;
|
|
||||||
padding: 8px;
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Title widget */
|
|
||||||
.widget-title>label {
|
|
||||||
margin-right: 8px;
|
|
||||||
font-size: 1.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-title>button {
|
|
||||||
margin-left: 8px;
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* DND widget */
|
|
||||||
.widget-dnd label {
|
|
||||||
color: var(--text-color);
|
|
||||||
margin-right: 8px;
|
|
||||||
font-size: 1.1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-dnd switch {
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
margin-left: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-dnd switch slider {
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Label widget */
|
|
||||||
.widget-label>label {
|
|
||||||
font-size: 1.1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Mpris widget */
|
|
||||||
:root {
|
|
||||||
--mpris-album-art-overlay: rgba(0, 0, 0, 0.55);
|
|
||||||
--mpris-button-hover: rgba(0, 0, 0, 0.5);
|
|
||||||
--mpris-album-art-icon-size: 96px;
|
|
||||||
--mpris-album-art-shadow: 0px 0px 10px rgba(0, 0, 0, 0.75);
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-mpris {
|
|
||||||
padding: 0;
|
|
||||||
/* The parent to all players */
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-mpris .widget-mpris-player {
|
|
||||||
margin: 16px 20px;
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
box-shadow: var(--mpris-album-art-shadow);
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-mpris .widget-mpris-player .mpris-background {
|
|
||||||
filter: blur(10px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-mpris .widget-mpris-player .mpris-overlay {
|
|
||||||
padding: 16px;
|
|
||||||
background-color: var(--mpris-album-art-overlay);
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-mpris .widget-mpris-player .mpris-overlay button:hover {
|
|
||||||
/* The media player buttons (play, pause, next, etc...) */
|
|
||||||
background: var(--noti-bg-hover);
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-album-art {
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
box-shadow: var(--mpris-album-art-shadow);
|
|
||||||
-gtk-icon-size: var(--mpris-album-art-icon-size);
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-title {
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 1.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-subtitle {
|
|
||||||
font-size: 1.1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-mpris .widget-mpris-player .mpris-overlay>box>button {
|
|
||||||
/* Change player control buttons */
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-mpris .widget-mpris-player .mpris-overlay>box>button:hover {
|
|
||||||
background-color: var(--mpris-button-hover);
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-mpris>box>button {
|
|
||||||
/* Change player side buttons */
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-mpris>box>button:disabled {
|
|
||||||
/* Change player side buttons insensitive */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Buttons widget */
|
|
||||||
.widget-buttons-grid flowboxchild>button {
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-buttons-grid flowboxchild>button.toggle:checked {
|
|
||||||
/* style given to the active toggle button */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Menubar widget */
|
|
||||||
.widget-menubar {
|
|
||||||
/* The revealer buttons */
|
|
||||||
/* .AnyName { Name defined in config after #
|
|
||||||
background-color: rgba(var(--noti-bg), 1.0);
|
|
||||||
padding: 8px;
|
|
||||||
margin: 8px;
|
|
||||||
border-radius: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.AnyName>button {
|
|
||||||
background: transparent;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.AnyName>button:hover {
|
|
||||||
background-color: var(--noti-bg-hover);
|
|
||||||
} */
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-menubar>.menu-button-bar {
|
|
||||||
/* The left button container */
|
|
||||||
/* The right button container */
|
|
||||||
/* The left and right button container */
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-menubar>.menu-button-bar>.start {
|
|
||||||
margin-left: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-menubar>.menu-button-bar>.end {
|
|
||||||
margin-right: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-menubar>.menu-button-bar>.widget-menubar-container button {
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
margin: 0 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-menubar>revealer * {
|
|
||||||
margin-top: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-menubar>revealer * button {
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
margin: 8px;
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-menubar>revealer * button:last-child {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Volume widget */
|
|
||||||
:root {
|
|
||||||
--widget-volume-row-icon-size: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Each row app icon */
|
|
||||||
.widget-volume row image {
|
|
||||||
-gtk-icon-size: var(--widget-volume-row-icon-size);
|
|
||||||
}
|
|
||||||
|
|
||||||
.per-app-volume {
|
|
||||||
background-color: var(--noti-bg-alt);
|
|
||||||
margin: 8px;
|
|
||||||
margin-bottom: 0;
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Slider widget */
|
|
||||||
.widget-slider label {
|
|
||||||
font-size: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Backlight widget */
|
|
||||||
/* Inhibitors widget */
|
|
||||||
.widget-inhibitors>label {
|
|
||||||
margin-right: 8px;
|
|
||||||
font-size: 1.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-inhibitors>button {
|
|
||||||
margin-left: 8px;
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue