Compare commits

...
91 Commits
Author SHA1 Message Date
Cian-H 2322e815d4 Tweaked atuin config 2026-07-30 11:50:08 +01:00
Cian-H 212ea135c7 Submodule pull 2026-07-30 11:41:23 +01:00
Cian-H a38a8baa1a Added atuin config 2026-07-30 11:18:14 +01:00
Cian-H 90f2961990 Increased command timeout for starship 2026-07-30 09:51:03 +01:00
Cian-H f8d82b990a Removed duplicate of onefetch on devenv start
Fixed typo
2026-07-30 09:46:55 +01:00
Cian-H 320438eb7e Fixed duplicate of sysfetch on devenv start 2026-07-30 09:21:41 +01:00
Cian-H 2ed9e9c413 Bump dotfiles 2026-07-27 11:52:36 +01:00
Cian-H 08575ed0c5 Fixed neovim hotpot loading 2026-07-21 15:51:22 +01:00
Cian-H 6869610bdb Added rip completions to nushell 2026-07-21 15:51:14 +01:00
Cian-H 36883000c8 Removed hardcoded path from starship.nu 2026-07-20 12:35:55 +01:00
Cian-H 00f5849fc1 submodules update 2026-07-20 11:52:12 +01:00
Cian-H 0cb9636abc Fixed atuin keybindings 2026-07-20 11:45:29 +01:00
Cian-H 355bc51a23 Tweaked starship prompt 2026-07-20 11:38:47 +01:00
Cian-H 77dc2e3582 Removed script containing deprecated calls 2026-07-17 12:54:01 +01:00
Cian-H d8c66a96d4 Migrated starship config to modern integration method 2026-07-17 12:42:39 +01:00
Cian-H 9a9c5a0c24 Added more optimised integrations 2026-07-17 11:58:24 +01:00
Cian-H f940779ae9 Updated plugin loading method 2026-07-17 11:55:36 +01:00
Cian-H ff47fc8664 Updated atuin nushell config 2026-07-17 11:55:30 +01:00
Cian-H 24836e87ce Added carapace to configuration 2026-07-17 11:49:05 +01:00
Cian-H 466517fb7f removed unnecessary depredated modules 2026-07-17 11:18:09 +01:00
Cian-H 013af9bcf1 Update nu_scripts 2026-07-16 08:22:37 +01:00
Cian-H aed382623d Updated nvim 2026-07-14 18:14:00 +01:00
Cian-H 43d19f4332 Updated nvim 2026-07-14 15:52:14 +01:00
Cian-H 67ebb6293f Updated config for nushell >=114.0 2026-07-14 14:36:07 +01:00
Cian-H 61dcc29d71 Updated configs 2026-07-14 14:02:59 +01:00
Cian-H 90152ab6ae Updated yazi plugins 2026-07-14 12:44:55 +01:00
Cian-H 01e17d26b9 Updated nvim config 2026-07-14 12:37:54 +01:00
Cian-H cc6ab15451 Nix lint 2026-07-13 19:10:13 +01:00
Cian-H 3bd6b636e0 Updated submodules 2026-07-13 13:37:54 +01:00
Cian-H f546294969 Added emacs and helix configs 2026-07-13 11:27:27 +01:00
Cian-H 191479f79a Updated submodules 2026-07-13 09:34:42 +01:00
Cian-H bff3294269 Updated noctalia plugins repo URL 2026-06-16 13:02:47 +01:00
Cian-H 5ee9b2a598 Revert "Fixed noctalia launching"
This reverts commit bdb5f7542c.
2026-06-16 12:56:57 +01:00
Cian-H bdb5f7542c Fixed noctalia launching 2026-06-16 12:15:02 +01:00
Cian-H 4dd7f550cc submodule updates 2026-06-02 23:32:04 +01:00
Cian-H 409e6ead15 deinit deprecated yazi plugins 2026-06-02 23:31:15 +01:00
Cian-H d27d8800a1 Removed deprecated yazi plugins 2026-06-02 23:22:34 +01:00
Cian-H e384089fb8 Removed wl-clipboard from yazi 2026-06-02 10:52:33 +01:00
Cian-H 700b0b595d Switched from hexyl.yazi to hexyl via piper 2026-06-02 10:41:49 +01:00
Cian-H f6774b6d39 Updated submodules 2026-06-02 10:24:47 +01:00
Cian-H 78ba202389 Fixed changed yazi config attribute 2026-06-02 10:21:40 +01:00
Cian-H 2518de3c92 Updated yazi config 2026-06-02 10:12:25 +01:00
Cian-H a68eeead4b Updated yazi config 2026-05-29 16:43:22 +01:00
Cian-H 535b5fe48b nvim update 2026-05-22 15:22:57 +01:00
Cian-H 01d87ff633 nvim treesitter updates 2026-05-22 15:09:38 +01:00
Cian-H f612da0d57 nvim updates 2026-05-20 14:30:24 +01:00
Cian-H 09438ac87b Switched tresitter provider for nvim 2026-05-20 14:26:31 +01:00
Cian-H 2c6629700d Neovim fixes 2026-05-20 14:03:28 +01:00
Cian-H 12b1519787 Added quarto specific config settings 2026-05-20 13:59:31 +01:00
Cian-H b635d1635d Nvim fix 2026-05-20 12:56:54 +01:00
Cian-H 445f492a8f Fixed nvim config 2026-05-20 12:51:59 +01:00
Cian-H ac9525ab04 Neovim treesitter update 2026-05-19 12:28:20 +01:00
Cian-H 48d06e1d07 nvim config update 2026-05-19 10:36:05 +01:00
Cian-H 5e67a8dc74 Updated other broken hyprland setting 2026-05-18 11:29:28 +01:00
Cian-H ee9dc720f7 Updated hyprland config 2026-05-18 11:20:23 +01:00
Cian-H df5f42306f Added proper systemd handshakes to hypr/niri configs 2026-05-08 00:05:13 +01:00
Cian-H ac73f0bd74 Updated neovim config 2026-05-07 13:09:58 +01:00
Cian-H 0c3f60a026 Updated noctalia settings for new audio player 2026-05-06 10:40:46 +01:00
Cian-H 104c290cab Updated hyprland and niri to use sone instead of spotify 2026-05-05 21:11:45 +01:00
Cian-H 3131dc2b05 Removed workday-progress
Moved workday-plugins
2026-04-28 13:11:33 +01:00
Cian-H edbf7712cb Added workday-progress plugin to noctalia 2026-04-28 12:33:08 +01:00
Cian-H 3c0b4bb43e Updated niri config 2026-04-23 01:24:00 +01:00
Cian-H ba3ee24e3b Shortened shutdown timer 2026-04-12 23:44:45 +01:00
Cian-H 06c27d154d Updated submodules 2026-04-12 23:19:14 +01:00
Cian-H e7d8b320a1 Removed ghost references to glow.yazi 2026-04-12 23:18:43 +01:00
Cian-H ffc16b2199 Updated UI time durations to reduce friction 2026-04-12 23:09:50 +01:00
Cian-H 578bccddfe Updated niri config 2026-04-12 23:02:23 +01:00
Cian-H f05e3bbdc6 Removed dynamically determined settings from noctalia plugin configs 2026-04-10 13:12:31 +01:00
Cian-H 4d6e29814a Added noctalia plugin settings 2026-04-10 13:05:19 +01:00
Cian-H 7ad4e33b37 Simplified hyprland config 2026-04-10 09:57:20 +01:00
Cian-H 8a191179bd Updated dotfile self-documentation 2026-04-10 09:42:02 +01:00
Cian-H 705ae17eda Another attmpt to fix noctalia launching 2026-04-09 12:24:23 +01:00
Cian-H ece4c56ce3 Changed hyprland config to use noctalia-cli 2026-04-09 10:20:46 +01:00
Cian-H 892af2f4ac Updated noctalia-cli to handle launch better 2026-04-09 10:08:24 +01:00
Cian-H a2118c9218 Added noctalia-cli wrapper for portable noctalia management 2026-04-09 09:53:53 +01:00
Cian-H b894a795d1 Updated WM configs 2026-04-09 00:50:28 +01:00
Cian-H a8f4f253af Moved completions to carapace 2026-04-08 23:08:51 +01:00
Cian-H c2ca514b2d Remove deprecated glow.yazi plugin 2026-04-08 16:22:09 +01:00
Cian-H 253ab4393a Fixed typo 2026-04-08 15:41:13 +01:00
Cian-H a02f4dabcb Re-configured to use noctalia as main shell 2026-04-08 15:33:43 +01:00
Cian-H a997e91c82 Re-configured to use noctalia as main shell 2026-04-08 13:12:40 +01:00
Cian-H a3616d95e9 Uodate yazi plugins 2026-03-03 13:43:06 +00:00
Cian-H b2a43677bb nushell updates 2026-03-03 13:29:44 +00:00
Cian-H a579237597 Remove kvantum config via dotfiles 2026-02-26 17:46:28 +00:00
Cian-H a0e232ff29 Removed smile from setup in favor of walker symbols module 2026-02-26 12:09:42 +00:00
Cian-H 23b93a55d9 Added initial-window config to ghostty 2026-02-25 12:21:40 +00:00
Cian-H b05f1979d3 UPdated ghostty config 2026-02-25 11:50:29 +00:00
Cian-H e9b74756da Submodule pulls 2026-02-25 11:24:34 +00:00
Cian-H 769522d86e Updated terminal launch command 2026-02-25 11:08:52 +00:00
Cian-H a28fa3a7bf Updated ghostty config 2026-02-25 11:04:10 +00:00
Cian-H e8f1a3ee00 Updated to use walker-obsidian-search package 2026-02-23 14:10:31 +00:00
69 changed files with 1874 additions and 6690 deletions
+18 -9
View File
@@ -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
View File
@@ -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

