Compare commits

...

2 commits

Author SHA1 Message Date
dd9a0d19f1 deleted: config/DankMaterialShell/.changelog-1.4
deleted:    config/DankMaterialShell/.firstlaunch
 	deleted:    config/DankMaterialShell/firefox.css
 	deleted:    config/DankMaterialShell/plugins/cavaVisualizer
 	deleted:    config/DankMaterialShell/plugins/dankAudioVisualizer
 	deleted:    config/DankMaterialShell/plugins/desktopCommand
 	deleted:    config/DankMaterialShell/settings.json
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-blue-dark.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-blue-light.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-blue.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-cyan-dark.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-cyan-light.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-cyan.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-dark.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-lavender-dark.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-lavender-light.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-lavender.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-light.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-mint-dark.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-mint-light.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-mint.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-pink-dark.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-pink-light.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-pink.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-salmon-dark.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-salmon-light.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/preview-salmon.svg
 	deleted:    config/DankMaterialShell/themes/peaceAndQuiet/theme.json
 	deleted:    config/DankMaterialShell/themes/zzz/theme.json
 	deleted:    config/DankMaterialShell/themes/zzz/theme1.json
 	deleted:    config/DankMaterialShell/zen.css
 	deleted:    config/scripts/niri/ru.png
 	deleted:    config/scripts/niri/us.png
2026-04-19 21:48:01 +05:00
6604f0b324 deleted: ../apps-list-zero.md
new file:   DankMaterialShell/.changelog-1.4
 	new file:   DankMaterialShell/.firstlaunch
 	new file:   DankMaterialShell/firefox.css
 	new file:   DankMaterialShell/plugins/cavaVisualizer
 	new file:   DankMaterialShell/plugins/dankAudioVisualizer
 	new file:   DankMaterialShell/plugins/desktopCommand
 	new file:   DankMaterialShell/settings.json
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-blue-dark.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-blue-light.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-blue.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-cyan-dark.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-cyan-light.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-cyan.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-dark.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-lavender-dark.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-lavender-light.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-lavender.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-light.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-mint-dark.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-mint-light.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-mint.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-pink-dark.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-pink-light.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-pink.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-salmon-dark.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-salmon-light.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-salmon.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/theme.json
 	new file:   DankMaterialShell/themes/zzz/theme.json
 	new file:   DankMaterialShell/themes/zzz/theme1.json
 	new file:   DankMaterialShell/zen.css
 	new file:   Kvantum/KvLibadwaitaDark#/KvLibadwaitaDark#.kvconfig
 	new file:   Kvantum/kvantum.kvconfig
 	new file:   aichat/config.yaml
 	modified:   btop/btop.conf
 	new file:   btop/themes/noctalia.theme
 	new file:   calcurse/conf
 	new file:   calcurse/keys
 	new file:   cava/config
 	new file:   cava/shaders/bar_spectrum.frag
 	new file:   cava/shaders/eye_of_phi.frag
 	new file:   cava/shaders/northern_lights.frag
 	new file:   cava/shaders/pass_through.vert
 	new file:   cava/shaders/spectrogram.frag
 	new file:   cava/shaders/winamp_line_style_spectrum.frag
 	new file:   cava/themes/solarized_dark
 	new file:   cava/themes/tricolor
 	new file:   fastfetch/0.01.jsonc
 	new file:   fastfetch/0.02.jsonc
 	new file:   fastfetch/color.jsonc
 	new file:   fastfetch/setts/all.jsonc
 	new file:   fastfetch/setts/archey.jsonc
 	new file:   fastfetch/setts/ci.jsonc
 	new file:   fastfetch/setts/examples/10.jsonc
 	new file:   fastfetch/setts/examples/11.jsonc
 	new file:   fastfetch/setts/examples/12.jsonc
 	new file:   fastfetch/setts/examples/13.jsonc
 	new file:   fastfetch/setts/examples/14.jsonc
 	new file:   fastfetch/setts/examples/15.jsonc
 	new file:   fastfetch/setts/examples/16.jsonc
 	new file:   fastfetch/setts/examples/17.jsonc
 	new file:   fastfetch/setts/examples/18.jsonc
 	new file:   fastfetch/setts/examples/19.jsonc
 	new file:   fastfetch/setts/examples/2.jsonc
 	new file:   fastfetch/setts/examples/20.jsonc
 	new file:   fastfetch/setts/examples/21.jsonc
 	new file:   fastfetch/setts/examples/22.jsonc
 	new file:   fastfetch/setts/examples/23.jsonc
 	new file:   fastfetch/setts/examples/24.jsonc
 	new file:   fastfetch/setts/examples/25.jsonc
 	new file:   fastfetch/setts/examples/26.jsonc
 	new file:   fastfetch/setts/examples/27.jsonc
 	new file:   fastfetch/setts/examples/28.jsonc
 	new file:   fastfetch/setts/examples/29.jsonc
 	new file:   fastfetch/setts/examples/3.jsonc
 	new file:   fastfetch/setts/examples/30.jsonc
 	new file:   fastfetch/setts/examples/4.jsonc
 	new file:   fastfetch/setts/examples/5.jsonc
 	new file:   fastfetch/setts/examples/6.jsonc
 	new file:   fastfetch/setts/examples/7.jsonc
 	new file:   fastfetch/setts/examples/8.jsonc
 	new file:   fastfetch/setts/examples/9.jsonc
 	new file:   fastfetch/setts/neofetch.jsonc
 	new file:   fastfetch/setts/paleofetch.jsonc
 	new file:   fastfetch/setts/screenfetch.jsonc
 	modified:   fish/config.fish
 	modified:   fish/fish_variables
 	new file:   fish/fish_variables2DWmNcGa9T
 	new file:   fish/functions/ffcolor.fish
 	modified:   fish/functions/fish_prompt.fish.bak
 	new file:   fish/functions/lt.fish
 	modified:   fish/functions/p.fish
 	new file:   fish/functions/tide/configure/icons.fish
 	new file:   fish/functions/vpn-debug.fish
 	modified:   fish/functions/vpn.fish
 	new file:   foot/dank-colors.ini
 	modified:   foot/foot.ini
 	new file:   fsel/config.toml
 	modified:   fuzzel/fuzzel.ini
 	modified:   hyprwave/config.conf
 	new file:   hyprwhspr/config.json
 	new file:   hyprwhspr/mic_osd.pid
 	new file:   i3/config
 	new file:   ironbar/config.json
 	new file:   ironbar/schema-v0.18.0.json
 	new file:   ironbar/scripts/pomo
 	new file:   ironbar/scripts/walker.sh
 	new file:   ironbar/style.css
 	new file:   keymap.xkb
 	new file:   kitty/dank-tabs.conf
 	new file:   kitty/dank-theme.conf
 	new file:   matugen/config.toml
 	new file:   matugen/custom3.json
 	modified:   mimeapps.list
 	modified:   mpDris2/mpDris2.conf
 	new file:   niri/animation.kdl
 	new file:   niri/bak.config.kdl
 	new file:   niri/binds.kdl
 	new file:   niri/caps
 	modified:   niri/config.kdl
 	new file:   niri/config.kdl.backup1776208575
 	new file:   niri/config.kdl.backup1776211503
 	new file:   niri/config.kdl.backup1776211623
 	new file:   niri/dms/alttab.kdl
 	new file:   niri/dms/binds.kdl
 	new file:   niri/dms/colors.kdl
 	new file:   niri/dms/cursor.kdl
 	new file:   niri/dms/layout.kdl
 	new file:   niri/dms/outputs.kdl
 	new file:   niri/dms/profiles/profile_1776211496314_g03e3q.kdl
 	new file:   niri/dms/windowrules.kdl
 	new file:   niri/dms/wpblur.kdl
 	new file:   niri/emoji.png
 	new file:   niri/executable_caps
 	new file:   niri/input.kdl
 	new file:   niri/ironbar-toggle.sh
 	new file:   niri/layer-rule.kdl
 	new file:   niri/layout.kdl
 	new file:   niri/lock.sh
 	new file:   niri/noctalia-toggle.sh
 	new file:   niri/output-pc.kdl
 	new file:   niri/spawn-at-startup.kdl
 	new file:   niri/window-rule.kdl
 	new file:   nix/nix.conf
 	modified:   nvim/lazy-lock.json
 	modified:   nvim/lazyvim.json
 	new file:   nvim/lua/plugins/dankcolors.lua
 	new file:   nvim/lua/plugins/gpanders-nvim-parinfer.lua
 	new file:   nvim/lua/plugins/tokyo-night.lua
 	new file:   nvim/lua/tokyonight.nvim
 	new file:   nwg-look/config
 	new file:   omarchy/current/background
 	new file:   omarchy/hooks/theme-set
 	new file:   omarchy/hooks/theme-set.d/00-fish.sh
 	new file:   omarchy/hooks/theme-set.d/00-fzf.sh
 	new file:   omarchy/hooks/theme-set.d/10-discord.sh
 	new file:   omarchy/hooks/theme-set.d/10-gtk.sh
 	new file:   omarchy/hooks/theme-set.d/10-qt6ct.sh
 	new file:   omarchy/hooks/theme-set.d/10-spotify.sh
 	new file:   omarchy/hooks/theme-set.d/10-superfile.sh
 	new file:   omarchy/hooks/theme-set.d/10-vicinae.sh
 	new file:   omarchy/hooks/theme-set.d/15-typora.sh
 	new file:   omarchy/hooks/theme-set.d/20-nwg-dock-hyprland.sh
 	new file:   omarchy/hooks/theme-set.d/20-zed.sh
 	new file:   omarchy/hooks/theme-set.d/30-cursor.sh
 	new file:   omarchy/hooks/theme-set.d/30-vscode.sh
 	new file:   omarchy/hooks/theme-set.d/30-windsurf.sh
 	new file:   omarchy/hooks/theme-set.d/40-cava.sh
 	new file:   omarchy/hooks/theme-set.d/40-firefox.sh
 	new file:   omarchy/hooks/theme-set.d/40-steam.sh
 	new file:   omarchy/hooks/theme-set.d/40-zen.sh
 	new file:   omarchy/hooks/theme-set.d/50-heroic.sh
 	new file:   omarchy/themes/aether
 	new file:   pomo/config.json
 	new file:   scripts/niri/caps
 	new file:   scripts/niri/ru.png
 	new file:   scripts/niri/us.png
 	new file:   starship.toml
 	modified:   swaync/config.json
 	new file:   swaync/config_1.json
 	modified:   swaync/style.css
 	new file:   swaync/style_1.css
 	new file:   systemd/user/default.target.wants/mpDris2.service
 	new file:   systemd/user/default.target.wants/mpd.service
 	new file:   systemd/user/default.target.wants/mpris-proxy.service
 	new file:   systemd/user/default.target.wants/openrazer-daemon.service
 	new file:   systemd/user/default.target.wants/pipewire-pulse.service
 	new file:   systemd/user/default.target.wants/pipewire.service
 	new file:   systemd/user/default.target.wants/ydotool.service
 	new file:   systemd/user/elephant.service
 	new file:   systemd/user/gnome-session.target.wants/gnome-remote-desktop.service
 	new file:   systemd/user/graphical-session.target.wants/elephant.service
 	new file:   systemd/user/graphical-session.target.wants/hyprwhspr.service
 	new file:   systemd/user/hyprwhspr.service
 	new file:   systemd/user/sockets.target.wants/mpd.socket
 	new file:   systemd/user/sockets.target.wants/pipewire-pulse.socket
 	new file:   systemd/user/sockets.target.wants/pipewire.socket
 	new file:   tofi/config
 	new file:   user-dirs.conf
 	renamed:    ../user-dirs.dirs -> user-dirs.dirs
 	new file:   user-dirs.locale
 	modified:   walker/config.toml
 	new file:   wl-kbptr/config
 	new file:   xdg-desktop-portal/portals.conf
 	new file:   xsettingsd/xsettingsd.conf
 	new file:   yt-dlp/config
 	new file:   zathura/zathurarc
 	renamed:    ../zram-generator.conf -> zram-generator.conf
 	modified:   ../copy.sh
 	deleted:    ../nix-packages.md
 	new file:   ../nix-pkgs.txt
 	deleted:    ../pacman-packages.md
 	renamed:    ../apps-list.md -> ../pkgs.txt
 	renamed:    ../services.md -> ../services.txt
2026-04-19 21:44:51 +05:00
182 changed files with 22104 additions and 3898 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,568 @@
[%General]
author=Vince Liuice, based on KvAdapta by Tsu Jan
comment=An uncomplicated theme inspired by the Materia GTK theme
x11drag=menubar_and_primary_toolbar
alt_mnemonic=true
left_tabs=false
attach_active_tab=false
mirror_doc_tabs=false
group_toolbar_buttons=true
toolbar_item_spacing=0
toolbar_interior_spacing=2
spread_progressbar=true
composite=false
menu_shadow_depth=16
spread_menuitems=true
tooltip_shadow_depth=7
splitter_width=1
scroll_width=9
scroll_arrows=false
scroll_min_extent=60
slider_width=2
slider_handle_width=23
slider_handle_length=22
tickless_slider_handle_size=22
center_toolbar_handle=true
check_size=24
textless_progressbar=false
progressbar_thickness=2
menubar_mouse_tracking=true
toolbutton_style=1
double_click=false
translucent_windows=false
blurring=false
popup_blurring=false
vertical_spin_indicators=false
spin_button_width=24
fill_rubberband=false
merge_menubar_with_toolbar=true
small_icon_size=16
large_icon_size=32
button_icon_size=16
toolbar_icon_size=16
combo_as_lineedit=true
animate_states=true
button_contents_shift=false
combo_menu=true
hide_combo_checkboxes=true
combo_focus_rect=false
groupbox_top_label=true
inline_spin_indicators=true
joined_inactive_tabs=false
layout_spacing=6
layout_margin=9
scrollbar_in_view=true
transient_scrollbar=true
transient_groove=true
submenu_overlap=0
tooltip_delay=0
tree_branch_line=true
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_window_opacity=0
respect_DE=true
scrollable_menu=true
submenu_delay=150
no_inactiveness=false
reduce_menu_opacity=0
click_behavior=0
contrast=1.00
dialog_button_layout=0
intensity=1.00
saturation=1.00
shadowless_popup=false
drag_from_buttons=false
menu_blur_radius=0
tooltip_blur_radius=0
[GeneralColors]
window.color=#2c2c2c
base.color=#2c2c2c
alt.base.color=#2e2e2e
button.color=#4d4d4d
light.color=#535353
mid.light.color=#474747
dark.color=#282828
mid.color=#323232
highlight.color=#3584e4
inactive.highlight.color=#3584e4
text.color=#dfdfdf
window.text.color=#dfdfdf
button.text.color=#dfdfdf
disabled.text.color=#696969
tooltip.text.color=#efefef
highlight.text.color=#ffffff
link.color=#0057AE
link.visited.color=#E040FB
progress.indicator.text.color=#dfdfdf
[Hacks]
transparent_ktitle_label=true
transparent_dolphin_view=false
transparent_pcmanfm_sidepane=true
blur_translucent=false
transparent_menutitle=true
respect_darkness=true
kcapacitybar_as_progressbar=true
force_size_grip=true
iconless_pushbutton=true
iconless_menu=true
disabled_icon_opacity=100
lxqtmainmenu_iconsize=16
normal_default_pushbutton=true
single_top_toolbar=true
tint_on_mouseover=0
transparent_pcmanfm_view=true
no_selection_tint=true
transparent_arrow_button=true
middle_click_scroll=false
opaque_colors=false
kinetic_scrolling=false
scroll_jump_workaround=true
centered_forms=false
noninteger_translucency=false
style_vertical_toolbars=false
blur_only_active_window=true
[PanelButtonCommand]
frame=true
frame.element=button
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
interior=true
interior.element=button
indicator.size=8
text.normal.color=#dfdfdf
text.focus.color=white
text.press.color=white
text.toggle.color=#ffffff
text.shadow=0
text.margin=4
text.iconspacing=4
indicator.element=arrow
frame.expansion=0
[PanelButtonTool]
inherits=PanelButtonCommand
text.normal.color=#dfdfdf
text.focus.color=white
text.press.color=white
text.toggle.color=#ffffff
text.bold=false
indicator.element=arrow
indicator.size=0
frame.expansion=0
[ToolbarButton]
frame=true
frame.element=tbutton
interior.element=tbutton
frame.top=16
frame.bottom=16
frame.left=16
frame.right=16
indicator.element=tarrow
text.normal.color=#dfdfdf
text.focus.color=white
text.press.color=white
text.toggle.color=white
text.bold=false
frame.expansion=32
[Dock]
inherits=PanelButtonCommand
interior.element=dock
frame.element=dock
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1
text.normal.color=#dfdfdf
[DockTitle]
inherits=PanelButtonCommand
frame=false
interior=false
text.normal.color=#dfdfdf
text.focus.color=white
text.bold=false
[IndicatorSpinBox]
inherits=PanelButtonCommand
frame=true
interior=true
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
indicator.element=spin
indicator.size=8
text.normal.color=#dfdfdf
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
[RadioButton]
inherits=PanelButtonCommand
frame=false
interior.element=radio
text.normal.color=#dfdfdf
text.focus.color=white
min_width=+0.3font
min_height=+0.3font
[CheckBox]
inherits=PanelButtonCommand
frame=false
interior.element=checkbox
text.normal.color=#dfdfdf
text.focus.color=white
min_width=+0.3font
min_height=+0.3font
[Focus]
inherits=PanelButtonCommand
frame=true
frame.element=focus
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
frame.patternsize=14
[GenericFrame]
inherits=PanelButtonCommand
frame=true
interior=false
frame.element=common
interior.element=common
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1
[LineEdit]
inherits=PanelButtonCommand
frame.element=lineedit
interior.element=lineedit
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
[ToolbarLineEdit]
frame.element=lineedit
interior.element=lineedit
[DropDownButton]
inherits=PanelButtonCommand
indicator.element=arrow-down
[IndicatorArrow]
indicator.element=arrow
indicator.size=8
[ToolboxTab]
inherits=PanelButtonCommand
text.normal.color=#dfdfdf
text.press.color=#dfdfdf
text.focus.color=white
[Tab]
inherits=PanelButtonCommand
interior.element=tab
text.margin.left=8
text.margin.right=8
text.margin.top=0
text.margin.bottom=0
frame.element=tab
indicator.element=tab
indicator.size=22
frame.top=8
frame.bottom=8
frame.left=8
frame.right=8
text.normal.color=#dfdfdf
text.focus.color=#dfdfdf
text.press.color=white
text.toggle.color=white
frame.expansion=0
text.bold=false
[TabFrame]
inherits=PanelButtonCommand
frame.element=tabframe
interior.element=tabframe
frame.top=24
frame.bottom=24
frame.left=24
frame.right=24
[TreeExpander]
inherits=PanelButtonCommand
indicator.size=8
indicator.element=tree
[HeaderSection]
inherits=PanelButtonCommand
interior.element=header
frame.element=header
frame.top=0
frame.bottom=1
frame.left=1
frame.right=1
text.normal.color=#dfdfdf
text.focus.color=white
text.press.color=white
text.toggle.color=white
frame.expansion=0
[SizeGrip]
indicator.element=resize-grip
[Toolbar]
inherits=PanelButtonCommand
indicator.element=toolbar
indicator.size=5
text.margin=0
interior.element=menubar
frame.element=menubar
text.normal.color=#dfdfdf
text.focus.color=white
text.press.color=#dfdfdf
text.toggle.color=white
frame.left=6
frame.right=6
frame.top=0
frame.bottom=1
frame.expansion=0
[Slider]
inherits=PanelButtonCommand
frame.element=slider
focusFrame=true
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=#dfdfdf
text.focus.color=#dfdfdf
text.press.color=#dfdfdf
text.toggle.color=#dfdfdf
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=4
frame.bottom=4
frame.left=4
frame.right=4
text.margin.top=0
text.margin.bottom=0
text.margin.left=8
text.margin.right=8
text.normal.color=#dfdfdf
text.focus.color=#dfdfdf
text.press.color=#ffffff
text.toggle.color=#ffffff
min_width=+0.3font
min_height=+0.3font
frame.expansion=0
[Splitter]
interior.element=splitter
frame=false
indicator.size=0
[Scrollbar]
inherits=PanelButtonCommand
indicator.element=arrow
indicator.size=12
[ScrollbarSlider]
inherits=PanelButtonCommand
frame.element=scrollbarslider
interior=false
frame.left=5
frame.right=5
frame.top=5
frame.bottom=5
indicator.element=grip
indicator.size=12
[ScrollbarGroove]
inherits=PanelButtonCommand
interior=false
frame=false
[Menu]
inherits=PanelButtonCommand
frame.top=8
frame.bottom=8
frame.left=8
frame.right=8
frame.element=menu
interior.element=menu
text.normal.color=#dedede
text.shadow=false
text.bold=false
[MenuItem]
inherits=PanelButtonCommand
frame=true
frame.element=menuitem
interior.element=menuitem
indicator.element=menuitem
text.normal.color=#dedede
text.focus.color=#dedede
text.margin.top=0
text.margin.bottom=0
text.margin.left=6
text.margin.right=6
frame.top=4
frame.bottom=4
frame.left=12
frame.right=12
text.bold=false
frame.expansion=0
[MenuBar]
inherits=PanelButtonCommand
frame.element=menubar
interior.element=menubar
frame.bottom=0
text.normal.color=#dfdfdf
text.focus.color=#ffffff
text.press.color=#ffffff
text.toggle.color=#ffffff
frame.expansion=0
text.bold=false
[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=#dfdfdf
text.focus.color=#ffffff
text.press.color=#ffffff
text.toggle.color=#ffffff
text.bold=false
min_width=+0.3font
min_height=+0.3font
frame.expansion=0
[TitleBar]
inherits=PanelButtonCommand
frame=false
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
interior.element=titlebar
indicator.size=16
indicator.element=mdi
text.normal.color=#787878
text.focus.color=#dfdfdf
text.bold=false
text.italic=true
frame.expansion=0
[ComboBox]
inherits=PanelButtonCommand
frame.element=combo
interior.element=combo
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
text.focus.color=white
text.press.color=#dfdfdf
text.toggle.color=white
[GroupBox]
inherits=GenericFrame
frame=false
text.shadow=0
text.margin=0
text.normal.color=#dfdfdf
text.focus.color=white
text.bold=false
frame.expansion=0
[TabBarFrame]
inherits=GenericFrame
frame=false
frame.element=tabBarFrame
interior=false
frame.top=0
frame.bottom=0
frame.left=0
frame.right=0
[ToolTip]
inherits=GenericFrame
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
interior=true
text.shadow=0
text.margin=6
interior.element=tooltip
frame.element=tooltip
frame.expansion=6
[StatusBar]
inherits=GenericFrame
frame=false
interior=false
[Window]
interior=true
interior.element=window
frame=true
frame.element=window
frame.bottom=10
frame.top=10

View file

@ -0,0 +1,2 @@
[General]
theme=KvLibadwaitaDark#

View file

@ -0,0 +1,9 @@
# see https://github.com/sigoden/aichat/blob/main/config.example.yaml
model: ollama:gemma4:e4b
clients:
- type: openai-compatible
name: ollama
api_base: http://localhost:11434/v1
models:
- name: gemma4:e4b

View file

@ -53,14 +53,14 @@ graph_symbol_net = "default"
graph_symbol_proc = "default" graph_symbol_proc = "default"
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. #* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
shown_boxes = "mem net proc gpu0 cpu" shown_boxes = "net proc gpu0 cpu mem"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. #* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 2000 update_ms = 2000
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", #* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. #* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
proc_sorting = "memory" proc_sorting = "cpu direct"
#* Reverse sorting order, True or False. #* Reverse sorting order, True or False.
proc_reversed = false proc_reversed = false
@ -217,7 +217,7 @@ net_upload = 100
net_auto = true net_auto = true
#* Sync the auto scaling for download and upload to whichever currently has the highest scale. #* Sync the auto scaling for download and upload to whichever currently has the highest scale.
net_sync = true net_sync = false
#* Starts with the Network Interface specified here. #* Starts with the Network Interface specified here.
net_iface = "" net_iface = ""

View file

@ -0,0 +1,39 @@
# btop theme generated by noctalia
theme[main_bg]="#1a1b26"
theme[main_fg]="#c0caf5"
theme[title]="#7aa2f7"
theme[hi_fg]="#9ece6a"
theme[selected_bg]="#333954"
theme[selected_fg]="#c0caf5"
theme[inactive_fg]="#9aa5ce"
theme[proc_misc]="#bb9af7"
theme[cpu_box]="#586691"
theme[mem_box]="#586691"
theme[net_box]="#586691"
theme[proc_box]="#586691"
theme[div_line]="#3b4561"
theme[temp_start]="#7aa2f7"
theme[temp_mid]="#bb9af7"
theme[temp_end]="#9ece6a"
theme[cpu_start]="#7aa2f7"
theme[cpu_mid]="#bb9af7"
theme[cpu_end]="#9ece6a"
theme[free_start]="#7aa2f7"
theme[free_mid]="#bb9af7"
theme[free_end]="#9ece6a"
theme[cached_start]="#7aa2f7"
theme[cached_mid]="#bb9af7"
theme[cached_end]="#9ece6a"
theme[available_start]="#7aa2f7"
theme[available_mid]="#bb9af7"
theme[available_end]="#9ece6a"
theme[used_start]="#7aa2f7"
theme[used_mid]="#bb9af7"
theme[used_end]="#9ece6a"
theme[download_start]="#7aa2f7"
theme[download_mid]="#bb9af7"
theme[download_end]="#9ece6a"
theme[upload_start]="#7aa2f7"
theme[upload_mid]="#bb9af7"
theme[upload_end]="#9ece6a"

0
config/calcurse/conf Normal file
View file

56
config/calcurse/keys Normal file
View file

@ -0,0 +1,56 @@
#
# Calcurse keys configuration file
#
# In this file the keybindings used by Calcurse are defined.
# It is generated automatically by Calcurse and is maintained
# via the key configuration menu of the interactive user
# interface. It should not be edited directly.
generic-cancel ESC
generic-select SPC
generic-credits @
generic-help ?
generic-quit q Q
generic-save s S ^S
generic-reload R
generic-copy c
generic-paste p ^V
generic-change-view TAB
generic-prev-view KEY_BTAB
generic-import i I
generic-export x X
generic-goto g G
generic-other-cmd o O
generic-config-menu C
generic-redraw ^R
generic-add-appt ^A
generic-add-todo ^T
generic-prev-day T ^H
generic-next-day t ^L
generic-prev-week W ^K
generic-next-week w
generic-prev-month M
generic-next-month m
generic-prev-year Y
generic-next-year y
generic-scroll-down ^N
generic-scroll-up ^P
generic-goto-today ^G
generic-command :
move-right l L RGT
move-left h H LFT
move-down j J DWN
move-up k K UP
start-of-week 0
end-of-week $
add-item a A
del-item d D
edit-item e E
view-item v V RET
pipe-item |
flag-item !
repeat r
edit-note n N
view-note >
raise-priority +
lower-priority -

320
config/cava/config Normal file
View file

@ -0,0 +1,320 @@
## Configuration file for CAVA.
# Remove the ; to change parameters.
[general]
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
mode = normal
# Accepts only non-negative values.
; framerate = 165
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
# new as of 0.6.0 autosens of low values (dynamic range)
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0
autosens = 1
overshoot = 20
# Manual sensitivity in %. If autosens is enabled, this will only be the initial value.
# 200 means double height. Accepts only non-negative values.
; sensitivity = 100
# The number of bars (0-512). 0 sets it to auto (fill up console).
# Bars' width and space between bars in number of characters.
; bars = 100
;bar_width = 2
; bar_spacing = 1
# bar_height is only used for output in "noritake" format
; bar_height = 32
# For SDL width and space between bars is in pixels, defaults are:
; bar_width = 1
; bar_spacing = 5
# sdl_glsl have these default values, they are only used to calculate max number of bars.
; bar_width = 1
; bar_spacing = 0
# ceter bars in terminal, if there is space.
; center_align = 1
# max height of bars in terminal, in percent of terminal height.
; max_height = 100
# Lower and higher cutoff frequencies for lowest and highest bars
# the bandwidth of the visualizer.
# Note: there is a minimum total bandwidth of 43Mhz x number of bars.
# Cava will automatically increase the higher cutoff if a too low band is specified.
; lower_cutoff_freq = 50
; higher_cutoff_freq = 10000
# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and
# only check for input once per second. Cava will wake up once input is detected. 0 = disable.
; sleep_timer = 0
[input]
# Audio capturing method. Possible methods are: 'fifo', 'portaudio', 'pipewire', 'alsa', 'pulse', 'sndio', 'oss', 'jack' or 'shmem'
# Defaults to 'oss', 'pipewire', 'sndio', 'jack', 'pulse', 'alsa', 'portaudio' or 'fifo', in that order, dependent on what support cava was built with.
# On Mac it defaults to 'portaudio' or 'fifo'
# On windows this is automatic and no input settings are needed.
#
# All input methods uses the same config variable 'source'
# to define where it should get the audio.
#
# For pulseaudio and pipewire 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
#
# For pipewire 'source' will be the object name or object.serial of the device to capture from.
# Both input and output devices are supported. To capture the monitor source of a sink node, append '.monitor' to the sink's object name.
#
# For alsa 'source' will be the capture device.
# For fifo 'source' will be the path to fifo-file.
# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address
#
# For sndio 'source' will be a raw recording audio descriptor or a monitoring sub-device, e.g. 'rsnd/2' or 'snd/1'. Default: 'default'.
# README.md contains further information on how to setup CAVA for sndio.
#
# For oss 'source' will be the path to a audio device, e.g. '/dev/dsp2'. Default: '/dev/dsp', i.e. the default audio device.
# README.md contains further information on how to setup CAVA for OSS on FreeBSD.
#
# For jack 'source' will be the name of the JACK server to connect to, e.g. 'foobar'. Default: 'default'.
# README.md contains further information on how to setup CAVA for JACK.
#
; method = pulse
; source = auto
method = pipewire
source = auto
; method = alsa
; source = hw:Loopback,1
; method = fifo
; source = /tmp/mpd.fifo
; method = shmem
; source = /squeezelite-AA:BB:CC:DD:EE:FF
; method = portaudio
; source = auto
; method = sndio
; source = default
; method = oss
; source = /dev/dsp
; method = jack
; source = default
# The options 'sample_rate', 'sample_bits', 'channels' and 'autoconnect' can be configured for some input methods:
# sample_rate: fifo, pipewire, sndio, oss
# sample_bits: fifo, pipewire, sndio, oss
# channels: sndio, oss, jack
# autoconnect: jack
# Other methods ignore these settings.
# For pipewire, sample_rate will default to 48000, for all other input methods, sample_rate will default to 44100.
#
# For 'sndio' and 'oss' they are only preferred values, i.e. if the values are not supported
# by the chosen audio device, the device will use other supported values instead.
# Example: 48000, 32 and 2, but the device only supports 44100, 16 and 1, then it
# will use 44100, 16 and 1.
#
#
# The 'pipewire' input method has three options to control linking and mixing:
# active: Force the node to always process. Useful for monitoring sources when no other application is active.
# remix: Allow pipewire to remix audio channels to match cava's channel count. Useful for surround sound.
# virtual: Set the node to virtual, to avoid recording notifications from the DE.
#
; sample_rate = 44100
; sample_bits = 16
; channels = 2
; autoconnect = 2
; active = 0
; remix = 1
; virtual = 1
[output]
# Output method. Can be 'ncurses', 'noncurses', 'raw', 'noritake', 'sdl'
# or 'sdl_glsl'.
# 'noncurses' (default) uses a buffer and cursor movements to only print
# changes from frame to frame in the terminal. Uses less resources and is less
# prone to tearing (vsync issues) than 'ncurses'.
#
# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data
# stream of the bar heights that can be used to send to other applications.
# 'raw' defaults to 1024 bars stereo (512 bars mono), which can be adjusted in the 'bars' option above.
#
# 'noritake' outputs a bitmap in the format expected by a Noritake VFD display
# in graphic mode. It only support the 3000 series graphical VFDs for now.
#
# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context.
# 'sdl_glsl' uses SDL to create an OpenGL context. Write your own shaders or
# use one of the predefined ones.
; method = noncurses
# Orientation of the visualization. Can be 'bottom', 'top', 'left', 'right' or
# 'horizontal'. Default is 'bottom'. 'left and 'right' are only supported on sdl
# and ncruses output. 'horizontal' (bars go up and down from center) is only supported
# on noncurses output.
# Note: many fonts have weird or missing glyphs for characters used in orientations
# other than 'bottom', which can make output not look right.
; orientation = bottom
# Visual channels. Can be 'stereo' or 'mono'.
# 'stereo' mirrors both channels with low frequencies in center.
# 'mono' outputs left to right lowest to highest frequencies.
# 'mono_option' set mono to either take input from 'left', 'right' or 'average'.
# set 'reverse' to 1 to display frequencies the other way around.
; channels = stereo
; mono_option = average
reverse = 10
# Raw output target.
# On Linux, a fifo will be created if target does not exist.
# On Windows, a named pipe will be created if target does not exist.
; raw_target = /dev/random
# Raw data format. Can be 'binary' or 'ascii'.
; data_format = binary
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
; bit_format = 16bit
# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
; ascii_max_range = 1000
# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
bar_delimiter = 59
; frame_delimiter = 10
# sdl window size and position. -1,-1 is centered.
; sdl_width = 1024
; sdl_height = 512
; sdl_x = -1
; sdl_y= -1
; sdl_full_screen = 0
# set label on bars on the x-axis. Can be 'frequency' or 'none'. Default: 'none'
# 'frequency' displays the lower cut off frequency of the bar above.
# Only supported on ncurses and noncurses output.
; xaxis = none
# enable synchronized sync. 1 = on, 0 = off
# removes flickering in alacritty terminal emulator.
# defaults to off since the behaviour in other terminal emulators is unknown
; synchronized_sync = 0
# Shaders for sdl_glsl, located in $HOME/.config/cava/shaders
; vertex_shader = pass_through.vert
; fragment_shader = bar_spectrum.frag
; for glsl output mode, keep rendering even if no audio
; continuous_rendering = 0
# disable console blank (screen saver) in tty
# (Not supported on FreeBSD)
; disable_blanking = 0
# show a flat bar at the bottom of the screen when idle, 1 = on, 0 = off
; show_idle_bar_heads = 1
# show waveform instead of frequency spectrum, 1 = on, 0 = off
; waveform = 0
[color]
# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.
# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires
# a terminal that can change color definitions such as Gnome-terminal or rxvt.
# default is to keep current terminal color
; background = default
foreground = '#EEF7FD'
# SDL and sdl_glsl only support hex code colors, these are the default:
; background = '#11111'
; foreground = '#EEF7FD'
# Gradient mode, only hex defined colors are supported,
# background must also be defined in hex or remain commented out. 1 = on, 0 = off.
# You can define as many as 8 different colors. They range from bottom to top of screen
; gradient = 0
; gradient_color_1 = '#59cc33'
; gradient_color_2 = '#80cc33'
; gradient_color_3 = '#a6cc33'
; gradient_color_4 = '#cccc33'
; gradient_color_5 = '#cca633'
; gradient_color_6 = '#cc8033'
; gradient_color_7 = '#cc5933'
; gradient_color_8 = '#cc3333'
# Horizontal is only supported on noncurses output.
# Only one color will be calculated per bar.
; horizontal_gradient = 0
; horizontal_gradient_color_1 = '#c45161'
; horizontal_gradient_color_2 = '#e094a0'
; horizontal_gradient_color_3 = '#f2b6c0'
; horizontal_gradient_color_4 = '#f2dde1'
; horizontal_gradient_color_5 = '#cbc7d8'
; horizontal_gradient_color_6 = '#8db7d2'
; horizontal_gradient_color_7 = '#5e62a9'
; horizontal_gradient_color_8 = '#434279'
# If both vertical and horizontal gradient is enabled, vertical will be blended in this direction.
# Can be 'up', 'down', 'left' or 'right'. 'up' means the vertical gradient will be blended in from
# bottom to top. I.e. the bottom will be only the horizontal
# and top will be only the color of the vertical gradient.
; blend_direction = 'up'
# use theme file instead of defining colors in this file
# themes are located in $HOME/.config/cava/themes
; theme = 'none'
[smoothing]
# Percentage value for integral smoothing. Takes values from 0 - 100.
# Higher values means smoother, but less precise. 0 to disable.
# DEPRECATED as of 0.8.0, use noise_reduction instead
; integral = 77
# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
; monstercat = 0
; waves = 0
# Set gravity percentage for "drop off". Higher values means bars will drop faster.
# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off".
# DEPRECATED as of 0.8.0, use noise_reduction instead
; gravity = 100
# In bar height, bars that would have been lower that this will not be drawn.
# DEPRECATED as of 0.8.0
; ignore = 0
# Noise reduction, int 0 - 100. default 77
# the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth
# 100 will be very slow and smooth, 0 will be fast but noisy.
; noise_reduction = 77
[eq]
# This one is tricky. You can have as much keys as you want.
# Remember to uncomment more than one key! More keys = more precision.
# Look at readme.md on github for further explanations and examples.
; 1 = 1 # bass
; 2 = 1
; 3 = 1 # midtone
; 4 = 1
; 5 = 1 # treble

View file

@ -0,0 +1,73 @@
#version 330
in vec2 fragCoord;
out vec4 fragColor;
// bar values. defaults to left channels first (low to high), then right (high to low).
uniform float bars[512];
uniform int bars_count; // number of bars (left + right) (configurable)
uniform int bar_width; // bar width (configurable), not used here
uniform int bar_spacing; // space bewteen bars (configurable)
uniform vec3 u_resolution; // window resolution
// colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
uniform vec3 bg_color; // background color
uniform vec3 fg_color; // foreground color
uniform int gradient_count;
uniform vec3 gradient_colors[8]; // gradient colors
uniform float shader_time; // shader execution time s (not used here)
uniform sampler2D inputTexture; // Texture from the last render pass (not used here)
vec3 normalize_C(float y, vec3 col_1, vec3 col_2, float y_min, float y_max) {
// create color based on fraction of this color and next color
float yr = (y - y_min) / (y_max - y_min);
return col_1 * (1.0 - yr) + col_2 * yr;
}
void main() {
// find which bar to use based on where we are on the x axis
float x = u_resolution.x * fragCoord.x;
int bar = int(bars_count * fragCoord.x);
// calculate a bar size
float bar_size = u_resolution.x / bars_count;
// the y coordinate and bar values are the same
float y = bars[bar];
// make sure there is a thin line at bottom
if (y * u_resolution.y < 1.0) {
y = 1.0 / u_resolution.y;
}
// draw the bar up to current height
if (y > fragCoord.y) {
// make some space between bars basen on settings
if (x > (bar + 1) * (bar_size)-bar_spacing) {
fragColor = vec4(bg_color, 1.0);
} else {
if (gradient_count == 0) {
fragColor = vec4(fg_color, 1.0);
} else {
// find which color in the configured gradient we are at
int color = int((gradient_count - 1) * fragCoord.y);
// find where on y this and next color is supposed to be
float y_min = color / (gradient_count - 1.0);
float y_max = (color + 1.0) / (gradient_count - 1.0);
// make color
fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color],
gradient_colors[color + 1], y_min, y_max),
1.0);
}
}
} else {
fragColor = vec4(bg_color, 1.0);
}
}

