Compare commits

..

5 Commits

Author SHA1 Message Date
ced4c6e050 Changed: Sketchybar 2025-10-23 08:31:57 +02:00
c3197b86a9 Changed: Sketchybar 2025-09-27 16:20:11 +02:00
aa3e1cedce Added: Darwin Config 2025-09-27 16:18:13 +02:00
26461fbf13 Added: Darwin Config 2025-09-27 14:30:50 +02:00
03aebab782 Renamed home to programs, moved definition to user level 2025-09-22 23:35:57 +02:00
101 changed files with 1716 additions and 731 deletions

4
darwin/brew_casks.txt Normal file
View File

@@ -0,0 +1,4 @@
alacritty
font-roboto-mono
openscad
xquartz

132
darwin/brew_packages.txt Normal file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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="~"
'';
};
}

View File

@@ -81,13 +81,15 @@
) )
]; ];
commonHomeManagerConfig = username: { commonHomeManagerConfig =
{ username, monitorSetup }:
{
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
backupFileExtension = "backup"; backupFileExtension = "backup";
extraSpecialArgs = { extraSpecialArgs = {
inherit inputs username; inherit inputs username monitorSetup;
}; };
users.${username} = import ./users/${username}/home.nix; users.${username} = import ./users/${username}/home.nix;
sharedModules = [ sharedModules = [
@@ -158,6 +160,7 @@
in in
{ {
# ISO Defaults
packages.x86_64-linux.iso = self.nixosConfigurations.iso.config.system.build.isoImage; packages.x86_64-linux.iso = self.nixosConfigurations.iso.config.system.build.isoImage;
packages.x86_64-linux.default = self.packages.x86_64-linux.iso; packages.x86_64-linux.default = self.packages.x86_64-linux.iso;

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
kdePackages.dolphin
libsForQt5.kio-extras
kio-fuse
];
}

View File

@@ -1,11 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
krusader
krename
kdiff3
# kdePackages.kompare
xxdiff
];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
progams.spacefm.enable = true;
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
}

View File

@@ -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
];
}

View File

@@ -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;
}

View File

@@ -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;
};
*/
}

View File

@@ -1,9 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
niri
xwayland-satellite
];
xdg.configFile."niri/config.kdl".source = ./niri-config.kdl;
}

View File

@@ -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;
};
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install sqlitebrowser (DB Browser for SQLite)
home.packages = with pkgs; [
beekeeper-studio
];
}

View File

@@ -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 = { };
};
}

View File

@@ -1,12 +0,0 @@
{
imports = [
./git.nix
./neovim
./fstl.nix
./openscad.nix
./sqllite_browser.nix
./compilers.nix
./beekeeper-studio.nix
#./newelle.nix
];
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install fstl
home.packages = with pkgs; [
fstl
];
}

View File

@@ -1,13 +0,0 @@
{
pkgs,
...
}:
{
home.packages = [ pkgs.gh ];
programs.git = {
enable = true;
# ... Other options ...
};
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install fstl
home.packages = with pkgs; [
newelle
];
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install OpenSCAD
home.packages = with pkgs; [
openscad
];
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install sqlitebrowser (DB Browser for SQLite)
home.packages = with pkgs; [
sqlitebrowser
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
airshipper
];
}

View File

@@ -1,10 +0,0 @@
{
pkgs,
config,
...
}:
{
home.packages = with pkgs; [
itch
];
}

View File

@@ -1,10 +0,0 @@
{
pkgs,
config,
...
}:
{
home.packages = with pkgs; [
lutris
];
}

View File

@@ -1,14 +0,0 @@
{
pkgs,
config,
...
}:
{
home.packages = with pkgs; [
xonotic
# armagetron
# freeciv
# mindustry
# openra
];
}

View File

@@ -1,18 +0,0 @@
{
pkgs,
config,
...
}:
{
/*
home.packages = with pkgs; [
steam
];
*/
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
};
}

View File

@@ -1,7 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
audacity
yt-dlp
];
}

View File

@@ -1,12 +0,0 @@
{
pkgs,
config,
...
}:
{
home.packages = with pkgs; [
# images
imv
];
}

View File

@@ -1,14 +0,0 @@
{
pkgs,
config,
...
}:
# media - control and enjoy audio/video
{
imports = [
./audio.nix
./image.nix
./webcam.nix
];
}

View File

@@ -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
];
};
}

View File

@@ -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; [ ];
};
}

View File

@@ -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
# ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.programs.geary.enable = true;
}

View File

@@ -1,13 +0,0 @@
{ pkgs, ... }:
let
logseq-patch = pkgs.logseq.override {
electron_27 = pkgs.electron_34;
};
in
{
home.packages = with pkgs; [
logseq-patch
logseq
];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [ notesnook ];
}

View File

@@ -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";
# };
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.libsForQt5.okular ];
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install OnlyOffice Desktop Editors
home.packages = with pkgs; [
onlyoffice-desktopeditors
];
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install Slic3r
home.packages = with pkgs; [
slic3r
];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.trilium-desktop ];
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install Element Desktop
home.packages = with pkgs; [
element-desktop
];
}