-2
View File
@@ -1,2 +0,0 @@
[General]
theme=KvArcTokyoNight
+208
View File
@@ -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"
+1
Submodule dot_config/emacs added at 57564ff87a
+207
View File
@@ -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
+15
View File
@@ -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
+1
Submodule dot_config/helix added at 307e95807a
-12
View File
@@ -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 -3
View File
@@ -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
View File
@@ -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"
+14 -6
View File
@@ -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
-8
View File
@@ -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)
}
}
-3
View File
@@ -1,3 +0,0 @@
module cycle_kb_layout
go 1.24.4
-1
View File
@@ -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
} }
+127
View File
@@ -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; }
}
+18
View File
@@ -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"
}
@@ -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
}
+29
View File
@@ -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
}
+1
View File
@@ -0,0 +1 @@
../plugins-repo/keybind-cheatsheet
+1
View File
@@ -0,0 +1 @@
../plugins-repo/privacy-indicator
+1
View File
@@ -0,0 +1 @@
/home/cianh/.config/nix/home-manager/core/dotfiles/dot_config/noctalia/plugins-repo/screen-toolkit
+1
View File
@@ -0,0 +1 @@
/home/cianh/.config/nix/home-manager/core/dotfiles/dot_config/noctalia/plugins-custom/workday-progress
+736
View File
@@ -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"
}
}
-73
View File
@@ -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
-289
View File
@@ -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 *
+8 -5
View File
@@ -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
}
+2 -3
View File
@@ -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
+5 -1
View File
@@ -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
} }
} }
+5 -14
View File
@@ -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"
+110
View File
@@ -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) }
}
)
)
+46
View File
@@ -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 {
[]
}
)
)
}
}}
+70
View File
@@ -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+.
+1 -1
View File
@@ -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)
} }
}, },
-4
View File
@@ -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,
+3 -15
View File
@@ -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 [] {
+8 -3
View File
@@ -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
}
+7 -4
View File
@@ -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]
+3 -14
View File
@@ -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" },
]
@@ -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
+1
View File
@@ -0,0 +1 @@
yazi-rs-plugins/piper.yazi
+5 -1
View File
@@ -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
View File
@@ -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" },
] ]
+17
View File
@@ -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
+1 -1
View File
@@ -138,7 +138,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 zsh)" eval "$(atuin init zsh --disable-up-arrow)"
fi fi
# Direnv # Direnv