diff --git a/config/kitty/current-theme.conf b/config/kitty/current-theme.conf deleted file mode 100644 index b27902e..0000000 --- a/config/kitty/current-theme.conf +++ /dev/null @@ -1,53 +0,0 @@ -## name: Rosé Pine Moon -## author: mvllow -## license: MIT -## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine-moon.conf -## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist - -foreground #e0def4 -background #232136 -selection_foreground #e0def4 -selection_background #44415a - -cursor #56526e -cursor_text_color #e0def4 - -url_color #c4a7e7 - -active_tab_foreground #e0def4 -active_tab_background #393552 -inactive_tab_foreground #6e6a86 -inactive_tab_background #232136 - -# black -color0 #393552 -color8 #6e6a86 - -# red -color1 #eb6f92 -color9 #eb6f92 - -# green -color2 #3e8fb0 -color10 #3e8fb0 - -# yellow -color3 #f6c177 -color11 #f6c177 - -# blue -color4 #9ccfd8 -color12 #9ccfd8 - -# magenta -color5 #c4a7e7 -color13 #c4a7e7 - -# cyan -color6 #ea9a97 -color14 #ea9a97 - -# white -color7 #e0def4 -color15 #e0def4 - diff --git a/config/kitty/dark-theme.auto.conf b/config/kitty/dark-theme.auto.conf deleted file mode 100644 index b27902e..0000000 --- a/config/kitty/dark-theme.auto.conf +++ /dev/null @@ -1,53 +0,0 @@ -## name: Rosé Pine Moon -## author: mvllow -## license: MIT -## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine-moon.conf -## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist - -foreground #e0def4 -background #232136 -selection_foreground #e0def4 -selection_background #44415a - -cursor #56526e -cursor_text_color #e0def4 - -url_color #c4a7e7 - -active_tab_foreground #e0def4 -active_tab_background #393552 -inactive_tab_foreground #6e6a86 -inactive_tab_background #232136 - -# black -color0 #393552 -color8 #6e6a86 - -# red -color1 #eb6f92 -color9 #eb6f92 - -# green -color2 #3e8fb0 -color10 #3e8fb0 - -# yellow -color3 #f6c177 -color11 #f6c177 - -# blue -color4 #9ccfd8 -color12 #9ccfd8 - -# magenta -color5 #c4a7e7 -color13 #c4a7e7 - -# cyan -color6 #ea9a97 -color14 #ea9a97 - -# white -color7 #e0def4 -color15 #e0def4 - diff --git a/config/kitty/diff.conf b/config/kitty/diff.conf deleted file mode 120000 index 848f6c3..0000000 --- a/config/kitty/diff.conf +++ /dev/null @@ -1 +0,0 @@ -/nix/store/p1324gwzjhbv6njfdv7wdfswgsdkv6jl-home-manager-files/.config/kitty/diff.conf \ No newline at end of file diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf deleted file mode 120000 index e7b1bde..0000000 --- a/config/kitty/kitty.conf +++ /dev/null @@ -1 +0,0 @@ -/nix/store/p1324gwzjhbv6njfdv7wdfswgsdkv6jl-home-manager-files/.config/kitty/kitty.conf \ No newline at end of file diff --git a/config/kitty/kitty.conf.backup b/config/kitty/kitty.conf.backup deleted file mode 100644 index 04fa82e..0000000 --- a/config/kitty/kitty.conf.backup +++ /dev/null @@ -1,8 +0,0 @@ -background_opacity 0.3 -enable_audio_bell no -enable_wayland_portal no -detect_system_theme no -# BEGIN_KITTY_THEME -# Rosé Pine Moon -#include current-theme.conf -# END_KITTY_THEME diff --git a/config/kitty/kitty.conf.bak b/config/kitty/kitty.conf.bak deleted file mode 100644 index 8c83af4..0000000 --- a/config/kitty/kitty.conf.bak +++ /dev/null @@ -1,2 +0,0 @@ -background_opacity 0.3 -enable_audio_bell no diff --git a/config/lf/lf.tar.gz b/config/lf/lf.tar.gz deleted file mode 100644 index 07371cb..0000000 Binary files a/config/lf/lf.tar.gz and /dev/null differ diff --git a/config/lf/lf_kitty_clean b/config/lf/lf_kitty_clean deleted file mode 100755 index 16a2e66..0000000 --- a/config/lf/lf_kitty_clean +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -kitty +kitten icat --clear --stdin no --silent --transfer-mode file < /dev/null > /dev/tty diff --git a/config/lf/lf_kitty_preview b/config/lf/lf_kitty_preview deleted file mode 100755 index 1b7e805..0000000 --- a/config/lf/lf_kitty_preview +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -file=$1 -w=$2 -h=$3 -x=$4 -y=$5 - -if [[ "$( file -Lb --mime-type "$file")" =~ ^image ]]; then - kitty +kitten icat --silent --stdin no --transfer-mode file --place "${w}x${h}@${x}x${y}" "$file" < /dev/null > /dev/tty - exit 1 -fi - -pistol "$file" diff --git a/config/lf/lfrc.backup b/config/lf/lfrc.backup deleted file mode 100644 index 04a93fa..0000000 --- a/config/lf/lfrc.backup +++ /dev/null @@ -1,147 +0,0 @@ -# interpreter for shell commands -set shell bash - -# set '-eu' options for shell commands -# These options are used to have safer shell commands. Option '-e' is used to -# exit on error and option '-u' is used to give error for unset variables. -# Option '-f' disables pathname expansion which can be useful when $f, $fs, and -# $fx variables contain names with '*' or '?' characters. However, this option -# is used selectively within individual commands as it can be limiting at -# times. -set shellopts '-eu' - -# set internal field separator (IFS) to "\n" for shell commands -# This is useful to automatically split file names in $fs and $fx properly -# since default file separator used in these variables (i.e. 'filesep' option) -# is newline. You need to consider the values of these options and create your -# commands accordingly. -set ifs "\n" - -# leave some space at the top and the bottom of the screen -set scrolloff 10 - -# Use the `dim` attribute instead of underline for the cursor in the preview pane -set cursorpreviewfmt "\033[7;2m" - -# use enter for shell commands -map shell - -# show the result of execution of previous commands -map ` !true - -# execute current file (must be executable) -map x $$f -map X !$f -map D set hidden! -map d set hidden! -# dedicated keys for file opener actions -map o &mimeopen $f -map O $mimeopen --ask $f -cmd nano ${{ - nano $f -}} -cmd open-with-cli $$@ nano -#cmd open-with-cli $$@ $fx -#map e push :open-with-cli ## input application -map e nano -map w wp -map bw wpm -map br cd /run/media/tulg -map bp cd /run/media/tulg/backup1/pogland/wallpapers/ -map c cd ~/.config/ -map f wppp -cmd wp &{{ - swww img $f # To make sure our escape sequence still reaches stdout we pipe it to /dev/tty -}} -cmd wppp &{{ - swayimg $f # To make sure our escape sequence still reaches stdout we pipe it to /dev/tty -}} -cmd wpm &{{ - mv $f /run/media/tulg/backup1/pogland/wallpapers # To make sure our escape sequence still reaches stdout we pipe it to /dev/tty - }} - -cmd drives &{{ - cd /run/media/tulg # To make sure our escape sequence still reaches stdout we pipe it to /dev/tty - }} -cmd on-cd &{{ - # '&' commands run silently in background (which is what we want here), - # but are not connected to stdout. - - printf "\033]0; $(pwd | sed "s|$HOME|~|")\007" > /dev/tty # To make sure our escape sequence still reaches stdout we pipe it to /dev/tty -}} - -# also run at startup -on-cd - -# define a custom 'open' command -# This command is called when current file is not a directory. You may want to -# use either file extensions and/or mime types here. Below uses an editor for -# text files and a file opener for the rest. -cmd open &{{ - case $(file --mime-type -Lb $f) in - text/*) lf -remote "send $id nano \$fx";; - *) for f in $fx; do $OPENER $f > /dev/null 2> /dev/null & done;; - esac -}} - -# mkdir command. See wiki if you want it to select created dir -map a :push %mkdir - -# define a custom 'rename' command without prompt for overwrite -# cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1 -# map r push :rename - -# make sure trash folder exists -# %mkdir -p ~/.trash - -# move current file or selected files to trash folder -# (also see 'man mv' for backup/overwrite options) -cmd trash %set -f; mv $fx ~/.trash - -# define a custom 'delete' command -# cmd delete ${{ -# set -f -# printf "$fx\n" -# printf "delete?[y/n]" -# read ans -# [ "$ans" = "y" ] && rm -rf $fx -# }} - -# use '' key for either 'trash' or 'delete' command -# map trash -# map delete - -# extract the current file with the right command -# (xkcd link: https://xkcd.com/1168/) -cmd extract ${{ - set -f - case $f in - *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;; - *.tar.gz|*.tgz) tar xzvf $f;; - *.tar.xz|*.txz) tar xJvf $f;; - *.zip) unzip $f;; - *.rar) unrar x $f;; - *.7z) 7z x $f;; - esac -}} - -# compress current file or selected files with tar and gunzip -cmd tar ${{ - set -f - mkdir $1 - cp -r $fx $1 - tar czf $1.tar.gz $1 - rm -rf $1 -}} - -# compress current file or selected files with zip -cmd zip ${{ - set -f - mkdir $1 - cp -r $fx $1 - zip -r $1.zip $1 - rm -rf $1 -}} -set preview -set previewer ~/.config/lf/lf_kitty_preview -set cleaner ~/.config/lf/lf_kitty_clean diff --git a/config/lf/preview b/config/lf/preview deleted file mode 100755 index 1ccf361..0000000 --- a/config/lf/preview +++ /dev/null @@ -1 +0,0 @@ -kitty +kitten icat --silent --stdin no --transfer-mode file --place "${w}x${h}@${x}x${y}" "$file" < /dev/null > /dev/tty diff --git a/config/tmux/plugins/tpm b/config/tmux/plugins/tpm new file mode 160000 index 0000000..99469c4 --- /dev/null +++ b/config/tmux/plugins/tpm @@ -0,0 +1 @@ +Subproject commit 99469c4a9b1ccf77fade25842dc7bafbc8ce9946 diff --git a/config/zellij/config.kdl b/config/zellij/config.kdl new file mode 100644 index 0000000..3b9e41c --- /dev/null +++ b/config/zellij/config.kdl @@ -0,0 +1,574 @@ +// +// THIS FILE WAS AUTOGENERATED BY ZELLIJ, THE PREVIOUS FILE AT THIS LOCATION WAS COPIED TO: /home/tulg/.config/zellij/config.kdl.bak +// +theme "rose-pine" +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 "s" { NewPane "stacked"; 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 "e" { EditScrollback; 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 "l" { + LaunchOrFocusPlugin "zellij:layout-manager" { + 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 "s" { + LaunchOrFocusPlugin "zellij:share" { + 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 left" { MoveFocusOrTab "left"; } + bind "Alt down" { MoveFocus "down"; } + bind "Alt up" { MoveFocus "up"; } + bind "Alt right" { MoveFocusOrTab "right"; } + 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 h" { MoveFocusOrTab "left"; } + bind "Alt i" { MoveTab "left"; } + bind "Alt j" { MoveFocus "down"; } + bind "Alt k" { MoveFocus "up"; } + bind "Alt l" { MoveFocusOrTab "right"; } + bind "Alt n" { NewPane; } + bind "Alt o" { MoveTab "right"; } + bind "Alt p" { TogglePaneInGroup; } + bind "Alt Shift p" { ToggleGroupMarking; } + 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" "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 { + zellij:link +} +web_client { + font "monospace" +} + +// Use a simplified UI without special fonts (arrow glyphs) +// Options: +// - true +// - false (Default) +// +// simplified_ui true + +// Enable OSC8 hyperlink output +// Options: +// - true (Default) +// - false +// +// osc8_hyperlinks 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 "locked" + +// 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: +// +// 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 make sure a local web server is running when a new Zellij session starts. +// This web server will allow creating new sessions and attaching to existing ones that have +// opted in to being shared in the browser. +// When enabled, navigate to http://127.0.0.1:8082 +// (Requires restart) +// +// Note: a local web server can still be manually started from within a Zellij session or from the CLI. +// If this is not desired, one can use a version of Zellij compiled without +// `web_server_capability` +// +// Possible values: +// - true +// - false +// Default: false +// +// web_server false +// Whether to allow sessions started in the terminal to be shared through a local web server, assuming one is +// running (see the `web_server` option for more details). +// (Requires restart) +// +// Note: This is an administrative separation and not intended as a security measure. +// +// Possible values: +// - "on" (allow web sharing through the local web server if it +// is online) +// - "off" (do not allow web sharing unless sessions explicitly opt-in to it) +// - "disabled" (do not allow web sharing and do not permit sessions started in the terminal to opt-in to it) +// Default: "off" +// +// web_sharing "off" +// A path to a certificate file to be used when setting up the web client to serve the +// connection over HTTPs +// +// web_server_cert "/path/to/cert.pem" +// A path to a key file to be used when setting up the web client to serve the +// connection over HTTPs +// +// web_server_key "/path/to/key.pem" +/// Whether to enforce https connections to the web server when it is bound to localhost +/// (127.0.0.0/8) +/// +/// Note: https is ALWAYS enforced when bound to non-local interfaces +/// +/// Default: false +// +// enforce_https_for_localhost 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 + +// Whether to enable mouse hover effects and pane grouping functionality +// default is true +// advanced_mouse_actions false + +// Whether to enable mouse hover visual effects (frame highlight and help text) +// default is true +// mouse_hover_effects false + +// Whether to show visual bell indicators (pane/tab frame flash and [!] suffix) +// default is true +// visual_bell true + +// Whether to focus panes on mouse hover +// default is false +// focus_follows_mouse false + +// Whether clicking a pane to focus it also sends the click into the pane +// default is false +// mouse_click_through false + +// The ip address the web server should listen on when it starts +// Default: "127.0.0.1" +// (Requires restart) +// web_server_ip "127.0.0.1" + +// The port the web server should listen on when it starts +// Default: 8082 +// (Requires restart) +// web_server_port 8082 + +// A command to run (will be wrapped with sh -c and provided the RESURRECT_COMMAND env variable) +// after Zellij attempts to discover a command inside a pane when resurrecting sessions, the STDOUT +// of this command will be used instead of the discovered RESURRECT_COMMAND +// can be useful for removing wrappers around commands +// Note: be sure to escape backslashes and similar characters properly +// post_command_discovery_hook "echo $RESURRECT_COMMAND | sed " + +// Number of async worker tasks to spawn per active client. +// +// Allocating few tasks may result in resource contention and lags. Small values (around 4) should +// typically work best. Set to 0 to use the number of (physical) CPU cores. +// Note: This only applies to web clients at the moment. +// client_async_worker_tasks 4 diff --git a/config/zellij/themes/rose-pine-moon.kdl b/config/zellij/themes/rose-pine-moon.kdl new file mode 100644 index 0000000..ff07003 --- /dev/null +++ b/config/zellij/themes/rose-pine-moon.kdl @@ -0,0 +1,120 @@ +themes { + rose-pine-moon { + text_unselected { + base 224 222 244 + background 42 40 62 + emphasis_0 234 154 151 + emphasis_1 156 207 216 + emphasis_2 62 143 176 + emphasis_3 196 167 231 + } + text_selected { + base 224 222 244 + background 68 65 90 + emphasis_0 234 154 151 + emphasis_1 156 207 216 + emphasis_2 62 143 176 + emphasis_3 196 167 231 + } + ribbon_selected { + base 42 40 62 + background 62 143 176 + emphasis_0 246 193 119 + emphasis_1 234 154 151 + emphasis_2 196 167 231 + emphasis_3 156 207 216 + } + ribbon_unselected { + base 35 33 54 + background 224 222 244 + emphasis_0 246 193 119 + emphasis_1 234 154 151 + emphasis_2 196 167 231 + emphasis_3 156 207 216 + } + table_title { + base 62 143 176 + background 0 0 0 + emphasis_0 234 154 151 + emphasis_1 156 207 216 + emphasis_2 62 143 176 + emphasis_3 196 167 231 + } + table_cell_selected { + base 224 222 244 + background 68 65 90 + emphasis_0 234 154 151 + emphasis_1 156 207 216 + emphasis_2 62 143 176 + emphasis_3 196 167 231 + } + table_cell_unselected { + base 224 222 244 + background 42 40 62 + emphasis_0 234 154 151 + emphasis_1 156 207 216 + emphasis_2 62 143 176 + emphasis_3 196 167 231 + } + list_selected { + base 224 222 244 + background 68 65 90 + emphasis_0 234 154 151 + emphasis_1 156 207 216 + emphasis_2 62 143 176 + emphasis_3 196 167 231 + } + list_unselected { + base 224 222 244 + background 42 40 62 + emphasis_0 234 154 151 + emphasis_1 156 207 216 + emphasis_2 62 143 176 + emphasis_3 196 167 231 + } + frame_selected { + base 62 143 176 + background 0 0 0 + emphasis_0 234 154 151 + emphasis_1 156 207 216 + emphasis_2 196 167 231 + emphasis_3 0 0 0 + } + frame_highlight { + base 234 154 151 + background 0 0 0 + emphasis_0 234 154 151 + emphasis_1 234 154 151 + emphasis_2 234 154 151 + emphasis_3 234 154 151 + } + exit_code_success { + base 62 143 176 + background 0 0 0 + emphasis_0 156 207 216 + emphasis_1 42 40 62 + emphasis_2 196 167 231 + emphasis_3 62 143 176 + } + exit_code_error { + base 235 111 146 + background 0 0 0 + emphasis_0 246 193 119 + emphasis_1 0 0 0 + emphasis_2 0 0 0 + emphasis_3 0 0 0 + } + multiplayer_user_colors { + player_1 196 167 231 + player_2 62 143 176 + player_3 234 154 151 + player_4 246 193 119 + player_5 156 207 216 + player_6 235 111 146 + player_7 0 0 0 + player_8 0 0 0 + player_9 0 0 0 + player_10 0 0 0 + } + } +} diff --git a/flake.nix b/flake.nix index 9e8e59f..cecdeca 100644 --- a/flake.nix +++ b/flake.nix @@ -72,21 +72,6 @@ stylix.nixosModules.stylix agenix.nixosModules.default #./modules/home-manager/stylix.nix - { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = {inherit inputs nix-colors;}; - backupFileExtension = "backup"; - - users.tulg = { - imports = [ - ./modules/home-manager/home.nix - stylix.homeModules.stylix - ]; - }; - }; - } ]; }; @@ -99,22 +84,6 @@ inputs.disko.nixosModules.disko stylix.nixosModules.stylix agenix.nixosModules.default - #./modules/home-manager/stylix.nix - { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = {inherit inputs nix-colors;}; - backupFileExtension = "backup"; - - users.tulg = { - imports = [ - ./modules/home-manager/home.nix - stylix.homeModules.stylix - ]; - }; - }; - } ]; }; #placeholder @@ -127,22 +96,6 @@ inputs.disko.nixosModules.disko agenix.nixosModules.default stylix.nixosModules.stylix - #./modules/home-manager/stylix.nix - { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = {inherit inputs nix-colors;}; - backupFileExtension = "backup"; - - users.tulg = { - imports = [ - ./modules/home-manager/home.nix - stylix.homeModules.stylix - ]; - }; - }; - } ]; }; nixosConfigurations.kittykat = nixpkgs.lib.nixosSystem { @@ -150,47 +103,37 @@ specialArgs = {inherit inputs;}; modules = [ ./hosts/kittykat/configuration.nix + home-manager.nixosModules.home-manager xray-3x-ui.nixosModules.default agenix.nixosModules.default inputs.disko.nixosModules.disko ]; }; - deploy.nodes.kittykat = { - hostname = "kittykat"; - profiles.system = { - sshUser = "root"; - user = "root"; - path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.kittykat; - }; - }; - nixosConfigurations.overlord = nixpkgs.lib.nixosSystem { inherit system; specialArgs = {inherit inputs;}; modules = [ - ./hosts/overlord/configuration.nix + home-manager.nixosModules.home-manager nixarr.nixosModules.default agenix.nixosModules.default inputs.disko.nixosModules.disko + ./hosts/overlord/configuration.nix ]; }; + deploy.nodes = + nixpkgs.lib.mapAttrs + (name: config: { + hostname = name; - deploy.nodes.overlord = { - hostname = "overlord"; - profiles.system = { - sshUser = "root"; - user = "root"; - path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.overlord; - }; - }; - deploy.nodes.beatrice = { - hostname = "beatrice"; - profiles.system = { - sshUser = "root"; - user = "root"; - path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.beatrice; - }; - }; + profiles.system = { + sshUser = "root"; + user = "root"; + + path = + deploy-rs.lib.${config.pkgs.system}.activate.nixos config; + }; + }) + self.nixosConfigurations; checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib; }; } diff --git a/hosts/archangel/configuration.nix b/hosts/archangel/configuration.nix index 223ee88..1e2bee6 100644 --- a/hosts/archangel/configuration.nix +++ b/hosts/archangel/configuration.nix @@ -11,8 +11,8 @@ ./disko.nix ./hardware-configuration.nix ../../modules/nixos/networking/default.nix -# ../../modules/nixos/networking/zapret.nix - + # ../../modules/nixos/networking/zapret.nix + ./home.nix ../../modules/nixos/virtualization/default.nix ../../modules/nixos/common.nix ../../modules/nixos/fonts.nix @@ -23,7 +23,7 @@ # Bootloader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; - services.flatpak.enable = true; + services.flatpak.enable = true; networking.hostName = "archangel"; programs.hyprland = { diff --git a/hosts/archangel/home.nix b/hosts/archangel/home.nix new file mode 100644 index 0000000..6da56b6 --- /dev/null +++ b/hosts/archangel/home.nix @@ -0,0 +1,15 @@ +{inputs, ...}: { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = {inherit inputs;}; + backupFileExtension = "backup"; + + users.tulg = { + imports = [ + ../../modules/home-manager/home.nix + inputs.stylix.homeModules.stylix + ]; + }; + }; +} diff --git a/hosts/beatrice/configuration.nix b/hosts/beatrice/configuration.nix index 7cdcecf..e3ad937 100644 --- a/hosts/beatrice/configuration.nix +++ b/hosts/beatrice/configuration.nix @@ -16,6 +16,7 @@ ../../modules/nixos/fonts.nix ../../modules/nixos/services.nix ../../modules/nixos/users/tulg.nix + ./home.nix ]; # Bootloader. diff --git a/hosts/beatrice/home.nix b/hosts/beatrice/home.nix new file mode 100644 index 0000000..6da56b6 --- /dev/null +++ b/hosts/beatrice/home.nix @@ -0,0 +1,15 @@ +{inputs, ...}: { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = {inherit inputs;}; + backupFileExtension = "backup"; + + users.tulg = { + imports = [ + ../../modules/home-manager/home.nix + inputs.stylix.homeModules.stylix + ]; + }; + }; +} diff --git a/hosts/overlord/configuration.nix b/hosts/overlord/configuration.nix index b3f12bf..587b055 100644 --- a/hosts/overlord/configuration.nix +++ b/hosts/overlord/configuration.nix @@ -7,6 +7,7 @@ imports = [ ./hardware-configuration.nix ./disko.nix + ./home.nix ../../modules/nixos/networking/ssh.nix ../../modules/nixos/users/tulg.nix ../../modules/servers/common.nix diff --git a/hosts/overlord/home.nix b/hosts/overlord/home.nix new file mode 100644 index 0000000..578a341 --- /dev/null +++ b/hosts/overlord/home.nix @@ -0,0 +1,25 @@ +{ + inputs, + config, + ... +}: { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { + inherit inputs; + }; + backupFileExtension = "backup"; + + users.tulg = { + home.username = "tulg"; + home.homeDirectory = "/home/tulg"; + home.stateVersion = "25.05"; + + imports = [ + ../../modules/home-manager/pkgs.nix + ../../modules/home-manager/cli/default.nix + ]; + }; + }; +} diff --git a/hosts/virgil/configuration.nix b/hosts/virgil/configuration.nix index 644b1fa..578a7a4 100644 --- a/hosts/virgil/configuration.nix +++ b/hosts/virgil/configuration.nix @@ -2,6 +2,7 @@ config, pkgs, self, + inputs, ... }: { imports = [ @@ -9,6 +10,7 @@ ./hardware-configuration.nix ./vfio.nix ./secrets.nix + ./home.nix ../../modules/nixos/networking/default.nix ../../modules/nixos/virtualization/default.nix ../../modules/nixos/common.nix diff --git a/hosts/virgil/home.nix b/hosts/virgil/home.nix new file mode 100644 index 0000000..6da56b6 --- /dev/null +++ b/hosts/virgil/home.nix @@ -0,0 +1,15 @@ +{inputs, ...}: { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = {inherit inputs;}; + backupFileExtension = "backup"; + + users.tulg = { + imports = [ + ../../modules/home-manager/home.nix + inputs.stylix.homeModules.stylix + ]; + }; + }; +} diff --git a/modules/home-manager/cli/default.nix b/modules/home-manager/cli/default.nix index 836c7a0..d9bfa1a 100644 --- a/modules/home-manager/cli/default.nix +++ b/modules/home-manager/cli/default.nix @@ -1,8 +1,13 @@ -{lib, ...}: { +{ + lib, + pkgs, + ... +}: { imports = [ ./yazi.nix ./shell.nix - ./zellij.nix + ./symlink.nix ./fastfetch.nix + ./tmux.nix ]; } diff --git a/modules/home-manager/cli/symlink.nix b/modules/home-manager/cli/symlink.nix new file mode 100644 index 0000000..7bac9b7 --- /dev/null +++ b/modules/home-manager/cli/symlink.nix @@ -0,0 +1,12 @@ +{ + config, + inputs, + ... +}: { + #xdg.configFile."tmuxcon" = { + # recursive = true; + # source = + # config.lib.file.mkOutOfStoreSymlink + # (inputs.self + /config/tmux); + #}; +} diff --git a/modules/home-manager/cli/tmux.nix b/modules/home-manager/cli/tmux.nix new file mode 100644 index 0000000..60484f8 --- /dev/null +++ b/modules/home-manager/cli/tmux.nix @@ -0,0 +1,25 @@ +{ + programs.tmux = { + enable = true; + #shortcut = "a"; + #prefix = "C-a"; + extraConfig = '' + # https://old.reddit.com/r/tmux/comments/mesrci/tmux_2_doesnt_seem_to_use_256_colors/ + #set -g status-bg colour99 + set -g @plugin 'tmux-plugins/tpm' + set -g @rose_pine_variant 'main' + set -g @plugin 'rose-pine/tmux' + + # easy-to-remember split pane commands + bind | split-window -h -c "#{pane_current_path}" + bind - split-window -v -c "#{pane_current_path}" + bind c new-window -c "#{pane_current_path}" + set -g @rose_pine_host 'on' + set -g @rose_pine_hostname_short 'on' + + set -g @rose_pine_user 'on' + set -g @rose_pine_directory 'on' + run '~/.tmux/plugins/tpm/tpm' + ''; + }; +} diff --git a/modules/home-manager/cli/zellij.nix b/modules/home-manager/cli/zellij.nix deleted file mode 100644 index 2f2c523..0000000 --- a/modules/home-manager/cli/zellij.nix +++ /dev/null @@ -1,11 +0,0 @@ -{pkgs, ...}: { - programs.zellij = { - enable = true; - enableBashIntegration = true; # Or zsh - settings = { - theme = "rose-pine"; - pane_frames = false; - show_startup_tips = false; - }; - }; -} diff --git a/modules/home-manager/desktop/symlink.nix b/modules/home-manager/desktop/symlink.nix index 806fc7d..d674e81 100644 --- a/modules/home-manager/desktop/symlink.nix +++ b/modules/home-manager/desktop/symlink.nix @@ -10,10 +10,7 @@ in { source = link "${dots}/waybar"; recursive = true; }; - # xdg.configFile."kitty" = { - # source = link "${dots}/kitty"; - # recursive = true; - # }; + xdg.configFile."wofi" = { source = link "${dots}/wofi"; recursive = true; @@ -22,4 +19,8 @@ in { source = link "${dots}/mako"; recursive = true; }; + xdg.configFile."zellij" = { + source = link "${dots}/zellij"; + recursive = true; + }; } diff --git a/modules/home-manager/pkgs.nix b/modules/home-manager/pkgs.nix index 0462242..629388e 100644 --- a/modules/home-manager/pkgs.nix +++ b/modules/home-manager/pkgs.nix @@ -39,9 +39,8 @@ wofi mako feh - kitty librewolf - + zellij element-desktop piper libratbag diff --git a/modules/home-manager/stylix.nix b/modules/home-manager/stylix.nix index dfe7e4d..654dcc2 100644 --- a/modules/home-manager/stylix.nix +++ b/modules/home-manager/stylix.nix @@ -10,6 +10,9 @@ enable = true; targets.firefox.enable = false; targets.zen-browser.enable = false; + targets.zellij.enable = false; + targets.tmux.enable = false; + targets.kitty.enable = false; base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine.yaml"; fonts = { diff --git a/modules/nixos/common.nix b/modules/nixos/common.nix index 04cca80..6c9c65d 100644 --- a/modules/nixos/common.nix +++ b/modules/nixos/common.nix @@ -26,4 +26,10 @@ enable = true; enable32Bit = true; }; + networking.hosts = { + "192.168.1.69" = ["overlord"]; + "192.168.1.100" = ["beatrice"]; + "192.168.1.114" = ["archangel"]; + "49.13.170.223" = ["kittykat"]; + }; }