Compare commits
8 Commits
49e4f0e7ef
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| ced4c6e050 | |||
| c3197b86a9 | |||
| aa3e1cedce | |||
| 26461fbf13 | |||
| 03aebab782 | |||
| d3266d1c1d | |||
| b693e9d02c | |||
| ac8850ae00 |
4
darwin/brew_casks.txt
Normal file
4
darwin/brew_casks.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
alacritty
|
||||
font-roboto-mono
|
||||
openscad
|
||||
xquartz
|
||||
132
darwin/brew_packages.txt
Normal file
132
darwin/brew_packages.txt
Normal file
@@ -0,0 +1,132 @@
|
||||
aom
|
||||
bash
|
||||
brotli
|
||||
ca-certificates
|
||||
cairo
|
||||
capstone
|
||||
cdrtools
|
||||
clang-format
|
||||
cmake
|
||||
coreutils
|
||||
dtc
|
||||
fastfetch
|
||||
fish
|
||||
fontconfig
|
||||
freetype
|
||||
fribidi
|
||||
fzf
|
||||
gd
|
||||
gdk-pixbuf
|
||||
gettext
|
||||
giflib
|
||||
glib
|
||||
gmp
|
||||
gnutls
|
||||
graphite2
|
||||
graphviz
|
||||
gts
|
||||
harfbuzz
|
||||
highway
|
||||
htop
|
||||
icu4c@77
|
||||
imath
|
||||
jasper
|
||||
jpeg-turbo
|
||||
jpeg-xl
|
||||
jq
|
||||
json-glib
|
||||
krb5
|
||||
ldns
|
||||
libavif
|
||||
libcbor
|
||||
libdeflate
|
||||
libevent
|
||||
libfido2
|
||||
libidn2
|
||||
libkeccak
|
||||
liblinear
|
||||
libnghttp2
|
||||
libpng
|
||||
librsvg
|
||||
libslirp
|
||||
libssh
|
||||
libssh2
|
||||
libtasn1
|
||||
libtermkey
|
||||
libtiff
|
||||
libtool
|
||||
libtpms
|
||||
libunistring
|
||||
libusb
|
||||
libuv
|
||||
libvmaf
|
||||
libvterm
|
||||
libx11
|
||||
libxau
|
||||
libxcb
|
||||
libxcrypt
|
||||
libxdmcp
|
||||
libxext
|
||||
libxrender
|
||||
little-cms2
|
||||
llvm
|
||||
lmdb
|
||||
lua
|
||||
luajit
|
||||
luv
|
||||
lz4
|
||||
lzo
|
||||
m4
|
||||
mpdecimal
|
||||
msgpack
|
||||
navi
|
||||
ncurses
|
||||
neofetch
|
||||
neovim
|
||||
netpbm
|
||||
nettle
|
||||
ninja
|
||||
nmap
|
||||
ollama
|
||||
oniguruma
|
||||
openexr
|
||||
openjph
|
||||
openssh
|
||||
openssl@3
|
||||
p11-kit
|
||||
pango
|
||||
pcre2
|
||||
pipx
|
||||
pixman
|
||||
popt
|
||||
python@3.12
|
||||
python@3.13
|
||||
qemu
|
||||
readline
|
||||
samba
|
||||
screenresolution
|
||||
sdl2
|
||||
sha3sum
|
||||
snappy
|
||||
socat
|
||||
spicetify-cli
|
||||
sqlite
|
||||
swtpm
|
||||
talloc
|
||||
tdb
|
||||
tealdeer
|
||||
tevent
|
||||
tree
|
||||
tree-sitter
|
||||
unbound
|
||||
unibilium
|
||||
usbutils
|
||||
vde
|
||||
webp
|
||||
wget
|
||||
xorgproto
|
||||
xz
|
||||
yabai
|
||||
z3
|
||||
zstd
|
||||
zsync
|
||||
175
darwin/config.jsonc
Normal file
175
darwin/config.jsonc
Normal file
@@ -0,0 +1,175 @@
|
||||
{
|
||||
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||
"logo": {
|
||||
"type": "kitty-icat",
|
||||
"source": "~/Pictures/Avatar/avatar_no_bg.png",
|
||||
//"height": 15,
|
||||
"width": 40,
|
||||
"padding": {
|
||||
"top": 0,
|
||||
"left": 0
|
||||
}
|
||||
},
|
||||
"modules": [
|
||||
"break",
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "\u001b[90m┌──────────────────────Hardware──────────────────────┐"
|
||||
},
|
||||
{
|
||||
"type": "host",
|
||||
"key": " PC",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "cpu",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "gpu",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "memory",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "disk",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "memory",
|
||||
"key": "└ └",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
|
||||
},
|
||||
"break",
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "\u001b[90m┌──────────────────────Software──────────────────────┐"
|
||||
},
|
||||
{
|
||||
"type": "os",
|
||||
"key": " OS",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
{
|
||||
"type": "kernel",
|
||||
"key": "│ ├",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
{
|
||||
"type": "bios",
|
||||
"key": "│ ├",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
{
|
||||
"type": "packages",
|
||||
"key": "│ ├",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"key": "└ └",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
"break",
|
||||
{
|
||||
"type": "de",
|
||||
"key": " DE",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "lm",
|
||||
"key": "│ ├",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "wm",
|
||||
"key": "│ ├",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "wmtheme",
|
||||
"key": "│ ├",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "terminal",
|
||||
"key": "└ └",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
|
||||
},
|
||||
"break",
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "\u001b[90m┌─────────────────Uptime / Age / DT──────────────────┐"
|
||||
},
|
||||
{
|
||||
"type": "command",
|
||||
"key": " OS Age ",
|
||||
"keyColor": "magenta",
|
||||
"text": "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days"
|
||||
},
|
||||
{
|
||||
"type": "uptime",
|
||||
"key": " Uptime ",
|
||||
"keyColor": "magenta"
|
||||
},
|
||||
{
|
||||
"type": "datetime",
|
||||
"key": " DateTime ",
|
||||
"keyColor": "magenta"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
|
||||
},
|
||||
"break",
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "\u001b[90m┌─────────────────────Networking─────────────────────┐"
|
||||
},
|
||||
{
|
||||
"type": "publicip",
|
||||
"key": " Public ",
|
||||
"keyColor": "magenta"
|
||||
},
|
||||
{
|
||||
"type": "localip",
|
||||
"key": " Local ",
|
||||
"keyColor": "magenta"
|
||||
},
|
||||
{
|
||||
"type": "dns",
|
||||
"key": " DNS ",
|
||||
"keyColor": "magenta"
|
||||
},
|
||||
{
|
||||
"type": "netio",
|
||||
"key": " Net I/O ",
|
||||
"keyColor": "magenta"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
|
||||
},
|
||||
{
|
||||
"type": "colors",
|
||||
"paddingLeft": 2,
|
||||
"symbol": "circle"
|
||||
},
|
||||
"break",
|
||||
]
|
||||
}
|
||||
|
||||
267
darwin/config.lua
Normal file
267
darwin/config.lua
Normal file
@@ -0,0 +1,267 @@
|
||||
-- Basics
|
||||
vim.g.mapleader = " "
|
||||
|
||||
-- Yank to system clipboard
|
||||
vim.keymap.set("n", "y", '"+y', { desc = "Yank to clipboard" })
|
||||
vim.keymap.set("v", "y", '"+y', { desc = "Yank to clipboard" })
|
||||
vim.keymap.set("n", "Y", '"+Y', { desc = "Yank line to clipboard" })
|
||||
|
||||
-- Also make delete operations use system clipboard
|
||||
vim.keymap.set("n", "d", '"+d', { desc = "Delete to clipboard" })
|
||||
vim.keymap.set("v", "d", '"+d', { desc = "Delete to clipboard" })
|
||||
vim.keymap.set("n", "D", '"+D', { desc = "Delete line to clipboard" })
|
||||
|
||||
-- Paste from system clipboard
|
||||
vim.keymap.set("n", "p", '"+p', { desc = "Paste from clipboard" })
|
||||
vim.keymap.set("v", "p", '"+p', { desc = "Paste from clipboard" })
|
||||
|
||||
-- Treesitter
|
||||
require("nvim-treesitter.configs").setup({
|
||||
ensure_installed = { "lua", "nix", "python", "javascript", "rust", "rasi" },
|
||||
sync_install = false,
|
||||
auto_install = true,
|
||||
highlight = {
|
||||
enable = true,
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
|
||||
parser_install_dir = vim.fn.stdpath("data") .. "/treesitter",
|
||||
})
|
||||
vim.opt.runtimepath:append(vim.fn.stdpath("data") .. "/treesitter")
|
||||
|
||||
-- Linting
|
||||
require("lint").linters_by_ft = {}
|
||||
vim.api.nvim_create_autocmd({ "BufWritePost" }, {
|
||||
callback = function()
|
||||
require("lint").try_lint()
|
||||
end,
|
||||
})
|
||||
|
||||
-- Mason Setup
|
||||
require("mason").setup({
|
||||
ui = {
|
||||
icons = {
|
||||
package_installed = "✓",
|
||||
package_pending = "➜",
|
||||
package_uninstalled = "✗",
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
require("mason-lspconfig").setup({
|
||||
ensure_installed = {
|
||||
"lua_ls",
|
||||
"nil_ls",
|
||||
"rust_analyzer",
|
||||
"pylsp",
|
||||
},
|
||||
automatic_installation = true,
|
||||
})
|
||||
|
||||
-- LSP Config
|
||||
local cmp = require("cmp")
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require("luasnip").lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||
["<C-Space>"] = cmp.mapping.complete(),
|
||||
["<C-e>"] = cmp.mapping.abort(),
|
||||
["<CR>"] = cmp.mapping.confirm({ select = true }),
|
||||
}),
|
||||
sources = cmp.config.sources({
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "luasnip" },
|
||||
}, {
|
||||
{ name = "buffer" },
|
||||
{ name = "path" },
|
||||
}),
|
||||
})
|
||||
|
||||
local lspconfig = require("lspconfig")
|
||||
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, {})
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, {})
|
||||
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, {})
|
||||
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, {})
|
||||
|
||||
-- Setup language servers
|
||||
lspconfig.lua_ls.setup({
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
Lua = {
|
||||
runtime = { version = "LuaJIT" },
|
||||
diagnostics = { globals = { "vim" } },
|
||||
workspace = { library = vim.api.nvim_get_runtime_file("", true) },
|
||||
telemetry = { enable = false },
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
lspconfig.nil_ls.setup({ capabilities = capabilities })
|
||||
lspconfig.rust_analyzer.setup({ capabilities = capabilities })
|
||||
lspconfig.pylsp.setup({ capabilities = capabilities })
|
||||
lspconfig.stylelint_lsp.setup({
|
||||
cmd = { "stylelint-lsp", "--stdio" },
|
||||
filetypes = { "css", "scss", "rasi" },
|
||||
capabilities = vim.lsp.protocol.make_client_capabilities(),
|
||||
})
|
||||
|
||||
-- Conform
|
||||
require("conform").setup({
|
||||
formatters_by_ft = {
|
||||
lua = { "stylua" },
|
||||
nix = { "nixfmt" },
|
||||
python = { "black" },
|
||||
rust = { "rustfmt" },
|
||||
rasi = { "prettierd" },
|
||||
},
|
||||
format_on_save = {
|
||||
timeout_ms = 500,
|
||||
lsp_fallback = true,
|
||||
},
|
||||
})
|
||||
|
||||
-- Yazi
|
||||
require("yazi").setup({
|
||||
open_for_directories = true,
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader>fy", function()
|
||||
require("yazi").yazi(nil, vim.loop.cwd())
|
||||
end, { desc = "Open Yazi file manager" })
|
||||
|
||||
vim.keymap.set("n", "<leader>fd", function()
|
||||
require("yazi").yazi(nil, vim.fn.expand("%:p:h"))
|
||||
end, { desc = "Open Yazi in current file directory" })
|
||||
|
||||
-- Telescope
|
||||
--require("telescope").setup()
|
||||
|
||||
--local telescope = require("telescope.builtin")
|
||||
--vim.keymap.set("n", "<leader>ff", telescope.find_files, { desc = "Telescope find files" })
|
||||
--vim.keymap.set("n", "<leader>fg", telescope.live_grep, { desc = "Telescope live grep" })
|
||||
--vim.keymap.set("n", "<leader>fb", telescope.buffers, { desc = "Telescope buffers" })
|
||||
--vim.keymap.set("n", "<leader>fh", telescope.help_tags, { desc = "Telescope help tags" })
|
||||
|
||||
-- Styling
|
||||
require("catppuccin").setup({
|
||||
flavour = "mocha",
|
||||
transparent_background = true,
|
||||
term_colors = true,
|
||||
integration = {
|
||||
treesitter = true,
|
||||
mason = true,
|
||||
lsp_trouble = true,
|
||||
which_key = true,
|
||||
cmp = true,
|
||||
gitsigns = true,
|
||||
telescope = true,
|
||||
nvimtree = true,
|
||||
dashboard = true,
|
||||
notify = true,
|
||||
indent_blankline = true,
|
||||
toggleterm = true, -- Important for transparent terminals
|
||||
},
|
||||
})
|
||||
|
||||
vim.cmd.colorscheme("catppuccin")
|
||||
vim.opt.number = true
|
||||
vim.opt.cursorline = true
|
||||
vim.opt.showmode = false
|
||||
vim.opt.syntax = "enable"
|
||||
vim.opt.hlsearch = true
|
||||
vim.opt.incsearch = true
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.termguicolors = true
|
||||
|
||||
local colors = require("catppuccin.palettes").get_palette("mocha")
|
||||
vim.api.nvim_set_hl(0, "LineNr", { fg = colors.text, bg = "NONE" })
|
||||
vim.api.nvim_set_hl(0, "CursorLineNr", { fg = colors.pink, bg = "NONE", bold = true })
|
||||
|
||||
-- ToggleTerm setup
|
||||
require("toggleterm").setup({
|
||||
size = 20,
|
||||
open_mapping = [[<c-\>]],
|
||||
direction = "float",
|
||||
float_opts = {
|
||||
border = "single",
|
||||
width = 200,
|
||||
height = 40,
|
||||
},
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader>h", function()
|
||||
require("toggleterm").toggle(1, 10, vim.loop.cwd(), "horizontal")
|
||||
end, { desc = "Toggle terminal (horizontal)" })
|
||||
|
||||
vim.keymap.set("n", "<leader>v", function()
|
||||
require("toggleterm").toggle(2, 60, vim.loop.cwd(), "vertical")
|
||||
end, { desc = "Toggle terminal (vertical)" })
|
||||
|
||||
vim.keymap.set("n", "<leader>ft", function()
|
||||
require("toggleterm").toggle(3, 20, vim.loop.cwd(), "float")
|
||||
end, { desc = "Toggle terminal (float)" })
|
||||
|
||||
vim.keymap.set("t", "<C-t>", "<Cmd>ToggleTerm<CR>", { desc = "Toggle terminal" })
|
||||
vim.keymap.set("t", "<C-v>", "<C-\\><C-n>v", { desc = "Exit terminal and enter visual mode" })
|
||||
|
||||
-- Statusline
|
||||
require("lualine").setup({
|
||||
options = {
|
||||
theme = "catppuccin",
|
||||
component_separators = { left = "|", right = "|" },
|
||||
section_separators = { left = "", right = "" },
|
||||
},
|
||||
})
|
||||
|
||||
-- Dashboard
|
||||
local alpha = require("alpha")
|
||||
local dashboard = require("alpha.themes.dashboard")
|
||||
|
||||
dashboard.section.header.val = {
|
||||
"⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣯⣿⠿⣟⣷⣯⣛⢿⣿⣿⣾⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿",
|
||||
"⣿⣿⣿⣿⣿⣿⣿⡿⣵⣿⡿⣴⣽⡟⣳⢿⢽⣽⣕⣽⢿⡿⣿⣟⣿⣿⣿⣿⣿⣿⣿",
|
||||
"⣿⣿⣿⣷⣿⣿⢟⣫⣿⢟⢟⣾⣾⣿⣿⣞⢳⣻⢞⣎⠿⢞⣊⣿⣞⣿⣿⣿⣿⣿⢽",
|
||||
"⣿⣿⣿⣿⣿⣏⢯⣿⣏⣏⠔⢇⣿⢢⢆⢀⢆⣧⣼⢻⢰⡧⢻⣝⣏⡸⣧⣾⣿⣿⣿",
|
||||
"⣿⣿⣿⣿⡟⣻⣿⣿⡾⡿⡼⢸⡝⣝⡳⢢⣧⢳⣳⢷⡇⣗⢺⡺⣿⡧⣿⣿⣿⢿⢿",
|
||||
"⣿⡿⣿⣼⡼⣿⣿⡗⡧⣧⠁⡝⣧⣳⠅⡾⠈⣎⢮⣧⣿⣿⣗⣷⣻⢷⣏⣼⢏⣺⣿",
|
||||
"⣿⣿⣿⣻⣿⣿⣿⢧⣿⢹⠉⢷⢿⣧⣲⡏⡀⡈⢆⠳⣿⡿⢿⣿⣱⢿⢫⣷⣝⣿⣿",
|
||||
"⣿⣿⣿⡯⡟⣿⣿⢽⣡⠟⢿⣮⠁⠙⠛⠈⡴⢿⣿⡷⣬⣽⢽⠧⣷⡏⣿⡇⣧⣽⣿",
|
||||
"⣿⠟⢻⡧⡇⣿⡇⣇⣆⢄⡜⢃⡀⡀⡀⡀⡀⢎⣁⠁⣸⣗⣸⣿⣧⣼⡿⢹⢿⢾⣿",
|
||||
"⣿⣷⣾⣿⢻⣿⢧⢻⣽⡀⡀⡀⡀⢄⡀⡀⡀⡀⡀⢀⣷⡸⡟⣿⣶⣻⣧⡛⡱⢝⣿",
|
||||
"⣿⣿⣿⣿⢸⡿⢚⡜⣿⣇⡀⡀⡀⡀⡀⡀⡀⡀⠚⢁⢣⣜⡿⣿⡇⢼⣿⠨⣸⣿⣿",
|
||||
"⣿⣄⣿⣗⢾⢻⣧⢿⣾⣿⣦⡀⡀⠑⠚⠉⡀⡀⣤⣿⢨⣿⠗⣻⢣⣿⢹⢈⣽⣿⣿",
|
||||
"⣿⣿⣿⣿⢎⡄⢿⣞⡇⣿⠹⣿⣶⣀⡀⣀⡴⡩⢸⢏⣿⣿⣶⢻⣾⢏⡞⠡⢽⣇⣾",
|
||||
"⣿⣿⣿⣮⣼⢬⣦⢿⣳⣌⠧⡉⠈⣇⣛⣁⣈⣼⣿⡸⠫⠛⠐⠛⠕⣙⣻⣬⣼⣿⣿",
|
||||
"⢟⢿⣿⣿⣿⡢⣃⣪⣭⣡⣤⣶⠟⡿⠿⠿⠿⠛⢁⣿⣿⢩⠉⡀⠈⠓⡝⣿⣿⣿⣿",
|
||||
"⣾⣿⣿⣿⣿⠞⢔⡣⡴⣾⣿⠓⣤⢧⡼⣉⠠⢤⣿⣿⠇⠃⡀⡀⡀⡀⡸⢿⣾⣿⣿",
|
||||
"⣿⣿⣿⡿⣺⡸⢗⢠⣇⣿⣿⠊⠃⡀⠉⡀⢠⣿⣿⠟⡸⡀⡀⡀⡀⡀⣃⣬⠽⠿⣿",
|
||||
"⣿⣿⣿⣿⡇⡏⢸⣿⠟⣽⡇⡀⡀⡀⡀⣴⣟⢭⣾⣿⡇⠎⣠⠒⠉⠈⢀⡀⢨⡋⣿",
|
||||
"⠛⠛⠛⠋⠃⠓⠚⠛⠘⠛⠃⡀⠊⡀⠛⠛⠛⠂⠛⠛⠓⠁⠚⡀⠂⠒⠒⠐⠒⠋⠛",
|
||||
}
|
||||
|
||||
dashboard.section.buttons.val = {
|
||||
dashboard.button("e", "[+] New file", ":ene <BAR> startinsert <CR>"),
|
||||
dashboard.button("f", "[?] Find file", ":Telescope find_files <CR>"),
|
||||
dashboard.button("r", "[~] Recent files", ":Telescope oldfiles <CR>"),
|
||||
dashboard.button("y", "[Y] Yazi", ":Yazi<CR>"),
|
||||
dashboard.button("m", "[M] Mason", ":Mason<CR>"),
|
||||
dashboard.button("q", "[X] Quit", ":qa<CR>"),
|
||||
}
|
||||
|
||||
dashboard.section.footer.val = "Circuits hum in anticipation of your will."
|
||||
|
||||
vim.api.nvim_create_autocmd("VimEnter", {
|
||||
callback = function()
|
||||
if vim.fn.argc() == 0 then
|
||||
require("alpha").start()
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
alpha.setup(dashboard.config)
|
||||
81
darwin/configuration.nix
Normal file
81
darwin/configuration.nix
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ ./yabari.nix ];
|
||||
# System configuration for Intel Mac
|
||||
nixpkgs.hostPlatform = "x86_64-darwin"; # Essential for Intel Macs :cite[1]:cite[2]:cite[5]
|
||||
|
||||
# Enable flakes and nix-command experimental features
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
]; # Essential for flake support :cite[2]:cite[5]:cite[7]
|
||||
|
||||
# System packages (installed system-wide)
|
||||
environment.systemPackages = with pkgs; [ ];
|
||||
|
||||
system.primaryUser = "dergrumpf";
|
||||
users.users.dergrumpf = {
|
||||
name = "dergrumpf";
|
||||
home = "/Users/dergrumpf"; # Must match home.homeDirectory in home.nix :cite[10]
|
||||
shell = pkgs.fish;
|
||||
};
|
||||
|
||||
# Shell configuration
|
||||
programs.zsh.enable = true; # Default shell on macOS :cite[5]:cite[10]
|
||||
# Alternative: enable fish if preferred
|
||||
programs.fish.enable = true;
|
||||
|
||||
# System defaults for macOS
|
||||
system.defaults = {
|
||||
# Dock settings
|
||||
dock.autohide = false; # Auto-hide the dock :cite[8]:cite[10]
|
||||
dock.orientation = "left"; # Position dock on left :cite[8]:cite[10]
|
||||
dock.show-recents = false; # Don't show recent applications :cite[8]:cite[10]
|
||||
dock.mru-spaces = false; # Don't rearrange spaces based on most recent use :cite[5]
|
||||
|
||||
# Finder settings
|
||||
finder.AppleShowAllExtensions = true; # Show all file extensions :cite[5]:cite[8]:cite[10]
|
||||
finder.FXEnableExtensionChangeWarning = false; # Disable extension change warning :cite[8]:cite[10]
|
||||
finder.FXPreferredViewStyle = "clmv"; # Use column view :cite[5]:cite[8]
|
||||
finder.ShowPathbar = true; # Show path bar :cite[8]:cite[10]
|
||||
finder.ShowStatusBar = true; # Show status bar :cite[8]
|
||||
|
||||
# Screenshot settings
|
||||
screencapture.location = "~/Pictures/screenshots"; # Save screenshots to specific location :cite[5]:cite[8]
|
||||
|
||||
# Global domain settings
|
||||
NSGlobalDomain.AppleKeyboardUIMode = 3; # Full keyboard control :cite[8]:cite[10]
|
||||
NSGlobalDomain."com.apple.keyboard.fnState" = true; # Function keys behave as F1-F12 :cite[10]
|
||||
};
|
||||
|
||||
# Touch ID for sudo authentication (if supported by hardware)
|
||||
security.pam.services.sudo_local.touchIdAuth = true; # Enable Touch ID for sudo :cite[5]:cite[8]
|
||||
|
||||
# Font configuration
|
||||
fonts.packages = with pkgs; [
|
||||
nerd-fonts.fira-code
|
||||
];
|
||||
|
||||
# Nix garbage collection (automatic cleanup)
|
||||
nix.gc = {
|
||||
automatic = true; # Enable automatic garbage collection :cite[8]
|
||||
interval = {
|
||||
# Run weekly on Sunday at 3:15 AM :cite[8]
|
||||
Hour = 3;
|
||||
Minute = 15;
|
||||
Weekday = 7;
|
||||
};
|
||||
options = "--delete-older-than 7d"; # Delete packages older than 7 days :cite[8]
|
||||
};
|
||||
|
||||
# System version (for backwards compatibility)
|
||||
system.stateVersion = 6; # Important for configuration compatibility :cite[5]:cite[10]
|
||||
|
||||
# Optional: Configuration revision for tracking changes
|
||||
system.configurationRevision = inputs.self.rev or inputs.self.dirtyRev or null; # Track git revision :cite[5]:cite[7]
|
||||
}
|
||||
388
darwin/flake.lock
generated
Normal file
388
darwin/flake.lock
generated
Normal file
@@ -0,0 +1,388 @@
|
||||
{
|
||||
"nodes": {
|
||||
"catppuccin": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758270360,
|
||||
"narHash": "sha256-yqh6EEhlpVWRoKl85o1s+QZ72UHWTvornnc3C0Ls484=",
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"rev": "2e0aacdd6abbecd1b1c0511a2fcd1460a6bc6645",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"devshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741473158,
|
||||
"narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"locked": {
|
||||
"lastModified": 1733328505,
|
||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||
"revCount": 69,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751413152,
|
||||
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"nixvim",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750779888,
|
||||
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"git-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758375677,
|
||||
"narHash": "sha256-BLtD+6qWz7fQjPk2wpwyXQLGI0E30Ikgf2ppn2nVadI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "edc7468e12be92e926847cb02418e649b02b59dd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747688870,
|
||||
"narHash": "sha256-ypL9WAZfmJr5V70jEVzqGjjQzF0uCkz+AFQF7n9NmNc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "d5f1f641b289553927b3801580598d200a501863",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"ixx": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"nixvim",
|
||||
"nuschtosSearch",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nuschtosSearch",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748294338,
|
||||
"narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "ixx",
|
||||
"rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NuschtOS",
|
||||
"ref": "v0.0.8",
|
||||
"repo": "ixx",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758387173,
|
||||
"narHash": "sha256-E5Ru709RoQEFl+Q0MHRXTIvbY0l6LSR1UHqwTulSeog=",
|
||||
"owner": "nix-darwin",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "7be9c1b136ef7083e60eb060be0a66dcb254e3ca",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-darwin",
|
||||
"ref": "master",
|
||||
"repo": "nix-darwin",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-darwin_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743127615,
|
||||
"narHash": "sha256-+sMGqywrSr50BGMLMeY789mSrzjkoxZiu61eWjYS/8o=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "fc843893cecc1838a59713ee3e50e9e7edc6207c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lnl7",
|
||||
"ref": "nix-darwin-24.11",
|
||||
"repo": "nix-darwin",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1758035966,
|
||||
"narHash": "sha256-qqIJ3yxPiB0ZQTT9//nFGQYn8X/PBoJbofA7hRKZnmE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "8d4ddb19d03c65a36ad8d189d001dc32ffb0306b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1758262103,
|
||||
"narHash": "sha256-aBGl3XEOsjWw6W3AHiKibN7FeoG73dutQQEqnd/etR8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "12bd230118a1901a4a5d393f9f56b6ad7e571d01",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixvim": {
|
||||
"inputs": {
|
||||
"devshell": "devshell",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-parts": "flake-parts",
|
||||
"git-hooks": "git-hooks",
|
||||
"home-manager": "home-manager_2",
|
||||
"nix-darwin": "nix-darwin_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nuschtosSearch": "nuschtosSearch",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751725553,
|
||||
"narHash": "sha256-bkvw8jXTdRBWRfO50IaxNuUIamnLllxfEFqUG/g3uwo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "81d65e0cfb00df0269195b59f156c719cc045ab8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "nixos-24.11",
|
||||
"repo": "nixvim",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nuschtosSearch": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"ixx": "ixx",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749730855,
|
||||
"narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"catppuccin": "catppuccin",
|
||||
"home-manager": "home-manager",
|
||||
"nix-darwin": "nix-darwin",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixvim": "nixvim"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750931469,
|
||||
"narHash": "sha256-0IEdQB1nS+uViQw4k3VGUXntjkDp7aAlqcxdewb/hAc=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "ac8e6f32e11e9c7f153823abc3ab007f2a65d3e1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
68
darwin/flake.nix
Normal file
68
darwin/flake.nix
Normal file
@@ -0,0 +1,68 @@
|
||||
{
|
||||
description = "Cyperpunk nix-darwin system flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
|
||||
nix-darwin = {
|
||||
url = "github:nix-darwin/nix-darwin/master";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# Editor
|
||||
nixvim = {
|
||||
url = "github:nix-community/nixvim/nixos-24.11";
|
||||
# If using a stable channel you can use `url = "github:nix-community/nixvim/nixos-<version>"`
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
catppuccin.url = "github:catppuccin/nix";
|
||||
};
|
||||
|
||||
outputs =
|
||||
inputs@{
|
||||
self,
|
||||
nix-darwin,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
catppuccin,
|
||||
nixvim,
|
||||
...
|
||||
}:
|
||||
let
|
||||
system = "x86_64-darwin";
|
||||
specialArgs = { inherit inputs system; };
|
||||
in
|
||||
{
|
||||
darwinConfigurations = {
|
||||
"Phil-Mac" = nix-darwin.lib.darwinSystem {
|
||||
inherit system specialArgs;
|
||||
|
||||
modules = [
|
||||
# Main Config
|
||||
./configuration.nix
|
||||
|
||||
# home manager integration
|
||||
home-manager.darwinModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
users.dergrumpf = import ./home.nix;
|
||||
backupFileExtension = "backup";
|
||||
extraSpecialArgs = specialArgs;
|
||||
sharedModules = [
|
||||
inputs.nixvim.homeManagerModules.nixvim
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
205
darwin/home.nix
Normal file
205
darwin/home.nix
Normal file
@@ -0,0 +1,205 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ ./sketchybar.nix ];
|
||||
|
||||
home.username = "dergrumpf";
|
||||
home.homeDirectory = "/Users/dergrumpf";
|
||||
|
||||
home.stateVersion = "23.11";
|
||||
home.file = {
|
||||
"Pictures/Avatar" = {
|
||||
source = ../avatar;
|
||||
recursive = true;
|
||||
};
|
||||
};
|
||||
home.file = {
|
||||
"Pictures/Wallpapers" = {
|
||||
source = ../wallpapers;
|
||||
recursive = true;
|
||||
};
|
||||
};
|
||||
home.file.".config/fastfetch/config.jsonc".source = ./config.jsonc;
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# Utilities
|
||||
coreutils
|
||||
direnv
|
||||
fd
|
||||
git
|
||||
ripgrep
|
||||
fzf
|
||||
zoxide
|
||||
starship
|
||||
trash-cli
|
||||
|
||||
# Miscellaneous
|
||||
fastfetch
|
||||
btop
|
||||
wget
|
||||
curl
|
||||
|
||||
nixfmt-rfc-style
|
||||
stylua
|
||||
black
|
||||
nodePackages.prettier
|
||||
rustfmt
|
||||
nodejs
|
||||
prettierd
|
||||
stylelint-lsp
|
||||
|
||||
# Mason Binarys
|
||||
lua-language-server
|
||||
nil
|
||||
rust-analyzer
|
||||
python3Packages.python-lsp-server
|
||||
|
||||
curl
|
||||
cargo
|
||||
yazi
|
||||
];
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
VISUAL = "code";
|
||||
PAGER = "less";
|
||||
CLICOLOR = "1";
|
||||
LSCOLORS = "ExFxBxDxCxegedabagacad";
|
||||
TERM = "xterm-kitty";
|
||||
};
|
||||
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
defaultEditor = true;
|
||||
#extraPackages = with pkgs; [ ];
|
||||
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
nvim-treesitter
|
||||
nvim-lint
|
||||
catppuccin-nvim
|
||||
mason-nvim
|
||||
mason-lspconfig-nvim
|
||||
nvim-lspconfig
|
||||
nvim-cmp
|
||||
cmp-nvim-lsp
|
||||
cmp-buffer
|
||||
cmp-path
|
||||
cmp-cmdline
|
||||
luasnip
|
||||
lualine-nvim
|
||||
yazi-nvim
|
||||
alpha-nvim
|
||||
cheatsheet-nvim
|
||||
toggleterm-nvim
|
||||
|
||||
# Add conform.nvim as a custom plugin
|
||||
(pkgs.vimUtils.buildVimPlugin {
|
||||
name = "conform-nvim";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "stevearc";
|
||||
repo = "conform.nvim";
|
||||
rev = "stable";
|
||||
sha256 = "sha256-pUF9F5QoDzCZuVRcJEF91M8Qjkh/xosMkf9tRavkmJs=";
|
||||
};
|
||||
})
|
||||
|
||||
];
|
||||
|
||||
extraLuaConfig = builtins.readFile (./. + "/config.lua");
|
||||
};
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
function fish_greeting
|
||||
fastfetch
|
||||
end
|
||||
'';
|
||||
plugins = [
|
||||
{
|
||||
name = "forgit";
|
||||
src = pkgs.fishPlugins.forgit.src;
|
||||
}
|
||||
];
|
||||
shellAliases = {
|
||||
ll = "ls -l";
|
||||
la = "ls -la";
|
||||
gs = "git status";
|
||||
gp = "git push";
|
||||
};
|
||||
};
|
||||
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
themeFile = "Catppuccin-Mocha";
|
||||
font.name = "FiraCode Nerd Font Mono";
|
||||
settings = {
|
||||
confirm_os_window_close = 0;
|
||||
dynamic_background_opacity = true;
|
||||
enable_audio_bell = false;
|
||||
mouse_hide_wait = "-1.0";
|
||||
window_padding_width = 10;
|
||||
background_opacity = "0.9";
|
||||
# Ensure proper symbol rendering with Nerd Fonts
|
||||
symbol_map = "U+23FB-U+23FE U+2B58 U+E200-U+E2A9 U+E0A0-U+E0A3 U+E0B0-U+E0BF U+E0C0-U+E0C8 U+E0CC-U+E0CF U+E0D0-U+E0D2 U+E0D4 U+E700-U+E7C5 U+F000-U+F2E0 U+2665 U+26A1 U+F400-U+F4A8 U+F67C U+E000-U+E00A U+F300-U+F313 U+E5FA-U+E62B Symbols Nerd Font";
|
||||
};
|
||||
extraConfig = ''
|
||||
shell /run/current-system/sw/bin/fish
|
||||
'';
|
||||
};
|
||||
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "DerGrumpf";
|
||||
userEmail = "p.keier@beyerstedt-it.de";
|
||||
aliases = {
|
||||
co = "checkout";
|
||||
ci = "commit";
|
||||
st = "status";
|
||||
br = "branch";
|
||||
};
|
||||
extraConfig = {
|
||||
init.defaultBranch = "main";
|
||||
pull.rebase = true;
|
||||
};
|
||||
};
|
||||
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
enableDefaultConfig = false;
|
||||
matchBlocks = {
|
||||
"example.com" = {
|
||||
user = "dergrumpf";
|
||||
identityFile = "~/.ssh/id_ed25519";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
settings = {
|
||||
add_newline = true;
|
||||
format = "$directory$git_branch$git_status$cmd_duration$line_break$character";
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
gpg-agent = {
|
||||
enable = true;
|
||||
defaultCacheTtl = 1800;
|
||||
enableSshSupport = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
19
darwin/macbook2019.nix
Normal file
19
darwin/macbook2019.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ config, lib, pkgs, inputs, username, ... }:
|
||||
{
|
||||
networking.hostName = "macbook2019";
|
||||
services.nix-daemon.enable = true;
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
nixpkgs.hostPlatform = "x86_64-darwin"; # Intel Mac
|
||||
|
||||
# Required for backward compatibility
|
||||
system.stateVersion = "25.04";
|
||||
|
||||
# User configuration
|
||||
users.users.${username} = {
|
||||
name = username;
|
||||
home = "/Users/${username}";
|
||||
};
|
||||
|
||||
# Enable zsh (common on macOS)
|
||||
programs.zsh.enable = true;
|
||||
}
|
||||
11
darwin/nixos.nix
Normal file
11
darwin/nixos.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
users.users.dergrumpf = {
|
||||
# authorizedKeys
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCaLHfxVylghDMYR8t4QMUpeRRqXasNABQKBEy9MmhbUXCcWiPbPMSZH8FMHON34rm2OrXP1kY/8jQxqBJDA+SqpFR2AZ4Khk9iVMaq5GHxxpn2amZUjoBa+fB29WaiE1npV5JVJV3O0ylw6GtiCnpneE6fGx2MO1vOY/7zKrUX/OK7WfwkDpeEzZgV/j/md917HrzUVeZwdeTq3WCRO8Gew6R8Xs6FRjSiGuH0dq14D4Ow5Zf1cI1jx+JfD/5vGasw8HXPu1NdxsOE+6D7/22IKqGr+S74/lAoyyD5qqk0s05lw8UY/PXBLJaNLZu9Fwx0BqTHpJEvftpmvd9wUxgR3msx9VXtKNSrqivIbDgeU+3oGzzkrGZODl7FCp4XKGmbrX85Z6lKwEGgv5jez4MLZcmT86bxB7m1wIbqSbVtfhS+GI7yPTA/kLzzFa14Im/+LTj95pb8qs2ALMwTMP1j2f9A6D3RriOFihL+68qn+YbK58KuV1R0f+CQRmlfVbk= phil@web.cyperpunk.de"
|
||||
];
|
||||
shell = pkgs.fish;
|
||||
#extraGroups = [ "video" ];
|
||||
};
|
||||
}
|
||||
49
darwin/sketchybar.nix
Normal file
49
darwin/sketchybar.nix
Normal file
@@ -0,0 +1,49 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.sketchybar = {
|
||||
enable = true;
|
||||
config = ''
|
||||
# Define colors
|
||||
export ROSEWATER="0xf5e0dcff"
|
||||
export FLAMINGO="0xf2cdcdff"
|
||||
export PINK="0xf5c2e7ff"
|
||||
export MAUVE="0xcba6f7ff"
|
||||
export RED="0xf38ba8ff"
|
||||
export MAROON="0xeba0acff"
|
||||
export PEACH="0xfab387ff"
|
||||
export YELLOW="0xf9e2afff"
|
||||
export GREEN="0xa6e3a1ff"
|
||||
export TEAL="0x94e2d5ff"
|
||||
export SKY="0x89dcebff"
|
||||
export SAPPHIRE="0x74c7ecff"
|
||||
export BLUE="0x89b4faff"
|
||||
export LAVENDER="0xb4befeff"
|
||||
export TEXT="0xcdd6f4ff"
|
||||
export SUBTEXT1="0xbac2deff"
|
||||
export SUBTEXT2="0xa6adc8ff"
|
||||
export OVERLAY2="0x9399b2ff"
|
||||
export OVERLAY1="0x7f849cff"
|
||||
export OVERLAY0="0x6c7086ff"
|
||||
export SURFACE2="0x585b70ff"
|
||||
export SURFACE1="0x45475aff"
|
||||
export SURFACE0="0x313244ff"
|
||||
export BASE="0x1e1e2eff"
|
||||
export MANTLE="0x181825ff"
|
||||
export CRUST="0x11111bff"
|
||||
|
||||
# Configure bar
|
||||
sketchybar --bar height=32 \
|
||||
position=top \
|
||||
padding_left=10 \
|
||||
padding_right=10 \
|
||||
color=$CRUST
|
||||
|
||||
sketchybar --add item clock
|
||||
sketchybar --set clock \
|
||||
script="$(date +'%a %b %d, %I:%M %p')" \
|
||||
update_freq=10 \
|
||||
label.color=$TEXT \
|
||||
label.font.size=16
|
||||
'';
|
||||
};
|
||||
}
|
||||
70
darwin/yabari.nix
Normal file
70
darwin/yabari.nix
Normal file
@@ -0,0 +1,70 @@
|
||||
{ ... }:
|
||||
{
|
||||
services.yabai = {
|
||||
enable = true;
|
||||
enableScriptingAddition = true;
|
||||
config = {
|
||||
focus_follows_mouse = "autoraise";
|
||||
mouse_follows_focus = "on";
|
||||
window_placement = "second_child";
|
||||
window_opacity = "off";
|
||||
window_opacity_duration = "0.0";
|
||||
active_window_opacity = "1.0";
|
||||
normal_window_opacity = "1.0";
|
||||
split_ratio = "0.50";
|
||||
auto_balance = "off";
|
||||
mouse_modifier = "fn";
|
||||
mouse_action1 = "move";
|
||||
mouse_action2 = "resize";
|
||||
layout = "bsp";
|
||||
top_padding = 5;
|
||||
bottom_padding = 5;
|
||||
left_padding = 5;
|
||||
right_padding = 5;
|
||||
window_gap = 5;
|
||||
};
|
||||
|
||||
extraConfig = ''
|
||||
yabai -m space 1 --label main
|
||||
yabai -m space 2 --label browser
|
||||
yabai -m space 3 --label terminal
|
||||
'';
|
||||
};
|
||||
|
||||
services.skhd = {
|
||||
enable = true;
|
||||
skhdConfig = ''
|
||||
# Focus workspace 1-9 with alt + number
|
||||
alt - 1 : yabai -m space --focus main
|
||||
alt - 2 : yabai -m space --focus browser
|
||||
alt - 3 : yabai -m space --focus terminal
|
||||
alt - 4 : yabai -m space --focus 4
|
||||
alt - 5 : yabai -m space --focus 5
|
||||
alt - 6 : yabai -m space --focus 6
|
||||
alt - 7 : yabai -m space --focus 7
|
||||
alt - 8 : yabai -m space --focus 8
|
||||
alt - 9 : yabai -m space --focus 9
|
||||
|
||||
# Move focused window to workspace 1-9 with alt + shift + number
|
||||
alt + shift - 1 : yabai -m window --space 1
|
||||
alt + shift - 2 : yabai -m window --space 2
|
||||
alt + shift - 3 : yabai -m window --space 3
|
||||
alt + shift - 4 : yabai -m window --space 4
|
||||
alt + shift - 5 : yabai -m window --space 5
|
||||
alt + shift - 6 : yabai -m window --space 6
|
||||
alt + shift - 7 : yabai -m window --space 7
|
||||
alt + shift - 8 : yabai -m window --space 8
|
||||
alt + shift - 9 : yabai -m window --space 9
|
||||
|
||||
# Focus windows alt + arrow keys
|
||||
alt - left : yabai -m window --focus west
|
||||
alt - right : yabai -m window --focus east
|
||||
|
||||
# Close focused window with alt + c
|
||||
alt - c : yabai -m window --close
|
||||
|
||||
# App Shortcuts
|
||||
ctrl - q : open -a kitty --args --directory="~"
|
||||
'';
|
||||
};
|
||||
}
|
||||
43
flake.lock
generated
43
flake.lock
generated
@@ -155,6 +155,27 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_3": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nur",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1733312601,
|
||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
@@ -769,6 +790,27 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_3",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758273929,
|
||||
"narHash": "sha256-8ZhQaoeWOcCpe14PLgJ7ZEhWFFISA2qcVuXTGlNZGgU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "2d644af21cc32d53594b9d17fa167c4eec6431cd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nuschtosSearch": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
@@ -824,6 +866,7 @@
|
||||
"nixcord": "nixcord",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixvim": "nixvim",
|
||||
"nur": "nur",
|
||||
"spicetify-nix": "spicetify-nix",
|
||||
"unstable": "unstable"
|
||||
}
|
||||
|
||||
83
flake.nix
83
flake.nix
@@ -17,6 +17,10 @@
|
||||
# Core
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nur = {
|
||||
url = "github:nix-community/NUR";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# Editor
|
||||
nixvim = {
|
||||
@@ -54,8 +58,6 @@
|
||||
}:
|
||||
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
|
||||
# Common Configuration
|
||||
commonModules = [
|
||||
(
|
||||
@@ -80,18 +82,14 @@
|
||||
];
|
||||
|
||||
commonHomeManagerConfig =
|
||||
{
|
||||
username,
|
||||
monitorSetup ? "single",
|
||||
}:
|
||||
{ username, monitorSetup }:
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
backupFileExtension = "backup";
|
||||
extraSpecialArgs = {
|
||||
inherit inputs;
|
||||
inherit username monitorSetup;
|
||||
inherit inputs username monitorSetup;
|
||||
};
|
||||
users.${username} = import ./users/${username}/home.nix;
|
||||
sharedModules = [
|
||||
@@ -109,13 +107,18 @@
|
||||
username,
|
||||
system ? "x86_64-linux",
|
||||
monitorSetup ? "single",
|
||||
containerization ? "none",
|
||||
extraModules ? [ ],
|
||||
}:
|
||||
nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
inherit username monitorSetup;
|
||||
inherit
|
||||
inputs
|
||||
username
|
||||
monitorSetup
|
||||
containerization
|
||||
;
|
||||
};
|
||||
modules =
|
||||
commonModules
|
||||
@@ -124,59 +127,73 @@
|
||||
./users/${username}/nixos.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
(commonHomeManagerConfig { inherit username monitorSetup; })
|
||||
./modules/containerization
|
||||
]
|
||||
++ extraModules;
|
||||
|
||||
};
|
||||
|
||||
# ISO configuration
|
||||
isoConfig = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
(import (nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"))
|
||||
(
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
neovim
|
||||
git
|
||||
wget
|
||||
curl
|
||||
];
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
}
|
||||
)
|
||||
];
|
||||
};
|
||||
mkIsoConfig =
|
||||
{ system }:
|
||||
nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
(import (nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"))
|
||||
(
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
neovim
|
||||
git
|
||||
wget
|
||||
curl
|
||||
];
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
}
|
||||
)
|
||||
];
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
packages.${system}.default = self.nixosConfigurations.iso.config.system.build.isoImage;
|
||||
# ISO Defaults
|
||||
packages.x86_64-linux.iso = self.nixosConfigurations.iso.config.system.build.isoImage;
|
||||
packages.x86_64-linux.default = self.packages.x86_64-linux.iso;
|
||||
|
||||
nixosConfigurations = {
|
||||
iso = isoConfig;
|
||||
iso = mkIsoConfig { system = "x86_64-linux"; };
|
||||
|
||||
qemu = mkSystem {
|
||||
hostname = "qemu";
|
||||
username = "phil";
|
||||
monitorSetup = "single";
|
||||
containerization = "none";
|
||||
};
|
||||
|
||||
m920q = mkSystem {
|
||||
hostname = "m920q";
|
||||
username = "phil";
|
||||
monitorSetup = "dual";
|
||||
containerization = "podman";
|
||||
};
|
||||
|
||||
hp15-n028sg = mkSystem {
|
||||
hostname = "hp15-n028sg";
|
||||
username = "phil";
|
||||
monitorSetup = "single";
|
||||
containerization = "docker";
|
||||
};
|
||||
|
||||
cloud = mkSystem {
|
||||
hostname = "cluster.cyperpunk.de";
|
||||
username = "phil";
|
||||
monitorSetup = "none";
|
||||
containerization = "podman";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
kdePackages.dolphin
|
||||
libsForQt5.kio-extras
|
||||
kio-fuse
|
||||
];
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
krusader
|
||||
krename
|
||||
kdiff3
|
||||
# kdePackages.kompare
|
||||
xxdiff
|
||||
];
|
||||
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
progams.spacefm.enable = true;
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# Font
|
||||
font = {
|
||||
normal = {
|
||||
family = "FiraCode Nerd Font Mono"; # Change to your preferred Nerd Font
|
||||
style = "Regular";
|
||||
};
|
||||
bold = {
|
||||
family = "FiraCode Nerd Font Mono";
|
||||
style = "Bold";
|
||||
};
|
||||
italic = {
|
||||
family = "FiraCode Nerd Font Mono";
|
||||
style = "Italic";
|
||||
};
|
||||
size = 11;
|
||||
};
|
||||
window = {
|
||||
opacity = 0.6; # Adjust between 0.0 (fully transparent) and 1.0 (opaque)
|
||||
padding = {
|
||||
x = 10;
|
||||
y = 10;
|
||||
};
|
||||
decorations = "full"; # none, transparent, full, buttonless
|
||||
title = "Alacritty";
|
||||
dynamic_title = true;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
fonts = {
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
defaultFonts = {
|
||||
monospace = [ "FiraCode Nerd Font Mono" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
fira-code-nerdfont
|
||||
];
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
{ monitorSetup, ... }:
|
||||
{
|
||||
imports = [
|
||||
./kitty.nix # Terminal
|
||||
./hyprland.nix
|
||||
./hypridle.nix
|
||||
./hyprlock.nix
|
||||
#./hyprpaper.nix
|
||||
#./wpaperd.nix
|
||||
./swww.nix
|
||||
./rofi # App Launcher
|
||||
#./mako.nix # Notifyer
|
||||
./cava.nix # Music Visualizer
|
||||
./swaync.nix
|
||||
];
|
||||
|
||||
programs.waybar =
|
||||
if monitorSetup == "single" then
|
||||
import ../../home/hyprland/waybar/single.nix
|
||||
else if monitorSetup == "dual" then
|
||||
import ../../home/hyprland/waybar/dual.nix
|
||||
else if monitorSetup == "side" then
|
||||
import ../../home/hyprland/waybar/side.nix
|
||||
else
|
||||
{ };
|
||||
|
||||
home.file.".config/waybar" = {
|
||||
source = ./waybar/configs;
|
||||
# copy the scripts directory recursively
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
home.file.".config/hypr/hyprland.conf".enable = false;
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
programs.kitty = lib.mkForce {
|
||||
enable = true;
|
||||
settings = {
|
||||
themeFile = "Catppuccin-Mocha";
|
||||
confirm_os_window_close = 0;
|
||||
dynamic_background_opacity = true;
|
||||
enable_audio_bell = false;
|
||||
mouse_hide_wait = "-1.0";
|
||||
window_padding_width = 10;
|
||||
background_opacity = "0.8";
|
||||
background_blur = 5;
|
||||
tab_bar_min_tabs = 1;
|
||||
tab_bar_edge = "bottom";
|
||||
tab_bar_style = "powerline";
|
||||
tab_powerline_style = "slanted";
|
||||
tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
|
||||
symbol_map =
|
||||
let
|
||||
mappings = [
|
||||
"U+23FB-U+23FE"
|
||||
"U+2B58"
|
||||
"U+E200-U+E2A9"
|
||||
"U+E0A0-U+E0A3"
|
||||
"U+E0B0-U+E0BF"
|
||||
"U+E0C0-U+E0C8"
|
||||
"U+E0CC-U+E0CF"
|
||||
"U+E0D0-U+E0D2"
|
||||
"U+E0D4"
|
||||
"U+E700-U+E7C5"
|
||||
"U+F000-U+F2E0"
|
||||
"U+2665"
|
||||
"U+26A1"
|
||||
"U+F400-U+F4A8"
|
||||
"U+F67C"
|
||||
"U+E000-U+E00A"
|
||||
"U+F300-U+F313"
|
||||
"U+E5FA-U+E62B"
|
||||
];
|
||||
in
|
||||
(builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.swaynotificationcenter ];
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
monitorSetup,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
package = pkgs.waybar;
|
||||
};
|
||||
|
||||
home.file.".config/waybar/style.css" =
|
||||
if monitorSetup == "side" then
|
||||
{
|
||||
source = ./configs/side.css;
|
||||
}
|
||||
else
|
||||
{
|
||||
source = ./configs/style.css;
|
||||
};
|
||||
home.file.".config/waybar/cava.sh".source = ./configs/cava.sh;
|
||||
home.file.".config/waybar/mocha.css".source = ./configs/mocha.css;
|
||||
|
||||
/*
|
||||
home.file.".config/waybar" = {
|
||||
source = ./configs;
|
||||
# copy the scripts directory recursively
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
home.file.".config/waybar/style.css" = lib.mkIf (monitorSetup == "side") {
|
||||
source = ./configs/side.css;
|
||||
};
|
||||
*/
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
niri
|
||||
xwayland-satellite
|
||||
];
|
||||
|
||||
xdg.configFile."niri/config.kdl".source = ./niri-config.kdl;
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
catppuccin-bat,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
|
||||
];
|
||||
|
||||
programs = {
|
||||
tmux = {
|
||||
enable = true;
|
||||
clock24 = true;
|
||||
keyMode = "vi";
|
||||
extraConfig = "mouse on";
|
||||
};
|
||||
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
pager = "less -FR";
|
||||
theme = "catppuccin-mocha";
|
||||
};
|
||||
themes = {
|
||||
# https://raw.githubusercontent.com/catppuccin/bat/main/Catppuccin-mocha.tmTheme
|
||||
catppuccin-mocha = {
|
||||
src = catppuccin-bat;
|
||||
file = "Catppuccin-mocha.tmTheme";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
btop.enable = true; # replacement of htop/nmon
|
||||
eza.enable = true; # A modern replacement for ‘ls’
|
||||
jq.enable = true; # A lightweight and flexible command-line JSON processor
|
||||
ssh.enable = true;
|
||||
aria2.enable = true;
|
||||
|
||||
skim = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
defaultCommand = "rg --files --hidden";
|
||||
changeDirWidgetOptions = [
|
||||
"--preview 'exa --icons --git --color always -T -L 3 {} | head -200'"
|
||||
"--exact"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
#syncthing.enable = true;
|
||||
|
||||
# auto mount usb drives
|
||||
udiskie.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install sqlitebrowser (DB Browser for SQLite)
|
||||
home.packages = with pkgs; [
|
||||
beekeeper-studio
|
||||
];
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# C / C++
|
||||
clang
|
||||
#gcc
|
||||
lua
|
||||
|
||||
# Rust
|
||||
cargo
|
||||
rustc
|
||||
|
||||
# Zig
|
||||
zig
|
||||
|
||||
#python
|
||||
python314
|
||||
];
|
||||
|
||||
programs.go = {
|
||||
enable = true;
|
||||
packages = { };
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
imports = [
|
||||
./git.nix
|
||||
./neovim
|
||||
./fstl.nix
|
||||
./openscad.nix
|
||||
./sqllite_browser.nix
|
||||
./compilers.nix
|
||||
./beekeeper-studio.nix
|
||||
];
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install fstl
|
||||
home.packages = with pkgs; [
|
||||
fstl
|
||||
];
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = [ pkgs.gh ];
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
|
||||
# ... Other options ...
|
||||
};
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install OpenSCAD
|
||||
home.packages = with pkgs; [
|
||||
openscad
|
||||
];
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install sqlitebrowser (DB Browser for SQLite)
|
||||
home.packages = with pkgs; [
|
||||
sqlitebrowser
|
||||
];
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
airshipper
|
||||
];
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
itch
|
||||
];
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
lutris
|
||||
];
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
xonotic
|
||||
# armagetron
|
||||
# freeciv
|
||||
# mindustry
|
||||
# openra
|
||||
];
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
/*
|
||||
home.packages = with pkgs; [
|
||||
steam
|
||||
];
|
||||
*/
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
};
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
audacity
|
||||
yt-dlp
|
||||
];
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# images
|
||||
imv
|
||||
];
|
||||
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
# media - control and enjoy audio/video
|
||||
{
|
||||
imports = [
|
||||
./audio.nix
|
||||
./image.nix
|
||||
./webcam.nix
|
||||
];
|
||||
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
#enableVirtualCamera = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
wlrobs
|
||||
obs-vkcapture
|
||||
obs-backgroundremoval
|
||||
obs-pipewire-audio-capture
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.spicetify-nix.homeManagerModules.default
|
||||
];
|
||||
|
||||
programs.spicetify =
|
||||
let
|
||||
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
spotifyPackage = pkgs.spotify;
|
||||
theme = spicePkgs.themes.catppuccin;
|
||||
colorScheme = "mocha";
|
||||
|
||||
enabledExtensions = with spicePkgs.extensions; [
|
||||
bookmark
|
||||
fullAppDisplay
|
||||
keyboardShortcut
|
||||
popupLyrics
|
||||
shuffle
|
||||
autoVolume
|
||||
betterGenres
|
||||
adblock
|
||||
wikify
|
||||
songStats
|
||||
];
|
||||
|
||||
enabledCustomApps = with spicePkgs.apps; [
|
||||
lyricsPlus
|
||||
newReleases
|
||||
marketplace
|
||||
];
|
||||
|
||||
#enabledSnippets = with spicePkgs.snippets; [ ];
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install Blender
|
||||
home.packages = with pkgs; [
|
||||
blender
|
||||
];
|
||||
|
||||
# Optional: Install specific versions of Blender (e.g., LTS)
|
||||
# home.packages = with pkgs; [
|
||||
# blender-bin # Latest stable release
|
||||
# blender-lts
|
||||
# ];
|
||||
|
||||
# Optional: Install Blender plugins
|
||||
# home.packages = with pkgs; [
|
||||
# blender
|
||||
# blender-addons.io-scene-gltf2 # Example GLTF exporter/importer
|
||||
# # Add other Blender addons here
|
||||
# ];
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.programs.geary.enable = true;
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
logseq-patch = pkgs.logseq.override {
|
||||
electron_27 = pkgs.electron_34;
|
||||
};
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
logseq-patch
|
||||
logseq
|
||||
];
|
||||
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ notesnook ];
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install Obsidian
|
||||
home.packages = with pkgs; [
|
||||
obsidian
|
||||
];
|
||||
|
||||
# Optional: You might want to configure Obsidian's data directory.
|
||||
# By default, Obsidian stores its data in ~/Obsidian.
|
||||
# You can change this using environment variables, but it's less common to manage this declaratively.
|
||||
# Example (you might not need this):
|
||||
# environment.variables = {
|
||||
# OBSIDIAN_VAULT_PATH = "/path/to/your/vaults";
|
||||
# };
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.libsForQt5.okular ];
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install OnlyOffice Desktop Editors
|
||||
home.packages = with pkgs; [
|
||||
onlyoffice-desktopeditors
|
||||
];
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install Slic3r
|
||||
home.packages = with pkgs; [
|
||||
slic3r
|
||||
];
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.trilium-desktop ];
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install Element Desktop
|
||||
home.packages = with pkgs; [
|
||||
element-desktop
|
||||
];
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install Teamspeak Desktop
|
||||
home.packages = with pkgs; [
|
||||
teamspeak3
|
||||
# teamspeak6-client
|
||||
];
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install Telegram Desktop
|
||||
home.packages = with pkgs; [
|
||||
telegram-desktop
|
||||
telegram-cli
|
||||
];
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
programs.nixcord = {
|
||||
enable = true;
|
||||
discord = lib.mkForce { enable = false; };
|
||||
vesktop.enable = true;
|
||||
|
||||
config = {
|
||||
useQuickCss = true;
|
||||
themeLinks = [
|
||||
"https://raw.githubusercontent.com/catppuccin/discord/refs/heads/main/themes/mocha.theme.css"
|
||||
];
|
||||
frameless = true;
|
||||
plugins = {
|
||||
betterFolders.enable = true;
|
||||
betterRoleContext.enable = true;
|
||||
mentionAvatars.enable = true;
|
||||
copyUserURLs.enable = true;
|
||||
fakeNitro.enable = true;
|
||||
decor.enable = true;
|
||||
#accountPanelServerProfile = true;
|
||||
copyFileContents.enable = true;
|
||||
fakeProfileThemes.enable = true;
|
||||
friendsSince.enable = true;
|
||||
implicitRelationships.enable = true;
|
||||
noTrack.enable = true;
|
||||
permissionsViewer.enable = true;
|
||||
serverInfo.enable = true;
|
||||
translate.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install Element Desktop
|
||||
home.packages = with pkgs; [
|
||||
zapzap
|
||||
];
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
commandLineArgs = [ "--enable-features=TouchpadOverscrollHistoryNavigation" ];
|
||||
extensions = [
|
||||
# {id = "";} // extension id, query from chrome web store
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.firefox = {
|
||||
enable = false;
|
||||
profiles.${username} = { };
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
imports = [
|
||||
./qt.nix
|
||||
# ./gtk.nix
|
||||
];
|
||||
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
home.packages = with pkgs.libsForQt5; [
|
||||
qt5ct
|
||||
qtstyleplugin-kvantum
|
||||
];
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "qtct";
|
||||
style.name = "kvantum";
|
||||
};
|
||||
|
||||
xdg.configFile = {
|
||||
"Kvantum/ArcDark".source = "${pkgs.arc-kde-theme}/share/Kvantum/ArcDark";
|
||||
"Kvantum/kvantum.kvconfig".text = "[General]\ntheme=ArcDark";
|
||||
};
|
||||
}
|
||||
@@ -14,11 +14,9 @@
|
||||
../../modules/localisation.nix
|
||||
../../modules/openssh.nix
|
||||
../../modules/pipewire.nix
|
||||
../../modules/podman.nix
|
||||
../../modules/services.nix
|
||||
../../modules/regreet/regreet.nix
|
||||
../../modules/plymouth.nix
|
||||
../../modules/file_managers/spacefm.nix
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
../../modules/localisation.nix
|
||||
../../modules/openssh.nix
|
||||
../../modules/pipewire.nix
|
||||
#../../modules/podman.nix
|
||||
../../modules/docker.nix
|
||||
../../modules/services.nix
|
||||
../../modules/regreet/regreet.nix
|
||||
../../modules/plymouth.nix
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
@@ -14,11 +14,9 @@
|
||||
../../modules/localisation.nix
|
||||
../../modules/openssh.nix
|
||||
../../modules/pipewire.nix
|
||||
../../modules/podman.nix
|
||||
../../modules/services.nix
|
||||
../../modules/regreet/regreet.nix
|
||||
../../modules/plymouth.nix
|
||||
../../modules/file_managers/spacefm.nix
|
||||
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
|
||||
41
modules/containerization/default.nix
Normal file
41
modules/containerization/default.nix
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
containerization ? "none",
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
# Import the appropriate containerization module based on the parameter
|
||||
containerModule =
|
||||
if containerization == "podman" then
|
||||
import ./podman.nix
|
||||
else if containerization == "docker" then
|
||||
import ./docker.nix
|
||||
else if containerization == "none" then
|
||||
{ }
|
||||
else
|
||||
throw "Unknown containerization type: ${containerization}. Valid options are: podman, docker, none";
|
||||
in
|
||||
|
||||
{
|
||||
imports = [ containerModule ];
|
||||
|
||||
# Common packages and configuration for all systems
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Remove the curly braces {}
|
||||
dive # docker layer viewer
|
||||
tailscale # VPN
|
||||
];
|
||||
|
||||
virtualisation.containers.enable = true;
|
||||
virtualisation.oci-containers.containers = {
|
||||
/*
|
||||
container-name = {
|
||||
image = "image";
|
||||
autoStart = true;
|
||||
ports = [ "127.0.0.1:1234:1234" ];
|
||||
};
|
||||
*/
|
||||
};
|
||||
}
|
||||
18
modules/containerization/docker.nix
Normal file
18
modules/containerization/docker.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
docker-compose
|
||||
lazydocker # docker tui
|
||||
];
|
||||
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
rootless = {
|
||||
enable = true;
|
||||
setSocketVariable = true;
|
||||
};
|
||||
};
|
||||
|
||||
virtualisation.oci-containers.backend = "docker";
|
||||
}
|
||||
17
modules/containerization/podman.nix
Normal file
17
modules/containerization/podman.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
podman-compose # docker-compose alternative
|
||||
podman-tui # status of containers in terminal
|
||||
podman-desktop # Desktop client
|
||||
];
|
||||
|
||||
virtualisation.podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
defaultNetwork.settings.dns_enabled = true;
|
||||
};
|
||||
|
||||
virtualisation.oci-containers.backend = "podman";
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Virtualisation
|
||||
docker-compose # docker-compose alternative
|
||||
dive # docker layer viewer
|
||||
tailscale # Vpn
|
||||
];
|
||||
# Virtualisation
|
||||
virtualisation = {
|
||||
containers.enable = true;
|
||||
|
||||
docker = {
|
||||
enable = true;
|
||||
rootless = {
|
||||
enable = true;
|
||||
setSocketVariable = true;
|
||||
};
|
||||
};
|
||||
|
||||
oci-containers = {
|
||||
backend = "docker";
|
||||
containers = {
|
||||
/*
|
||||
container-name = {
|
||||
image = "image";
|
||||
autoStart = true;
|
||||
ports = [ "127.0.0.1:1234:1234" ];
|
||||
};
|
||||
*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Virtualisation
|
||||
podman-compose # docker-compose alternative
|
||||
dive # docker layer viewer
|
||||
podman-tui # status of containers in terminal
|
||||
podman-desktop # Desktop client
|
||||
tailscale # Vpn
|
||||
];
|
||||
# Virtualisation
|
||||
virtualisation = {
|
||||
containers.enable = true;
|
||||
|
||||
podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
defaultNetwork.settings.dns_enabled = true;
|
||||
};
|
||||
|
||||
oci-containers = {
|
||||
backend = "podman";
|
||||
containers = {
|
||||
/*
|
||||
container-name = {
|
||||
image = "image";
|
||||
autoStart = true;
|
||||
ports = [ "127.0.0.1:1234:1234" ];
|
||||
};
|
||||
*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@@ -1,6 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
112
programs/wm/common/kitty.nix
Normal file
112
programs/wm/common/kitty.nix
Normal file
@@ -0,0 +1,112 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
programs.kitty = lib.mkForce {
|
||||
enable = true;
|
||||
settings = {
|
||||
themeFile = "Catppuccin-Mocha";
|
||||
confirm_os_window_close = 0;
|
||||
dynamic_background_opacity = true;
|
||||
enable_audio_bell = false;
|
||||
mouse_hide_wait = "-1.0";
|
||||
window_padding_width = 10;
|
||||
background_opacity = "0.8";
|
||||
background_blur = 5;
|
||||
tab_bar_min_tabs = 1;
|
||||
tab_bar_edge = "bottom";
|
||||
tab_bar_style = "powerline";
|
||||
tab_powerline_style = "slanted";
|
||||
tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
|
||||
symbol_map =
|
||||
let
|
||||
mappings = [
|
||||
"U+23FB-U+23FE"
|
||||
"U+2B58"
|
||||
"U+E200-U+E2A9"
|
||||
"U+E0A0-U+E0A3"
|
||||
"U+E0B0-U+E0BF"
|
||||
"U+E0C0-U+E0C8"
|
||||
"U+E0CC-U+E0CF"
|
||||
"U+E0D0-U+E0D2"
|
||||
"U+E0D4"
|
||||
"U+E700-U+E7C5"
|
||||
"U+F000-U+F2E0"
|
||||
"U+2665"
|
||||
"U+26A1"
|
||||
"U+F400-U+F4A8"
|
||||
"U+F67C"
|
||||
"U+E000-U+E00A"
|
||||
"U+F300-U+F313"
|
||||
"U+E5FA-U+E62B"
|
||||
];
|
||||
in
|
||||
(builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
|
||||
};
|
||||
};
|
||||
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
settings = {
|
||||
add_newline = true;
|
||||
command_timeout = 500;
|
||||
|
||||
format = "$username$hostname $directory $git_branch$git_status\n$character ";
|
||||
right_format = "$cmd_duration";
|
||||
|
||||
username = {
|
||||
style_user = "bold #cba6f7";
|
||||
style_root = "bold #f38ba8";
|
||||
format = "[┌](bold #a6e3a1)[$user]($style)";
|
||||
show_always = true;
|
||||
};
|
||||
|
||||
hostname = {
|
||||
style = "bold #74c7ec";
|
||||
format = "[@](bold #fab387)[$hostname]($style)";
|
||||
ssh_only = false;
|
||||
};
|
||||
|
||||
directory = {
|
||||
style = "bold #a6e3a1";
|
||||
truncation_length = 0;
|
||||
truncation_symbol = "";
|
||||
format = "[⤇ ](bold #f38ba8)[《$path》]($style)";
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
format = "[⟦$branch⟧]($style)";
|
||||
style = "bold #f9e2af";
|
||||
};
|
||||
|
||||
# Git status module settings
|
||||
git_status = {
|
||||
format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](red) ($ahead_behind$stashed)]($style)";
|
||||
style = "bold #a6e3a1";
|
||||
conflicted = "";
|
||||
untracked = "";
|
||||
modified = "";
|
||||
staged = "";
|
||||
renamed = "";
|
||||
deleted = "";
|
||||
};
|
||||
|
||||
# Command duration module
|
||||
cmd_duration = {
|
||||
format = "[$duration]($style)";
|
||||
style = "bold #cdd6f4";
|
||||
min_time = 5000; # Only show if command takes longer than 5 seconds
|
||||
};
|
||||
|
||||
# Character module (prompt symbol)
|
||||
character = {
|
||||
success_symbol = "[└──────⇴ ](bold #a6e3a1)";
|
||||
error_symbol = "[└──────⇴ ](bold #f38ba8)";
|
||||
};
|
||||
|
||||
nix_shell = {
|
||||
format = "[$symbol$state( \($name\))]($style)";
|
||||
symbol = "U+02744";
|
||||
style = "bold #89dceb";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
services.mako = {
|
||||
enable = true;
|
||||
@@ -10,6 +10,9 @@
|
||||
extraConfig = ''
|
||||
[app-name=Spotify]
|
||||
border-color=#a6e3a1
|
||||
|
||||
[app-name=Thunderbird]
|
||||
border-color=#94e2d5
|
||||
'';
|
||||
|
||||
};
|
||||
110
programs/wm/common/notifier/swaync.nix
Normal file
110
programs/wm/common/notifier/swaync.nix
Normal file
@@ -0,0 +1,110 @@
|
||||
{ ... }:
|
||||
{
|
||||
services.swaync = {
|
||||
enable = true;
|
||||
settings = {
|
||||
positionX = "center";
|
||||
positionY = "center";
|
||||
layer = "overlay";
|
||||
control-center-layer = "top";
|
||||
layer-shell = true;
|
||||
cssPriority = "user";
|
||||
control-center-margin-top = 100;
|
||||
control-center-margin-bottom = 200;
|
||||
control-center-margin-right = 0;
|
||||
control-center-margin-left = 0;
|
||||
notification-2fa-action = true;
|
||||
notification-inline-replies = false;
|
||||
notification-icon-size = 64;
|
||||
notification-body-image-height = 100;
|
||||
notification-body-image-width = 200;
|
||||
widgets = [
|
||||
"mpris"
|
||||
"volume"
|
||||
"inhibitors"
|
||||
"title"
|
||||
"dnd"
|
||||
"notifications"
|
||||
];
|
||||
widget-config = {
|
||||
|
||||
mpris = {
|
||||
blacklist = [ ];
|
||||
autohide = false;
|
||||
show-album-art = "always";
|
||||
loop-carousel = false;
|
||||
image-size = 96;
|
||||
image-radius = 12;
|
||||
};
|
||||
|
||||
volume = {
|
||||
label = "gain";
|
||||
show-per-app = false;
|
||||
empty-list-label = "Nothin' is playin'";
|
||||
expand-button-label = "⤢";
|
||||
collaps-button-label = "⤡";
|
||||
};
|
||||
|
||||
title = {
|
||||
text = "Hollerin'";
|
||||
clear-all-button = true;
|
||||
button-text = "Sheriff's Pardon";
|
||||
};
|
||||
|
||||
dnd = {
|
||||
text = "Let'er rest";
|
||||
};
|
||||
|
||||
menubar = {
|
||||
"menu#power" = {
|
||||
label = "Power";
|
||||
position = "right";
|
||||
animation-type = "slide_down";
|
||||
animation-duration = 250;
|
||||
actions = [
|
||||
{
|
||||
label = "Bolt It";
|
||||
command = "hyprlock";
|
||||
}
|
||||
{
|
||||
label = "Ride Out";
|
||||
command = "hyprctl dispatch exit";
|
||||
}
|
||||
{
|
||||
label = "Circle Back";
|
||||
command = "systemctl reboot";
|
||||
}
|
||||
{
|
||||
label = "Bet Down the Horses";
|
||||
command = "systemctl poweroff";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
"buttons#media" = {
|
||||
position = "left";
|
||||
actions = [
|
||||
{
|
||||
label = "Play/Pause";
|
||||
command = "playerctl play-pause";
|
||||
}
|
||||
{
|
||||
label = "Next";
|
||||
command = "playerctl next";
|
||||
}
|
||||
{
|
||||
label = "Previous";
|
||||
command = "playerctl previous";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
notifications = {
|
||||
vexpand = true;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
Before Width: | Height: | Size: 9.2 MiB After Width: | Height: | Size: 9.2 MiB |
|
Before Width: | Height: | Size: 447 KiB After Width: | Height: | Size: 447 KiB |
@@ -28,7 +28,7 @@
|
||||
}
|
||||
|
||||
configuration {
|
||||
font: "Icomoon-Feather 12";
|
||||
font: "Fira Code Bold 20px";
|
||||
show-icons: true;
|
||||
}
|
||||
|
||||
@@ -85,11 +85,11 @@ dummy {
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: " System";
|
||||
str: " System";
|
||||
padding: 15px;
|
||||
border: 0px 0px 0px 10px;
|
||||
border-radius: 100% 100% 0px 100%;
|
||||
border-color: @peach;
|
||||
border-color: @blue;
|
||||
background-color: @crust;
|
||||
text-color: @text;
|
||||
}
|
||||
@@ -117,7 +117,7 @@ listview {
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 30px;
|
||||
margin: 30px;
|
||||
margin: 10px;
|
||||
background-color: transparent;
|
||||
cursor: "default";
|
||||
}
|
||||
@@ -125,11 +125,12 @@ listview {
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
padding: 35px 10px;
|
||||
border-radius: 5%;
|
||||
padding: 10px;
|
||||
border-radius: 1%;
|
||||
background-color: @crust;
|
||||
text-color: @text;
|
||||
cursor: pointer;
|
||||
children: [ element-text ];
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
@@ -140,7 +141,7 @@ element-text {
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: @crust;
|
||||
text-color: @sapphire;
|
||||
text-color: @yellow;
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
@@ -159,6 +159,27 @@
|
||||
interval = 60;
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
"custom/notification" = {
|
||||
tooltip = false;
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
notification = "<span foreground='red'><sup></sup></span>";
|
||||
none = " ";
|
||||
dnd-notification = "<span foreground='red'><sup></sup></span>";
|
||||
dnd-none = " ";
|
||||
inhibited-notification = "<span foreground='red'><sup></sup></span>";
|
||||
inhibited-none = " ";
|
||||
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
|
||||
dnd-inhibited-none = " ";
|
||||
};
|
||||
return-type = "json";
|
||||
exec-if = "which swaync-client";
|
||||
exec = "swaync-client -swb";
|
||||
on-click = "swaync-client -t -sw";
|
||||
on-click-right = "swaync-client -d -sw";
|
||||
escape = true;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
@@ -149,3 +149,12 @@ window#waybar.hidden {
|
||||
margin: 5px 20px;
|
||||
padding: 0px 10px;
|
||||
}
|
||||
|
||||
/* SwayNC */
|
||||
#custom-notification {
|
||||
font-family: "NotoSansMono Nerd Font";
|
||||
background: @green;
|
||||
border-radius: 10px;
|
||||
padding-left: 10px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
32
programs/wm/common/waybar/default.nix
Normal file
32
programs/wm/common/waybar/default.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
pkgs,
|
||||
monitorSetup,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.waybar =
|
||||
{
|
||||
enable = true;
|
||||
package = pkgs.waybar;
|
||||
}
|
||||
// (
|
||||
if monitorSetup == "single" then
|
||||
import ./single.nix
|
||||
else if monitorSetup == "dual" then
|
||||
import ./dual.nix
|
||||
else if monitorSetup == "side" then
|
||||
import ./side.nix
|
||||
else
|
||||
{ }
|
||||
);
|
||||
|
||||
home.file.".config/waybar/cava.sh".source = ./configs/cava.sh;
|
||||
home.file.".config/waybar/mocha.css".source = ./configs/mocha.css;
|
||||
|
||||
home.file.".config/waybar" = {
|
||||
source = ./configs;
|
||||
# copy the scripts directory recursively
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
}
|
||||
@@ -18,6 +18,7 @@ in
|
||||
modules-center = [
|
||||
"hyprland/workspaces"
|
||||
"niri/workspaces"
|
||||
"custom/notification"
|
||||
];
|
||||
modules-right = [
|
||||
"group/hardware"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user