update and fix more config

This commit is contained in:
Ray Andrew 2025-11-29 00:44:35 -06:00
parent 182016e83a
commit 6a7fcef09d
Signed by: rayandrew
SSH key fingerprint: SHA256:XYrYrxF0Z3A72n8P/p6mqPRNQZT22F88XcLsG+kX4xw
23 changed files with 464 additions and 363 deletions

View file

@ -34,20 +34,49 @@ function sesh-list
sesh connect $session sesh connect $session
end end
# Keybinding: Alt-s function y
if functions -q fish_vi_key_bindings set tmp (mktemp -t "yazi-cwd.XXXXXX")
bind -M default \es sesh-sessions yazi $argv --cwd-file="$tmp"
bind -M insert \es sesh-sessions if read -z cwd < "$tmp"; and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
else builtin cd -- "$cwd"
bind \es sesh-sessions end
rm -f -- "$tmp"
end end
# Keybinding: Alt-t ###############
# Keybindings #
###############
# emacs + vim
set -g fish_key_bindings fish_hybrid_key_bindings
bind -M default \cx\ce edit_command_buffer
bind -M insert \cx\ce edit_command_buffer
bind -M visual \cx\ce edit_command_buffer
bind -M default \cp up-or-search
bind -M insert \cp up-or-search
bind -M visual \cp up-or-search
bind -M default \cn down-or-search
bind -M insert \cn down-or-search
bind -M visual \cn down-or-search
## Sesh keybindings: keybinding: C-\
if functions -q fish_vi_key_bindings if functions -q fish_vi_key_bindings
bind -M default \et sesh-list bind -M default \x1c sesh-list
bind -M insert \et sesh-list bind -M insert \x1c sesh-list
else else
bind \et sesh-list bind \x1c sesh-list
end end
# Keybinding: C-]
if functions -q fish_vi_key_bindings
bind -M default \c] sesh-sessions
bind -M insert \c] sesh-sessions
else
bind \c] sesh-sessions
end
alias vim "nvim" alias vim "nvim"

View file

@ -8,8 +8,12 @@ gtk-adwaita = false
font-family = Consolas font-family = Consolas
font-size = 14 font-size = 14
app-notifications = no-clipboard-copy app-notifications = no-clipboard-copy
macos-option-as-alt = left
theme = nightfox theme = nightfox
macos-option-as-alt = left
keybind = alt+left=unbind
keybind = alt+right=unbind
# theme = gruber-darker # theme = gruber-darker
# theme = xcodelighthc # theme = xcodelighthc
# theme = zenburned # theme = zenburned

View file

@ -57,7 +57,7 @@ yabai_key { key = 'm', commands = { 'space --toggle mission-control' } }
yabai_key { key = 'p', commands = { 'window --toggle pip' } } yabai_key { key = 'p', commands = { 'window --toggle pip' } }
yabai_key { key = 'g', commands = { 'space --toggle padding', 'space --toggle gap' } } yabai_key { key = 'g', commands = { 'space --toggle padding', 'space --toggle gap' } }
yabai_key { key = 'r', commands = { 'space --rotate 90' } } yabai_key { key = 'r', commands = { 'space --rotate 90' } }
yabai_key { key = 't', commands = { 'window --toggle float', 'window --grid 4:4:1:1:2:2' } } yabai_key { key = 'space', commands = { 'window --toggle float', 'window --grid 4:4:1:1:2:2' } }
yabai_key { key = "'", commands = { 'space --layout stack' } } yabai_key { key = "'", commands = { 'space --layout stack' } }
yabai_key { key = ';', commands = { 'space --layout bsp' } } yabai_key { key = ';', commands = { 'space --layout bsp' } }
@ -115,22 +115,22 @@ yabai_key { mods = { 'ctrl' }, key = 'h', message = 'Move space to left display'
yabai_key { mods = { 'ctrl' }, key = 'l', message = 'Move space to right display', commands = { 'space --display east' } } yabai_key { mods = { 'ctrl' }, key = 'l', message = 'Move space to right display', commands = { 'space --display east' } }
-- create new space and move window to it -- create new space and move window to it
keymap.super { -- keymap.super {
key = 'n', -- key = 'n',
mods = { 'shift' }, -- mods = { 'shift' },
message = 'Create new space and move window', -- message = 'Create new space and move window',
fn = function() -- fn = function()
os.execute(yabai_cmd .. ' -m space --create') -- os.execute(yabai_cmd .. ' -m space --create')
hs.timer.usleep(100000) -- 100ms -- hs.timer.usleep(100000) -- 100ms
--
local index = yabai_query('--spaces --display', '\'map(select(."is-native-fullscreen" == false))[-1].index\'') -- local index = yabai_query('--spaces --display', '\'map(select(."is-native-fullscreen" == false))[-1].index\'')
--
if index and index ~= '' then -- if index and index ~= '' then
os.execute(yabai_cmd .. ' -m window --space ' .. index) -- os.execute(yabai_cmd .. ' -m window --space ' .. index)
os.execute(yabai_cmd .. ' -m space --focus ' .. index) -- os.execute(yabai_cmd .. ' -m space --focus ' .. index)
end -- end
end, -- end,
} -- }
-- split type - use insert direction to control next window placement -- split type - use insert direction to control next window placement
-- yabai_key { key = 'v', commands = { 'window --insert east' } } -- yabai_key { key = 'v', commands = { 'window --insert east' } }
@ -191,3 +191,55 @@ resize_mode:bind({}, 'e', function()
os.execute(yabai_cmd .. ' -m space --balance') os.execute(yabai_cmd .. ' -m space --balance')
resize_mode:exit() resize_mode:exit()
end) end)
-- Toggle notes scratchpad
keymap.super {
key = 'n',
message = 'Toggle notes scratchpad',
fn = function()
local result = yabai_query('--windows', '\'.[] | select(.scratchpad == "notes") | .id\'')
if result == '' then
local notes_dir = os.getenv 'HOME' .. '/NPersonal'
os.execute('/etc/profiles/per-user/rayandrew/bin/kitty --title notes --directory ' .. notes_dir .. ' &')
hs.timer.usleep(200000)
end
-- Toggle the scratchpad
os.execute(yabai_cmd .. ' -m window --toggle notes')
end,
}
keymap.super {
key = 't',
message = 'Toggle terminal scratchpad',
fn = function()
local result = yabai_query('--windows', '\'.[] | select(.scratchpad == "term") | .id\'')
if result == '' then
local home_dir = os.getenv 'HOME'
os.execute('/etc/profiles/per-user/rayandrew/bin/kitty --title floaterm --directory ' .. home_dir .. ' &')
hs.timer.usleep(200000)
end
-- Toggle the scratchpad
os.execute(yabai_cmd .. ' -m window --toggle term')
end,
}
-- keymap.super {
-- key = 'e',
-- message = 'Toggle explorer scratchpad',
-- fn = function()
-- local result = yabai_query('--windows', '\'.[] | select(.scratchpad == "explorer") | .id\'')
--
-- if result == '' then
-- local home_dir = os.getenv('HOME')
-- os.execute('/etc/profiles/per-user/rayandrew/bin/kitty -o close_on_child_death=yes --title explorer --directory ' .. home_dir .. ' -e yazi &')
-- hs.timer.usleep(200000)
-- end
--
-- -- Toggle the scratchpad
-- os.execute(yabai_cmd .. ' -m window --toggle explorer')
-- end,
-- }

31
config/kitty/kitty.conf Normal file
View file