View file

@ -0,0 +1,117 @@
#version 330
// this shader was stolen from shadertoy user ChunderFPV
#define SCALE 8.0
#define PI radians(180.0)
#define TAU (PI * 2.0)
#define CS(a) vec2(cos(a), sin(a))
#define PT(u, r) smoothstep(0.0, r, r - length(u))
in vec2 fragCoord;
out vec4 fragColor;
uniform float bars[512];
uniform int bars_count; // number of bars (left + right) (configurable)
uniform float shader_time; // shader execution time s
uniform int bar_width; // bar width (configurable), not used here
uniform int bar_spacing; // space bewteen bars (configurable)
uniform vec3 u_resolution; // window resolution
// colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
uniform vec3 bg_color; // background color
uniform vec3 fg_color; // foreground color
uniform int gradient_count;
uniform vec3 gradient_colors[8]; // gradient colors
// gradient map ( color, equation, time, width, shadow, reciprocal )
vec3 gm(vec3 c, float n, float t, float w, float d, bool i) {
float g = min(abs(n), 1.0 / abs(n));
float s = abs(sin(n * PI - t));
if (i)
s = min(s, abs(sin(PI / n + t)));
return (1.0 - pow(abs(s), w)) * c * pow(g, d) * 6.0;
}
// denominator spiral, use 1/n for numerator
// ( screen xy, spiral exponent, decimal, line width, hardness, rotation )
float ds(vec2 u, float e, float n, float w, float h, float ro) {
float ur = length(u); // unit radius
float sr = pow(ur, e); // spiral radius
float a = round(sr) * n * TAU; // arc
vec2 xy = CS(a + ro) * ur; // xy coords
float l = PT(u - xy, w); // line
float s = mod(sr + 0.5, 1.0); // gradient smooth
s = min(s, 1.0 - s); // darken filter
return l * s * h;
}
void main() {
float t = shader_time / PI * 2.0;
vec4 m = vec4(0, 0, 0, 0); // iMouse;
m.xy = m.xy * 2.0 / u_resolution.xy - 1.0; // ±1x, ±1y
if (m.z > 0.0)
t += m.y * SCALE; // move time with mouse y
float z = (m.z > 0.0) ? pow(1.0 - abs(m.y), sign(m.y)) : 1.0; // zoom (+)
float e = (m.z > 0.0) ? pow(1.0 - abs(m.x), -sign(m.x))
: 1.0; // screen exponent (+)
float se = (m.z > 0.0) ? e * -sign(m.y) : 1.0; // spiral exponent
vec3 bg = vec3(0); // black background
float aa = 3.0; // anti-aliasing
for (float j = 0.0; j < aa; j++)
for (float k = 0.0; k < aa; k++) {
vec3 c = vec3(0);
vec2 o = vec2(j, k) / aa;
vec2 uv = (fragCoord * u_resolution.xy - 0.5 * u_resolution.xy + o) /
u_resolution.y * SCALE * z; // apply cartesian, scale and zoom
if (m.z > 0.0)
uv =
exp(log(abs(uv)) * e) * sign(uv); // warp screen space with exponent
float px = length(fwidth(uv)); // pixel width
float x = uv.x; // every pixel on x
float y = uv.y; // every pixel on y
float l = length(uv); // hypot of xy: sqrt(x*x+y*y)
float mc = (x * x + y * y - 1.0) / y; // metallic circle at xy
float g = min(abs(mc), 1.0 / abs(mc)); // gradient
vec3 gold = vec3(1.0, 0.6, 0.0) * g * l;
vec3 blue = vec3(0.3, 0.5, 0.9) * (1.0 - g);
vec3 rgb = max(gold, blue);
float w = 0.1; // line width
float d = 0.4; // shadow depth
c = max(c, gm(rgb, mc, -t, w * bars[0], d, false)); // metallic
c = max(c, gm(rgb, abs(y / x) * sign(y), -t, w * bars[1], d,
false)); // tangent
c = max(c, gm(rgb, (x * x) / (y * y) * sign(y), -t, w * bars[2], d,
false)); // sqrt cotangent
c = max(c, gm(rgb, (x * x) + (y * y), t, w * bars[3], d,
true)); // sqrt circles
c += rgb * ds(uv, se, t / TAU, px * 2.0 * bars[4], 2.0, 0.0); // spiral 1a
c += rgb * ds(uv, se, t / TAU, px * 2.0 * bars[5], 2.0, PI); // spiral 1b
c +=
rgb * ds(uv, -se, t / TAU, px * 2.0 * bars[6], 2.0, 0.0); // spiral 2a
c += rgb * ds(uv, -se, t / TAU, px * 2.0 * bars[7], 2.0, PI); // spiral 2b
c = max(c, 0.0); // clear negative color
c += pow(max(1.0 - l, 0.0), 3.0 / z); // center glow
if (m.z > 0.0) // display grid on click
{
vec2 xyg = abs(fract(uv + 0.5) - 0.5) / px; // xy grid
c.gb += 0.2 * (1.0 - min(min(xyg.x, xyg.y), 1.0));
}
bg += c;
}
bg /= aa * aa;
bg *= sqrt(bg) * 1.5;
fragColor = vec4(bg, 1.0);
}

View file

@ -0,0 +1,34 @@
#version 330
in vec2 fragCoord;
out vec4 fragColor;
// bar values. defaults to left channels first (low to high), then right (high to low).
uniform float bars[512];
uniform int bars_count; // number of bars (left + right) (configurable)
uniform vec3 u_resolution; // window resolution, not used here
//colors, configurable in cava config file
uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here
uniform vec3 fg_color; // foreground color, not used here
void main()
{
// find which bar to use based on where we are on the x axis
int bar = int(bars_count * fragCoord.x);
float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0;
float y = (bars[bar]) * bar_y;
float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count;
float bar_r = 1.0 - abs((bar_x - 0.5)) * 2;
bar_r = bar_r * bar_r * 2;
// set color
fragColor.r = fg_color.x * y * bar_r;
fragColor.g = fg_color.y * y * bar_r;
fragColor.b = fg_color.z * y * bar_r;
}

View file

@ -0,0 +1,14 @@
#version 330
// Input vertex data, different for all executions of this shader.
layout(location = 0) in vec3 vertexPosition_modelspace;
// Output data ; will be interpolated for each fragment.
out vec2 fragCoord;
void main()
{
gl_Position = vec4(vertexPosition_modelspace,1);
fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0;
}

View file

@ -0,0 +1,53 @@
#version 330
in vec2 fragCoord;
out vec4 fragColor;
// bar values. defaults to left channels first (low to high), then right (high
// to low).
uniform float bars[512];
uniform int bars_count; // number of bars (left + right) (configurable)
uniform int bar_width; // bar width (configurable), not used here
uniform int bar_spacing; // space bewteen bars (configurable)
uniform vec3 u_resolution; // window resolution
// colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
uniform vec3 bg_color; // background color
uniform vec3 fg_color; // foreground color
uniform int gradient_count;
uniform vec3 gradient_colors[8]; // gradient colors
uniform sampler2D inputTexture; // Texture from the last render pass
vec3 normalize_C(float y, vec3 col_1, vec3 col_2, float y_min, float y_max) {
// create color based on fraction of this color and next color
float yr = (y - y_min) / (y_max - y_min);
return col_1 * (1.0 - yr) + col_2 * yr;
}
void main() {
// find which bar to use based on where we are on the y axis
int bar = int(bars_count * fragCoord.y);
float y = bars[bar];
float band_size = 1.0 / float(bars_count);
float current_band_min = bar * band_size;
float current_band_max = (bar + 1) * band_size;
int hist_length = 512;
float win_size = 1.0 / hist_length;
if (fragCoord.x > 1.0 - win_size) {
if (fragCoord.y > current_band_min && fragCoord.y < current_band_max) {
fragColor = vec4(fg_color * y, 1.0);
}
} else {
vec2 offsetCoord = fragCoord;
offsetCoord.x += float(win_size);
fragColor = texture(inputTexture, offsetCoord);
}
}

View file

@ -0,0 +1,112 @@
#version 330
// Emulate the "line style" spectrum analyzer from Winamp 2.
// Try this config for a demonstration:
/*
[general]
bar_width = 2
bar_spacing = 0
higher_cutoff_freq = 22000
[output]
method = sdl_glsl
channels = mono
fragment_shader = winamp_line_style_spectrum.frag
[color]
background = '#000000'
gradient = 1
gradient_color_1 = '#319C08'
gradient_color_2 = '#29CE10'
gradient_color_3 = '#BDDE29'
gradient_color_4 = '#DEA518'
gradient_color_5 = '#D66600'
gradient_color_6 = '#CE2910'
[smoothing]
noise_reduction = 10
*/
in vec2 fragCoord;
out vec4 fragColor;
// bar values. defaults to left channels first (low to high), then right (high to low).
uniform float bars[512];
uniform int bars_count; // number of bars (left + right) (configurable)
uniform int bar_width; // bar width (configurable), not used here
uniform int bar_spacing; // space bewteen bars (configurable)
uniform vec3 u_resolution; // window resolution
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
uniform vec3 bg_color; // background color
uniform vec3 fg_color; // foreground color
uniform int gradient_count;
uniform vec3 gradient_colors[8]; // gradient colors
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
{
//create color based on fraction of this color and next color
float yr = (y - y_min) / (y_max - y_min);
return col_1 * (1.0 - yr) + col_2 * yr;
}
void main()
{
// find which bar to use based on where we are on the x axis
float x = u_resolution.x * fragCoord.x;
int bar = int(bars_count * fragCoord.x);
//calculate a bar size
float bar_size = u_resolution.x / bars_count;
//the y coordinate is stretched by 4X to resemble Winamp
float y = min(bars[bar] * 4.0, 1.0);
// make sure there is a thin line at bottom
if (y * u_resolution.y < 1.0)
{
y = 1.0 / u_resolution.y;
}
vec4 bar_color;
if (gradient_count == 0)
{
bar_color = vec4(fg_color,1.0);
}
else
{
//find color in the configured gradient for the top of the bar
int color = int((gradient_count - 1) * y);
//find where on y this and next color is supposed to be
float y_min = float(color) / (gradient_count - 1.0);
float y_max = float(color + 1) / (gradient_count - 1.0);
//make a solid color for the entire bar
bar_color = vec4(normalize_C(y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
}
//draw the bar up to current height
if (y > fragCoord.y)
{
//make some space between bars based on settings
if (x > (bar + 1) * (bar_size) - bar_spacing)
{
fragColor = vec4(bg_color,1.0);
}
else
{
fragColor = bar_color;
}
}
else
{
fragColor = vec4(bg_color,1.0);
}
}

View file

@ -0,0 +1,15 @@
[color]
background = '#001e26'
foreground = '#708183'
gradient = 1
gradient_color_1 = '#268bd2'
gradient_color_2 = '#6c71c4'
gradient_color_3 = '#cb4b16'
horizontal_gradient = 1
horizontal_gradient_color_1 = '#586e75'
horizontal_gradient_color_2 = '#b58900'
horizontal_gradient_color_3 = '#839496'
blend_direction = 'up'

View file

@ -0,0 +1,10 @@
[color]
horizontal_gradient = 1
horizontal_gradient_color_1 = '#c45161'
horizontal_gradient_color_2 = '#e094a0'
horizontal_gradient_color_3 = '#f2b6c0'
horizontal_gradient_color_4 = '#f2dde1'
horizontal_gradient_color_5 = '#cbc7d8'
horizontal_gradient_color_6 = '#8db7d2'
horizontal_gradient_color_7 = '#5e62a9'
horizontal_gradient_color_8 = '#434279'

View file

@ -0,0 +1,83 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small",
"padding": {
"top": 2
},
"color": {
"1": "white",
"2": "white",
}
},
"display" : {
"color": {
"keys": "green",
"title": "white"
},
"key": {
"type": "both" // string, icon, both, or none
},
"bar": {
"width": 10, // Width of percentage bars
"char": {
"elapsed": "■", // Character for elapsed portion
"total": "-", // Character for total portion
},
},
"percent": {
"type": 9, // 1=number, 2=bar, 3=both, 9=colored number
"color": {
"green": "green",
"yellow": "light_yellow",
"red": "light_red"
}
}
},
"modules": [
"title",
"separator",
{
"type": "datetime",
"format": "{hour-pretty}:{minute-pretty} | {day-pretty}.{month}.{year-short}, {weekday}",
},
"separator",
{
"type": "memory",
},
"uptime",
{
"type": "cpu",
"showPeCoreCount": true,
"temp": true
},
"cpuusage",
{
"type": "gpu",
"driverSpecific": true,
"temp": true
},
"physicalmemory",
{
"type": "swap",
"separate": true
},
"disk",
{
"type": "battery",
"temp": true
},
"poweradapter",
{
"type": "publicip",
"timeout": 1000
},
"wifi",
"bluetooth",
"netio",
"tpm",
"break",
]
}

186
config/fastfetch/0.02.jsonc Normal file
View file

@ -0,0 +1,186 @@
// Inspired by https://github.com/usgraphics/TR-100
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo":null,
"display": {
"pipe": true,
"key": {
"width": 16,
},
"separator": "│ ",
"percent": {
"type": 9,
"color": {
"green": "green",
"yellow": "light_yellow",
"red": "light_red"
}
},
"bar": {
"border": null,
"char": {
"elapsed": "█",
"total": "░"
},
"width": 40
},
"constants": [
"\u001b[42C"
]
},
"modules": [
{
"type": "custom",
"format": "┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐"
},
{
"type": "custom",
"format": "├┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┤"
},
{
"type": "version",
"key": " ",
"format": "│ FASTFETCH v{version} │"
},
{
"type": "custom",
"format": "│ TR-100 MACHINE REPORT │"
},
{
"type": "custom",
"format": "├────────────┬──────────────────────────────────────────┤"
},
{
"type": "datetime",
"key": "│ TIME │{$1}",
"format": "{hour-pretty}:{minute-pretty}",
},
{
"type": "datetime",
"key": "│ DATE │{$1}",
"format": "{day-pretty}.{month}.{year-short}, {weekday}",
},
{
"type": "custom",
"format": "├────────────┼──────────────────────────────────────────┤"
},
{
"type": "os",
"key": "│ OS │{$1}"
},
{
"type": "kernel",
"key": "│ KERNEL │{$1}"
},
// {
// "type":"display",
// "key":"│ MONITOR │{$1}"
// },
// {
// "type": "custom",
// "format": "├────────────┼──────────────────────────────────────────┤"
//},
//{
// "type": "localip",
//"key": "│ CLIENT IP │{$1}",
//"format": "{ipv4}"
// },
// {
// "type": "localip",
// "key": "│ MAC ADDR │{$1}",
// "format": "{mac} ({ifname})",
// "showIpv4": false,
// "showMac": true
// },
// {
// "type": "dns",
// "key": "│ DNS │{$1}",
// "showType": "ipv4"
// },
{
"type": "custom",
"format": "├────────────┼──────────────────────────────────────────┤"
},
{
"type": "cpu",
"key": "│ PROCESSOR │{$1}",
"temp": true,
"format": "{name}, {freq-max}{/freq-max}{freq-base}{/} - {temperature}"
},
{
"type": "gpu",
"key": "│ GPU │{$1}",
"temp": true,
"format": "{name} - {temperature} {frequency}"
},
{
"type": "memory",
"key": "│ RAM │{$1}",
"format": "{used} / {total} [{percentage}]",
"percent": {
"type": ["num"]
}
},
//{
// "type": "memory",
// "key": "│ USAGE │{$1}",
// "format": "",
// "percent": {
// "type": ["bar", "hide-others"]
// }
// },
{
"type": "disk",
"key": "│ DISK USAGE │{$1}",
"format": "{size-used} / {size-total} [{size-percentage}]",
"folders": "/",
"percent": {
"type": ["num"]
}
},
{
"type": "custom",
"format": "├────────────┼──────────────────────────────────────────┤"
},
{
"type": "uptime",
"key": "│ UPTIME │{$1}"
},
{
"type": "disk",
"format": "{create-time}",
"key": "│ BIRTH TIME │{$1}"
},
{
"type": "custom",
"format": "├────────────┼──────────────────────────────────────────┤"
},
{
"type": "localip",
"key": "│ CLIENT IP │{$1}",
"format": "{ipv4}"
// },
{
"type": "custom",
"format": "└────────────┴──────────────────────────────────────────┘"
}
]
}

View file

@ -0,0 +1,13 @@
// Load with --config examples/2.jsonc
// Note that you must replace the image path to an existing image to display it.
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo":null ,
"display": {
"separator": " -> "
},
"modules": [
"colors"
]
}

View file

@ -0,0 +1,113 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"padding": {
"top": 2
}
},
"modules": [
"title",
"separator",
"os",
"host",
"bios",
"bootmgr",
"board",
"chassis",
"kernel",
"initsystem",
"uptime",
"loadavg",
"processes",
"packages",
"shell",
"editor",
"display",
"brightness",
"monitor",
"lm",
"de",
"wm",
"wmtheme",
"theme",
"icons",
"font",
"cursor",
"wallpaper",
"terminal",
"terminalfont",
"terminalsize",
"terminaltheme",
{
"type": "cpu",
"showPeCoreCount": true,
"temp": true
},
"cpucache",
"cpuusage",
{
"type": "gpu",
"driverSpecific": true,
"temp": true
},
"memory",
"physicalmemory",
{
"type": "swap",
"separate": true
},
"disk",
"btrfs",
"zpool",
{
"type": "battery",
"temp": true
},
"poweradapter",
"player",
"media",
{
"type": "publicip",
"timeout": 1000
},
{
"type": "localip",
"showIpv6": true,
"showMac": true,
"showSpeed": true,
"showMtu": true,
"showLoop": true,
"showFlags": true,
"showAllIps": true
},
"dns",
"wifi",
"datetime",
"locale",
"vulkan",
"opengl",
"opencl",
"users",
"bluetooth",
"bluetoothradio",
"sound",
"camera",
"gamepad",
"mouse",
"keyboard",
{
"type": "weather",
"timeout": 1000
},
"netio",
"diskio",
{
"type": "physicaldisk",
"temp": true
},
"tpm",
"version",
"break",
"colors"
]
}

View file

@ -0,0 +1,82 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"modules": [
{
"type": "title",
"key": "User",
"format": "{user-name}"
},
{
"type": "title",
"key": "Hostname",
"format": "{host-name}"
},
{
"type": "host",
"key": "Model"
},
{
"type": "os",
"format": "{pretty-name} {version-id} {arch}"
},
"kernel",
"uptime",
{
"type": "loadavg",
"key": "Load Average"
},
"processes",
{
"type": "wm",
"key": "Window Manager"
},
{
"type": "de",
"key": "Desktop Environment"
},
"shell",
{
"type": "terminal",
"format": "{pretty-name} {version} {#37}█{#97}█ {#36}█{#96}█ {#35}█{#95}█ {#34}█{#94}█ {#33}█{#93}█ {#32}█{#92}█ {#31}█{#91}█ {#30}█{#90}█"
},
{
"type": "packages",
"format": "{all}"
},
{
"type": "cpu",
"key": "Temperature",
"temp": true,
"format": "{temperature}"
},
{
"type": "cpu",
"key": "CPU",
"format": "{cores-logical} x {name}"
},
{
"type": "gpu",
"format": "{name}"
},
{
"type": "memory",
"key": "RAM"
},
{
"type": "disk",
"key": "Disk",
"folders": "/"
},
{
"type": "localip",
"key": "LAN IP",
"showIpv6": true,
"showPrefixLen": false
},
{
"type": "publicip",
"key": "WAN IP",
"timeout": 1000
}
]
}

View file

@ -0,0 +1,115 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"display": {
"stat": true,
"pipe": true,
"showErrors": true,
"noBuffer": true
},
"logo": null,
"modules": [
"title",
"separator",
"os",
"host",
"bios",
"bootmgr",
"board",
"chassis",
"kernel",
"initsystem",
"uptime",
"loadavg",
"processes",
"packages",
"shell",
"editor",
"display",
"brightness",
"monitor",
"lm",
"de",
"wm",
"wmtheme",
"theme",
"icons",
"font",
"cursor",
"wallpaper",
"terminal",
"terminalfont",
"terminalsize",
"terminaltheme",
{
"type": "cpu",
"showPeCoreCount": true,
"temp": true
},
"cpucache",
"cpuusage",
{
"type": "gpu",
"driverSpecific": true,
"temp": true
},
"memory",
"physicalmemory",
{
"type": "swap",
"separate": true
},
"disk",
"btrfs",
"zpool",
{
"type": "battery",
"temp": true
},
"poweradapter",
"player",
"media",
{
"type": "publicip",
"timeout": 1000
},
{
"type": "localip",
"showIpv6": true,
"showMac": true,
"showSpeed": true,
"showMtu": true,
"showLoop": true,
"showFlags": true,
"showAllIps": true
},
"dns",
"wifi",
"datetime",
"locale",
"vulkan",
"opengl",
"opencl",
"users",
// "bluetooth", // doesn't work on macOS because it requires bluetooth permissions
// "bluetoothradio",
"sound",
"camera",
"gamepad",
"mouse",
"keyboard",
{
"type": "weather",
"timeout": 1000
},
"netio",
"diskio",
{
"type": "physicaldisk",
"temp": true
},
"tpm",
"version",
"break",
"colors"
]
}

View file