View File

@@ -1,9 +0,0 @@
{ pkgs, ... }:
{
# Install Teamspeak Desktop
home.packages = with pkgs; [
teamspeak3
# teamspeak6-client
];
}

View File

@@ -1,9 +0,0 @@
{ pkgs, ... }:
{
# Install Telegram Desktop
home.packages = with pkgs; [
telegram-desktop
telegram-cli
];
}

View File

@@ -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;
};
};
};
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install Element Desktop
home.packages = with pkgs; [
zapzap
];
}

View File

@@ -1,14 +0,0 @@
{
pkgs,
config,
...
}:
{
programs.chromium = {
enable = true;
commandLineArgs = [ "--enable-features=TouchpadOverscrollHistoryNavigation" ];
extensions = [
# {id = "";} // extension id, query from chrome web store
];
};
}

View File

@@ -1,12 +0,0 @@
{
pkgs,
config,
username,
...
}:
{
programs.firefox = {
enable = false;
profiles.${username} = { };
};
}

View File

@@ -1,9 +0,0 @@
{ pkgs, ... }:
{
imports = [
./qt.nix
# ./gtk.nix
];
}

View File

@@ -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";
};
}

View File

@@ -1,6 +1,5 @@
{ {
pkgs, pkgs,
config,
... ...
}: }:
{ {

View File

@@ -1,6 +1,4 @@
{ {
pkgs,
config,
username, username,
... ...
}: }:

View File

Before

Width:  |  Height:  |  Size: 9.2 MiB

After

Width:  |  Height:  |  Size: 9.2 MiB

View File

Before

Width:  |  Height:  |  Size: 447 KiB

After

Width:  |  Height:  |  Size: 447 KiB

View 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;
};
}

View File

@@ -1,5 +1,14 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
imports = [
./common/kitty.nix
./common/waybar
./common/cava.nix
./common/rofi
./xdg.nix
./common/neovim
./common/audio.nix
];
gtk = { gtk = {
enable = true; enable = true;

View File

@@ -0,0 +1,50 @@
{
pkgs,
...
}:
{
imports = [
./hyprland.nix
./hypridle.nix
./hyprlock.nix
];
home.packages = with pkgs; [
grim
slurp
wl-clipboard
];
home.file.".config/hypr" = {
source = ./configs;
# copy the scripts directory recursively
recursive = true;
};
home.file.".config/hypr/avatar" = {
source = ../../../avatar;
recursive = true;
};
home.file = {
"Pictures/Avatar" = {
source = ../../../avatar;
recursive = true;
};
};
home.pointerCursor = {
gtk.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
size = 16;
};
home.file.".config/hypr/hyprland.conf".enable = false;
# NOTE: this executable is used by greetd to start a wayland session when system boot up
# with such a vendor-no-locking script, we can switch to another wayland compositor without modifying greetd's config in NixOS module
home.file.".wayland-session" = {
source = "${pkgs.hyprland}/bin/Hyprland";
executable = true;
};
}

View File

@@ -11,36 +11,6 @@ let
apps = "rofi -show window ${theme}"; apps = "rofi -show window ${theme}";
in in
{ {
home.packages = with pkgs; [
grim
slurp
wl-clipboard
];
home.file.".config/hypr" = {
source = ./configs;
# copy the scripts directory recursively
recursive = true;
};
home.file.".config/hypr/avatar" = {
source = ../../avatar;
recursive = true;
};
home.file = {
"Pictures/Avatar" = {
source = ../../avatar;
recursive = true;
};
};
home.pointerCursor = {
gtk.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
size = 16;
};
systemd.user.targets.hyprland-sessionn.Unit.Wants = [ systemd.user.targets.hyprland-sessionn.Unit.Wants = [
"xdg-desktop-autostart.target" "xdg-desktop-autostart.target"
@@ -296,11 +266,4 @@ in
"${super}, mouse:273, resizewindow" "${super}, mouse:273, resizewindow"
]; ];
}; };
# NOTE: this executable is used by greetd to start a wayland session when system boot up
# with such a vendor-no-locking script, we can switch to another wayland compositor without modifying greetd's config in NixOS module
home.file.".wayland-session" = {
source = "${package}/bin/Hyprland";
executable = true;
};
} }

View File

@@ -0,0 +1,14 @@
{
pkgs,
...
}:
{
# imports = [ ./niri-switcher.nix ];
home.packages = with pkgs; [
niri
xwayland-satellite
];
xdg.configFile."niri/config.kdl".source = ./config.kdl;
}

View File

@@ -0,0 +1,6 @@
{ ... }:
{
programs.niriswitcher = {
enable = true;
};
}

11
users/phil/darwin.nix Normal file
View File

@@ -0,0 +1,11 @@
{ config, lib, pkgs, inputs, username, ... }:
{
# macOS-specific user configuration
# You can import shared home configurations here
imports = [
../../home/programs/productivity/okular.nix
];
# macOS-specific home-manager settings
home.stateVersion = "24.05"; # Match your existing version
}

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