@ -0,0 +1,31 @@
modify_font cell_height 1.1
font_family Consolas
font_size 12.000000
close_on_child_death yes
confirm_os_window_close 0
macos_option_as_alt yes
background #062329
foreground #d1b897
# cursor-color #ffffff
# cursor-text #d1b897
selection_background #0000ff
selection_foreground #d1b897
color0 #062329
# color1 #0b3335
# color2 #0000ff
color3 #44b340
color4 #8cde94
color5 #d1b897
color6 #c1d1e3
color7 #ffffff
color8 #626880
color9 #e67172
color10 #8ec772
color11 #d9ba73
color12 #7b9ef0
color13 #f2a4db
color14 #5abfb5
color15 #b5bfe2

View file

@ -129,6 +129,7 @@ later(function()
win_options = { win_options = {
winbar = '%!v:lua.get_oil_winbar()', winbar = '%!v:lua.get_oil_winbar()',
}, },
float = { float = {
padding = 2, padding = 2,
max_width = 0, max_width = 0,
@ -148,6 +149,7 @@ later(function()
keymaps = { keymaps = {
['q'] = 'actions.close', ['q'] = 'actions.close',
['<C-c>'] = 'actions.close', ['<C-c>'] = 'actions.close',
['D'] = 'dd',
-- Emacs-like navigation (up/down) -- Emacs-like navigation (up/down)
['<C-p>'] = 'k', ['<C-p>'] = 'k',
['<C-n>'] = 'j', ['<C-n>'] = 'j',
@ -583,8 +585,9 @@ map('v', '<C-k>', function() require('tmux').move_top() end, 'Move to top tmux p
-- Terminal mode -- Terminal mode
map('t', '<C-h>', function() require('tmux').move_left() end, 'Move to left tmux pane') map('t', '<C-h>', function() require('tmux').move_left() end, 'Move to left tmux pane')
map('t', '<C-l>', function() require('tmux').move_right() end, 'Move to right tmux pane') map('t', '<C-l>', function() require('tmux').move_right() end, 'Move to right tmux pane')
map('t', '<C-j>', function() require('tmux').move_bottom() end, 'Move to bottom tmux pane') -- C-j is Shift+Enter in terminal mode, so we avoid mapping it
map('t', '<C-k>', function() require('tmux').move_top() end, 'Move to top tmux pane') -- map('t', '<C-j>', function() require('tmux').move_bottom() end, 'Move to bottom tmux pane')
-- map('t', '<C-k>', function() require('tmux').move_top() end, 'Move to top tmux pane')
map('t', '<C-q>', '<C-\\><C-n>', 'Unfocus terminal and return to editor') map('t', '<C-q>', '<C-\\><C-n>', 'Unfocus terminal and return to editor')
-- Auto commands -- Auto commands

View file

@ -4,6 +4,7 @@
---@field respect_gitignore? boolean Respect .gitignore files when listing matches (default: true) ---@field respect_gitignore? boolean Respect .gitignore files when listing matches (default: true)
---@field on_directory_enter? function Optional callback when entering a directory without selecting a file ---@field on_directory_enter? function Optional callback when entering a directory without selecting a file
---@field keymaps? FindFileKeymaps Keymap configuration ---@field keymaps? FindFileKeymaps Keymap configuration
---@field strip_prefixes? string[] List of prefixes to strip from paths (e.g., "oil://")
---@class FindFileKeymaps ---@class FindFileKeymaps
---@field next string Cycle to next candidate ---@field next string Cycle to next candidate
@ -22,12 +23,16 @@
local M = {} local M = {}
---@type string[]
local default_strip_prefixes = { 'oil://' }
---@type FindFileConfig ---@type FindFileConfig
local config = { local config = {
max_matches = 8, max_matches = 8,
auto_cd = true, auto_cd = true,
respect_gitignore = true, respect_gitignore = true,
on_directory_enter = nil, on_directory_enter = nil,
strip_prefixes = {},
keymaps = { keymaps = {
next = '<C-n>', next = '<C-n>',
prev = '<C-p>', prev = '<C-p>',
@ -42,7 +47,33 @@ local config = {
---Setup emacs-find-file with custom configuration ---Setup emacs-find-file with custom configuration
---@param opts FindFileConfig|nil Configuration options ---@param opts FindFileConfig|nil Configuration options
function M.setup(opts) config = vim.tbl_deep_extend('force', config, opts or {}) end function M.setup(opts)
config = vim.tbl_deep_extend('force', config, opts or {})
-- Merge user prefixes with defaults (user prefixes take priority by being checked first)
local merged = {}
local seen = {}
for _, prefix in ipairs(config.strip_prefixes or {}) do
if not seen[prefix] then
table.insert(merged, prefix)
seen[prefix] = true
end
end
for _, prefix in ipairs(default_strip_prefixes) do
if not seen[prefix] then
table.insert(merged, prefix)
seen[prefix] = true
end
end
config.strip_prefixes = merged
end
---Get all prefixes to strip (merged config + defaults)
---@return string[] prefixes
local function get_strip_prefixes()
local prefixes = config.strip_prefixes or {}
if #prefixes > 0 then return prefixes end
return default_strip_prefixes
end
---Check if a path should be ignored based on gitignore ---Check if a path should be ignored based on gitignore
---@param path string Full path to check ---@param path string Full path to check
@ -79,6 +110,14 @@ end
---@return string dir Directory path ---@return string dir Directory path
---@return string filter Filter/filename component ---@return string filter Filter/filename component
local function parse_path(input) local function parse_path(input)
-- Strip configured prefixes
for _, prefix in ipairs(get_strip_prefixes()) do
if input:sub(1, #prefix) == prefix then
input = input:sub(#prefix + 1)
break
end
end
local expanded = vim.fn.expand(input) local expanded = vim.fn.expand(input)
if expanded == '' or expanded == '~' then return vim.fn.expand '~', '' end if expanded == '' or expanded == '~' then return vim.fn.expand '~', '' end
@ -131,9 +170,27 @@ local function get_matches(dir, filter, override_respect)
return matches return matches
end end
---Strip configured prefixes from a path
---@param path string Input path
---@return string path Path with prefix stripped
local function strip_prefix(path)
for _, prefix in ipairs(get_strip_prefixes()) do
if path:sub(1, #prefix) == prefix then
local stripped = path:sub(#prefix + 1)
-- Handle double slashes (e.g., oil:///path -> /path, not //path)
if stripped:sub(1, 2) == '//' then stripped = stripped:sub(2) end
return stripped
end
end
return path
end
---Open emacs-style find-file interface starting from a specific path ---Open emacs-style find-file interface starting from a specific path
---@param start_path string|nil Starting directory path ---@param start_path string|nil Starting directory path
function M.open_dir(start_path) function M.open_dir(start_path)
-- Strip any configured prefixes from start_path
if start_path then start_path = strip_prefix(start_path) end
local prev_win = vim.api.nvim_get_current_win() local prev_win = vim.api.nvim_get_current_win()
local input_buf = vim.api.nvim_create_buf(false, true) local input_buf = vim.api.nvim_create_buf(false, true)
@ -516,7 +573,7 @@ end
---Open emacs-style find-file interface from current buffer's directory ---Open emacs-style find-file interface from current buffer's directory
function M.open() function M.open()
local current_file = vim.api.nvim_buf_get_name(0) local current_file = strip_prefix(vim.api.nvim_buf_get_name(0))
local start_dir local start_dir
if current_file == '' then if current_file == '' then
@ -527,7 +584,9 @@ function M.open()
start_dir = vim.fn.fnamemodify(current_file, ':p:h') start_dir = vim.fn.fnamemodify(current_file, ':p:h')
end end
M.open_dir(start_dir .. '/') -- Ensure single trailing slash
start_dir = start_dir:gsub('/+$', '') .. '/'
M.open_dir(start_dir)
end end
return M return M

View file

@ -1,7 +1,7 @@
[[session]] [[session]]
name = "Downloads" name = "Downloads"
path = "~/Downloads" path = "~/Downloads"
startup_command = "ls" startup_command = "yazi"
[[session]] [[session]]
name = "dotfiles" name = "dotfiles"

View file

@ -33,16 +33,20 @@ yabai -m config active_window_border_color 0xff775759
yabai -m config normal_window_border_color 0xff555555 yabai -m config normal_window_border_color 0xff555555
yabai -m config insert_feedback_color 0xffd75f5f yabai -m config insert_feedback_color 0xffd75f5f
yabai -m rule --add app="^System Settings$" manage=off yabai -m rule --add app="^(LuLu|Calculator|Software Update|Dictionary|VLC|System Preferences|System Settings|zoom.us|Photo Booth|Archive Utility|Python|LibreOffice|App Store|Steam|Alfred|Activity Monitor)$" manage=off
yabai -m rule --add app="^Archive Utility$" manage=off yabai -m rule --add label="Finder Dialogs" app="^Finder$" title="(Co(py|nnect)|Move|Info|Pref)" manage=off
yabai -m rule --add app="^Wally$" manage=off # yabai -m rule --add label="Finder Main" app="^Finder$" manage=on layer=above
yabai -m rule --add app="^Pika$" manage=off yabai -m rule --add label="Safari" app="^Safari$" title="^(General|(Tab|Password|Website|Extension)s|AutoFill|Se(arch|curity)|Privacy|Advance)$" manage=off
yabai -m rule --add app="^balenaEtcher$" manage=off yabai -m rule --add label="About This Mac" app="System Information" title="About This Mac" manage=off
yabai -m rule --add app="^Creative Cloud$" manage=off yabai -m rule --add label="Select file to save to" app="^Inkscape$" title="Select file to save to" manage=off
yabai -m rule --add app="^Logi Options$" manage=off
yabai -m rule --add app="^Alfred Preferences$" manage=off
yabai -m rule --add app="Raycast" manage=off yabai -m rule --add app="Raycast" manage=off
yabai -m rule --add app="^Music$" manage=off yabai -m rule --add app="^Pika$" manage=off
# Scratchpad
yabai -m rule --add app="kitty" title="notes" scratchpad="notes" grid="6:6:1:1:4:4"
yabai -m rule --add app="kitty" title="floaterm" scratchpad="term" grid="6:6:1:1:4:4"
yabai -m rule --add app="kitty$" title="explorer" scratchpad="explorer" grid="6:6:1:1:4:4"
# yabai -m rule --add app="Ghostty" title="notes" scratchpad="notes" grid="6:6:1:1:4:4"
yabai-create-space yabai-create-space

1
config/yazi/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
plugins

7
config/yazi/.luarc.json Normal file
View file

@ -0,0 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json",
"runtime.version": "Lua 5.4",
"workspace.library": [
"~/.config/yazi/plugins/types.yazi/",
],
}

3
config/yazi/init.lua Normal file
View file

@ -0,0 +1,3 @@
require('full-border'):setup {
type = ui.Border.ROUNDED,
}

18
config/yazi/keymap.toml Normal file
View file

@ -0,0 +1,18 @@
[[mgr.prepend_keymap]]
on = [ "c", "m" ]
run = "plugin chmod"
desc = "Chmod on selected files"
[[mgr.prepend_keymap]]
on = "+"
run = "plugin zoom 1"
desc = "Zoom in hovered file"
[[mgr.prepend_keymap]]
on = "_"
run = "plugin zoom -1"
desc = "Zoom out hovered file"
[[plugin.prepend_previewers]]
mime = "image/{jpeg,png,webp}"
run = "zoom 5"

22
config/yazi/package.toml Normal file
View file

@ -0,0 +1,22 @@
[[plugin.deps]]
use = "yazi-rs/plugins:chmod"
rev = "eaf6920"
hash = "5b2eb0cc2050cec1e4de83cfa51a5b90"
[[plugin.deps]]
use = "yazi-rs/plugins:zoom"
rev = "eaf6920"
hash = "9dee2bf990ea941ccf67df74bca45468"
[[plugin.deps]]
use = "yazi-rs/plugins:types"
rev = "eaf6920"
hash = "1e047e1b13b5e3fc6ab1f5d0d04a14e2"
[[plugin.deps]]
use = "yazi-rs/plugins:full-border"
rev = "eaf6920"
hash = "3996fc74044bc44144b323686f887e1"
[flavor]
deps = []

3
config/yazi/yazi.toml Normal file
View file

@ -0,0 +1,3 @@
[preview]
max_width = 2000
max_height = 3000

View file

@ -72,6 +72,7 @@
"https://ghostty.cachix.org" "https://ghostty.cachix.org"
"https://rayandrew.cachix.org" "https://rayandrew.cachix.org"
"https://devenv.cachix.org" "https://devenv.cachix.org"
"https://yazi.cachix.org"
]; ];
# allow building and pushing of laptop config from desktop # allow building and pushing of laptop config from desktop
trusted-users = [ user ]; trusted-users = [ user ];
@ -80,6 +81,7 @@
"ghostty.cachix.org-1:QB389yTa6gTyneehvqG58y0WnHjQOqgnA+wBnpWWxns=" "ghostty.cachix.org-1:QB389yTa6gTyneehvqG58y0WnHjQOqgnA+wBnpWWxns="
"rayandrew.cachix.org-1:kJnvdWgUyErPGaQWgh/yyu91szgRYD+V/WQ4Dbc4n9M=" "rayandrew.cachix.org-1:kJnvdWgUyErPGaQWgh/yyu91szgRYD+V/WQ4Dbc4n9M="
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
"yazi.cachix.org-1:Dcdz63NZKfvUCbDGngQDAZq6kOroIrFoyO064uvLh8k="
]; ];
}; };
# // lib.optionalAttrs (config.nix.package.pname == "lix") { # // lib.optionalAttrs (config.nix.package.pname == "lix") {

View file

@ -3,16 +3,16 @@
"brew-src": { "brew-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1758543057, "lastModified": 1761551821,
"narHash": "sha256-lw3V2jOGYphUFHYQ5oARcb6urlbNpUCLJy1qhsGdUmc=", "narHash": "sha256-N3Zj73TAxclhLGgADbPVwcVrhYIBKUgAxjfQuOXre6s=",
"owner": "Homebrew", "owner": "Homebrew",
"repo": "brew", "repo": "brew",
"rev": "5b236456eb93133c2bd0d60ef35ed63f1c0712f6", "rev": "8f6719274133c5bcc24c058c5a6bcbb3b0cd48b3",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "Homebrew", "owner": "Homebrew",
"ref": "4.6.12", "ref": "4.6.19",
"repo": "brew", "repo": "brew",
"type": "github" "type": "github"
} }
@ -39,11 +39,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1758287904, "lastModified": 1764350888,
"narHash": "sha256-IGmaEf3Do8o5Cwp1kXBN1wQmZwQN3NLfq5t4nHtVtcU=", "narHash": "sha256-6Rp18zavTlnlZzcoLoBTJMBahL2FycVkw2rAEs3cQvo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "67ff9807dd148e704baadbd4fd783b54282ca627", "rev": "2055a08fd0e2fd41318279a5355eb8a161accf26",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -71,11 +71,11 @@
"flake-compat_2": { "flake-compat_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1747046372, "lastModified": 1761588595,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -139,6 +139,24 @@
"type": "indirect" "type": "indirect"
} }
}, },
"flake-utils_3": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"ghostty": { "ghostty": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
@ -148,11 +166,11 @@
"zon2nix": "zon2nix" "zon2nix": "zon2nix"
}, },
"locked": { "locked": {
"lastModified": 1760583877, "lastModified": 1764339838,
"narHash": "sha256-zbmESqyuNf6M4jno2+dvpXsorq1QHJNQtnNZ9LP2R3g=", "narHash": "sha256-JfC8yW84+cFTp6082MdXtCAc7I3h9P4tGJS2gCDraMs=",
"owner": "ghostty-org", "owner": "ghostty-org",
"repo": "ghostty", "repo": "ghostty",
"rev": "5a9bd0e49ef11499eb0ccb63725cc882b93356e0", "rev": "9baf37a9b2a1119c697b0eabf32391bfb41ef287",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -170,11 +188,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760392170, "lastModified": 1763988335,
"narHash": "sha256-WftxJgr2MeDDFK47fQKywzC72L2jRc/PWcyGdjaDzkw=", "narHash": "sha256-QlcnByMc8KBjpU37rbq5iP7Cp97HvjRP0ucfdh+M4Qc=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "46d55f0aeb1d567a78223e69729734f3dca25a85", "rev": "50b9238891e388c9fdc6a5c49e49c42533a1b5ce",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -211,11 +229,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760500983, "lastModified": 1764361670,
"narHash": "sha256-zfY4F4CpeUjTGgecIJZ+M7vFpwLc0Gm9epM/iMQd4w8=", "narHash": "sha256-jgWzgpIaHbL3USIq0gihZeuy1lLf2YSfwvWEwnfAJUw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "c53e65ec92f38d30e3c14f8d628ab55d462947aa", "rev": "780be8ef503a28939cf9dc7996b48ffb1a3e04c6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -232,11 +250,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1752603129, "lastModified": 1762964643,
"narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=", "narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b", "rev": "827f2a23373a774a8805f84ca5344654c31f354b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -248,11 +266,11 @@
"homebrew-brewsci-bio": { "homebrew-brewsci-bio": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1760374659, "lastModified": 1763952709,
"narHash": "sha256-j5cjB9AaDtpqiWCcp+VmgudQ274DepjkwGCb5yOG4+8=", "narHash": "sha256-i7o9P+nUUZ2PDhsvEmKpGUckZIAG8f24Rdhb/QJanOo=",
"owner": "brewsci", "owner": "brewsci",
"repo": "homebrew-bio", "repo": "homebrew-bio",
"rev": "e5964fddfa4894549db328da95132229e0e74936", "rev": "0507e238cfdfc79312a75c49a192f209ba94f509",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -264,11 +282,11 @@
"homebrew-cask": { "homebrew-cask": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1760637639, "lastModified": 1764382036,
"narHash": "sha256-HOAVCudwyIXT6kS2toRsk5xBpcdFeFvJdwusBImi44U=", "narHash": "sha256-9OF4UOfrv4kjS2tECQ9/Qu3n+HlHDSok2MMsGnqP4OY=",
"owner": "homebrew", "owner": "homebrew",
"repo": "homebrew-cask", "repo": "homebrew-cask",
"rev": "ae9776cc5e15c8f1e78286995b5ba4553a779171", "rev": "e436b86c3cf7333b3b49bd8c7f1b6a010e387f32",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -280,11 +298,11 @@
"homebrew-core": { "homebrew-core": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1760638362, "lastModified": 1764386794,
"narHash": "sha256-ho+MbgGrQ9SNCb1nRAAJKG7R19UdAswpovh3pILV+74=", "narHash": "sha256-It4d3ZNkNZxDCIod/fyR/iWnBAT4Tk9lXoss8nvHUy8=",
"owner": "homebrew", "owner": "homebrew",
"repo": "homebrew-core", "repo": "homebrew-core",
"rev": "14dbbc218025ca2ea982493fefdd681a504fc3e1", "rev": "12c8f61e4b72718005e6774cf85a526a176b537a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -312,11 +330,11 @@
"homebrew-emacs-plus": { "homebrew-emacs-plus": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1759655759, "lastModified": 1764008099,
"narHash": "sha256-YvrVSoT1wGraYPP5OtaULYiboKEjRWWOXqjlQs7iZVE=", "narHash": "sha256-8Mg5Su0WJGJ9hKqpr0r53iKuh6DHRuvfQqD0V4IN2Ck=",
"owner": "d12frosted", "owner": "d12frosted",
"repo": "homebrew-emacs-plus", "repo": "homebrew-emacs-plus",
"rev": "158df2e4f970e60ab9b3514a4ec64bf9dc985fcf", "rev": "8c811e9931a213d78baa8e443244d31b7c8771c3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -371,11 +389,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760338583, "lastModified": 1764161084,
"narHash": "sha256-IGwy02SH5K2hzIFrKMRsCmyvwOwWxrcquiv4DbKL1S4=", "narHash": "sha256-HN84sByg9FhJnojkGGDSrcjcbeioFWoNXfuyYfJ1kBE=",
"owner": "nix-darwin", "owner": "nix-darwin",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "9a9ab01072f78823ca627ae5e895e40d493c3ecf", "rev": "e95de00a471d07435e0527ff4db092c84998698e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -390,11 +408,11 @@
"brew-src": "brew-src" "brew-src": "brew-src"
}, },
"locked": { "locked": {
"lastModified": 1758598228, "lastModified": 1761927470,
"narHash": "sha256-qr60maXGbZ4FX5tejPRI3nr0bnRTnZ3AbbbfO6/6jq4=", "narHash": "sha256-KsFDGRGD8j1R6TvJ4HkebKsh3HXLY0XazanLrhO3wqE=",
"owner": "zhaofengli", "owner": "zhaofengli",
"repo": "nix-homebrew", "repo": "nix-homebrew",
"rev": "f36e5db56e117f7df701ab152d0d2036ea85218c", "rev": "3cae36b3a17b09a66435291619dce8cf2c4728ca",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -410,11 +428,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760241904, "lastModified": 1763870992,
"narHash": "sha256-OD7QnaGEVNdukYEbJbUNWPsvnDrpbZOZxVIk6Pt9Jhw=", "narHash": "sha256-NPyc76Wxmv/vAsXJ8F+/8fXECHYcv2YGSqdiSHp/F/A=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "c9f5ea45f25652ec2f771f9426ccacb21cbbaeaa", "rev": "d7423982c7a26586aa237d130b14c8b302c7a367",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -425,11 +443,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1760106635, "lastModified": 1764328224,
"narHash": "sha256-2GoxVaKWTHBxRoeUYSjv0AfSOx4qw5CWSFz2b+VolKU=", "narHash": "sha256-hFyF1XQd+XrRx7WZCrGJp544dykexD8Q5SrJJZpEQYg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "9ed85f8afebf2b7478f25db0a98d0e782c0ed903", "rev": "d62603a997438e19182af69d3ce7be07565ecad4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -457,11 +475,11 @@
"nixpkgs": "nixpkgs_6" "nixpkgs": "nixpkgs_6"
}, },
"locked": { "locked": {
"lastModified": 1760576526, "lastModified": 1764291786,
"narHash": "sha256-PdxUxGacfkSC8e+FBTuYEWHnkmWyVWdUWgzwh/LG6+M=", "narHash": "sha256-iPnM7g8x4kAcInIkO39JM9l/rnLaULxLOX5TCKZAeoc=",
"owner": "bandithedoge", "owner": "bandithedoge",
"repo": "nixpkgs-firefox-darwin", "repo": "nixpkgs-firefox-darwin",
"rev": "b6dbc82afbb2475690b5e98a277eca13adae6fd2", "rev": "aa8cce83f55e8c70b730c2ea87465c9e7def6f77",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -517,11 +535,11 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1760524057, "lastModified": 1764242076,
"narHash": "sha256-EVAqOteLBFmd7pKkb0+FIUyzTF61VKi7YmvP1tw4nEw=", "narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "544961dfcce86422ba200ed9a0b00dd4b1486ec5", "rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -547,6 +565,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_7": {
"locked": {
"lastModified": 1763806073,
"narHash": "sha256-FHsEKDvfWpzdADWj99z7vBk4D716Ujdyveo5+A048aI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "878e468e02bfabeda08c79250f7ad583037f2227",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"disko": "disko", "disko": "disko",
@ -568,9 +602,31 @@
"nixpkgs-firefox-darwin": "nixpkgs-firefox-darwin", "nixpkgs-firefox-darwin": "nixpkgs-firefox-darwin",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"treefmt-nix": "treefmt-nix_2", "treefmt-nix": "treefmt-nix_2",
"yazi": "yazi",
"zen-browser": "zen-browser" "zen-browser": "zen-browser"
} }
}, },
"rust-overlay": {
"inputs": {
"nixpkgs": [
"yazi",
"nixpkgs"
]
},
"locked": {
"lastModified": 1763952169,
"narHash": "sha256-+PeDBD8P+NKauH+w7eO/QWCIp8Cx4mCfWnh9sJmy9CM=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "ab726555a9a72e6dc80649809147823a813fa95b",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"sops-nix": { "sops-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -578,11 +634,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760393368, "lastModified": 1764021963,
"narHash": "sha256-8mN3kqyqa2PKY0wwZ2UmMEYMcxvNTwLaOrrDsw6Qi4E=", "narHash": "sha256-1m84V2ROwNEbqeS9t37/mkry23GBhfMt8qb6aHHmjuc=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "ab8d56e85b8be14cff9d93735951e30c3e86a437", "rev": "c482a1c1bbe030be6688ed7dc84f7213f304f1ec",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -621,6 +677,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": { "treefmt-nix": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_4"
@ -646,11 +717,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760120816, "lastModified": 1762938485,
"narHash": "sha256-gq9rdocpmRZCwLS5vsHozwB6b5nrOBDNc2kkEaTXHfg=", "narHash": "sha256-AlEObg0syDl+Spi4LsZIBrjw+snSVU4T8MOeuZJUJjM=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "761ae7aff00907b607125b2f57338b74177697ed", "rev": "5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -659,6 +730,26 @@
"type": "github" "type": "github"
} }
}, },
"yazi": {
"inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_7",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1764381965,
"narHash": "sha256-kcDkRXkNaBnW4yGhv3LlHpu/ej2gXyCHcKwTescrwIw=",
"owner": "sxyazi",
"repo": "yazi",
"rev": "81ccdd8b645ebfa9471c2d8bb13a7c23abc0fe74",
"type": "github"
},
"original": {
"owner": "sxyazi",
"repo": "yazi",
"type": "github"
}
},
"zen-browser": { "zen-browser": {
"inputs": { "inputs": {
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
@ -667,11 +758,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760588585, "lastModified": 1764350280,
"narHash": "sha256-NufqXao2i6d7N1HFKp8hM8XAD8Q6s/zU2wNd065Ybus=", "narHash": "sha256-H8VpXvqEHll38N3YIaZUtqn7BSrq3SRfCL8idWvVRLw=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "5a651a6a3bb5c9bd694adbd2c34f55b4abff9a2c", "rev": "504383097cbd6793aa62d1ec2d90d67ce7e4542e",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -40,6 +40,9 @@
homebrew-brewsci-bio.flake = false; homebrew-brewsci-bio.flake = false;
homebrew-valgrind.url = "github:LouisBrunner/homebrew-valgrind"; homebrew-valgrind.url = "github:LouisBrunner/homebrew-valgrind";
homebrew-valgrind.flake = false; homebrew-valgrind.flake = false;
# tools
yazi.url = "github:sxyazi/yazi";
}; };
outputs = outputs =

View file

@ -40,6 +40,7 @@
enableBashIntegration = config.programs.bash.enable; enableBashIntegration = config.programs.bash.enable;
# enableFishIntegration = config.programs.fish.enable; # enableFishIntegration = config.programs.fish.enable;
enableZshIntegration = config.programs.zsh.enable; enableZshIntegration = config.programs.zsh.enable;
nix-direnv.enable = true;
}; };
gpg = { gpg = {
enable = true; enable = true;

View file

@ -17,8 +17,17 @@ in
lfs = { lfs = {
enable = true; enable = true;
}; };
userEmail = "rs@rs.ht"; settings = {
userName = "Ray Andrew"; user = {
name = "Ray Andrew";
email = "rs@rs.ht";
};
gpg.format = "ssh";
core.editor = "emacs";
credential.helper = "store --file ${home}/.git-credentials";
pull.rebase = true;
github.user = user;
};
signing = { signing = {
key = "${home}/.ssh/id_ed25519.pub"; key = "${home}/.ssh/id_ed25519.pub";
signByDefault = true; signByDefault = true;
@ -29,13 +38,6 @@ in
"*~" "*~"
"*.swp" "*.swp"
]; ];
extraConfig = {
gpg.format = "ssh";
core.editor = "emacs";
credential.helper = "store --file ${home}/.git-credentials";
pull.rebase = true;
github.user = user;
};
}; };
# programs.gh = { # programs.gh = {

View file

@ -2,6 +2,7 @@
config, config,
pkgs, pkgs,
lib, lib,
dots,
... ...
}: }:
{ {
@ -12,253 +13,10 @@
}; };
config = lib.mkIf config.custom.gui.kitty.enable { config = lib.mkIf config.custom.gui.kitty.enable {
programs.kitty = { home.packages = with pkgs; [
enable = true; kitty
font = { ];
package = pkgs.vista-fonts;
name = "Consolas";
size = 12.0;
};
shellIntegration = {
enableBashIntegration = true;
};
extraConfig = ''
modify_font cell_height 1.1
# modify_font cell_width 95%
text_composition_strategy legacy
background #062329 xdg.configFile."kitty".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/kitty";
foreground #d1b897
cursor-color #ffffff
cursor-text #d1b897
selection_background #0000ff
selection_foreground #d1b897
color0 #062329
# color1 #0b3335
# color2 #0000ff
color3 #44b340
color4 #8cde94
color5 #d1b897
color6 #c1d1e3
color7 #ffffff
color8 #626880
color9 #e67172
color10 #8ec772
color11 #d9ba73
color12 #7b9ef0
color13 #f2a4db
color14 #5abfb5
color15 #b5bfe2
'';
keybindings = {
# "CTRL+GRAVE_ACCENT" = "send_text all \x1b\x1f\x2a\x62\x1f";
# "SHIFT+CTRL+GRAVE_ACCENT" = "send_text all \x1b\x1f\x2a\x63\x1f";
# "CTRL+ALT+GRAVE_ACCENT" = "send_text all \x1b\x1f\x2a\x66\x1f";
# "SHIFT+CTRL+ALT+GRAVE_ACCENT" = "send_text all \x1b\x1f\x2a\x67\x1f";
# "CTRL+1" = "send_text all \x1b\x1f\x2b\x42\x1f";
# "SHIFT+CTRL+1" = "send_text all \x1b\x1f\x2b\x43\x1f";
# "CTRL+ALT+1" = "send_text all \x1b\x1f\x2b\x46\x1f";
# "SHIFT+CTRL+ALT+1" = "send_text all \x1b\x1f\x2b\x47\x1f";
# "CTRL+2" = "send_text all \x1b\x1f\x2c\x22\x1f";
# "SHIFT+CTRL+2" = "send_text all \x1b\x1f\x2c\x23\x1f";
# "CTRL+ALT+2" = "send_text all \x1b\x1f\x2c\x26\x1f";
# "SHIFT+CTRL+ALT+2" = "send_text all \x1b\x1f\x2c\x27\x1f";
# "CTRL+3" = "send_text all \x1b\x1f\x2c\x62\x1f";
# "SHIFT+CTRL+3" = "send_text all \x1b\x1f\x2c\x63\x1f";
# "CTRL+ALT+3" = "send_text all \x1b\x1f\x2c\x66\x1f";
# "SHIFT+CTRL+ALT+3" = "send_text all \x1b\x1f\x2c\x67\x1f";
# "CTRL+4" = "send_text all \x1b\x1f\x2d\x42\x1f";
# "SHIFT+CTRL+4" = "send_text all \x1b\x1f\x2d\x43\x1f";
# "CTRL+ALT+4" = "send_text all \x1b\x1f\x2d\x46\x1f";
# "SHIFT+CTRL+ALT+4" = "send_text all \x1b\x1f\x2d\x47\x1f";
# "CTRL+5" = "send_text all \x1b\x1f\x2e\x22\x1f";
# "SHIFT+CTRL+5" = "send_text all \x1b\x1f\x2e\x23\x1f";
# "CTRL+ALT+5" = "send_text all \x1b\x1f\x2e\x26\x1f";
# "SHIFT+CTRL+ALT+5" = "send_text all \x1b\x1f\x2e\x27\x1f";
# "CTRL+6" = "send_text all \x1b\x1f\x2e\x62\x1f";
# "SHIFT+CTRL+6" = "send_text all \x1b\x1f\x2e\x63\x1f";
# "CTRL+ALT+6" = "send_text all \x1b\x1f\x2e\x66\x1f";
# "SHIFT+CTRL+ALT+6" = "send_text all \x1b\x1f\x2e\x67\x1f";
# "CTRL+7" = "send_text all \x1b\x1f\x2f\x42\x1f";
# "SHIFT+CTRL+7" = "send_text all \x1b\x1f\x2f\x43\x1f";
# "CTRL+ALT+7" = "send_text all \x1b\x1f\x2f\x46\x1f";
# "SHIFT+CTRL+ALT+7" = "send_text all \x1b\x1f\x2f\x47\x1f";
# "CTRL+8" = "send_text all \x1b\x1f\x30\x22\x1f";
# "SHIFT+CTRL+8" = "send_text all \x1b\x1f\x30\x23\x1f";
# "CTRL+ALT+8" = "send_text all \x1b\x1f\x30\x26\x1f";
# "SHIFT+CTRL+ALT+8" = "send_text all \x1b\x1f\x30\x27\x1f";
# "CTRL+9" = "send_text all \x1b\x1f\x30\x62\x1f";
# "SHIFT+CTRL+9" = "send_text all \x1b\x1f\x30\x63\x1f";
# "CTRL+ALT+9" = "send_text all \x1b\x1f\x30\x66\x1f";
# "SHIFT+CTRL+ALT+9" = "send_text all \x1b\x1f\x30\x67\x1f";
# "CTRL+0" = "send_text all \x1b\x1f\x31\x42\x1f";
# "SHIFT+CTRL+0" = "send_text all \x1b\x1f\x31\x43\x1f";
# "CTRL+ALT+0" = "send_text all \x1b\x1f\x31\x46\x1f";
# "SHIFT+CTRL+ALT+0" = "send_text all \x1b\x1f\x31\x47\x1f";
# "CTRL+MINUS" = "send_text all \x1b\x1f\x32\x22\x1f";
# "SHIFT+CTRL+MINUS" = "send_text all \x1b\x1f\x32\x23\x1f";
# "CTRL+ALT+MINUS" = "send_text all \x1b\x1f\x32\x26\x1f";
# "SHIFT+CTRL+ALT+MINUS" = "send_text all \x1b\x1f\x32\x27\x1f";
# "CTRL+EQUAL" = "send_text all \x1b\x1f\x32\x62\x1f";
# "SHIFT+CTRL+EQUAL" = "send_text all \x1b\x1f\x32\x63\x1f";
# "CTRL+ALT+EQUAL" = "send_text all \x1b\x1f\x32\x66\x1f";
# "SHIFT+CTRL+ALT+EQUAL" = "send_text all \x1b\x1f\x32\x67\x1f";
# "SHIFT+BACKSPACE" = "send_text all \x1b\x1f\x33\x41\x1f";
# "CTRL+BACKSPACE" = "send_text all \x1b\x1f\x33\x42\x1f";
# "SHIFT+CTRL+BACKSPACE" = "send_text all \x1b\x1f\x33\x43\x1f";
# "SHIFT+ALT+BACKSPACE" = "send_text all \x1b\x1f\x33\x45\x1f";
# "CTRL+ALT+BACKSPACE" = "send_text all \x1b\x1f\x33\x46\x1f";
# "SHIFT+CTRL+ALT+BACKSPACE" = "send_text all \x1b\x1f\x33\x47\x1f";
# "CTRL+TAB" = "send_text all \x1b\x1f\x34\x22\x1f";
# "SHIFT+CTRL+TAB" = "send_text all \x1b\x1f\x34\x23\x1f";
# "CTRL+ALT+TAB" = "send_text all \x1b\x1f\x34\x26\x1f";
# "SHIFT+CTRL+ALT+TAB" = "send_text all \x1b\x1f\x34\x27\x1f";
# "SHIFT+CTRL+Q" = "send_text all \x1b\x1f\x34\x63\x1f";
# "SHIFT+CTRL+ALT+Q" = "send_text all \x1b\x1f\x34\x67\x1f";
# "SHIFT+CTRL+W" = "send_text all \x1b\x1f\x35\x43\x1f";
# "SHIFT+CTRL+ALT+W" = "send_text all \x1b\x1f\x35\x47\x1f";
# "SHIFT+CTRL+E" = "send_text all \x1b\x1f\x36\x23\x1f";
# "SHIFT+CTRL+ALT+E" = "send_text all \x1b\x1f\x36\x27\x1f";
# "SHIFT+CTRL+R" = "send_text all \x1b\x1f\x36\x63\x1f";
# "SHIFT+CTRL+ALT+R" = "send_text all \x1b\x1f\x36\x67\x1f";
# "SHIFT+CTRL+T" = "send_text all \x1b\x1f\x37\x43\x1f";
# "SHIFT+CTRL+ALT+T" = "send_text all \x1b\x1f\x37\x47\x1f";
# "SHIFT+CTRL+Y" = "send_text all \x1b\x1f\x38\x23\x1f";
# "SHIFT+CTRL+ALT+Y" = "send_text all \x1b\x1f\x38\x27\x1f";
# "SHIFT+CTRL+U" = "send_text all \x1b\x1f\x38\x63\x1f";
# "SHIFT+CTRL+ALT+U" = "send_text all \x1b\x1f\x38\x67\x1f";
# "SHIFT+CTRL+I" = "send_text all \x1b\x1f\x39\x43\x1f";
# "SHIFT+CTRL+ALT+I" = "send_text all \x1b\x1f\x39\x47\x1f";
# "SHIFT+CTRL+O" = "send_text all \x1b\x1f\x3a\x23\x1f";
# "SHIFT+CTRL+ALT+O" = "send_text all \x1b\x1f\x3a\x27\x1f";
# "SHIFT+CTRL+P" = "send_text all \x1b\x1f\x3a\x63\x1f";
# "SHIFT+CTRL+ALT+P" = "send_text all \x1b\x1f\x3a\x67\x1f";
# "CTRL+LEFT_BRACKET" = "send_text all \x1b\x1f\x3b\x42\x1f";
# "SHIFT+CTRL+LEFT_BRACKET" = "send_text all \x1b\x1f\x3b\x43\x1f";
# "CTRL+ALT+LEFT_BRACKET" = "send_text all \x1b\x1f\x3b\x46\x1f";
# "SHIFT+CTRL+ALT+LEFT_BRACKET" = "send_text all \x1b\x1f\x3b\x47\x1f";
# "CTRL+RIGHT_BRACKET" = "send_text all \x1b\x1f\x3c\x22\x1f";
# "SHIFT+CTRL+RIGHT_BRACKET" = "send_text all \x1b\x1f\x3c\x23\x1f";
# "CTRL+ALT+RIGHT_BRACKET" = "send_text all \x1b\x1f\x3c\x26\x1f";
# "SHIFT+CTRL+ALT+RIGHT_BRACKET" = "send_text all \x1b\x1f\x3c\x27\x1f";
# "SHIFT+ENTER" = "send_text all \x1b\x1f\x3c\x61\x1f";
# "CTRL+ENTER" = "send_text all \x1b\x1f\x3c\x62\x1f";
# "SHIFT+CTRL+ENTER" = "send_text all \x1b\x1f\x3c\x63\x1f";
# "SHIFT+ALT+ENTER" = "send_text all \x1b\x1f\x3c\x65\x1f";
# "CTRL+ALT+ENTER" = "send_text all \x1b\x1f\x3c\x66\x1f";
# "SHIFT+CTRL+ALT+ENTER" = "send_text all \x1b\x1f\x3c\x67\x1f";
# "SHIFT+CTRL+A" = "send_text all \x1b\x1f\x3e\x23\x1f";
# "SHIFT+CTRL+ALT+A" = "send_text all \x1b\x1f\x3e\x27\x1f";
# "SHIFT+CTRL+S" = "send_text all \x1b\x1f\x3e\x63\x1f";
# "SHIFT+CTRL+ALT+S" = "send_text all \x1b\x1f\x3e\x67\x1f";
# "SHIFT+CTRL+D" = "send_text all \x1b\x1f\x3f\x43\x1f";
# "SHIFT+CTRL+ALT+D" = "send_text all \x1b\x1f\x3f\x47\x1f";
# "SHIFT+CTRL+F" = "send_text all \x1b\x1f\x40\x23\x1f";
# "SHIFT+CTRL+ALT+F" = "send_text all \x1b\x1f\x40\x27\x1f";
# "SHIFT+CTRL+G" = "send_text all \x1b\x1f\x40\x63\x1f";
# "CTRL+ALT+G" = "send_text all \x1b\x1f\x40\x66\x1f";
# "SHIFT+CTRL+ALT+G" = "send_text all \x1b\x1f\x40\x67\x1f";
# "SHIFT+CTRL+H" = "send_text all \x1b\x1f\x41\x43\x1f";
# "SHIFT+CTRL+ALT+H" = "send_text all \x1b\x1f\x41\x47\x1f";
# "SHIFT+CTRL+J" = "send_text all \x1b\x1f\x42\x23\x1f";
# "SHIFT+CTRL+ALT+J" = "send_text all \x1b\x1f\x42\x27\x1f";
# "SHIFT+CTRL+K" = "send_text all \x1b\x1f\x42\x63\x1f";
# "SHIFT+CTRL+ALT+K" = "send_text all \x1b\x1f\x42\x67\x1f";
# "SHIFT+CTRL+L" = "send_text all \x1b\x1f\x43\x43\x1f";
# "SHIFT+CTRL+ALT+L" = "send_text all \x1b\x1f\x43\x47\x1f";
# "CTRL+SEMICOLON" = "send_text all \x1b\x1f\x44\x22\x1f";
# "SHIFT+CTRL+SEMICOLON" = "send_text all \x1b\x1f\x44\x23\x1f";
# "CTRL+ALT+SEMICOLON" = "send_text all \x1b\x1f\x44\x26\x1f";
# "SHIFT+CTRL+ALT+SEMICOLON" = "send_text all \x1b\x1f\x44\x27\x1f";
# "CTRL+APOSTROPHE" = "send_text all \x1b\x1f\x44\x62\x1f";
# "SHIFT+CTRL+APOSTROPHE" = "send_text all \x1b\x1f\x44\x63\x1f";
# "CTRL+ALT+APOSTROPHE" = "send_text all \x1b\x1f\x44\x66\x1f";
# "SHIFT+CTRL+ALT+APOSTROPHE" = "send_text all \x1b\x1f\x44\x67\x1f";
# "CTRL+BACKSLASH" = "send_text all \x1b\x1f\x46\x22\x1f";
# "SHIFT+CTRL+BACKSLASH" = "send_text all \x1b\x1f\x46\x23\x1f";
# "CTRL+ALT+BACKSLASH" = "send_text all \x1b\x1f\x46\x26\x1f";
# "SHIFT+CTRL+ALT+BACKSLASH" = "send_text all \x1b\x1f\x46\x27\x1f";
# "SHIFT+CTRL+Z" = "send_text all \x1b\x1f\x46\x63\x1f";
# "SHIFT+CTRL+ALT+Z" = "send_text all \x1b\x1f\x46\x67\x1f";
# "SHIFT+CTRL+X" = "send_text all \x1b\x1f\x47\x43\x1f";
# "SHIFT+CTRL+ALT+X" = "send_text all \x1b\x1f\x47\x47\x1f";
# "SHIFT+CTRL+C" = "send_text all \x1b\x1f\x48\x23\x1f";
# "SHIFT+CTRL+ALT+C" = "send_text all \x1b\x1f\x48\x27\x1f";
# "SHIFT+CTRL+V" = "send_text all \x1b\x1f\x48\x63\x1f";
# "SHIFT+CTRL+ALT+V" = "send_text all \x1b\x1f\x48\x67\x1f";
# "SHIFT+CTRL+B" = "send_text all \x1b\x1f\x49\x43\x1f";
# "SHIFT+CTRL+ALT+B" = "send_text all \x1b\x1f\x49\x47\x1f";
# "SHIFT+CTRL+N" = "send_text all \x1b\x1f\x4a\x23\x1f";
# "SHIFT+CTRL+ALT+N" = "send_text all \x1b\x1f\x4a\x27\x1f";
# "SHIFT+CTRL+M" = "send_text all \x1b\x1f\x4a\x63\x1f";
# "SHIFT+CTRL+ALT+M" = "send_text all \x1b\x1f\x4a\x67\x1f";
# "CTRL+COMMA" = "send_text all \x1b\x1f\x4b\x42\x1f";
# "SHIFT+CTRL+COMMA" = "send_text all \x1b\x1f\x4b\x43\x1f";
# "CTRL+ALT+COMMA" = "send_text all \x1b\x1f\x4b\x46\x1f";
# "SHIFT+CTRL+ALT+COMMA" = "send_text all \x1b\x1f\x4b\x47\x1f";
# "CTRL+PERIOD" = "send_text all \x1b\x1f\x4c\x22\x1f"; # d
# "SHIFT+CTRL+PERIOD" = "send_text all \x1b\x1f\x4c\x23\x1f"; # d
# "CTRL+ALT+PERIOD" = "send_text all \x1b\x1f\x4c\x26\x1f"; # d
# "SHIFT+CTRL+ALT+PERIOD" = "send_text all \x1b\x1f\x4c\x27\x1f"; # d
# "CTRL+SLASH" = "send_text all \x1b\x1f\x4c\x62\x1f";
# "SHIFT+CTRL+SLASH" = "send_text all \x1b\x1f\x4c\x63\x1f";
# "CTRL+ALT+SLASH" = "send_text all \x1b\x1f\x4c\x66\x1f";
# "SHIFT+CTRL+ALT+SLASH" = "send_text all \x1b\x1f\x4c\x67\x1f";
# "CTRL+SPACE" = "send_text all \x1b\x1f\x50\x22\x1f";
# "SHIFT+CTRL+SPACE" = "send_text all \x1b\x1f\x50\x23\x1f";
# "CTRL+ALT+SPACE" = "send_text all \x1b\x1f\x50\x26\x1f";
# "SHIFT+CTRL+ALT+SPACE" = "send_text all \x1b\x1f\x50\x27\x1f";
# "MENU" = "send_text all \x1b\x1f\x52\x20\x1f";
# "SHIFT+MENU" = "send_text all \x1b\x1f\x52\x21\x1f";
# "CTRL+MENU" = "send_text all \x1b\x1f\x52\x22\x1f";
# "SHIFT+CTRL+MENU" = "send_text all \x1b\x1f\x52\x23\x1f";
# "ALT+MENU" = "send_text all \x1b\x1f\x52\x24\x1f";
# "SHIFT+ALT+MENU" = "send_text all \x1b\x1f\x52\x25\x1f";
# "CTRL+ALT+MENU" = "send_text all \x1b\x1f\x52\x26\x1f";
# "SHIFT+CTRL+ALT+MENU" = "send_text all \x1b\x1f\x52\x27\x1f";
# "SHIFT+CTRL+UP" = "send_text all \x1b\x1f\x53\x43\x1f";
# "ALT+UP" = "send_text all \x1b\x1f\x53\x44\x1f";
# "SHIFT+ALT+UP" = "send_text all \x1b\x1f\x53\x45\x1f";
# "CTRL+ALT+UP" = "send_text all \x1b\x1f\x53\x46\x1f";
# "SHIFT+CTRL+ALT+UP" = "send_text all \x1b\x1f\x53\x47\x1f";
# "SHIFT+CTRL+DOWN" = "send_text all \x1b\x1f\x54\x23\x1f";
# "ALT+DOWN" = "send_text all \x1b\x1f\x54\x24\x1f";
# "SHIFT+ALT+DOWN" = "send_text all \x1b\x1f\x54\x25\x1f";
# "CTRL+ALT+DOWN" = "send_text all \x1b\x1f\x54\x26\x1f";
# "SHIFT+CTRL+ALT+DOWN" = "send_text all \x1b\x1f\x54\x27\x1f";
# "SHIFT+CTRL+LEFT" = "send_text all \x1b\x1f\x54\x63\x1f";
# "ALT+LEFT" = "send_text all \x1b\x1f\x54\x64\x1f";
# "SHIFT+ALT+LEFT" = "send_text all \x1b\x1f\x54\x65\x1f";
# "CTRL+ALT+LEFT" = "send_text all \x1b\x1f\x54\x66\x1f";
# "SHIFT+CTRL+ALT+LEFT" = "send_text all \x1b\x1f\x54\x67\x1f";
# "SHIFT+CTRL+RIGHT" = "send_text all \x1b\x1f\x55\x43\x1f";
# "ALT+RIGHT" = "send_text all \x1b\x1f\x55\x44\x1f";
# "SHIFT+ALT+RIGHT" = "send_text all \x1b\x1f\x55\x45\x1f";
# "CTRL+ALT+RIGHT" = "send_text all \x1b\x1f\x55\x46\x1f";
# "SHIFT+CTRL+ALT+RIGHT" = "send_text all \x1b\x1f\x55\x47\x1f";
# "SHIFT+CTRL+HOME" = "send_text all \x1b\x1f\x57\x43\x1f";
# "ALT+HOME" = "send_text all \x1b\x1f\x57\x44\x1f";
# "SHIFT+ALT+HOME" = "send_text all \x1b\x1f\x57\x45\x1f";
# "CTRL+ALT+HOME" = "send_text all \x1b\x1f\x57\x46\x1f";
# "SHIFT+CTRL+ALT+HOME" = "send_text all \x1b\x1f\x57\x47\x1f";
# "SHIFT+CTRL+END" = "send_text all \x1b\x1f\x58\x23\x1f";
# "ALT+END" = "send_text all \x1b\x1f\x58\x24\x1f";
# "SHIFT+ALT+END" = "send_text all \x1b\x1f\x58\x25\x1f";
# "CTRL+ALT+END" = "send_text all \x1b\x1f\x58\x26\x1f";
# "SHIFT+CTRL+ALT+END" = "send_text all \x1b\x1f\x58\x27\x1f";
# "SHIFT+PAGE_UP" = "send_text all \x1b\x1f\x58\x61\x1f";
# "SHIFT+CTRL+PAGE_UP" = "send_text all \x1b\x1f\x58\x63\x1f";
# "ALT+PAGE_UP" = "send_text all \x1b\x1f\x58\x64\x1f";
# "SHIFT+ALT+PAGE_UP" = "send_text all \x1b\x1f\x58\x65\x1f";
# "CTRL+ALT+PAGE_UP" = "send_text all \x1b\x1f\x58\x66\x1f";
# "SHIFT+CTRL+ALT+PAGE_UP" = "send_text all \x1b\x1f\x58\x67\x1f";
# "SHIFT+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x41\x1f";
# "SHIFT+CTRL+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x43\x1f";
# "ALT+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x44\x1f";
# "SHIFT+ALT+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x45\x1f";
# "CTRL+ALT+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x46\x1f";
# "SHIFT+CTRL+ALT+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x47\x1f";
};
};
}; };
} }

View file

@ -3,6 +3,7 @@
lib, lib,
pkgs, pkgs,
dots, dots,
inputs,
... ...
}: }:
{ {
@ -51,7 +52,6 @@
openconnect openconnect
fd fd
ripgrep ripgrep
yazi
tree tree
gnumake gnumake
texinfo texinfo
@ -64,6 +64,10 @@
ppkgs.numpy ppkgs.numpy
])) ]))
gum gum
(inputs.yazi.packages.${pkgs.stdenv.hostPlatform.system}.default.override {
_7zz = pkgs._7zz-rar; # Support for RAR extraction
})
imagemagick
] ]
++ lib.optionals pkgs.stdenv.isDarwin [ coreutils ] ++ lib.optionals pkgs.stdenv.isDarwin [ coreutils ]
++ (lib.attrValues config.custom.shell.packages); ++ (lib.attrValues config.custom.shell.packages);
@ -99,5 +103,6 @@
}; };
xdg.configFile."sesh".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/sesh"; xdg.configFile."sesh".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/sesh";
xdg.configFile."yazi".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/yazi";
}; };
} }