@ -0,0 +1,157 @@
// Load with --load-config examples/2.jsonc
// Note that you must replace the image path to an existing image to display it.
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"padding": {
"top": 2
}
},
"display": {
"separator": " -> ",
"constants": [
"──────────────────────────────"
]
},
"modules": [
{
"type": "custom",
"format": "┌{$1}{$1}┐",
"outputColor": "90"
},
{
"type": "title",
"keyWidth": 10
},
{
"type": "custom",
"format": "└{$1}{$1}┘",
"outputColor": "90"
},
{
"type": "custom",
"format": " {#90} {#31} {#32} {#33} {#34} {#35} {#36} {#37} {#38} {#39}  {#38} {#37} {#36} {#35} {#34} {#33} {#32} {#31} {#90}"
},
{
"type": "custom",
"format": "┌{$1}{$1}┐",
"outputColor": "90"
},
{
"type": "os",
"key": "{icon} OS",
"keyColor": "yellow"
},
{
"type": "kernel",
"key": "│ ├",
"keyColor": "yellow"
},
{
"type": "packages",
"key": "│ ├󰏖",
"keyColor": "yellow"
},
{
"type": "shell",
"key": "│ └",
"keyColor": "yellow"
},
{
"type": "wm",
"key": " DE/WM",
"keyColor": "blue"
},
{
"type": "lm",
"key": "│ ├󰧨",
"keyColor": "blue"
},
{
"type": "wmtheme",
"key": "│ ├󰉼",
"keyColor": "blue"
},
{
"type": "icons",
"key": "│ ├󰀻",
"keyColor": "blue"
},
{
"type": "terminal",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "wallpaper",
"key": "│ └󰸉",
"keyColor": "blue"
},
{
"type": "host",
"key": "󰌢 PC",
"keyColor": "green"
},
{
"type": "cpu",
"key": "│ ├󰻠",
"keyColor": "green"
},
{
"type": "gpu",
"key": "│ ├󰍛",
"keyColor": "green"
},
{
"type": "disk",
"key": "│ ├",
"keyColor": "green"
},
{
"type": "memory",
"key": "│ ├󰑭",
"keyColor": "green"
},
{
"type": "swap",
"key": "│ ├󰓡",
"keyColor": "green"
},
{
"type": "uptime",
"key": "│ ├󰅐",
"keyColor": "green"
},
{
"type": "display",
"key": "│ └󰍹",
"keyColor": "green"
},
{
"type": "sound",
"key": " SND",
"keyColor": "cyan"
},
{
"type": "player",
"key": "│ ├󰥠",
"keyColor": "cyan"
},
{
"type": "media",
"key": "│ └󰝚",
"keyColor": "cyan"
},
{
"type": "custom",
"format": "└{$1}{$1}┘",
"outputColor": "90"
},
"break",
{
"type": "custom",
"format": " {#90} {#31} {#32} {#33} {#34} {#35} {#36} {#37} {#38} {#39}  {#38} {#37} {#36} {#35} {#34} {#33} {#32} {#31} {#90}"
}
]
}

View file

@ -0,0 +1,40 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small"
},
"display": {
"separator": "-> ",
"color": {
"separator": "red"
}
},
"modules": [
{
"key": "Distro ",
"type": "os"
},
{
"key": "Shell ",
"type": "shell"
},
{
"key": "Terminal ",
"type": "terminal"
},
{
"key": "Display ",
"type": "display"
},
{
"key": "Backlight ",
"type": "brightness"
},
"break",
{
"type": "colors",
"paddingLeft": 6,
"symbol": "circle"
}
]
}

View file

@ -0,0 +1,115 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "none"
},
"display": {
"separator": "-> ",
"color": {
"separator": "1" // Bold
},
"constants": [
"───────────────────────────"
],
"key": {
"type": "both",
"paddingLeft": 4
}
},
"modules": [
{
"type": "title",
"format": " {user-name-colored}{at-symbol-colored}{host-name-colored}"
},
"break",
{
"type": "custom",
"format": "┌{$1} {#1}System Information{#} {$1}┐"
},
"break",
{
"key": "OS ",
"keyColor": "red",
"type": "os"
},
{
"key": "Machine ",
"keyColor": "green",
"type": "host"
},
{
"key": "Kernel ",
"keyColor": "magenta",
"type": "kernel"
},
{
"key": "Uptime ",
"keyColor": "red",
"type": "uptime"
},
{
"key": "Resolution ",
"keyColor": "yellow",
"type": "display",
"compactType": "original-with-refresh-rate"
},
{
"key": "WM ",
"keyColor": "blue",
"type": "wm"
},
{
"key": "DE ",
"keyColor": "green",
"type": "de"
},
{
"key": "Shell ",
"keyColor": "cyan",
"type": "shell"
},
{
"key": "Terminal ",
"keyColor": "red",
"type": "terminal"
},
{
"key": "CPU ",
"keyColor": "yellow",
"type": "cpu"
},
{
"key": "GPU ",
"keyColor": "blue",
"type": "gpu"
},
{
"key": "Memory ",
"keyColor": "magenta",
"type": "memory"
},
{
"key": "Local IP ",
"keyColor": "red",
"type": "localip",
"compact": true
},
{
"key": "Public IP ",
"keyColor": "cyan",
"type": "publicip",
"timeout": 1000
},
"break",
{
"type": "custom",
"format": "└{$1}────────────────────{$1}┘"
},
"break",
{
"type": "colors",
"paddingLeft": 34,
"symbol": "circle"
}
]
}

View file

@ -0,0 +1,85 @@
// Inspired by Catnap
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small",
"padding": {
"top": 1
}
},
"display": {
"separator": " "
},
"modules": [
{
"key": "╭───────────╮",
"type": "custom"
},
{
"key": "│ {#31} user {#keys}│",
"type": "title",
"format": "{user-name}"
},
{
"key": "│ {#32}󰇅 hname {#keys}│",
"type": "title",
"format": "{host-name}"
},
{
"key": "│ {#33}󰅐 uptime {#keys}│",
"type": "uptime"
},
{
"key": "│ {#34}{icon} distro {#keys}│",
"type": "os"
},
{
"key": "│ {#35} kernel {#keys}│",
"type": "kernel"
},
{
"key": "│ {#36}󰇄 desktop {#keys}│",
"type": "de"
},
{
"key": "│ {#31} term {#keys}│",
"type": "terminal"
},
{
"key": "│ {#32} shell {#keys}│",
"type": "shell"
},
{
"key": "│ {#33}󰍛 cpu {#keys}│",
"type": "cpu",
"showPeCoreCount": true
},
{
"key": "│ {#34}󰉉 disk {#keys}│",
"type": "disk",
"folders": "/"
},
{
"key": "│ {#35} memory {#keys}│",
"type": "memory"
},
{
"key": "│ {#36}󰩟 network {#keys}│",
"type": "localip",
"format": "{ipv4} ({ifname})"
},
{
"key": "├───────────┤",
"type": "custom"
},
{
"key": "│ {#39} colors {#keys}│",
"type": "colors",
"symbol": "circle"
},
{
"key": "╰───────────╯",
"type": "custom"
}
]
}

View file

@ -0,0 +1,88 @@
// Inspired by Catnap
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small"
},
"display": {
"separator": "",
"key": {
"width": 15
}
},
"modules": [
{
// draw borders first to make colors of left and right border consistant
"key": " user",
"type": "title",
"format": "{user-name}",
"keyColor": "31"
},
{
"key": "󰇅 hname",
"type": "title",
"format": "{host-name}",
"keyColor": "32"
},
{
"key": "󰅐 uptime",
"type": "uptime",
"keyColor": "33"
},
{
"key": "{icon} distro",
"type": "os",
"keyColor": "34"
},
{
"key": " kernel",
"type": "kernel",
"keyColor": "35"
},
{
"key": "󰇄 desktop",
"type": "de",
"keyColor": "36"
},
{
"key": " term",
"type": "terminal",
"keyColor": "31"
},
{
"key": " shell",
"type": "shell",
"keyColor": "32"
},
{
"key": "󰍛 cpu",
"type": "cpu",
"showPeCoreCount": true,
"keyColor": "33"
},
{
"key": "󰉉 disk",
"type": "disk",
"folders": "/",
"keyColor": "34"
},
{
"key": " memory",
"type": "memory",
"keyColor": "35"
},
{
"key": "󰩟 network",
"type": "localip",
"format": "{ipv4} ({ifname})",
"keyColor": "36"
},
{
"key": " colors",
"type": "colors",
"symbol": "circle",
"keyColor": "39"
}
]
}

View file

@ -0,0 +1,85 @@
// Inspired by Catnap
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small",
"padding": {
"top": 1
}
},
"display": {
"separator": " "
},
"modules": [
{
"key": "•••••••••••••",
"type": "custom"
},
{
"key": "• {#31} user {#keys}•",
"type": "title",
"format": "{user-name}"
},
{
"key": "• {#32}󰇅 hname {#keys}•",
"type": "title",
"format": "{host-name}"
},
{
"key": "• {#33}󰅐 uptime {#keys}•",
"type": "uptime"
},
{
"key": "• {#34}{icon} distro {#keys}•",
"type": "os"
},
{
"key": "• {#35} kernel {#keys}•",
"type": "kernel"
},
{
"key": "• {#36}󰇄 desktop {#keys}•",
"type": "de"
},
{
"key": "• {#31} term {#keys}•",
"type": "terminal"
},
{
"key": "• {#32} shell {#keys}•",
"type": "shell"
},
{
"key": "• {#33}󰍛 cpu {#keys}•",
"type": "cpu",
"showPeCoreCount": true
},
{
"key": "• {#34}󰉉 disk {#keys}•",
"type": "disk",
"folders": "/"
},
{
"key": "• {#35} memory {#keys}•",
"type": "memory"
},
{
"key": "• {#36}󰩟 network {#keys}•",
"type": "localip",
"format": "{ipv4} ({ifname})"
},
{
"key": "•••••••••••••",
"type": "custom"
},
{
"key": "• {#39} colors {#keys}•",
"type": "colors",
"symbol": "circle"
},
{
"key": "•••••••••••••",
"type": "custom"
}
]
}

View file

@ -0,0 +1,85 @@
// Inspired by Catnap
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small",
"padding": {
"top": 1
}
},
"display": {
"separator": " "
},
"modules": [
{
"key": "╔═══════════╗",
"type": "custom"
},
{
"key": "║ {#31} user {#keys}║",
"type": "title",
"format": "{user-name}"
},
{
"key": "║ {#32}󰇅 hname {#keys}║",
"type": "title",
"format": "{host-name}"
},
{
"key": "║ {#33}󰅐 uptime {#keys}║",
"type": "uptime"
},
{
"key": "║ {#34}{icon} distro {#keys}║",
"type": "os"
},
{
"key": "║ {#35} kernel {#keys}║",
"type": "kernel"
},
{
"key": "║ {#36}󰇄 desktop {#keys}║",
"type": "de"
},
{
"key": "║ {#31} term {#keys}║",
"type": "terminal"
},
{
"key": "║ {#32} shell {#keys}║",
"type": "shell"
},
{
"key": "║ {#33}󰍛 cpu {#keys}║",
"type": "cpu",
"showPeCoreCount": true
},
{
"key": "║ {#34}󰉉 disk {#keys}║",
"type": "disk",
"folders": "/"
},
{
"key": "║ {#35} memory {#keys}║",
"type": "memory"
},
{
"key": "║ {#36}󰩟 network {#keys}║",
"type": "localip",
"format": "{ipv4} ({ifname})"
},
{
"key": "╠═══════════╣",
"type": "custom"
},
{
"key": "║ {#39} colors {#keys}║",
"type": "colors",
"symbol": "circle"
},
{
"key": "╚═══════════╝",
"type": "custom"
}
]
}

View file

@ -0,0 +1,87 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small",
"padding": {
"top": 1,
"right": 2
}
},
"display": {
"separator": "> ",
"color": {
"separator": "red"
},
"constants": [
"───────────────────────────────────────────────────────────────────────────",
"│\u001b[75C│\u001b[75D"
]
},
"modules": [
{
"format": "{#1}{#keys}╭{$1}╮\u001b[76D {user-name-colored}{at-symbol-colored}{host-name-colored} 🖥 ",
"type": "title"
},
{
"key": "{$2}{#31} kernel ",
"type": "kernel"
},
{
"key": "{$2}{#32}󰅐 uptime ",
"type": "uptime"
},
{
"key": "{$2}{#33}{icon} distro ",
"type": "os"
},
{
"key": "{$2}{#34}󰇄 desktop ",
"type": "de"
},
{
"key": "{$2}{#35} term ",
"type": "terminal"
},
{
"key": "{$2}{#36} shell ",
"type": "shell"
},
{
"key": "{$2}{#35}󰍛 cpu ",
"type": "cpu",
"showPeCoreCount": true,
"temp": true
},
{
"key": "{$2}{#34}󰍛 gpu ",
"type": "gpu"
},
{
"key": "{$2}{#33}󰉉 disk ",
"type": "disk",
"folders": "/"
},
{
"key": "{$2}{#32} memory ",
"type": "memory"
},
{
"key": "{$2}{#31}󰩟 network ",
"type": "localip",
"format": "{ipv4} ({ifname})"
},
{
"format": "{#1}{#keys}├{$1}┤",
"type": "custom"
},
{
"key": "{$2}{#39} colors ",
"type": "colors",
"symbol": "circle"
},
{
"format": "{#1}{#keys}╰{$1}╯",
"type": "custom"
}
]
}

View file

@ -0,0 +1,87 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small",
"padding": {
"top": 1,
"right": 2
}
},
"display": {
"separator": "> ",
"color": {
"separator": "red"
},
"constants": [
"═══════════════════════════════════════════════════════════════════════════",
"║\u001b[75C║\u001b[75D"
]
},
"modules": [
{
"format": "{#1}{#keys}╔{$1}╗\u001b[76D {user-name-colored}{at-symbol-colored}{host-name-colored} 💻 ",
"type": "title"
},
{
"key": "{$2}{#31} kernel ",
"type": "kernel"
},
{
"key": "{$2}{#32}󰅐 uptime ",
"type": "uptime"
},
{
"key": "{$2}{#33}{icon} distro ",
"type": "os"
},
{
"key": "{$2}{#34}󰇄 desktop ",
"type": "de"
},
{
"key": "{$2}{#35} term ",
"type": "terminal"
},
{
"key": "{$2}{#36} shell ",
"type": "shell"
},
{
"key": "{$2}{#35}󰍛 cpu ",
"type": "cpu",
"showPeCoreCount": true,
"temp": true
},
{
"key": "{$2}{#34}󰍛 gpu ",
"type": "gpu"
},
{
"key": "{$2}{#33}󰉉 disk ",
"type": "disk",
"folders": "/"
},
{
"key": "{$2}{#32} memory ",
"type": "memory"
},
{
"key": "{$2}{#31}󰩟 network ",
"type": "localip",
"format": "{ipv4} ({ifname})"
},
{
"format": "{#1}{#keys}╠{$1}╣",
"type": "custom"
},
{
"key": "{$2}{#39} colors ",
"type": "colors",
"symbol": "circle"
},
{
"format": "{#1}{#keys}╚{$1}╝",
"type": "custom"
}
]
}

View file

@ -0,0 +1,189 @@
// _____ _____ _____ _____ _____ _____ _____ _____ _____
// | __| _ | __|_ _| __| __|_ _| | | |
// | __| |__ | | | | __| __| | | | --| |
// |__| |__|__|_____| |_| |__| |_____| |_| |_____|__|__|
//
// By CarterLi - https://github.com/CarterLi
// Homepage - https://github.com/fastfetch-cli/fastfetch
// config.jsonc - @niri-san
// pokemon-colorscripts - https://gitlab.com/phoneybadger/pokemon-colorscripts
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"source": " _____ _____ _____ _____ _____ _____ _____ _____ _____\n| __| _ | __|_ _| __| __|_ _| | | |\n| __| |__ | | | | __| __| | | | --| |\n|__| |__|__|_____| |_| |__| |_____| |_| |_____|__|__|",
"type": "data",
"position": "top",
"padding": {
"right": 2
}
},
"display": {
"separator": " - "
},
"modules": [
{
"type": "custom", // HardwareInfo
"format": "• {#green}SYSTEM INFORMATION"
},
{
"type": "host",
"key": "HOST",
"format": "{name}{?vendor} ({vendor}){?}",
"keyColor": "green"
},
{
"type": "chassis",
"key": "COMPUTER TYPE",
"keyColor": "green"
},
{
"type": "cpu",
"key": "CPU",
"keyColor": "green"
},
{
"type": "gpu",
"key": "GPU",
"keyColor": "green"
},
{
"type": "memory",
"key": "MEMORY USED",
"keyColor": "green"
},
{
"type": "swap",
"key": "SWAP USED",
"keyColor": "green"
},
{
"type": "disk",
"key": "DISK",
"folders": "/",
"keyColor": "green"
},
{
"type": "custom", // SoftwareInfo
"format": "• {#red}SOFTWARE INFORMATION"
},
{
"type": "os",
"key": "DISTRO",
"keyColor": "red"
},
{
"type": "disk",
"folders": "/", // Use "/System/Volumes/VM" or something else on macOS
"format": "{create-time}",
"key": "INSTALLED DATE",
"keyColor": "red"
},
{
"type": "kernel",
"key": "KERNEL",
"keyColor": "red"
},
{
"type": "packages",
"key": "PACKAGES",
"keyColor": "red"
},
{
"type": "uptime",
"key": "UPTIME",
"keyColor": "red"
},
{
"type": "custom", // DisplayInfo
"format": "• {#blue}DISPLAY INFORMATION"
},
{
"type": "de",
"key": "DESKTOP ENVIRONMENT",
"keyColor": "blue"
},
{
"type": "lm",
"key": "LOGIN MANAGER",
"format": "{type}",
"keyColor": "blue"
},
{
"type": "wm",
"key": "WM",
"keyColor": "blue"
},
{
"type": "wmtheme",
"key": "WM THEME",
"keyColor": "blue"
},
{
"type": "display",
"key": "MONITOR ({name})",
"keyColor": "blue",
"format": "{width}x{height} @ {refresh-rate} Hz - {physical-width}x{physical-height} mm ({inch} inches, {ppi} ppi)"
},
{
"type": "custom", // DesignInfo
"format": "• {#yellow}DESIGN INFORMATION"
},
{
"type": "wallpaper",
"key": "WALLPAPER",
"keyColor": "yellow"
},
{
"type": "theme",
"key": "KDE THEME",
"format": "{1}",
"keyColor": "yellow"
},
{
"type": "icons",
"key": "ICON THEME",
"format": "{1}",
"keyColor": "yellow"
},
{
"type": "font",
"key": "FONT",
"format": "{?1}{1} [Qt]{?}{/1}Unknown", // Remove "[Qt]" if not using Qt
"keyColor": "yellow"
},
{
"type": "terminalfont",
"key": "TERMINAL FONT",
"keyColor": "yellow"
},
{
"type": "cursor",
"key": "CURSOR",
"keyColor": "yellow"
},
{
"type": "custom", // OtherInfo
"format": "• {#cyan}VARIOUS INFORMATION"
},
{
"type": "media",
"key": "NOW PLAYING",
"format": "{?artist}{artist} - {?}{title}",
"keyColor": "cyan"
},
{
"type": "weather",
"key": "WEATHER",
"timeout": 1000,
"keyColor": "cyan"
},
{
"type": "version",
"key": "INFO",
"keyColor": "cyan"
},
"break",
"colors",
"break"
]
}

View file

@ -0,0 +1,88 @@
// Load with --load-config examples/2.jsonc
// Note that you must replace the image path to an existing image to display it.
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
// "logo": {
// "type": "iterm",
// "source": "~/Desktop/apple1.png",
// "width": 28,
// "height": 12
// },
"display": {
"separator": "  ",
"constants": [
"─────────────────" // {$1}, used in Custom module
],
"key": {
"type": "icon",
"paddingLeft": 2
}
},
"modules": [
{
"type": "custom", // HardwareStart
// {#1} is equivalent to `\u001b[1m`. {#} is equivalent to `\u001b[m`
"format": "┌{$1} {#1}Hardware Information{#} {$1}┐"
},
"host",
"cpu",
"gpu",
"disk",
"memory",
"swap",
"display",
"brightness",
"battery",
"poweradapter",
"bluetooth",
"sound",
"gamepad",
{
"type": "custom", // SoftwareStart
"format": "├{$1} {#1}Software Information{#} {$1}┤"
},
{
"type": "title",
"keyIcon": "",
"key": "Title", // Title module has no key by default, so that icon is not displayed
"format": "{user-name}@{host-name}"
},
"os",
"kernel",
"lm",
"de",
"wm",
"shell",
"terminal",
"terminalfont",
"theme",
"icons",
"wallpaper",
"packages",
"uptime",
"media",
{
"type": "localip",
"compact": true
},
{
"type": "publicip",
"timeout": 1000
},
{
"type": "wifi",
"format": "{ssid}"
},
"locale",
{
"type": "custom", // InformationEnd
"format": "└{$1}──────────────────────{$1}┘"
},
{
"type": "colors",
"paddingLeft": 2,
"symbol": "circle"
}
]
}

View file

@ -0,0 +1,177 @@
// Inspired by https://github.com/usgraphics/TR-100
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": null,
"display": {
"pipe": true,
"key": {
"width": 16
},
"separator": "│ ",
"percent": {
"type": ["bar", "hide-others"]
},
"bar": {
"border": null,
"char": {
"elapsed": "█",
"total": "░"
},
"width": 40
},
"constants": [
"\u001b[42C"
]
},
"modules": [
{
"type": "custom",
"format": "┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐"
},
{
"type": "custom",
"format": "├┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┤"
},
{
"type": "version",
"key": " ",
"format": "│ FASTFETCH v{version} │"
},
{
"type": "custom",
"format": "│ TR-100 MACHINE REPORT │"
},
{
"type": "custom",
"format": "├────────────┬──────────────────────────────────────────┤"
},
{
"type": "os",
"key": "│ OS │{$1}"
},
{
"type": "kernel",
"key": "│ KERNEL │{$1}"
},
{
"type": "custom",
"format": "├────────────┼──────────────────────────────────────────┤"
},
{
"type": "title",
"key": "│ HOSTNAME │{$1}",
"format": "{host-name}"
},
{
"type": "localip",
"key": "│ CLIENT IP │{$1}",
"format": "{ipv4}"
},
{
"type": "localip",
"key": "│ MAC ADDR │{$1}",
"format": "{mac} ({ifname})",
"showIpv4": false,
"showMac": true
},
{
"type": "dns",
"key": "│ DNS │{$1}",
"showType": "ipv4"
},
{
"type": "title",
"key": "│ USER │{$1}",
"format": "{user-name}"
},
{
"type": "host",
"key": "│ MACHINE │{$1}",
"format": "{name}"
},
{
"type": "custom",
"format": "├────────────┼──────────────────────────────────────────┤"
},
{
"type": "cpu",
"key": "│ PROCESSOR │{$1}",
"format": "{name}"
},
{
"type": "cpu",
"key": "│ CORES │{$1}",
"format": "{cores-physical} PHYSICAL CORES / {cores-logical} THREADS",
"showPeCoreCount": false
},
{
"type": "cpu",
"key": "│ CPU FREQ │{$1}",
"format": "{freq-max}{/freq-max}{freq-base}{/}"
},
{
"type": "loadavg",
"compact": false,
"key": "│ LOAD {duration>2}m │{$1}" // pad duration to 2 chars
},
{
"type": "custom",
"format": "├────────────┼──────────────────────────────────────────┤"
},
{
"type": "memory",
"key": "│ MEMORY │{$1}",
"format": "{used} / {total} [{percentage}]",
"percent": {
"type": ["num"]
}
},
{
"type": "memory",
"key": "│ USAGE │{$1}",
"format": "",
"percent": {
"type": ["bar", "hide-others"]
}
},
{
"type": "custom",
"format": "├────────────┼──────────────────────────────────────────┤"
},
{
"type": "disk",
"key": "│ VOLUME │{$1}",
"format": "{size-used} / {size-total} [{size-percentage}]",
"folders": "/",
"percent": {
"type": ["num"]
}
},
{
"type": "disk",
"key": "│ DISK USAGE │{$1}",
"format": "",
"percent": {
"type": ["bar", "hide-others"]
}
},
{
"type": "custom",
"format": "├────────────┼──────────────────────────────────────────┤"
},
{
"type": "users",
"key": "│ LAST LOGIN │{$1}",
"format": "{login-time}{?client-ip} ({client-ip})",
"myselfOnly": true
},
{
"type": "uptime",
"key": "│ UPTIME │{$1}"
},
{
"type": "custom",
"format": "└────────────┴──────────────────────────────────────────┘"
}
]
}

View file

@ -0,0 +1,48 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small"
},
"display": {
"constants": [
"██ "
]
},
"modules": [
{
"key": "{$1}Distro",
"keyColor": "38;5;210",
"type": "os"
},
{
"key": "{$1}Kernel",
"keyColor": "38;5;84",
"type": "kernel"
},
{
"key": "{$1}Shell",
"keyColor": "38;5;147",
"type": "shell"
},
{
"key": "{$1}Packages",
"keyColor": "38;5;200",
"type": "packages"
},
{
"key": "{$1}WM",
"keyColor": "38;5;44",
"type": "wm"
},
{
"key": "{$1}CPU",
"keyColor": "38;5;75",
"type": "cpu"
},
{
"key": "{$1}Memory",
"keyColor": "38;5;123",
"type": "memory"
}
]
}

View file

@ -0,0 +1,113 @@
// Designed for Arch Linux
// Modified from: https://github.com/fastfetch-cli/fastfetch/pull/1025#issuecomment-2177566138
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"source": "arch3",
"color": {
"1": "red",
"2": "yellow"
}
},
"display": {
"color": {
"separator": "blue"
},
"separator": " | ",
"constants": [
">-----------<+>---------------------------------------------<"
]
},
"modules": [
{
"type": "kernel",
"key": " /\\rch Linux",
"keyColor": "magenta"
},
{
"type": "custom",
"format": "{$1}",
"outputColor": "separator"
},
{
"type": "uptime",
"key": " Uptime ",
"keyColor": "green"
},
{
"type": "shell",
"key": " Shell ",
"keyColor": "green"
},
{
"type": "terminal",
"key": " Terminal ",
"keyColor": "green"
},
{
"type": "terminalfont",
"key": " Font ",
"keyColor": "green"
},
{
"type": "packages",
"key": " Packages ",
"keyColor": "green"
},
{
"type": "localip",
"key": " Local IP ",
"keyColor": "green"
},
{
"type": "custom",
"format": "{$1}",
"outputColor": "separator"
},
{
"type": "display",
"key": " Display ",
"keyColor": "cyan"
},
{
"type": "cpu",
"key": " CPU ",
"keyColor": "cyan"
},
{
"type": "gpu",
"key": " GPU ",
"keyColor": "cyan"
},
{
"type": "memory",
"key": " RAM ",
"keyColor": "cyan"
},
{
"type": "swap",
"key": " SWAP ",
"keyColor": "cyan"
},
{
"type": "disk",
"key": " Disk ",
"keyColor": "cyan"
},
{
"type": "battery",
"key": " Battery ",
"keyColor": "cyan"
},
{
"type": "custom",
"format": "{$1}",
"outputColor": "separator"
},
"break",
{
"type": "colors",
"paddingLeft": 15
}
]
}

View file

@ -0,0 +1,63 @@
// designed for presenting Vanilla Linux
// inspired from imstilllearnin's Vanilla Logo Ultra
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small"
},
"display": {
"color": {
"output": "cyan"
},
"separator": ""
},
"modules": [
{
"type": "kernel",
"key": "[_Kernel___> ",
"keyColor": "blue"
},
{
"type": "packages",
"outputColor": "white",
"key": " [_Packages_> ",
"keyColor": "green"
},
{
"type": "localip",
"outputColor": "white",
"key": " [_Local_IP_> ",
"keyColor": "green"
},
{
"type": "memory",
"format": "[{3}] {1} / {2}",
"key": " [_RAM______> ",
"keyColor": "magenta"
},
{
"type": "swap",
"format": "[{3}] {1} / {2}",
"key": " [_SWAP_____> ",
"keyColor": "magenta"
},
{
"type": "disk",
"format": "[{3}] {1} / {2} {9}",
"key": " [_Disk_____> ",
"keyColor": "magenta"
},
{
"type": "battery",
"format": "[{4}] {5}",
"key": " [_Battery__> ",
"keyColor": "magenta"
},
"break",
{
"type": "colors",
"paddingLeft": 9,
"symbol": "circle"
}
]
}

View file

@ -0,0 +1,152 @@
// By jan-rex
// Modified from: https://github.com/fastfetch-cli/fastfetch/discussions/1269
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"padding": {
"top": 2
}
},
"display": {
"separator": "",
"constants": [
// CONSTANT {$1} - COLOR BACKGROUND FOR KEY
"\u001b[48;2;43;43;69m",
// CONSTANT {$2} - COLOR BACKGROUND FOR OUTPUT
"\u001b[48;2;56;59;78m",
// CONSTANT {$3} - VERTICAL BARS AT START AND 75th CHARACTERS FORWARD AND BACKWARD
"\u001b[90m│ │\u001b[60D\u001b[39m",
]
},
"modules": [
// CUSTOM - Top UI bar
{
"type": "custom",
"key": "{#90}{$1}╭─────────────╮",
"format": "{#90}{$2}╭────────────────────────────────────────────────────────────╮",
},
{
"type": "title",
"key": "{#90}{$1}│ {#92}User {#90}│",
"format": "{$2}{$3}{user-name} {#2}[{home-dir}]"
},
{
"type": "users",
"key": "{#90}{$1}│ {#92}Users {#90}│",
"myselfOnly": false,
"format": "{$2}{$3}{1}@{host-name}{/host-name}localhost{/}{?client-ip} {#2}[IP:{client-ip}]{?} [Login time: {login-time}]"
},
{
"type": "datetime",
"key": "{#90}{$1}│ {#92}Datetime {#90}│",
"format": "{$2}{$3}{year}-{month-pretty}-{day-in-month} {hour-pretty}:{minute-pretty}:{second-pretty} [{weekday}] [W{week}] [UTC{offset-from-utc}]"
},
{
"type": "title",
"key": "{#90}{$1}│ {#93}Host {#90}│",
"format": "{$2}{$3}{host-name}"
},
{
"type": "host",
"key": "{#90}{$1}│ {#93}Machine {#90}│",
"format": "{$2}{$3}{name} {#2}{version}"
},
{
"type": "os",
"key": "{#90}{$1}│ {#93}OS {#90}│",
"format": "{$2}{$3}{?pretty-name}{pretty-name}{?}{/pretty-name}{name}{/} {codename} {#2}[v{version}] [{arch}]"
},
{
"type": "kernel",
"key": "{#90}{$1}│ {#93}Kernel {#90}│",
"format": "{$2}{$3}{sysname} {#2}[v{release}]"
},
{
"type": "uptime",
"key": "{#90}{$1}│ {#93}Uptime {#90}│",
"format": "{$2}{$3}{?days}{days} Days + {?}{hours}:{minutes}:{seconds}"
},
{
"type": "cpu",
"key": "{#90}{$1}│ {#91}CPU {#90}│",
"showPeCoreCount": true,
"temp": true,
"format": "{$2}{$3}{name} {#2}[C:{core-types}] [{freq-max}]"
},
{
"type": "gpu",
"key": "{#90}{$1}│ {#91}GPU {#90}│",
"detectionMethod": "auto",
"driverSpecific": true,
"format": "{$2}{$3}{name} {#2}[C:{core-count}]{?frequency} [{frequency}]{?} [{type}]"
},
{
"type": "memory",
"key": "{#90}{$1}│ {#91}Memory {#90}│",
"format": "{$2}{$3}{used} / {total} ({percentage}{$2})"
},
{
"type": "disk",
"key": "{#90}{$1}│ {#91}Disk {#90}│",
"format": "{$2}{$3}{size-used} / {size-total} ({size-percentage}{$2})"
},
{
"type": "poweradapter",
"key": "{#90}{$1}│ {#91}Power {#90}│",
"format": "{$2}{$3}{name}"
},
{
"type": "terminal",
"key": "{#90}{$1}│ {#95}Terminal {#90}│",
"format": "{$2}{$3}{pretty-name} {#2}[{version}] [PID:{pid}]"
},
{
"type": "terminalfont",
"key": "{#90}{$1}│ {#95}Font {#90}│",
"format": "{$2}{$3}{name} {#2}[{size}]"
},
{
"type": "shell",
"key": "{#90}{$1}│ {#95}Shell {#90}│",
"format": "{$2}{$3}{pretty-name} {#2}[v{version}] [PID:{pid}]"
},
{
// localip IPv4
"type": "localip",
"key": "{#90}{$1}│ {#94}Local IPv4 {#90}│",
"showPrefixLen": true,
"showIpv4": true,
"showIpv6": false,
"showMtu": true,
"format": "{$2}{$3}{ifname}: {ipv4} {#2}[MTU:{mtu}]"
},
{
// localip IPv6
"type": "localip",
"key": "{#90}{$1}│ {#94}Local IPv6 {#90}│",
"showPrefixLen": true,
"showIpv4": false,
"showIpv6": true,
"showMtu": true,
"format": "{$2}{$3}{ifname}: {ipv6} {#2}[MTU:{mtu}]"
},
{
"type": "publicip",
"key": "{#90}{$1}│ {#94}Public IPv4 {#90}│",
"ipv6": false,
"format": "{$2}{$3}{ip} {#2}[{location}]"
},
{
"type": "publicip",
"key": "{#90}{$1}│ {#94}Public IPv6 {#90}│",
"ipv6": true,
"format": "{$2}{$3}{ip} {#2}[{location}]"
},
// CUSTOM - Button UI bar
{
"type": "custom",
"key": "{#90}{$1}╰─────────────╯",
"format": "{#90}{$2}╰────────────────────────────────────────────────────────────╯",
}
]
}

