mirror of
https://github.com/Cian-H/dotfiles.git
synced 2026-08-08 10:23:22 +01:00
Compare commits
91
Commits
9fd462ba05
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2322e815d4 | ||
|
|
212ea135c7 | ||
|
|
a38a8baa1a | ||
|
|
90f2961990 | ||
|
|
f8d82b990a | ||
|
|
320438eb7e | ||
|
|
2ed9e9c413 | ||
|
|
08575ed0c5 | ||
|
|
6869610bdb | ||
|
|
36883000c8 | ||
|
|
00f5849fc1 | ||
|
|
0cb9636abc | ||
|
|
355bc51a23 | ||
|
|
77dc2e3582 | ||
|
|
d8c66a96d4 | ||
|
|
9a9c5a0c24 | ||
|
|
f940779ae9 | ||
|
|
ff47fc8664 | ||
|
|
24836e87ce | ||
|
|
466517fb7f | ||
|
|
013af9bcf1 | ||
|
|
aed382623d | ||
|
|
43d19f4332 | ||
|
|
67ebb6293f | ||
|
|
61dcc29d71 | ||
|
|
90152ab6ae | ||
|
|
01e17d26b9 | ||
|
|
cc6ab15451 | ||
|
|
3bd6b636e0 | ||
|
|
f546294969 | ||
|
|
191479f79a | ||
|
|
bff3294269 | ||
|
|
5ee9b2a598 | ||
|
|
bdb5f7542c | ||
|
|
4dd7f550cc | ||
|
|
409e6ead15 | ||
|
|
d27d8800a1 | ||
|
|
e384089fb8 | ||
|
|
700b0b595d | ||
|
|
f6774b6d39 | ||
|
|
78ba202389 | ||
|
|
2518de3c92 | ||
|
|
a68eeead4b | ||
|
|
535b5fe48b | ||
|
|
01d87ff633 | ||
|
|
f612da0d57 | ||
|
|
09438ac87b | ||
|
|
2c6629700d | ||
|
|
12b1519787 | ||
|
|
b635d1635d | ||
|
|
445f492a8f | ||
|
|
ac9525ab04 | ||
|
|
48d06e1d07 | ||
|
|
5e67a8dc74 | ||
|
|
ee9dc720f7 | ||
|
|
df5f42306f | ||
|
|
ac73f0bd74 | ||
|
|
0c3f60a026 | ||
|
|
104c290cab | ||
|
|
3131dc2b05 | ||
|
|
edbf7712cb | ||
|
|
3c0b4bb43e | ||
|
|
ba3ee24e3b | ||
|
|
06c27d154d | ||
|
|
e7d8b320a1 | ||
|
|
ffc16b2199 | ||
|
|
578bccddfe | ||
|
|
f05e3bbdc6 | ||
|
|
4d6e29814a | ||
|
|
7ad4e33b37 | ||
|
|
8a191179bd | ||
|
|
705ae17eda | ||
|
|
ece4c56ce3 | ||
|
|
892af2f4ac | ||
|
|
a2118c9218 | ||
|
|
b894a795d1 | ||
|
|
a8f4f253af | ||
|
|
c2ca514b2d | ||
|
|
253ab4393a | ||
|
|
a02f4dabcb | ||
|
|
a997e91c82 | ||
|
|
a3616d95e9 | ||
|
|
b2a43677bb | ||
|
|
a579237597 | ||
|
|
a0e232ff29 | ||
|
|
23b93a55d9 | ||
|
|
b05f1979d3 | ||
|
|
e9b74756da | ||
|
|
769522d86e | ||
|
|
a28fa3a7bf | ||
|
|
e8f1a3ee00 |
+18
-9
@@ -13,9 +13,6 @@
|
|||||||
[submodule "dot_config/micro/plug/lsp"]
|
[submodule "dot_config/micro/plug/lsp"]
|
||||||
path = dot_config/micro/plug/lsp
|
path = dot_config/micro/plug/lsp
|
||||||
url = https://github.com/AndCake/micro-plugin-lsp.git
|
url = https://github.com/AndCake/micro-plugin-lsp.git
|
||||||
[submodule "dot_config/yazi/plugins/hexyl.yazi"]
|
|
||||||
path = dot_config/yazi/plugins/hexyl.yazi
|
|
||||||
url = https://github.com/Reledia/hexyl.yazi
|
|
||||||
[submodule "dot_config/yazi/flavors/tokyo-night.yazi"]
|
[submodule "dot_config/yazi/flavors/tokyo-night.yazi"]
|
||||||
path = dot_config/yazi/flavors/tokyo-night.yazi
|
path = dot_config/yazi/flavors/tokyo-night.yazi
|
||||||
url = https://github.com/BennyOe/tokyo-night.yazi.git
|
url = https://github.com/BennyOe/tokyo-night.yazi.git
|
||||||
@@ -31,15 +28,27 @@
|
|||||||
[submodule "dot_config/yazi/plugins/starship.yazi"]
|
[submodule "dot_config/yazi/plugins/starship.yazi"]
|
||||||
path = dot_config/yazi/plugins/starship.yazi
|
path = dot_config/yazi/plugins/starship.yazi
|
||||||
url = https://github.com/Rolv-Apneseth/starship.yazi
|
url = https://github.com/Rolv-Apneseth/starship.yazi
|
||||||
[submodule "dot_config/yazi/plugins/glow.yazi"]
|
|
||||||
path = dot_config/yazi/plugins/glow.yazi
|
|
||||||
url = https://github.com/Reledia/glow.yazi
|
|
||||||
[submodule "dot_config/yazi/plugins/wl-clipboard.yazi"]
|
|
||||||
path = dot_config/yazi/plugins/wl-clipboard.yazi
|
|
||||||
url = https://github.com/grappas/wl-clipboard.yazi
|
|
||||||
[submodule "dot_config/yazi/plugins/rich-preview.yazi"]
|
[submodule "dot_config/yazi/plugins/rich-preview.yazi"]
|
||||||
path = dot_config/yazi/plugins/rich-preview.yazi
|
path = dot_config/yazi/plugins/rich-preview.yazi
|
||||||
url = https://github.com/AnirudhG07/rich-preview.yazi
|
url = https://github.com/AnirudhG07/rich-preview.yazi
|
||||||
[submodule "dot_config/yazi/plugins/max-preview.yazi"]
|
[submodule "dot_config/yazi/plugins/max-preview.yazi"]
|
||||||
path = dot_config/yazi/plugins/max-preview.yazi
|
path = dot_config/yazi/plugins/max-preview.yazi
|
||||||
url = https://github.com/SUSTech-data/max-preview.yazi
|
url = https://github.com/SUSTech-data/max-preview.yazi
|
||||||
|
[submodule "dot_config/noctalia/plugins-repo"]
|
||||||
|
path = dot_config/noctalia/plugins-repo
|
||||||
|
url = https://github.com/noctalia-dev/legacy-v4-plugins.git
|
||||||
|
[submodule "dot_config/noctalia/plugins-custom/workday-progress"]
|
||||||
|
path = dot_config/noctalia/plugins-custom/workday-progress
|
||||||
|
url = https://github.com/Cian-H/workday-progress
|
||||||
|
[submodule "dot_config/yazi/plugins/clipboard.yazi"]
|
||||||
|
path = dot_config/yazi/plugins/clipboard.yazi
|
||||||
|
url = https://github.com/XYenon/clipboard.yazi.git
|
||||||
|
[submodule "dot_config/yazi/plugins/yazi-rs-plugins"]
|
||||||
|
path = dot_config/yazi/plugins/yazi-rs-plugins
|
||||||
|
url = https://github.com/yazi-rs/plugins.git
|
||||||
|
[submodule "dot_config/helix"]
|
||||||
|
path = dot_config/helix
|
||||||
|
url = https://github.com/Cian-H/my_helix_config
|
||||||
|
[submodule "dot_config/emacs"]
|
||||||
|
path = dot_config/emacs
|
||||||
|
url = https://github.com/Cian-H/my_emacs_config
|
||||||
|
|||||||
+1
-1
@@ -120,7 +120,7 @@ fi
|
|||||||
|
|
||||||
# Atuin (Shell History)
|
# Atuin (Shell History)
|
||||||
if command -v atuin >/dev/null 2>&1; then
|
if command -v atuin >/dev/null 2>&1; then
|
||||||
eval "$(atuin init bash)"
|
eval "$(atuin init bash --disable-up-arrow)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Direnv
|
# Direnv
|
||||||
|
|||||||
@@ -1,485 +0,0 @@
|
|||||||
[%General]
|
|
||||||
author=Tsu Jan (Modified by ObsidianChickenz)
|
|
||||||
comment=A minimalistic dark theme inspired by the Arc GTK theme
|
|
||||||
x11drag=menubar_and_primary_toolbar
|
|
||||||
alt_mnemonic=true
|
|
||||||
left_tabs=true
|
|
||||||
attach_active_tab=true
|
|
||||||
mirror_doc_tabs=true
|
|
||||||
group_toolbar_buttons=false
|
|
||||||
toolbar_item_spacing=1
|
|
||||||
toolbar_interior_spacing=3
|
|
||||||
spread_progressbar=true
|
|
||||||
composite=true
|
|
||||||
menu_shadow_depth=5
|
|
||||||
menu_separator_height=6
|
|
||||||
tooltip_shadow_depth=6
|
|
||||||
splitter_width=4
|
|
||||||
scroll_width=9
|
|
||||||
scroll_arrows=false
|
|
||||||
scroll_min_extent=60
|
|
||||||
slider_width=6
|
|
||||||
slider_handle_width=18
|
|
||||||
slider_handle_length=18
|
|
||||||
center_toolbar_handle=true
|
|
||||||
check_size=14
|
|
||||||
textless_progressbar=false
|
|
||||||
progressbar_thickness=3font
|
|
||||||
menubar_mouse_tracking=true
|
|
||||||
toolbutton_style=1
|
|
||||||
click_behavior=0
|
|
||||||
translucent_windows=false
|
|
||||||
blurring=false
|
|
||||||
popup_blurring=false
|
|
||||||
vertical_spin_indicators=false
|
|
||||||
spin_button_width=32
|
|
||||||
fill_rubberband=false
|
|
||||||
merge_menubar_with_toolbar=true
|
|
||||||
small_icon_size=16
|
|
||||||
large_icon_size=32
|
|
||||||
button_icon_size=16
|
|
||||||
toolbar_icon_size=22
|
|
||||||
combo_as_lineedit=true
|
|
||||||
animate_states=false
|
|
||||||
button_contents_shift=false
|
|
||||||
combo_menu=true
|
|
||||||
hide_combo_checkboxes=true
|
|
||||||
combo_focus_rect=true
|
|
||||||
groupbox_top_label=true
|
|
||||||
inline_spin_indicators=false
|
|
||||||
joined_inactive_tabs=false
|
|
||||||
layout_spacing=6
|
|
||||||
layout_margin=9
|
|
||||||
scrollbar_in_view=true
|
|
||||||
transient_scrollbar=true
|
|
||||||
transient_groove=true
|
|
||||||
submenu_overlap=3
|
|
||||||
tooltip_delay=-1
|
|
||||||
tree_branch_line=true
|
|
||||||
dark_titlebar=true
|
|
||||||
contrast=1.00
|
|
||||||
dialog_button_layout=0
|
|
||||||
drag_from_buttons=false
|
|
||||||
intensity=1.00
|
|
||||||
menu_blur_radius=0
|
|
||||||
no_inactiveness=false
|
|
||||||
no_window_pattern=false
|
|
||||||
opaque=kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,smplayer,smplayer2,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,VirtualBoxVM,trojita,dragon,digikam,lyx
|
|
||||||
reduce_menu_opacity=0
|
|
||||||
reduce_window_opacity=0
|
|
||||||
respect_DE=true
|
|
||||||
saturation=1.00
|
|
||||||
scrollable_menu=true
|
|
||||||
shadowless_popup=false
|
|
||||||
submenu_delay=250
|
|
||||||
tooltip_blur_radius=0
|
|
||||||
|
|
||||||
[GeneralColors]
|
|
||||||
window.color=#16161e
|
|
||||||
base.color=#1a1b26
|
|
||||||
alt.base.color=#1a1b26
|
|
||||||
button.color=#1d1f2b
|
|
||||||
light.color=#3e415c
|
|
||||||
mid.light.color=#313131
|
|
||||||
dark.color=black
|
|
||||||
mid.color=#191919
|
|
||||||
highlight.color=#7aa2f7
|
|
||||||
inactive.highlight.color=#7aa2f7
|
|
||||||
text.color=#c0caf5
|
|
||||||
window.text.color=#c0caf5
|
|
||||||
button.text.color=#c0caf5
|
|
||||||
disabled.text.color=#c0caf5
|
|
||||||
tooltip.text.color=#c0caf5
|
|
||||||
highlight.text.color=#1a1b26
|
|
||||||
link.color=#d8e4fd
|
|
||||||
link.visited.color=#a8c2fa
|
|
||||||
progress.indicator.text.color=#c0caf5
|
|
||||||
|
|
||||||
[Hacks]
|
|
||||||
transparent_ktitle_label=true
|
|
||||||
transparent_dolphin_view=false
|
|
||||||
transparent_pcmanfm_sidepane=true
|
|
||||||
blur_translucent=false
|
|
||||||
transparent_menutitle=true
|
|
||||||
respect_darkness=true
|
|
||||||
force_size_grip=true
|
|
||||||
iconless_pushbutton=true
|
|
||||||
iconless_menu=false
|
|
||||||
disabled_icon_opacity=100
|
|
||||||
lxqtmainmenu_iconsize=22
|
|
||||||
normal_default_pushbutton=true
|
|
||||||
single_top_toolbar=true
|
|
||||||
tint_on_mouseover=0
|
|
||||||
transparent_pcmanfm_view=false
|
|
||||||
blur_only_active_window=false
|
|
||||||
centered_forms=false
|
|
||||||
kinetic_scrolling=false
|
|
||||||
middle_click_scroll=false
|
|
||||||
no_selection_tint=false
|
|
||||||
noninteger_translucency=false
|
|
||||||
style_vertical_toolbars=false
|
|
||||||
|
|
||||||
[PanelButtonCommand]
|
|
||||||
frame=true
|
|
||||||
frame.element=button
|
|
||||||
frame.top=3
|
|
||||||
frame.bottom=3
|
|
||||||
frame.left=3
|
|
||||||
frame.right=3
|
|
||||||
interior=true
|
|
||||||
interior.element=button
|
|
||||||
indicator.size=9
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
text.focus.color=#c0caf5
|
|
||||||
text.press.color=#c0caf5
|
|
||||||
text.toggle.color=#c0caf5
|
|
||||||
text.shadow=0
|
|
||||||
text.margin=1
|
|
||||||
text.iconspacing=4
|
|
||||||
indicator.element=arrow
|
|
||||||
text.margin.top=2
|
|
||||||
text.margin.bottom=2
|
|
||||||
text.margin.left=2
|
|
||||||
text.margin.right=2
|
|
||||||
min_width=+0.3font
|
|
||||||
min_height=+0.3font
|
|
||||||
frame.expansion=6
|
|
||||||
|
|
||||||
[PanelButtonTool]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
|
|
||||||
[Dock]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
interior.element=dock
|
|
||||||
frame.element=dock
|
|
||||||
frame.top=1
|
|
||||||
frame.bottom=1
|
|
||||||
frame.left=1
|
|
||||||
frame.right=1
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
|
|
||||||
[DockTitle]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame=false
|
|
||||||
interior=false
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
text.focus.color=#c0caf5
|
|
||||||
text.bold=true
|
|
||||||
|
|
||||||
[IndicatorSpinBox]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame=true
|
|
||||||
interior=true
|
|
||||||
frame.left=1
|
|
||||||
indicator.element=spin
|
|
||||||
indicator.size=10
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
|
|
||||||
[RadioButton]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame=false
|
|
||||||
interior.element=radio
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
text.focus.color=#c0caf5
|
|
||||||
|
|
||||||
[CheckBox]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame=false
|
|
||||||
interior.element=checkbox
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
text.focus.color=#c0caf5
|
|
||||||
|
|
||||||
[Focus]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame=true
|
|
||||||
frame.element=focus
|
|
||||||
frame.top=1
|
|
||||||
frame.bottom=1
|
|
||||||
frame.left=1
|
|
||||||
frame.right=1
|
|
||||||
frame.patternsize=20
|
|
||||||
|
|
||||||
[GenericFrame]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame=true
|
|
||||||
interior=false
|
|
||||||
frame.element=common
|
|
||||||
interior.element=common
|
|
||||||
frame.top=3
|
|
||||||
frame.bottom=3
|
|
||||||
frame.left=3
|
|
||||||
frame.right=3
|
|
||||||
|
|
||||||
[LineEdit]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame.element=lineedit
|
|
||||||
interior.element=lineedit
|
|
||||||
text.margin.left=1
|
|
||||||
text.margin.right=1
|
|
||||||
|
|
||||||
[DropDownButton]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
indicator.element=arrow-down
|
|
||||||
|
|
||||||
[IndicatorArrow]
|
|
||||||
indicator.element=arrow
|
|
||||||
indicator.size=9
|
|
||||||
|
|
||||||
[ToolboxTab]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
text.press.color=#c0caf5
|
|
||||||
text.focus.color=#c0caf5
|
|
||||||
|
|
||||||
[Tab]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
interior.element=tab
|
|
||||||
text.margin.left=8
|
|
||||||
text.margin.right=8
|
|
||||||
text.margin.top=2
|
|
||||||
text.margin.bottom=2
|
|
||||||
frame.element=tab
|
|
||||||
indicator.element=tab
|
|
||||||
frame.top=4
|
|
||||||
frame.bottom=4
|
|
||||||
frame.left=4
|
|
||||||
frame.right=4
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
text.focus.color=#c0caf5
|
|
||||||
text.toggle.color=#c0caf5
|
|
||||||
frame.expansion=0
|
|
||||||
|
|
||||||
[TabFrame]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame.element=tabframe
|
|
||||||
interior.element=tabframe
|
|
||||||
frame.top=4
|
|
||||||
frame.bottom=4
|
|
||||||
frame.left=4
|
|
||||||
frame.right=4
|
|
||||||
|
|
||||||
[TreeExpander]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
indicator.size=12
|
|
||||||
indicator.element=tree
|
|
||||||
|
|
||||||
[HeaderSection]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
interior.element=header
|
|
||||||
frame.element=header
|
|
||||||
frame.top=3
|
|
||||||
frame.bottom=3
|
|
||||||
frame.left=1
|
|
||||||
frame.right=1
|
|
||||||
text.bold=true
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
text.focus.color=#c0caf5
|
|
||||||
text.toggle.color=#c0caf5
|
|
||||||
frame.expansion=0
|
|
||||||
|
|
||||||
[SizeGrip]
|
|
||||||
indicator.element=resize-grip
|
|
||||||
|
|
||||||
[Toolbar]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
indicator.element=toolbar
|
|
||||||
indicator.size=5
|
|
||||||
text.margin=0
|
|
||||||
frame=false
|
|
||||||
interior.element=menubar
|
|
||||||
frame.element=menubar
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
text.focus.color=#c0caf5
|
|
||||||
frame.bottom=0
|
|
||||||
frame.expansion=0
|
|
||||||
|
|
||||||
[Slider]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame.element=slider
|
|
||||||
interior.element=slider
|
|
||||||
frame.top=3
|
|
||||||
frame.bottom=3
|
|
||||||
frame.left=3
|
|
||||||
frame.right=3
|
|
||||||
|
|
||||||
[SliderCursor]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame=false
|
|
||||||
interior.element=slidercursor
|
|
||||||
|
|
||||||
[Progressbar]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame.element=progress
|
|
||||||
interior.element=progress
|
|
||||||
text.margin=0
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
text.focus.color=#c0caf5
|
|
||||||
text.press.color=#c0caf5
|
|
||||||
text.toggle.color=#c0caf5
|
|
||||||
text.bold=false
|
|
||||||
frame.expansion=8
|
|
||||||
|
|
||||||
[ProgressbarContents]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame=true
|
|
||||||
frame.element=progress-pattern
|
|
||||||
interior.element=progress-pattern
|
|
||||||
|
|
||||||
[ItemView]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
text.margin=0
|
|
||||||
frame.element=itemview
|
|
||||||
interior.element=itemview
|
|
||||||
frame.top=2
|
|
||||||
frame.bottom=2
|
|
||||||
frame.left=2
|
|
||||||
frame.right=2
|
|
||||||
text.margin.top=2
|
|
||||||
text.margin.bottom=2
|
|
||||||
text.margin.left=4
|
|
||||||
text.margin.right=4
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
text.focus.color=#c0caf5
|
|
||||||
text.press.color=#c0caf5
|
|
||||||
text.toggle.color=#c0caf5
|
|
||||||
frame.expansion=0
|
|
||||||
|
|
||||||
[Splitter]
|
|
||||||
indicator.size=48
|
|
||||||
|
|
||||||
[Scrollbar]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
indicator.element=arrow
|
|
||||||
indicator.size=10
|
|
||||||
|
|
||||||
[ScrollbarSlider]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame.element=scrollbarslider
|
|
||||||
interior=false
|
|
||||||
frame.left=6
|
|
||||||
frame.right=6
|
|
||||||
frame.top=6
|
|
||||||
frame.bottom=6
|
|
||||||
indicator.element=grip
|
|
||||||
indicator.size=13
|
|
||||||
frame.expansion=48
|
|
||||||
|
|
||||||
[ScrollbarGroove]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
interior=false
|
|
||||||
frame=false
|
|
||||||
|
|
||||||
[MenuItem]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame=true
|
|
||||||
frame.element=menuitem
|
|
||||||
interior.element=menuitem
|
|
||||||
indicator.element=menuitem
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
text.focus.color=#c0caf5
|
|
||||||
text.margin.top=1
|
|
||||||
text.margin.bottom=1
|
|
||||||
text.margin.left=15
|
|
||||||
text.margin.right=5
|
|
||||||
frame.top=3
|
|
||||||
frame.bottom=3
|
|
||||||
frame.left=3
|
|
||||||
frame.right=3
|
|
||||||
frame.expansion=0
|
|
||||||
|
|
||||||
[MenuBar]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame.element=menubar
|
|
||||||
interior.element=menubar
|
|
||||||
frame.bottom=0
|
|
||||||
frame.expansion=0
|
|
||||||
|
|
||||||
[MenuBarItem]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
interior=true
|
|
||||||
interior.element=menubaritem
|
|
||||||
frame.element=menubaritem
|
|
||||||
frame.top=2
|
|
||||||
frame.bottom=2
|
|
||||||
frame.left=2
|
|
||||||
frame.right=2
|
|
||||||
text.margin.left=4
|
|
||||||
text.margin.right=4
|
|
||||||
text.margin.top=0
|
|
||||||
text.margin.bottom=0
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
text.focus.color=#c0caf5
|
|
||||||
frame.expansion=0
|
|
||||||
|
|
||||||
[TitleBar]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame=false
|
|
||||||
interior.element=titlebar
|
|
||||||
indicator.size=12
|
|
||||||
indicator.element=mdi
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
text.focus.color=#c0caf5
|
|
||||||
text.bold=true
|
|
||||||
text.italic=true
|
|
||||||
frame.expansion=0
|
|
||||||
|
|
||||||
[ComboBox]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
interior.element=combo
|
|
||||||
frame.element=combo
|
|
||||||
text.press.color=#c0caf5
|
|
||||||
indicator.element=carrow
|
|
||||||
|
|
||||||
[Menu]
|
|
||||||
inherits=PanelButtonCommand
|
|
||||||
frame.top=1
|
|
||||||
frame.bottom=1
|
|
||||||
frame.left=1
|
|
||||||
frame.right=1
|
|
||||||
frame.element=menu
|
|
||||||
interior.element=menu
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
text.shadow=false
|
|
||||||
frame.expansion=0
|
|
||||||
|
|
||||||
[GroupBox]
|
|
||||||
inherits=GenericFrame
|
|
||||||
frame=false
|
|
||||||
text.shadow=0
|
|
||||||
text.margin=0
|
|
||||||
text.normal.color=#c0caf5
|
|
||||||
text.focus.color=#c0caf5
|
|
||||||
text.bold=true
|
|
||||||
frame.expansion=0
|
|
||||||
|
|
||||||
[TabBarFrame]
|
|
||||||
inherits=GenericFrame
|
|
||||||
frame=true
|
|
||||||
frame.element=tabBarFrame
|
|
||||||
interior=false
|
|
||||||
frame.top=4
|
|
||||||
frame.bottom=4
|
|
||||||
frame.left=4
|
|
||||||
frame.right=4
|
|
||||||
|
|
||||||
[ToolTip]
|
|
||||||
inherits=GenericFrame
|
|
||||||
frame.top=3
|
|
||||||
frame.bottom=3
|
|
||||||
frame.left=3
|
|
||||||
frame.right=3
|
|
||||||
interior=true
|
|
||||||
text.shadow=0
|
|
||||||
text.margin=0
|
|
||||||
interior.element=tooltip
|
|
||||||
frame.element=tooltip
|
|
||||||
frame.expansion=0
|
|
||||||
|
|
||||||
[StatusBar]
|
|
||||||
inherits=GenericFrame
|
|
||||||
frame=false
|
|
||||||
interior=false
|
|
||||||
|
|
||||||
[Window]
|
|
||||||
interior=true
|
|
||||||
interior.element=window
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
Before Width: | Height: | Size: 149 KiB |
@@ -1,2 +0,0 @@
|
|||||||
[General]
|
|
||||||
theme=KvArcTokyoNight
|
|
||||||
@@ -0,0 +1,208 @@
|
|||||||
|
## where to store your database, default is your system data directory
|
||||||
|
## linux/mac: ~/.local/share/atuin/history.db
|
||||||
|
## windows: %USERPROFILE%/.local/share/atuin/history.db
|
||||||
|
# db_path = "~/.history.db"
|
||||||
|
|
||||||
|
## where to store your encryption key, default is your system data directory
|
||||||
|
## linux/mac: ~/.local/share/atuin/key
|
||||||
|
## windows: %USERPROFILE%/.local/share/atuin/key
|
||||||
|
# key_path = "~/.key"
|
||||||
|
|
||||||
|
## where to store your auth session token, default is your system data directory
|
||||||
|
## linux/mac: ~/.local/share/atuin/session
|
||||||
|
## windows: %USERPROFILE%/.local/share/atuin/session
|
||||||
|
# session_path = "~/.session"
|
||||||
|
|
||||||
|
## date format used, either "us" or "uk"
|
||||||
|
# dialect = "us"
|
||||||
|
|
||||||
|
## default timezone to use when displaying time
|
||||||
|
## either "l", "local" to use the system's current local timezone, or an offset
|
||||||
|
## from UTC in the format of "<+|->H[H][:M[M][:S[S]]]"
|
||||||
|
## for example: "+9", "-05", "+03:30", "-01:23:45", etc.
|
||||||
|
# timezone = "local"
|
||||||
|
|
||||||
|
## enable or disable automatic sync
|
||||||
|
# auto_sync = true
|
||||||
|
|
||||||
|
## enable or disable automatic update checks
|
||||||
|
# update_check = true
|
||||||
|
|
||||||
|
## address of the sync server
|
||||||
|
# sync_address = "https://api.atuin.sh"
|
||||||
|
|
||||||
|
## how often to sync history. note that this is only triggered when a command
|
||||||
|
## is ran, so sync intervals may well be longer
|
||||||
|
## set it to 0 to sync after every command
|
||||||
|
# sync_frequency = "10m"
|
||||||
|
|
||||||
|
## which search mode to use
|
||||||
|
## possible values: prefix, fulltext, fuzzy, skim
|
||||||
|
# search_mode = "fuzzy"
|
||||||
|
|
||||||
|
## which filter mode to use
|
||||||
|
## possible values: global, host, session, directory
|
||||||
|
# filter_mode = "global"
|
||||||
|
|
||||||
|
## With workspace filtering enabled, Atuin will filter for commands executed
|
||||||
|
## in any directory within a git repository tree (default: false)
|
||||||
|
# workspaces = false
|
||||||
|
|
||||||
|
## which filter mode to use when atuin is invoked from a shell up-key binding
|
||||||
|
## the accepted values are identical to those of "filter_mode"
|
||||||
|
## leave unspecified to use same mode set in "filter_mode"
|
||||||
|
# filter_mode_shell_up_key_binding = "global"
|
||||||
|
|
||||||
|
## which search mode to use when atuin is invoked from a shell up-key binding
|
||||||
|
## the accepted values are identical to those of "search_mode"
|
||||||
|
## leave unspecified to use same mode set in "search_mode"
|
||||||
|
# search_mode_shell_up_key_binding = "fuzzy"
|
||||||
|
|
||||||
|
## which style to use
|
||||||
|
## possible values: auto, full, compact
|
||||||
|
# style = "auto"
|
||||||
|
|
||||||
|
## the maximum number of lines the interface should take up
|
||||||
|
## set it to 0 to always go full screen
|
||||||
|
# inline_height = 0
|
||||||
|
|
||||||
|
## Invert the UI - put the search bar at the top , Default to `false`
|
||||||
|
# invert = false
|
||||||
|
|
||||||
|
## enable or disable showing a preview of the selected command
|
||||||
|
## useful when the command is longer than the terminal width and is cut off
|
||||||
|
# show_preview = false
|
||||||
|
|
||||||
|
## what to do when the escape key is pressed when searching
|
||||||
|
## possible values: return-original, return-query
|
||||||
|
# exit_mode = "return-original"
|
||||||
|
|
||||||
|
## possible values: emacs, subl
|
||||||
|
# word_jump_mode = "emacs"
|
||||||
|
|
||||||
|
## characters that count as a part of a word
|
||||||
|
# word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||||
|
|
||||||
|
## number of context lines to show when scrolling by pages
|
||||||
|
# scroll_context_lines = 1
|
||||||
|
|
||||||
|
## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts
|
||||||
|
## alt-0 .. alt-9
|
||||||
|
# ctrl_n_shortcuts = false
|
||||||
|
|
||||||
|
## default history list format - can also be specified with the --format arg
|
||||||
|
# history_format = "{time}\t{command}\t{duration}"
|
||||||
|
|
||||||
|
## prevent commands matching any of these regexes from being written to history.
|
||||||
|
## Note that these regular expressions are unanchored, i.e. if they don't start
|
||||||
|
## with ^ or end with $, they'll match anywhere in the command.
|
||||||
|
## For details on the supported regular expression syntax, see
|
||||||
|
## https://docs.rs/regex/latest/regex/#syntax
|
||||||
|
# history_filter = [
|
||||||
|
# "^secret-cmd",
|
||||||
|
# "^innocuous-cmd .*--secret=.+",
|
||||||
|
# ]
|
||||||
|
|
||||||
|
## prevent commands run with cwd matching any of these regexes from being written
|
||||||
|
## to history. Note that these regular expressions are unanchored, i.e. if they don't
|
||||||
|
## start with ^ or end with $, they'll match anywhere in CWD.
|
||||||
|
## For details on the supported regular expression syntax, see
|
||||||
|
## https://docs.rs/regex/latest/regex/#syntax
|
||||||
|
# cwd_filter = [
|
||||||
|
# "^/very/secret/area",
|
||||||
|
# ]
|
||||||
|
|
||||||
|
## Configure the maximum height of the preview to show.
|
||||||
|
## Useful when you have long scripts in your history that you want to distinguish
|
||||||
|
## by more than the first few lines.
|
||||||
|
# max_preview_height = 4
|
||||||
|
|
||||||
|
## Configure whether or not to show the help row, which includes the current Atuin
|
||||||
|
## version (and whether an update is available), a keymap hint, and the total
|
||||||
|
## amount of commands in your history.
|
||||||
|
# show_help = true
|
||||||
|
|
||||||
|
## Configure whether or not to show tabs for search and inspect
|
||||||
|
# show_tabs = true
|
||||||
|
|
||||||
|
## Defaults to true. This matches history against a set of default regex, and will not save it if we get a match. Defaults include
|
||||||
|
## 1. AWS key id
|
||||||
|
## 2. Github pat (old and new)
|
||||||
|
## 3. Slack oauth tokens (bot, user)
|
||||||
|
## 4. Slack webhooks
|
||||||
|
## 5. Stripe live/test keys
|
||||||
|
# secrets_filter = true
|
||||||
|
|
||||||
|
## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command. Press tab to return to the shell and edit.
|
||||||
|
# This applies for new installs. Old installs will keep the old behaviour unless configured otherwise.
|
||||||
|
enter_accept = true
|
||||||
|
|
||||||
|
## Defaults to "emacs". This specifies the keymap on the startup of `atuin
|
||||||
|
## search`. If this is set to "auto", the startup keymap mode in the Atuin
|
||||||
|
## search is automatically selected based on the shell's keymap where the
|
||||||
|
## keybinding is defined. If this is set to "emacs", "vim-insert", or
|
||||||
|
## "vim-normal", the startup keymap mode in the Atuin search is forced to be
|
||||||
|
## the specified one.
|
||||||
|
# keymap_mode = "auto"
|
||||||
|
|
||||||
|
## Cursor style in each keymap mode. If specified, the cursor style is changed
|
||||||
|
## in entering the cursor shape. Available values are "default" and
|
||||||
|
## "{blink,steady}-{block,underline,bar}".
|
||||||
|
# keymap_cursor = { emacs = "blink-block", vim_insert = "blink-block", vim_normal = "steady-block" }
|
||||||
|
|
||||||
|
# network_connect_timeout = 5
|
||||||
|
# network_timeout = 5
|
||||||
|
|
||||||
|
## Timeout (in seconds) for acquiring a local database connection (sqlite)
|
||||||
|
# local_timeout = 5
|
||||||
|
|
||||||
|
## Set this to true and Atuin will minimize motion in the UI - timers will not update live, etc.
|
||||||
|
## Alternatively, set env NO_MOTION=true
|
||||||
|
# prefers_reduced_motion = false
|
||||||
|
|
||||||
|
[stats]
|
||||||
|
## Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl
|
||||||
|
# common_subcommands = [
|
||||||
|
# "apt",
|
||||||
|
# "cargo",
|
||||||
|
# "composer",
|
||||||
|
# "dnf",
|
||||||
|
# "docker",
|
||||||
|
# "git",
|
||||||
|
# "go",
|
||||||
|
# "ip",
|
||||||
|
# "kubectl",
|
||||||
|
# "nix",
|
||||||
|
# "nmcli",
|
||||||
|
# "npm",
|
||||||
|
# "pecl",
|
||||||
|
# "pnpm",
|
||||||
|
# "podman",
|
||||||
|
# "port",
|
||||||
|
# "systemctl",
|
||||||
|
# "tmux",
|
||||||
|
# "yarn",
|
||||||
|
# ]
|
||||||
|
|
||||||
|
## Set commands that should be totally stripped and ignored from stats
|
||||||
|
# common_prefix = ["sudo"]
|
||||||
|
|
||||||
|
## Set commands that will be completely ignored from stats
|
||||||
|
# ignored_commands = [
|
||||||
|
# "cd",
|
||||||
|
# "ls",
|
||||||
|
# "vi"
|
||||||
|
# ]
|
||||||
|
|
||||||
|
[keys]
|
||||||
|
# Defaults to true. If disabled, using the up/down key won't exit the TUI when scrolled past the first/last entry.
|
||||||
|
# scroll_exits = false
|
||||||
|
|
||||||
|
[sync]
|
||||||
|
# Enable sync v2 by default
|
||||||
|
# This ensures that sync v2 is enabled for new installs only
|
||||||
|
# In a later release it will become the default across the board
|
||||||
|
records = true
|
||||||
|
|
||||||
|
[search]
|
||||||
|
shells = "auto"
|
||||||
Submodule
+1
Submodule dot_config/emacs added at 57564ff87a
@@ -0,0 +1,207 @@
|
|||||||
|
set -gx ATUIN_TMUX_POPUP false
|
||||||
|
if not set -q ATUIN_SESSION; or test "$ATUIN_SHLVL" != "$SHLVL"
|
||||||
|
set -gx ATUIN_SESSION (atuin uuid)
|
||||||
|
set -gx ATUIN_SHLVL $SHLVL
|
||||||
|
end
|
||||||
|
set --erase ATUIN_HISTORY_ID
|
||||||
|
|
||||||
|
function _atuin_preexec --on-event fish_preexec
|
||||||
|
if not test -n "$fish_private_mode"
|
||||||
|
set -g ATUIN_HISTORY_ID (atuin history start -- "$argv[1]" 2>/dev/null)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function _atuin_postexec --on-event fish_postexec
|
||||||
|
set -l s $status
|
||||||
|
|
||||||
|
if test -n "$ATUIN_HISTORY_ID"
|
||||||
|
ATUIN_LOG=error atuin history end --exit $s -- $ATUIN_HISTORY_ID &>/dev/null &
|
||||||
|
disown
|
||||||
|
end
|
||||||
|
|
||||||
|
set --erase ATUIN_HISTORY_ID
|
||||||
|
end
|
||||||
|
|
||||||
|
# Check if tmux popup is available (tmux >= 3.2)
|
||||||
|
function _atuin_tmux_popup_check
|
||||||
|
if not test -n "$TMUX"
|
||||||
|
echo 0
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if test "$ATUIN_TMUX_POPUP" = false
|
||||||
|
echo 0
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l tmux_version (tmux -V 2>/dev/null | string match -r '\d+\.\d+')
|
||||||
|
if not test -n "$tmux_version"
|
||||||
|
echo 0
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l parts (string split '.' $tmux_version)
|
||||||
|
set -l m1 $parts[1]
|
||||||
|
set -l m2 0
|
||||||
|
if test (count $parts) -ge 2
|
||||||
|
set m2 $parts[2]
|
||||||
|
end
|
||||||
|
|
||||||
|
if not string match -rq '^[0-9]+$' -- "$m1"
|
||||||
|
echo 0
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if not string match -rq '^[0-9]+$' -- "$m2"
|
||||||
|
set m2 0
|
||||||
|
end
|
||||||
|
|
||||||
|
if test "$m1" -gt 3 2>/dev/null; or begin
|
||||||
|
test "$m1" -eq 3 2>/dev/null; and test "$m2" -ge 2 2>/dev/null
|
||||||
|
end
|
||||||
|
echo 1
|
||||||
|
else
|
||||||
|
echo 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function _atuin_search
|
||||||
|
set -l keymap_mode
|
||||||
|
switch $fish_key_bindings
|
||||||
|
case fish_vi_key_bindings
|
||||||
|
switch $fish_bind_mode
|
||||||
|
case default
|
||||||
|
set keymap_mode vim-normal
|
||||||
|
case insert
|
||||||
|
set keymap_mode vim-insert
|
||||||
|
end
|
||||||
|
case '*'
|
||||||
|
set keymap_mode emacs
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l use_tmux_popup (_atuin_tmux_popup_check)
|
||||||
|
|
||||||
|
set -l ATUIN_H
|
||||||
|
if test "$use_tmux_popup" -eq 1
|
||||||
|
set -l tmpdir (mktemp -d)
|
||||||
|
if not test -d "$tmpdir"
|
||||||
|
# if mktemp got errors
|
||||||
|
set ATUIN_H (ATUIN_SHELL=fish ATUIN_LOG=error ATUIN_QUERY=(commandline -b) atuin search --keymap-mode=$keymap_mode $argv -i 3>&1 1>&2 2>&3 | string collect)
|
||||||
|
else
|
||||||
|
set -l result_file "$tmpdir/result"
|
||||||
|
|
||||||
|
set -l query (commandline -b | string replace -a "'" "'\\''")
|
||||||
|
set -l escaped_args ""
|
||||||
|
for arg in $argv
|
||||||
|
set escaped_args "$escaped_args '"(string replace -a "'" "'\\''" -- $arg)"'"
|
||||||
|
end
|
||||||
|
|
||||||
|
# In the popup, atuin goes to terminal, stderr goes to file
|
||||||
|
set -l cdir (pwd)
|
||||||
|
# Keep default value anyways
|
||||||
|
set -l popup_width (test -n "$ATUIN_TMUX_POPUP_WIDTH" && echo "$ATUIN_TMUX_POPUP_WIDTH" || echo "80%")
|
||||||
|
set -l popup_height (test -n "$ATUIN_TMUX_POPUP_HEIGHT" && echo "$ATUIN_TMUX_POPUP_HEIGHT" || echo "60%")
|
||||||
|
tmux display-popup -d "$cdir" -w "$popup_width" -h "$popup_height" -E -E -- \
|
||||||
|
sh -c "PATH='$PATH' ATUIN_SESSION='$ATUIN_SESSION' ATUIN_SHELL=fish ATUIN_LOG=error ATUIN_QUERY='$query' atuin search --keymap-mode=$keymap_mode$escaped_args -i 2>'$result_file'"
|
||||||
|
|
||||||
|
if test -f "$result_file"
|
||||||
|
set ATUIN_H (cat "$result_file" | string collect)
|
||||||
|
end
|
||||||
|
|
||||||
|
command rm -rf "$tmpdir"
|
||||||
|
end
|
||||||
|
else
|
||||||
|
# In fish 3.4 and above we can use `"$(some command)"` to keep multiple lines separate;
|
||||||
|
# but to support fish 3.3 we need to use `(some command | string collect)`.
|
||||||
|
# https://fishshell.com/docs/current/relnotes.html#id24 (fish 3.4 "Notable improvements and fixes")
|
||||||
|
set ATUIN_H (ATUIN_SHELL=fish ATUIN_LOG=error ATUIN_QUERY=(commandline -b) atuin search --keymap-mode=$keymap_mode $argv -i 3>&1 1>&2 2>&3 | string collect)
|
||||||
|
end
|
||||||
|
|
||||||
|
set ATUIN_H (string trim -- $ATUIN_H | string collect) # trim whitespace
|
||||||
|
|
||||||
|
if test -n "$ATUIN_H"
|
||||||
|
if string match --quiet '__atuin_accept__:*' "$ATUIN_H"
|
||||||
|
set -l ATUIN_HIST (string replace "__atuin_accept__:" "" -- "$ATUIN_H" | string collect)
|
||||||
|
commandline -r "$ATUIN_HIST"
|
||||||
|
commandline -f repaint
|
||||||
|
commandline -f execute
|
||||||
|
return
|
||||||
|
else
|
||||||
|
commandline -r "$ATUIN_H"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
commandline -f repaint
|
||||||
|
end
|
||||||
|
|
||||||
|
function _atuin_bind_up
|
||||||
|
# Fallback to fish's builtin up-or-search if we're in search or paging mode
|
||||||
|
if commandline --search-mode; or commandline --paging-mode
|
||||||
|
up-or-search
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
# Only invoke atuin if we're on the top line of the command
|
||||||
|
set -l lineno (commandline --line)
|
||||||
|
|
||||||
|
switch $lineno
|
||||||
|
case 1
|
||||||
|
_atuin_search --shell-up-key-binding
|
||||||
|
case '*'
|
||||||
|
up-or-search
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if string match -q '4.*' $version
|
||||||
|
bind ctrl-r _atuin_search
|
||||||
|
if bind -M insert >/dev/null 2>&1
|
||||||
|
bind -M insert ctrl-r _atuin_search
|
||||||
|
end
|
||||||
|
else
|
||||||
|
bind \cr _atuin_search
|
||||||
|
if bind -M insert >/dev/null 2>&1
|
||||||
|
bind -M insert \cr _atuin_search
|
||||||
|
end
|
||||||
|
end
|
||||||
|
# Question mark at start of line - natural language mode
|
||||||
|
function _atuin_ai_question_mark
|
||||||
|
set -l buf (commandline -b)
|
||||||
|
|
||||||
|
# If buffer is empty or just contains '?', trigger natural language mode
|
||||||
|
if test -z "$buf" -o "$buf" = "?"
|
||||||
|
commandline -r ""
|
||||||
|
|
||||||
|
# Run atuin ai inline, swapping stdout and stderr
|
||||||
|
set -l output (atuin ai inline --hook 3>&1 1>&2 2>&3 | string collect)
|
||||||
|
|
||||||
|
if string match --quiet '__atuin_ai_print__:*' "$output"
|
||||||
|
echo (string replace "__atuin_ai_print__:" "" -- "$output" | string collect)
|
||||||
|
commandline -f repaint
|
||||||
|
else if test "$output" = "__atuin_ai_cancel__"
|
||||||
|
commandline -f repaint
|
||||||
|
else if string match --quiet '__atuin_ai_execute__:*' "$output"
|
||||||
|
# Execute the command immediately
|
||||||
|
set -l cmd (string replace "__atuin_ai_execute__:" "" -- "$output" | string collect)
|
||||||
|
commandline -r "$cmd"
|
||||||
|
commandline -f repaint
|
||||||
|
commandline -f execute
|
||||||
|
else if string match --quiet '__atuin_ai_insert__:*' "$output"
|
||||||
|
# Insert the command for editing
|
||||||
|
set -l cmd (string replace "__atuin_ai_insert__:" "" -- "$output" | string collect)
|
||||||
|
commandline -r "$cmd"
|
||||||
|
commandline -f repaint
|
||||||
|
else if test -n "$output"
|
||||||
|
# Default: insert for editing
|
||||||
|
commandline -r "$output"
|
||||||
|
commandline -f repaint
|
||||||
|
else
|
||||||
|
commandline -f repaint
|
||||||
|
end
|
||||||
|
else
|
||||||
|
# Not at empty prompt, just insert the question mark
|
||||||
|
commandline -i "?"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Set up keybindings
|
||||||
|
bind "?" _atuin_ai_question_mark
|
||||||
@@ -2,6 +2,21 @@ theme = dark:TokyoNight Night,light:TokyoNight Day
|
|||||||
font-family = MonaspiceNe Nerd Font Mono
|
font-family = MonaspiceNe Nerd Font Mono
|
||||||
font-size = 16.0
|
font-size = 16.0
|
||||||
desktop-notifications = false
|
desktop-notifications = false
|
||||||
|
initial-window = false
|
||||||
|
quit-after-last-window-closed = false
|
||||||
|
|
||||||
|
font-feature = +liga
|
||||||
|
font-feature = +calt
|
||||||
|
font-feature = +ss01
|
||||||
|
font-feature = +ss02
|
||||||
|
font-feature = +ss03
|
||||||
|
font-feature = +ss04
|
||||||
|
font-feature = +ss05
|
||||||
|
font-feature = +ss06
|
||||||
|
font-feature = +ss07
|
||||||
|
font-feature = +ss08
|
||||||
|
font-feature = +ss09
|
||||||
|
font-feature = +ss10
|
||||||
|
|
||||||
keybind = ctrl+n=new_window
|
keybind = ctrl+n=new_window
|
||||||
keybind = ctrl+t=new_tab
|
keybind = ctrl+t=new_tab
|
||||||
|
|||||||
Submodule
+1
Submodule dot_config/helix added at 307e95807a
@@ -1,12 +0,0 @@
|
|||||||
theme = "tokyonight"
|
|
||||||
|
|
||||||
[editor]
|
|
||||||
line-number = "relative"
|
|
||||||
|
|
||||||
[editor.cursor-shape]
|
|
||||||
insert = "bar"
|
|
||||||
normal = "block"
|
|
||||||
select = "underline"
|
|
||||||
|
|
||||||
[editor.file-picker]
|
|
||||||
hidden = false
|
|
||||||
@@ -5,7 +5,9 @@
|
|||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
news.display = "notify";
|
news.display = "notify";
|
||||||
home.stateVersion = "23.11";
|
home = {
|
||||||
home.username = lib.mkForce (builtins.getEnv "USER");
|
stateVersion = "23.11";
|
||||||
home.homeDirectory = lib.mkForce (builtins.getEnv "HOME");
|
username = lib.mkForce (builtins.getEnv "USER");
|
||||||
|
homeDirectory = lib.mkForce (builtins.getEnv "HOME");
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
+74
-79
@@ -1,90 +1,85 @@
|
|||||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||||
# Single app hotkeys
|
# 1. Application Launchers
|
||||||
bind = $mainMod, SPACE, exec, $menu
|
bind = $mainMod, SPACE, exec, $menu #"Activate the launcher"
|
||||||
bind = $mainMod, Q, exec, $terminal
|
|
||||||
bind = $mainMod, W, exec, $browser
|
|
||||||
bind = $mainMod, E, exec, $noteManager
|
|
||||||
bind = $mainMod, R, exec, $literatureManager
|
|
||||||
bind = $mainMod, T, exec, $localDocs
|
|
||||||
bind = $mainMod, Y, exec, $musicPlayer
|
|
||||||
bind = $mainMod, U, exec, $bluetoothManager
|
|
||||||
bind = $mainMod, I, exec, $officeSuite
|
|
||||||
bind = $mainMod, O, exec, $fileManager
|
|
||||||
bind = $mainMod, P, exec, $perfMonitor
|
|
||||||
bind = $mainMod, S, exec, $terminalBackup
|
|
||||||
bind = $mainMod, D, exec, $noteManagerSearch
|
|
||||||
|
|
||||||
# Multi-app hotkeys
|
bind = $mainMod, Q, exec, $terminal #"Launch the terminal"
|
||||||
bind = $mainModShift, Q, exec, [workspace 1 silent] $browser & [workspace 2 silent] $terminal & [workspace 3 silent] $noteManager & [workspace 3 silent] $localDocs
|
bind = $mainMod, W, exec, $browser #"Launch the browser"
|
||||||
|
bind = $mainMod, E, exec, $noteManager #"Launch the note manager"
|
||||||
|
bind = $mainMod, R, exec, $literatureManager #"Launch the literature manager"
|
||||||
|
bind = $mainMod, T, exec, $localDocs #"Launch the local documentation browser"
|
||||||
|
bind = $mainMod, Y, exec, $musicPlayer #"Launch the music player"
|
||||||
|
bind = $mainMod, U, exec, $bluetoothManager #"Launch the bluetooth manager"
|
||||||
|
bind = $mainMod, I, exec, $officeSuite #"Launch the office suite"
|
||||||
|
bind = $mainMod, O, exec, $fileManager #"Launch the file manager"
|
||||||
|
bind = $mainMod, P, exec, $perfMonitor #"Launch the performance monitor"
|
||||||
|
bind = $mainMod, S, exec, $terminalBackup #"Launch the backup terminal"
|
||||||
|
bind = $mainMod, D, exec, $noteManagerSearch #"Search the note manager"
|
||||||
|
|
||||||
# DE function hotkeys
|
bind = $mainModShift, Q, exec, [workspace 1 silent] $browser & [workspace 2 silent] $terminal & [workspace 3 silent] $noteManager & [workspace 3 silent] $localDocs #"Launch the default layout"
|
||||||
bind = $mainMod, TAB, exec, $screenshot
|
|
||||||
bind = $mainMod, ESCAPE, exec, $lockscreen
|
|
||||||
bind = $mainMod SHIFT, T, exec, $colorpicker
|
|
||||||
bind = $mainMod, ., exec, $emojipicker
|
|
||||||
bind = $mainMod, C, killactive,
|
|
||||||
bind = $mainMod, V, togglefloating,
|
|
||||||
bind = $mainMod, M, exit,
|
|
||||||
bind = $mainMod, P, pseudo, # dwindle
|
|
||||||
bind = $mainMod, ;, togglesplit, # dwindle
|
|
||||||
|
|
||||||
# Move focus with mainMod + arrow keys
|
# 2. Function Hotkeys
|
||||||
bind = $mainMod, left, movefocus, l
|
bind = $mainMod, TAB, exec, $screenshot #"Take a screenshot"
|
||||||
bind = $mainMod, down, movefocus, d
|
bind = $mainMod, ESCAPE, exec, $lockscreen #"Lock the screen"
|
||||||
bind = $mainMod, up, movefocus, u
|
bind = $mainMod SHIFT, T, exec, $colorpicker #"Activate Color Picker"
|
||||||
bind = $mainMod, right, movefocus, r
|
bind = $mainMod, ., exec, $emojipicker #"Launch emoji picker"
|
||||||
bind = $mainMod, H, movefocus, l
|
bind = $mainMod, C, killactive #"Kill the active window"
|
||||||
bind = $mainMod, J, movefocus, d
|
bind = $mainMod, V, togglefloating #"Toggle floating window"
|
||||||
bind = $mainMod, K, movefocus, u
|
bind = $mainMod, M, exec, $powerMenu #"Launch the power menu"
|
||||||
bind = $mainMod, L, movefocus, r
|
bind = $mainMod, P, pseudo, #"Toggle pseudotiling mode"
|
||||||
|
bind = $mainMod, ;, layoutmsg, togglesplit, #"Toggle split mode"
|
||||||
|
bind = $mainMod, A, exec, $cheatsheet #"Display this cheatsheet"
|
||||||
|
|
||||||
# Move active window around workspaces with mainMod + SHIFT + arrow keys
|
binde=, XF86AudioRaiseVolume, exec, noctalia-shell ipc call volume increase #"Increase volume"
|
||||||
bind = $mainMod SHIFT, left, movewindow, l
|
binde=, XF86AudioLowerVolume, exec, noctalia-shell ipc call volume decrease #"Decrease volume"
|
||||||
bind = $mainMod SHIFT, down, movetoworkspace, +1
|
binde=, XF86AudioMute, exec, noctalia-shell ipc call volume muteOutput #"Mute volume"
|
||||||
bind = $mainMod SHIFT, up, movetoworkspace, -1
|
|
||||||
bind = $mainMod SHIFT, right, movewindow, r
|
|
||||||
bind = $mainMod SHIFT, H, movewindow, l
|
|
||||||
bind = $mainMod SHIFT, J, movetoworkspace, +1
|
|
||||||
bind = $mainMod SHIFT, K, movetoworkspace, -1
|
|
||||||
bind = $mainMod SHIFT, L, movewindow, r
|
|
||||||
|
|
||||||
# Switch workspaces with mainMod + [0-9]
|
# 3. Navigation
|
||||||
bind = $mainMod, 1, workspace, 1
|
bind = $mainMod, left, movefocus, l #"Navigate left"
|
||||||
bind = $mainMod, 2, workspace, 2
|
bind = $mainMod, down, movefocus, d #"Navigate right"
|
||||||
bind = $mainMod, 3, workspace, 3
|
bind = $mainMod, up, movefocus, u #"Navigate up"
|
||||||
bind = $mainMod, 4, workspace, 4
|
bind = $mainMod, right, movefocus, r #"Navigate down"
|
||||||
bind = $mainMod, 5, workspace, 5
|
bind = $mainMod, H, movefocus, l #"Navigate left"
|
||||||
bind = $mainMod, 6, workspace, 6
|
bind = $mainMod, J, movefocus, d #"Navigate down"
|
||||||
bind = $mainMod, 7, workspace, 7
|
bind = $mainMod, K, movefocus, u #"Navigate up"
|
||||||
bind = $mainMod, 8, workspace, 8
|
bind = $mainMod, L, movefocus, r #"Navigate right"
|
||||||
bind = $mainMod, 9, workspace, 9
|
|
||||||
bind = $mainMod, 0, workspace, 10
|
|
||||||
|
|
||||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
bind = $mainMod, mouse_down, workspace, e+1 #"Scroll forward through workspaces"
|
||||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
bind = $mainMod, mouse_up, workspace, e-1 #"Scroll backwards through workspaces"
|
||||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
|
||||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
|
||||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
|
||||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
|
||||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
|
||||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
|
||||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
|
||||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
|
||||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
|
||||||
|
|
||||||
# Example special workspace (scratchpad)
|
bind = $mainMod, 1, workspace, 1 #"Move to workspace 1"
|
||||||
bind = $mainMod, S, togglespecialworkspace, magic
|
bind = $mainMod, 2, workspace, 2 #"Move to workspace 2"
|
||||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
bind = $mainMod, 3, workspace, 3 #"Move to workspace 3"
|
||||||
|
bind = $mainMod, 4, workspace, 4 #"Move to workspace 4"
|
||||||
|
bind = $mainMod, 5, workspace, 5 #"Move to workspace 5"
|
||||||
|
bind = $mainMod, 6, workspace, 6 #"Move to workspace 6"
|
||||||
|
bind = $mainMod, 7, workspace, 7 #"Move to workspace 7"
|
||||||
|
bind = $mainMod, 8, workspace, 8 #"Move to workspace 8"
|
||||||
|
bind = $mainMod, 9, workspace, 9 #"Move to workspace 9"
|
||||||
|
bind = $mainMod, 0, workspace, 10 #"Move to workspace 10"
|
||||||
|
|
||||||
# Scroll through existing workspaces with mainMod + scroll
|
bind = $mainMod, Z, togglespecialworkspace, magic #"Toggle scratchpad"
|
||||||
bind = $mainMod, mouse_down, workspace, e+1
|
bind = $mainMod SHIFT, Z, movetoworkspace, special:magic #"Move to scratchpad"
|
||||||
bind = $mainMod, mouse_up, workspace, e-1
|
|
||||||
|
|
||||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
# 4. Window Management
|
||||||
bindm = $mainMod, mouse:272, movewindow
|
bind = $mainMod SHIFT, left, movewindow, l #"Move window left"
|
||||||
bindm = $mainMod, mouse:273, resizewindow
|
bind = $mainMod SHIFT, down, movetoworkspace, +1 #"Move window to left workspace"
|
||||||
|
bind = $mainMod SHIFT, up, movetoworkspace, -1 #"Move window to right workspace"
|
||||||
|
bind = $mainMod SHIFT, right, movewindow, r #"Move window right"
|
||||||
|
bind = $mainMod SHIFT, H, movewindow, l #"Move window left"
|
||||||
|
bind = $mainMod SHIFT, J, movetoworkspace, +1 #"Move window to left workspace"
|
||||||
|
bind = $mainMod SHIFT, K, movetoworkspace, -1 #"Move window to right workspace"
|
||||||
|
bind = $mainMod SHIFT, L, movewindow, r #"Move window right"
|
||||||
|
|
||||||
# Media key bindings
|
bind = $mainMod SHIFT, 1, movetoworkspace, 1 #"Move window to workspace 1"
|
||||||
binde=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+
|
bind = $mainMod SHIFT, 2, movetoworkspace, 2 #"Move window to workspace 2"
|
||||||
binde=, XF86AudioLowerVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-
|
bind = $mainMod SHIFT, 3, movetoworkspace, 3 #"Move window to workspace 3"
|
||||||
binde=, XF86AudioMute, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 0%
|
bind = $mainMod SHIFT, 4, movetoworkspace, 4 #"Move window to workspace 4"
|
||||||
|
bind = $mainMod SHIFT, 5, movetoworkspace, 5 #"Move window to workspace 5"
|
||||||
|
bind = $mainMod SHIFT, 6, movetoworkspace, 6 #"Move window to workspace 6"
|
||||||
|
bind = $mainMod SHIFT, 7, movetoworkspace, 7 #"Move window to workspace 7"
|
||||||
|
bind = $mainMod SHIFT, 8, movetoworkspace, 8 #"Move window to workspace 8"
|
||||||
|
bind = $mainMod SHIFT, 9, movetoworkspace, 9 #"Move window to workspace 9"
|
||||||
|
bind = $mainMod SHIFT, 0, movetoworkspace, 10 #"Move window to workspace 10"
|
||||||
|
|
||||||
|
bindm = $mainMod, mouse:272, movewindow #"Move the window"
|
||||||
|
bindm = $mainMod, mouse:273, resizewindow #"Resize the window"
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_TYPE
|
||||||
|
exec-once = systemctl --user start graphical-session.target
|
||||||
|
|
||||||
|
$noctalia = $HOME/.local/bin/noctalia-cli
|
||||||
|
exec-once = $noctalia start # Here for now, until they fix systemd launching
|
||||||
|
|
||||||
# Some default env vars.
|
# Some default env vars.
|
||||||
env = XDG_CURRENT_DESKTOP,Hyprland
|
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||||
env = SDL_VIDEODRIVER,wayland
|
env = SDL_VIDEODRIVER,wayland
|
||||||
@@ -9,22 +15,24 @@ $mainMod = SUPER
|
|||||||
$mainModShift = SUPER_SHIFT
|
$mainModShift = SUPER_SHIFT
|
||||||
|
|
||||||
$menu = walker
|
$menu = walker
|
||||||
$terminal = ghostty
|
$terminal = ghostty +new-window
|
||||||
$browser = vivaldi
|
$browser = vivaldi
|
||||||
$noteManager = obsidian
|
$noteManager = obsidian
|
||||||
$noteManagerSearch = ~/.local/bin/obsidian-search
|
$noteManagerSearch = walker-obsidian-search
|
||||||
$literatureManager = zotero
|
$literatureManager = zotero
|
||||||
$localDocs = zeal
|
$localDocs = zeal
|
||||||
$musicPlayer = flatpak run com.spotify.Client
|
$musicPlayer = sone
|
||||||
$bluetoothManager = blueman-manager
|
$bluetoothManager = $noctalia ipc call controlCenter toggle
|
||||||
$officeSuite = onlyoffice-desktopeditors
|
$officeSuite = onlyoffice-desktopeditors
|
||||||
$fileManager = thunar
|
$fileManager = thunar
|
||||||
$perfMonitor = missioncenter
|
$perfMonitor = missioncenter
|
||||||
$terminalBackup = kitty
|
$terminalBackup = kitty
|
||||||
$screenshot = hyprshot --mode region -o ~/Pictures/Screenshot/
|
$screenshot = hyprshot --mode region -o ~/Pictures/Screenshot/
|
||||||
$lockscreen = hyprlock
|
$lockscreen = $noctalia ipc call lockScreen lock
|
||||||
|
$powerMenu = $noctalia ipc call sessionMenu toggle
|
||||||
$colorpicker = hyprpicker -a
|
$colorpicker = hyprpicker -a
|
||||||
$emojipicker = smile
|
$emojipicker = walker -m symbols
|
||||||
|
$cheatsheet = $noctalia ipc call plugin:keybind-cheatsheet toggle
|
||||||
|
|
||||||
source = monitors.conf
|
source = monitors.conf
|
||||||
source = variables.conf
|
source = variables.conf
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
#! /usr/bin/env bash
|
|
||||||
|
|
||||||
SCRIPT_PATH="$(realpath "$0")"
|
|
||||||
SCRIPT_DIR="$(dirname "$SCRIPT_PATH")"
|
|
||||||
|
|
||||||
cd "$SCRIPT_DIR"
|
|
||||||
|
|
||||||
go build -o ./cycle_kb_layout ./src/cycle_kb_layout.go
|
|
||||||
Binary file not shown.
@@ -1,204 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bufio"
|
|
||||||
"flag"
|
|
||||||
"fmt"
|
|
||||||
"os"
|
|
||||||
"path/filepath"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
const valueToChange = "kb_layout"
|
|
||||||
|
|
||||||
// readLayouts reads the available keyboard layouts from a file.
|
|
||||||
func readLayouts(layoutFile string) ([]string, error) {
|
|
||||||
file, err := os.Open(layoutFile)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer file.Close()
|
|
||||||
|
|
||||||
var layouts []string
|
|
||||||
scanner := bufio.NewScanner(file)
|
|
||||||
for scanner.Scan() {
|
|
||||||
layout := strings.TrimSpace(scanner.Text())
|
|
||||||
if layout != "" {
|
|
||||||
layouts = append(layouts, layout)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := scanner.Err(); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// To prevent index out of range error in toggleLine function,
|
|
||||||
// we add the first layout to the end to create a cycle.
|
|
||||||
if len(layouts) > 0 {
|
|
||||||
layouts = append(layouts, layouts[0])
|
|
||||||
} else {
|
|
||||||
return nil, fmt.Errorf("no layouts found in %s", layoutFile)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return layouts, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// isTargetLine checks if a line contains the configuration key we want to change.
|
|
||||||
func isTargetLine(line string) bool {
|
|
||||||
return strings.Contains(line, valueToChange)
|
|
||||||
}
|
|
||||||
|
|
||||||
// readCurrentConfig reads all lines from the configuration file.
|
|
||||||
func readCurrentConfig(configFile string) ([]string, error) {
|
|
||||||
file, err := os.Open(configFile)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer file.Close()
|
|
||||||
|
|
||||||
var lines []string
|
|
||||||
scanner := bufio.NewScanner(file)
|
|
||||||
for scanner.Scan() {
|
|
||||||
lines = append(lines, scanner.Text())
|
|
||||||
}
|
|
||||||
|
|
||||||
return lines, scanner.Err()
|
|
||||||
}
|
|
||||||
|
|
||||||
// writeNewConfig writes the updated lines back to the configuration file.
|
|
||||||
func writeNewConfig(lines []string, configFile string) error {
|
|
||||||
file, err := os.Create(configFile)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer file.Close()
|
|
||||||
|
|
||||||
writer := bufio.NewWriter(file)
|
|
||||||
for _, line := range lines {
|
|
||||||
if _, err := writer.WriteString(line + "\n"); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return writer.Flush()
|
|
||||||
}
|
|
||||||
|
|
||||||
// toggleLine finds the current layout in a line, and replaces it with the next one from the list.
|
|
||||||
func toggleLine(line string, layouts []string) string {
|
|
||||||
var builder strings.Builder
|
|
||||||
|
|
||||||
// Preserve indentation
|
|
||||||
indentLength := len(line) - len(strings.TrimLeft(line, " \t"))
|
|
||||||
builder.WriteString(strings.Repeat(" ", indentLength))
|
|
||||||
|
|
||||||
// Separate code from comments
|
|
||||||
codeAndComments := strings.SplitN(line, "#", 2)
|
|
||||||
code := strings.TrimSpace(codeAndComments[0])
|
|
||||||
tokens := strings.Fields(code)
|
|
||||||
currentLayout := tokens[len(tokens)-1]
|
|
||||||
|
|
||||||
// Find the index of the current layout and get the next one
|
|
||||||
currentIndex := -1
|
|
||||||
for i, layout := range layouts {
|
|
||||||
if layout == currentLayout {
|
|
||||||
currentIndex = i
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// The last element is a duplicate of the first, so (currentIndex+1) is always safe.
|
|
||||||
if currentIndex != -1 {
|
|
||||||
tokens[len(tokens)-1] = layouts[currentIndex+1]
|
|
||||||
}
|
|
||||||
|
|
||||||
builder.WriteString(strings.Join(tokens, " "))
|
|
||||||
|
|
||||||
// Re-append the comment if it exists
|
|
||||||
if len(codeAndComments) > 1 {
|
|
||||||
builder.WriteString(" # ")
|
|
||||||
builder.WriteString(strings.TrimSpace(codeAndComments[1]))
|
|
||||||
}
|
|
||||||
|
|
||||||
return builder.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
// cycleKbLayout orchestrates the entire process of reading, modifying, and writing the config.
|
|
||||||
func cycleKbLayout(configFile, layoutFile string) error {
|
|
||||||
layouts, err := readLayouts(layoutFile)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
lines, err := readCurrentConfig(configFile)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
var newLines []string
|
|
||||||
for _, line := range lines {
|
|
||||||
if isTargetLine(line) {
|
|
||||||
line = toggleLine(line, layouts)
|
|
||||||
}
|
|
||||||
newLines = append(newLines, line)
|
|
||||||
}
|
|
||||||
|
|
||||||
return writeNewConfig(newLines, configFile)
|
|
||||||
}
|
|
||||||
|
|
||||||
// expandPath resolves file paths by handling the '~' shorthand for the home directory
|
|
||||||
// and converting relative paths to absolute paths based on the executable's location.
|
|
||||||
func expandPath(path string) (string, error) {
|
|
||||||
// --- Step 1: Handle tilde expansion ---
|
|
||||||
if strings.HasPrefix(path, "~") {
|
|
||||||
homeDir, err := os.UserHomeDir()
|
|
||||||
if err != nil {
|
|
||||||
return "", fmt.Errorf("could not get user home directory: %w", err)
|
|
||||||
}
|
|
||||||
// Replace "~" with the actual home directory path.
|
|
||||||
// filepath.Join correctly handles path separators.
|
|
||||||
path = filepath.Join(homeDir, path[1:])
|
|
||||||
}
|
|
||||||
|
|
||||||
// --- Step 2: Handle relative paths ---
|
|
||||||
// If the path is still not absolute after potential tilde expansion,
|
|
||||||
// join it with the executable's directory.
|
|
||||||
if !filepath.IsAbs(path) {
|
|
||||||
exeDir, err := filepath.Abs(filepath.Dir(os.Args[0]))
|
|
||||||
if err != nil {
|
|
||||||
return "", fmt.Errorf("could not get executable directory: %w", err)
|
|
||||||
}
|
|
||||||
path = filepath.Join(exeDir, path)
|
|
||||||
}
|
|
||||||
|
|
||||||
return path, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Define flags for the input files
|
|
||||||
var configFile = flag.String("c", "inputs.conf", "Path to the configuration file (e.g., ~/.config/hypr/inputs.conf)")
|
|
||||||
var layoutFile = flag.String("l", "kb_layouts.txt", "Path to the keyboard layout file (e.g., ~/.config/hypr/kb_layouts.txt)")
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
// Parse command-line flags
|
|
||||||
flag.Parse()
|
|
||||||
|
|
||||||
// Resolve the full, absolute path for the config file, handling '~'
|
|
||||||
configFilePath, err := expandPath(*configFile)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Printf("Error processing config file path: %v\n", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Resolve the full, absolute path for the layout file, handling '~'
|
|
||||||
layoutFilePath, err := expandPath(*layoutFile)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Printf("Error processing layout file path: %v\n", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Call the main logic with the fully resolved paths
|
|
||||||
if err := cycleKbLayout(configFilePath, layoutFilePath); err != nil {
|
|
||||||
fmt.Printf("Error cycling keyboard layout: %v\n", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
module cycle_kb_layout
|
|
||||||
|
|
||||||
go 1.24.4
|
|
||||||
@@ -51,7 +51,6 @@ animations {
|
|||||||
|
|
||||||
dwindle {
|
dwindle {
|
||||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||||
pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
|
||||||
preserve_split = true # you probably want this
|
preserve_split = true # you probably want this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,127 @@
|
|||||||
|
spawn-at-startup "dbus-update-activation-environment" "--systemd" "WAYLAND_DISPLAY" "XDG_CURRENT_DESKTOP" "XDG_SESSION_TYPE"
|
||||||
|
spawn-at-startup "systemctl" "--user" "start" "graphical-session.target"
|
||||||
|
|
||||||
|
spawn-sh-at-startup "qs -c noctalia-shell"
|
||||||
|
|
||||||
|
hotkey-overlay {
|
||||||
|
skip-at-startup
|
||||||
|
}
|
||||||
|
|
||||||
|
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
|
||||||
|
|
||||||
|
layout {
|
||||||
|
gaps 12
|
||||||
|
always-center-single-column
|
||||||
|
border {
|
||||||
|
width 2
|
||||||
|
active-color "#7aa2f7"
|
||||||
|
inactive-color "#595959aa"
|
||||||
|
}
|
||||||
|
shadow {
|
||||||
|
softness 30
|
||||||
|
spread 5
|
||||||
|
offset x=0 y=5
|
||||||
|
color "#0007"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window-rule {
|
||||||
|
geometry-corner-radius 4
|
||||||
|
clip-to-geometry true
|
||||||
|
focus-ring {
|
||||||
|
off
|
||||||
|
}
|
||||||
|
border {
|
||||||
|
on
|
||||||
|
width 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
keyboard {
|
||||||
|
numlock
|
||||||
|
}
|
||||||
|
touchpad {
|
||||||
|
tap
|
||||||
|
natural-scroll
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
binds {
|
||||||
|
// #"1. Application Launchers"
|
||||||
|
Mod+Space hotkey-overlay-title="Activate the launcher" { spawn "walker"; }
|
||||||
|
Mod+Q hotkey-overlay-title="Launch the terminal" { spawn "ghostty" "+new-window"; }
|
||||||
|
Mod+W hotkey-overlay-title="Launch the browser" { spawn "vivaldi"; }
|
||||||
|
Mod+E hotkey-overlay-title="Launch the note manager" { spawn "obsidian"; }
|
||||||
|
Mod+R hotkey-overlay-title="Launch the literature manager" { spawn "zotero"; }
|
||||||
|
Mod+T hotkey-overlay-title="Launch the local documentation browser" { spawn "zeal"; }
|
||||||
|
Mod+Y hotkey-overlay-title="Launch the music player" { spawn "sone"; }
|
||||||
|
Mod+U hotkey-overlay-title="Launch the control center" { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "controlCenter" "toggle"; }
|
||||||
|
Mod+I hotkey-overlay-title="Launch the office suite" { spawn "onlyoffice-desktopeditors"; }
|
||||||
|
Mod+O hotkey-overlay-title="Launch the file manager" { spawn "thunar"; }
|
||||||
|
Mod+P hotkey-overlay-title="Launch the performance monitor" { spawn "missioncenter"; }
|
||||||
|
Mod+S hotkey-overlay-title="Launch the backup terminal" { spawn "kitty"; }
|
||||||
|
Mod+D hotkey-overlay-title="Search the note manager" { spawn "walker-obsidian-search"; }
|
||||||
|
|
||||||
|
// #"2. Function Hotkeys"
|
||||||
|
Mod+Tab hotkey-overlay-title="Take a screenshot" { spawn-sh "hyprshot --mode region -o ~/Pictures/Screenshot/"; } // Or replace with native `screenshot;`
|
||||||
|
Mod+Escape hotkey-overlay-title="Lock the screen" { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "lockScreen" "lock"; }
|
||||||
|
Mod+Shift+T hotkey-overlay-title="Activate Color Picker" { spawn "hyprpicker" "-a"; }
|
||||||
|
Mod+Period hotkey-overlay-title="Launch emoji picker" { spawn "walker" "-m" "symbols"; }
|
||||||
|
Mod+C hotkey-overlay-title="Kill the active window" { close-window; }
|
||||||
|
Mod+V hotkey-overlay-title="Toggle floating window" { toggle-window-floating; }
|
||||||
|
Mod+M hotkey-overlay-title="Launch the power menu" { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "sessionMenu" "toggle"; }
|
||||||
|
Mod+A hotkey-overlay-title="Display this cheatsheet" { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "plugin:keybind-cheatsheet" "toggle"; }
|
||||||
|
|
||||||
|
XF86AudioRaiseVolume allow-when-locked=true hotkey-overlay-title="Increase volume" { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "volume" "increase"; }
|
||||||
|
XF86AudioLowerVolume allow-when-locked=true hotkey-overlay-title="Decrease volume" { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "volume" "decrease"; }
|
||||||
|
XF86AudioMute allow-when-locked=true hotkey-overlay-title="Mute volume" { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "volume" "muteOutput"; }
|
||||||
|
|
||||||
|
// #"3. Navigation"
|
||||||
|
Mod+Left hotkey-overlay-title="Navigate left" { focus-column-left; }
|
||||||
|
Mod+Down hotkey-overlay-title="Navigate down" { focus-window-down; }
|
||||||
|
Mod+Up hotkey-overlay-title="Navigate up" { focus-window-up; }
|
||||||
|
Mod+Right hotkey-overlay-title="Navigate right" { focus-column-right; }
|
||||||
|
Mod+H hotkey-overlay-title="Navigate left" { focus-column-left; }
|
||||||
|
Mod+J hotkey-overlay-title="Navigate down" { focus-window-down; }
|
||||||
|
Mod+K hotkey-overlay-title="Navigate up" { focus-window-up; }
|
||||||
|
Mod+L hotkey-overlay-title="Navigate right" { focus-column-right; }
|
||||||
|
|
||||||
|
Mod+1 hotkey-overlay-title="Move to workspace 1" { focus-workspace 1; }
|
||||||
|
Mod+2 hotkey-overlay-title="Move to workspace 2" { focus-workspace 2; }
|
||||||
|
Mod+3 hotkey-overlay-title="Move to workspace 3" { focus-workspace 3; }
|
||||||
|
Mod+4 hotkey-overlay-title="Move to workspace 4" { focus-workspace 4; }
|
||||||
|
Mod+5 hotkey-overlay-title="Move to workspace 5" { focus-workspace 5; }
|
||||||
|
Mod+6 hotkey-overlay-title="Move to workspace 6" { focus-workspace 6; }
|
||||||
|
Mod+7 hotkey-overlay-title="Move to workspace 7" { focus-workspace 7; }
|
||||||
|
Mod+8 hotkey-overlay-title="Move to workspace 8" { focus-workspace 8; }
|
||||||
|
Mod+9 hotkey-overlay-title="Move to workspace 9" { focus-workspace 9; }
|
||||||
|
|
||||||
|
// #"4. Window Management"
|
||||||
|
Mod+Shift+Left hotkey-overlay-title="Move window left" { move-column-left; }
|
||||||
|
Mod+Shift+Right hotkey-overlay-title="Move window right" { move-column-right; }
|
||||||
|
Mod+Shift+H hotkey-overlay-title="Move window left" { move-column-left; }
|
||||||
|
Mod+Shift+L hotkey-overlay-title="Move window right" { move-column-right; }
|
||||||
|
|
||||||
|
Mod+Shift+Down hotkey-overlay-title="Move window to down workspace" { move-window-to-workspace-down; }
|
||||||
|
Mod+Shift+Up hotkey-overlay-title="Move window to up workspace" { move-window-to-workspace-up; }
|
||||||
|
Mod+Shift+J hotkey-overlay-title="Move window to down workspace" { move-window-to-workspace-down; }
|
||||||
|
Mod+Shift+K hotkey-overlay-title="Move window to up workspace" { move-window-to-workspace-up; }
|
||||||
|
|
||||||
|
Mod+Shift+1 hotkey-overlay-title="Move window to workspace 1" { move-window-to-workspace 1; }
|
||||||
|
Mod+Shift+2 hotkey-overlay-title="Move window to workspace 2" { move-window-to-workspace 2; }
|
||||||
|
Mod+Shift+3 hotkey-overlay-title="Move window to workspace 3" { move-window-to-workspace 3; }
|
||||||
|
Mod+Shift+4 hotkey-overlay-title="Move window to workspace 4" { move-window-to-workspace 4; }
|
||||||
|
Mod+Shift+5 hotkey-overlay-title="Move window to workspace 5" { move-window-to-workspace 5; }
|
||||||
|
Mod+Shift+6 hotkey-overlay-title="Move window to workspace 6" { move-window-to-workspace 6; }
|
||||||
|
Mod+Shift+7 hotkey-overlay-title="Move window to workspace 7" { move-window-to-workspace 7; }
|
||||||
|
Mod+Shift+8 hotkey-overlay-title="Move window to workspace 8" { move-window-to-workspace 8; }
|
||||||
|
Mod+Shift+9 hotkey-overlay-title="Move window to workspace 9" { move-window-to-workspace 9; }
|
||||||
|
|
||||||
|
Mod+Minus hotkey-overlay-title="Shrink column" { set-column-width "-10%"; }
|
||||||
|
Mod+Equal hotkey-overlay-title="Grow column" { set-column-width "+10%"; }
|
||||||
|
Mod+Shift+F hotkey-overlay-title="Maximize column" { maximize-column; }
|
||||||
|
Mod+Comma hotkey-overlay-title="Reset width" { set-column-width "50%"; }
|
||||||
|
|
||||||
|
Mod+Shift+E hotkey-overlay-title="Quit Niri" { quit; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"mError": "#f7768e",
|
||||||
|
"mHover": "#9ece6a",
|
||||||
|
"mOnError": "#16161e",
|
||||||
|
"mOnHover": "#16161e",
|
||||||
|
"mOnPrimary": "#16161e",
|
||||||
|
"mOnSecondary": "#16161e",
|
||||||
|
"mOnSurface": "#c0caf5",
|
||||||
|
"mOnSurfaceVariant": "#9aa5ce",
|
||||||
|
"mOnTertiary": "#16161e",
|
||||||
|
"mOutline": "#353d57",
|
||||||
|
"mPrimary": "#7aa2f7",
|
||||||
|
"mSecondary": "#bb9af7",
|
||||||
|
"mShadow": "#15161e",
|
||||||
|
"mSurface": "#1a1b26",
|
||||||
|
"mSurfaceVariant": "#24283b",
|
||||||
|
"mTertiary": "#9ece6a"
|
||||||
|
}
|
||||||
+1
Submodule dot_config/noctalia/plugins-custom/workday-progress added at 4d63ccc40c
Submodule
+1
Submodule dot_config/noctalia/plugins-repo added at ea21cb63d0
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"modKeyVariable": "$mainMod",
|
||||||
|
"hyprlandConfigPath": "~/.config/hypr/hyprland.conf",
|
||||||
|
"niriConfigPath": "~/.config/niri/config.kdl"
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"hideInactive": true,
|
||||||
|
"enableToast": true,
|
||||||
|
"removeMargins": false,
|
||||||
|
"iconSpacing": 4,
|
||||||
|
"activeColor": "primary",
|
||||||
|
"inactiveColor": "none",
|
||||||
|
"micFilterRegex": ""
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"colorHistory": [],
|
||||||
|
"paletteColors": [],
|
||||||
|
"installedLangs": [
|
||||||
|
"eng"
|
||||||
|
],
|
||||||
|
"transAvailable": false,
|
||||||
|
"selectedOcrLang": "eng",
|
||||||
|
"detectedRecorder": "",
|
||||||
|
"stateIsRunning": false,
|
||||||
|
"stateActiveTool": ""
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"startHour": 9,
|
||||||
|
"endHour": 17,
|
||||||
|
"startMinute": 0,
|
||||||
|
"endMinute": 0,
|
||||||
|
"barWidth": 64,
|
||||||
|
"borderThickness": 2,
|
||||||
|
"marginThickness": 4,
|
||||||
|
"innerMarginThickness": 4,
|
||||||
|
"outerMarginThickness": 2,
|
||||||
|
"marginTop": 38,
|
||||||
|
"marginBottom": 6,
|
||||||
|
"marginSide": 4,
|
||||||
|
"screenEdge": "right",
|
||||||
|
"screenIndex": 2
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"enabled": true,
|
||||||
|
"name": "Noctalia Plugins",
|
||||||
|
"url": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"states": {
|
||||||
|
"keybind-cheatsheet": {
|
||||||
|
"enabled": true,
|
||||||
|
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||||
|
},
|
||||||
|
"privacy-indicator": {
|
||||||
|
"enabled": true,
|
||||||
|
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||||
|
},
|
||||||
|
"screen-toolkit": {
|
||||||
|
"enabled": true,
|
||||||
|
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||||
|
},
|
||||||
|
"workday-progress": {
|
||||||
|
"enabled": true,
|
||||||
|
"sourceUrl": "local"
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
"version": 2
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
../plugins-repo/keybind-cheatsheet
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
../plugins-repo/privacy-indicator
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/home/cianh/.config/nix/home-manager/core/dotfiles/dot_config/noctalia/plugins-repo/screen-toolkit
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/home/cianh/.config/nix/home-manager/core/dotfiles/dot_config/noctalia/plugins-custom/workday-progress
|
||||||
@@ -0,0 +1,736 @@
|
|||||||
|
{
|
||||||
|
"appLauncher": {
|
||||||
|
"autoPasteClipboard": false,
|
||||||
|
"clipboardWatchImageCommand": "wl-paste --type image --watch cliphist store",
|
||||||
|
"clipboardWatchTextCommand": "wl-paste --type text --watch cliphist store",
|
||||||
|
"clipboardWrapText": true,
|
||||||
|
"customLaunchPrefix": "",
|
||||||
|
"customLaunchPrefixEnabled": false,
|
||||||
|
"density": "compact",
|
||||||
|
"enableClipPreview": true,
|
||||||
|
"enableClipboardChips": true,
|
||||||
|
"enableClipboardHistory": false,
|
||||||
|
"enableClipboardSmartIcons": true,
|
||||||
|
"enableSessionSearch": true,
|
||||||
|
"enableSettingsSearch": true,
|
||||||
|
"enableWindowsSearch": true,
|
||||||
|
"iconMode": "tabler",
|
||||||
|
"ignoreMouseInput": false,
|
||||||
|
"overviewLayer": false,
|
||||||
|
"pinnedApps": [
|
||||||
|
],
|
||||||
|
"position": "center",
|
||||||
|
"screenshotAnnotationTool": "",
|
||||||
|
"showCategories": true,
|
||||||
|
"showIconBackground": false,
|
||||||
|
"sortByMostUsed": true,
|
||||||
|
"terminalCommand": "ghostty -e",
|
||||||
|
"viewMode": "grid"
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"mprisBlacklist": [
|
||||||
|
],
|
||||||
|
"preferredPlayer": "sone",
|
||||||
|
"spectrumFrameRate": 30,
|
||||||
|
"spectrumMirrored": true,
|
||||||
|
"visualizerType": "linear",
|
||||||
|
"volumeFeedback": true,
|
||||||
|
"volumeFeedbackSoundFile": "",
|
||||||
|
"volumeOverdrive": true,
|
||||||
|
"volumeStep": 5
|
||||||
|
},
|
||||||
|
"bar": {
|
||||||
|
"autoHideDelay": 500,
|
||||||
|
"autoShowDelay": 150,
|
||||||
|
"backgroundOpacity": 0.93,
|
||||||
|
"barType": "framed",
|
||||||
|
"capsuleColorKey": "none",
|
||||||
|
"capsuleOpacity": 1,
|
||||||
|
"contentPadding": 2,
|
||||||
|
"density": "comfortable",
|
||||||
|
"displayMode": "always_visible",
|
||||||
|
"enableExclusionZoneInset": true,
|
||||||
|
"fontScale": 1,
|
||||||
|
"frameRadius": 12,
|
||||||
|
"frameThickness": 4,
|
||||||
|
"hideOnOverview": false,
|
||||||
|
"marginHorizontal": 4,
|
||||||
|
"marginVertical": 4,
|
||||||
|
"middleClickAction": "none",
|
||||||
|
"middleClickCommand": "",
|
||||||
|
"middleClickFollowMouse": false,
|
||||||
|
"monitors": [
|
||||||
|
],
|
||||||
|
"mouseWheelAction": "none",
|
||||||
|
"mouseWheelWrap": true,
|
||||||
|
"outerCorners": true,
|
||||||
|
"position": "top",
|
||||||
|
"reverseScroll": false,
|
||||||
|
"rightClickAction": "controlCenter",
|
||||||
|
"rightClickCommand": "",
|
||||||
|
"rightClickFollowMouse": true,
|
||||||
|
"screenOverrides": [
|
||||||
|
],
|
||||||
|
"showCapsule": true,
|
||||||
|
"showOnWorkspaceSwitch": true,
|
||||||
|
"showOutline": false,
|
||||||
|
"useSeparateOpacity": false,
|
||||||
|
"widgetSpacing": 6,
|
||||||
|
"widgets": {
|
||||||
|
"center": [
|
||||||
|
{
|
||||||
|
"characterCount": 2,
|
||||||
|
"colorizeIcons": true,
|
||||||
|
"emptyColor": "secondary",
|
||||||
|
"enableScrollWheel": true,
|
||||||
|
"focusedColor": "primary",
|
||||||
|
"followFocusedScreen": false,
|
||||||
|
"fontWeight": "bold",
|
||||||
|
"groupedBorderOpacity": 1,
|
||||||
|
"hideUnoccupied": false,
|
||||||
|
"iconScale": 0.8,
|
||||||
|
"id": "Workspace",
|
||||||
|
"labelMode": "index",
|
||||||
|
"occupiedColor": "secondary",
|
||||||
|
"pillSize": 0.6,
|
||||||
|
"showApplications": true,
|
||||||
|
"showApplicationsHover": true,
|
||||||
|
"showBadge": true,
|
||||||
|
"showLabelsOnlyWhenOccupied": true,
|
||||||
|
"unfocusedIconsOpacity": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"left": [
|
||||||
|
{
|
||||||
|
"colorizeSystemIcon": "tertiary",
|
||||||
|
"customIconPath": "",
|
||||||
|
"enableColorization": true,
|
||||||
|
"icon": "rocket",
|
||||||
|
"iconColor": "none",
|
||||||
|
"id": "Launcher",
|
||||||
|
"useDistroLogo": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"clockColor": "none",
|
||||||
|
"customFont": "",
|
||||||
|
"formatHorizontal": "HH:mm ddd, MMM dd",
|
||||||
|
"formatVertical": "HH mm - dd MM",
|
||||||
|
"id": "Clock",
|
||||||
|
"tooltipFormat": "HH:mm ddd, MMM dd",
|
||||||
|
"useCustomFont": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"compactMode": true,
|
||||||
|
"diskPath": "/",
|
||||||
|
"iconColor": "none",
|
||||||
|
"id": "SystemMonitor",
|
||||||
|
"showCpuCores": false,
|
||||||
|
"showCpuFreq": false,
|
||||||
|
"showCpuTemp": true,
|
||||||
|
"showCpuUsage": true,
|
||||||
|
"showDiskAvailable": false,
|
||||||
|
"showDiskUsage": false,
|
||||||
|
"showDiskUsageAsPercent": false,
|
||||||
|
"showGpuTemp": false,
|
||||||
|
"showLoadAverage": false,
|
||||||
|
"showMemoryAsPercent": false,
|
||||||
|
"showMemoryUsage": true,
|
||||||
|
"showNetworkStats": false,
|
||||||
|
"showSwapUsage": false,
|
||||||
|
"textColor": "none",
|
||||||
|
"useMonospaceFont": true,
|
||||||
|
"usePadding": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"colorizeIcons": false,
|
||||||
|
"hideMode": "hidden",
|
||||||
|
"id": "ActiveWindow",
|
||||||
|
"maxWidth": 145,
|
||||||
|
"scrollingMode": "hover",
|
||||||
|
"showIcon": true,
|
||||||
|
"showText": false,
|
||||||
|
"textColor": "none",
|
||||||
|
"useFixedWidth": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"compactMode": false,
|
||||||
|
"hideMode": "hidden",
|
||||||
|
"hideWhenIdle": false,
|
||||||
|
"id": "MediaMini",
|
||||||
|
"maxWidth": 145,
|
||||||
|
"panelShowAlbumArt": true,
|
||||||
|
"scrollingMode": "hover",
|
||||||
|
"showAlbumArt": true,
|
||||||
|
"showArtistFirst": true,
|
||||||
|
"showProgressRing": true,
|
||||||
|
"showVisualizer": true,
|
||||||
|
"textColor": "none",
|
||||||
|
"useFixedWidth": false,
|
||||||
|
"visualizerType": "linear"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"right": [
|
||||||
|
{
|
||||||
|
"defaultSettings": {
|
||||||
|
"activeColor": "primary",
|
||||||
|
"enableToast": true,
|
||||||
|
"hideInactive": false,
|
||||||
|
"iconSpacing": 4,
|
||||||
|
"inactiveColor": "none",
|
||||||
|
"micFilterRegex": "",
|
||||||
|
"removeMargins": false
|
||||||
|
},
|
||||||
|
"id": "plugin:privacy-indicator"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"defaultSettings": {
|
||||||
|
"colorHistory": [
|
||||||
|
],
|
||||||
|
"detectedRecorder": "",
|
||||||
|
"installedLangs": [
|
||||||
|
"eng"
|
||||||
|
],
|
||||||
|
"paletteColors": [
|
||||||
|
],
|
||||||
|
"selectedOcrLang": "eng",
|
||||||
|
"transAvailable": false
|
||||||
|
},
|
||||||
|
"id": "plugin:screen-toolkit"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"blacklist": [
|
||||||
|
],
|
||||||
|
"chevronColor": "none",
|
||||||
|
"colorizeIcons": false,
|
||||||
|
"drawerEnabled": true,
|
||||||
|
"hidePassive": false,
|
||||||
|
"id": "Tray",
|
||||||
|
"pinned": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hideWhenZero": false,
|
||||||
|
"hideWhenZeroUnread": false,
|
||||||
|
"iconColor": "none",
|
||||||
|
"id": "NotificationHistory",
|
||||||
|
"showUnreadBadge": true,
|
||||||
|
"unreadBadgeColor": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"deviceNativePath": "__default__",
|
||||||
|
"displayMode": "graphic-clean",
|
||||||
|
"hideIfIdle": false,
|
||||||
|
"hideIfNotDetected": true,
|
||||||
|
"id": "Battery",
|
||||||
|
"showNoctaliaPerformance": false,
|
||||||
|
"showPowerProfiles": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"displayMode": "onhover",
|
||||||
|
"iconColor": "none",
|
||||||
|
"id": "Volume",
|
||||||
|
"middleClickCommand": "pwvucontrol || pavucontrol",
|
||||||
|
"textColor": "none"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"applyToAllMonitors": false,
|
||||||
|
"displayMode": "onhover",
|
||||||
|
"iconColor": "none",
|
||||||
|
"id": "Brightness",
|
||||||
|
"textColor": "none"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"displayMode": "onhover",
|
||||||
|
"iconColor": "none",
|
||||||
|
"id": "KeyboardLayout",
|
||||||
|
"showIcon": true,
|
||||||
|
"textColor": "none"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"colorizeDistroLogo": false,
|
||||||
|
"colorizeSystemIcon": "primary",
|
||||||
|
"customIconPath": "",
|
||||||
|
"enableColorization": true,
|
||||||
|
"icon": "noctalia",
|
||||||
|
"id": "ControlCenter",
|
||||||
|
"useDistroLogo": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"brightness": {
|
||||||
|
"backlightDeviceMappings": [
|
||||||
|
],
|
||||||
|
"brightnessStep": 5,
|
||||||
|
"enableDdcSupport": true,
|
||||||
|
"enforceMinimum": true
|
||||||
|
},
|
||||||
|
"calendar": {
|
||||||
|
"cards": [
|
||||||
|
{
|
||||||
|
"enabled": true,
|
||||||
|
"id": "calendar-header-card"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"enabled": true,
|
||||||
|
"id": "calendar-month-card"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"enabled": true,
|
||||||
|
"id": "weather-card"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"colorSchemes": {
|
||||||
|
"darkMode": true,
|
||||||
|
"generationMethod": "tonal-spot",
|
||||||
|
"manualSunrise": "06:30",
|
||||||
|
"manualSunset": "18:30",
|
||||||
|
"monitorForColors": "",
|
||||||
|
"predefinedScheme": "Tokyo Night",
|
||||||
|
"schedulingMode": "off",
|
||||||
|
"syncGsettings": true,
|
||||||
|
"useWallpaperColors": false
|
||||||
|
},
|
||||||
|
"controlCenter": {
|
||||||
|
"cards": [
|
||||||
|
{
|
||||||
|
"enabled": true,
|
||||||
|
"id": "profile-card"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"enabled": true,
|
||||||
|
"id": "shortcuts-card"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"enabled": true,
|
||||||
|
"id": "audio-card"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"enabled": false,
|
||||||
|
"id": "brightness-card"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"enabled": true,
|
||||||
|
"id": "weather-card"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"enabled": true,
|
||||||
|
"id": "media-sysmon-card"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"diskPath": "/",
|
||||||
|
"position": "close_to_bar_button",
|
||||||
|
"shortcuts": {
|
||||||
|
"left": [
|
||||||
|
{
|
||||||
|
"id": "Network"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "Bluetooth"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "WallpaperSelector"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "NoctaliaPerformance"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"right": [
|
||||||
|
{
|
||||||
|
"id": "Notifications"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "PowerProfile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "KeepAwake"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "NightLight"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"desktopWidgets": {
|
||||||
|
"enabled": false,
|
||||||
|
"gridSnap": false,
|
||||||
|
"gridSnapScale": false,
|
||||||
|
"monitorWidgets": [
|
||||||
|
],
|
||||||
|
"overviewEnabled": true
|
||||||
|
},
|
||||||
|
"dock": {
|
||||||
|
"animationSpeed": 1,
|
||||||
|
"backgroundOpacity": 1,
|
||||||
|
"colorizeIcons": false,
|
||||||
|
"deadOpacity": 0.6,
|
||||||
|
"displayMode": "auto_hide",
|
||||||
|
"dockType": "floating",
|
||||||
|
"enabled": true,
|
||||||
|
"floatingRatio": 1,
|
||||||
|
"groupApps": false,
|
||||||
|
"groupClickAction": "cycle",
|
||||||
|
"groupContextMenuMode": "extended",
|
||||||
|
"groupIndicatorStyle": "dots",
|
||||||
|
"inactiveIndicators": false,
|
||||||
|
"indicatorColor": "primary",
|
||||||
|
"indicatorOpacity": 0.6,
|
||||||
|
"indicatorThickness": 3,
|
||||||
|
"launcherIcon": "",
|
||||||
|
"launcherIconColor": "none",
|
||||||
|
"launcherPosition": "end",
|
||||||
|
"launcherUseDistroLogo": false,
|
||||||
|
"monitors": [
|
||||||
|
],
|
||||||
|
"onlySameOutput": true,
|
||||||
|
"pinnedApps": [
|
||||||
|
],
|
||||||
|
"pinnedStatic": false,
|
||||||
|
"position": "bottom",
|
||||||
|
"showDockIndicator": true,
|
||||||
|
"showLauncherIcon": true,
|
||||||
|
"sitOnFrame": false,
|
||||||
|
"size": 1
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"allowPanelsOnScreenWithoutBar": true,
|
||||||
|
"allowPasswordWithFprintd": false,
|
||||||
|
"animationDisabled": false,
|
||||||
|
"animationSpeed": 1,
|
||||||
|
"autoStartAuth": false,
|
||||||
|
"avatarImage": "/home/cianh/Pictures/face.png",
|
||||||
|
"boxRadiusRatio": 1,
|
||||||
|
"clockFormat": "hh\\nmm",
|
||||||
|
"clockStyle": "digital",
|
||||||
|
"compactLockScreen": true,
|
||||||
|
"dimmerOpacity": 0.2,
|
||||||
|
"enableBlurBehind": true,
|
||||||
|
"enableLockScreenCountdown": true,
|
||||||
|
"enableLockScreenMediaControls": false,
|
||||||
|
"enableShadows": true,
|
||||||
|
"forceBlackScreenCorners": false,
|
||||||
|
"iRadiusRatio": 1,
|
||||||
|
"keybinds": {
|
||||||
|
"keyDown": [
|
||||||
|
"Down"
|
||||||
|
],
|
||||||
|
"keyEnter": [
|
||||||
|
"Return",
|
||||||
|
"Enter"
|
||||||
|
],
|
||||||
|
"keyEscape": [
|
||||||
|
"Esc"
|
||||||
|
],
|
||||||
|
"keyLeft": [
|
||||||
|
"Left"
|
||||||
|
],
|
||||||
|
"keyRemove": [
|
||||||
|
"Del"
|
||||||
|
],
|
||||||
|
"keyRight": [
|
||||||
|
"Right"
|
||||||
|
],
|
||||||
|
"keyUp": [
|
||||||
|
"Up"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"language": "en-GB",
|
||||||
|
"lockOnSuspend": true,
|
||||||
|
"lockScreenAnimations": true,
|
||||||
|
"lockScreenBlur": 0,
|
||||||
|
"lockScreenCountdownDuration": 5000,
|
||||||
|
"lockScreenMonitors": [
|
||||||
|
],
|
||||||
|
"lockScreenTint": 0,
|
||||||
|
"passwordChars": true,
|
||||||
|
"radiusRatio": 1,
|
||||||
|
"reverseScroll": false,
|
||||||
|
"scaleRatio": 1,
|
||||||
|
"screenRadiusRatio": 1,
|
||||||
|
"shadowDirection": "bottom_right",
|
||||||
|
"shadowOffsetX": 2,
|
||||||
|
"shadowOffsetY": 3,
|
||||||
|
"showChangelogOnStartup": true,
|
||||||
|
"showHibernateOnLockScreen": false,
|
||||||
|
"showScreenCorners": false,
|
||||||
|
"showSessionButtonsOnLockScreen": true,
|
||||||
|
"smoothScrollEnabled": true,
|
||||||
|
"telemetryEnabled": false
|
||||||
|
},
|
||||||
|
"hooks": {
|
||||||
|
"colorGeneration": "",
|
||||||
|
"darkModeChange": "",
|
||||||
|
"enabled": false,
|
||||||
|
"performanceModeDisabled": "",
|
||||||
|
"performanceModeEnabled": "",
|
||||||
|
"screenLock": "",
|
||||||
|
"screenUnlock": "",
|
||||||
|
"session": "",
|
||||||
|
"startup": "",
|
||||||
|
"wallpaperChange": ""
|
||||||
|
},
|
||||||
|
"idle": {
|
||||||
|
"customCommands": "[]",
|
||||||
|
"enabled": true,
|
||||||
|
"fadeDuration": 5,
|
||||||
|
"lockCommand": "",
|
||||||
|
"lockTimeout": 660,
|
||||||
|
"resumeLockCommand": "",
|
||||||
|
"resumeScreenOffCommand": "",
|
||||||
|
"resumeSuspendCommand": "",
|
||||||
|
"screenOffCommand": "",
|
||||||
|
"screenOffTimeout": 600,
|
||||||
|
"suspendCommand": "",
|
||||||
|
"suspendTimeout": 1800
|
||||||
|
},
|
||||||
|
"location": {
|
||||||
|
"analogClockInCalendar": false,
|
||||||
|
"autoLocate": true,
|
||||||
|
"firstDayOfWeek": 1,
|
||||||
|
"hideWeatherCityName": false,
|
||||||
|
"hideWeatherTimezone": false,
|
||||||
|
"name": "",
|
||||||
|
"showCalendarEvents": true,
|
||||||
|
"showCalendarWeather": true,
|
||||||
|
"showWeekNumberInCalendar": true,
|
||||||
|
"use12hourFormat": false,
|
||||||
|
"useFahrenheit": false,
|
||||||
|
"weatherEnabled": true,
|
||||||
|
"weatherShowEffects": true,
|
||||||
|
"weatherTaliaMascotAlways": false
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
"bluetoothAutoConnect": true,
|
||||||
|
"bluetoothDetailsViewMode": "grid",
|
||||||
|
"bluetoothHideUnnamedDevices": false,
|
||||||
|
"bluetoothRssiPollIntervalMs": 60000,
|
||||||
|
"bluetoothRssiPollingEnabled": false,
|
||||||
|
"disableDiscoverability": false,
|
||||||
|
"networkPanelView": "wifi",
|
||||||
|
"wifiDetailsViewMode": "grid"
|
||||||
|
},
|
||||||
|
"nightLight": {
|
||||||
|
"autoSchedule": true,
|
||||||
|
"dayTemp": "6500",
|
||||||
|
"enabled": false,
|
||||||
|
"forced": false,
|
||||||
|
"manualSunrise": "06:30",
|
||||||
|
"manualSunset": "18:30",
|
||||||
|
"nightTemp": "4000"
|
||||||
|
},
|
||||||
|
"noctaliaPerformance": {
|
||||||
|
"disableDesktopWidgets": true,
|
||||||
|
"disableWallpaper": true
|
||||||
|
},
|
||||||
|
"notifications": {
|
||||||
|
"backgroundOpacity": 1,
|
||||||
|
"clearDismissed": true,
|
||||||
|
"criticalUrgencyDuration": 15,
|
||||||
|
"density": "default",
|
||||||
|
"enableBatteryToast": true,
|
||||||
|
"enableKeyboardLayoutToast": true,
|
||||||
|
"enableMarkdown": false,
|
||||||
|
"enableMediaToast": false,
|
||||||
|
"enabled": true,
|
||||||
|
"location": "top_right",
|
||||||
|
"lowUrgencyDuration": 3,
|
||||||
|
"monitors": [
|
||||||
|
],
|
||||||
|
"normalUrgencyDuration": 8,
|
||||||
|
"overlayLayer": true,
|
||||||
|
"respectExpireTimeout": false,
|
||||||
|
"saveToHistory": {
|
||||||
|
"critical": true,
|
||||||
|
"low": true,
|
||||||
|
"normal": true
|
||||||
|
},
|
||||||
|
"sounds": {
|
||||||
|
"criticalSoundFile": "",
|
||||||
|
"enabled": false,
|
||||||
|
"excludedApps": "discord,firefox,chrome,chromium,edge",
|
||||||
|
"lowSoundFile": "",
|
||||||
|
"normalSoundFile": "",
|
||||||
|
"separateSounds": false,
|
||||||
|
"volume": 0.5
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"osd": {
|
||||||
|
"autoHideMs": 2000,
|
||||||
|
"backgroundOpacity": 1,
|
||||||
|
"enabled": true,
|
||||||
|
"enabledTypes": [
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3
|
||||||
|
],
|
||||||
|
"location": "top_right",
|
||||||
|
"monitors": [
|
||||||
|
],
|
||||||
|
"overlayLayer": true
|
||||||
|
},
|
||||||
|
"plugins": {
|
||||||
|
"autoUpdate": false,
|
||||||
|
"notifyUpdates": false
|
||||||
|
},
|
||||||
|
"sessionMenu": {
|
||||||
|
"countdownDuration": 5000,
|
||||||
|
"enableCountdown": true,
|
||||||
|
"largeButtonsLayout": "single-row",
|
||||||
|
"largeButtonsStyle": true,
|
||||||
|
"position": "center",
|
||||||
|
"powerOptions": [
|
||||||
|
{
|
||||||
|
"action": "lock",
|
||||||
|
"command": "",
|
||||||
|
"countdownEnabled": true,
|
||||||
|
"enabled": true,
|
||||||
|
"keybind": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"action": "suspend",
|
||||||
|
"command": "",
|
||||||
|
"countdownEnabled": true,
|
||||||
|
"enabled": true,
|
||||||
|
"keybind": "2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"action": "hibernate",
|
||||||
|
"command": "",
|
||||||
|
"countdownEnabled": true,
|
||||||
|
"enabled": false,
|
||||||
|
"keybind": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"action": "reboot",
|
||||||
|
"command": "",
|
||||||
|
"countdownEnabled": true,
|
||||||
|
"enabled": true,
|
||||||
|
"keybind": "3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"action": "logout",
|
||||||
|
"command": "",
|
||||||
|
"countdownEnabled": true,
|
||||||
|
"enabled": true,
|
||||||
|
"keybind": "4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"action": "shutdown",
|
||||||
|
"command": "",
|
||||||
|
"countdownEnabled": true,
|
||||||
|
"enabled": true,
|
||||||
|
"keybind": "5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"action": "rebootToUefi",
|
||||||
|
"command": "",
|
||||||
|
"countdownEnabled": true,
|
||||||
|
"enabled": false,
|
||||||
|
"keybind": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"action": "userspaceReboot",
|
||||||
|
"command": "",
|
||||||
|
"countdownEnabled": true,
|
||||||
|
"enabled": false,
|
||||||
|
"keybind": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"showHeader": true,
|
||||||
|
"showKeybinds": true
|
||||||
|
},
|
||||||
|
"settingsVersion": 59,
|
||||||
|
"systemMonitor": {
|
||||||
|
"batteryCriticalThreshold": 5,
|
||||||
|
"batteryWarningThreshold": 20,
|
||||||
|
"cpuCriticalThreshold": 90,
|
||||||
|
"cpuWarningThreshold": 80,
|
||||||
|
"criticalColor": "",
|
||||||
|
"diskAvailCriticalThreshold": 10,
|
||||||
|
"diskAvailWarningThreshold": 20,
|
||||||
|
"diskCriticalThreshold": 90,
|
||||||
|
"diskWarningThreshold": 80,
|
||||||
|
"enableDgpuMonitoring": true,
|
||||||
|
"externalMonitor": "resources || missioncenter || jdsystemmonitor || corestats || system-monitoring-center || gnome-system-monitor || plasma-systemmonitor || mate-system-monitor || ukui-system-monitor || deepin-system-monitor || pantheon-system-monitor",
|
||||||
|
"gpuCriticalThreshold": 90,
|
||||||
|
"gpuWarningThreshold": 80,
|
||||||
|
"memCriticalThreshold": 90,
|
||||||
|
"memWarningThreshold": 80,
|
||||||
|
"swapCriticalThreshold": 90,
|
||||||
|
"swapWarningThreshold": 80,
|
||||||
|
"tempCriticalThreshold": 90,
|
||||||
|
"tempWarningThreshold": 80,
|
||||||
|
"useCustomColors": false,
|
||||||
|
"warningColor": ""
|
||||||
|
},
|
||||||
|
"templates": {
|
||||||
|
"activeTemplates": [
|
||||||
|
],
|
||||||
|
"enableUserTheming": false
|
||||||
|
},
|
||||||
|
"ui": {
|
||||||
|
"boxBorderEnabled": false,
|
||||||
|
"fontDefault": "Sans Serif",
|
||||||
|
"fontDefaultScale": 1,
|
||||||
|
"fontFixed": "monospace",
|
||||||
|
"fontFixedScale": 1,
|
||||||
|
"panelBackgroundOpacity": 0.93,
|
||||||
|
"panelsAttachedToBar": true,
|
||||||
|
"scrollbarAlwaysVisible": true,
|
||||||
|
"settingsPanelMode": "attached",
|
||||||
|
"settingsPanelSideBarCardStyle": false,
|
||||||
|
"tooltipsEnabled": true,
|
||||||
|
"translucentWidgets": false
|
||||||
|
},
|
||||||
|
"wallpaper": {
|
||||||
|
"automationEnabled": false,
|
||||||
|
"directory": "/home/cianh/Pictures/Wallpapers",
|
||||||
|
"enableMultiMonitorDirectories": false,
|
||||||
|
"enabled": true,
|
||||||
|
"favorites": [
|
||||||
|
],
|
||||||
|
"fillColor": "#000000",
|
||||||
|
"fillMode": "crop",
|
||||||
|
"hideWallpaperFilenames": false,
|
||||||
|
"linkLightAndDarkWallpapers": true,
|
||||||
|
"monitorDirectories": [
|
||||||
|
],
|
||||||
|
"overviewBlur": 0.4,
|
||||||
|
"overviewEnabled": false,
|
||||||
|
"overviewTint": 0.6,
|
||||||
|
"panelPosition": "follow_bar",
|
||||||
|
"randomIntervalSec": 300,
|
||||||
|
"setWallpaperOnAllMonitors": true,
|
||||||
|
"showHiddenFiles": false,
|
||||||
|
"skipStartupTransition": false,
|
||||||
|
"solidColor": "#1a1a2e",
|
||||||
|
"sortOrder": "name",
|
||||||
|
"transitionDuration": 1500,
|
||||||
|
"transitionEdgeSmoothness": 0.05,
|
||||||
|
"transitionType": [
|
||||||
|
"fade",
|
||||||
|
"disc",
|
||||||
|
"stripes",
|
||||||
|
"wipe",
|
||||||
|
"pixelate",
|
||||||
|
"honeycomb"
|
||||||
|
],
|
||||||
|
"useOriginalImages": false,
|
||||||
|
"useSolidColor": false,
|
||||||
|
"useWallhaven": true,
|
||||||
|
"viewMode": "single",
|
||||||
|
"wallhavenApiKey": "",
|
||||||
|
"wallhavenCategories": "111",
|
||||||
|
"wallhavenOrder": "desc",
|
||||||
|
"wallhavenPurity": "100",
|
||||||
|
"wallhavenQuery": "cyberpunk",
|
||||||
|
"wallhavenRatios": "",
|
||||||
|
"wallhavenResolutionHeight": "",
|
||||||
|
"wallhavenResolutionMode": "atleast",
|
||||||
|
"wallhavenResolutionWidth": "",
|
||||||
|
"wallhavenSorting": "relevance",
|
||||||
|
"wallpaperChangeMode": "random"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
# Source this in your ~/.config/nushell/config.nu
|
|
||||||
$env.ATUIN_SESSION = (atuin uuid)
|
|
||||||
hide-env -i ATUIN_HISTORY_ID
|
|
||||||
|
|
||||||
# Magic token to make sure we don't record commands run by keybindings
|
|
||||||
let ATUIN_KEYBINDING_TOKEN = $"# (random uuid)"
|
|
||||||
|
|
||||||
let _atuin_pre_execution = {||
|
|
||||||
if ($nu | get -o history-enabled) == false {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
let cmd = (commandline)
|
|
||||||
if ($cmd | is-empty) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if not ($cmd | str starts-with $ATUIN_KEYBINDING_TOKEN) {
|
|
||||||
$env.ATUIN_HISTORY_ID = (atuin history start -- $cmd)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let _atuin_pre_prompt = {||
|
|
||||||
let last_exit = $env.LAST_EXIT_CODE
|
|
||||||
if 'ATUIN_HISTORY_ID' not-in $env {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
with-env { ATUIN_LOG: error } {
|
|
||||||
do { atuin history end $'--exit=($last_exit)' -- $env.ATUIN_HISTORY_ID } | complete
|
|
||||||
|
|
||||||
}
|
|
||||||
hide-env ATUIN_HISTORY_ID
|
|
||||||
}
|
|
||||||
|
|
||||||
def _atuin_search_cmd [...flags: string] {
|
|
||||||
let nu_version = ($env.NU_VERSION | split row '.' | each { || into int })
|
|
||||||
[
|
|
||||||
$ATUIN_KEYBINDING_TOKEN,
|
|
||||||
([
|
|
||||||
`with-env { ATUIN_LOG: error, ATUIN_QUERY: (commandline) } {`,
|
|
||||||
(if $nu_version.0 <= 0 and $nu_version.1 <= 90 { 'commandline' } else { 'commandline edit' }),
|
|
||||||
(if $nu_version.1 >= 92 { '(run-external atuin search' } else { '(run-external --redirect-stderr atuin search' }),
|
|
||||||
($flags | append [--interactive] | each {|e| $'"($e)"'}),
|
|
||||||
(if $nu_version.1 >= 92 { ' e>| str trim)' } else {' | complete | $in.stderr | str substring ..-1)'}),
|
|
||||||
`}`,
|
|
||||||
] | flatten | str join ' '),
|
|
||||||
] | str join "\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
$env.config = ($env | default {} config).config
|
|
||||||
$env.config = ($env.config | default {} hooks)
|
|
||||||
$env.config = (
|
|
||||||
$env.config | upsert hooks (
|
|
||||||
$env.config.hooks
|
|
||||||
| upsert pre_execution (
|
|
||||||
$env.config.hooks | get -o pre_execution | default [] | append $_atuin_pre_execution)
|
|
||||||
| upsert pre_prompt (
|
|
||||||
$env.config.hooks | get -o pre_prompt | default [] | append $_atuin_pre_prompt)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
$env.config = ($env.config | default [] keybindings)
|
|
||||||
|
|
||||||
$env.config = (
|
|
||||||
$env.config | upsert keybindings (
|
|
||||||
$env.config.keybindings
|
|
||||||
| append {
|
|
||||||
name: atuin
|
|
||||||
modifier: control
|
|
||||||
keycode: char_r
|
|
||||||
mode: [vi_insert, vi_normal, emacs]
|
|
||||||
event: { send: executehostcommand cmd: (_atuin_search_cmd) }
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
||||||
@@ -1,158 +0,0 @@
|
|||||||
source ../nu_scripts/custom-completions/auto-generate/completions/7z.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/adduser.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/apk.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/apk.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/apt-get.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/aptitude.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/base64.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/btrfs.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/conda.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/conjure.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/convert.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/dconf.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/dd.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/diff.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/dmesg.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/dnf.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/feh.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/ffmpeg.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/flatpak.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/fzf.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/gcc.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/gdb.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/go.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/grep.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/gunzip.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/hugo.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/iex.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/ip.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/journalctl.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/jq.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/julia.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/kill.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/killall.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/ln.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/localectl.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/lsblk.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/lua.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/lz4.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/make.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/makepkg.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/md5sum.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/micro.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/minikube.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/mkdocs.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/mkfs.fat.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/mkfs.vfat.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/mkinitcpio.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/mkpasswd.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/modinfo.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/modprobe.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/mosh.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/mount.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/ncat.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/networkctl.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/nl.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/nm.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/nmap.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/nmcli.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/nvim.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/objdump.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/optimus-manager.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/pacaur.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/pacman-color.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/pacman-key.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/pacman.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/patch.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/pgrep.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/ping.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/pinky.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/poweroff.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/ps.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/python.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/python3.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/readlink.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/realpath.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/resolvectl.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/rfkill.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/rmdir.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/rmmod.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/rsync.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/rustc.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/sbcl.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/scp.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/setfacl.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/setsid.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/sftp.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/sha1sum.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/sha224sum.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/sha256sum.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/sha384sum.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/sha512sum.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/ssh.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/sshfs.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/strace.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/stream.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/su.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/sudo.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/systemctl.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/test.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/time.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/timedatectl.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/timeout.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/top.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/tracepath.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/traceroute.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/udevadm.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/umount.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/unexpand.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/unlz4.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/unzip.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/unzstd.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/useradd.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/userdbctl.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/usermod.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/w.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/wget.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/whatis.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/who.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/wine.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/xargs.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/xdg-mime.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/xinput.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/xz.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/zip.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/zstd.nu
|
|
||||||
source ../nu_scripts/custom-completions/auto-generate/completions/zypper.nu
|
|
||||||
source ../nu_scripts/custom-completions/bat/bat-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/btm/btm-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/cargo/cargo-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/curl/curl-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/docker/docker-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/flutter/flutter-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/gh/gh-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/git/git-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/glow/glow-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/jj/jj-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/just/just-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/man/man-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/mix/mix-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/mvn/mvn-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/nano/nano-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/nix/nix-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/podman/podman-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/poetry/poetry-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/pre-commit/pre-commit-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/pytest/pytest-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/pytest/pytest-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/rg/rg-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/rustup/rustup-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/scoop/scoop-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/ssh/ssh-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/tar/tar-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/tealdeer/tldr-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/uv/uv-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/vscode/vscode-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/winget/winget-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/zellij/zellij-completions.nu
|
|
||||||
source ../nu_scripts/custom-completions/zoxide/zoxide-completions.nu
|
|
||||||
@@ -1,289 +0,0 @@
|
|||||||
module completions {
|
|
||||||
|
|
||||||
# Unofficial Bitwarden CLI
|
|
||||||
export extern rbw [
|
|
||||||
--help(-h) # Print help
|
|
||||||
--version(-V) # Print version
|
|
||||||
]
|
|
||||||
|
|
||||||
# Get or set configuration options
|
|
||||||
export extern "rbw config" [
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# Show the values of all configuration settings
|
|
||||||
export extern "rbw config show" [
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# Set a configuration option
|
|
||||||
export extern "rbw config set" [
|
|
||||||
key: string # Configuration key to set
|
|
||||||
value: string # Value to set the configuration option to
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# Reset a configuration option to its default
|
|
||||||
export extern "rbw config unset" [
|
|
||||||
key: string # Configuration key to unset
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# Print this message or the help of the given subcommand(s)
|
|
||||||
export extern "rbw config help" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Show the values of all configuration settings
|
|
||||||
export extern "rbw config help show" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Set a configuration option
|
|
||||||
export extern "rbw config help set" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Reset a configuration option to its default
|
|
||||||
export extern "rbw config help unset" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Print this message or the help of the given subcommand(s)
|
|
||||||
export extern "rbw config help help" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Register this device with the Bitwarden server
|
|
||||||
export extern "rbw register" [
|
|
||||||
--help(-h) # Print help (see more with '--help')
|
|
||||||
]
|
|
||||||
|
|
||||||
# Log in to the Bitwarden server
|
|
||||||
export extern "rbw login" [
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# Unlock the local Bitwarden database
|
|
||||||
export extern "rbw unlock" [
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# Check if the local Bitwarden database is unlocked
|
|
||||||
export extern "rbw unlocked" [
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# Update the local copy of the Bitwarden database
|
|
||||||
export extern "rbw sync" [
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# List all entries in the local Bitwarden database
|
|
||||||
export extern "rbw list" [
|
|
||||||
--fields: string # Fields to display. Available options are id, name, user, folder. Multiple fields will be separated by tabs.
|
|
||||||
--raw # Display output as JSON
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# Display the password for a given entry
|
|
||||||
export extern "rbw get" [
|
|
||||||
needle: string # Name, URI or UUID of the entry to display
|
|
||||||
user?: string # Username of the entry to display
|
|
||||||
--folder: string # Folder name to search in
|
|
||||||
--ignorecase(-i) # Ignore case
|
|
||||||
--field(-f): string # Field to get
|
|
||||||
--full # Display the notes in addition to the password
|
|
||||||
--raw # Display output as JSON
|
|
||||||
--clipboard(-c) # Copy result to clipboard
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# Search for entries
|
|
||||||
export extern "rbw search" [
|
|
||||||
term: string # Search term to locate entries
|
|
||||||
--fields: string # Fields to display. Available options are id, name, user, folder. Multiple fields will be separated by tabs.
|
|
||||||
--folder: string # Folder name to search in
|
|
||||||
--raw # Display output as JSON
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# Display the authenticator code for a given entry
|
|
||||||
export extern "rbw code" [
|
|
||||||
needle: string # Name, URI or UUID of the entry to display
|
|
||||||
user?: string # Username of the entry to display
|
|
||||||
--folder: string # Folder name to search in
|
|
||||||
--ignorecase(-i) # Ignore case
|
|
||||||
--clipboard # Copy result to clipboard
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# Add a new password to the database
|
|
||||||
export extern "rbw add" [
|
|
||||||
name: string # Name of the password entry
|
|
||||||
user?: string # Username for the password entry
|
|
||||||
--uri: string # URI for the password entry
|
|
||||||
--folder: string # Folder for the password entry
|
|
||||||
--help(-h) # Print help (see more with '--help')
|
|
||||||
]
|
|
||||||
|
|
||||||
# Generate a new password
|
|
||||||
export extern "rbw generate" [
|
|
||||||
len: string # Length of the password to generate
|
|
||||||
name?: string # Name of the password entry
|
|
||||||
user?: string # Username for the password entry
|
|
||||||
--uri: string # URI for the password entry
|
|
||||||
--folder: string # Folder for the password entry
|
|
||||||
--no-symbols # Generate a password with no special characters
|
|
||||||
--only-numbers # Generate a password consisting of only numbers
|
|
||||||
--nonconfusables # Generate a password without visually similar characters (useful for passwords intended to be written down)
|
|
||||||
--diceware # Generate a password of multiple dictionary words chosen from the EFF word list. The len parameter for this option will set the number of words to generate, rather than characters.
|
|
||||||
--help(-h) # Print help (see more with '--help')
|
|
||||||
]
|
|
||||||
|
|
||||||
# Modify an existing password
|
|
||||||
export extern "rbw edit" [
|
|
||||||
needle: string # Name, URI or UUID of the entry to display
|
|
||||||
user?: string # Username of the entry to display
|
|
||||||
--folder: string # Folder name to search in
|
|
||||||
--ignorecase(-i) # Ignore case
|
|
||||||
--help(-h) # Print help (see more with '--help')
|
|
||||||
]
|
|
||||||
|
|
||||||
# Remove a given entry
|
|
||||||
export extern "rbw remove" [
|
|
||||||
needle: string # Name, URI or UUID of the entry to display
|
|
||||||
user?: string # Username of the entry to display
|
|
||||||
--folder: string # Folder name to search in
|
|
||||||
--ignorecase(-i) # Ignore case
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# View the password history for a given entry
|
|
||||||
export extern "rbw history" [
|
|
||||||
needle: string # Name, URI or UUID of the entry to display
|
|
||||||
user?: string # Username of the entry to display
|
|
||||||
--folder: string # Folder name to search in
|
|
||||||
--ignorecase(-i) # Ignore case
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# Lock the password database
|
|
||||||
export extern "rbw lock" [
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# Remove the local copy of the password database
|
|
||||||
export extern "rbw purge" [
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# Terminate the background agent
|
|
||||||
export extern "rbw stop-agent" [
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
def "nu-complete rbw gen-completions shell" [] {
|
|
||||||
[ "bash" "zsh" "fish" "powershell" "elvish" "nushell" "fig" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Generate completion script for the given shell
|
|
||||||
export extern "rbw gen-completions" [
|
|
||||||
shell: string@"nu-complete rbw gen-completions shell"
|
|
||||||
--help(-h) # Print help
|
|
||||||
]
|
|
||||||
|
|
||||||
# Print this message or the help of the given subcommand(s)
|
|
||||||
export extern "rbw help" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Get or set configuration options
|
|
||||||
export extern "rbw help config" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Show the values of all configuration settings
|
|
||||||
export extern "rbw help config show" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Set a configuration option
|
|
||||||
export extern "rbw help config set" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Reset a configuration option to its default
|
|
||||||
export extern "rbw help config unset" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Register this device with the Bitwarden server
|
|
||||||
export extern "rbw help register" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Log in to the Bitwarden server
|
|
||||||
export extern "rbw help login" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Unlock the local Bitwarden database
|
|
||||||
export extern "rbw help unlock" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Check if the local Bitwarden database is unlocked
|
|
||||||
export extern "rbw help unlocked" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Update the local copy of the Bitwarden database
|
|
||||||
export extern "rbw help sync" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# List all entries in the local Bitwarden database
|
|
||||||
export extern "rbw help list" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Display the password for a given entry
|
|
||||||
export extern "rbw help get" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Search for entries
|
|
||||||
export extern "rbw help search" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Display the authenticator code for a given entry
|
|
||||||
export extern "rbw help code" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Add a new password to the database
|
|
||||||
export extern "rbw help add" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Generate a new password
|
|
||||||
export extern "rbw help generate" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Modify an existing password
|
|
||||||
export extern "rbw help edit" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Remove a given entry
|
|
||||||
export extern "rbw help remove" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# View the password history for a given entry
|
|
||||||
export extern "rbw help history" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Lock the password database
|
|
||||||
export extern "rbw help lock" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Remove the local copy of the password database
|
|
||||||
export extern "rbw help purge" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Terminate the background agent
|
|
||||||
export extern "rbw help stop-agent" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Generate completion script for the given shell
|
|
||||||
export extern "rbw help gen-completions" [
|
|
||||||
]
|
|
||||||
|
|
||||||
# Print this message or the help of the given subcommand(s)
|
|
||||||
export extern "rbw help help" [
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
export use completions *
|
|
||||||
@@ -7,9 +7,12 @@ $env.config = (
|
|||||||
)
|
)
|
||||||
# Initialise the plugins
|
# Initialise the plugins
|
||||||
source nu_scripts.nu
|
source nu_scripts.nu
|
||||||
# initialise the completion plugins
|
# initialise the external plugins
|
||||||
source completions/atuin.nu
|
source integrations/starship.nu
|
||||||
source completions/rbw.nu
|
source integrations/zoxide.nu
|
||||||
source completions/nu_scripts.nu
|
source integrations/atuin.nu
|
||||||
|
source integrations/rip.nu
|
||||||
# Finally, we run a system info fetch
|
# Finally, we run a system info fetch
|
||||||
sysfetch
|
if not (in-devenv?) {
|
||||||
|
sysfetch
|
||||||
|
}
|
||||||
|
|||||||
@@ -8,6 +8,5 @@ $env.config = (
|
|||||||
# Initialise the plugins
|
# Initialise the plugins
|
||||||
source nu_scripts.nu
|
source nu_scripts.nu
|
||||||
# Finally, initialise the completion plugins
|
# Finally, initialise the completion plugins
|
||||||
source completions/atuin.nu
|
source integrations/atuin.nu
|
||||||
source completions/rbw.nu
|
source integrations/rbw.nu
|
||||||
source completions/nu_scripts.nu
|
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
# The default config record. This is where much of your global configuration is setup.
|
# The default config record. This is where much of your global configuration is setup.
|
||||||
export def main [] {
|
export def main [] {
|
||||||
|
let carapace_completer = {|spans|
|
||||||
|
carapace $spans.0 nushell ...$spans | from json
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
show_banner: true # true or false to enable or disable the welcome banner at startup
|
show_banner: true # true or false to enable or disable the welcome banner at startup
|
||||||
|
|
||||||
@@ -68,7 +72,7 @@ export def main [] {
|
|||||||
external: {
|
external: {
|
||||||
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow
|
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow
|
||||||
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
|
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
|
||||||
completer: null # check 'carapace_completer' above as an example
|
completer: $carapace_completer # check 'carapace_completer' above as an example
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,25 +2,13 @@
|
|||||||
#
|
#
|
||||||
# version = "0.89.0"
|
# version = "0.89.0"
|
||||||
|
|
||||||
|
# Attache starship to the shell
|
||||||
|
source integrations/starship.nu
|
||||||
use prompt.nu *
|
use prompt.nu *
|
||||||
|
|
||||||
# Use nushell functions to define your right and left prompt
|
|
||||||
$env.STARSHIP_SHELL = "nu"
|
|
||||||
$env.PROMPT_COMMAND = {|| create_left_prompt }
|
|
||||||
$env.PROMPT_COMMAND_RIGHT = {|| create_right_prompt }
|
|
||||||
|
|
||||||
# Variables that represent the state of the prompt
|
|
||||||
$env.PROMPT_INDICATOR = {|| "" }
|
|
||||||
$env.PROMPT_INDICATOR_VI_INSERT = {|| ": " }
|
$env.PROMPT_INDICATOR_VI_INSERT = {|| ": " }
|
||||||
$env.PROMPT_INDICATOR_VI_NORMAL = {|| "> " }
|
$env.PROMPT_INDICATOR_VI_NORMAL = {|| "> " }
|
||||||
$env.PROMPT_MULTILINE_INDICATOR = {|| create_continuation_prompt }
|
|
||||||
|
|
||||||
$env.TRANSIENT_PROMPT_COMMAND = {|| create_transient_prompt_left }
|
$env.TRANSIENT_PROMPT_COMMAND = {|| create_transient_prompt_left }
|
||||||
$env.TRANSIENT_PROMPT_INDICATOR = {|| create_transient_prompt_indicator }
|
$env.TRANSIENT_PROMPT_INDICATOR = {|| create_transient_prompt_indicator }
|
||||||
# $env.TRANSIENT_PROMPT_INDICATOR_VI_INSERT = {|| "" }
|
|
||||||
# $env.TRANSIENT_PROMPT_INDICATOR_VI_NORMAL = {|| "" }
|
|
||||||
# $env.TRANSIENT_PROMPT_MULTILINE_INDICATOR = {|| "" }
|
|
||||||
# $env.TRANSIENT_PROMPT_COMMAND_RIGHT = {|| "" }
|
|
||||||
|
|
||||||
# Specifies how environment variables are:
|
# Specifies how environment variables are:
|
||||||
# - converted from a string to a value on Nushell startup (from_string)
|
# - converted from a string to a value on Nushell startup (from_string)
|
||||||
@@ -49,6 +37,9 @@ $env.NU_PLUGIN_DIRS = [
|
|||||||
($nu.default-config-dir | path join "plugins"), # add <nushell-config-dir>/plugins
|
($nu.default-config-dir | path join "plugins"), # add <nushell-config-dir>/plugins
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# Next, we should attach our carapace config variables
|
||||||
|
$env.CARAPACE_BRIDGES = "zsh,fish,bash,inshellisense"
|
||||||
|
|
||||||
# Personal env vars
|
# Personal env vars
|
||||||
$env.EDITOR = "nvim"
|
$env.EDITOR = "nvim"
|
||||||
$env.GIT_EDITOR = "nvim"
|
$env.GIT_EDITOR = "nvim"
|
||||||
|
|||||||
@@ -0,0 +1,110 @@
|
|||||||
|
# Source this in your ~/.config/nushell/config.nu
|
||||||
|
# minimum supported version = 0.93.0
|
||||||
|
module compat {
|
||||||
|
export def --wrapped "random uuid -v 7" [...rest] { atuin uuid }
|
||||||
|
}
|
||||||
|
use (if not (
|
||||||
|
(version).major > 0 or
|
||||||
|
(version).minor >= 103
|
||||||
|
) { "compat" }) *
|
||||||
|
|
||||||
|
if 'ATUIN_SESSION' not-in $env or ('ATUIN_SHLVL' not-in $env) or ($env.ATUIN_SHLVL != ($env.SHLVL? | default "")) {
|
||||||
|
$env.ATUIN_SESSION = (random uuid -v 7 | str replace -a "-" "")
|
||||||
|
$env.ATUIN_SHLVL = ($env.SHLVL? | default "")
|
||||||
|
}
|
||||||
|
hide-env -i ATUIN_HISTORY_ID
|
||||||
|
|
||||||
|
# Magic token to make sure we don't record commands run by keybindings
|
||||||
|
let ATUIN_KEYBINDING_TOKEN = $"# (random uuid)"
|
||||||
|
|
||||||
|
let _atuin_pre_execution = {||
|
||||||
|
if ($nu | get history-enabled?) == false {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let cmd = (commandline)
|
||||||
|
if ($cmd | is-empty) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if not ($cmd | str starts-with $ATUIN_KEYBINDING_TOKEN) {
|
||||||
|
$env.ATUIN_HISTORY_ID = (atuin history start -- $cmd | complete | get stdout | str trim)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let _atuin_pre_prompt = {||
|
||||||
|
let last_exit = $env.LAST_EXIT_CODE
|
||||||
|
if 'ATUIN_HISTORY_ID' not-in $env {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
with-env { ATUIN_LOG: error } {
|
||||||
|
if (version).minor >= 104 or (version).major > 0 {
|
||||||
|
job spawn {
|
||||||
|
^atuin history end $'--exit=($env.LAST_EXIT_CODE)' -- $env.ATUIN_HISTORY_ID | complete
|
||||||
|
} | ignore
|
||||||
|
} else {
|
||||||
|
do { atuin history end $'--exit=($last_exit)' -- $env.ATUIN_HISTORY_ID } | complete
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
hide-env ATUIN_HISTORY_ID
|
||||||
|
}
|
||||||
|
|
||||||
|
def _atuin_search_cmd [...flags: string] {
|
||||||
|
if (version).minor >= 106 or (version).major > 0 {
|
||||||
|
[
|
||||||
|
$ATUIN_KEYBINDING_TOKEN,
|
||||||
|
([
|
||||||
|
`with-env { ATUIN_LOG: error, ATUIN_QUERY: (commandline), ATUIN_SHELL: nu } {`,
|
||||||
|
([
|
||||||
|
'let output = (run-external atuin search',
|
||||||
|
($flags | append [--interactive] | each {|e| $'"($e)"'}),
|
||||||
|
'e>| str trim)',
|
||||||
|
] | flatten | str join ' '),
|
||||||
|
'if ($output | str starts-with "__atuin_accept__:") {',
|
||||||
|
'commandline edit --accept ($output | str replace "__atuin_accept__:" "")',
|
||||||
|
'} else {',
|
||||||
|
'commandline edit $output',
|
||||||
|
'}',
|
||||||
|
`}`,
|
||||||
|
] | flatten | str join "\n"),
|
||||||
|
]
|
||||||
|
} else {
|
||||||
|
[
|
||||||
|
$ATUIN_KEYBINDING_TOKEN,
|
||||||
|
([
|
||||||
|
`with-env { ATUIN_LOG: error, ATUIN_QUERY: (commandline) } {`,
|
||||||
|
'commandline edit',
|
||||||
|
'(run-external atuin search',
|
||||||
|
($flags | append [--interactive] | each {|e| $'"($e)"'}),
|
||||||
|
' e>| str trim)',
|
||||||
|
`}`,
|
||||||
|
] | flatten | str join ' '),
|
||||||
|
]
|
||||||
|
} | str join "\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
$env.config = ($env | default {} config).config
|
||||||
|
$env.config = ($env.config | default {} hooks)
|
||||||
|
$env.config = (
|
||||||
|
$env.config | upsert hooks (
|
||||||
|
$env.config.hooks
|
||||||
|
| upsert pre_execution (
|
||||||
|
$env.config.hooks | get pre_execution? | default [] | append $_atuin_pre_execution)
|
||||||
|
| upsert pre_prompt (
|
||||||
|
$env.config.hooks | get pre_prompt? | default [] | append $_atuin_pre_prompt)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
$env.config = ($env.config | default [] keybindings)
|
||||||
|
|
||||||
|
$env.config = (
|
||||||
|
$env.config | upsert keybindings (
|
||||||
|
$env.config.keybindings
|
||||||
|
| append {
|
||||||
|
name: atuin
|
||||||
|
modifier: control
|
||||||
|
keycode: char_r
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: executehostcommand cmd: (_atuin_search_cmd) }
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
module completions {
|
||||||
|
|
||||||
|
# rip: a safe and ergonomic alternative to rm
|
||||||
|
export extern rip [
|
||||||
|
...targets: path # Files and directories to remove
|
||||||
|
--graveyard: path # Directory where deleted files rest
|
||||||
|
--decompose(-d) # Permanently deletes the graveyard
|
||||||
|
--seance(-s) # Prints files that were deleted in the current directory
|
||||||
|
--unbury(-u) # Restore the specified files or the last file if none are specified
|
||||||
|
--inspect(-i) # Print some info about FILES before burying
|
||||||
|
--force(-f) # Non-interactive mode
|
||||||
|
--help(-h) # Print help
|
||||||
|
--version(-V) # Print version
|
||||||
|
]
|
||||||
|
|
||||||
|
# Generate shell completions file
|
||||||
|
export extern "rip completions" [
|
||||||
|
shell: string # The shell to generate completions for
|
||||||
|
--help(-h) # Print help
|
||||||
|
]
|
||||||
|
|
||||||
|
# Print the graveyard path
|
||||||
|
export extern "rip graveyard" [
|
||||||
|
--seance(-s) # Get the graveyard subdirectory of the current directory
|
||||||
|
--help(-h) # Print help
|
||||||
|
]
|
||||||
|
|
||||||
|
# Print this message or the help of the given subcommand(s)
|
||||||
|
export extern "rip help" [
|
||||||
|
]
|
||||||
|
|
||||||
|
# Generate shell completions file
|
||||||
|
export extern "rip help completions" [
|
||||||
|
]
|
||||||
|
|
||||||
|
# Print the graveyard path
|
||||||
|
export extern "rip help graveyard" [
|
||||||
|
]
|
||||||
|
|
||||||
|
# Print this message or the help of the given subcommand(s)
|
||||||
|
export extern "rip help help" [
|
||||||
|
]
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export use completions *
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
# this file is both a valid
|
||||||
|
# - overlay which can be loaded with `overlay use starship.nu`
|
||||||
|
# - module which can be used with `use starship.nu`
|
||||||
|
# - script which can be used with `source starship.nu`
|
||||||
|
export-env { $env.STARSHIP_SHELL = "nu"; load-env {
|
||||||
|
STARSHIP_SESSION_KEY: (random chars -l 16)
|
||||||
|
PROMPT_MULTILINE_INDICATOR: (
|
||||||
|
^starship prompt --continuation
|
||||||
|
)
|
||||||
|
|
||||||
|
# Does not play well with default character module.
|
||||||
|
# TODO: Also Use starship vi mode indicators?
|
||||||
|
PROMPT_INDICATOR: ""
|
||||||
|
|
||||||
|
PROMPT_COMMAND: {||
|
||||||
|
(
|
||||||
|
# The initial value of `$env.CMD_DURATION_MS` is always `0823`, which is an official setting.
|
||||||
|
# See https://github.com/nushell/nushell/discussions/6402#discussioncomment-3466687.
|
||||||
|
let cmd_duration = if $env.CMD_DURATION_MS == "0823" { 0 } else { $env.CMD_DURATION_MS };
|
||||||
|
^starship prompt
|
||||||
|
--cmd-duration $cmd_duration
|
||||||
|
$"--status=($env.LAST_EXIT_CODE)"
|
||||||
|
--terminal-width (term size).columns
|
||||||
|
...(
|
||||||
|
if (which "job list" | where type == built-in | is-not-empty) {
|
||||||
|
["--jobs", (job list | length)]
|
||||||
|
} else {
|
||||||
|
[]
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
config: ($env.config? | default {} | merge {
|
||||||
|
render_right_prompt_on_last_line: true
|
||||||
|
})
|
||||||
|
|
||||||
|
PROMPT_COMMAND_RIGHT: {||
|
||||||
|
(
|
||||||
|
# The initial value of `$env.CMD_DURATION_MS` is always `0823`, which is an official setting.
|
||||||
|
# See https://github.com/nushell/nushell/discussions/6402#discussioncomment-3466687.
|
||||||
|
let cmd_duration = if $env.CMD_DURATION_MS == "0823" { 0 } else { $env.CMD_DURATION_MS };
|
||||||
|
^starship prompt
|
||||||
|
--right
|
||||||
|
--cmd-duration $cmd_duration
|
||||||
|
$"--status=($env.LAST_EXIT_CODE)"
|
||||||
|
--terminal-width (term size).columns
|
||||||
|
...(
|
||||||
|
if (which "job list" | where type == built-in | is-not-empty) {
|
||||||
|
["--jobs", (job list | length)]
|
||||||
|
} else {
|
||||||
|
[]
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
# Code generated by zoxide. DO NOT EDIT.
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# Hook configuration for zoxide.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Initialize hook to add new entries to the database.
|
||||||
|
export-env {
|
||||||
|
$env.config = (
|
||||||
|
$env.config?
|
||||||
|
| default {}
|
||||||
|
| upsert hooks { default {} }
|
||||||
|
| upsert hooks.env_change { default {} }
|
||||||
|
| upsert hooks.env_change.PWD { default [] }
|
||||||
|
)
|
||||||
|
let __zoxide_hooked = (
|
||||||
|
$env.config.hooks.env_change.PWD | any { try { get __zoxide_hook } catch { false } }
|
||||||
|
)
|
||||||
|
if not $__zoxide_hooked {
|
||||||
|
$env.config.hooks.env_change.PWD = ($env.config.hooks.env_change.PWD | append {
|
||||||
|
__zoxide_hook: true,
|
||||||
|
code: {|_, dir| ^zoxide add -- $dir}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# When using zoxide with --no-cmd, alias these internal functions as desired.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Jump to a directory using only keywords.
|
||||||
|
def --env --wrapped __zoxide_z [...rest: string] {
|
||||||
|
let path = match $rest {
|
||||||
|
[] => {'~'},
|
||||||
|
[ '-' ] => {'-'},
|
||||||
|
[ $arg ] if ($arg | path expand | path type) == 'dir' => {$arg}
|
||||||
|
_ => {
|
||||||
|
^zoxide query --exclude $env.PWD -- ...$rest | str trim -r -c "\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cd $path
|
||||||
|
}
|
||||||
|
|
||||||
|
# Jump to a directory using interactive search.
|
||||||
|
def --env --wrapped __zoxide_zi [...rest:string] {
|
||||||
|
cd $'(^zoxide query --interactive -- ...$rest | str trim -r -c "\n")'
|
||||||
|
}
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# Commands for zoxide. Disable these using --no-cmd.
|
||||||
|
#
|
||||||
|
|
||||||
|
alias z = __zoxide_z
|
||||||
|
alias zi = __zoxide_zi
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# Add this to your env file (find it by running `$nu.env-path` in Nushell):
|
||||||
|
#
|
||||||
|
# zoxide init nushell | save -f ~/.zoxide.nu
|
||||||
|
#
|
||||||
|
# Now, add this to the end of your config file (find it by running
|
||||||
|
# `$nu.config-path` in Nushell):
|
||||||
|
#
|
||||||
|
# source ~/.zoxide.nu
|
||||||
|
#
|
||||||
|
# Note: zoxide only supports Nushell v0.89.0+.
|
||||||
@@ -28,7 +28,7 @@ export def main [] {
|
|||||||
env_change: {
|
env_change: {
|
||||||
PWD: [
|
PWD: [
|
||||||
{|before, after| # This hook runs onefetch when the current directory is a git repository
|
{|before, after| # This hook runs onefetch when the current directory is a git repository
|
||||||
if ".git\n" in ($after | ls -a | str join) {
|
if (not (in-devenv?)) and (".git\n" in ($after | ls -a | str join)) {
|
||||||
print (^onefetch --nerd-fonts)
|
print (^onefetch --nerd-fonts)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Submodule dot_config/nushell/nu_scripts updated: cc94140f49...381eb75777
@@ -1,12 +1,8 @@
|
|||||||
source nu_scripts/modules/background_task/task.nu
|
source nu_scripts/modules/background_task/task.nu
|
||||||
source nu_scripts/modules/formats/from-cpuinfo.nu
|
source nu_scripts/modules/formats/from-cpuinfo.nu
|
||||||
source nu_scripts/modules/formats/from-dmidecode.nu
|
|
||||||
source nu_scripts/modules/formats/from-env.nu
|
source nu_scripts/modules/formats/from-env.nu
|
||||||
source nu_scripts/modules/formats/to-ini.nu
|
source nu_scripts/modules/formats/to-ini.nu
|
||||||
source nu_scripts/modules/formats/to-number-format.nu
|
source nu_scripts/modules/formats/to-number-format.nu
|
||||||
source nu_scripts/modules/network/sockets/sockets.nu
|
|
||||||
source nu_scripts/modules/network/ssh.nu
|
|
||||||
source nu_scripts/modules/nix/nix.nu
|
|
||||||
use nu_scripts/modules/nvim/mod.nu [
|
use nu_scripts/modules/nvim/mod.nu [
|
||||||
tcd,
|
tcd,
|
||||||
nvim-lua,
|
nvim-lua,
|
||||||
|
|||||||
@@ -6,18 +6,6 @@ export def was_successful [] {
|
|||||||
(get_env "LAST_EXIT_CODE") == 0
|
(get_env "LAST_EXIT_CODE") == 0
|
||||||
}
|
}
|
||||||
|
|
||||||
export def create_left_prompt [] {
|
|
||||||
^starship prompt --cmd-duration (get_env "CMD_DURATION_MS") $'--status=($env.LAST_EXIT_CODE)' --terminal-width (term size).columns
|
|
||||||
}
|
|
||||||
|
|
||||||
export def create_right_prompt [] {
|
|
||||||
^starship prompt --right --cmd-duration (get_env "CMD_DURATION_MS") $'--status=($env.LAST_EXIT_CODE)' --terminal-width (term size).columns
|
|
||||||
}
|
|
||||||
|
|
||||||
export def create_continuation_prompt [] {
|
|
||||||
^starship prompt --continuation --cmd-duration (get_env "CMD_DURATION_MS") $'--status=($env.LAST_EXIT_CODE)' --terminal-width (term size).columns
|
|
||||||
}
|
|
||||||
|
|
||||||
def parse_ms_to_human_readable [ms: string] {
|
def parse_ms_to_human_readable [ms: string] {
|
||||||
if $ms == "" {
|
if $ms == "" {
|
||||||
$ms
|
$ms
|
||||||
@@ -32,16 +20,16 @@ def parse_ms_to_human_readable [ms: string] {
|
|||||||
} else if $time_in_ms < 1000 * 60 * 60 * 24 {
|
} else if $time_in_ms < 1000 * 60 * 60 * 24 {
|
||||||
$"(($time_in_ms / (1000 * 60 * 60)) | into string --decimals 2)h"
|
$"(($time_in_ms / (1000 * 60 * 60)) | into string --decimals 2)h"
|
||||||
} else {
|
} else {
|
||||||
$"(($time_in_ms // (1000 * 60 * 60 * 24)) | into string)d/(parse_ms_to_human_readable ($time_in_ms mod (1000 * 60 * 60 * 24)))"
|
$"(($time_in_ms // (1000 * 60 * 60 * 24)) | into string)d/(parse_ms_to_human_readable ($time_in_ms mod (1000 * 60 * 60 * 24) | into string))"
|
||||||
} | into string
|
} | into string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export def create_transient_prompt_left [] {
|
export def create_transient_prompt_left [] {
|
||||||
if (was_successful) {
|
if (was_successful) {
|
||||||
$"(ansi green_bold)(ansi reset)"
|
$"(ansi green_bold)(ansi reset)"
|
||||||
} else {
|
} else {
|
||||||
$"(ansi red_bold)(ansi reset)"
|
$"(ansi red_bold)(ansi reset)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export def create_transient_prompt_indicator [] {
|
export def create_transient_prompt_indicator [] {
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ export def 'sysfetch' [] {
|
|||||||
|
|
||||||
export def 'register-plugins' [] {
|
export def 'register-plugins' [] {
|
||||||
for plugin_dir in $env.NU_PLUGIN_DIRS {
|
for plugin_dir in $env.NU_PLUGIN_DIRS {
|
||||||
for plugin_path in (ls $"($env.NU_PLUGIN_DIRS.0)/nu_plugin_*").name {
|
for plugin_path in (ls $"($plugin_dir)/nu_plugin_*").name {
|
||||||
nu -c $"register ($plugin_path)"
|
plugin add $plugin_path
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -41,7 +41,8 @@ export def 'build-plugins' [] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export def 'install-default-plugins' [] {
|
export def 'install-default-plugins' [] {
|
||||||
[ nu_plugin_inc
|
[
|
||||||
|
nu_plugin_inc
|
||||||
nu_plugin_polars
|
nu_plugin_polars
|
||||||
# nu_plugin_gstat
|
# nu_plugin_gstat
|
||||||
nu_plugin_formats
|
nu_plugin_formats
|
||||||
@@ -57,3 +58,7 @@ export def 'start-lab-session' [
|
|||||||
pueue kill $task_id
|
pueue kill $task_id
|
||||||
pueue rm $task_id
|
pueue rm $task_id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export def in-devenv? [] {
|
||||||
|
"DEVENV_RUNTIME" in $env
|
||||||
|
}
|
||||||
|
|||||||
+1
-1
Submodule dot_config/nvim updated: df9f8eb182...86f00ecb7c
@@ -1,12 +1,15 @@
|
|||||||
"$schema" = 'https://starship.rs/config-schema.json'
|
"$schema" = 'https://starship.rs/config-schema.json'
|
||||||
|
|
||||||
|
format = "$all$character$shell"
|
||||||
|
command_timeout = 2000
|
||||||
|
|
||||||
# Inserts a blank line between shell prompts
|
# Inserts a blank line between shell prompts
|
||||||
add_newline = true
|
add_newline = true
|
||||||
continuation_prompt = "[━ ](yellow)"
|
continuation_prompt = "[ ](yellow)"
|
||||||
|
|
||||||
[character]
|
[character]
|
||||||
success_symbol = "[](bold green) "
|
success_symbol = "[](bold green) "
|
||||||
error_symbol = "[](bold red) "
|
error_symbol = "[](bold red) "
|
||||||
|
|
||||||
[shell]
|
[shell]
|
||||||
disabled = false
|
disabled = false
|
||||||
@@ -21,7 +24,7 @@ powershell_indicator = "[](bold blue)"
|
|||||||
min_time = 0
|
min_time = 0
|
||||||
show_milliseconds = true
|
show_milliseconds = true
|
||||||
show_notifications = true
|
show_notifications = true
|
||||||
min_time_to_notify = 30_000
|
min_time_to_notify = 300_000
|
||||||
format = " [ $duration]($style)"
|
format = " [ $duration]($style)"
|
||||||
|
|
||||||
[hostname]
|
[hostname]
|
||||||
|
|||||||
@@ -250,7 +250,7 @@ keymap = [
|
|||||||
{ on = "}", run = "tab_swap 1", desc = "Swap current tab with next tab" },
|
{ on = "}", run = "tab_swap 1", desc = "Swap current tab with next tab" },
|
||||||
|
|
||||||
# Tasks
|
# Tasks
|
||||||
{ on = "w", run = "tasks_show", desc = "Show task manager" },
|
{ on = "w", run = "tasks:show", desc = "Show task manager" },
|
||||||
|
|
||||||
# Help
|
# Help
|
||||||
{ on = "~", run = "help", desc = "Open help" },
|
{ on = "~", run = "help", desc = "Open help" },
|
||||||
@@ -477,14 +477,14 @@ keymap = [
|
|||||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[completion]
|
[cmp]
|
||||||
|
|
||||||
keymap = [
|
keymap = [
|
||||||
{ on = "<A-c>", run = "close", desc = "Cancel completion" },
|
{ on = "<A-c>", run = "close", desc = "Cancel completion" },
|
||||||
{ on = "<Tab>", run = "close --submit", desc = "Submit the completion" },
|
{ on = "<Tab>", run = "close --submit", desc = "Submit the completion" },
|
||||||
{ on = "<Enter>", run = [
|
{ on = "<Enter>", run = [
|
||||||
"close --submit",
|
"close --submit",
|
||||||
"close_input --submit",
|
"input:close --submit",
|
||||||
], desc = "Submit the completion and input" },
|
], desc = "Submit the completion and input" },
|
||||||
|
|
||||||
{ on = "<A-k>", run = "arrow -1", desc = "Move cursor up" },
|
{ on = "<A-k>", run = "arrow -1", desc = "Move cursor up" },
|
||||||
@@ -530,18 +530,7 @@ on = "T"
|
|||||||
run = "plugin --sync max-preview"
|
run = "plugin --sync max-preview"
|
||||||
desc = "Maximize or restore preview"
|
desc = "Maximize or restore preview"
|
||||||
|
|
||||||
[[mgr.prepend_keymap]]
|
|
||||||
on = "<C-y>"
|
|
||||||
run = ["plugin wl-clipboard"]
|
|
||||||
desc = "Yank to wl-clipboard"
|
|
||||||
|
|
||||||
[[mgr.prepend_keymap]]
|
[[mgr.prepend_keymap]]
|
||||||
on = ["C"]
|
on = ["C"]
|
||||||
run = "plugin ouch"
|
run = "plugin ouch"
|
||||||
desc = "Compress with ouch"
|
desc = "Compress with ouch"
|
||||||
|
|
||||||
[opener]
|
|
||||||
extract = [
|
|
||||||
{ run = 'ouch d -y "%*"', desc = "Extract here with ouch", for = "windows" },
|
|
||||||
{ run = 'ouch d -y "$@"', desc = "Extract here with ouch", for = "unix" },
|
|
||||||
]
|
|
||||||
|
|||||||
Submodule
+1
Submodule dot_config/yazi/plugins/clipboard.yazi added at d4d19ea458
Submodule dot_config/yazi/plugins/core updated: 25918dcde9...9014ed21f3
@@ -1,7 +0,0 @@
|
|||||||
Copyright © 2024 Reledia <reledia@prontonmail.com>
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
# glow.yazi
|
|
||||||
|
|
||||||
Plugin for [Yazi](https://github.com/sxyazi/yazi) to preview markdown files with [glow](https://github.com/charmbracelet/glow). To install, run the below mentioned command:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ya pack -a Reledia/glow
|
|
||||||
```
|
|
||||||
|
|
||||||
then include it in your `yazi.toml` to use:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[plugin]
|
|
||||||
prepend_previewers = [
|
|
||||||
{ name = "*.md", run = "glow" },
|
|
||||||
]
|
|
||||||
```
|
|
||||||
|
|
||||||
Make sure you have [glow](https://github.com/charmbracelet/glow) installed, and can be found in `PATH`.
|
|
||||||
|
|
||||||
## Feature
|
|
||||||
|
|
||||||
+ You can modify line wrap in `main.lua`, the current value is 55.
|
|
||||||
+ You can press `ctrl+e` to scroll up and `ctrl+y` to scroll down the readme file in preview panel in yazi: (add this to `keymap.toml`)
|
|
||||||
```toml
|
|
||||||
prepend_keymap = [
|
|
||||||
# glow.yazi
|
|
||||||
{ on = ["<C-e>"], run = "seek 5" },
|
|
||||||
{ on = ["<C-y>"], run = "seek -5" },
|
|
||||||
]
|
|
||||||
```
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
local M = {}
|
|
||||||
|
|
||||||
function M:peek(job)
|
|
||||||
-- Set a fixed width of 50 characters for the preview
|
|
||||||
local preview_width = 55
|
|
||||||
|
|
||||||
local child = Command("glow")
|
|
||||||
:args({
|
|
||||||
"--style",
|
|
||||||
"dark",
|
|
||||||
"--width",
|
|
||||||
tostring(preview_width), -- Use fixed width instead of job.area.w
|
|
||||||
tostring(job.file.url),
|
|
||||||
})
|
|
||||||
:env("CLICOLOR_FORCE", "1")
|
|
||||||
:stdout(Command.PIPED)
|
|
||||||
:stderr(Command.PIPED)
|
|
||||||
:spawn()
|
|
||||||
|
|
||||||
if not child then
|
|
||||||
return require("code").peek(job)
|
|
||||||
end
|
|
||||||
|
|
||||||
local limit = job.area.h
|
|
||||||
local i, lines = 0, ""
|
|
||||||
repeat
|
|
||||||
local next, event = child:read_line()
|
|
||||||
if event == 1 then
|
|
||||||
return require("code").peek(job)
|
|
||||||
elseif event ~= 0 then
|
|
||||||
break
|
|
||||||
end
|
|
||||||
|
|
||||||
i = i + 1
|
|
||||||
if i > job.skip then
|
|
||||||
lines = lines .. next
|
|
||||||
end
|
|
||||||
until i >= job.skip + limit
|
|
||||||
|
|
||||||
child:start_kill()
|
|
||||||
if job.skip > 0 and i < job.skip + limit then
|
|
||||||
ya.mgr_emit("peek", {
|
|
||||||
tostring(math.max(0, i - limit)),
|
|
||||||
only_if = job.file.url,
|
|
||||||
upper_bound = true
|
|
||||||
})
|
|
||||||
else
|
|
||||||
lines = lines:gsub("\t", string.rep(" ", rt.preview.tab_size))
|
|
||||||
ya.preview_widgets(job, { ui.Text.parse(lines):area(job.area) })
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:seek(job)
|
|
||||||
local h = cx.active.current.hovered
|
|
||||||
if not h or h.url ~= job.file.url then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
ya.mgr_emit('peek', {
|
|
||||||
math.max(0, cx.active.preview.skip + job.units),
|
|
||||||
only_if = job.file.url,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
Submodule dot_config/yazi/plugins/hexyl.yazi deleted from 016a09bcc2
Submodule dot_config/yazi/plugins/ouch.yazi updated: 594b8a2b24...406ce6c13e
+1
@@ -0,0 +1 @@
|
|||||||
|
yazi-rs-plugins/piper.yazi
|
||||||
Submodule dot_config/yazi/plugins/starship.yazi updated: eca186171c...159eaba5b5
Submodule dot_config/yazi/plugins/sudo.yazi updated: 86205aa804...afd61cedbc
Submodule dot_config/yazi/plugins/wl-clipboard.yazi deleted from e9a38e47d0
Submodule
+1
Submodule dot_config/yazi/plugins/yazi-rs-plugins added at 9014ed21f3
@@ -1,2 +1,6 @@
|
|||||||
[flavor]
|
[flavor]
|
||||||
use = "tokyo-night"
|
dark = "tokyo-night"
|
||||||
|
light = "tokyo-night"
|
||||||
|
|
||||||
|
[icon]
|
||||||
|
prepend_exts = [{ name = "qmd", text = "", fg = "#75aadb" }]
|
||||||
|
|||||||
+15
-10
@@ -1,14 +1,19 @@
|
|||||||
|
[opener]
|
||||||
|
extract = [
|
||||||
|
{ run = 'ouch d -y "%*"', desc = "Extract here with ouch", for = "windows" },
|
||||||
|
{ run = 'ouch d -y "$@"', desc = "Extract here with ouch", for = "unix" },
|
||||||
|
]
|
||||||
|
|
||||||
[plugin]
|
[plugin]
|
||||||
prepend_previewers = [
|
prepend_previewers = [
|
||||||
{ name = "*.md", run = "glow" },
|
{ url = "*.md", run = "piper -- CLICOLOR_FORCE=1 glow -w=$w -s=dark \"$1\"" },
|
||||||
{ name = "*.bin", run = "hexyl" },
|
{ url = "*.bin", run = "hexyl" },
|
||||||
]
|
]
|
||||||
append_previewers = [
|
append_previewers = [
|
||||||
{ name = "*.md", run = "glow" },
|
{ url = "*.csv", run = "rich-preview" },
|
||||||
{ name = "*.csv", run = "rich-preview" },
|
{ url = "*.rst", run = "rich-preview" },
|
||||||
{ name = "*.rst", run = "rich-preview" },
|
{ url = "*.ipynb", run = "rich-preview" },
|
||||||
{ name = "*.ipynb", run = "rich-preview" },
|
{ url = "*.json", run = "rich-preview" },
|
||||||
{ name = "*.json", run = "rich-preview" },
|
|
||||||
{ mime = "application/*zip", run = "ouch" },
|
{ mime = "application/*zip", run = "ouch" },
|
||||||
{ mime = "application/x-tar", run = "ouch" },
|
{ mime = "application/x-tar", run = "ouch" },
|
||||||
{ mime = "application/x-bzip2", run = "ouch" },
|
{ mime = "application/x-bzip2", run = "ouch" },
|
||||||
@@ -16,9 +21,9 @@ append_previewers = [
|
|||||||
{ mime = "application/x-rar", run = "ouch" },
|
{ mime = "application/x-rar", run = "ouch" },
|
||||||
{ mime = "application/x-xz", run = "ouch" },
|
{ mime = "application/x-xz", run = "ouch" },
|
||||||
{ mime = "application/xz", run = "ouch" },
|
{ mime = "application/xz", run = "ouch" },
|
||||||
{ name = "*", run = "hexyl" },
|
{ url = "*", run = "piper -- hexyl --border=none --terminal-width=$w \"$1\"" },
|
||||||
]
|
]
|
||||||
prepend_fetchers = [
|
prepend_fetchers = [
|
||||||
{ id = "git", name = "*", run = "git" },
|
{ group = "git", url = "*", run = "git" },
|
||||||
{ id = "git", name = "*/", run = "git" },
|
{ group = "git", url = "*/", run = "git" },
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if [[ "$1" == "start" ]]; then
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v qs >/dev/null 2>&1; then
|
||||||
|
if [[ $# -gt 0 ]]; then
|
||||||
|
printf -v safe_args '%q ' "$@"
|
||||||
|
safe_args="${safe_args% }"
|
||||||
|
exec qs -c "noctalia-shell $safe_args"
|
||||||
|
else
|
||||||
|
exec qs -c "noctalia-shell"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
exec noctalia-shell "$@"
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user