Compare commits

13 Commits

Author SHA1 Message Date
Olaf
86d529fdd0 git signing parameters 2026-03-24 08:19:44 +01:00
Olaf
acf2b21f72 some apps, and GPG/SSH 2026-03-24 07:34:30 +01:00
Olaf Kolkman
2e0bc0bae2 Ollama and Bitwarden 2026-02-07 07:39:27 +01:00
Olaf
353e1373b8 Simplified emacs setup and made it default 2026-01-26 18:07:11 +01:00
Olaf
add16d36f3 various packages and casks 2026-01-26 15:22:27 +01:00
Olaf
fde5d13c0a sqlitestudio not working on this arch 2026-01-05 10:21:15 +01:00
Olaf
02d4f6e68d move order 2025-12-05 10:30:25 +01:00
Olaf
5d811f88ad sorting and minicom 2025-12-03 12:59:29 +01:00
Olaf Kolkman
635d6cdeca 25.05->25.11 2025-12-01 21:39:20 +01:00
Olaf
5cf2d8397d NAtive SQLite manager and rename brew 2025-11-22 18:20:33 +01:00
Olaf
0a1a5a4e4a xmpp clients and act (local git workflow) 2025-10-30 09:52:59 +00:00
Olaf
1666aba15f Removed spotify from menu 2025-10-09 11:57:37 +02:00
Olaf
8a88048d04 Added Steam 2025-10-09 11:56:35 +02:00
13 changed files with 278 additions and 1732 deletions

View File

@@ -2,7 +2,7 @@
description = "Starter Configuration with secrets (removed) for MacOS and NixOS";
inputs = {
nixpkgs = {
url = "github:nixos/nixpkgs//nixpkgs-25.05-darwin";
url = "github:nixos/nixpkgs//nixpkgs-25.11-darwin";
};
home-manager = {
url = "github:nix-community/home-manager";
@@ -11,7 +11,7 @@
url = "github:nix-community/nixd";
};
darwin = {
url = "github:nix-darwin/nix-darwin/nix-darwin-25.05";
url = "github:nix-darwin/nix-darwin/nix-darwin-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-homebrew = {
@@ -40,6 +40,9 @@
nix-vscode-extensions = {
url = "github:nix-community/nix-vscode-extensions";
};
catppuccin= {
url = "github:catppuccin/nix";
};
# mac-app-util doesn't work with OCLP installed on X86
# mac-app-util = {
@@ -60,7 +63,8 @@
nixd,
sops-nix,
nix-vscode-extensions,
# mac-app-util,
catppuccin,
...
}@inputs:
let
user = "olaf";
@@ -109,18 +113,12 @@
mkLinuxApps = system: {
"apply" = mkApp "apply" system;
"build-switch" = mkApp "build-switch" system;
"copy-keys" = mkApp "copy-keys" system;
"create-keys" = mkApp "create-keys" system;
"check-keys" = mkApp "check-keys" system;
"install" = mkApp "install" system;
};
mkDarwinApps = system: {
"apply" = mkApp "apply" system;
"build" = mkApp "build" system;
"build-switch" = mkApp "build-switch" system;
"copy-keys" = mkApp "copy-keys" system;
"create-keys" = mkApp "create-keys" system;
"check-keys" = mkApp "check-keys" system;
"rollback" = mkApp "rollback" system;
};
in
@@ -154,6 +152,8 @@
};
home-manager.sharedModules = [
# mac-app-util.homeManagerModules.default
catppuccin.homeModules.catppuccin
];
}
./hosts/darwin

View File