View file

@ -0,0 +1,315 @@
// Based on #1576
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"display": {
"color": {
"keys": "blue"
},
"separator": "",
// Constants are reusable strings referenced by {$1}, {$2}, etc.
// These contain ANSI escape codes for cursor positioning
"constants": [
"──────────────────────────────────────────────", // {$1} - horizontal line for borders
"\u001b[47D", // {$2} - move cursor left 47 columns
"\u001b[47C", // {$3} - move cursor right 47 columns
"\u001b[46C" // {$4} - move cursor right 46 columns
],
"brightColor": false
},
"modules": [
{
"type": "version",
"key": "┌───────────────┬─{$1}┐\u001b[41D",
"format": "\u001b[1m{#keys} {1} - {2} "
},
{
"type": "os",
// Key format breakdown for OS module:
// "│ {icon} \u001b[s{sysname}\u001b[u\u001b[10C│{$3}│{$2}"
//
// - Left border of key block
// {icon} - OS icon (defined internally by fastfetch)
// \u001b[s - ANSI escape: save cursor position (ESC[s)
// {sysname} - Format variable: system name (e.g., "Linux", "Darwin")
// \u001b[u - ANSI escape: restore cursor to saved position (ESC[u)
// Necessary because the length of `{sysname}` differs between different platforms
// \u001b[10C - ANSI escape: move cursor right 10 columns (ESC[10C)
// - Right border of key block (always 10 columns from left border)
// {$3} - Reference to constants[2]: move cursor right 47 columns
// - Right border of value block
// {$2} - Reference to constants[1]: move cursor left 47 columns
//
// This creates a fixed-width layout where the key block is exactly 10 columns wide,
// regardless of the actual content length. The cursor manipulation ensures proper
// alignment for the table-like structure.
"key": "│ {icon} \u001b[s{sysname}\u001b[u\u001b[10C│{$3}│{$2}"
},
{
"type": "datetime",
"key": "│ {icon} Fetched │{$3}│{$2}",
"format": "{year}-{month-pretty}-{day-pretty} {hour-pretty}:{minute-pretty}:{second-pretty} {timezone-name}"
},
{
"type": "locale",
"key": "│ {icon} Locale │{$3}│{$2}"
},
// Hardware section with cyan color theme
{
"type": "custom",
"key": "│{#cyan}┌──────────────┬{$1}┐{#keys}│\u001b[37D",
"format": "{#bright_cyan} Hardware "
},
{
"type": "chassis",
// Similar structure but with cyan color formatting:
// {#cyan} - Left border with cyan color
// {icon} - Chassis icon
// Chassis - Fixed label text
// {$4}{#keys}{$2} - Positioning and borders for value area
"key": "│{#cyan}│ {icon} Chassis │{$4}│{#keys}│{$2}"
},
{
"type": "memory",
"key": "│{#cyan}│ {icon} RAM │{$4}│{#keys}│{$2}"
},
{
"type": "swap",
"key": "│{#cyan}│ {icon} SWAP │{$4}│{#keys}│{$2}"
},
{
"type": "cpu",
"key": "│{#cyan}│ {icon} CPU │{$4}│{#keys}│{$2}",
"showPeCoreCount": true
},
{
"type": "gpu",
"key": "│{#cyan}│ {icon} GPU │{$4}│{#keys}│{$2}"
},
{
"type": "disk",
"key": "│{#cyan}│ {icon} Disk │{$4}│{#keys}│{$2}",
"format": "{size-used} \/ {size-total} ({size-percentage}) - {filesystem}",
},
{
"type": "battery",
"key": "│{#cyan}│ {icon} Battery │{$4}│{#keys}│{$2}"
},
{
"type": "custom",
"key": "│{#cyan}└──────────────┴{$1}┘{#keys}│",
"format": ""
},
// Desktop section with green color theme
{
"type": "custom",
"key": "│{#green}┌──────────────┬{$1}┐{#keys}│\u001b[37D",
"format": "{#bright_green} Desktop "
},
{
"type": "de",
"key": "│{#green}│ {icon} Desktop │{$4}│{#keys}│{$2}"
},
{
"type": "wm",
"key": "│{#green}│ {icon} Session │{$4}│{#keys}│{$2}"
},
{
"type": "display",
"key": "│{#green}│ {icon} Display │{$4}│{#keys}│{$2}",
"compactType": "original-with-refresh-rate"
},
{
"type": "gpu",
"key": "│{#green}│ {icon} G-Driver │{$4}│{#keys}│{$2}",
"format": "{driver}"
},
{
"type": "custom",
"key": "│{#green}└──────────────┴{$1}┘{#keys}│",
"format": ""
},
// Terminal section with yellow color theme
{
"type": "custom",
"key": "│{#yellow}┌──────────────┬{$1}┐{#keys}│\u001b[37D",
"format": "{#bright_yellow} Terminal "
},
{
"type": "shell",
"key": "│{#yellow}│ {icon} Shell │{$4}│{#keys}│{$2}"
},
{
"type": "terminal",
"key": "│{#yellow}│ {icon} Terminal │{$4}│{#keys}│{$2}"
},
{
"type": "terminalfont",
"key": "│{#yellow}│ {icon} Term Font │{$4}│{#keys}│{$2}"
},
{
"type": "terminaltheme",
"key": "│{#yellow}│ {icon} Colors │{$4}│{#keys}│{$2}"
},
{
"type": "packages",
"key": "│{#yellow}│ {icon} Packages │{$4}│{#keys}│{$2}"
},
{
"type": "custom",
"key": "│{#yellow}└──────────────┴{$1}┘{#keys}│",
"format": ""
},
// Development section with red color theme
{
"type": "custom",
"key": "│{#red}┌──────────────┬{$1}┐{#keys}│\u001b[39D",
"format": "{#bright_red} Development "
},
{
"type": "command",
"keyIcon": "", // Custom icon override
"key": "│{#red}│ {icon} Rust │{$4}│{#keys}│{$2}",
"text": "rustc --version",
"format": "rustc {~6,13}" // Print 6th to 13th characters (version number)
},
{
"type": "command",
"condition": {
"!system": "Windows" // Posix version
},
"keyIcon": "",
"key": "│{#red}│ {icon} Clang │{$4}│{#keys}│{$2}",
"text": "clang --version | sed -n 's/.*version \\([0-9][0-9.]*\\).*/\\1/p'",
"format": "clang {}"
},
{
"type": "command",
"condition": {
"system": "Windows" // Windows version
},
"keyIcon": "",
"key": "│{#red}│ {icon} Clang │{$4}│{#keys}│{$2}",
"text": "clang --version | findstr version", // Finds the line with "version"
"format": "clang {~-6}" // Prints the last 6 characters (version number)
},
{
"type": "command",
"keyIcon": "",
"key": "│{#red}│ {icon} NodeJS │{$4}│{#keys}│{$2}",
"text": "node --version",
"format": "node {~1}" // {~1} removes first character (v)
},
{
"type": "command",
"keyIcon": "",
"key": "│{#red}│ {icon} Go │{$4}│{#keys}│{$2}",
"text": "go version | cut -d' ' -f3",
"format": "go {~2}" // {~2} removes first 2 characters (go)
},
{
"type": "command",
"keyIcon": "",
"key": "│{#red}│ {icon} Zig │{$4}│{#keys}│{$2}",
"text": "zig version",
"format": "zig {}"
},
{
"type": "editor",
"key": "│{#red}│ {icon} Editor │{$4}│{#keys}│{$2}"
},
{
"type": "command",
"keyIcon": "󰊢",
"key": "│{#red}│ {icon} Git │{$4}│{#keys}│{$2}",
"text": "git version",
"format": "git {~12}"
},
{
"type": "font",
"key": "│{#red}│ {icon} Interface │{$4}│{#keys}│{$2}"
},
{
"type": "custom",
"key": "│{#red}└──────────────┴{$1}┘{#keys}│",
"format": ""
},
// Uptime section with magenta color theme
{
"type": "custom",
"key": "│{#magenta}┌──────────────┬{$1}┐{#keys}│\u001b[36D",
"format": "{#bright_magenta} Uptime "
},
{
"type": "uptime",
"key": "│{#magenta}│ {icon} Uptime │{$4}│{#keys}│{$2}"
},
{
"type": "users",
"myselfOnly": true, // Only show current user
"keyIcon": "",
"key": "│{#magenta}│ {icon} Login │{$4}│{#keys}│{$2}"
},
{
"condition": { // Conditional module: only show on non-macOS
"!system": "macOS"
},
"type": "disk",
"keyIcon": "",
"key": "│{#magenta}│ {icon} OS Age │{$4}│{#keys}│{$2}",
"folders": "/", // Check root filesystem
"format": "{create-time:10} [{days} days]" // Show creation time and age in days
},
{
"condition": { // Conditional module: only show on macOS
"system": "macOS"
},
"type": "disk",
"keyIcon": "",
"key": "│{#magenta}│ {icon} OS Age │{$4}│{#keys}│{$2}",
"folders": "/System/Volumes/VM", // Work around for APFS on macOS
"format": "{create-time:10} [{days} days]"
},
{
"type": "custom",
"key": "│{#magenta}└──────────────┴{$1}┘{#keys}│",
"format": ""
},
{
"type": "custom",
"key": "└─────────────────{$1}┘", // Bottom border of the entire layout
"format": ""
},
// End with color palette and line break
"break", // Add a blank line
"colors" // Display color palette
]
}
/*
Key Format Structure Explanation:
The key format uses a combination of:
1. Unicode box drawing characters ( ) for borders
2. ANSI escape codes for cursor positioning (\u001b[...)
3. Format variables ({icon}, {sysname}, etc.)
4. Constant references ({$1}, {$2}, etc.)
5. Color formatting ({#color})
ANSI Escape Codes Used:
- \u001b[s - Save cursor position (ESC[s)
- \u001b[u - Restore cursor position (ESC[u)
- \u001b[nC - Move cursor right n columns (ESC[nC)
- \u001b[nD - Move cursor left n columns (ESC[nD)
This creates a table-like layout with fixed column widths and proper alignment,
regardless of the actual content length in each field.
For more ANSI escape code reference, see:
https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797#cursor-controls
*/

View file

@ -0,0 +1,165 @@
// Modified from: 24.jsonc
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"padding": {
"top": 2
}
},
"display": {
"separator": "",
"constants": [
// CONSTANT {$1} - VERTICAL BARS AT START AND 75th CHARACTERS FORWARD AND BACKWARD
"\u001b[90m│ │\u001b[60D\u001b[39m"
]
},
"modules": [
// CUSTOM - Top UI bar
{
"type": "custom",
"key": "{#90}╭ Keys ───────╮",
"format": "{#90}╭ Values ────────────────────────────────────────────────────╮",
},
{
"type": "title",
"key": "{#90}│ {#92}User {#90}│",
"format": "{$1}{user-name} {#2}[{home-dir}]"
},
{
"type": "users",
"key": "{#90}│ {#92}Users {#90}│",
"myselfOnly": false,
"format": "{$1}{1}@{host-name}{/host-name}localhost{/}{?client-ip} {#2}[IP:{client-ip}]{?} [Login time: {login-time}]"
},
{
"type": "datetime",
"key": "{#90}│ {#92}Datetime {#90}│",
"format": "{$1}{year}-{month-pretty}-{day-in-month} {hour-pretty}:{minute-pretty}:{second-pretty} {#2}[{weekday}] [W{week}] [UTC{offset-from-utc}]"
},
{
"type": "title",
"key": "{#90}│ {#93}Host {#90}│",
"format": "{$1}{host-name}"
},
{
"type": "host",
"key": "{#90}│ {#93}Machine {#90}│",
"format": "{$1}{name} {#2}{version}"
},
{
"type": "os",
"key": "{#90}│ {#93}OS {#90}│",
"format": "{$1}{?pretty-name}{pretty-name}{?}{/pretty-name}{name}{/} {codename} {#2}[v{version}] [{arch}]"
},
{
"type": "kernel",
"key": "{#90}│ {#93}Kernel {#90}│",
"format": "{$1}{sysname} {#2}[v{release}]"
},
{
"type": "uptime",
"key": "{#90}│ {#93}Uptime {#90}│",
"format": "{$1}{?days}{days} Days + {?}{hours}:{minutes}:{seconds}"
},
{
"type": "cpu",
"key": "{#90}│ {#91}CPU {#90}│",
"showPeCoreCount": true,
"temp": true,
"format": "{$1}{name} {#2}[C:{core-types}] [{freq-max}]"
},
{
"type": "gpu",
"key": "{#90}│ {#91}GPU {#90}│",
"detectionMethod": "auto",
"driverSpecific": true,
"format": "{$1}{name} {#2}[C:{core-count}]{?frequency} [{frequency}]{?} {#2}[{type}]"
},
{
"type": "memory",
"key": "{#90}│ {#91}Memory {#90}│",
"format": "{$1}{used} / {total} ({percentage})"
},
{
"type": "disk",
"key": "{#90}│ {#91}Disk {#90}│",
"format": "{$1}{size-used} / {size-total} ({size-percentage})"
},
{
"type": "poweradapter",
"key": "{#90}│ {#91}Power {#90}│",
"format": "{$1}{name}"
},
{
"type": "terminal",
"key": "{#90}│ {#95}Terminal {#90}│",
"format": "{$1}{pretty-name} {#2}[{version}] [PID:{pid}]"
},
{
"type": "terminalfont",
"key": "{#90}│ {#95}Font {#90}│",
"format": "{$1}{name} {#2}[{size}]"
},
{
"type": "shell",
"key": "{#90}│ {#95}Shell {#90}│",
"format": "{$1}{pretty-name} {#2}[v{version}] [PID:{pid}]"
},
{
// localip IPv4
"type": "localip",
"key": "{#90}│ {#94}Local IPv4 {#90}│",
"showPrefixLen": true,
"showIpv4": true,
"showIpv6": false,
"showMtu": true,
"format": "{$1}{ifname}: {ipv4} {#2}[MTU:{mtu}]"
},
{
// localip IPv6
"type": "localip",
"key": "{#90}│ {#94}Local IPv6 {#90}│",
"showPrefixLen": true,
"showIpv4": false,
"showIpv6": true,
"showMtu": true,
"format": "{$1}{ifname}: {ipv6} {#2}[MTU:{mtu}]"
},
{
"type": "publicip",
"key": "{#90}│ {#94}Public IPv4 {#90}│",
"ipv6": false,
"format": "{$1}{ip} {#2}[{location}]"
},
{
"type": "publicip",
"key": "{#90}│ {#94}Public IPv6 {#90}│",
"ipv6": true,
"format": "{$1}{ip} {#2}[{location}]"
},
// CUSTOM - Button UI bar
{
"type": "custom",
"key": "{#90}╰─────────────╯",
"format": "{#90}╰────────────────────────────────────────────────────────────╯",
},
"break",
{
"type": "custom",
"key": " ",
"format": "{#90}╭ Colors ───────────────────────────────────────────────────────────────────╮",
},
{
"type": "custom",
"format": "{#90}│ {#40} {#41} {#42} {#43} {#44} {#45} {#46} {#47} {#} {#90}│",
},
{
"type": "custom",
"format": "{#90}│ {#100} {#101} {#102} {#103} {#104} {#105} {#106} {#107} {#} {#90}│",
},
{
"type": "custom",
"format": "{#90}╰───────────────────────────────────────────────────────────────────────────╯",
},
]
}

View file

@ -0,0 +1,49 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small",
"padding": {
"top": 1
}
},
"display": {
"separator": " "
},
"modules": [
"break",
"title",
{
"type": "os",
"key": "os ",
"keyColor": "red"
},
{
"type": "kernel",
"key": "kernel",
"keyColor": "green"
},
{
"type": "host",
"format": "{vendor} {family}",
"key": "host ",
"keyColor": "yellow"
},
{
"type": "packages",
"key": "pkgs ",
"keyColor": "blue"
},
{
"type": "uptime",
"format": "{?days}{days}d {?}{hours}h {minutes}m",
"key": "uptime",
"keyColor": "magenta"
},
{
"type": "memory",
"key": "memory",
"keyColor": "cyan"
},
"break"
]
}

View file

@ -0,0 +1,63 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small"
},
"display": {
"separator": " ",
"key": {
"type": "both"
},
"bar": {
"border": {
"left": "\uee00",
"leftElapsed": "\uee03",
"right": "\uee02",
"rightElapsed": "\uee05"
},
"char": {
"total": "\uee01",
"elapsed": "\uee04"
},
"color": {
"total": null
}
},
"percent": {
"type": [
"bar",
"bar-monochrome"
]
}
},
"modules": [
"title",
"separator",
{
"type": "memory",
"key": "MEM"
},
{
"type": "swap",
"key": "SWP"
},
{
"type": "disk",
"folders": "/",
"key": "DSK"
},
{
"type": "battery",
"key": "BAT"
},
{
"type": "brightness",
"key": "BGT"
},
{
"type": "colors",
"paddingLeft": 6,
"symbol": "circle"
}
]
}

View file

@ -0,0 +1,136 @@
// #1887
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": null,
"display": {
"constants": [
"\u001b[s\u001b[33C│\u001b[u",
" » "
],
"separator": "",
"percent": {
"type": ["num", "bar"]
},
"brightColor": false,
"bar": {
"border": {
"left": "[",
"leftElapsed": "[",
"right": "]",
"rightElapsed": "]"
},
"char": {
"elapsed": "─",
"total": "─"
},
"color": {
"elapsed": "default",
"total": "light_black"
},
"width": 16
},
"color": {
"separator": "default",
"keys": "default",
"output": "default"
}
},
"modules": [
"title",
{
"type": "custom",
"format": "┌────「 {#1}OS{#} 」────────────────────────────┐"
},
{
"type": "os",
"key": "│ {icon}{$2}{$1}"
},
{
"type": "disk",
"folders": "/",
"key": "│ {$1}",
"format": "{size-percentage-bar} {size-percentage}"
},
{
"type": "disk",
"folders": "/",
"key": "│ {$1}",
"format": "{size-used} / {size-total}"
},
{
"type": "custom",
"format": "└────────────────────────────────────────┘"
},
"break",
{
"type": "custom",
"format": "┌────「 {#1}UI{#} 」────────────────────────────┐"
},
{
"type": "wm",
"key": "│ {icon}{$2}{$1}"
},
{
"type": "wmtheme",
"key": "│ {icon}{$2}{$1}"
},
{
"type": "custom",
"key": "│ {$1}"
},
{
"type": "display",
"key": "│ {icon}{$2}{$1}",
"format": "{width}x{height} @ {refresh-rate} Hz"
},
{
"type": "custom",
"key": "│ {$1}"
},
{
"type": "terminal",
"key": "│ {icon}{$2}{$1}"
},
{
"type": "terminalfont",
"key": "│ {icon}{$2}{$1}"
},
{
"type": "custom",
"format": "└────────────────────────────────────────┘"
},
"break",
{
"type": "custom",
"format": "┌────「 {#1}HW{#} 」────────────────────────────┐"
},
{
"type": "cpu",
"key": "│ {icon}{$2}{$1}",
"format": "{name}"
},
{
"type": "gpu",
"key": "│ {icon}{$2}{$1}",
"format": "{name}"
},
{
"type": "custom",
"key": "│ {$1}"
},
{
"type": "memory",
"key": "│ {icon}{$2}{$1}",
"format": "{percentage-bar} {percentage}"
},
{
"type": "memory",
"key": "│ {$1}",
"format": "{used} / {total}"
},
{
"type": "custom",
"format": "└────────────────────────────────────────┘"
}
]
}

View file

@ -0,0 +1,24 @@
// Load with --load-config examples/3.jsonc
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small"
},
"display": {
"size": {
"binaryPrefix": "si"
}
},
"modules": [
"vulkan",
"opengl",
"opencl",
"memory",
{
"type": "disk",
"folders": "/:/home:/boot:/efi"
},
"localip"
]
}

View file

@ -0,0 +1,87 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": null,
"display": {
"key": {
"type": "both",
"paddingLeft": 6,
"width": 17
}
},
"modules": [
{
"type": "custom",
"format": "|---------------------: {#1}Hardware{#} : ---------------------|"
},
"break",
{
"keyColor": "green",
"type": "host"
},
{
"keyColor": "green",
"type": "cpu"
},
{
"keyColor": "yellow",
"type": "memory"
},
{
"keyColor": "yellow",
"type": "swap"
},
{
"type": "custom",
"keyIcon": "",
"key": "Disks"
},
{
"type": "disk",
"key": " ",
"format": " [{mountpoint}] - {size-used} / {size-total} ({size-percentage})"
},
"break",
{
"type": "title",
"format": "|-------------------------------------------------------|\u001b[40D: {#1}{user-name} @ {host-name}{#} :"
},
"break",
{
"type": "os",
"keyColor": "cyan"
},
{
"type": "kernel",
"keyColor": "cyan"
},
{
"type": "packages",
"keyColor": "red",
"key": "Pkgs"
},
{
"type": "shell",
"keyColor": "red"
},
{
"type": "terminal",
"key": "Term",
"keyColor": "red"
},
{
"type": "locale",
"keyColor": "magenta"
},
"break",
{
"type": "custom",
"format": "|---------------------: {#1}Software{#} : ---------------------|"
},
"break",
{
"type": "colors",
"symbol": "circle",
"paddingLeft": 8
}
]
}

View file

@ -0,0 +1,33 @@
// Load with --load-config examples/4.jsonc
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small",
"padding": {
"right": 1
}
},
"display": {
"size": {
"binaryPrefix": "si"
},
"color": "blue",
"separator": "  "
},
"modules": [
{
"type": "datetime",
"key": "Date",
"format": "{1}-{3}-{11}"
},
{
"type": "datetime",
"key": "Time",
"format": "{14}:{17}:{20}"
},
"break",
"player",
"media"
]
}

View file

@ -0,0 +1,27 @@
// Load with --load-config examples/5.jsonc
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": null,
"display": {
"color": "magenta"
},
"modules": [
{
"type": "theme",
"key": "T"
},
{
"type": "icons",
"key": "I"
},
{
"type": "font",
"key": "F"
},
{
"type": "cursor",
"key": "C"
}
]
}

View file

@ -0,0 +1,179 @@
// Load with --load-config examples/2.jsonc
// Note that you must replace the image path to an existing image to display it.
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"display": {
"separator": " "
},
"modules": [
{
"type": "host",
"key": "╭─󰌢",
"keyColor": "green"
},
{
"type": "cpu",
"key": "├─󰻠",
"keyColor": "green"
},
{
"type": "gpu",
"key": "├─󰍛",
"keyColor": "green"
},
{
"type": "disk",
"key": "├─",
"keyColor": "green"
},
{
"type": "memory",
"key": "├─󰑭",
"keyColor": "green"
},
{
"type": "swap",
"key": "├─󰓡",
"keyColor": "green"
},
{
"type": "display",
"key": "├─󰍹",
"keyColor": "green"
},
{
"type": "brightness",
"key": "├─󰃞",
"keyColor": "green"
},
{
"type": "battery",
"key": "├─",
"keyColor": "green"
},
{
"type": "poweradapter",
"key": "├─",
"keyColor": "green"
},
{
"type": "gamepad",
"key": "├─",
"keyColor": "green"
},
{
"type": "bluetooth",
"key": "├─",
"keyColor": "green"
},
{
"type": "sound",
"key": "╰─",
"keyColor": "green"
},
"break",
{
"type": "shell",
"key": "╭─",
"keyColor": "yellow"
},
{
"type": "terminal",
"key": "├─",
"keyColor": "yellow"
},
{
"type": "terminalfont",
"key": "├─",
"keyColor": "yellow"
},
{
"type": "lm",
"key": "├─󰧨",
"keyColor": "yellow"
},
{
"type": "de",
"key": "├─",
"keyColor": "yellow"
},
{
"type": "wm",
"key": "├─",
"keyColor": "yellow"
},
{
"type": "theme",
"key": "├─󰉼",
"keyColor": "yellow"
},
{
"type": "icons",
"key": "├─󰀻",
"keyColor": "yellow"
},
{
"type": "wallpaper",
"key": "╰─󰸉",
"keyColor": "yellow"
},
"break",
{
"type": "title",
"key": "╭─",
"format": "{user-name}@{host-name}",
"keyColor": "blue"
},
{
"type": "os",
"key": "├─{icon}", // Just get your distro's logo off nerdfonts.com
"keyColor": "blue"
},
{
"type": "kernel",
"key": "├─",
"keyColor": "blue"
},
{
"type": "packages",
"key": "├─󰏖",
"keyColor": "blue"
},
{
"type": "uptime",
"key": "├─󰅐",
"keyColor": "blue"
},
{
"type": "media",
"key": "├─󰝚",
"keyColor": "blue"
},
{
"type": "localip",
"key": "├─󰩟",
"compact": true,
"keyColor": "blue"
},
{
"type": "publicip",
"key": "├─󰩠",
"keyColor": "blue",
"timeout": 1000
},
{
"type": "wifi",
"key": "├─",
"format": "{ssid}",
"keyColor": "blue"
},
{
"type": "locale",
"key": "╰─",
"keyColor": "blue"
}
]
}

View file

@ -0,0 +1,138 @@
// Load with --load-config examples/2.jsonc
// Note that you must replace the image path to an existing image to display it.
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"padding": {
"top": 2
}
},
"display": {
"separator": " -> "
},
"modules": [
"title",
"separator",
{
"type": "os",
"key": " OS",
"keyColor": "yellow",
"format": "{2}"
},
{
"type": "os",
"key": "├{icon}", // Just get your distro's logo off nerdfonts.com
"keyColor": "yellow"
},
{
"type": "kernel",
"key": "├",
"keyColor": "yellow"
},
{
"type": "packages",
"key": "├󰏖",
"keyColor": "yellow"
},
{
"type": "shell",
"key": "└",
"keyColor": "yellow"
},
"break",
{
"type": "wm",
"key": " DE/WM",
"keyColor": "blue"
},
{
"type": "lm",
"key": "├󰧨",
"keyColor": "blue"
},
{
"type": "wmtheme",
"key": "├󰉼",
"keyColor": "blue"
},
{
"type": "icons",
"key": "├󰀻",
"keyColor": "blue"
},
{
"type": "terminal",
"key": "├",
"keyColor": "blue"
},
{
"type": "wallpaper",
"key": "└󰸉",
"keyColor": "blue"
},
"break",
{
"type": "host",
"key": "󰌢 PC",
"keyColor": "green"
},
{
"type": "cpu",
"key": "├󰻠",
"keyColor": "green"
},
{
"type": "gpu",
"key": "├󰍛",
"keyColor": "green"
},
{
"type": "disk",
"key": "├",
"keyColor": "green"
},
{
"type": "memory",
"key": "├󰑭",
"keyColor": "green"
},
{
"type": "swap",
"key": "├󰓡",
"keyColor": "green"
},
{
"type": "display",
"key": "├󰍹",
"keyColor": "green"
},
{
"type": "uptime",
"key": "└󰅐",
"keyColor": "green"
},
"break",
{
"type": "sound",
"key": " SOUND",
"keyColor": "cyan"
},
{
"type": "player",
"key": "├󰥠",
"keyColor": "cyan"
},
{
"type": "media",
"key": "└󰝚",
"keyColor": "cyan"
},
"break",
"colors"
]
}

View file

@ -0,0 +1,41 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small"
},
"display": {
"separator": " ",
"color": {
"keys": "magenta"
},
"size": {
"ndigits": 0,
"maxPrefix": "MB"
},
"key": {
"type": "icon"
}
},
"modules": [
{
"type": "title",
"color": {
"user": "green",
"at": "red",
"host": "blue"
}
},
"os",
"kernel",
"memory",
"packages",
"uptime",
{
"type": "colors",
"key": "Colors", // For printing icon
"block": {
"range": [1, 6]
}
}
]
}

View file

@ -0,0 +1,40 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small"
},
"display": {
"key": {
"width": 11
},
"bar": {
"char": {
"elapsed": "=",
"total": "-"
},
"width": 13
},
"percent": {
"type": 2
}
},
"modules": [
"title",
"separator",
"memory",
"swap",
{
"type": "disk",
"folders": "/"
},
{
"type": "battery",
"key": "Battery"
},
{
"type": "colors",
"paddingLeft": 10,
"symbol": "circle"
}
]
}

View file

