mirror of
https://github.com/Dichgrem/DCGOS.git
synced 2025-12-18 12:02:00 -05:00
Compare commits
5 Commits
7683a7c148
...
2f4fb7e2d2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f4fb7e2d2 | ||
|
|
51d40326c4 | ||
|
|
e2a382d90e | ||
|
|
e02cfc5dcd | ||
|
|
02da5c19e2 |
2
dotfiles/.config/niri/config.kdl
vendored
2
dotfiles/.config/niri/config.kdl
vendored
@@ -1,6 +1,6 @@
|
|||||||
input {
|
input {
|
||||||
disable-power-key-handling
|
disable-power-key-handling
|
||||||
focus-follows-mouse
|
focus-follows-mouse max-scroll-amount="0%"
|
||||||
warp-mouse-to-focus
|
warp-mouse-to-focus
|
||||||
|
|
||||||
mouse {
|
mouse {
|
||||||
|
|||||||
466
dotfiles/.config/zellij/config.kdl
vendored
Normal file
466
dotfiles/.config/zellij/config.kdl
vendored
Normal file
@@ -0,0 +1,466 @@
|
|||||||
|
//
|
||||||
|
// THIS FILE WAS AUTOGENERATED BY ZELLIJ, THE PREVIOUS FILE AT THIS LOCATION WAS COPIED TO: /home/dich/.config/zellij/config.kdl.bak.1
|
||||||
|
//
|
||||||
|
|
||||||
|
keybinds clear-defaults=true {
|
||||||
|
locked {
|
||||||
|
bind "Ctrl g" { SwitchToMode "normal"; }
|
||||||
|
}
|
||||||
|
pane {
|
||||||
|
bind "left" { MoveFocus "left"; }
|
||||||
|
bind "down" { MoveFocus "down"; }
|
||||||
|
bind "up" { MoveFocus "up"; }
|
||||||
|
bind "right" { MoveFocus "right"; }
|
||||||
|
bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; }
|
||||||
|
bind "d" { NewPane "down"; SwitchToMode "normal"; }
|
||||||
|
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal"; }
|
||||||
|
bind "f" { ToggleFocusFullscreen; SwitchToMode "normal"; }
|
||||||
|
bind "h" { MoveFocus "left"; }
|
||||||
|
bind "i" { TogglePanePinned; SwitchToMode "normal"; }
|
||||||
|
bind "j" { MoveFocus "down"; }
|
||||||
|
bind "k" { MoveFocus "up"; }
|
||||||
|
bind "l" { MoveFocus "right"; }
|
||||||
|
bind "n" { NewPane; SwitchToMode "normal"; }
|
||||||
|
bind "p" { SwitchFocus; }
|
||||||
|
bind "Ctrl p" { SwitchToMode "normal"; }
|
||||||
|
bind "r" { NewPane "right"; SwitchToMode "normal"; }
|
||||||
|
bind "w" { ToggleFloatingPanes; SwitchToMode "normal"; }
|
||||||
|
bind "z" { TogglePaneFrames; SwitchToMode "normal"; }
|
||||||
|
}
|
||||||
|
tab {
|
||||||
|
bind "left" { GoToPreviousTab; }
|
||||||
|
bind "down" { GoToNextTab; }
|
||||||
|
bind "up" { GoToPreviousTab; }
|
||||||
|
bind "right" { GoToNextTab; }
|
||||||
|
bind "1" { GoToTab 1; SwitchToMode "normal"; }
|
||||||
|
bind "2" { GoToTab 2; SwitchToMode "normal"; }
|
||||||
|
bind "3" { GoToTab 3; SwitchToMode "normal"; }
|
||||||
|
bind "4" { GoToTab 4; SwitchToMode "normal"; }
|
||||||
|
bind "5" { GoToTab 5; SwitchToMode "normal"; }
|
||||||
|
bind "6" { GoToTab 6; SwitchToMode "normal"; }
|
||||||
|
bind "7" { GoToTab 7; SwitchToMode "normal"; }
|
||||||
|
bind "8" { GoToTab 8; SwitchToMode "normal"; }
|
||||||
|
bind "9" { GoToTab 9; SwitchToMode "normal"; }
|
||||||
|
bind "[" { BreakPaneLeft; SwitchToMode "normal"; }
|
||||||
|
bind "]" { BreakPaneRight; SwitchToMode "normal"; }
|
||||||
|
bind "b" { BreakPane; SwitchToMode "normal"; }
|
||||||
|
bind "h" { GoToPreviousTab; }
|
||||||
|
bind "j" { GoToNextTab; }
|
||||||
|
bind "k" { GoToPreviousTab; }
|
||||||
|
bind "l" { GoToNextTab; }
|
||||||
|
bind "n" { NewTab; SwitchToMode "normal"; }
|
||||||
|
bind "r" { SwitchToMode "renametab"; TabNameInput 0; }
|
||||||
|
bind "s" { ToggleActiveSyncTab; SwitchToMode "normal"; }
|
||||||
|
bind "Ctrl t" { SwitchToMode "normal"; }
|
||||||
|
bind "x" { CloseTab; SwitchToMode "normal"; }
|
||||||
|
bind "tab" { ToggleTab; }
|
||||||
|
}
|
||||||
|
resize {
|
||||||
|
bind "left" { Resize "Increase left"; }
|
||||||
|
bind "down" { Resize "Increase down"; }
|
||||||
|
bind "up" { Resize "Increase up"; }
|
||||||
|
bind "right" { Resize "Increase right"; }
|
||||||
|
bind "+" { Resize "Increase"; }
|
||||||
|
bind "-" { Resize "Decrease"; }
|
||||||
|
bind "=" { Resize "Increase"; }
|
||||||
|
bind "H" { Resize "Decrease left"; }
|
||||||
|
bind "J" { Resize "Decrease down"; }
|
||||||
|
bind "K" { Resize "Decrease up"; }
|
||||||
|
bind "L" { Resize "Decrease right"; }
|
||||||
|
bind "h" { Resize "Increase left"; }
|
||||||
|
bind "j" { Resize "Increase down"; }
|
||||||
|
bind "k" { Resize "Increase up"; }
|
||||||
|
bind "l" { Resize "Increase right"; }
|
||||||
|
bind "Ctrl n" { SwitchToMode "normal"; }
|
||||||
|
}
|
||||||
|
move {
|
||||||
|
bind "left" { MovePane "left"; }
|
||||||
|
bind "down" { MovePane "down"; }
|
||||||
|
bind "up" { MovePane "up"; }
|
||||||
|
bind "right" { MovePane "right"; }
|
||||||
|
bind "h" { MovePane "left"; }
|
||||||
|
bind "Ctrl h" { SwitchToMode "normal"; }
|
||||||
|
bind "j" { MovePane "down"; }
|
||||||
|
bind "k" { MovePane "up"; }
|
||||||
|
bind "l" { MovePane "right"; }
|
||||||
|
bind "n" { MovePane; }
|
||||||
|
bind "p" { MovePaneBackwards; }
|
||||||
|
bind "tab" { MovePane; }
|
||||||
|
}
|
||||||
|
scroll {
|
||||||
|
bind "Alt left" { MoveFocusOrTab "left"; SwitchToMode "normal"; }
|
||||||
|
bind "Alt down" { MoveFocus "down"; SwitchToMode "normal"; }
|
||||||
|
bind "Alt up" { MoveFocus "up"; SwitchToMode "normal"; }
|
||||||
|
bind "Alt right" { MoveFocusOrTab "right"; SwitchToMode "normal"; }
|
||||||
|
bind "e" { EditScrollback; SwitchToMode "normal"; }
|
||||||
|
bind "Alt h" { MoveFocusOrTab "left"; SwitchToMode "normal"; }
|
||||||
|
bind "Alt j" { MoveFocus "down"; SwitchToMode "normal"; }
|
||||||
|
bind "Alt k" { MoveFocus "up"; SwitchToMode "normal"; }
|
||||||
|
bind "Alt l" { MoveFocusOrTab "right"; SwitchToMode "normal"; }
|
||||||
|
bind "s" { SwitchToMode "entersearch"; SearchInput 0; }
|
||||||
|
}
|
||||||
|
search {
|
||||||
|
bind "c" { SearchToggleOption "CaseSensitivity"; }
|
||||||
|
bind "n" { Search "down"; }
|
||||||
|
bind "o" { SearchToggleOption "WholeWord"; }
|
||||||
|
bind "p" { Search "up"; }
|
||||||
|
bind "w" { SearchToggleOption "Wrap"; }
|
||||||
|
}
|
||||||
|
session {
|
||||||
|
bind "a" {
|
||||||
|
LaunchOrFocusPlugin "zellij:about" {
|
||||||
|
floating true
|
||||||
|
move_to_focused_tab true
|
||||||
|
}
|
||||||
|
SwitchToMode "normal"
|
||||||
|
}
|
||||||
|
bind "c" {
|
||||||
|
LaunchOrFocusPlugin "configuration" {
|
||||||
|
floating true
|
||||||
|
move_to_focused_tab true
|
||||||
|
}
|
||||||
|
SwitchToMode "normal"
|
||||||
|
}
|
||||||
|
bind "Ctrl o" { SwitchToMode "normal"; }
|
||||||
|
bind "p" {
|
||||||
|
LaunchOrFocusPlugin "plugin-manager" {
|
||||||
|
floating true
|
||||||
|
move_to_focused_tab true
|
||||||
|
}
|
||||||
|
SwitchToMode "normal"
|
||||||
|
}
|
||||||
|
bind "w" {
|
||||||
|
LaunchOrFocusPlugin "session-manager" {
|
||||||
|
floating true
|
||||||
|
move_to_focused_tab true
|
||||||
|
}
|
||||||
|
SwitchToMode "normal"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
shared_except "locked" {
|
||||||
|
bind "Alt +" { Resize "Increase"; }
|
||||||
|
bind "Alt -" { Resize "Decrease"; }
|
||||||
|
bind "Alt =" { Resize "Increase"; }
|
||||||
|
bind "Alt [" { PreviousSwapLayout; }
|
||||||
|
bind "Alt ]" { NextSwapLayout; }
|
||||||
|
bind "Alt f" { ToggleFloatingPanes; }
|
||||||
|
bind "Ctrl g" { SwitchToMode "locked"; }
|
||||||
|
bind "Alt i" { MoveTab "left"; }
|
||||||
|
bind "Alt n" { NewPane; }
|
||||||
|
bind "Alt o" { MoveTab "right"; }
|
||||||
|
bind "Ctrl q" { Quit; }
|
||||||
|
}
|
||||||
|
shared_except "locked" "move" {
|
||||||
|
bind "Ctrl h" { SwitchToMode "move"; }
|
||||||
|
}
|
||||||
|
shared_except "locked" "session" {
|
||||||
|
bind "Ctrl o" { SwitchToMode "session"; }
|
||||||
|
}
|
||||||
|
shared_except "locked" "scroll" {
|
||||||
|
bind "Alt left" { MoveFocusOrTab "left"; }
|
||||||
|
bind "Alt down" { MoveFocus "down"; }
|
||||||
|
bind "Alt up" { MoveFocus "up"; }
|
||||||
|
bind "Alt right" { MoveFocusOrTab "right"; }
|
||||||
|
bind "Alt h" { MoveFocusOrTab "left"; }
|
||||||
|
bind "Alt j" { MoveFocus "down"; }
|
||||||
|
bind "Alt k" { MoveFocus "up"; }
|
||||||
|
bind "Alt l" { MoveFocusOrTab "right"; }
|
||||||
|
}
|
||||||
|
shared_except "locked" "scroll" "search" "tmux" {
|
||||||
|
bind "Ctrl b" { SwitchToMode "tmux"; }
|
||||||
|
}
|
||||||
|
shared_except "locked" "scroll" "search" {
|
||||||
|
bind "Ctrl s" { SwitchToMode "scroll"; }
|
||||||
|
}
|
||||||
|
shared_except "locked" "tab" {
|
||||||
|
bind "Ctrl t" { SwitchToMode "tab"; }
|
||||||
|
}
|
||||||
|
shared_except "locked" "pane" {
|
||||||
|
bind "Ctrl p" { SwitchToMode "pane"; }
|
||||||
|
}
|
||||||
|
shared_except "locked" "resize" {
|
||||||
|
bind "Ctrl n" { SwitchToMode "resize"; }
|
||||||
|
}
|
||||||
|
shared_except "normal" "locked" "entersearch" {
|
||||||
|
bind "enter" { SwitchToMode "normal"; }
|
||||||
|
}
|
||||||
|
shared_except "normal" "locked" "entersearch" "renametab" "renamepane" {
|
||||||
|
bind "esc" { SwitchToMode "normal"; }
|
||||||
|
}
|
||||||
|
shared_among "pane" "tmux" {
|
||||||
|
bind "x" { CloseFocus; SwitchToMode "normal"; }
|
||||||
|
}
|
||||||
|
shared_among "scroll" "search" {
|
||||||
|
bind "PageDown" { PageScrollDown; }
|
||||||
|
bind "PageUp" { PageScrollUp; }
|
||||||
|
bind "left" { PageScrollUp; }
|
||||||
|
bind "down" { ScrollDown; }
|
||||||
|
bind "up" { ScrollUp; }
|
||||||
|
bind "right" { PageScrollDown; }
|
||||||
|
bind "Ctrl b" { PageScrollUp; }
|
||||||
|
bind "Ctrl c" { ScrollToBottom; SwitchToMode "normal"; }
|
||||||
|
bind "d" { HalfPageScrollDown; }
|
||||||
|
bind "Ctrl f" { PageScrollDown; }
|
||||||
|
bind "h" { PageScrollUp; }
|
||||||
|
bind "j" { ScrollDown; }
|
||||||
|
bind "k" { ScrollUp; }
|
||||||
|
bind "l" { PageScrollDown; }
|
||||||
|
bind "Ctrl s" { SwitchToMode "normal"; }
|
||||||
|
bind "u" { HalfPageScrollUp; }
|
||||||
|
}
|
||||||
|
entersearch {
|
||||||
|
bind "Ctrl c" { SwitchToMode "scroll"; }
|
||||||
|
bind "esc" { SwitchToMode "scroll"; }
|
||||||
|
bind "enter" { SwitchToMode "search"; }
|
||||||
|
}
|
||||||
|
renametab {
|
||||||
|
bind "esc" { UndoRenameTab; SwitchToMode "tab"; }
|
||||||
|
}
|
||||||
|
shared_among "renametab" "renamepane" {
|
||||||
|
bind "Ctrl c" { SwitchToMode "normal"; }
|
||||||
|
}
|
||||||
|
renamepane {
|
||||||
|
bind "esc" { UndoRenamePane; SwitchToMode "pane"; }
|
||||||
|
}
|
||||||
|
shared_among "session" "tmux" {
|
||||||
|
bind "d" { Detach; }
|
||||||
|
}
|
||||||
|
tmux {
|
||||||
|
bind "left" { MoveFocus "left"; SwitchToMode "normal"; }
|
||||||
|
bind "down" { MoveFocus "down"; SwitchToMode "normal"; }
|
||||||
|
bind "up" { MoveFocus "up"; SwitchToMode "normal"; }
|
||||||
|
bind "right" { MoveFocus "right"; SwitchToMode "normal"; }
|
||||||
|
bind "space" { NextSwapLayout; }
|
||||||
|
bind "\"" { NewPane "down"; SwitchToMode "normal"; }
|
||||||
|
bind "%" { NewPane "right"; SwitchToMode "normal"; }
|
||||||
|
bind "," { SwitchToMode "renametab"; }
|
||||||
|
bind "[" { SwitchToMode "scroll"; }
|
||||||
|
bind "Ctrl b" { Write 2; SwitchToMode "normal"; }
|
||||||
|
bind "c" { NewTab; SwitchToMode "normal"; }
|
||||||
|
bind "h" { MoveFocus "left"; SwitchToMode "normal"; }
|
||||||
|
bind "j" { MoveFocus "down"; SwitchToMode "normal"; }
|
||||||
|
bind "k" { MoveFocus "up"; SwitchToMode "normal"; }
|
||||||
|
bind "l" { MoveFocus "right"; SwitchToMode "normal"; }
|
||||||
|
bind "n" { GoToNextTab; SwitchToMode "normal"; }
|
||||||
|
bind "o" { FocusNextPane; }
|
||||||
|
bind "p" { GoToPreviousTab; SwitchToMode "normal"; }
|
||||||
|
bind "z" { ToggleFocusFullscreen; SwitchToMode "normal"; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Plugin aliases - can be used to change the implementation of Zellij
|
||||||
|
// changing these requires a restart to take effect
|
||||||
|
plugins {
|
||||||
|
about location="zellij:about"
|
||||||
|
compact-bar location="zellij:compact-bar"
|
||||||
|
configuration location="zellij:configuration"
|
||||||
|
filepicker location="zellij:strider" {
|
||||||
|
cwd "/"
|
||||||
|
}
|
||||||
|
plugin-manager location="zellij:plugin-manager"
|
||||||
|
session-manager location="zellij:session-manager"
|
||||||
|
status-bar location="zellij:status-bar"
|
||||||
|
strider location="zellij:strider"
|
||||||
|
tab-bar location="zellij:tab-bar"
|
||||||
|
welcome-screen location="zellij:session-manager" {
|
||||||
|
welcome_screen true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Plugins to load in the background when a new session starts
|
||||||
|
// eg. "file:/path/to/my-plugin.wasm"
|
||||||
|
// eg. "https://example.com/my-plugin.wasm"
|
||||||
|
load_plugins {
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use a simplified UI without special fonts (arrow glyphs)
|
||||||
|
// Options:
|
||||||
|
// - true
|
||||||
|
// - false (Default)
|
||||||
|
//
|
||||||
|
// simplified_ui true
|
||||||
|
|
||||||
|
// Choose the theme that is specified in the themes section.
|
||||||
|
// Default: default
|
||||||
|
//
|
||||||
|
theme "dracula"
|
||||||
|
|
||||||
|
// Choose the base input mode of zellij.
|
||||||
|
// Default: normal
|
||||||
|
//
|
||||||
|
default_mode "normal"
|
||||||
|
|
||||||
|
// Choose the path to the default shell that zellij will use for opening new panes
|
||||||
|
// Default: $SHELL
|
||||||
|
//
|
||||||
|
// default_shell "fish"
|
||||||
|
|
||||||
|
// Choose the path to override cwd that zellij will use for opening new panes
|
||||||
|
//
|
||||||
|
// default_cwd "/tmp"
|
||||||
|
|
||||||
|
// The name of the default layout to load on startup
|
||||||
|
// Default: "default"
|
||||||
|
//
|
||||||
|
// default_layout "compact"
|
||||||
|
|
||||||
|
// The folder in which Zellij will look for layouts
|
||||||
|
// (Requires restart)
|
||||||
|
//
|
||||||
|
// layout_dir "/tmp"
|
||||||
|
|
||||||
|
// The folder in which Zellij will look for themes
|
||||||
|
// (Requires restart)
|
||||||
|
//
|
||||||
|
// theme_dir "/tmp"
|
||||||
|
|
||||||
|
// Toggle enabling the mouse mode.
|
||||||
|
// On certain configurations, or terminals this could
|
||||||
|
// potentially interfere with copying text.
|
||||||
|
// Options:
|
||||||
|
// - true (default)
|
||||||
|
// - false
|
||||||
|
//
|
||||||
|
// mouse_mode false
|
||||||
|
|
||||||
|
// Toggle having pane frames around the panes
|
||||||
|
// Options:
|
||||||
|
// - true (default, enabled)
|
||||||
|
// - false
|
||||||
|
//
|
||||||
|
// pane_frames false
|
||||||
|
|
||||||
|
// When attaching to an existing session with other users,
|
||||||
|
// should the session be mirrored (true)
|
||||||
|
// or should each user have their own cursor (false)
|
||||||
|
// (Requires restart)
|
||||||
|
// Default: false
|
||||||
|
//
|
||||||
|
// mirror_session true
|
||||||
|
|
||||||
|
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
|
||||||
|
// eg. when terminal window with an active zellij session is closed
|
||||||
|
// (Requires restart)
|
||||||
|
// Options:
|
||||||
|
// - detach (Default)
|
||||||
|
// - quit
|
||||||
|
//
|
||||||
|
// on_force_close "quit"
|
||||||
|
|
||||||
|
// Configure the scroll back buffer size
|
||||||
|
// This is the number of lines zellij stores for each pane in the scroll back
|
||||||
|
// buffer. Excess number of lines are discarded in a FIFO fashion.
|
||||||
|
// (Requires restart)
|
||||||
|
// Valid values: positive integers
|
||||||
|
// Default value: 10000
|
||||||
|
//
|
||||||
|
// scroll_buffer_size 10000
|
||||||
|
|
||||||
|
// Provide a command to execute when copying text. The text will be piped to
|
||||||
|
// the stdin of the program to perform the copy. This can be used with
|
||||||
|
// terminal emulators which do not support the OSC 52 ANSI control sequence
|
||||||
|
// that will be used by default if this option is not set.
|
||||||
|
// Examples:
|
||||||
|
//
|
||||||
|
// copy_command "xclip -selection clipboard" // x11
|
||||||
|
// copy_command "wl-copy" // wayland
|
||||||
|
// copy_command "pbcopy" // osx
|
||||||
|
//
|
||||||
|
// copy_command "pbcopy"
|
||||||
|
|
||||||
|
// Choose the destination for copied text
|
||||||
|
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
|
||||||
|
// Does not apply when using copy_command.
|
||||||
|
// Options:
|
||||||
|
// - system (default)
|
||||||
|
// - primary
|
||||||
|
//
|
||||||
|
// copy_clipboard "primary"
|
||||||
|
|
||||||
|
// Enable automatic copying (and clearing) of selection when releasing mouse
|
||||||
|
// Default: true
|
||||||
|
//
|
||||||
|
// copy_on_select true
|
||||||
|
|
||||||
|
// Path to the default editor to use to edit pane scrollbuffer
|
||||||
|
// Default: $EDITOR or $VISUAL
|
||||||
|
// scrollback_editor "/usr/bin/vim"
|
||||||
|
|
||||||
|
// A fixed name to always give the Zellij session.
|
||||||
|
// Consider also setting `attach_to_session true,`
|
||||||
|
// otherwise this will error if such a session exists.
|
||||||
|
// Default: <RANDOM>
|
||||||
|
//
|
||||||
|
// session_name "My singleton session"
|
||||||
|
|
||||||
|
// When `session_name` is provided, attaches to that session
|
||||||
|
// if it is already running or creates it otherwise.
|
||||||
|
// Default: false
|
||||||
|
//
|
||||||
|
// attach_to_session true
|
||||||
|
|
||||||
|
// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible
|
||||||
|
// Options:
|
||||||
|
// - true (default)
|
||||||
|
// - false
|
||||||
|
//
|
||||||
|
// auto_layout false
|
||||||
|
|
||||||
|
// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected
|
||||||
|
// Options:
|
||||||
|
// - true (default)
|
||||||
|
// - false
|
||||||
|
//
|
||||||
|
// session_serialization false
|
||||||
|
|
||||||
|
// Whether pane viewports are serialized along with the session, default is false
|
||||||
|
// Options:
|
||||||
|
// - true
|
||||||
|
// - false (default)
|
||||||
|
//
|
||||||
|
// serialize_pane_viewport false
|
||||||
|
|
||||||
|
// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0
|
||||||
|
// defaults to the scrollback size. If this number is higher than the scrollback size, it will
|
||||||
|
// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true.
|
||||||
|
//
|
||||||
|
// scrollback_lines_to_serialize 10000
|
||||||
|
|
||||||
|
// Enable or disable the rendering of styled and colored underlines (undercurl).
|
||||||
|
// May need to be disabled for certain unsupported terminals
|
||||||
|
// (Requires restart)
|
||||||
|
// Default: true
|
||||||
|
//
|
||||||
|
// styled_underlines false
|
||||||
|
|
||||||
|
// How often in seconds sessions are serialized
|
||||||
|
//
|
||||||
|
// serialization_interval 10000
|
||||||
|
|
||||||
|
// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know
|
||||||
|
// metadata info on this session)
|
||||||
|
// (Requires restart)
|
||||||
|
// Default: false
|
||||||
|
//
|
||||||
|
// disable_session_metadata false
|
||||||
|
|
||||||
|
// Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it)
|
||||||
|
// (Requires restart)
|
||||||
|
// Default: true (if the host terminal supports it)
|
||||||
|
//
|
||||||
|
// support_kitty_keyboard_protocol false
|
||||||
|
|
||||||
|
// Whether to stack panes when resizing beyond a certain size
|
||||||
|
// Default: true
|
||||||
|
//
|
||||||
|
// stacked_resize false
|
||||||
|
|
||||||
|
// Whether to show tips on startup
|
||||||
|
// Default: true
|
||||||
|
//
|
||||||
|
show_startup_tips false
|
||||||
|
|
||||||
|
// Whether to show release notes on first version run
|
||||||
|
// Default: true
|
||||||
|
//
|
||||||
|
// show_release_notes false
|
||||||
80
flake.lock
generated
80
flake.lock
generated
@@ -77,11 +77,11 @@
|
|||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762205917,
|
"lastModified": 1763246168,
|
||||||
"narHash": "sha256-8vFEZ4oHYOAzC9/zN3Eb/zxbfPPBGAqsQNRKG1WiqZY=",
|
"narHash": "sha256-gUDJZGSOg5syHtQvLImOKL6Eaw4e1ybz4o5pid66kQg=",
|
||||||
"owner": "chaotic-cx",
|
"owner": "chaotic-cx",
|
||||||
"repo": "nyx",
|
"repo": "nyx",
|
||||||
"rev": "16950d0a7a54c242201aee3ba6b7164cee6fbd88",
|
"rev": "6476fbdd52621b4a532309d982d468dc08204151",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -172,11 +172,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1760948891,
|
"lastModified": 1762980239,
|
||||||
"narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=",
|
"narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04",
|
"rev": "52a2caecc898d0b46b2b905f058ccc5081f842da",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -257,18 +257,20 @@
|
|||||||
"gnome-shell": {
|
"gnome-shell": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748186689,
|
"host": "gitlab.gnome.org",
|
||||||
"narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=",
|
"lastModified": 1762869044,
|
||||||
|
"narHash": "sha256-nwm/GJ2Syigf7VccLAZ66mFC8mZJFqpJmIxSGKl7+Ds=",
|
||||||
"owner": "GNOME",
|
"owner": "GNOME",
|
||||||
"repo": "gnome-shell",
|
"repo": "gnome-shell",
|
||||||
"rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0",
|
"rev": "680e3d195a92203f28d4bf8c6e8bb537cc3ed4ad",
|
||||||
"type": "github"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
"host": "gitlab.gnome.org",
|
||||||
"owner": "GNOME",
|
"owner": "GNOME",
|
||||||
"ref": "48.2",
|
"ref": "gnome-49",
|
||||||
"repo": "gnome-shell",
|
"repo": "gnome-shell",
|
||||||
"type": "github"
|
"type": "gitlab"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
@@ -279,11 +281,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762146130,
|
"lastModified": 1762964643,
|
||||||
"narHash": "sha256-/XOEA0a61fZ45i/BpaSsyLNNbw/yKwjMbkB/IWSGLzU=",
|
"narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "b5ed4afc2277339bdf0e9edf59befff7350cf075",
|
"rev": "827f2a23373a774a8805f84ca5344654c31f354b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -299,11 +301,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762367206,
|
"lastModified": 1763313531,
|
||||||
"narHash": "sha256-c/164YOPkV09BH8KIUdvVvJs3VF2LNIbE2piKGgXPxk=",
|
"narHash": "sha256-yvdCYUL85zEDp2NzPUBmaNBXP6KnWEOhAk3j7PTfsKw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "af119feb17cb242398e0fb97f92b867d25882522",
|
"rev": "3670a78eee49deebe4825fc8ecc46b172d1a8391",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -349,11 +351,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761748321,
|
"lastModified": 1762951919,
|
||||||
"narHash": "sha256-hD5mVzmUeyVppjArdy2uVdQe/CQUR9i3WgZB05onE7A=",
|
"narHash": "sha256-ma/xMEGf4J6n/RdZFdxXBJUQhP53HVEPQOC6Dp2TrkQ=",
|
||||||
"owner": "Jovian-Experiments",
|
"owner": "Jovian-Experiments",
|
||||||
"repo": "Jovian-NixOS",
|
"repo": "Jovian-NixOS",
|
||||||
"rev": "533db5857c9e00ca352558a928417116ee08a824",
|
"rev": "3d248f6e8f877218dd2573fef8925ac997889922",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -387,11 +389,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762111121,
|
"lastModified": 1762977756,
|
||||||
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
|
"narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
|
"rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -431,11 +433,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762111121,
|
"lastModified": 1763283776,
|
||||||
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
|
"narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
|
"rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -447,11 +449,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1758690382,
|
"lastModified": 1762977756,
|
||||||
"narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=",
|
"narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e643668fd71b949c53f8626614b21ff71a07379d",
|
"rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -471,11 +473,11 @@
|
|||||||
"systems": "systems_2"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762377973,
|
"lastModified": 1763334942,
|
||||||
"narHash": "sha256-OLLyaer2jFR3xeC9Kfw1y/3jOYSF0ctG/YIu9T67yuA=",
|
"narHash": "sha256-ORaewCyY3Fff+XaGrRjWi0XYzC22YTr/H3oL9c9k+9I=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "68b07c2c349b1a622f46e12b72039c0647779c34",
|
"rev": "59af09b1814538b826f30eac8024d126d8c36efc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -551,11 +553,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762137611,
|
"lastModified": 1763087910,
|
||||||
"narHash": "sha256-sTqb10FR/YQCuGbw16qxliX0NFlYg6evSEjN8w+9IYE=",
|
"narHash": "sha256-eB9Z1mWd1U6N61+F8qwDggX0ihM55s4E0CluwNukJRU=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "3a0ebe5d2965692f990cb27e62f501ad35e3deeb",
|
"rev": "cf4a68749733d45c0420726596367acd708eb2e8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -583,11 +585,11 @@
|
|||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762264356,
|
"lastModified": 1763314990,
|
||||||
"narHash": "sha256-QVfC53Ri+8n3e7Ujx9kq6all3+TLBRRPRnc6No5qY5w=",
|
"narHash": "sha256-gs98KFE3X2HQ64gsIpQNsj1lKFTdkNdX+1KMQTDXEus=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "647bb8dd96a206a1b79c4fd714affc88b409e10b",
|
"rev": "b68e8220689a6f0393204b07be1bc14bb973a0ed",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
5
home/cli/bat.nix
Normal file
5
home/cli/bat.nix
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
programs.bat = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -47,6 +47,7 @@
|
|||||||
alias ls='eza --icons=auto --group-directories-first'
|
alias ls='eza --icons=auto --group-directories-first'
|
||||||
alias ll='eza -lh --icons=auto --group-directories-first'
|
alias ll='eza -lh --icons=auto --group-directories-first'
|
||||||
alias la='eza -lha --icons=auto --group-directories-first'
|
alias la='eza -lha --icons=auto --group-directories-first'
|
||||||
|
alias cat='bat --paging=never'
|
||||||
|
|
||||||
alias grep='grep --color=auto'
|
alias grep='grep --color=auto'
|
||||||
alias fgrep='fgrep --color=auto'
|
alias fgrep='fgrep --color=auto'
|
||||||
|
|||||||
@@ -1,205 +1,232 @@
|
|||||||
{
|
{ config
|
||||||
config,
|
, lib
|
||||||
lib,
|
, pkgs
|
||||||
pkgs,
|
, ...
|
||||||
...
|
}: {
|
||||||
}: let
|
|
||||||
neo-tree-nvim-main = pkgs.vimUtils.buildVimPlugin {
|
|
||||||
pname = "neo-tree-nvim-main";
|
|
||||||
version = "3.35.2+6";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "nvim-neo-tree";
|
|
||||||
repo = "neo-tree.nvim";
|
|
||||||
rev = "8dd9f08ff086d09d112f1873f88dc0f74b598cdb";
|
|
||||||
sha256 = "sha256-edthaqznGTJ+VFVORK7gfHI9J14PLAghG9prsWlzXtc=";
|
|
||||||
};
|
|
||||||
doCheck = false;
|
|
||||||
meta.homepage = "https://github.com/nvim-neo-tree/neo-tree.nvim/";
|
|
||||||
meta.hydraPlatforms = [];
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
programs.neovim = {
|
programs.neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
# LazyVim
|
#Go
|
||||||
lua-language-server
|
gopls
|
||||||
|
gofumpt
|
||||||
|
golines
|
||||||
|
|
||||||
|
#Lua
|
||||||
stylua
|
stylua
|
||||||
|
lua-language-server
|
||||||
|
|
||||||
|
#Nix
|
||||||
|
nixd
|
||||||
|
nixpkgs-fmt
|
||||||
|
|
||||||
|
#Java
|
||||||
|
google-java-format
|
||||||
|
jdt-language-server
|
||||||
|
|
||||||
|
#Rust
|
||||||
|
clippy
|
||||||
|
rustfmt
|
||||||
|
rust-analyzer
|
||||||
|
|
||||||
|
#Shell
|
||||||
|
shfmt
|
||||||
|
bash-language-server
|
||||||
|
|
||||||
|
#C/C++
|
||||||
|
clang-tools
|
||||||
|
|
||||||
|
#Kotlin
|
||||||
|
ktlint
|
||||||
|
kotlin-language-server
|
||||||
|
|
||||||
|
#Python
|
||||||
|
ruff
|
||||||
|
black
|
||||||
|
python312Packages.python-lsp-server
|
||||||
|
|
||||||
|
#JS/TS/Web
|
||||||
|
prettierd
|
||||||
|
nodePackages.prettier
|
||||||
|
|
||||||
|
jq #JSON
|
||||||
|
taplo #TOML
|
||||||
|
yamlfmt #YAML
|
||||||
];
|
];
|
||||||
|
|
||||||
plugins = with pkgs.vimPlugins; [
|
plugins = with pkgs.vimPlugins; [
|
||||||
lazy-nvim
|
lazy-nvim
|
||||||
];
|
];
|
||||||
|
|
||||||
extraLuaConfig = let
|
extraLuaConfig =
|
||||||
plugins = with pkgs.vimPlugins; [
|
let
|
||||||
LazyVim
|
plugins = with pkgs.vimPlugins; [
|
||||||
bufferline-nvim
|
LazyVim
|
||||||
cmp_luasnip
|
bufferline-nvim
|
||||||
conform-nvim
|
cmp_luasnip
|
||||||
dashboard-nvim
|
conform-nvim
|
||||||
flash-nvim
|
dashboard-nvim
|
||||||
friendly-snippets
|
flash-nvim
|
||||||
gitsigns-nvim
|
friendly-snippets
|
||||||
lualine-nvim
|
gitsigns-nvim
|
||||||
{
|
lualine-nvim
|
||||||
name = "neo-tree.nvim";
|
neo-tree-nvim
|
||||||
path = neo-tree-nvim-main;
|
neoconf-nvim
|
||||||
}
|
neodev-nvim
|
||||||
neoconf-nvim
|
noice-nvim
|
||||||
neodev-nvim
|
nui-nvim
|
||||||
noice-nvim
|
nvim-lint
|
||||||
nui-nvim
|
nvim-lspconfig
|
||||||
nvim-lint
|
nvim-notify
|
||||||
nvim-lspconfig
|
nvim-spectre
|
||||||
nvim-notify
|
nvim-treesitter
|
||||||
nvim-spectre
|
nvim-treesitter-context
|
||||||
nvim-treesitter
|
nvim-ts-autotag
|
||||||
nvim-treesitter-context
|
nvim-ts-context-commentstring
|
||||||
nvim-treesitter-textobjects
|
nvim-web-devicons
|
||||||
nvim-ts-autotag
|
persistence-nvim
|
||||||
nvim-ts-context-commentstring
|
plenary-nvim
|
||||||
nvim-web-devicons
|
todo-comments-nvim
|
||||||
persistence-nvim
|
tokyonight-nvim
|
||||||
plenary-nvim
|
trouble-nvim
|
||||||
todo-comments-nvim
|
vim-illuminate
|
||||||
tokyonight-nvim
|
vim-startuptime
|
||||||
trouble-nvim
|
which-key-nvim
|
||||||
vim-illuminate
|
fzf-lua
|
||||||
vim-startuptime
|
snacks-nvim
|
||||||
which-key-nvim
|
{
|
||||||
fzf-lua
|
name = "lazydev.nvim";
|
||||||
snacks-nvim
|
path = lazydev-nvim;
|
||||||
{
|
}
|
||||||
name = "lazydev.nvim";
|
{
|
||||||
path = lazydev-nvim;
|
name = "blink.cmp";
|
||||||
}
|
path = blink-cmp;
|
||||||
{
|
}
|
||||||
name = "blink.cmp";
|
{
|
||||||
path = blink-cmp;
|
name = "LuaSnip";
|
||||||
}
|
path = luasnip;
|
||||||
{
|
}
|
||||||
name = "LuaSnip";
|
{
|
||||||
path = luasnip;
|
name = "mini.ai";
|
||||||
}
|
path = mini-nvim;
|
||||||
{
|
}
|
||||||
name = "mini.ai";
|
{
|
||||||
path = mini-nvim;
|
name = "mini.bufremove";
|
||||||
}
|
path = mini-nvim;
|
||||||
{
|
}
|
||||||
name = "mini.bufremove";
|
{
|
||||||
path = mini-nvim;
|
name = "mini.comment";
|
||||||
}
|
path = mini-nvim;
|
||||||
{
|
}
|
||||||
name = "mini.comment";
|
{
|
||||||
path = mini-nvim;
|
name = "mini.indentscope";
|
||||||
}
|
path = mini-nvim;
|
||||||
{
|
}
|
||||||
name = "mini.indentscope";
|
{
|
||||||
path = mini-nvim;
|
name = "mini.pairs";
|
||||||
}
|
path = mini-nvim;
|
||||||
{
|
}
|
||||||
name = "mini.pairs";
|
{
|
||||||
path = mini-nvim;
|
name = "mini.surround";
|
||||||
}
|
path = mini-nvim;
|
||||||
{
|
}
|
||||||
name = "mini.surround";
|
{
|
||||||
path = mini-nvim;
|
name = "mini.icons";
|
||||||
}
|
path = mini-icons;
|
||||||
{
|
}
|
||||||
name = "mini.icons";
|
{
|
||||||
path = mini-icons;
|
name = "grug-far.nvim";
|
||||||
}
|
path = grug-far-nvim;
|
||||||
{
|
}
|
||||||
name = "grug-far.nvim";
|
];
|
||||||
path = grug-far-nvim;
|
mkEntryFromDrv = drv:
|
||||||
}
|
if lib.isDerivation drv
|
||||||
];
|
then {
|
||||||
mkEntryFromDrv = drv:
|
name = "${lib.getName drv}";
|
||||||
if lib.isDerivation drv
|
path = drv;
|
||||||
then {
|
}
|
||||||
name = "${lib.getName drv}";
|
else drv;
|
||||||
path = drv;
|
lazyPath = pkgs.linkFarm "lazy-plugins" (builtins.map mkEntryFromDrv plugins);
|
||||||
}
|
in
|
||||||
else drv;
|
''
|
||||||
lazyPath = pkgs.linkFarm "lazy-plugins" (builtins.map mkEntryFromDrv plugins);
|
require("lazy").setup({
|
||||||
in ''
|
defaults = {
|
||||||
require("lazy").setup({
|
lazy = true,
|
||||||
defaults = {
|
|
||||||
lazy = true,
|
|
||||||
},
|
|
||||||
dev = {
|
|
||||||
-- reuse files from pkgs.vimPlugins.*
|
|
||||||
path = "${lazyPath}",
|
|
||||||
patterns = { "." },
|
|
||||||
-- fallback to download
|
|
||||||
fallback = true,
|
|
||||||
},
|
|
||||||
rocks = {
|
|
||||||
enabled = false,
|
|
||||||
hererocks = false,
|
|
||||||
},
|
|
||||||
spec = {
|
|
||||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
|
||||||
-- The following configs are needed for fixing lazyvim on nix
|
|
||||||
-- disable mason.nvim, use programs.neovim.extraPackages
|
|
||||||
{ "mason-org/mason-lspconfig.nvim", enabled = false },
|
|
||||||
{ "mason-org/mason.nvim", enabled = false },
|
|
||||||
-- import/override with your plugins
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.go" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.clangd" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.rust" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.python" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.tailwind" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.java" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.json" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.yaml" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.toml" },
|
|
||||||
{ import = "lazyvim.plugins.extras.lang.docker" },
|
|
||||||
{ import = "plugins" },
|
|
||||||
-- treesitter handled by xdg.configFile."nvim/parser", put this line at the end of spec to clear ensure_installed
|
|
||||||
{ "nvim-treesitter/nvim-treesitter",
|
|
||||||
opts = function(_, opts)
|
|
||||||
opts.ensure_installed = {}
|
|
||||||
end,
|
|
||||||
},
|
},
|
||||||
},
|
dev = {
|
||||||
})
|
-- reuse files from pkgs.vimPlugins.*
|
||||||
'';
|
path = "${lazyPath}",
|
||||||
|
patterns = { "." },
|
||||||
|
-- fallback to download
|
||||||
|
fallback = true,
|
||||||
|
},
|
||||||
|
rocks = {
|
||||||
|
enabled = false,
|
||||||
|
hererocks = false,
|
||||||
|
},
|
||||||
|
spec = {
|
||||||
|
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||||
|
-- The following configs are needed for fixing lazyvim on nix
|
||||||
|
-- disable mason.nvim, use programs.neovim.extraPackages
|
||||||
|
{ "mason-org/mason-lspconfig.nvim", enabled = false },
|
||||||
|
{ "mason-org/mason.nvim", enabled = false },
|
||||||
|
-- import/override with your plugins
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.go" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.clangd" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.rust" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.python" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.tailwind" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.java" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.json" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.yaml" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.toml" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.docker" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.kotlin" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.dart" },
|
||||||
|
{ import = "plugins" },
|
||||||
|
-- treesitter handled by xdg.configFile."nvim/parser", put this line at the end of spec to clear ensure_installed
|
||||||
|
{ "nvim-treesitter/nvim-treesitter",
|
||||||
|
opts = function(_, opts)
|
||||||
|
opts.ensure_installed = {}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# https://github.com/nvim-treesitter/nvim-treesitter#i-get-query-error-invalid-node-type-at-position
|
# https://github.com/nvim-treesitter/nvim-treesitter#i-get-query-error-invalid-node-type-at-position
|
||||||
xdg.configFile."nvim/parser".source = let
|
xdg.configFile."nvim/parser".source =
|
||||||
parsers = pkgs.symlinkJoin {
|
let
|
||||||
name = "treesitter-parsers";
|
parsers = pkgs.symlinkJoin {
|
||||||
paths =
|
name = "treesitter-parsers";
|
||||||
(pkgs.vimPlugins.nvim-treesitter.withPlugins (plugins:
|
paths =
|
||||||
with plugins; [
|
(pkgs.vimPlugins.nvim-treesitter.withPlugins (plugins:
|
||||||
bash
|
with plugins; [
|
||||||
c
|
bash
|
||||||
lua
|
c
|
||||||
python
|
go
|
||||||
go
|
lua
|
||||||
rust
|
rust
|
||||||
java
|
java
|
||||||
javascript
|
dart
|
||||||
typescript
|
kotlin
|
||||||
tsx
|
python
|
||||||
vue
|
javascript
|
||||||
html
|
typescript
|
||||||
css
|
tsx
|
||||||
json
|
vue
|
||||||
yaml
|
html
|
||||||
toml
|
css
|
||||||
dockerfile
|
json
|
||||||
]))
|
yaml
|
||||||
.dependencies;
|
toml
|
||||||
};
|
dockerfile
|
||||||
in "${parsers}/parser";
|
])).dependencies;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
"${parsers}/parser";
|
||||||
|
|
||||||
# Normal LazyVim config here, see https://github.com/LazyVim/starter/tree/main/lua
|
# Normal LazyVim config here, see https://github.com/LazyVim/starter/tree/main/lua
|
||||||
xdg.configFile."nvim/lua".source = ./lua;
|
xdg.configFile."nvim/lua".source = ./lua;
|
||||||
|
}
|
||||||
# Set default editor
|
|
||||||
home.sessionVariables.EDITOR = "nvim";
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,53 +1,53 @@
|
|||||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||||
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||||
if vim.v.shell_error ~= 0 then
|
if vim.v.shell_error ~= 0 then
|
||||||
vim.api.nvim_echo({
|
vim.api.nvim_echo({
|
||||||
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||||
{ out, "WarningMsg" },
|
{ out, "WarningMsg" },
|
||||||
{ "\nPress any key to exit..." },
|
{ "\nPress any key to exit..." },
|
||||||
}, true, {})
|
}, true, {})
|
||||||
vim.fn.getchar()
|
vim.fn.getchar()
|
||||||
os.exit(1)
|
os.exit(1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
vim.opt.rtp:prepend(lazypath)
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
require("lazy").setup({
|
require("lazy").setup({
|
||||||
spec = {
|
spec = {
|
||||||
-- add LazyVim and import its plugins
|
-- add LazyVim and import its plugins
|
||||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||||
-- import/override with your plugins
|
-- import/override with your plugins
|
||||||
{ import = "plugins" },
|
{ import = "plugins" },
|
||||||
},
|
},
|
||||||
defaults = {
|
defaults = {
|
||||||
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||||
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||||
lazy = false,
|
lazy = false,
|
||||||
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||||
-- have outdated releases, which may break your Neovim install.
|
-- have outdated releases, which may break your Neovim install.
|
||||||
version = false, -- always use the latest git commit
|
version = false, -- always use the latest git commit
|
||||||
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||||
},
|
},
|
||||||
install = { colorscheme = { "tokyonight", "habamax" } },
|
install = { colorscheme = { "tokyonight", "habamax" } },
|
||||||
checker = {
|
checker = {
|
||||||
enabled = true, -- check for plugin updates periodically
|
enabled = true, -- check for plugin updates periodically
|
||||||
notify = false, -- notify on update
|
notify = false, -- notify on update
|
||||||
}, -- automatically check for plugin updates
|
}, -- automatically check for plugin updates
|
||||||
performance = {
|
performance = {
|
||||||
rtp = {
|
rtp = {
|
||||||
-- disable some rtp plugins
|
-- disable some rtp plugins
|
||||||
disabled_plugins = {
|
disabled_plugins = {
|
||||||
"gzip",
|
"gzip",
|
||||||
-- "matchit",
|
-- "matchit",
|
||||||
-- "matchparen",
|
-- "matchparen",
|
||||||
-- "netrwPlugin",
|
-- "netrwPlugin",
|
||||||
"tarPlugin",
|
"tarPlugin",
|
||||||
"tohtml",
|
"tohtml",
|
||||||
"tutor",
|
"tutor",
|
||||||
"zipPlugin",
|
"zipPlugin",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
-- Options are automatically loaded before lazy.nvim startup
|
-- Options are automatically loaded before lazy.nvim startup
|
||||||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||||
-- Add any additional options here
|
-- Add any additional options here
|
||||||
|
vim.g.autoformat = false
|
||||||
68
home/nvim/lua/plugins/format.lua
Normal file
68
home/nvim/lua/plugins/format.lua
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"stevearc/conform.nvim",
|
||||||
|
opts = function(_, opts)
|
||||||
|
opts.format_on_save = nil
|
||||||
|
opts.formatters = opts.formatters or {}
|
||||||
|
opts.formatters_by_ft = opts.formatters_by_ft or {}
|
||||||
|
opts.formatters.nixpkgs_fmt = {
|
||||||
|
command = "nixpkgs-fmt",
|
||||||
|
args = function(ctx)
|
||||||
|
return {}
|
||||||
|
end,
|
||||||
|
stdin = true,
|
||||||
|
exit_codes = { 0 },
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Go
|
||||||
|
opts.formatters_by_ft.go = { "gofumpt" }
|
||||||
|
-- Lua
|
||||||
|
opts.formatters_by_ft.lua = { "stylua" }
|
||||||
|
-- Nix
|
||||||
|
opts.formatters_by_ft.nix = { "nixpkgs_fmt", stop_after_first = true }
|
||||||
|
-- Java
|
||||||
|
opts.formatters_by_ft.java = { "google_java_format" }
|
||||||
|
-- Rust
|
||||||
|
opts.formatters_by_ft.rust = { "rustfmt" }
|
||||||
|
-- Shell
|
||||||
|
opts.formatters_by_ft.sh = { "shfmt" }
|
||||||
|
-- C/C++
|
||||||
|
opts.formatters_by_ft.c = { "clang_format" }
|
||||||
|
opts.formatters_by_ft.cpp = { "clang_format" }
|
||||||
|
-- Kotlin
|
||||||
|
opts.formatters_by_ft.kotlin = { "ktlint" }
|
||||||
|
-- Python
|
||||||
|
opts.formatters_by_ft.python = { "black", "ruff_format" }
|
||||||
|
-- JS/TS/Web
|
||||||
|
opts.formatters_by_ft.javascript = { "prettierd" }
|
||||||
|
opts.formatters_by_ft.typescript = { "prettierd" }
|
||||||
|
opts.formatters_by_ft.javascriptreact = { "prettierd" }
|
||||||
|
opts.formatters_by_ft.typescriptreact = { "prettierd" }
|
||||||
|
opts.formatters_by_ft.vue = { "prettierd" }
|
||||||
|
-- JSON
|
||||||
|
opts.formatters_by_ft.json = { "jq" }
|
||||||
|
-- YAML
|
||||||
|
opts.formatters_by_ft.yaml = { "yamlfmt" }
|
||||||
|
-- TOML
|
||||||
|
opts.formatters_by_ft.toml = { "taplo" }
|
||||||
|
-- Dart / Flutter
|
||||||
|
opts.formatters_by_ft.dart = {
|
||||||
|
command = "dart",
|
||||||
|
args = function(ctx)
|
||||||
|
return { "format", ctx.bufname }
|
||||||
|
end,
|
||||||
|
stdin = false,
|
||||||
|
exit_codes = { 0 },
|
||||||
|
}
|
||||||
|
opts.default_format_opts = {
|
||||||
|
timeout_ms = 1500,
|
||||||
|
lsp_format = "fallback",
|
||||||
|
stop_after_first = false,
|
||||||
|
}
|
||||||
|
opts.log_level = vim.log.levels.ERROR
|
||||||
|
opts.notify_on_error = true
|
||||||
|
opts.notify_no_formatters = true
|
||||||
|
return opts
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -1,18 +1,18 @@
|
|||||||
return {
|
return {
|
||||||
"ojroques/nvim-osc52",
|
"ojroques/nvim-osc52",
|
||||||
config = function()
|
config = function()
|
||||||
require("osc52").setup {
|
require("osc52").setup({
|
||||||
max_length = 0, -- 不限制长度
|
max_length = 0, -- 不限制长度
|
||||||
silent = false,
|
silent = false,
|
||||||
trim = false,
|
trim = false,
|
||||||
}
|
})
|
||||||
|
|
||||||
local function copy()
|
local function copy()
|
||||||
if vim.v.event.operator == "y" and vim.v.event.regname == "" then
|
if vim.v.event.operator == "y" and vim.v.event.regname == "" then
|
||||||
require("osc52").copy_register("")
|
require("osc52").copy_register("")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd("TextYankPost", { callback = copy })
|
vim.api.nvim_create_autocmd("TextYankPost", { callback = copy })
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
30
home/nvim/lua/plugins/treesitter.lua
Normal file
30
home/nvim/lua/plugins/treesitter.lua
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"LazyVim/LazyVim",
|
||||||
|
opts = {
|
||||||
|
treesitter = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
event = { "BufReadPost", "BufNewFile" },
|
||||||
|
opts = {
|
||||||
|
ensure_installed = {},
|
||||||
|
auto_install = false,
|
||||||
|
highlight = { enable = true },
|
||||||
|
indent = { enable = true },
|
||||||
|
incremental_selection = {
|
||||||
|
enable = true,
|
||||||
|
keymaps = {
|
||||||
|
init_selection = "gnn",
|
||||||
|
node_incremental = "grn",
|
||||||
|
scope_incremental = "grc",
|
||||||
|
node_decremental = "grm",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
require("nvim-treesitter.configs").setup(opts)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -7,17 +7,10 @@
|
|||||||
GPU-AMD = true;
|
GPU-AMD = true;
|
||||||
### See https://nixos.wiki/wiki/AMD_GPU
|
### See https://nixos.wiki/wiki/AMD_GPU
|
||||||
|
|
||||||
GPU-Nvidia = false;
|
|
||||||
### See https://nixos.wiki/wiki/Nvidia
|
|
||||||
|
|
||||||
GPU-Intel = false;
|
|
||||||
### See https://nixos.wiki/wiki/Intel_Graphics
|
|
||||||
|
|
||||||
HotSpot-Use-Case = false;
|
|
||||||
### See https://nixos.wiki/wiki/Internet_Connection_Sharing
|
|
||||||
|
|
||||||
## Software related
|
## Software related
|
||||||
QEMU-VM-Use-Case = true;
|
QEMU-VM-Use-Case = true;
|
||||||
|
|
||||||
|
Database-Use-Case = true;
|
||||||
### See https://github.com/qemu/qemu ; https://github.com/virt-manager/virt-manager
|
### See https://github.com/qemu/qemu ; https://github.com/virt-manager/virt-manager
|
||||||
|
|
||||||
# Options
|
# Options
|
||||||
|
|||||||
17
modules/services/mysql.nix
Normal file
17
modules/services/mysql.nix
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{ hostname, lib, pkgs, ... }:
|
||||||
|
with lib; let
|
||||||
|
inherit (import ../../hosts/${hostname}/env.nix) Database-Use-Case;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = mkIf Database-Use-Case {
|
||||||
|
services.mysql = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.mysql84;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.dbeaver-bin
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
@@ -104,10 +104,9 @@ in
|
|||||||
|
|
||||||
security = {
|
security = {
|
||||||
rtkit.enable = true;
|
rtkit.enable = true;
|
||||||
sudo.enable = false;
|
sudo = {
|
||||||
sudo-rs = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
execWheelOnly = true;
|
wheelNeedsPassword = true;
|
||||||
};
|
};
|
||||||
pam.services = {
|
pam.services = {
|
||||||
hyprlock = {};
|
hyprlock = {};
|
||||||
|
|||||||
@@ -46,17 +46,16 @@ in {
|
|||||||
# For OBS virtual cam support
|
# For OBS virtual cam support
|
||||||
v4l-utils
|
v4l-utils
|
||||||
|
|
||||||
# Editor
|
|
||||||
nano
|
|
||||||
|
|
||||||
# Networking tool
|
# Networking tool
|
||||||
iperf3
|
iperf3
|
||||||
nexttrace
|
nexttrace
|
||||||
curl
|
curl
|
||||||
|
wget
|
||||||
aria2
|
aria2
|
||||||
yt-dlp
|
yt-dlp
|
||||||
|
|
||||||
#Android
|
#Android
|
||||||
|
edl
|
||||||
xxd
|
xxd
|
||||||
file
|
file
|
||||||
binwalk
|
binwalk
|
||||||
@@ -75,12 +74,22 @@ in {
|
|||||||
|
|
||||||
# Dev
|
# Dev
|
||||||
go
|
go
|
||||||
|
zig
|
||||||
|
lua
|
||||||
gcc
|
gcc
|
||||||
gdb
|
gdb
|
||||||
|
cmake
|
||||||
clang
|
clang
|
||||||
zig
|
gnumake
|
||||||
nodejs_20
|
rustc
|
||||||
|
cargo
|
||||||
|
dart
|
||||||
|
kotlin
|
||||||
|
flutter
|
||||||
|
jdk17
|
||||||
|
python312
|
||||||
pnpm
|
pnpm
|
||||||
|
nodejs_20
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ with lib; {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
config.allowUnfree = false;
|
config.allowUnfree = true;
|
||||||
hostPlatform = "x86_64-linux";
|
hostPlatform = "x86_64-linux";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user