@@ -0,0 +1,56 @@
(eval-when-compile
(require 'use-package))
;; load some packages
(use-package company
:bind ("<C-tab>" . company-complete)
:diminish company-mode
:commands (company-mode global-company-mode)
:defer 1
:config
(global-company-mode))
(use-package counsel
:commands (counsel-descbinds)
:bind (([remap execute-extended-command] . counsel-M-x)
("C-x C-f" . counsel-find-file)
("C-c g" . counsel-git)
("C-c j" . counsel-git-grep)
("C-c k" . counsel-ag)
("C-x l" . counsel-locate)
("M-y" . counsel-yank-pop)))
(use-package flycheck
:defer 2
:config (global-flycheck-mode))
(use-package ivy
:defer 1
:bind (("C-c C-r" . ivy-resume)
("C-x C-b" . ivy-switch-buffer)
:map ivy-minibuffer-map
("C-j" . ivy-call))
:diminish ivy-mode
:commands ivy-mode
:config
(ivy-mode 1))
(use-package magit
:defer
:if (executable-find "git")
:bind (("C-x g" . magit-status)
("C-x G" . magit-dispatch-popup))
:init
(setq magit-completing-read-function 'ivy-completing-read))
(use-package projectile
:commands projectile-mode
:bind-keymap ("C-c p" . projectile-command-map)
:defer 5
:config
(projectile-global-mode))
(global-set-key (kbd "C-.") 'set-mark-command)

View File

@@ -75,7 +75,19 @@ in
environment.systemPackages =
with pkgs;
[
emacs-unstable
# Emacs with automatic package management from overlay
(emacsWithPackagesFromUsePackage {
config = ../config/emacs/emacs.el;
defaultInitFile = true;
package = emacs-unstable;
alwaysEnsure = true;
extraEmacsPackages = epkgs: with epkgs; [
magit
company
nix-mode
use-package
];
})
]
++ (import ../../modules/shared/packages.nix { inherit pkgs; })

View File

@@ -330,10 +330,24 @@ in
jetbrains-mono
font-awesome
noto-fonts
noto-fonts-emoji
noto-fonts-color-emoji
];
environment.systemPackages = with pkgs; [
# Emacs with automatic package management from overlay
(emacsWithPackagesFromUsePackage {
config = ../config/emacs/emacs.el;
defaultInitFile = true;
package = emacs-unstable;
alwaysEnsure = true;
extraEmacsPackages =
epkgs: with epkgs; [
magit
company
nix-mode
use-package
];
})
gitAndTools.gitFull
inetutils
];

View File

@@ -2,10 +2,10 @@ _:
[
# Development Tools
"homebrew/cask/docker"
"arduino-ide"
"homebrew/cask/docker-desktop"
"iterm2"
"oracle-jdk"
"arduino-ide"
"visual-studio-code"
# Creatative tools
@@ -18,58 +18,52 @@ _:
#"affinity-publisher"
# Communication Tools
"adium"
"discord"
# "slack"
"signal"
"webex"
"whatsapp"
"zoom"
"webex"
# Utility Tools
"syncthing"
"blackhole-16ch"
"blackhole-2ch"
"box-drive"
"box-tools"
"synology-drive"
"spamsieve"
"keybase"
"karabiner-elements"
"keybase"
"spamsieve"
"syncthing-app"
"synology-drive"
# Entertainment Tools
"vlc"
"jellyfin-media-player"
"vimediamanager"
"mediaelch"
"handbrake"
"obs"
"qobuz"
"steam"
"handbrake-app"
"jellyfin-media-player"
"mediaelch"
"obs"
"vimediamanager"
"vlc"
# Productivity Tools
"1Password"
#"zotero"
"gpg-suite"
#"home-assistant"
#"Fantastical"
#"Remarkable"
"mailmate"
"spamsieve"
"macdown"
"calibre"
# "superslicer" # Removed in favor of OrcaSlicer
"orcaslicer"
"element"
# "mqtt-explorer"
"virtualbox"
# "autodesk-fusion" #fails to install
"qmk-toolbox"
"dbeaver-community"
"sqlitestudio"
"element"
"gpg-suite"
"macdown"
"mailmate"
"orcaslicer"
"qmk-toolbox"
"smartsheet"
"spamsieve"
# "sqlitestudio" # Doesn't work without Rosetta
"virtualbox"
"copilot-cli"
# "wireshark"
# Browsers
"google-chrome"
"firefox"
]

View File

@@ -17,6 +17,7 @@ let
additionalFiles = import ./files.nix { inherit user config pkgs; };
in
{
imports = [
./dock
];
@@ -55,8 +56,10 @@ in
"Home Assistant" = 1099568401; # (2025.7.1)
"Ice Cubes for Mastodon" = 6444915884; # (1.11.3)
"LibreOffice" = 1630474372;
"Monal - XMPP Chatting " = 1637078500;
"MQTT Explorer" = 1455214828; # (0.3.5)
"Night Sky" = 475772902; # 475772902
"Native SQLite Manager" = 1416282836; # (1.31.0)
"Remarkable Desktop" = 1276493162; # (3.19.0)
"Slack for Desktop" = 803453959; # (4.45.60)
"WiFi Explorer: Scanner" = 494803304; # (3.5.6)
@@ -75,6 +78,7 @@ in
...
}:
{
home = {
enableNixpkgsReleaseCheck = false;
packages = pkgs.callPackage ./packages.nix { };
@@ -82,11 +86,30 @@ in
sharedFiles
additionalFiles
{ "emacs-launcher.command".source = myEmacsLauncher; }
];
stateVersion = "23.11";
};
programs = { } // import ../shared/home-manager.nix { inherit config pkgs lib; };
programs = {
} // import ../shared/home-manager.nix { inherit config pkgs lib; };
catppuccin = {
enable = true;
flavor = "mocha";
};
services = {
gpg-agent = {
enable = true;
enableSshSupport = true;
extraConfig = ''
default-cache-ttl 600
max-cache-ttl 7200
pinentry-program /Users/olaf/.nix-profile/bin/pinentry-mac
'';
};
};
# Marked broken Oct 20, 2022 check later to remove this
# https://github.com/nix-community/home-manager/issues/3344
@@ -103,7 +126,11 @@ in
{ path = "/System/Applications/Mail.app/"; }
{ path = "/Applications/MailMate.app/"; }
{ path = "/Applications/1Password.app/"; }
{ path = "/Applications/Firefox.app/"; }
{ path = "/run/current-system/Applications/Bitwarden.app/"; }
{ path = "/Applications/Calendar.app/"; }
{ path = "/Applications/Notes.app/"; }
{ path = "/run/current-system/Applications/Firefox.app/"; }
{ path = "/Applications/Slack.app/"; }
{
path = "/Applications/zoom.us.app/";
@@ -113,10 +140,14 @@ in
{ path = "/Applications/iTerm.app/"; }
{ path = "/Applications/Fantastical.app/"; }
# { path = "${pkgs.alacritty}/Applications/Alacritty.app/"; }
{ path = "/Applications/Spotify.app/"; }
{ path = "${pkgs.alacritty}/Applications/Alacritty.app/"; }
# { path = "/Applications/Spotify.app/"; }
{ path = "/Applications/Qobuz.app/"; }
{ path = "/System/Volumes/Preboot/Cryptexes/App/System/Applications/Safari.app/"; }
{
path = "/run/current-system/Applications/Brave Browser.app/";
options = "-l Brave";
}
{ path = "/System/Applications/Photos.app/"; }
{ path = "/System/Applications/System Settings.app/"; }
{ path = "/Applications/Signal.app/"; }
@@ -134,9 +165,10 @@ in
{ path = "/Applications/Microsoft Word.app/"; }
{ path = "/Applications/Microsoft PowerPoint.app/"; }
{ path = "/Applications/Microsoft Teams.app/"; }
{ path = "/Applications/Monal.app/"; }
{ path = "/System/Applications/Utilities/Screen Sharing.app/"; }
{ path = "/run/current-system/Applications/Emacs.app/"; }
{ path = "/run/current-system/Applications/Zotero.app/"; }
{ path = "/run/current-system/Applications/Zotero.app"; }
{
path = "/Applications/";
section = "others";

File diff suppressed because it is too large Load Diff

View File

@@ -1,142 +0,0 @@
;; -------------------------
;; Variable Declarations
;; -------------------------
(defvar org-config-file "~/.local/share/src/nixos-config/modules/shared/config/emacs/config.org")
(defvar default-config-file "~/.emacs.d/default-config.org")
(defvar default-config-url "https://git.kolkman.org/olaf/nixos-config_to_rule_them_all/raw/branch/main/modules/shared/config/emacs/config.org")
;; -------------------------
;; Package Manager Setup
;; -------------------------
(require 'package)
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
("gnu" . "http://elpa.gnu.org/packages/")))
(unless (assoc-default "melpa" package-archives)
(message "Warning: MELPA source not found. Adding MELPA to package-archives.")
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t))
(unless (assoc-default "org" package-archives)
(message "Warning: Org source not found. Adding Org to package-archives.")
(add-to-list 'package-archives '("org" . "https://orgmode.org/elpa/") t))
(setq package-enable-at-startup nil)
;; -------------------------
;; Use-Package Setup
;; -------------------------
(unless (package-installed-p 'use-package)
(package-initialize)
(if (package-install 'use-package)
(message "use-package installed successfully.")
(error "Error: Failed to install use-package."))
(setq use-package-verbose t)
(setq use-package-always-ensure t)
(require 'use-package))
;; -------------------------
;; Environment Variables Setup
;; -------------------------
(use-package exec-path-from-shell
:if (memq window-system '(mac ns x))
:config
(setq exec-path-from-shell-variables '("PATH" "GOPATH" "PNPM_HOME"))
(if (exec-path-from-shell-initialize)
(message "Environment variables initialized successfully.")
(error "Error: Failed to initialize environment variables.")))
(when (daemonp)
(exec-path-from-shell-initialize))
;; -------------------------
;; Straight.el Setup
;; -------------------------
(setq straight-repository-branch "develop")
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 6))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(if (load bootstrap-file nil 'nomessage)
(message "Straight.el loaded successfully.")
(error "Error: Failed to load Straight.el.")))
(setq straight-use-package-by-default t)
(package-initialize)
;; -------------------------
;; Window and UI Setup
;; -------------------------
(defun dl/window-setup ()
(condition-case nil
(progn
(column-number-mode)
(scroll-bar-mode 0)
(menu-bar-mode -1)
(tool-bar-mode 0)
(winner-mode 1)
(add-to-list 'default-frame-alist '(ns-transparent-titlebar . t))
(add-to-list 'default-frame-alist '(ns-appearance . dark))
(setq ns-use-proxy-icon nil)
(setq frame-title-format nil)
(message "Window and UI setup completed successfully."))
(error (message "Error occurred in Window and UI setup."))))
(dl/window-setup)
;; -------------------------
;; Org Mode Setup
;; -------------------------
(defun dl/org-mode-setup ()
(condition-case nil
(progn
(org-indent-mode)
(variable-pitch-mode 1)
(auto-fill-mode 0)
(visual-line-mode 1)
(setq evil-auto-indent nil)
(message "Org mode setup completed successfully."))
(error (message "Error occurred in Org mode setup."))))
(use-package org
:defer t
:hook (org-mode . dl/org-mode-setup)
:config
(setq org-edit-src-content-indentation 2
org-ellipsis ""
org-hide-emphasis-markers t
org-hide-block-startup nil)
:bind (("C-c a" . org-agenda)))
;; -------------------------
;; Default Config Download
;; -------------------------
(defun dl/download-default-config ()
(condition-case nil
(progn
(unless (file-exists-p default-config-file)
(url-retrieve default-config-url
(lambda (_status)
;; delete-region removes the HTTP headers from the downloaded content.
(delete-region (point-min) (1+ url-http-end-of-headers))
;; save the contents of the buffer to the file.
(write-file default-config-file)))
(message "Default configuration downloaded successfully.")))
(error (message "Error occurred while downloading the default configuration."))))
;; -------------------------
;; Load Org Config or Default
;; -------------------------
(condition-case nil
(progn
(unless (file-exists-p org-config-file)
(dl/download-default-config))
(if (file-exists-p org-config-file)
(org-babel-load-file org-config-file)
(org-babel-load-file default-config-file))
(message "Configuration loaded successfully."))
(error (message "Error occurred while loading the configuration.")))

View File

@@ -9,8 +9,4 @@
# text = githubPublicKey;
# };
# Initializes Emacs with org-mode so we can tangle the main config
".emacs.d/init.el" = {
text = builtins.readFile ../shared/config/emacs/init.el;
};
}

View File

@@ -11,6 +11,16 @@ let
in
{
gpg = {
enable = true;
settings = {
default-key = "01B157D574FEDBB2" ;
no-emit-version = true;
auto-key-retrieve = true;
personal-digest-preferences= "SHA512 SHA384 SHA256 SHA224";
};
};
# Shared shell configuration
zsh = {
@@ -34,6 +44,10 @@ in
. /nix/var/nix/profiles/default/etc/profile.d/nix.sh
fi
# GPGAgent for SSH
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
# Define variables for directories
export PATH=$HOME/.pnpm-packages/bin:$HOME/.pnpm-packages:$PATH
export PATH=$HOME/.npm-packages/bin:$HOME/bin:$PATH
@@ -88,12 +102,11 @@ in
git = {
enable = true;
ignores = [ "*.swp" ];
userName = name;
userEmail = email;
lfs = {
enable = true;
};
extraConfig = {
settings = {
init.defaultBranch = "main";
core = {
editor = "vim";
@@ -102,6 +115,15 @@ in
commit.gpgsign = false;
pull.rebase = true;
rebase.autoStash = true;
user = {
name = name;
email = email;
};
};
signing = {
format = "openpgp";
key = null;
signByDefault = true;
};
};
@@ -308,16 +330,6 @@ in
(lib.mkIf pkgs.stdenv.hostPlatform.isDarwin "/Users/${user}/.ssh/config_external")
];
matchBlocks = {
"Host *" = {
identityAgent = "\"~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock\"";
};
"github.com" = {
identitiesOnly = true;
identityFile = [
(lib.mkIf pkgs.stdenv.hostPlatform.isLinux "/home/${user}/.ssh/id_github")
(lib.mkIf pkgs.stdenv.hostPlatform.isDarwin "/Users/${user}/.ssh/id_github")
];
};
"moonunit.kolkman.org" = {
hostname = "moonunit.kolkman.org";
user = "root";
@@ -409,4 +421,7 @@ in
bind-key -T copy-mode-vi 'C-\' select-pane -l
'';
};
}

View File

@@ -6,9 +6,19 @@ with pkgs;
nixd
mas
# The Web Browsers
brave
firefox
# google-chrome. #stopped working
# security and some such
bitwarden-desktop
# bitwarden-cli
yubikey-manager # provides ykman
pinentry_mac
# General packages for development and system management
#alacritty
alacritty
ansible
aspell
aspellDicts.en
@@ -16,88 +26,102 @@ with pkgs;
bat
btop
coreutils
difftastic
htop
killall
minicom
mtr
ncdu
neofetch
nixfmt-rfc-style
openssh
postgresql
sqlite
unrar
wget
zip
htop
ncdu
mtr
nixfmt-rfc-style
difftastic
# Development
# Development
act
autoconf
autoconf-archive
automake
ccache
clang-tools
cmake
dfu-util
go
jd-diff-patch #json diff patch
jq # json tool
llvm
nasm
ninja
pkg-config
llvm
clang-tools
dfu-util
go
jq # json tool
jd-diff-patch #json diff patch
# Encryption and security tools
age
sops
gnupg
libfido2
just
libfido2
sops
# Cloud-related tools and SDKs
docker
docker-compose
# Media-related packages
emacs-all-the-icons-fonts
dejavu_fonts
ffmpeg
emacs-all-the-icons-fonts
fd
ffmpeg
font-awesome
hack-font
noto-fonts
noto-fonts-emoji
meslo-lgs-nf
noto-fonts
noto-fonts-color-emoji
# Node.js development tools
nodePackages.npm # globally install npm
nodePackages.prettier
nodejs
# Text and terminal utilities
xquartz
xterm
htop
hunspell
iftop
# inetutils # includes Telnet
jetbrains-mono
jq
ripgrep
tree
tmux
tree
unrar
unzip
inetutils # includes Telnet
# zsh-powerlevel10k
# Python packages
# python3
virtualenv
(python3.withPackages (python-pkgs: with python-pkgs; [
pandas
requests
tkinter
]))
# LLM
ollama
# Social
pidgin
# Rust Related
rustc
@@ -107,7 +131,7 @@ with pkgs;
# (vscode-with-extensions.override {
# vscodeExtensions =
# with vscode-extensions;
# [
# [https://github.com/dustinlyons/nixos-config/
# #bbenoist.nix
# jnoortheen.nix-ide
# ms-python.python
@@ -145,38 +169,60 @@ with pkgs;
# })
# XML, Tex and LaTex
pandoc
mdbook
xml2rfc
rubyPackages_3_4.kramdown-rfc2629
zotero
mdbook
pandoc
rubyPackages_3_4.kramdown-rfc2629
tex-fmt
xml2rfc
zotero
(texlive.combine {
inherit (texlive)
apa6
apa7
apacite
biber
biblatex-apa6
biblatex
biblatex-apa6
bibunits
catchfile
comment
courier
csquotes
draftwatermark
endfloat
enumitem
fancyhdr
fontawesome5
footmisc
footnotehyper
geometry
ifmtarg
latexmk
lipsum
lualatex-math
makecell
microtype
multirow
nowidow
parskip
ragged2e
scalerel
scheme-small
selnolig
sourcesanspro
svg
tcolorbox
texcount
threeparttable
tikzfill
titlesec
titling
tocloft
transparent
upquote
url
xifthen
xurl
;