@ -0,0 +1,57 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"display": {
"size": {
"maxPrefix": "MB",
"ndigits": 0,
"spaceBeforeUnit": "never"
},
"freq": {
"ndigits": 3,
"spaceBeforeUnit": "never"
}
},
"modules": [
"title",
"separator",
"os",
"host",
{
"type": "kernel",
"format": "{release}"
},
"uptime",
{
"type": "packages",
"combined": true
},
"shell",
{
"type": "display",
"compactType": "original",
"key": "Resolution"
},
"de",
"wm",
"wmtheme",
"theme",
"icons",
"terminal",
{
"type": "terminalfont",
"format": "{/name}{-}{/}{name}{?size} {size}{?}"
},
"cpu",
{
"type": "gpu",
"key": "GPU",
"format": "{name}"
},
{
"type": "memory",
"format": "{used} / {total}"
},
"break",
"colors"
]
}

View file

@ -0,0 +1,32 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"modules": [
"title",
"separator",
"os",
{
"type": "host",
"format": "{/2}{-}{/}{2}{?3} {3}{?}"
},
"kernel",
"uptime",
{
"type": "battery",
"format": "{/4}{-}{/}{4}{?5} [{5}]{?}"
},
"break",
"packages",
"shell",
"display",
"terminal",
"break",
"cpu",
{
"type": "gpu",
"key": "GPU"
},
"memory",
"break",
"colors"
]
}

View file

@ -0,0 +1,37 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"modules": [
"title",
"os",
"kernel",
"uptime",
{
"type": "packages",
"format": "{all}"
},
"shell",
{
"type": "display",
"key": "Resolution",
"compactType": "original"
},
"de",
"wm",
"wmtheme",
{
"type": "terminalfont",
"key": "font"
},
{
"type": "disk",
"folders": "/",
"key": "Disk"
},
"cpu",
"gpu",
{
"type": "memory",
"key": "RAM"
}
]
}

View file

@ -1,4 +1,8 @@
if status is-interactive if status is-interactive
starship init fish | source
set -U fish_cursor_replace_one underscore set -U fish_cursor_replace_one underscore
set -gx TERMINAL foot
alias cat='bat'
zoxide init fish | source
# Commands to run in interactive sessions can go here # Commands to run in interactive sessions can go here
end end

View file

@ -1,6 +1,7 @@
# This file contains fish universal variable definitions. # This file contains fish universal variable definitions.
# VERSION: 3.0 # VERSION: 3.0
SETUVAR --export EDITOR:nvim SETUVAR --export EDITOR:nvim
SETUVAR --export TERMINAL:foot
SETUVAR __fish_initialized:4300 SETUVAR __fish_initialized:4300
SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish
SETUVAR _fisher_patrickf1_2F_fzf_2E_fish_files:\x7e/\x2econfig/fish/functions/_fzf_configure_bindings_help\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_extract_var_info\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_preview_changed_file\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_preview_file\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_report_diff_type\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_report_file_type\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_directory\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_git_log\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_git_status\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_history\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_processes\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_variables\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_wrapper\x2efish\x1e\x7e/\x2econfig/fish/functions/fzf_configure_bindings\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/fzf\x2efish\x1e\x7e/\x2econfig/fish/completions/fzf_configure_bindings\x2efish SETUVAR _fisher_patrickf1_2F_fzf_2E_fish_files:\x7e/\x2econfig/fish/functions/_fzf_configure_bindings_help\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_extract_var_info\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_preview_changed_file\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_preview_file\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_report_diff_type\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_report_file_type\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_directory\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_git_log\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_git_status\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_history\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_processes\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_variables\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_wrapper\x2efish\x1e\x7e/\x2econfig/fish/functions/fzf_configure_bindings\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/fzf\x2efish\x1e\x7e/\x2econfig/fish/completions/fzf_configure_bindings\x2efish

View file

@ -0,0 +1,184 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR --export EDITOR:nvim
SETUVAR --export TERMINAL:foot
SETUVAR VIRTUAL_ENV_DISABLE_PROMPT:true
SETUVAR __fish_initialized:4300
SETUVAR _fisher_ilancosman_2F_tide_40_v6_files:\x7e/\x2econfig/fish/functions/_tide_1_line_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_2_line_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_cache_variables\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_detect_os\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_find_and_remove\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_fish_colorize\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_aws\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_bun\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_character\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_cmd_duration\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_context\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_crystal\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_direnv\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_distrobox\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_docker\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_elixir\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_gcloud\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_git\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_go\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_java\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_jobs\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_kubectl\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_nix_shell\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_node\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_os\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_php\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_private_mode\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_pulumi\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_python\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_ruby\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_rustc\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_shlvl\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_status\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_terraform\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_time\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_toolbox\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_vi_mode\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_zig\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_parent_dirs\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_print_item\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_pwd\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_remove_unusable_items\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_sub_bug\x2dreport\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_sub_configure\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_sub_reload\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_mode_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/tide\x1e\x7e/\x2econfig/fish/functions/tide\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/_tide_init\x2efish\x1e\x7e/\x2econfig/fish/completions/tide\x2efish
SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish
SETUVAR _fisher_patrickf1_2F_fzf_2E_fish_files:\x7e/\x2econfig/fish/functions/_fzf_configure_bindings_help\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_extract_var_info\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_preview_changed_file\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_preview_file\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_report_diff_type\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_report_file_type\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_directory\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_git_log\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_git_status\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_history\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_processes\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_variables\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_wrapper\x2efish\x1e\x7e/\x2econfig/fish/functions/fzf_configure_bindings\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/fzf\x2efish\x1e\x7e/\x2econfig/fish/completions/fzf_configure_bindings\x2efish
SETUVAR _fisher_plugins:jorgebucaran/fisher\x1epatrickf1/fzf\x2efish\x1eilancosman/tide\x40v6
SETUVAR _fisher_upgraded_to_4_4:\x1d
SETUVAR _tide_left_items:pwd\x1egit\x1enewline\x1echaracter
SETUVAR _tide_prompt_114603:\x1b\x5bm\x1b\x5b49m\x40PWD\x40\x1b\x5bm\x20\x1e\x1b\x5b92m\u276e\x1e\x1b\x5bm\x20\x1b\x5b90\x3b49m4s\x1b\x5bm
SETUVAR _tide_prompt_34562:\x1b\x5bm\x1b\x5b49m\x40PWD\x40\x1b\x5bm\x20\x1e\x1b\x5b92m\u276e\x1e\x1b\x5bm\x20\x1b\x5b90\x3b49m17m\x2041s\x1b\x5bm
SETUVAR _tide_prompt_37046:\x1b\x5bm\x1b\x5b49m\x40PWD\x40\x1b\x5bm\x20\x1e\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\u276e
SETUVAR _tide_prompt_37209:\x1b\x5bm\x1b\x5b49m\x40PWD\x40\x1b\x5bm\x20\x1e\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\u276e
SETUVAR _tide_prompt_37745:\x1b\x5bm\x1b\x5b49m\x40PWD\x40\x1b\x5bm\x20\x1e\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\u276e\x1e\x1b\x5bm\x20\x1b\x5b38\x3b2\x3b95\x3b135\x3b135\x3b49m18\x3a57\x3a36\x1b\x5bm
SETUVAR _tide_prompt_38113:\x1b\x5bm\x1b\x5b97\x3b49m\uf303\x1b\x5b90m\x20\x1b\x5b49m\x40PWD\x40\x1b\x5bm\x20\x1e\x1b\x5b92m\u276e\x1e\x1b\x5bm\x20\x1b\x5b90\x3b49m18\x3a59\x3a05\x1b\x5bm
SETUVAR _tide_prompt_38389:\x1b\x5bm\x1b\x5b49m\x40PWD\x40\x1b\x5bm\x20\x1e\x1b\x5b92m\u276e\x1e\x1b\x5bm\x20\x1b\x5b90\x3b49m12s\x1b\x5bm
SETUVAR _tide_prompt_38826:\x1b\x5bm\x1b\x5b49m\x40PWD\x40\x1b\x5b90m\x20\x1b\x5b49m\x1b\x5b37m\x1b\x5b92mmain\x1b\x5b91m\x1b\x5b92m\x1b\x5b92m\x1b\x5b91m\x1b\x5b93m\x1b\x5b93m\x1b\x5b94m\x20\x3f2\x1b\x5bm\x20\x1e\x1b\x5b92m\u276e
SETUVAR _tide_prompt_39133:\x1b\x5bm\x1b\x5b49m\x40PWD\x40\x1b\x5bm\x20\x1e\x1b\x5b92m\u276e
SETUVAR _tide_right_items:status\x1ecmd_duration\x1econtext\x1ejobs\x1enode\x1epython\x1erustc\x1ejava\x1eruby\x1ego\x1enix_shell
SETUVAR fish_cursor_default:block
SETUVAR fish_cursor_replace_one:underscore
SETUVAR fish_greeting:\x1d
SETUVAR tide_aws_bg_color:normal
SETUVAR tide_aws_color:yellow
SETUVAR tide_aws_icon:\uf270
SETUVAR tide_bun_bg_color:normal
SETUVAR tide_bun_color:white
SETUVAR tide_bun_icon:\U000f0cd3
SETUVAR tide_character_color:brgreen
SETUVAR tide_character_color_failure:brred
SETUVAR tide_character_icon:\u276f
SETUVAR tide_character_vi_icon_default:\u276e
SETUVAR tide_character_vi_icon_replace:\u25b6
SETUVAR tide_character_vi_icon_visual:V
SETUVAR tide_cmd_duration_bg_color:normal
SETUVAR tide_cmd_duration_color:brblack
SETUVAR tide_cmd_duration_decimals:0
SETUVAR tide_cmd_duration_icon:\x1d
SETUVAR tide_cmd_duration_threshold:3000
SETUVAR tide_context_always_display:false
SETUVAR tide_context_bg_color:normal
SETUVAR tide_context_color_default:yellow
SETUVAR tide_context_color_root:bryellow
SETUVAR tide_context_color_ssh:yellow
SETUVAR tide_context_hostname_parts:1
SETUVAR tide_crystal_bg_color:normal
SETUVAR tide_crystal_color:brwhite
SETUVAR tide_crystal_icon:\ue62f
SETUVAR tide_direnv_bg_color:normal
SETUVAR tide_direnv_bg_color_denied:normal
SETUVAR tide_direnv_color:bryellow
SETUVAR tide_direnv_color_denied:brred
SETUVAR tide_direnv_icon:\u25bc
SETUVAR tide_distrobox_bg_color:normal
SETUVAR tide_distrobox_color:brmagenta
SETUVAR tide_distrobox_icon:\U000f01a7
SETUVAR tide_docker_bg_color:normal
SETUVAR tide_docker_color:blue
SETUVAR tide_docker_default_contexts:default\x1ecolima
SETUVAR tide_docker_icon:\uf308
SETUVAR tide_elixir_bg_color:normal
SETUVAR tide_elixir_color:magenta
SETUVAR tide_elixir_icon:\ue62d
SETUVAR tide_gcloud_bg_color:normal
SETUVAR tide_gcloud_color:blue
SETUVAR tide_gcloud_icon:\U000f02ad
SETUVAR tide_git_bg_color:normal
SETUVAR tide_git_bg_color_unstable:normal
SETUVAR tide_git_bg_color_urgent:normal
SETUVAR tide_git_color_branch:brgreen
SETUVAR tide_git_color_conflicted:brred
SETUVAR tide_git_color_dirty:bryellow
SETUVAR tide_git_color_operation:brred
SETUVAR tide_git_color_staged:bryellow
SETUVAR tide_git_color_stash:brgreen
SETUVAR tide_git_color_untracked:brblue
SETUVAR tide_git_color_upstream:brgreen
SETUVAR tide_git_icon:\x1d
SETUVAR tide_git_truncation_length:24
SETUVAR tide_git_truncation_strategy:\x1d
SETUVAR tide_go_bg_color:normal
SETUVAR tide_go_color:brcyan
SETUVAR tide_go_icon:\ue627
SETUVAR tide_java_bg_color:normal
SETUVAR tide_java_color:yellow
SETUVAR tide_java_icon:\ue256
SETUVAR tide_jobs_bg_color:normal
SETUVAR tide_jobs_color:green
SETUVAR tide_jobs_icon:\uf013
SETUVAR tide_jobs_number_threshold:1000
SETUVAR tide_kubectl_bg_color:normal
SETUVAR tide_kubectl_color:blue
SETUVAR tide_kubectl_icon:\U000f10fe
SETUVAR tide_left_prompt_frame_enabled:false
SETUVAR tide_left_prompt_items:pwd\x1egit\x1enewline\x1echaracter
SETUVAR tide_left_prompt_prefix:
SETUVAR tide_left_prompt_separator_diff_color:\x20
SETUVAR tide_left_prompt_separator_same_color:\x20
SETUVAR tide_left_prompt_suffix:\x20
SETUVAR tide_nix_shell_bg_color:normal
SETUVAR tide_nix_shell_color:brblue
SETUVAR tide_nix_shell_icon:\uf313
SETUVAR tide_node_bg_color:normal
SETUVAR tide_node_color:green
SETUVAR tide_node_icon:\ue24f
SETUVAR tide_os_bg_color:normal
SETUVAR tide_os_color:brwhite
SETUVAR tide_os_icon:\uf303
SETUVAR tide_php_bg_color:normal
SETUVAR tide_php_color:blue
SETUVAR tide_php_icon:\ue608
SETUVAR tide_private_mode_bg_color:normal
SETUVAR tide_private_mode_color:brwhite
SETUVAR tide_private_mode_icon:\U000f05f9
SETUVAR tide_prompt_add_newline_before:false
SETUVAR tide_prompt_color_frame_and_connection:brblack
SETUVAR tide_prompt_color_separator_same_color:brblack
SETUVAR tide_prompt_icon_connection:\x20
SETUVAR tide_prompt_min_cols:34
SETUVAR tide_prompt_pad_items:false
SETUVAR tide_prompt_transient_enabled:false
SETUVAR tide_pulumi_bg_color:normal
SETUVAR tide_pulumi_color:yellow
SETUVAR tide_pulumi_icon:\uf1b2
SETUVAR tide_pwd_bg_color:normal
SETUVAR tide_pwd_color_anchors:brcyan
SETUVAR tide_pwd_color_dirs:cyan
SETUVAR tide_pwd_color_truncated_dirs:magenta
SETUVAR tide_pwd_icon:\x1d
SETUVAR tide_pwd_icon_home:\x1d
SETUVAR tide_pwd_icon_unwritable:\uf023
SETUVAR tide_pwd_markers:\x2ebzr\x1e\x2ecitc\x1e\x2egit\x1e\x2ehg\x1e\x2enode\x2dversion\x1e\x2epython\x2dversion\x1e\x2eruby\x2dversion\x1e\x2eshorten_folder_marker\x1e\x2esvn\x1e\x2eterraform\x1ebun\x2elockb\x1eCargo\x2etoml\x1ecomposer\x2ejson\x1eCVS\x1ego\x2emod\x1epackage\x2ejson\x1ebuild\x2ezig
SETUVAR tide_python_bg_color:normal
SETUVAR tide_python_color:cyan
SETUVAR tide_python_icon:\U000f0320
SETUVAR tide_right_prompt_frame_enabled:false
SETUVAR tide_right_prompt_items:status\x1ecmd_duration\x1econtext\x1ejobs\x1edirenv\x1ebun\x1enode\x1epython\x1erustc\x1ejava\x1ephp\x1epulumi\x1eruby\x1ego\x1egcloud\x1ekubectl\x1edistrobox\x1etoolbox\x1eterraform\x1eaws\x1enix_shell\x1ecrystal\x1eelixir\x1ezig
SETUVAR tide_right_prompt_prefix:\x20
SETUVAR tide_right_prompt_separator_diff_color:\x20
SETUVAR tide_right_prompt_separator_same_color:\x20
SETUVAR tide_right_prompt_suffix:
SETUVAR tide_ruby_bg_color:normal
SETUVAR tide_ruby_color:red
SETUVAR tide_ruby_icon:\ue23e
SETUVAR tide_rustc_bg_color:normal
SETUVAR tide_rustc_color:red
SETUVAR tide_rustc_icon:\ue7a8
SETUVAR tide_shlvl_bg_color:normal
SETUVAR tide_shlvl_color:yellow
SETUVAR tide_shlvl_icon:\uf120
SETUVAR tide_shlvl_threshold:1
SETUVAR tide_status_bg_color:normal
SETUVAR tide_status_bg_color_failure:normal
SETUVAR tide_status_color:green
SETUVAR tide_status_color_failure:red
SETUVAR tide_status_icon:\u2714
SETUVAR tide_status_icon_failure:\u2718
SETUVAR tide_terraform_bg_color:normal
SETUVAR tide_terraform_color:magenta
SETUVAR tide_terraform_icon:\U000f1062
SETUVAR tide_time_bg_color:normal
SETUVAR tide_time_color:brblack
SETUVAR tide_time_format:
SETUVAR tide_toolbox_bg_color:normal
SETUVAR tide_toolbox_color:magenta
SETUVAR tide_toolbox_icon:\ue24f
SETUVAR tide_vi_mode_bg_color_default:normal
SETUVAR tide_vi_mode_bg_color_insert:normal
SETUVAR tide_vi_mode_bg_color_replace:normal
SETUVAR tide_vi_mode_bg_color_visual:normal
SETUVAR tide_vi_mode_color_default:white
SETUVAR tide_vi_mode_color_insert:cyan
SETUVAR tide_vi_mode_color_replace:green
SETUVAR tide_vi_mode_color_visual:yellow
SETUVAR tide_vi_mode_icon_default:D
SETUVAR tide_vi_mode_icon_insert:I
SETUVAR tide_vi_mode_icon_replace:R
SETUVAR tide_vi_mode_icon_visual:V
SETUVAR tide_zig_bg_color:normal
SETUVAR tide_zig_color:yellow
SETUVAR tide_zig_icon:\ue6a9

View file

@ -0,0 +1,3 @@
function ffcolor --wraps='--config /home/unconfer/.config/fastfetch/color.jsonc' --description 'alias ffcolor=--config /home/unconfer/.config/fastfetch/color.jsonc'
--config /home/unconfer/.config/fastfetch/color.jsonc $argv
end

View file

@ -1,31 +1,30 @@
function fish_prompt --description 'Write out the prompt' function fish_prompt --description 'Write out the prompt'
set -l last_pipestatus $pipestatus set -l last_status $status
set -lx __fish_last_status $status # Export for __fish_print_pipestatus. set -l normal (set_color normal)
set -l normal (set_color normal) set -l status_color (set_color brgreen)
set -q fish_color_status set -l cwd_color (set_color $fish_color_cwd)
or set -g fish_color_status red set -l vcs_color (set_color brpurple)
set -l prompt_status ""
# Color the prompt differently when we're root
set -l color_cwd $fish_color_cwd # Since we display the prompt on a new line allow the directory names to be longer.
set -l suffix '>' set -q fish_prompt_pwd_dir_length
if functions -q fish_is_root_user; and fish_is_root_user or set -lx fish_prompt_pwd_dir_length 0
if set -q fish_color_cwd_root
set color_cwd $fish_color_cwd_root # Color the prompt differently when we're root
end set -l suffix ''
set suffix '#' if functions -q fish_is_root_user; and fish_is_root_user
if set -q fish_color_cwd_root
set cwd_color (set_color $fish_color_cwd_root)
end end
set suffix '#'
# Write pipestatus end
# If the status was carried over (if no command is issued or if `set` leaves the status untouched), don't bold it.
set -l bold_flag --bold # Color the prompt in red on error
set -q __fish_prompt_status_generation; or set -g __fish_prompt_status_generation $status_generation if test $last_status -ne 0
if test $__fish_prompt_status_generation = $status_generation set status_color (set_color $fish_color_error)
set bold_flag set prompt_status $status_color "[" $last_status "]" $normal
end end
set __fish_prompt_status_generation $status_generation
set -l status_color (set_color $fish_color_status) echo -s (prompt_login) ' ' $cwd_color (prompt_pwd) $vcs_color (fish_vcs_prompt) $normal ' ' $prompt_status
set -l statusb_color (set_color $bold_flag $fish_color_status) echo -n -s $status_color $suffix ' ' $normal
set -l prompt_status (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus)
echo -n -s (prompt_login)' ' (set_color $color_cwd) (prompt_pwd) $normal (fish_vcs_prompt) $normal " "$prompt_status $suffix " "
end end

View file

@ -0,0 +1,3 @@
function lt --wraps='eza --tree' --description 'alias lt=eza --tree'
eza --tree $argv
end

View file

@ -1,3 +1,3 @@
function p --wraps='paru -Syu' --description 'alias p=paru -Syu' function p --wraps=paru --description 'alias p=paru'
paru -Syu $argv paru $argv
end end

View file

@ -0,0 +1,41 @@
tide_aws_icon  # Actual aws glyph is harder to see
tide_bun_icon 󰳓
tide_character_icon
tide_character_vi_icon_default
tide_character_vi_icon_replace
tide_character_vi_icon_visual V
tide_cmd_duration_icon
tide_crystal_icon
tide_direnv_icon
tide_distrobox_icon 󰆧
tide_docker_icon
tide_elixir_icon
tide_gcloud_icon 󰊭 # Actual google cloud glyph is harder to see
tide_git_icon
tide_go_icon
tide_java_icon
tide_jobs_icon
tide_kubectl_icon 󱃾
tide_nix_shell_icon
tide_node_icon  # Actual nodejs glyph is harder to see
tide_os_icon $os_branding_icon
tide_php_icon
tide_private_mode_icon 󰗹
tide_prompt_icon_connection ' '
tide_pulumi_icon
tide_pwd_icon
tide_pwd_icon_home
tide_pwd_icon_unwritable
tide_python_icon 󰌠
tide_ruby_icon
tide_rustc_icon
tide_shlvl_icon
tide_status_icon
tide_status_icon_failure
tide_terraform_icon 󱁢
tide_toolbox_icon
tide_vi_mode_icon_default D
tide_vi_mode_icon_insert I
tide_vi_mode_icon_replace R
tide_vi_mode_icon_visual V
tide_zig_icon

View file

@ -0,0 +1,3 @@
function vpn-debug --wraps='journalctl -u vpn-singbox.service -f' --description 'alias vpn-debug=journalctl -u vpn-singbox.service -f'
journalctl -u vpn-singbox.service -f $argv
end

View file

@ -1,3 +1,3 @@
function vpn --wraps='sudo ~/./sing-box-sh' --description 'alias vpn=sudo ~/./sing-box-sh' function vpn --wraps='bash ~/.sing-box/sing-box-sh' --description 'alias vpn=bash ~/.sing-box/sing-box-sh'
sudo ~/./sing-box-sh $argv bash ~/.sing-box/sing-box-sh $argv
end end

View file

@ -0,0 +1,25 @@
[colors-dark]
foreground=f0f0f0
background=09070d
selection-foreground=f0f0f0
selection-background=745b8c
cursor = 09070d b8a8f0
regular0=130f1a
regular1=ff7290
regular2=78f090
regular3=ffd972
regular4=a491e3
regular5=3f316f
regular6=b8a8f0
regular7=f0ecfc
bright0=92909c
bright1=ff9fb3
bright2=a5ffb7
bright3=ffe7a5
bright4=ccbdff
bright5=d5c9ff
bright6=e4dcff
bright7=faf8ff
dim-blend-towards=black

View file

@ -4,12 +4,13 @@
# term=foot (or xterm-256color if built with -Dterminfo=disabled) # term=foot (or xterm-256color if built with -Dterminfo=disabled)
# login-shell=no # login-shell=no
#a app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode #app-id=foot
# title=foot #title=foot
locked-title=no locked-title=no
include=~/.config/foot/themes/theme.ini include=~/.config/foot/themes/theme.ini
#font=IosevkaTerm NF:size=15 font=monospace
font=IosevkaTerm NF:size=15:weight=semibold font=IosevkaTerm Nerd Font:size=15:weight=semibold
#font=Noto Color Emoji:size=12
# font-bold=<bold variant of regular font> # font-bold=<bold variant of regular font>
# font-italic=<italic variant of regular font> # font-italic=<italic variant of regular font>
# font-bold-italic=<bold+italic variant of regular font> # font-bold-italic=<bold+italic variant of regular font>
@ -30,7 +31,7 @@ dpi-aware=yes
# initial-window-size-chars=<COLSxROWS> # initial-window-size-chars=<COLSxROWS>
# initial-window-mode=windowed # initial-window-mode=windowed
# pad=0x0 center-when-maximized-and-fullscreen # pad=0x0 center-when-maximized-and-fullscreen
pad=7x7 pad=10x10
# resize-by-cells=yes # resize-by-cells=yes
# resize-keep-grid=yes # resize-keep-grid=yes
# resize-delay-ms=100 # resize-delay-ms=100
@ -51,10 +52,10 @@ pad=7x7
# osc52=enabled # disabled|copy-enabled|paste-enabled|enabled # osc52=enabled # disabled|copy-enabled|paste-enabled|enabled
[bell] [bell]
# system=yes system=yes
# urgent=no urgent=yes
# notify=no notify=yes
# visual=no visual=yes
# command= # command=
# command-focused=no # command-focused=no
@ -271,6 +272,7 @@ pad=7x7
[text-bindings] [text-bindings]
# \x03=Mod4+c # Map Super+c -> Ctrl+c # \x03=Mod4+c # Map Super+c -> Ctrl+c
[mouse-bindings] [mouse-bindings]
# scrollback-up-mouse=BTN_WHEEL_BACK # scrollback-up-mouse=BTN_WHEEL_BACK
# scrollback-down-mouse=BTN_WHEEL_FORWARD # scrollback-down-mouse=BTN_WHEEL_FORWARD

47
config/fsel/config.toml Normal file
View file

@ -0,0 +1,47 @@
# Colors
highlight_color = "LightBlue"
cursor = "█"
# App launcher
terminal_launcher = "kitty -e"
[app_launcher]
filter_desktop = true # Filter apps by desktop environment
list_executables_in_path = false # Show CLI tools from $PATH
hide_before_typing = false # Hide list until you start typing
match_mode = "fuzzy" # "fuzzy" or "exact"
confirm_first_launch = false # Confirm before launching new apps with -p
# Pin/favorite settings
pin_color = "rgb(255,165,0)" # Color for pin icon (orange)
pin_icon = "📌" # Icon for pinned apps
# UI customization
rounded_borders = true
main_border_color = "White"
apps_border_color = "White"
input_border_color = "White"
# Layout (percentages)
title_panel_height_percent = 30 # Top panel height (10-70%)
input_panel_height = 3 # Input panel height in lines
title_panel_position = "top" # "top", "middle", or "bottom"
# Dmenu mode
[dmenu]
password_character = "*"
exit_if_empty = false
# Clipboard mode
[cclip]
image_preview = true
hide_inline_image_message = false
# Custom keybinds (optional)
[keybinds]
up = ["up", { key = "k", modifiers = "ctrl" }]
down = ["down", { key = "j", modifiers = "ctrl" }]
select = ["enter"]
exit = ["esc", { key = "q", modifiers = "ctrl" }]
pin = [{ key = "space", modifiers = "ctrl" }]

View file

@ -2,12 +2,12 @@
font=IosevkaTerm NFP ExtraBold:size=15 font=IosevkaTerm NFP ExtraBold:size=15
dpi-aware=auto dpi-aware=auto
# use-bold=no # use-bold=no
# prompt="> " prompt=" "
# placeholder= placeholder="what do you wanna run?"
icon-theme=hicolor icon-theme=hicolor
# icons-enabled=yes icons-enabled=yes
# hide-before-typing=no # hide-before-typing=no
# fields=filename,name,generic fields=filename,name,generic
# password-character=* # password-character=*
# filter-desktop=no # filter-desktop=no
match-mode=fzf match-mode=fzf
@ -15,25 +15,25 @@ icon-theme=hicolor
# match-counter=no # match-counter=no
# delayed-filter-ms=300 # delayed-filter-ms=300
# delayed-filter-limit=20000 # delayed-filter-limit=20000
# show-actions=no show-actions=no
terminal=kitty -e terminal=kitty -e
# launch-prefix=<not set> # launch-prefix=<not set>
# list-executables-in-path=no list-executables-in-path=no
anchor=center anchor=center
# x-margin=0 x-margin=0
# y-margin=0 y-margin=0
# lines=15 lines=15
# width=30 width=35
tabs=4 tabs=10
horizontal-pad=40 horizontal-pad=15
# vertical-pad=8 vertical-pad=15
# inner-pad=0 inner-pad=10
# image-size-ratio=0.5 image-size-ratio=0.75
# line-height=<use font metrics> line-height=23
# letter-spacing=0 letter-spacing=0
# layer=overlay # layer=overlay
# keyboard-focus=on-demand # keyboard-focus=on-demand
@ -46,22 +46,22 @@ horizontal-pad=40
[colors] [colors]
background=07090Bff background=07090Bff
text=c1d6d6ff text=EEF7FDff
prompt=E2F9F9ff prompt=EEF7FDff
placeholder=07090Bff placeholder=5C6871ff
input=e2f9f9ff input=e2f9f9ff
match=07090bff match=82D1B9ff
selection=e2f9f9ff selection=EEF7FDff
selection-text=5A6B7Eff selection-text=07090Bff
selection-match=5A6B7Eff selection-match=25C39Fff
counter=e2f9f9ff counter=e2f9f9ff
border=c1d6d6ff border=EEF7FDff
[border] [border]
width=2 width=2
radius=8 radius=0
#selection-radius=01 selection-radius=01
[dmenu] [dmenu]
# mode=text # text|index # mode=text # text|index

View file

@ -3,7 +3,7 @@
[General] [General]
# Edge to anchor HyprWave to # Edge to anchor HyprWave to
# Options: right, left, top, bottom # Options: right, left, top, bottom
edge = top edge = left
# Margin from the screen edge (in pixels) # Margin from the screen edge (in pixels)
@ -18,7 +18,7 @@ idle_timeout= 1
exclusive_zone = -1 exclusive_zone = -1
[Notifications] [Notifications]
enabled = true enabled = false
now_playing = true now_playing = true
[Visualizer] [Visualizer]

View file

@ -0,0 +1,9 @@
{
"$schema": "https://raw.githubusercontent.com/goodroot/hyprwhspr/main/share/config.schema.json",
"use_hypr_bindings": true,
"primary_shortcut": "SUPER+ALT+D",
"transcription_backend": "faster-whisper",
"paste_mode": "ctrl_shift",
"recording_mode": "auto",
"language": "ru"
}

View file

@ -0,0 +1 @@
1774

190
config/i3/config Normal file
View file

@ -0,0 +1,190 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:monospace 8
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart
exec --no-startup-id dex --autostart --environment i3
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
exec --no-startup-id nm-applet
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# move tiling windows via drag & drop by left-clicking into the title bar,
# or left-clicking anywhere into the window while holding the floating modifier.
tiling_drag modifier titlebar
# start a terminal
bindsym $mod+Return exec kitty
# kill focused window
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec --no-startup-id dmenu_run
# A more modern dmenu replacement is rofi:
# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
# There also is i3-dmenu-desktop which only displays applications shipping a
# .desktop file. It is a wrapper around dmenu, so you need that installed.
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3status
}