View file

@ -88,6 +88,7 @@
darwin.enable = true; darwin.enable = true;
ghostty.enable = true; ghostty.enable = true;
hammerspoon.enable = true; hammerspoon.enable = true;
kitty.enable = true;
}; };
}; };
} }

View file

@ -82,18 +82,20 @@
"flakes" "flakes"
]; ];
substituters = [ substituters = [
"https://hyprland.cachix.org"
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
"https://ghostty.cachix.org" "https://ghostty.cachix.org"
"https://rayandrew.cachix.org" "https://rayandrew.cachix.org"
"https://devenv.cachix.org"
"https://yazi.cachix.org"
]; ];
# allow building and pushing of laptop config from desktop # allow building and pushing of laptop config from desktop
trusted-users = [ user ]; trusted-users = [ user ];
trusted-public-keys = [ trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"ghostty.cachix.org-1:QB389yTa6gTyneehvqG58y0WnHjQOqgnA+wBnpWWxns=" "ghostty.cachix.org-1:QB389yTa6gTyneehvqG58y0WnHjQOqgnA+wBnpWWxns="
"rayandrew.cachix.org-1:kJnvdWgUyErPGaQWgh/yyu91szgRYD+V/WQ4Dbc4n9M=" "rayandrew.cachix.org-1:kJnvdWgUyErPGaQWgh/yyu91szgRYD+V/WQ4Dbc4n9M="
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
"yazi.cachix.org-1:Dcdz63NZKfvUCbDGngQDAZq6kOroIrFoyO064uvLh8k="
]; ];
}; };
# // lib.optionalAttrs (config.nix.package.pname == "lix") { # // lib.optionalAttrs (config.nix.package.pname == "lix") {