so much organization
This commit is contained in:
106
modules/home/defaults.nix
Normal file
106
modules/home/defaults.nix
Normal file
@@ -0,0 +1,106 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
home = {
|
||||
enableNixpkgsReleaseCheck = lib.mkDefault false;
|
||||
homeDirectory = lib.mkDefault "/home/${config.home.username}";
|
||||
packages = with pkgs; [
|
||||
age
|
||||
chromium
|
||||
clinfo
|
||||
cpufetch
|
||||
deadnix
|
||||
direnv
|
||||
firefox
|
||||
gamescope
|
||||
gamescope-wsi
|
||||
goverlay
|
||||
gparted
|
||||
lm_sensors
|
||||
mission-center
|
||||
nano
|
||||
nixfmt-rfc-style
|
||||
pciutils
|
||||
protonup
|
||||
rsync
|
||||
smartmontools
|
||||
sops
|
||||
tailscale
|
||||
tree
|
||||
usbutils
|
||||
vesktop
|
||||
vim
|
||||
vulkan-tools
|
||||
wget
|
||||
];
|
||||
|
||||
stateVersion = lib.mkDefault "23.11";
|
||||
};
|
||||
|
||||
programs = {
|
||||
btop.enable = lib.mkDefault true;
|
||||
fastfetch.enable = lib.mkDefault true;
|
||||
home-manager.enable = lib.mkDefault true;
|
||||
java.enable = lib.mkDefault true;
|
||||
mangohud.enable = lib.mkDefault true;
|
||||
password-store.enable = true;
|
||||
nh = {
|
||||
enable = true;
|
||||
flake = "/etc/nixos";
|
||||
};
|
||||
|
||||
micro = {
|
||||
enable = true;
|
||||
settings = {
|
||||
autoindent = true;
|
||||
autosu = true;
|
||||
eofnewline = true;
|
||||
tabsize = 4;
|
||||
tabstospaces = true;
|
||||
};
|
||||
};
|
||||
|
||||
tmux = {
|
||||
enable = true;
|
||||
terminal = "screen-256color";
|
||||
sensibleOnTop = true;
|
||||
focusEvents = true;
|
||||
newSession = true;
|
||||
mouse = true;
|
||||
plugins = with pkgs; [
|
||||
tmuxPlugins.cpu
|
||||
{
|
||||
plugin = tmuxPlugins.resurrect;
|
||||
extraConfig = "set -g @resurrect-strategy-nvim 'session'";
|
||||
}
|
||||
{
|
||||
plugin = tmuxPlugins.continuum;
|
||||
extraConfig = ''
|
||||
set -g @continuum-restore 'on'
|
||||
set -g @continuum-save-interval '60' # minutes
|
||||
'';
|
||||
}
|
||||
tmuxPlugins.better-mouse-mode
|
||||
];
|
||||
extraConfig = ''
|
||||
set -g status-right '#[fg=black,bg=color15] #{cpu_percentage} %H:%M '
|
||||
run-shell ${pkgs.tmuxPlugins.cpu}/share/tmux-plugins/cpu/cpu.tmux
|
||||
set -g default-terminal "xterm-256color"
|
||||
set -ga terminal-overrides ",*256col*:Tc"
|
||||
set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[ q'
|
||||
set-environment -g COLORTERM "truecolor"
|
||||
|
||||
# Mouse works as expected
|
||||
set-option -g mouse on
|
||||
# easy-to-remember split pane commands
|
||||
bind | split-window -h -c "#{pane_current_path}"
|
||||
bind - split-window -v -c "#{pane_current_path}"
|
||||
bind c new-window -c "#{pane_current_path}"
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
nextcloud-client.enable = lib.mkDefault true;
|
||||
pass-secret-service.enable = lib.mkDefault true;
|
||||
};
|
||||
}
|
||||
21
modules/home/git.nix
Normal file
21
modules/home/git.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{ ... }:
|
||||
let
|
||||
gitAliases = {
|
||||
co = "checkout";
|
||||
ci = "commit";
|
||||
cia = "commit --amend";
|
||||
s = "status";
|
||||
st = "status";
|
||||
b = "branch";
|
||||
p = "pull --rebase";
|
||||
pu = "push";
|
||||
};
|
||||
in
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "mjallen18";
|
||||
userEmail = "matt.l.jallen@gmail.com";
|
||||
aliases = gitAliases;
|
||||
};
|
||||
}
|
||||
62
modules/home/gnome.nix
Normal file
62
modules/home/gnome.nix
Normal file
@@ -0,0 +1,62 @@
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
apple-cursor
|
||||
colloid-icon-theme
|
||||
colloid-gtk-theme
|
||||
gnome-tweaks
|
||||
gnomeExtensions.allow-locked-remote-desktop
|
||||
gnomeExtensions.appindicator
|
||||
gnomeExtensions.arcmenu
|
||||
gnomeExtensions.bing-wallpaper-changer
|
||||
gnomeExtensions.dash-to-dock
|
||||
gnomeExtensions.dash-to-panel
|
||||
gnomeExtensions.gsconnect
|
||||
gnomeExtensions.random-wallpaper
|
||||
gnomeExtensions.tiling-assistant
|
||||
gnomeExtensions.user-themes
|
||||
gnomeExtensions.wikiart-wallpaper
|
||||
papirus-icon-theme
|
||||
pop-gtk-theme
|
||||
];
|
||||
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"org/gnome/desktop/interface".clock-format = "12h";
|
||||
"org/gnome/desktop/interface".color-scheme = "prefer-dark";
|
||||
"org/gnome/desktop/interface".cursor-theme = lib.mkDefault "macOS";
|
||||
"org/gnome/desktop/interface".enable-hot-corners = false;
|
||||
"org/gnome/desktop/interface".font-antialiasing = "grayscale";
|
||||
"org/gnome/desktop/interface".font-hinting = "slight";
|
||||
"org/gnome/desktop/interface".gtk-theme = lib.mkDefault "Colloid-Dark";
|
||||
"org/gnome/desktop/interface".icon-theme = lib.mkDefault "Colloid-Dark";
|
||||
"org/gnome/desktop/peripherals/mouse".accel-profile = "flat";
|
||||
"org/gnome/desktop/peripherals/touchpad".two-finger-scrolling-enabled = true;
|
||||
"org/gnome/desktop/peripherals/touchpad".tap-to-click = true;
|
||||
"org/gnome/mutter".experimental-features = [
|
||||
"scale-monitor-framebuffer"
|
||||
"variable-refresh-rate"
|
||||
];
|
||||
"org/gnome/tweaks".show-extensions-notice = false;
|
||||
"org/gnome/shell".enabled-extensions = [
|
||||
"allowlockedremotedesktop@kamens.us"
|
||||
"appindicatorsupport@rgcjonas.gmail.com"
|
||||
"user-theme@gnome-shell-extensions.gcampax.github.com"
|
||||
"tiling-assistant@leleat-on-github"
|
||||
"dash-to-dock@micxgx.gmail.com"
|
||||
"BingWallpaper@ineffable-gmail.com"
|
||||
"gsconnect@andyholmes.github.io"
|
||||
];
|
||||
"org/gnome/shell/extensions/bingwallpaper".override-lockscreen-blur = true;
|
||||
"org/gnome/shell/extensions/bingwallpaper".random-mode-enabled = true;
|
||||
"org/gnome/shell/extensions/bingwallpaper".revert-to-current-image = false;
|
||||
"org/gnome/shell/extensions/dash-to-panel".primary-monitor = 1;
|
||||
"org/gnome/shell/extensions/dash-to-panel".multi-monitors = false;
|
||||
"org/gnome/shell/extensions/gsconnect".id = "4db35bd2-0dcd-42a3-9f77-ef3e8bb83182";
|
||||
"org/gnome/shell/extensions/gsconnect".name = "matt-nixos";
|
||||
"org/gnome/shell/extensions/user-theme".name = lib.mkDefault "Colloid-Dark";
|
||||
"org/gtk/settings/file-chooser".clock-format = "12h";
|
||||
};
|
||||
};
|
||||
}
|
||||
42
modules/home/librewolf.nix
Normal file
42
modules/home/librewolf.nix
Normal file
@@ -0,0 +1,42 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.librewolf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"identity.fxaccounts.enabled" = true; # Enable Firefox Accounts
|
||||
"privacy.clearOnShutdown.history" = false; # Disable clearing history on shutdown
|
||||
"privacy.clearOnShutdown.downloads" = false; # Disable clearing downloads on shutdown
|
||||
"privacy.clearOnShutdown.cache" = false; # Disable clearing cache on shutdown
|
||||
"privacy.clearOnShutdown.cookiesAndStorage" = false; # Disable clearing cookies and storage on shutdown
|
||||
"privacy.clearOnShutdown.cookies" = false; # Disable clearing cookies on shutdown
|
||||
"privacy.clearOnShutdown_v2.cache" = false; # Disable clearing cache on shutdown
|
||||
"privacy.clearOnShutdown_v2.cookiesAndStorage" = false; # Disable clearing cookies and storage on shutdown
|
||||
"privacy.clearOnShutdown.formdata" = false; # Disable clearing form data on shutdown
|
||||
"privacy.clearOnShutdown.offlineApps" = false; # Disable clearing offline apps on shutdown
|
||||
"privacy.clearHistory.cache" = false; # Disable clearing cache on history clear
|
||||
"privacy.clearHistory.cookiesAndStorage" = false; # Disable clearing cookies on history clear
|
||||
"privacy.clearHistory.historyFormDataAndDownloads" = false; # Disable clearing history, form data, and downloads on history clear
|
||||
"privacy.clearHistory.browsingHistoryAndDownloads" = false; # Disable clearing browsing history and downloads on history clear
|
||||
"privacy.clearSiteData.cache" = false; # Disable clearing cache on site data clear
|
||||
"privacy.clearSiteData.cookiesAndStorage" = false; # Disable clearing cookies on site data clear
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown.cache" = true; # Enable syncing cache clear on shutdown
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown.cookies" = true; # Enable syncing cookies clear on shutdown
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown.downloads" = true; # Enable syncing downloads clear on shutdown
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown.formdata" = true; # Enable syncing form data clear on shutdown
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown.history" = true; # Enable syncing history clear on shutdown
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown.offlineApps" = true; # Enable syncing offline apps clear on shutdown
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown.sessions" = true; # Enable syncing sessions clear on shutdown
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown.siteSettings" = true; # Enable syncing site settings clear on shutdown
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown_v2.cache" = true; # Enable syncing cache clear on shutdown
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown_v2.cookiesAndStorage" = true; # Enable syncing cookies clear on shutdown
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown_v2.downloads" = true; # Enable syncing downloads clear on shutdown
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown_v2.historyFormDataAndDownloads" = true; # Enable syncing form data clear on shutdown
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown_v2.siteSettings" = true; # Enable syncing site settings clear on shutdown
|
||||
"browser.newtabpage.activity-stream.feeds.topsites" = true; # Enable top sites on new tab page
|
||||
"browser.newtabpage.activity-stream.topSitesRows" = 3; # Set number of rows for top sites on new tab page
|
||||
"layout.css.light-dark.enabled" = true; # Enable light/dark theme support
|
||||
"extensions.activeThemeID" = "default-theme@mozilla.org"; # Set active theme
|
||||
"extensions.webextensions.uuids" = "{\"formautofill@mozilla.org\" =\"851c83b7-26d5-449c-8cc9-d8951a0ce78d\",\"pictureinpicture@mozilla.org\" =\"42fa2650-5134-4bef-bafa-b73f9ae51bad\",\"screenshots@mozilla.org\" =\"efd2b692-43c4-433a-aea5-0cb79f8312d4\",\"webcompat-reporter@mozilla.org\" =\"c43a6be2-fb56-4253-b384-ce8e09a89999\",\"webcompat@mozilla.org\" =\"e25fd1bb-7c53-413f-9528-bb922c322a56\",\"default-theme@mozilla.org\" =\"610b67c3-9145-46f7-814f-d8ee2cc8edff\",\"addons-search-detection@mozilla.com\:\"caedb3ca-5cf5-4e23-a251-d742f23e6fc8\",\"uBlock0@raymondhill.net\" =\"7e7d9fd9-12bf-42d3-9c7c-9ffd05420ec7\",\"78272b6fa58f4a1abaac99321d503a20@proton.me\" =\"7242a067-06d8-430b-94a3-00d264cdd57b\",\"addon@darkreader.org\" =\"2f02b112-6acd-4bdc-af2c-1432eb527339\",\"jid1-xUfzOsOFlzSOXg@jetpack\" =\"d0c72046-9903-4118-8160-a028840bf928\",\"chrome-gnome-shell@gnome.org\" =\"a1ab53e6-b765-4f25-8349-383cc04682a0\",\"user-agent-switcher@ninetailed.ninja\" =\"259d07cc-bb32-4ed5-b90f-6d73abdeb7bb\",\"firefoxdav@icloud.com\" =\"110e6e2c-18f8-461d-9f26-b8f04482b6f1\",\"ciscowebexstart1@cisco.com\" =\"a4062240-e73a-4353-bddb-d608d84881f7\",\"{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}\" =\"9164e437-812b-4a07-8dfd-2fd73b39329b\",\"{036a55b4-5e72-4d05-a06c-cba2dfcc134a}\" =\"648fc678-a6fb-47cd-9792-fb9520678c17\",\"{446900e4-71c2-419f-a6a7-df9c091e268b}\" =\"f0b43422-070e-466e-85c9-6543f209f075\",\"jid1-MnnxcxisBPnSXQ@jetpack\" =\"4c448202-c843-4cae-b5c3-d11f2da58fa3\",\"soundfixer@unrelenting.technology\" =\"59b35eb8-1c85-4919-a905-80d120993ddc\",\"floccus@handmadeideas.org\" =\"8ad2956c-8091-41af-a689-7d2108f5958d\",\"{79b9dbcf-cc5a-4cda-89ef-c4ab097eb074}\" =\"c2a223a7-32e0-4726-9f20-17236702b1f5\",\"linkgopher@oooninja.com\" =\"a257858c-0dce-415b-b123-6222876cf843\"}";
|
||||
};
|
||||
};
|
||||
}
|
||||
11
modules/home/office.nix
Normal file
11
modules/home/office.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.onlyoffice = {
|
||||
enable = true;
|
||||
settings = {
|
||||
UITheme = "theme-contrast-dark";
|
||||
forcedRtl = false;
|
||||
maximized = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
29
modules/home/shell.nix
Normal file
29
modules/home/shell.nix
Normal file
@@ -0,0 +1,29 @@
|
||||
{ ... }:
|
||||
let
|
||||
defaultShellAliases = {
|
||||
l = "ls -alh";
|
||||
ducks = "du -cksh * | sort -hr | head -n 15";
|
||||
};
|
||||
in
|
||||
{
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
|
||||
shellAliases = defaultShellAliases;
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [ "git" ];
|
||||
theme = "fishy";
|
||||
};
|
||||
|
||||
# initContent = ''
|
||||
# if command -v tmux &> /dev/null && [ -z "$TMUX" ]; then
|
||||
# tmux attach-session -t default || tmux new-session -s default
|
||||
# fi
|
||||
# '';
|
||||
};
|
||||
}
|
||||
138
modules/home/vscode.nix
Normal file
138
modules/home/vscode.nix
Normal file
@@ -0,0 +1,138 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
open-remote-ssh = pkgs.vscode-utils.buildVscodeExtension {
|
||||
pname = "open-remote-ssh";
|
||||
version = "0.0.49";
|
||||
vscodeExtPublisher = "jeanp413";
|
||||
vscodeExtName = "open-remote-ssh";
|
||||
vscodeExtUniqueId = "jeanp413.open-remote-ssh";
|
||||
src = pkgs.fetchurl {
|
||||
url = "https://open-vsx.org/api/jeanp413/open-remote-ssh/0.0.49/file/jeanp413.open-remote-ssh-0.0.49.vsix";
|
||||
sha256 = "sha256-QfJnAAx+kO2iJ1EzWoO5HLogJKg3RiC3hg1/u2Jm6t4";
|
||||
name = "open-remote-ssh.zip";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
mutableExtensionsDir = false;
|
||||
profiles = {
|
||||
default = {
|
||||
enableUpdateCheck = false;
|
||||
enableExtensionUpdateCheck = false;
|
||||
extensions = with pkgs; [
|
||||
vscode-extensions.bbenoist.nix
|
||||
vscode-extensions.brettm12345.nixfmt-vscode
|
||||
vscode-extensions.cweijan.vscode-database-client2
|
||||
vscode-extensions.dendron.dendron-markdown-preview-enhanced
|
||||
vscode-extensions.jnoortheen.nix-ide
|
||||
vscode-extensions.ms-python.debugpy
|
||||
vscode-extensions.ms-python.pylint
|
||||
vscode-extensions.ms-python.python
|
||||
# vscode-extensions.ms-python.vscode-pylance
|
||||
vscode-extensions.redhat.vscode-xml
|
||||
vscode-extensions.redhat.vscode-yaml
|
||||
vscode-extensions.yy0931.vscode-sqlite3-editor
|
||||
|
||||
open-remote-ssh
|
||||
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||
{
|
||||
name = "copilot-mcp";
|
||||
publisher = "automatalabs";
|
||||
version = "0.0.49";
|
||||
sha256 = "sha256-+G2OQl5SCN7bh7MzGdYiRclIZefBE7lWnGg1kNpCvnA=";
|
||||
}
|
||||
{
|
||||
name = "mcp-server-runner";
|
||||
publisher = "zebradev";
|
||||
version = "0.1.0";
|
||||
sha256 = "sha256-StydVt3VzQUSS/pYp76jnIwtZlEj8gWAGzOARs93J+E=";
|
||||
}
|
||||
{
|
||||
name = "claude-dev";
|
||||
publisher = "saoudrizwan";
|
||||
version = "3.17.9";
|
||||
sha256 = "sha256-y3bFtMe5vZrO3DFb31KDvkzjD2jM76wK89mKhgJXC70=";
|
||||
}
|
||||
];
|
||||
|
||||
userSettings = {
|
||||
|
||||
"editor" = {
|
||||
"defaultFormatter" = "brettm12345.nixfmt-vscode";
|
||||
"fontFamily" = "fira-code-nerd, FiraCode Nerd Font, Consolas, 'Courier New', monospace";
|
||||
"fontLigatures" = true;
|
||||
"renderWhitespace" = "all";
|
||||
};
|
||||
|
||||
"explorer" = {
|
||||
"confirmDelete" = false;
|
||||
"confirmDragAndDrop" = false;
|
||||
};
|
||||
|
||||
"git" = {
|
||||
"confirmSync" = false;
|
||||
"enableSmartCommit" = true;
|
||||
};
|
||||
|
||||
"github" = {
|
||||
"copilot.nextEditSuggestions.enabled" = true;
|
||||
"copilot.enable" = {
|
||||
"nix" = true;
|
||||
};
|
||||
};
|
||||
|
||||
"[json]" = {
|
||||
"editor.defaultFormatter" = "vscode.json-language-features";
|
||||
};
|
||||
|
||||
"nix" = {
|
||||
"enableLanguageServer" = true;
|
||||
"formatterPath" = "nixpkgs-fmt";
|
||||
"serverPath" = "nixd";
|
||||
"serverSettings" = {
|
||||
"nixd" = {
|
||||
"formatting" = {
|
||||
"command" = [ "nixpkgs-fmt" ];
|
||||
};
|
||||
"options" = {
|
||||
# By default, this entriy will be read from `import <nixpkgs> { }`.
|
||||
# You can write arbitary Nix expressions here, to produce valid "options" declaration result.
|
||||
# Tip: for flake-based configuration, utilize `builtins.getFlake`
|
||||
"nixos" = {
|
||||
"expr" = "(builtins.getFlake \"${config.home.homeDirectory}/nix-config\").nixosConfigurations.<name>.options";
|
||||
};
|
||||
"home-manager" = {
|
||||
"expr" = "(builtins.getFlake \"${config.home.homeDirectory}/nix-config\").homeConfigurations.<name>.options";
|
||||
};
|
||||
# # Tip: use ${workspaceFolder} variable to define path
|
||||
# "nix-darwin" = {
|
||||
# "expr" = "(builtins.getFlake \"${workspaceFolder}/path/to/flake\").darwinConfigurations.<name>.options"
|
||||
# }
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
"[nix]" = {
|
||||
"editor" = {
|
||||
"defaultFormatter" = "brettm12345.nixfmt-vscode";
|
||||
"tabSize" = 2;
|
||||
};
|
||||
};
|
||||
|
||||
"security.workspace.trust.untrustedFiles" = "open";
|
||||
|
||||
"workbench" = {
|
||||
"colorCustomizations" = null;
|
||||
"editorAssociations" = {
|
||||
"*.db" = "default";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user