115
config/ironbar/config.json Normal file
View file

@ -0,0 +1,115 @@
{
"anchor_to_edges": true,
"exclusive_zone": true,
"position": "left",
"height": 30,
"start": [
{
"type": "custom",
"bar": [
{
"type": "button",
"name": "my-btn",
"class": "my-btn-class",
"on_click": "!walker",
"widgets": [
{
"type": "label",
"label": " ",
"size": 16
}
]
}
]
},
{
"type": "custom",
"bar": [
{
"type": "button",
"name": "hyprwave",
"class": "hyprwave-class",
"on_click": "!hyprwave-toggle visibility",
"widgets": [
{
"type": "label",
"label": " ",
"size": 16
}
]
}
]
},
{
"type": "notifications",
"show_count": true,
"icons": {
"closed_none": "󰍥 ",
"closed_some": "󱥂 ",
"closed_dnd": "󱅯 ",
"open_none": "󰍡 ",
"open_some": "󱥁 ",
"open_dnd": "󱅮 "
}
},
{
"type": "focused",
"show_icon": true,
"show_title": false,
"icon_size": 32,
"truncate": "end",
"height": 30
}
],
"center": [
{
"type": "workspaces",
"format": "{index}",
"on_scroll_up": "niri msg action focus-workspace-up",
"on_scroll_down": "niri msg action focus-workspace-down",
"on_click_right": "niri msg action toggle-overview",
"smooth_scroll_speed": 5.0
}
],
"end": [
{
"type": "tray",
"icon_size": 16,
"direction": "v"
},
{
"type": "custom",
"bar": [
{
"type": "button",
"name": "pomo",
"class": "pomo-class",
"on_click": "!~/.config/ironbar/scripts/pomo",
"widgets": [
{
"type": "label",
"label": "  ",
"size": 16
}
]
}
]
},
{
"type": "clock",
"format": "%H\n%M\n\n%d\n%m\n%y",
"orientation": "h",
"justify": "center"
}
]
}

File diff suppressed because it is too large Load diff

9
config/ironbar/scripts/pomo Executable file
View file

@ -0,0 +1,9 @@
#!/bin/bash
ID=$(niri msg -j windows | jq -r '.[] | select(.app_id == "pomo") | .id' | head -1)
if [ -n "$ID" ] && [ "$ID" != "null" ]; then
niri msg action focus-window --id "$ID"
else
footclient --app-id=pomo pomo
fi

View file

@ -0,0 +1,2 @@
#!/bin/bash
walker

183
config/ironbar/style.css Normal file
View file

@ -0,0 +1,183 @@
:root {
--color-dark-primary: #07090b;
--color-dark-secondary: #1f2830;
--color-white: #eef7fd;
--color-active: #00fed4;
--color-urgent: #ff0100;
--margin-lg: 1em;
--margin-sm: 1em;
}
* {
border: none;
box-shadow: none;
background-image: none;
font-family: IosevkaTerm NF;
min-height: 20px;
min-width: 20px;
}
scale>trough {
background-color: var(--color-dark-secondary);
}
scale>trough>highlight {
background-color: var(--color-active);
border-style: solid;
border-color: var(--color-active);
border-width: 0em;
}
scale>trough>slider {
background-color: var(--color-white);
}
switch>slider {
background-color: var(--color-white);
}
switch:checked {
background-color: var(--color-active);
}
switch:not(:checked) {
background-color: var(--color-dark-secondary);
}
#bar,
popover,
popover contents,
calendar {
background-color: var(--color-dark-primary);
}
box,
button,
label {
background-color: #0000;
color: var(--color-white);
}
button {
padding-left: var(--margin-sm);
padding-right: var(--margin-sm);
}
button:hover,
button:active {
background-color: var(--color-dark-secondary);
}
#end>*+* {}
.sysinfo>*+* {
margin-left: var(--margin-sm);
}
.clock {
font-weight: bold;
}
.popup-clock .calendar-clock {
font-size: 2.0em;
}
.popup-clock .calendar .today {
background-color: var(--color-active);
}
.focused .icon {
padding-top: 0.5em;
}
.workspaces {
/*(max-width: 5px;
max-height: 5px;
ga:width: ;p: 10em;
*/
padding-left: 15px;
padding-right: 15px;
min-width: 15px;
min-height: 15px;
}
.workspaces .item {
min-width: 15px;
min-height: 15px;
border-radius: 50%;
padding: 0px;
background-color: var(--color-dark-secondary);
box-shadow: none;
margin: 5px 1px 0px 1px;
}
.workspaces .item.visible {
background-color: var(--color-white);
box-shadow: none;
}
.workspaces .item.focused {
background-color: var(--color-active);
border-radius: 10px;
min-height: 35px;
box-shadow: none;
}
.workspaces .item.urgent {
background-color: var(--color-urgent);
box-shadow: none;
min-width: 10px;
padding-left: 0px;
padding-right: 0px;
}
.workspaces .item .text-icon {
font-size: 0;
min-width: 0;
}
.workspaces .item label {
opacity: 0;
font-size: 0;
min-width: 15px;
min-height: 15px;
}
.notifications .count {
/*max-height: 10px;
max-width: 10px;
*/
}
.notifications label {
/*max-height: 10px;
max-width: 10px;
*/
}
/* по name на кнопке */
#my-btn {
border-radius: 8px;
padding-top: 10px;
}
#pomo {
border-radius: 8px;
padding-top: 10px;
padding-left: 10px;
}

21
config/keymap.xkb Normal file
View file

@ -0,0 +1,21 @@
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols {
include "pc+us+ru:2+inet(evdev)"
// Физический Caps → Escape
key <CAPS> { [ Escape ] };
// Физический Esc → переключение раскладки
key <ESC> { [ ISO_Next_Group ] };
// Alt ↔ Super
key <LALT> { [ Super_L ] };
key <LWIN> { [ Alt_L, Meta_L ] };
key <RALT> { [ Super_R ] };
key <RWIN> { [ Alt_R, Meta_R ] };
};
xkb_geometry { include "pc(pc105)" };
};

View file

@ -0,0 +1,23 @@
tab_bar_edge top
tab_bar_style powerline
tab_powerline_style slanted
tab_bar_align left
tab_bar_min_tabs 2
tab_bar_margin_width 0.0
tab_bar_margin_height 2.5 1.5
tab_bar_margin_color #09070d
tab_bar_background #09070d
active_tab_foreground #1e1e00
active_tab_background #b8a8f0
active_tab_font_style bold
inactive_tab_foreground #c9b8d9
inactive_tab_background #09070d
inactive_tab_font_style normal
tab_activity_symbol " ● "
tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title[:30]}{title[30:] and '…'} [{index}]"
active_tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title[:30]}{title[30:] and '…'} [{index}]"

View file

@ -0,0 +1,25 @@
cursor #f0f0f0
cursor_text_color #c9b8d9
foreground #f0f0f0
background #09070d
selection_foreground #1e1e00
selection_background #92eda7
url_color #b8a8f0
color0 #130f1a
color1 #ff7290
color2 #78f090
color3 #ffd972
color4 #a491e3
color5 #3f316f
color6 #b8a8f0
color7 #f0ecfc
color8 #92909c
color9 #ff9fb3
color10 #a5ffb7
color11 #ffe7a5
color12 #ccbdff
color13 #d5c9ff
color14 #e4dcff
color15 #faf8ff

124
config/matugen/config.toml Normal file
View file

@ -0,0 +1,124 @@
[config]
# If set to enabled, it will check for updates when you run the matugen command, notifying you that an update is avaiable.
# WARNING: Matugen needs to be compiled with the `update-informer` feature for this to work.
version_check = false
# The color which should be used as the source_color if no good color was found from an image.
# Can be defined in any css format.
# The cli flag will override this if used.
fallback_color = "#ffbf9b"
# Which color to choose if multiple good colors were found from an image.
# choices: [darkness, lightness, saturation, less-saturation, value, closest-to-fallback]
# The cli flag will override this if used.
prefer = "closest-to-fallback"
# Enables caching which will cache the colorscheme, custom colors, etc. into a cache folder located in
# Windows: C:\Users\user\AppData\Roaming\InioX\matugen\cache\images\<file>
# Linux: $XDG_CACHE_HOME/matugen/<file> or $HOME/.cache/matugen/images/<file>
# MacOS: $HOME/Library/Caches/matugen/images/<file>
# The file follows this naming: <image_name>.<image_extension>.<image_hash>.json
# For example: testimage.png.0cfd2d624b3d09bf6246b7be9ca79e207e7aa1189d961d44949628b99811bb9d.json
# You can modify the cache and it will then be loaded when using the same image.
# The colors are defined using the #RRGGBBAA format.
caching = false
# Changing the syntax
# Expr is for keywords like {{ <keyword> }}
expr_prefix = "{{"
expr_postfix = "}}"
# Block is for stuff like for loops etc.
block_prefix = "<*"
block_postfix = "*>"
# Imports json files just like `--import-json` does.
# Relative paths will be resolved from the path `config.toml` is in.
#import_json_files = ["./custom3.json"]
# Defaults to the contrast from CLI if unspecified.
# Value from -1 to 1.
# -1 represents minimum contrast, 0 represents standard (i.e. the design as spec'd),
# and 1 represents maximum contrast.
contrast = 1.0
[config.wallpaper]
# Whether to set the wallpaper or not
set = true
# The base command to run for applying the wallpaper.
# Keywords like {{ image }} or anything that works inside of hooks works here.
# You could also set a static color if you use the color keywords and the wallpaper setter supports it.
command = "awww img --transition-type center {{ image }}"
# For example, killing the wallpaper daemon. Usage is like a normal hook.
# pre_hook = ""
[templates]
#[templates.includeme]
#input_path = "./include.txt"
# The output path is optional if you just want to import the template anyways.
# output_path = "./a/include.txt"
#[templates.name1]
# Relative paths will be resolved from the path `config.toml` is in.
#input_path = "./colors.whatever-extension"
#output_path = "./a/colors-generated.whatever-extension"
# Defaults to a value of 0 if unspecified, determines the order that each template is processed.
# You can use index = n to force a particular template hook to run after everything else, and index = -n for before everything else
#index = 1
# Defaults to the type from CLI if unspecified.
# One of `SchemeContent`, `SchemeExpressive`, `SchemeFidelity`, `SchemeFruitSalad`, `SchemeMonochrome`, `SchemeNeutral`, `SchemeRainbow`, `SchemeTonalSpot`, `SchemeVibrant`
#type = "SchemeExpressive"
# For testing of the `--continue-on-error` flag
# [templates.ishoulderror]
# Relative paths will be resolved from the path `config.toml` is in.
# input_path = "./error-testing.txt"
# output_path = "./a/error-testing.txt"
# This will use a different input path depending on what mode you use.
# input_path_modes = { dark = "./colors.whatever-extension", light = "./colors.whatever-extension" }
# This will compare all of the colors inside the array with the color you set as `compare_to`, and returns the closest color to it.
# You can then use `{{closest_color}}` inside hooks.
#colors_to_compare = [
# { name = "black", color = "#000000" },
# { name = "red", color = "#ff0000" },
# { name = "maroon", color = "#800000" },
# { name = "yellow", color = "#ffff00" },
# { name = "olive", color = "#808000" },
# { name = "lime", color = "#00ff00" },
# { name = "green", color = "#008000" },
# { name = "aqua", color = "#00ffff" },
# { name = "teal", color = "#008080" },
# { name = "blue", color = "#0000ff" },
# { name = "navy", color = "#000080" },
# { name = "fuchsia", color = "#ff00ff" },
# { name = "purple", color = "#800080" },
#]
#compare_to = "{{colors.primary.default.hex}}"
# Runs before the template is exported. You can use keywords here.
# If you want the command to be async, add an & symbol to the end of the command on unix.
#pre_hook = 'echo "source color {{colors.source_color.default.hex}}, source image {{image}}, closest color {{closest_color}}"'
# Runs after the template is exported. You can use keywords here.
# If you want the command to be async, add an & symbol to the end of the command on unix.
#post_hook = 'echo "after gen"'
# For overriding the prefix for a specific template only
#expr_prefix = "{{"
#expr_postfix = "}}"
# Only hex values
# https://m3.material.io/styles/color/advanced/adjust-existing-colors#1cc12e43-237b-45b9-8fe0-9a3549c1f61e
# If you want to use the original color without any harmonization, add `_source` after the name like: `{{ color_source }}`
# Example: To use the original red color you would use `{{ red_source }}` instead of `{{ red }}`
# If you don't want to use the other colors that are automatically generated (on_color, on_color_container) you can just import a custom json with the colors instead.
# For an example of importing json see: https://iniox.github.io/#matugen/usage/importing-json
[config.custom_colors]
red = "#ff0000"
blue = "#0000ff"
green = "#00ff00"

View file

@ -0,0 +1 @@
{}

View file

@ -6,7 +6,7 @@ application/x-extension-html=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desk
application/x-extension-shtml=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop; application/x-extension-shtml=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop;
application/x-extension-xht=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop; application/x-extension-xht=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop;
application/x-extension-xhtml=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop; application/x-extension-xhtml=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop;
application/x-msdownload=ru.launcher.StartWine.desktop; application/x-msdownload=ru.launcher.StartWine.desktop;ru.linux_gaming.PortProton.desktop;
application/x-php=mpv.desktop; application/x-php=mpv.desktop;
application/xhtml+xml=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop; application/xhtml+xml=firefox.desktop;userapp-Zen-PIXJK3.desktop;zen.desktop;
application/zip=org.gnome.Nautilus.desktop; application/zip=org.gnome.Nautilus.desktop;
@ -28,8 +28,12 @@ x-scheme-handler/chrome=zen.desktop;userapp-Zen-PIXJK3.desktop;firefox.desktop;
x-scheme-handler/http=zen.desktop;userapp-Zen-PIXJK3.desktop;firefox.desktop; x-scheme-handler/http=zen.desktop;userapp-Zen-PIXJK3.desktop;firefox.desktop;
x-scheme-handler/https=zen.desktop;userapp-Zen-PIXJK3.desktop;firefox.desktop; x-scheme-handler/https=zen.desktop;userapp-Zen-PIXJK3.desktop;firefox.desktop;
x-scheme-handler/mailto=zen.desktop; x-scheme-handler/mailto=zen.desktop;
x-scheme-handler/tg=org.telegram.desktop.desktop;userapp-AyuGram Desktop-YAGQF3.desktop;userapp-AyuGram Desktop-352WJ3.desktop;org.fagram.desktop; x-scheme-handler/tg=org.telegram.desktop.desktop;userapp-AyuGram Desktop-YAGQF3.desktop;userapp-AyuGram Desktop-352WJ3.desktop;org.fagram.desktop;org.fagram._54c5bda1f706fd3ba4d74713b044bfea.desktop;
x-scheme-handler/tonsite=org.telegram.desktop.desktop;userapp-AyuGram Desktop-UNJQF3.desktop;userapp-AyuGram Desktop-31ZUJ3.desktop;org.fagram.desktop; x-scheme-handler/tonsite=org.telegram.desktop.desktop;userapp-AyuGram Desktop-UNJQF3.desktop;userapp-AyuGram Desktop-31ZUJ3.desktop;org.fagram.desktop;org.fagram._54c5bda1f706fd3ba4d74713b044bfea.desktop;
application/vnd.sqlite3=neovide.desktop;
text/x-csrc=neovide.desktop;
video/mpeg=mpv.desktop;
text/x-c++hdr=neovide.desktop;
[Default Applications] [Default Applications]
application/fb2=org.pwmt.zathura.desktop application/fb2=org.pwmt.zathura.desktop
@ -42,7 +46,7 @@ application/x-extension-shtml=zen.desktop
application/x-extension-xht=zen.desktop application/x-extension-xht=zen.desktop
application/x-extension-xhtml=zen.desktop application/x-extension-xhtml=zen.desktop
application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program;text/win-bat;=PortProton.desktop application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program;text/win-bat;=PortProton.desktop
application/x-msdownload=ru.launcher.StartWine.desktop application/x-msdownload=ru.linux_gaming.PortProton.desktop
application/x-php=mpv.desktop application/x-php=mpv.desktop
application/x-zip-compressed-fb2=org.pwmt.zathura.desktop application/x-zip-compressed-fb2=org.pwmt.zathura.desktop
application/xhtml+xml=zen.desktop application/xhtml+xml=zen.desktop
@ -67,9 +71,15 @@ video/mp4=mpv.desktop
video/webm=mpv.desktop video/webm=mpv.desktop
x-scheme-handler/anytype=anytype.desktop x-scheme-handler/anytype=anytype.desktop
x-scheme-handler/chrome=zen.desktop x-scheme-handler/chrome=zen.desktop
x-scheme-handler/discord=vesktop.desktop x-scheme-handler/discord=equibop.desktop
x-scheme-handler/http=zen.desktop x-scheme-handler/http=zen.desktop
x-scheme-handler/https=zen.desktop x-scheme-handler/https=zen.desktop
x-scheme-handler/mailto=zen.desktop; x-scheme-handler/mailto=zen.desktop;
x-scheme-handler/tg=org.fagram.desktop x-scheme-handler/tg=org.telegram.desktop.desktop
x-scheme-handler/tonsite=org.fagram.desktop x-scheme-handler/tonsite=org.telegram.desktop.desktop
text/x-csrc=neovide.desktop
video/=mpv.desktop
video/mkv=mpv.desktop
video/x-matroska=mpv.desktop
video/all=mplayer.desktop
text/x-c++hdr=neovide.desktop

View file

@ -12,19 +12,19 @@ music_dir = ~/mus/
cover_regex = ^(album|cover|\.?folder|front).*\.(gif|jpeg|jpg|png)$ cover_regex = ^(album|cover|\.?folder|front).*\.(gif|jpeg|jpg|png)$
[Bling] [Bling]
#mmkeys = True mmkeys = True
notify = False notify = True
# Send notifications while paused? # Send notifications while paused?
#notify_paused = True notify_paused = True
# CD-like previous command: if playback is past 3 seconds, seek to the beginning # CD-like previous command: if playback is past 3 seconds, seek to the beginning
#cdprev = True cdprev = True
#[Notify] [Notify]
# Urgency of the notification: 0 for low, 1 for medium and 2 for high. # Urgency of the notification: 0 for low, 1 for medium and 2 for high.
#urgency = 0 urgency = 0
# Timeout of the notification in milliseconds. -1 uses the notification's default # Timeout of the notification in milliseconds. -1 uses the notification's default
# and 0 sets the notification to never timeout. # and 0 sets the notification to never timeout.
#timeout = -1 timeout = -1
# Format the notification's summary and body in either playing or paused state. # Format the notification's summary and body in either playing or paused state.
# Leave blank to use mpDris2's internal defaults. # Leave blank to use mpDris2's internal defaults.
# Possible values: # Possible values:

60
config/niri/animation.kdl Normal file
View file

@ -0,0 +1,60 @@
animations {
// Uncomment to turn off all animations.
// off
// Slow down all animations by this factor. Values below 1 speed them up instead.
slowdown 1.0
workspace-switch {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
window-open {
// duration-ms 200
// curve "ease-out-quad"
//
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
window-close {
//duration-ms 200
//curve "ease-out-quad"
//
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
horizontal-view-movement {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
window-movement {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
window-resize {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
config-notification-open-close {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
exit-confirmation-open-close {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
screenshot-ui-open {
// duration-ms 200
//curve "ease-out-quad"
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
overview-open-close {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
recent-windows-close {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
}

803
config/niri/bak.config.kdl Normal file
View file

@ -0,0 +1,803 @@
input {
disable-power-key-handling
keyboard {
xkb {
// layout "us,ru"
//options "grp:caps_toggle,altwin:swap_alt_win"
file "~/.config/keymap.xkb"
}
repeat-delay 200
repeat-rate 25
// track-layout "global"
track-layout "global"
numlock
}
touchpad {
// off
tap
// dwt
// dwep
// drag false
// drag-lock
natural-scroll
// accel-speed 0.2
// accel-profile "flat"
// scroll-method "two-finger"
// disabled-on-external-mouse
}
mouse {
// off
// natural-scroll
// accel-speed 0.2
accel-profile "adaptive"
scroll-button 274
// scroll-button-lock
middle-emulation
scroll-method "on-button-down"
}
warp-mouse-to-focus
focus-follows-mouse max-scroll-amount="0%"
trackpoint {
// off
// natural-scroll
// accel-speed 0.2
// accel-profile "flat"
// scroll-method "on-button-down"
// scroll-button 273
// scroll-button-lock
// middle-emulation
}
}
output "DP-1" {
// off
mode "1920x1080@165.000"
scale 1.0
transform "normal"
position x=1280 y=0
variable-refresh-rate on-demand=true
}
layout {
gaps 10
background-color "transparent"
center-focused-column "never"
default-column-display "normal"
preset-column-widths {
proportion 0.33333
proportion 0.5
proportion 0.66666
}
preset-window-heights {
proportion 0.5
proportion 1.0
}
default-column-width { proportion 1.0; }
// By default focus ring and border are rendered as a solid background rectangle
// behind windows. That is, they will show up through semitransparent windows.
// This is because windows using client-side decorations can have an arbitrary shape.
//
// If you don't like that, you should uncomment `prefer-no-csd` below.
// Niri will draw focus ring and border *around* windows that agree to omit their
// client-side decorations.
//
// Alternatively, you can override it with a window rule called
// `draw-border-with-background`.
// You can change how the focus ring looks.
focus-ring {
off
width 2
// - CSS named colors: "red"
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
// active-color "#EEF7FD"
//active-color "#EEF7FD"
// foreground #C1D6D6
//background #07090B
// inactive-color "#5C6871"
// Changing the color space is also supported, check the wiki for more info.
//
// active-gradient from="#80c8ff" to="#c7ff7f" angle=45
// You can also color the gradient relative to the entire view
// of the workspace, rather than relative to just the window itself.
// To do that, set relative-to="workspace-view".
//
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
}
// You can also add a border. It's similar to the focus ring, but always visible.
border {
//off
width 4
active-color "#A8ADBB"
//active-color "#d2dee7"
inactive-color "#1f2830"
}
shadow {
off
color "#0007"
}
// Struts shrink the area occupied by windows, similarly to layer-shell panels.
// You can think of them as a kind of outer gaps. They are set in logical pixels.
// Left and right struts will cause the next window to the side to always be visible.
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
// layer-shell panels and regular gaps.
struts {
left 0
right 0
top 0
bottom 0
}
tab-indicator {
//off
active-color "#eef7fd"
inactive-color "#1f2830"
urgent-color "#f79de7"
width 8
}
insert-hint {
//off
color "#EEF7FD"
}
}
overview {
zoom 0.4
backdrop-color "#07090b"
workspace-shadow {
off
}
}
clipboard {
disable-primary
}
cursor {
xcursor-theme "Bibata-Modern-Ice"
xcursor-size 20
hide-when-typing
hide-after-inactive-ms 500
}
spawn-at-startup "niri-screen-time" "-daemon"
spawn-sh-at-startup "foot --server"
spawn-sh-at-startup "bash ~/.config/niri/caps"
spawn-at-startup "mpDris2"
spawn-at-startup "swayosd-server"
//spawn-at-startup "walker" "--gapplication-service"
spawn-at-startup "hyprwave"
spawn-at-startup "swaync"
spawn-at-startup "clipse" "-listen"
spawn-sh-at-startup "swaybg -c 07090b"
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
//
spawn-sh-at-startup "walker --gapplication-service"
hotkey-overlay {
// Uncomment this line to disable the "Important Hotkeys" pop-up at startup.
skip-at-startup
}
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
// If the client will specifically ask for CSD, the request will be honored.
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
// This option will also fix border/focus ring drawing behind some semitransparent windows.
// After enabling or disabling this, you need to restart the apps for this to take effect.
prefer-no-csd
// You can change the path where screenshots are saved.
// A ~ at the front will be expanded to the home directory.
// The path is formatted with strftime(3) to give you the screenshot date and time.
screenshot-path "~/imgs/screenshots/screenshot-from-%Y-%m-%d %H-%M-%S.png"
//spawn-at-startup "throne"
//spawn-at-startup "kitty" "sudo" "sing-box" "run" "-c" "/home/unconfer/.sing-box/sing-box-03.json"
// You can also set this to null to disable saving screenshots to disk.
// screenshot-path null
// Animation settings.
// The wiki explains how to configure individual animations:
// https://yalter.github.io/niri/Configuration:-Animations
animations {
// Uncomment to turn off all animations.
// off
// Slow down all animations by this factor. Values below 1 speed them up instead.
slowdown 1.0
workspace-switch {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
window-open {
// duration-ms 200
// curve "ease-out-quad"
//
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
window-close {
//duration-ms 200
//curve "ease-out-quad"
//
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
horizontal-view-movement {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
window-movement {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
window-resize {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
config-notification-open-close {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
exit-confirmation-open-close {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
screenshot-ui-open {
// duration-ms 200
//curve "ease-out-quad"
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
overview-open-close {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
recent-windows-close {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
}
recent-windows {
// off
debounce-ms 750
open-delay-ms 100
highlight {
active-color "#eef7fd"
urgent-color "#eef7fd"
padding 20
corner-radius 10
}
previews {
max-height 480
max-scale 0.4
}
binds {
Mod+Tab { next-window; }
Mod+Shift+Tab { previous-window; }
Mod+grave { next-window filter="app-id"; }
Mod+Shift+grave { previous-window filter="app-id"; }
Alt+Tab { next-window; }
Alt+Shift+Tab { previous-window; }
Alt+grave { next-window filter="app-id"; }
Alt+Shift+grave { previous-window filter="app-id"; }
}
}
// Window rules let you adjust behavior for individual windows.
// Find more information on the wiki:
// https://yalter.github.io/niri/Configuration:-Window-Rules
// Work around WezTerm's initial configure bug
// by setting an empty default-column-width.
window-rule {
// This regular expression is intentionally made as specific as possible,
// since this is the default config, and we want no false positives.
// You can get away with just app-id="wezterm" if you want.
match app-id=r#"^org\.wezfurlong\.wezterm$"#
default-column-width {
proportion 0.5
}
}
window-rule {
match title="Walker"
open-floating true
border {
off
}
}
window-rule {
match title="clipse"
match is-floating=true
open-floating true
open-focused true
block-out-from "screencast"
default-column-width { proportion 0.9; }
default-window-height { proportion 0.9; }
scroll-factor 1.0
border {
off
}
}
window-rule {
match app-id="one.alynx.showmethekey"
open-floating true
open-focused false
default-floating-position x=990 y=28 relative-to="top-left"
min-width 900
min-height 170
border {
off
}
}
// Open the Firefox picture-in-picture player as floating by default.
window-rule {
// This app-id regular expression will work for both:
// - host Firefox (app-id is "firefox")
// - Flatpak Firefox (app-id is "org.mozilla.firefox")
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
open-floating true
}
// Example: block out two password managers from screen capture.
// (This example rule is commented out with a "/-" in front.)
/-window-rule {
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
match app-id=r#"^org\.gnome\.World\.Secrets$"#
block-out-from "screen-capture"
// Use this instead if you want them visible on third-party screenshot tools.
// block-out-from "screencast"
}
window-rule {
match title="Media viewer"
default-column-width {
proportion 0.5
}
}
window-rule {
match title="sudo"
border {
active-color "#ff0100"
}
}
// Example: enable rounded corners for all windows.
// (This example rule is commented out with a "/-" in front.)
window-rule {
// open-maximized false
geometry-corner-radius 10
tiled-state true
clip-to-geometry true
open-maximized true
}
layer-rule {
match namespace="waybar"
match at-startup=true
// Properties that apply continuously.
// block-out-from "screen-capture"
shadow {
off
softness 40
spread 5
offset x=0 y=5
draw-behind-window true
// inactive-color "#00000064"
}
geometry-corner-radius 20
place-within-backdrop true
}
// Put swaybg inside the overview backdrop.
layer-rule {
match namespace="^mpvpaper$"
place-within-backdrop true
}
environment{
}
xwayland-satellite {
// off
path "xwayland-satellite"
}
binds {
// MOD+SHIFT+M { spawn "hyprwave-toggle visibility"; }
// MOD+M { spawn-sh "hyprwave-toggle expand"; }
//Mod+M { spawn "hyprwave-toggle" "visibility"; }
// Media Controls
Mod+P { spawn-sh "playerctl -p mpd play-pause"; }
Mod+Period { spawn-sh "playerctl -p mpd next"; }
Mod+Comma { spawn-sh "playerctl -p mpd previous"; }
Ctrl+Alt+V {spawn "/home/unconfer/.sh/paste-txt-file.sh";}
Mod+G { spawn "wl-kbptr" "-o" "modes=floating,click" "-o" "mode_floating.source=detect"; }
// Theme Switching (v1.0)
// MOD+SHIFT+T { spawn-sh "hyprwave-toggle set-theme zzz"; }
// Position Switching (v1.0)
// MOD+SHIFT+LEFT { spawn-sh "hyprwave-toggle set-position left"; }
//MOD+SHIFT+RIGHT { spawn-sh "hyprwave-toggle set-position right"; }
//MOD+SHIFT+UP { spawn-sh "hyprwave-toggle set-position top"; }
//MOD+SHIFT+DOWN { spawn-sh "hyprwave-toggle set-position bottom"; }
//ВНИМАНИЕ СЕКЦИЯ НЕЙРОСЛОПА
// Keys consist of modifiers separated by + signs, followed by an XKB key name
// in the end. To find an XKB name for a particular key, you may use a program
// like wev.
//
// "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
// when running as a winit window.
//
// Most actions that you can bind here can also be invoked programmatically with
// `niri msg action do-something`.
// Mod-Shift-/, which is usually the same as Mod-?,
// shows a list of important hotkeys.
Mod+Shift+Slash { show-hotkey-overlay; }
Super+F{ maximize-column;}
Mod+M { spawn "hyprwave-toggle" "visibility"; }
// Suggested binds for running programs: terminal, app launcher, screen locker.
Mod+Q repeat=false { spawn "footclient"; }
//Mod+D { spawn "fuzzel"; }
Mod+D repeat=false { spawn "walker"; }
// Mod+Grave repeat=false { toggle-overview; }
// Mod+Shift+Grave repeat=false { spawn "kitty" "--class" "-e" "btop" ; }
Super+W { spawn-sh "footclient -T clipse clipse"; }
Mod+Escape { spawn "hyprlock"; }
Mod+Shift+Return { spawn "shutdown" "now"; }
Mod+Ctrl+S { screenshot-window write-to-disk=false; }
Mod+T repeat=false { spawn "swaync-client" "--toggle-panel";}
Mod+Ctrl+Return { spawn "reboot"; }
Mod+Shift+P{spawn "shutdown" "-c";}
Alt+I repeat=false {spawn "hyprpicker" "-a";}
// Mod+Alt+C {;}
// Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc.
// Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`.
// For example, this is a standard bind to toggle the screen reader (orca).
// Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
// Example volume keys mappings for PipeWire & WirePlumber.
//
// The allow-when-locked=true property makes them work even when the session is locked.
// Using spawn-sh allows to pass multiple arguments together with the command.
// XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; }
// XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
// XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
//XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
// XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
XF86AudioRaiseVolume { spawn "swayosd-client" "--output-volume" "5" "--max-volume" "200";}
XF86AudioMute allow-when-locked=true { spawn "swayosd-client" "--output-volume" "mute-toggle"; }
XF86AudioLowerVolume { spawn "swayosd-client" "--output-volume" "-5" "--max-volume" "200";}
Mod+Y allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
// Example brightness key mappings for brightnessctl.
// You can use regular spawn with multiple arguments too (to avoid going through "sh"),
// but you need to manually put each argument in separate "" quotes.
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
// Open/close the Overview: a zoomed-out view of workspaces and windows.
// You can also move the mouse into the top-left hot corner,
// or do a four-finger swipe up on a touchpad.
Mod+O repeat=false { toggle-overview; }
//Mod+Escape repeat=false { toggle-overview; }
Mod+Shift+C repeat=false { close-window; }
Mod+Alt+D repeat=false {spawn "hyprwhspr" "record" "toggle";}
Mod+Left { focus-column-left; }
Mod+Down { focus-window-down; }
Mod+Up { focus-window-up; }
Mod+Right { focus-column-right; }
Mod+H { focus-column-left; }
Mod+J { focus-window-down; }
Mod+K { focus-window-up; }
Mod+L { focus-column-right; }
Mod+Shift+Z { focus-column-left; }
Mod+Shift+X { focus-column-right; }
Mod+Ctrl+Left { move-column-left; }
Mod+Ctrl+Down { move-window-down; }
Mod+Ctrl+Up { move-window-up; }
Mod+Ctrl+Right { move-column-right; }
Mod+Ctrl+H { move-column-left; }
Mod+Ctrl+J { move-window-down; }
Mod+Ctrl+K { move-window-up; }
Mod+Ctrl+L { move-column-right; }
Mod+Ctrl+MouseForward { move-column-right; }
Mod+Ctrl+MouseBack { move-column-left; }
// Alternative commands that move across workspaces when reaching
// the first or last window in a column.
// Mod+J { focus-window-or-workspace-down; }
// Mod+K { focus-window-or-workspace-up; }
// Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
// Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
Mod+Home { focus-column-first; }
Mod+End { focus-column-last; }
Mod+Ctrl+Home { move-column-to-first; }
Mod+Ctrl+End { move-column-to-last; }
Mod+Shift+Left { focus-monitor-left; }
Mod+Shift+Down { focus-monitor-down; }
Mod+Shift+Up { focus-monitor-up; }
Mod+Shift+Right { focus-monitor-right; }
Mod+Shift+H { focus-monitor-left; }
Mod+Shift+J { focus-monitor-down; }
Mod+Shift+K { focus-monitor-up; }
// Mod+Shift+L { focus-monitor-right; }
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
// Alternatively, there are commands to move just a single window:
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
// ...
// And you can also move a whole workspace to another monitor:
// Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
// ...
Mod+Page_Down { focus-workspace-down; }
Mod+Page_Up { focus-workspace-up; }
Mod+U { focus-workspace-down; }
Mod+I { focus-workspace-up; }
Mod+2 { focus-workspace-down; }
Mod+1 { focus-workspace-up; }
Mod+Ctrl+2 { move-column-to-workspace-down; }
Mod+Ctrl+1 { move-column-to-workspace-up; }
Mod+Shift+1 {focus-column-left;}
Mod+Shift+2 {focus-column-right;}
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
Mod+Ctrl+U { move-column-to-workspace-down; }
Mod+Ctrl+I { move-column-to-workspace-up; }
// Alternatively, there are commands to move just a single window:
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
// ...
Mod+Shift+Page_Down { move-workspace-down; }
Mod+Shift+Page_Up { move-workspace-up; }
Mod+Shift+U { move-workspace-down; }
Mod+Shift+I { move-workspace-up; }
Mod+Shift+MouseForward { focus-workspace-down; }
Mod+Shift+MouseBack { focus-workspace-up; }
Mod+MouseForward { focus-column-right; }
Mod+MouseBack { focus-column-left; }
// You can bind mouse wheel scroll ticks using the following syntax.
// These binds will change direction based on the natural-scroll setting.
//
// To avoid scrolling through workspaces really fast, you can use
// the cooldown-ms property. The bind will be rate-limited to this value.
// You can set a cooldown on any bind, but it's most useful for the wheel.
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
//Mod+Shift+WheelScrollDown cooldown-ms=150 { focus-column-left; }
//Mod+Shift+WheelScrollUp cooldown-ms=150 { focus-column-right; }
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
Mod+WheelScrollRight { focus-column-right; }
Mod+WheelScrollLeft { focus-column-left; }
Mod+Ctrl+WheelScrollRight { move-column-right; }
Mod+Ctrl+WheelScrollLeft { move-column-left; }
// Usually scrolling up and down with Shift in applications results in
// horizontal scrolling; these binds replicate that.
Mod+Shift+WheelScrollDown { focus-column-right; }
Mod+Shift+WheelScrollUp { focus-column-left; }
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
// Similarly, you can bind touchpad scroll "ticks".
// Touchpad scrolling is continuous, so for these binds it is split into
// discrete intervals.
// These binds are also affected by touchpad's natural-scroll, so these
// example binds are "inverted", since we have natural-scroll enabled for
// touchpads by default.
// Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
// Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }
// You can refer to workspaces by index. However, keep in mind that
// niri is a dynamic workspace system, so these commands are kind of
// "best effort". Trying to refer to a workspace index bigger than
// the current workspace count will instead refer to the bottommost
// (empty) workspace.
//
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
// will all refer to the 3rd workspace.
// Mod+1 { focus-workspace 1; }
//Mod+2 { focus-workspace 2; }
//Mod+3 repeat=false { toggle-overview; }
// Mod+4 { focus-workspace 4; }
//Mod+5 { focus-workspace 5; }
//Mod+6 { focus-workspace 6; }
//Mod+7 { focus-workspace 7; }
//Mod+8 { focus-workspace 8; }
//Mod+9 { focus-workspace 9; }
//Mod+Ctrl+1 { move-column-to-workspace 1; }
//Mod+Ctrl+2 { move-column-to-workspace 2; }
Mod+Ctrl+3 { move-column-to-workspace 3; }
//Mod+Ctrl+4 { move-column-to-workspace 4; }
//Mod+Ctrl+5 { move-column-to-workspace 5; }
//Mod+Ctrl+6 { move-column-to-workspace 6; }
//Mod+Ctrl+7 { move-column-to-workspace 7; }
//Mod+Ctrl+8 { move-column-to-workspace 8; }
//Mod+Ctrl+9 { move-column-to-workspace 9; }
// Alternatively, there are commands to move just a single window:
// Mod+Ctrl+1 { move-window-to-workspace 1; }
// Switches focus between the current and the previous workspace.
//Mod+Tab { focus-workspace-previous; }
// The following binds move the focused window in and out of a column.
// If the window is alone, they will consume it into the nearby column to the side.
// If the window is already in a column, they will expel it out.
Mod+BracketLeft { consume-or-expel-window-left; }
Mod+BracketRight { consume-or-expel-window-right; }
// Consume one window from the right to the bottom of the focused column.
Mod+3 { consume-window-into-column; }
// Expel the bottom window from the focused column to the right.
Mod+4 { expel-window-from-column; }
Mod+A repeat=false { switch-preset-column-width; }
Mod+Shift+W { toggle-column-tabbed-display; }
// Cycling through the presets in reverse order is also possible.
// Mod+R { switch-preset-column-width-back; }
Mod+Shift+R repeat=false { switch-preset-window-height; }
Mod+Ctrl+R { reset-window-height; }
Mod+Shift+F repeat=false { fullscreen-window; }
// Expand the focused column to space not taken up by other fully visible columns.
// Makes the column "fill the rest of the space".
Mod+Ctrl+F { expand-column-to-available-width; }
//Mod+M { center-column; }
// Center all fully visible columns on screen.
Mod+C { center-column; }
// Finer width adjustments.
// This command can also:
// * set width in pixels: "1000"
// * adjust width in pixels: "-5" or "+5"
// * set width as a percentage of screen width: "25%"
// * adjust width as a percentage of screen width: "-10%" or "+10%"
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
// set-column-width "100" will make the column occupy 200 physical screen pixels.
Mod+Minus { set-column-width "-5%"; }
Mod+Equal { set-column-width "+5%"; }
// Finer height adjustments when in column with other windows.
Mod+Shift+Minus { set-window-height "-5%"; }
Mod+Shift+Equal { set-window-height "+5%"; }
Mod+V { toggle-window-floating; }
// Move the focused window between the floating and the tiling layout.
//Mod+V {spawn "pavucontrol"; }
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
// Toggle tabbed column display mode.
// Windows in this column will appear as vertical tabs,
// rather than stacked on top of each other.
Mod+N { toggle-column-tabbed-display; }
// Actions to switch layouts.
// Note: if you uncomment these, make sure you do NOT have
// a matching layout switch hotkey configured in xkb options above.
// Having both at once on the same hotkey will break the switching,
// since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
// Mod+Space { switch-layout "next"; }
// Mod+Shift+Space { switch-layout "prev"; }
Mod+S { screenshot; }
Super+Shift+S { screenshot-screen; }
// Applications such as remote-desktop clients and software KVM switches may
// request that niri stops processing the keyboard shortcuts defined here
// so they may, for example, forward the key presses as-is to a remote machine.
// It's a good idea to bind an escape hatch to toggle the inhibitor,
// so a buggy application can't hold your session hostage.
//
// The allow-inhibiting=false property can be applied to other binds as well,
// which ensures niri always processes them, even when an inhibitor is active.
//Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
// The quit action will show a confirmation dialog to avoid accidental exits.
Mod+Shift+Escape { quit; }
Ctrl+Alt+Delete { quit; }
// Powers off the monitors. To turn them back on, do any input like
// moving the mouse or pressing any other key.
//Mod+Shift+P { power-off-monitors; }
}

302
config/niri/binds.kdl Normal file
View file

@ -0,0 +1,302 @@
binds {
// Media Controls
Mod+P { spawn-sh "playerctl -p mpd play-pause"; }
Mod+Period { spawn-sh "playerctl -p mpd next"; }
Mod+Comma { spawn-sh "playerctl -p mpd previous"; }
Ctrl+Alt+V {spawn "/home/unconfer/.sh/paste-txt-file.sh";}
Mod+G { spawn "wl-kbptr" "-o" "modes=floating,click" "-o" "mode_floating.source=detect"; }
Mod+Shift+Slash { show-hotkey-overlay; }
Super+F{ maximize-column;}
Mod+M { spawn "hyprwave-toggle" "visibility"; }
// Suggested binds for running programs: terminal, app launcher, screen locker.
Mod+Q repeat=false { spawn "footclient"; }
//Mod+D { spawn "fuzzel"; }
Mod+D repeat=false { spawn "walker"; }
Mod+Alt+N repeat=false { spawn-sh "bash ~/.config/niri/noctalia-toggle.sh";}
Mod+Alt+I repeat=false { spawn-sh "bash ~/.config/niri/ironbar-toggle.sh";}
// Mod+D repeat=false { spawn-sh "qs -c noctalia-shell ipc call launcher toggle"; }
Mod+Grave repeat=false { toggle-overview; }
Super+W { spawn-sh "footclient -T clipse clipse"; }
Mod+Escape { spawn "hyprlock"; }
Mod+Shift+Return { spawn "shutdown" "now"; }
Mod+Ctrl+S { screenshot-window write-to-disk=false; }
Mod+T repeat=false { spawn "swaync-client" "--toggle-panel";}
Mod+Ctrl+Return { spawn "reboot"; }
Mod+Shift+P{spawn "shutdown" "-c";}
Alt+I repeat=false {spawn "hyprpicker" "-a";}
Mod+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; } // такое себе
// Mod+Shift+G {}
// Example volume keys mappings for PipeWire & WirePlumber.
//
// The allow-when-locked=true property makes them work even when the session is locked.
// Using spawn-sh allows to pass multiple arguments together with the command.
// XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; }
// XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
// XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
//XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
// XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
XF86AudioRaiseVolume { spawn "swayosd-client" "--output-volume" "5" "--max-volume" "200";}
XF86AudioMute allow-when-locked=true { spawn "swayosd-client" "--output-volume" "mute-toggle"; }
XF86AudioLowerVolume { spawn "swayosd-client" "--output-volume" "-5" "--max-volume" "200";}
Mod+Y allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
// Example brightness key mappings for brightnessctl.
// You can use regular spawn with multiple arguments too (to avoid going through "sh"),
// but you need to manually put each argument in separate "" quotes.
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
// Open/close the Overview: a zoomed-out view of workspaces and windows.
// You can also move the mouse into the top-left hot corner,
// or do a four-finger swipe up on a touchpad.
Mod+O repeat=false { toggle-overview; }
//Mod+Escape repeat=false { toggle-overview; }
Mod+Shift+C repeat=false { close-window; }
Mod+Alt+D repeat=false {spawn-sh "hyprwhspr record toggle";}
Mod+Left { focus-column-left; }
Mod+Down { focus-window-down; }
Mod+Up { focus-window-up; }
Mod+Right { focus-column-right; }
Mod+H { focus-column-left; }
Mod+J { focus-window-down; }
Mod+K { focus-window-up; }
Mod+L { focus-column-right; }
Mod+Shift+Z { focus-column-left; }
Mod+Shift+X { focus-column-right; }
Mod+Ctrl+Left { move-column-left; }
Mod+Ctrl+Down { move-window-down; }
Mod+Ctrl+Up { move-window-up; }
Mod+Ctrl+Right { move-column-right; }
Mod+Ctrl+H { move-column-left; }
Mod+Ctrl+J { move-window-down; }
Mod+Ctrl+K { move-window-up; }
Mod+Ctrl+L { move-column-right; }
Mod+Ctrl+MouseForward { move-column-right; }
Mod+Ctrl+MouseBack { move-column-left; }
// Alternative commands that move across workspaces when reaching
// the first or last window in a column.
// Mod+J { focus-window-or-workspace-down; }
// Mod+K { focus-window-or-workspace-up; }
// Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
// Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
Mod+Home { focus-column-first; }
Mod+End { focus-column-last; }
Mod+Ctrl+Home { move-column-to-first; }
Mod+Ctrl+End { move-column-to-last; }
Mod+Shift+Left { focus-monitor-left; }
Mod+Shift+Down { focus-monitor-down; }
Mod+Shift+Up { focus-monitor-up; }
Mod+Shift+Right { focus-monitor-right; }
Mod+Shift+H { focus-monitor-left; }
Mod+Shift+J { focus-monitor-down; }
Mod+Shift+K { focus-monitor-up; }
// Mod+Shift+L { focus-monitor-right; }
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
// Alternatively, there are commands to move just a single window:
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
// ...
// And you can also move a whole workspace to another monitor:
// Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
// ...
Mod+Page_Down { focus-workspace-down; }
Mod+Page_Up { focus-workspace-up; }
Mod+U { focus-workspace-down; }
Mod+I { focus-workspace-up; }
Mod+2 { focus-workspace-down; }
Mod+1 { focus-workspace-up; }
Mod+Ctrl+2 { move-column-to-workspace-down; }
Mod+Ctrl+1 { move-column-to-workspace-up; }
Mod+Shift+1 {focus-column-left;}
Mod+Shift+2 {focus-column-right;}
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
Mod+Ctrl+U { move-column-to-workspace-down; }
Mod+Ctrl+I { move-column-to-workspace-up; }
// Alternatively, there are commands to move just a single window:
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
// ...
Mod+Shift+Page_Down { move-workspace-down; }
Mod+Shift+Page_Up { move-workspace-up; }
Mod+Shift+U { move-workspace-down; }
Mod+Shift+I { move-workspace-up; }
Mod+Shift+MouseForward { focus-workspace-down; }
Mod+Shift+MouseBack { focus-workspace-up; }
Mod+MouseForward { focus-column-right; }
Mod+MouseBack { focus-column-left; }
// You can bind mouse wheel scroll ticks using the following syntax.
// These binds will change direction based on the natural-scroll setting.
//
// To avoid scrolling through workspaces really fast, you can use
// the cooldown-ms property. The bind will be rate-limited to this value.
// You can set a cooldown on any bind, but it's most useful for the wheel.
Mod+WheelScrollDown cooldown-ms=0 { focus-workspace-down; }
Mod+WheelScrollUp cooldown-ms=0 { focus-workspace-up; }
//Mod+Shift+WheelScrollDown cooldown-ms=150 { focus-column-left; }
//Mod+Shift+WheelScrollUp cooldown-ms=150 { focus-column-right; }
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
Mod+WheelScrollRight { focus-column-right; }
Mod+WheelScrollLeft { focus-column-left; }
Mod+Ctrl+WheelScrollRight { move-column-right; }
Mod+Ctrl+WheelScrollLeft { move-column-left; }
// Usually scrolling up and down with Shift in applications results in
// horizontal scrolling; these binds replicate that.
Mod+Shift+WheelScrollDown { focus-column-right; }
Mod+Shift+WheelScrollUp { focus-column-left; }
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
// Similarly, you can bind touchpad scroll "ticks".
// Touchpad scrolling is continuous, so for these binds it is split into
// discrete intervals.
// These binds are also affected by touchpad's natural-scroll, so these
// example binds are "inverted", since we have natural-scroll enabled for
// touchpads by default.
// Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
// Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }
// You can refer to workspaces by index. However, keep in mind that
// niri is a dynamic workspace system, so these commands are kind of
// "best effort". Trying to refer to a workspace index bigger than
// the current workspace count will instead refer to the bottommost
// (empty) workspace.
//
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
// will all refer to the 3rd workspace.
// Mod+1 { focus-workspace 1; }
//Mod+2 { focus-workspace 2; }
//Mod+3 repeat=false { toggle-overview; }
// Mod+4 { focus-workspace 4; }
//Mod+5 { focus-workspace 5; }
//Mod+6 { focus-workspace 6; }
//Mod+7 { focus-workspace 7; }
//Mod+8 { focus-workspace 8; }
//Mod+9 { focus-workspace 9; }
//Mod+Ctrl+1 { move-column-to-workspace 1; }
//Mod+Ctrl+2 { move-column-to-workspace 2; }
Mod+Ctrl+3 { move-column-to-workspace 3; }
//Mod+Ctrl+4 { move-column-to-workspace 4; }
//Mod+Ctrl+5 { move-column-to-workspace 5; }
//Mod+Ctrl+6 { move-column-to-workspace 6; }
//Mod+Ctrl+7 { move-column-to-workspace 7; }
//Mod+Ctrl+8 { move-column-to-workspace 8; }
//Mod+Ctrl+9 { move-column-to-workspace 9; }
// Alternatively, there are commands to move just a single window:
// Mod+Ctrl+1 { move-window-to-workspace 1; }
// Switches focus between the current and the previous workspace.
//Mod+Tab { focus-workspace-previous; }
// The following binds move the focused window in and out of a column.
// If the window is alone, they will consume it into the nearby column to the side.
// If the window is already in a column, they will expel it out.
Mod+BracketLeft { consume-or-expel-window-left; }
Mod+BracketRight { consume-or-expel-window-right; }
// Consume one window from the right to the bottom of the focused column.
Mod+3 { consume-window-into-column; }
// Expel the bottom window from the focused column to the right.
Mod+4 { expel-window-from-column; }
Mod+A repeat=false { switch-preset-column-width; }
Mod+Shift+W { toggle-column-tabbed-display; }
// Cycling through the presets in reverse order is also possible.
// Mod+R { switch-preset-column-width-back; }
Mod+Shift+R repeat=false { switch-preset-window-height; }
Mod+Ctrl+R { reset-window-height; }
Mod+Shift+F repeat=false { fullscreen-window; }
// Expand the focused column to space not taken up by other fully visible columns.
// Makes the column "fill the rest of the space".
Mod+Ctrl+F { expand-column-to-available-width; }
//Mod+M { center-column; }
// Center all fully visible columns on screen.
Mod+C { center-column; }
// Finer width adjustments.
// This command can also:
// * set width in pixels: "1000"
// * adjust width in pixels: "-5" or "+5"
// * set width as a percentage of screen width: "25%"
// * adjust width as a percentage of screen width: "-10%" or "+10%"
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
// set-column-width "100" will make the column occupy 200 physical screen pixels.
Mod+Minus { set-column-width "-5%"; }
Mod+Equal { set-column-width "+5%"; }
// Finer height adjustments when in column with other windows.
Mod+Shift+Minus { set-window-height "-5%"; }
Mod+Shift+Equal { set-window-height "+5%"; }
Mod+V { toggle-window-floating; }
// Move the focused window between the floating and the tiling layout.
//Mod+V {spawn "pavucontrol"; }
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
// Toggle tabbed column display mode.
// Windows in this column will appear as vertical tabs,
// rather than stacked on top of each other.
Mod+N { toggle-column-tabbed-display; }
// Actions to switch layouts.
// Note: if you uncomment these, make sure you do NOT have
// a matching layout switch hotkey configured in xkb options above.
// Having both at once on the same hotkey will break the switching,
// since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
// Mod+Space { switch-layout "next"; }
// Mod+Shift+Space { switch-layout "prev"; }
Mod+S { screenshot; }
Super+Shift+S { screenshot-screen; }
//Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
Mod+Shift+Escape { quit; }
Ctrl+Alt+Delete { quit; }
//Mod+Shift+P { power-off-monitors; }
}

35
config/niri/caps Executable file
View file

@ -0,0 +1,35 @@
#!/bin/bash
NOTIFY_ID=""
LAST_LAYOUT=""
while IFS= read -r line; do
if [[ "$line" == *"Keyboard layout switched"* ]]; then
# Извлекаем индекс раскладки встроенным регулярным выражением
if [[ "$line" =~ ([0-9]+) ]]; then
layout="${BASH_REMATCH[1]}"
else
continue
fi
# Пропускаем дубликаты событий (снижает нагрузку и мигание индикаторов)
if [[ "$layout" == "$LAST_LAYOUT" ]]; then
continue
fi
LAST_LAYOUT="$layout"
if [[ "$layout" == "1" ]]; then
brightnessctl -d 'input12::capslock' s 1
msg="RU"
else
brightnessctl -d 'input12::capslock' s 0
msg="EN"
fi
if [[ -z "$NOTIFY_ID" ]]; then
NOTIFY_ID=$(notify-send --print-id "keymap" "$msg")
else
notify-send -r "$NOTIFY_ID" "keymap" "$msg"
fi
fi
done < <(niri msg event-stream)

View file

@ -1,159 +1,13 @@
input { include "binds.kdl"
keyboard { include "window-rule.kdl"
xkb { include "input.kdl"
layout "us,ru" include "output-pc.kdl"
options "grp:caps_toggle" // include "spawn-at-startup.kdl"
} include "animation.kdl"
repeat-delay 225 include "layout.kdl"
repeat-rate 25
// track-layout "global"
numlock
}
touchpad {
// off
tap
// dwt
// dwtp
// drag false
// drag-lock
natural-scroll
// accel-speed 0.2
// accel-profile "flat"
// scroll-method "two-finger"
// disabled-on-external-mouse
}
mouse {
// off
// natural-scroll
// accel-speed 0.2
accel-profile "adaptive"
scroll-button 274
scroll-method "on-button-down"
}
warp-mouse-to-focus
focus-follows-mouse max-scroll-amount="0%"
trackpoint {
// off
// natural-scroll
// accel-speed 0.2
// accel-profile "flat"
// scroll-method "on-button-down"
// scroll-button 273
// scroll-button-lock
// middle-emulation
}
}
output "DP-1" {
// off
mode "1920x1080@165.000"
scale 1.0
transform "normal"
position x=1280 y=0
variable-refresh-rate on-demand=true
}
layout {
gaps 10
background-color "transparent"
center-focused-column "never"
default-column-display "normal"
preset-column-widths {
proportion 0.33333
proportion 0.5
proportion 0.66666
}
preset-window-heights {
proportion 0.5
proportion 1.0
}
default-column-width { proportion 1.0; }
// By default focus ring and border are rendered as a solid background rectangle
// behind windows. That is, they will show up through semitransparent windows.
// This is because windows using client-side decorations can have an arbitrary shape.
//
// If you don't like that, you should uncomment `prefer-no-csd` below.
// Niri will draw focus ring and border *around* windows that agree to omit their
// client-side decorations.
//
// Alternatively, you can override it with a window rule called
// `draw-border-with-background`.
// You can change how the focus ring looks.
focus-ring {
off
width 2
// - CSS named colors: "red"
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
// active-color "#EEF7FD"
//active-color "#EEF7FD"
// foreground #C1D6D6
//background #07090B
// inactive-color "#5C6871"
// Changing the color space is also supported, check the wiki for more info.
//
// active-gradient from="#80c8ff" to="#c7ff7f" angle=45
// You can also color the gradient relative to the entire view
// of the workspace, rather than relative to just the window itself.
// To do that, set relative-to="workspace-view".
//
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
}
// You can also add a border. It's similar to the focus ring, but always visible.
border {
//off
width 4
active-color "#25c39f"
inactive-color "#eef7fd"
}
shadow {
off
color "#0007"
}
// Struts shrink the area occupied by windows, similarly to layer-shell panels.
// You can think of them as a kind of outer gaps. They are set in logical pixels.
// Left and right struts will cause the next window to the side to always be visible.
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
// layer-shell panels and regular gaps.
struts {
left 0
right 0
top 0
bottom 0
}
tab-indicator {
//off
active-color "#f6db8b"
inactive-color "#8fd2f7"
urgent-color "#eef7fd"
width 5
}
insert-hint {
//off
color "#EEF7FD"
}
}
overview { overview {
zoom 0.4 zoom 0.4
backdrop-color "#07090b" backdrop-color "#07090b"
workspace-shadow { workspace-shadow {
off off
} }
@ -165,589 +19,69 @@ cursor {
xcursor-theme "Bibata-Modern-Ice" xcursor-theme "Bibata-Modern-Ice"
xcursor-size 20 xcursor-size 20
hide-when-typing hide-when-typing
hide-after-inactive-ms 1000 hide-after-inactive-ms 500
} }
spawn-at-startup "niri-screen-time" "-daemon"
spawn-at-startup "mpDris2"
spawn-at-startup "swayosd-server"
spawn-at-startup "walker" "--gapplication-service"
spawn-at-startup "hyprwave"
spawn-at-startup "swaync"
spawn-at-startup "clipse" "-listen"
spawn-at-startup "swaybg" "-i" "imgs/bafkreiax76e2p3xqoikrkbppjl4mipnaamqrgxkcfgwqtrsa3glksq644m"
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
//
spawn-sh-at-startup "walker --gapplication-service"
hotkey-overlay { hotkey-overlay {
// Uncomment this line to disable the "Important Hotkeys" pop-up at startup.
skip-at-startup skip-at-startup
} }
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
// If the client will specifically ask for CSD, the request will be honored.
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
// This option will also fix border/focus ring drawing behind some semitransparent windows.
// After enabling or disabling this, you need to restart the apps for this to take effect.
prefer-no-csd prefer-no-csd
// You can change the path where screenshots are saved.
// A ~ at the front will be expanded to the home directory.
// The path is formatted with strftime(3) to give you the screenshot date and time.
screenshot-path "~/imgs/screenshots/screenshot-from-%Y-%m-%d %H-%M-%S.png" screenshot-path "~/imgs/screenshots/screenshot-from-%Y-%m-%d %H-%M-%S.png"
//spawn-at-startup "throne"
//spawn-at-startup "kitty" "sudo" "sing-box" "run" "-c" "/home/unconfer/.sing-box/sing-box-03.json"
// You can also set this to null to disable saving screenshots to disk. // You can also set this to null to disable saving screenshots to disk.
// screenshot-path null // screenshot-path null
recent-windows {
// Animation settings.
// The wiki explains how to configure individual animations:
// https://yalter.github.io/niri/Configuration:-Animations
animations {
// Uncomment to turn off all animations.
// off // off
debounce-ms 750
open-delay-ms 100
// Slow down all animations by this factor. Values below 1 speed them up instead. highlight {
slowdown 1.0 active-color "#eef7fd"
workspace-switch { urgent-color "#eef7fd"
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001 padding 20
} corner-radius 10
window-open {
// duration-ms 200
// curve "ease-out-quad"
//
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
window-close {
//duration-ms 200
//curve "ease-out-quad"
//
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
horizontal-view-movement {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
window-movement {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
window-resize {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
config-notification-open-close {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
exit-confirmation-open-close {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
screenshot-ui-open {
// duration-ms 200
//curve "ease-out-quad"
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
overview-open-close {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
recent-windows-close {
spring damping-ratio=0.65 stiffness=600 epsilon=0.0001
}
}
// Window rules let you adjust behavior for individual windows.
// Find more information on the wiki:
// https://yalter.github.io/niri/Configuration:-Window-Rules
// Work around WezTerm's initial configure bug
// by setting an empty default-column-width.
window-rule {
// This regular expression is intentionally made as specific as possible,
// since this is the default config, and we want no false positives.
// You can get away with just app-id="wezterm" if you want.
match app-id=r#"^org\.wezfurlong\.wezterm$"#
default-column-width {
proportion 0.5
}
}
window-rule {
match title="Walker"
open-floating true
border {
off
}
}
window-rule {
match app-id="clipse"
// match is-floating=true
open-maximized true
open-floating true
tiled-state true
}
window-rule {
// open-maximized false
geometry-corner-radius 10
tiled-state true
clip-to-geometry true
}
window-rule {
match app-id="one.alynx.showmethekey"
open-floating true
open-focused false
default-floating-position x=990 y=28 relative-to="top-left"
min-width 900
min-height 170
border {
off
}
}
// Open the Firefox picture-in-picture player as floating by default.
window-rule {
// This app-id regular expression will work for both:
// - host Firefox (app-id is "firefox")
// - Flatpak Firefox (app-id is "org.mozilla.firefox")
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
open-floating true
}
// Example: block out two password managers from screen capture.
// (This example rule is commented out with a "/-" in front.)
/-window-rule {
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
match app-id=r#"^org\.gnome\.World\.Secrets$"#
block-out-from "screen-capture"
// Use this instead if you want them visible on third-party screenshot tools.
// block-out-from "screencast"
}
window-rule {
match title="Media viewer"
default-column-width {
proportion 0.5
} }
} previews {
window-rule { max-height 480
match title="sudo" max-scale 0.4
border {
active-color "#ff0100"
}
}
// Example: enable rounded corners for all windows.
// (This example rule is commented out with a "/-" in front.)
window-rule {
geometry-corner-radius 10
clip-to-geometry true
}
layer-rule {
match namespace="waybar"
match at-startup=true
// Properties that apply continuously.
opacity 1.0
// block-out-from "screen-capture"
shadow {
off
softness 40
spread 5
offset x=0 y=5
draw-behind-window true
// inactive-color "#00000064"
} }
geometry-corner-radius 20 binds {
place-within-backdrop true Mod+Tab { next-window; }
Mod+Shift+Tab { previous-window; }
// Mod+grave { next-window filter="app-id"; }
Mod+Shift+grave { previous-window filter="app-id"; }
Alt+Tab { next-window; }
Alt+Shift+Tab { previous-window; }
Alt+grave { next-window filter="app-id"; }
Alt+Shift+grave { previous-window filter="app-id"; }
}
} }
// Put swaybg inside the overview backdrop.
layer-rule {
match namespace="^wallpaper$"
place-within-backdrop true
}
environment{ environment{
XDG_CURRENT_DESKTOP "niri"
QT_QPA_PLATFORMTHEME "xdgdesktopportal"
QT_QPA_PLATFORM "wayland"
ELECTRON_OZONE_PLATFORM_HINT "wayland"
//ЖQT_STYLE_OVERRIDE "adwaita"
QT_STYLE_OVERRIDE "kvantum"
} }
xwayland-satellite { xwayland-satellite {
// off // off
path "xwayland-satellite" path "xwayland-satellite"
} }
binds {
// MOD+SHIFT+M { spawn "hyprwave-toggle visibility"; } include "dms/cursor.kdl"
// MOD+M { spawn-sh "hyprwave-toggle expand"; }
//Mod+M { spawn "hyprwave-toggle" "visibility"; }
// Media Controls
Mod+P { spawn-sh "playerctl -p mpd play-pause"; }
Mod+Period { spawn-sh "playerctl -p mpd next"; }
Mod+Comma { spawn-sh "playerctl -p mpd previous"; }
Ctrl+Alt+V {spawn "/home/unconfer/.sh/paste-txt-file.sh";}
// Theme Switching (v1.0)
// MOD+SHIFT+T { spawn-sh "hyprwave-toggle set-theme zzz"; }
// Position Switching (v1.0)
// MOD+SHIFT+LEFT { spawn-sh "hyprwave-toggle set-position left"; }
//MOD+SHIFT+RIGHT { spawn-sh "hyprwave-toggle set-position right"; }
//MOD+SHIFT+UP { spawn-sh "hyprwave-toggle set-position top"; }
//MOD+SHIFT+DOWN { spawn-sh "hyprwave-toggle set-position bottom"; }
include "dms/outputs.kdl"
include "dms/windowrules.kdl"
include "binds.kdl"
//ВНИМАНИЕ СЕКЦИЯ НЕЙРОСЛОПА include "window-rule.kdl"
include "input.kdl"
// Keys consist of modifiers separated by + signs, followed by an XKB key name include "output-pc.kdl"
// in the end. To find an XKB name for a particular key, you may use a program include "spawn-at-startup.kdl"
// like wev. include "animation.kdl"
// include "layout.kdl"
// "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
// when running as a winit window.
//
// Most actions that you can bind here can also be invoked programmatically with
// `niri msg action do-something`.
// Mod-Shift-/, which is usually the same as Mod-?,
// shows a list of important hotkeys.
Mod+Shift+Slash { show-hotkey-overlay; }
Super+F{ maximize-column;}
Mod+M { spawn "hyprwave-toggle" "visibility"; }
// Suggested binds for running programs: terminal, app launcher, screen locker.
Mod+Q { spawn "kitty"; }
//Mod+D { spawn "fuzzel"; }
Mod+D { spawn "walker"; }
Mod+Grave repeat=false { toggle-overview; }
Mod+Shift+Grave repeat=false { spawn "kitty" "--class" "-e" "btop" ; }
Super+W { spawn "kitty" "--class" "clipse" "-e" "clipse"; }
Mod+Escape { spawn "hyprlock"; }
Mod+Shift+Return { spawn "shutdown" "now"; }
Mod+Ctrl+S { screenshot-window write-to-disk=false; }
Mod+T repeat=false { spawn "swaync-client" "--toggle-panel";}
Mod+Ctrl+Return { spawn "reboot"; }
Mod+Shift+P{spawn "shutdown" "-c";}
Alt+I repeat=false {spawn "hyprpicker" "-a";}
// Mod+Alt+C {;}
// Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc.
// Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`.
// For example, this is a standard bind to toggle the screen reader (orca).
// Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
// Example volume keys mappings for PipeWire & WirePlumber.
//
// The allow-when-locked=true property makes them work even when the session is locked.
// Using spawn-sh allows to pass multiple arguments together with the command.
// XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; }
// XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
// XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
//XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
// XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
XF86AudioRaiseVolume { spawn "swayosd-client" "--output-volume" "5" "--max-volume" "200";}
XF86AudioMute allow-when-locked=true { spawn "swayosd-client" "--output-volume" "mute-toggle"; }
XF86AudioLowerVolume { spawn "swayosd-client" "--output-volume" "-5" "--max-volume" "200";}
Mod+Y allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
// Example brightness key mappings for brightnessctl.
// You can use regular spawn with multiple arguments too (to avoid going through "sh"),
// but you need to manually put each argument in separate "" quotes.
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
// Open/close the Overview: a zoomed-out view of workspaces and windows.
// You can also move the mouse into the top-left hot corner,
// or do a four-finger swipe up on a touchpad.
Mod+O repeat=false { toggle-overview; }
//Mod+Escape repeat=false { toggle-overview; }
Mod+Shift+C repeat=false { close-window; }
Mod+Alt+D repeat=false {spawn "hyprwhspr" "record" "toggle";}
Mod+Left { focus-column-left; }
Mod+Down { focus-window-down; }
Mod+Up { focus-window-up; }
Mod+Right { focus-column-right; }
Mod+H { focus-column-left; }
Mod+J { focus-window-down; }
Mod+K { focus-window-up; }
Mod+L { focus-column-right; }
Mod+Shift+Z { focus-column-left; }
Mod+Shift+X { focus-column-right; }
Mod+Ctrl+Left { move-column-left; }
Mod+Ctrl+Down { move-window-down; }
Mod+Ctrl+Up { move-window-up; }
Mod+Ctrl+Right { move-column-right; }
Mod+Ctrl+H { move-column-left; }
Mod+Ctrl+J { move-window-down; }
Mod+Ctrl+K { move-window-up; }
Mod+Ctrl+L { move-column-right; }
Mod+Ctrl+MouseForward { move-column-right; }
Mod+Ctrl+MouseBack { move-column-left; }
// Alternative commands that move across workspaces when reaching
// the first or last window in a column.
// Mod+J { focus-window-or-workspace-down; }
// Mod+K { focus-window-or-workspace-up; }
// Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
// Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
Mod+Home { focus-column-first; }
Mod+End { focus-column-last; }
Mod+Ctrl+Home { move-column-to-first; }
Mod+Ctrl+End { move-column-to-last; }
Mod+Shift+Left { focus-monitor-left; }
Mod+Shift+Down { focus-monitor-down; }
Mod+Shift+Up { focus-monitor-up; }
Mod+Shift+Right { focus-monitor-right; }
Mod+Shift+H { focus-monitor-left; }
Mod+Shift+J { focus-monitor-down; }
Mod+Shift+K { focus-monitor-up; }
// Mod+Shift+L { focus-monitor-right; }
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
// Alternatively, there are commands to move just a single window:
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
// ...
// And you can also move a whole workspace to another monitor:
// Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
// ...
Mod+Page_Down { focus-workspace-down; }
Mod+Page_Up { focus-workspace-up; }
Mod+U { focus-workspace-down; }
Mod+I { focus-workspace-up; }
Mod+2 { focus-workspace-down; }
Mod+1 { focus-workspace-up; }
Mod+Ctrl+2 { move-column-to-workspace-down; }
Mod+Ctrl+1 { move-column-to-workspace-up; }
Mod+Shift+1 {focus-column-left;}
Mod+Shift+2 {focus-column-right;}
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
Mod+Ctrl+U { move-column-to-workspace-down; }
Mod+Ctrl+I { move-column-to-workspace-up; }
// Alternatively, there are commands to move just a single window:
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
// ...
Mod+Shift+Page_Down { move-workspace-down; }
Mod+Shift+Page_Up { move-workspace-up; }
Mod+Shift+U { move-workspace-down; }
Mod+Shift+I { move-workspace-up; }
Mod+Shift+MouseForward { focus-workspace-down; }
Mod+Shift+MouseBack { focus-workspace-up; }
Mod+MouseForward { focus-column-right; }
Mod+MouseBack { focus-column-left; }
// You can bind mouse wheel scroll ticks using the following syntax.
// These binds will change direction based on the natural-scroll setting.
//
// To avoid scrolling through workspaces really fast, you can use
// the cooldown-ms property. The bind will be rate-limited to this value.
// You can set a cooldown on any bind, but it's most useful for the wheel.
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
//Mod+Shift+WheelScrollDown cooldown-ms=150 { focus-column-left; }
//Mod+Shift+WheelScrollUp cooldown-ms=150 { focus-column-right; }
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
Mod+WheelScrollRight { focus-column-right; }
Mod+WheelScrollLeft { focus-column-left; }
Mod+Ctrl+WheelScrollRight { move-column-right; }
Mod+Ctrl+WheelScrollLeft { move-column-left; }
// Usually scrolling up and down with Shift in applications results in
// horizontal scrolling; these binds replicate that.
Mod+Shift+WheelScrollDown { focus-column-right; }
Mod+Shift+WheelScrollUp { focus-column-left; }
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
// Similarly, you can bind touchpad scroll "ticks".
// Touchpad scrolling is continuous, so for these binds it is split into
// discrete intervals.
// These binds are also affected by touchpad's natural-scroll, so these
// example binds are "inverted", since we have natural-scroll enabled for
// touchpads by default.
// Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
// Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }
// You can refer to workspaces by index. However, keep in mind that
// niri is a dynamic workspace system, so these commands are kind of
// "best effort". Trying to refer to a workspace index bigger than
// the current workspace count will instead refer to the bottommost
// (empty) workspace.
//
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
// will all refer to the 3rd workspace.
// Mod+1 { focus-workspace 1; }
//Mod+2 { focus-workspace 2; }
//Mod+3 repeat=false { toggle-overview; }
// Mod+4 { focus-workspace 4; }
//Mod+5 { focus-workspace 5; }
//Mod+6 { focus-workspace 6; }
//Mod+7 { focus-workspace 7; }
//Mod+8 { focus-workspace 8; }
//Mod+9 { focus-workspace 9; }
//Mod+Ctrl+1 { move-column-to-workspace 1; }
//Mod+Ctrl+2 { move-column-to-workspace 2; }
Mod+Ctrl+3 { move-column-to-workspace 3; }
//Mod+Ctrl+4 { move-column-to-workspace 4; }
//Mod+Ctrl+5 { move-column-to-workspace 5; }
//Mod+Ctrl+6 { move-column-to-workspace 6; }
//Mod+Ctrl+7 { move-column-to-workspace 7; }
//Mod+Ctrl+8 { move-column-to-workspace 8; }
//Mod+Ctrl+9 { move-column-to-workspace 9; }
// Alternatively, there are commands to move just a single window:
// Mod+Ctrl+1 { move-window-to-workspace 1; }
// Switches focus between the current and the previous workspace.
Mod+Tab { focus-workspace-previous; }
// The following binds move the focused window in and out of a column.
// If the window is alone, they will consume it into the nearby column to the side.
// If the window is already in a column, they will expel it out.
Mod+BracketLeft { consume-or-expel-window-left; }
Mod+BracketRight { consume-or-expel-window-right; }
// Consume one window from the right to the bottom of the focused column.
Mod+3 { consume-window-into-column; }
// Expel the bottom window from the focused column to the right.
Mod+4 { expel-window-from-column; }
Mod+A repeat=false { switch-preset-column-width; }
Mod+Shift+W { toggle-column-tabbed-display; }
// Cycling through the presets in reverse order is also possible.
// Mod+R { switch-preset-column-width-back; }
Mod+Shift+R repeat=false { switch-preset-window-height; }
Mod+Ctrl+R { reset-window-height; }
Mod+Shift+F repeat=false { fullscreen-window; }
// Expand the focused column to space not taken up by other fully visible columns.
// Makes the column "fill the rest of the space".
Mod+Ctrl+F { expand-column-to-available-width; }
//Mod+M { center-column; }
// Center all fully visible columns on screen.
Mod+C { center-column; }
// Finer width adjustments.
// This command can also:
// * set width in pixels: "1000"
// * adjust width in pixels: "-5" or "+5"
// * set width as a percentage of screen width: "25%"
// * adjust width as a percentage of screen width: "-10%" or "+10%"
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
// set-column-width "100" will make the column occupy 200 physical screen pixels.
Mod+Minus { set-column-width "-5%"; }
Mod+Equal { set-column-width "+5%"; }
// Finer height adjustments when in column with other windows.
Mod+Shift+Minus { set-window-height "-5%"; }
Mod+Shift+Equal { set-window-height "+5%"; }
Mod+V { toggle-window-floating; }
// Move the focused window between the floating and the tiling layout.
//Mod+V {spawn "pavucontrol"; }
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
// Toggle tabbed column display mode.
// Windows in this column will appear as vertical tabs,
// rather than stacked on top of each other.
Mod+N { toggle-column-tabbed-display; }
// Actions to switch layouts.
// Note: if you uncomment these, make sure you do NOT have
// a matching layout switch hotkey configured in xkb options above.
// Having both at once on the same hotkey will break the switching,
// since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
// Mod+Space { switch-layout "next"; }
// Mod+Shift+Space { switch-layout "prev"; }
Mod+S { screenshot; }
Super+Shift+S { screenshot-screen; }
// Applications such as remote-desktop clients and software KVM switches may
// request that niri stops processing the keyboard shortcuts defined here
// so they may, for example, forward the key presses as-is to a remote machine.
// It's a good idea to bind an escape hatch to toggle the inhibitor,
// so a buggy application can't hold your session hostage.
//
// The allow-inhibiting=false property can be applied to other binds as well,
// which ensures niri always processes them, even when an inhibitor is active.
//Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
// The quit action will show a confirmation dialog to avoid accidental exits.
Mod+Shift+Escape { quit; }
Ctrl+Alt+Delete { quit; }
// Powers off the monitors. To turn them back on, do any input like
// moving the mouse or pressing any other key.
//Mod+Shift+P { power-off-monitors; }
}

View file

@ -0,0 +1,74 @@
include "binds.kdl"
include "window-rule.kdl"
include "input.kdl"
include "output-pc.kdl"
include "spawn-at-startup.kdl"
include "animation.kdl"
include "layout.kdl"
overview {
zoom 0.4
backdrop-color "#07090b"
workspace-shadow {
off
}
}
clipboard {
disable-primary
}
cursor {
xcursor-theme "Bibata-Modern-Ice"
xcursor-size 20
hide-when-typing
hide-after-inactive-ms 500
}
hotkey-overlay {
skip-at-startup
}
prefer-no-csd
screenshot-path "~/imgs/screenshots/screenshot-from-%Y-%m-%d %H-%M-%S.png"
// You can also set this to null to disable saving screenshots to disk.
// screenshot-path null
recent-windows {
// off
debounce-ms 750
open-delay-ms 100
highlight {
active-color "#eef7fd"
urgent-color "#eef7fd"
padding 20
corner-radius 10
}
previews {
max-height 480
max-scale 0.4
}
binds {
Mod+Tab { next-window; }
Mod+Shift+Tab { previous-window; }
// Mod+grave { next-window filter="app-id"; }
Mod+Shift+grave { previous-window filter="app-id"; }
Alt+Tab { next-window; }
Alt+Shift+Tab { previous-window; }
Alt+grave { next-window filter="app-id"; }
Alt+Shift+grave { previous-window filter="app-id"; }
}
}
environment{
XDG_CURRENT_DESKTOP "niri"
QT_QPA_PLATFORMTHEME "xdgdesktopportal"
QT_QPA_PLATFORM "wayland"
ELECTRON_OZONE_PLATFORM_HINT "wayland"
//ЖQT_STYLE_OVERRIDE "adwaita"
QT_STYLE_OVERRIDE "kvantum"
}
xwayland-satellite {
// off
path "xwayland-satellite"
}

View file

@ -0,0 +1,76 @@
include "binds.kdl"
include "window-rule.kdl"
include "input.kdl"
include "output-pc.kdl"
include "spawn-at-startup.kdl"
include "animation.kdl"
include "layout.kdl"
overview {
zoom 0.4
backdrop-color "#07090b"
workspace-shadow {
off
}
}
clipboard {
disable-primary
}
cursor {
xcursor-theme "Bibata-Modern-Ice"
xcursor-size 20
hide-when-typing
hide-after-inactive-ms 500
}
hotkey-overlay {
skip-at-startup
}
prefer-no-csd
screenshot-path "~/imgs/screenshots/screenshot-from-%Y-%m-%d %H-%M-%S.png"
// You can also set this to null to disable saving screenshots to disk.
// screenshot-path null
recent-windows {
// off
debounce-ms 750
open-delay-ms 100
highlight {
active-color "#eef7fd"
urgent-color "#eef7fd"
padding 20
corner-radius 10
}
previews {
max-height 480
max-scale 0.4
}
binds {
Mod+Tab { next-window; }
Mod+Shift+Tab { previous-window; }
// Mod+grave { next-window filter="app-id"; }
Mod+Shift+grave { previous-window filter="app-id"; }
Alt+Tab { next-window; }
Alt+Shift+Tab { previous-window; }
Alt+grave { next-window filter="app-id"; }
Alt+Shift+grave { previous-window filter="app-id"; }
}
}
environment{
XDG_CURRENT_DESKTOP "niri"
QT_QPA_PLATFORMTHEME "xdgdesktopportal"
QT_QPA_PLATFORM "wayland"
ELECTRON_OZONE_PLATFORM_HINT "wayland"
//ЖQT_STYLE_OVERRIDE "adwaita"
QT_STYLE_OVERRIDE "kvantum"
}
xwayland-satellite {
// off
path "xwayland-satellite"
}
include "dms/cursor.kdl"

View file

@ -0,0 +1,78 @@
include "binds.kdl"
include "window-rule.kdl"
include "input.kdl"
include "output-pc.kdl"
include "spawn-at-startup.kdl"
include "animation.kdl"
include "layout.kdl"
overview {
zoom 0.4
backdrop-color "#07090b"
workspace-shadow {
off
}
}
clipboard {
disable-primary
}
cursor {
xcursor-theme "Bibata-Modern-Ice"
xcursor-size 20
hide-when-typing
hide-after-inactive-ms 500
}
hotkey-overlay {
skip-at-startup
}
prefer-no-csd
screenshot-path "~/imgs/screenshots/screenshot-from-%Y-%m-%d %H-%M-%S.png"
// You can also set this to null to disable saving screenshots to disk.
// screenshot-path null
recent-windows {
// off
debounce-ms 750
open-delay-ms 100
highlight {
active-color "#eef7fd"
urgent-color "#eef7fd"
padding 20
corner-radius 10
}
previews {
max-height 480
max-scale 0.4
}
binds {
Mod+Tab { next-window; }
Mod+Shift+Tab { previous-window; }
// Mod+grave { next-window filter="app-id"; }
Mod+Shift+grave { previous-window filter="app-id"; }
Alt+Tab { next-window; }
Alt+Shift+Tab { previous-window; }
Alt+grave { next-window filter="app-id"; }
Alt+Shift+grave { previous-window filter="app-id"; }
}
}
environment{
XDG_CURRENT_DESKTOP "niri"
QT_QPA_PLATFORMTHEME "xdgdesktopportal"
QT_QPA_PLATFORM "wayland"
ELECTRON_OZONE_PLATFORM_HINT "wayland"
//ЖQT_STYLE_OVERRIDE "adwaita"
QT_STYLE_OVERRIDE "kvantum"
}
xwayland-satellite {
// off
path "xwayland-satellite"
}
include "dms/cursor.kdl"
include "dms/outputs.kdl"

View file

@ -0,0 +1,10 @@
// ! DO NOT EDIT !
// ! AUTO-GENERATED BY DMS !
// ! CHANGES WILL BE OVERWRITTEN !
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
recent-windows {
highlight {
corner-radius 10
}
}

221
config/niri/dms/binds.kdl Normal file
View file

@ -0,0 +1,221 @@
binds {
// === System & Overview ===
Mod+D repeat=false { toggle-overview; }
Mod+Tab repeat=false { toggle-overview; }
Mod+Shift+Slash { show-hotkey-overlay; }
// === Application Launchers ===
Mod+T hotkey-overlay-title="Open Terminal" { spawn "ghostty"; }
Mod+Space hotkey-overlay-title="Application Launcher" {
spawn "dms" "ipc" "call" "spotlight" "toggle";
}
Mod+V hotkey-overlay-title="Clipboard Manager" {
spawn "dms" "ipc" "call" "clipboard" "toggle";
}
Mod+M hotkey-overlay-title="Task Manager" {
spawn "dms" "ipc" "call" "processlist" "focusOrToggle";
}
Super+X hotkey-overlay-title="Power Menu: Toggle" { spawn "dms" "ipc" "call" "powermenu" "toggle"; }
Mod+Comma hotkey-overlay-title="Settings" {
spawn "dms" "ipc" "call" "settings" "focusOrToggle";
}
Mod+Y hotkey-overlay-title="Browse Wallpapers" {
spawn "dms" "ipc" "call" "dankdash" "wallpaper";
}
Mod+N hotkey-overlay-title="Notification Center" { spawn "dms" "ipc" "call" "notifications" "toggle"; }
Mod+Shift+N hotkey-overlay-title="Notepad" { spawn "dms" "ipc" "call" "notepad" "toggle"; }
// === Security ===
Mod+Alt+L hotkey-overlay-title="Lock Screen" {
spawn "dms" "ipc" "call" "lock" "lock";
}
Mod+Shift+E { quit; }
Ctrl+Alt+Delete hotkey-overlay-title="Task Manager" {
spawn "dms" "ipc" "call" "processlist" "focusOrToggle";
}
// === Audio Controls ===
XF86AudioRaiseVolume allow-when-locked=true {
spawn "dms" "ipc" "call" "audio" "increment" "3";
}
XF86AudioLowerVolume allow-when-locked=true {
spawn "dms" "ipc" "call" "audio" "decrement" "3";
}
XF86AudioMute allow-when-locked=true {
spawn "dms" "ipc" "call" "audio" "mute";
}
XF86AudioMicMute allow-when-locked=true {
spawn "dms" "ipc" "call" "audio" "micmute";
}
XF86AudioPause allow-when-locked=true {
spawn "dms" "ipc" "call" "mpris" "playPause";
}
XF86AudioPlay allow-when-locked=true {
spawn "dms" "ipc" "call" "mpris" "playPause";
}
XF86AudioPrev allow-when-locked=true {
spawn "dms" "ipc" "call" "mpris" "previous";
}
XF86AudioNext allow-when-locked=true {
spawn "dms" "ipc" "call" "mpris" "next";
}
Ctrl+XF86AudioRaiseVolume allow-when-locked=true {
spawn "dms" "ipc" "call" "mpris" "increment" "3";
}
Ctrl+XF86AudioLowerVolume allow-when-locked=true {
spawn "dms" "ipc" "call" "mpris" "decrement" "3";
}
// === Brightness Controls ===
XF86MonBrightnessUp allow-when-locked=true {
spawn "dms" "ipc" "call" "brightness" "increment" "5" "";
}
XF86MonBrightnessDown allow-when-locked=true {
spawn "dms" "ipc" "call" "brightness" "decrement" "5" "";
}
// === Window Management ===
Mod+Q repeat=false { close-window; }
Mod+F { maximize-column; }
Mod+Shift+F { fullscreen-window; }
Mod+Shift+T { toggle-window-floating; }
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
Mod+W { toggle-column-tabbed-display; }
Mod+Shift+W hotkey-overlay-title="Create window rule" { spawn "dms" "ipc" "call" "window-rules" "toggle"; }
// === Focus Navigation ===
Mod+Left { focus-column-left; }
Mod+Down { focus-window-down; }
Mod+Up { focus-window-up; }
Mod+Right { focus-column-right; }
Mod+H { focus-column-left; }
Mod+J { focus-window-down; }
Mod+K { focus-window-up; }
Mod+L { focus-column-right; }
// === Window Movement ===
Mod+Shift+Left { move-column-left; }
Mod+Shift+Down { move-window-down; }
Mod+Shift+Up { move-window-up; }
Mod+Shift+Right { move-column-right; }
Mod+Shift+H { move-column-left; }
Mod+Shift+J { move-window-down; }
Mod+Shift+K { move-window-up; }
Mod+Shift+L { move-column-right; }
// === Column Navigation ===
Mod+Home { focus-column-first; }
Mod+End { focus-column-last; }
Mod+Ctrl+Home { move-column-to-first; }
Mod+Ctrl+End { move-column-to-last; }
// === Monitor Navigation ===
Mod+Ctrl+Left { focus-monitor-left; }
//Mod+Ctrl+Down { focus-monitor-down; }
//Mod+Ctrl+Up { focus-monitor-up; }
Mod+Ctrl+Right { focus-monitor-right; }
Mod+Ctrl+H { focus-monitor-left; }
Mod+Ctrl+J { focus-monitor-down; }
Mod+Ctrl+K { focus-monitor-up; }
Mod+Ctrl+L { focus-monitor-right; }
// === Move to Monitor ===
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
// === Workspace Navigation ===
Mod+Page_Down { focus-workspace-down; }
Mod+Page_Up { focus-workspace-up; }
Mod+U { focus-workspace-down; }
Mod+I { focus-workspace-up; }
Mod+Ctrl+Down { move-column-to-workspace-down; }
Mod+Ctrl+Up { move-column-to-workspace-up; }
Mod+Ctrl+U { move-column-to-workspace-down; }
Mod+Ctrl+I { move-column-to-workspace-up; }
// === Workspace Management ===
Ctrl+Shift+R hotkey-overlay-title="Rename Workspace" {
spawn "dms" "ipc" "call" "workspace-rename" "open";
}
// === Move Workspaces ===
Mod+Shift+Page_Down { move-workspace-down; }
Mod+Shift+Page_Up { move-workspace-up; }
Mod+Shift+U { move-workspace-down; }
Mod+Shift+I { move-workspace-up; }
// === Mouse Wheel Navigation ===
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
Mod+WheelScrollRight { focus-column-right; }
Mod+WheelScrollLeft { focus-column-left; }
Mod+Ctrl+WheelScrollRight { move-column-right; }
Mod+Ctrl+WheelScrollLeft { move-column-left; }
Mod+Shift+WheelScrollDown { focus-column-right; }
Mod+Shift+WheelScrollUp { focus-column-left; }
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
// === Numbered Workspaces ===
Mod+1 { focus-workspace 1; }
Mod+2 { focus-workspace 2; }
Mod+3 { focus-workspace 3; }
Mod+4 { focus-workspace 4; }
Mod+5 { focus-workspace 5; }
Mod+6 { focus-workspace 6; }
Mod+7 { focus-workspace 7; }
Mod+8 { focus-workspace 8; }
Mod+9 { focus-workspace 9; }
// === Move to Numbered Workspaces ===
Mod+Shift+1 { move-column-to-workspace 1; }
Mod+Shift+2 { move-column-to-workspace 2; }
Mod+Shift+3 { move-column-to-workspace 3; }
Mod+Shift+4 { move-column-to-workspace 4; }
Mod+Shift+5 { move-column-to-workspace 5; }
Mod+Shift+6 { move-column-to-workspace 6; }
Mod+Shift+7 { move-column-to-workspace 7; }
Mod+Shift+8 { move-column-to-workspace 8; }
Mod+Shift+9 { move-column-to-workspace 9; }
// === Column Management ===
Mod+BracketLeft { consume-or-expel-window-left; }
Mod+BracketRight { consume-or-expel-window-right; }
Mod+Period { expel-window-from-column; }
// === Sizing & Layout ===
Mod+R { switch-preset-column-width; }
Mod+Shift+R { switch-preset-window-height; }
Mod+Ctrl+R { reset-window-height; }
Mod+Ctrl+F { expand-column-to-available-width; }
Mod+C { center-column; }
Mod+Ctrl+C { center-visible-columns; }
// === Manual Sizing ===
Mod+Minus { set-column-width "-10%"; }
Mod+Equal { set-column-width "+10%"; }
Mod+Shift+Minus { set-window-height "-10%"; }
Mod+Shift+Equal { set-window-height "+10%"; }
// === Screenshots ===
XF86Launch1 { screenshot; }
Ctrl+XF86Launch1 { screenshot-screen; }
Alt+XF86Launch1 { screenshot-window; }
Print { screenshot; }
Ctrl+Print { screenshot-screen; }
Alt+Print { screenshot-window; }
// === System Controls ===
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
Mod+Shift+P { power-off-monitors; }
}

View file

@ -0,0 +1,39 @@
// ! Auto-generated file. Do not edit directly.
// Remove `include "dms/colors.kdl"` from your config to override.
layout {
background-color "transparent"
focus-ring {
active-color "#b8a8f0"
inactive-color "#c9b8d9"
urgent-color "#f38ba8"
}
border {
active-color "#b8a8f0"
inactive-color "#c9b8d9"
urgent-color "#f38ba8"
}
shadow {
color "#00000070"
}
tab-indicator {
active-color "#b8a8f0"
inactive-color "#c9b8d9"
urgent-color "#f38ba8"
}
insert-hint {
color "#b8a8f080"
}
}
recent-windows {
highlight {
active-color "#745b8c"
urgent-color "#f38ba8"
}
}

View file

@ -0,0 +1,10 @@
// ! DO NOT EDIT !
// ! AUTO-GENERATED BY DMS !
// ! CHANGES WILL BE OVERWRITTEN !
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
cursor {
xcursor-theme "Bibata-Modern-Ice"
xcursor-size 21
hide-when-typing
}

View file

@ -0,0 +1,22 @@
// ! DO NOT EDIT !
// ! AUTO-GENERATED BY DMS !
// ! CHANGES WILL BE OVERWRITTEN !
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
layout {
gaps 10
border {
width 2
}
focus-ring {
width 2
}
}
window-rule {
geometry-corner-radius 10
clip-to-geometry true
tiled-state true
draw-border-with-background false
}

1
config/niri/dms/outputs.kdl Symbolic link
View file

@ -0,0 +1 @@
/home/unconfer/.config/niri/dms/profiles/profile_1776211496314_g03e3q.kdl

View file

@ -0,0 +1,12 @@
// Auto-generated by DMS - do not edit manually
output "DP-1" {
mode "1920x1080@165.000"
scale 1
position x=0 y=0
variable-refresh-rate on-demand=true
hot-corners {
top-left
}
}

Some files were not shown because too many files have changed in this diff Show more