diff options
author | Jacob Janzen <jacob.a.s.janzen@gmail.com> | 2024-10-07 18:55:30 -0500 |
---|---|---|
committer | Jacob Janzen <jacob.a.s.janzen@gmail.com> | 2024-10-07 18:55:30 -0500 |
commit | 616c0b69313ce28bcc727b1763e99604929c30da (patch) | |
tree | d09cf3083ead9885000487440f48ce4e43a920f8 | |
parent | 0ef7783a21a5f63f45d8c1bc466d0dce435f966e (diff) |
begin nix migration for mac
75 files changed, 1024 insertions, 814 deletions
@@ -74,8 +74,9 @@ $(DSTDIR)/$(FONTSDIR)/.SauceCodePro: $(SRCDIR)/$(FONTSDIR)/SauceCodePro.tar.gz macos-update: install brew upgrade -# macos install also install fonts and tells System Events to update the wallpaper -macos-install: $(CONFIGS) fonts +# macos install tells System Events to update the wallpaper +macos-install: $(CONFIGS) + darwin-rebuild switch --flake $(DSTDIR)/.flake osascript -e "tell application \"System Events\" to tell every desktop to set picture to \"/$$HOME/.wallpaper\" as POSIX file" # nixos update backs up the flake lock file diff --git a/common/.config/emacs/languages.el.org b/common/.config/emacs/languages.el.org index 3ee63e0..4544563 100644 --- a/common/.config/emacs/languages.el.org +++ b/common/.config/emacs/languages.el.org @@ -2,90 +2,90 @@ * Shell Script Run =eglot= on shell script files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (add-hook 'sh-mode-hook 'jj/eglot-setup) #+end_src * C Run =eglot= on C and C++ files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (add-hook 'c-mode-hook 'jj/eglot-setup) (add-hook 'c++-mode-hook 'jj/eglot-setup) (add-hook 'cc-mode-hook 'jj/eglot-setup) #+end_src Run =eglot= on CMake files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (use-package cmake-mode :init (add-hook 'cmake-mode-hook 'jj/eglot-setup)) #+end_src Turn off C mode in =lex= and =yacc= files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (add-to-list 'auto-mode-alist '("\\.l$" . prog-mode)) (add-to-list 'auto-mode-alist '("\\.y$" . prog-mode)) #+end_src * Web Run =eglot= on HTML files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (add-hook 'html-mode-hook 'jj/eglot-setup) #+end_src Run =eglot= on CSS files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (add-hook 'css-mode-hook 'jj/eglot-setup) #+end_src Run =eglot= on JavaScript files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (add-hook 'js-json-mode-hook 'jj/eglot-setup) (add-hook 'js-mode-hook 'jj/eglot-setup) #+end_src * Python Run =eglot= on Python files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (add-hook 'python-mode-hook 'jj/eglot-setup) #+end_src * Go Install Go support and run =eglot= on Go files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (use-package go-mode :init (add-hook 'go-mode-hook 'jj/eglot-setup)) #+end_src Get documentation for Go variables, functions, and arguments. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (use-package go-eldoc :init (add-hook 'go-mode-hook 'go-eldoc-setup)) #+end_src Automatically generate tests in Go. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (use-package go-gen-test) #+end_src Get refactoring tools from =go-guru=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (use-package go-guru :hook (go-mode . go-guru-hl-identifier-mode)) #+end_src * Lua Install Lua support and run =eglot= on Lua files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (use-package lua-mode :init (add-hook 'lua-mode-hook 'jj/eglot-setup)) #+end_src Better Lisp editing with =lispy=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (use-package lispy :hook (emacs-lisp-mode . lispy-mode)) (use-package lispyville @@ -94,7 +94,7 @@ Better Lisp editing with =lispy=. #+end_src Better parentheses handling in lisp with =parinfer-rust-mode=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (use-package parinfer-rust-mode :hook (emacs-lisp-mode . parinfer-rust-mode) :init @@ -103,20 +103,62 @@ Better parentheses handling in lisp with =parinfer-rust-mode=. * Markdown Install Markdown support and run =eglot= on Markdown files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (use-package markdown-mode :init (add-hook 'markdown-mode-hook 'jj/eglot-setup)) + (add-hook 'markdown-mode-hook 'variable-pitch-mode) + (custom-set-faces + `(variable-pitch ((t :font ,jj/var-font))) + `(fixed-pitch ((t :font ,jj/mono-font))) + '(markdown-header-face ((t (:inherit variable-pitch :weight bold)))) + '(markdown-header-face-1 ((t (:inherit markdown-header-face :height 2.0)))) + '(markdown-header-face-2 ((t (:inherit markdown-header-face :height 1.75)))) + '(markdown-header-face-3 ((t (:inherit markdown-header-face :height 1.5)))) + '(markdown-header-face-4 ((t (:inherit markdown-header-face :height 1.25)))) + '(markdown-header-face-5 ((t (:inherit markdown-header-face :height 1.1)))) + '(markdown-header-face-6 ((t (:inherit markdown-header-face :height 1.1)))) + '(markdown-blockquote-face ((t (:inherit fixed-pitch)))) + '(markdown-code-face ((t (:inherit fixed-pitch)))) + '(markdown-html-attr-name-face ((t (:inherit fixed-pitch)))) + '(markdown-html-attr-value-face ((t (:inherit fixed-pitch)))) + '(markdown-html-entity-face ((t (:inherit fixed-pitch)))) + '(markdown-html-tag-delimiter-face ((t (:inherit fixed-pitch)))) + '(markdown-html-tag-name-face ((t (:inherit fixed-pitch)))) + '(markdown-comment-face ((t (:inherit fixed-pitch)))) + '(markdown-header-delimiter-face ((t (:inherit fixed-pitch)))) + '(markdown-hr-face ((t (:inherit fixed-pitch)))) + '(markdown-inline-code-face ((t (:inherit fixed-pitch)))) + '(markdown-language-info-face ((t (:inherit fixed-pitch)))) + '(markdown-language-keyword-face ((t (:inherit fixed-pitch)))) + '(markdown-link-face ((t (:inherit fixed-pitch)))) + '(markdown-markup-face ((t (:inherit fixed-pitch)))) + '(markdown-math-face ((t (:inherit fixed-pitch)))) + '(markdown-metadata-key-face ((t (:inherit fixed-pitch)))) + '(markdown-metadata-value-face ((t (:inherit fixed-pitch)))) + '(markdown-missing-link-face ((t (:inherit fixed-pitch)))) + '(markdown-plain-url-face ((t (:inherit fixed-pitch)))) + '(markdown-reference-face ((t (:inherit fixed-pitch)))) + '(markdown-table-face ((t (:inherit fixed-pitch)))) + '(markdown-url-face ((t (:inherit fixed-pitch))))) + (add-hook 'markdown-mode-hook 'visual-line-mode) + (add-hook 'markdown-mode-hook #'(lambda () (display-line-numbers-mode -1))) + (defun jj/markdown-mode-visual-fill () + (setq visual-fill-column-width 100 + visual-fill-column-center-text t) + (visual-fill-column-mode 1)) + (add-hook 'markdown-mode-hook #'jj/markdown-mode-visual-fill) + (setq markdown-hide-markup t) #+end_src * LaTeX Run =eglot= on TeX files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (add-hook 'tex-mode-hook 'jj/eglot-setup) #+end_src Use AUCTeX for extra LaTeX integration. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (use-package auctex :config (add-hook 'LaTeX-mode-hook 'jj/eglot-setup) @@ -126,7 +168,7 @@ Use AUCTeX for extra LaTeX integration. #+end_src Use CDLaTeX for environment and macro insertion. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (use-package cdlatex :config (add-hook 'LaTeX-mode-hook #'turn-on-cdlatex)) @@ -134,7 +176,7 @@ Use CDLaTeX for environment and macro insertion. * YAML Install YAML support and run =eglot= on YAML files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (use-package yaml-mode :init (add-hook 'yaml-mode-hook 'jj/eglot-setup)) @@ -142,7 +184,7 @@ Install YAML support and run =eglot= on YAML files. * Nix Install =nix= support and run =eglot= on =nix= files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes +#+begin_src emacs-lisp (use-package nix-mode :mode "\\.nix\\'") #+end_src diff --git a/common/.config/emacs/user-interface.el.org b/common/.config/emacs/user-interface.el.org index ff4bd34..cc415d8 100644 --- a/common/.config/emacs/user-interface.el.org +++ b/common/.config/emacs/user-interface.el.org @@ -29,7 +29,7 @@ Use my custom Doom Disco light theme. (load-theme 'doom-disco t) (doom-themes-org-config)) -(add-to-list 'default-frame-alist '(alpha-background . 90)) + (add-to-list 'default-frame-alist '(alpha-background . 90)) #+end_src Use =doom-modeline= for a nicer modeline. diff --git a/common/.flake/home/clang-format.nix.org b/common/.flake/home/clang-format.nix.org new file mode 100644 index 0000000..64a2a64 --- /dev/null +++ b/common/.flake/home/clang-format.nix.org @@ -0,0 +1,15 @@ +#+title: Clang Format Default Options + +#+begin_src nix :tangle ~/.flake/home/clang-format.nix :mkdirp yes + { config, pkgs, ... }: + + { + home.file.".clang-format".text = '' + BasedOnStyle: LLVM + IndentWidth: 4 + BreakBeforeBraces: Linux + AllowShortIfStatementsOnASingleLine: false + IndentCaseLabels: false + ''; + } +#+end_src diff --git a/common/.flake/home/cursor.nix.org b/common/.flake/home/cursor.nix.org new file mode 100644 index 0000000..15396a0 --- /dev/null +++ b/common/.flake/home/cursor.nix.org @@ -0,0 +1,13 @@ +#+title: Cursor Configuration + +Use =vanilla-dmz= cursor size 16. +#+begin_src nix :tangle ~/.flake/home/cursor.nix :mkdirp yes +{ config, pkgs, ... }: + +{ + home.file.".icons/default".source = "${pkgs.vanilla-dmz}/share/icons/Vanilla-DMZ"; + xresources.properties = { + "Xcursor.size" = 16; + }; +} +#+end_src diff --git a/common/.flake/home/fonts.nix.org b/common/.flake/home/fonts.nix.org new file mode 100644 index 0000000..3a01993 --- /dev/null +++ b/common/.flake/home/fonts.nix.org @@ -0,0 +1,14 @@ +#+title: Font Configuration + +Install fonts necessary for my configuration. +#+begin_src nix :tangle ~/.flake/home/fonts.nix :mkdirp yes +{ config, pkgs, ... }: + +{ + fonts.fontconfig.enable = true; + home.packages = with pkgs; [ + cm_unicode + (pkgs.nerdfonts.override { fonts = [ "SourceCodePro" ]; }) + ]; +} +#+end_src diff --git a/common/.flake/home/hyprland.nix.org b/common/.flake/home/hyprland.nix.org new file mode 100644 index 0000000..725f920 --- /dev/null +++ b/common/.flake/home/hyprland.nix.org @@ -0,0 +1,175 @@ +#+title: Hyprland Configuration + +Open my Hyprland configuration. +#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes + { config, pkgs, ... }: + + { + wayland.windowManager.hyprland = { + enable = true; + settings = { +#+end_src + +I have a 1440p monitor and a 1080p monitor to its left rotated to be vertical. +#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes + monitor = [ "DP-2, 2560x1440@180, 0x0, 1" "HDMI-A-2, 1920x1080@60, -1080x-100, 1, transform, 3" ]; +#+end_src + +Set terminal, file manager, and menu. +#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes + "$terminal" = "foot"; + "$fileManager" = "dolphin"; + "$menu" = "fuzzel"; +#+end_src + +Enable startup applications: +- =nm-applet= for network configuration +- =blueman-applet= for bluetooth configuration +- =waybar= as top bar +- =swaybg= to set wallpaper +- =mpdscribble= as Last.fm scrobbler program. +#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes + exec-once = [ + "nm-applet &" + "blueman-applet &" + "waybar" + "swaybg -m fill -i ~/.wallpaper" + "mpdscribble" + ]; +#+end_src + +Specify cursor size. +#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes + env = [ + "XCURSOR_SIZE,24" + "HYPRCURSOR_SIZE,24" + ]; +#+end_src + +Set general appearance of the window manager. +#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes + general = { + gaps_in = 5; + gaps_out = 20; + border_size = 2; + resize_on_border = false; + layout = "dwindle"; + "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg"; + "col.inactive_border" = "rgba(595959aa)"; + }; +#+end_src + +Set window decorations. +#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes + decoration = { + rounding = 10; + active_opacity = 1.0; + inactive_opacity = 1.0; + drop_shadow = true; + shadow_range = 4; + shadow_render_power = 3; + "col.shadow" = "rgba(1a1a1aee)"; + blur = { + enabled = true; + size = 3; + passes = 1; + vibrancy = "0.1696"; + }; + }; +#+end_src + +Set window animations. +#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes + animations = { + enabled = true; + bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; + animation = [ + "windows, 1, 7, myBezier" + "windowsOut, 1, 7, default, popin 80%" + "border, 1, 10, default" "borderangle, 1, 8, default" + "fade, 1, 7, default" "workspaces, 1, 6, default" + ]; + }; +#+end_src + +Configure layouts. +#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes + dwindle = { + pseudotile = true; + preserve_split = true; + }; + master = { + new_status = "master"; + }; +#+end_src + +Configure the inputs. +#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes + input = { + kb_layout = "us"; + follow_mouse = 1; + sensitivity = 0; + }; +#+end_src + +Configure window manager controls. +#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes + "$mainMod" = "SUPER"; + bind = [ + "$mainMod, RETURN, exec, $terminal" + "$mainMod SHIFT, Q, killactive" + "$mainMod, E, exec, $fileManager" + "$mainMod SHIFT, SPACE, togglefloating" + "$mainMod, D, exec, $menu" + "$mainMod, P, pseudo" + "$mainMod SHIFT, E, togglesplit" + "$mainMod, H, movefocus, l" + "$mainMod, J, movefocus, d" + "$mainMod, K, movefocus, u" + "$mainMod, L, movefocus, r" + "$mainMod, 1, workspace, 1" + "$mainMod, 2, workspace, 2" + "$mainMod, 3, workspace, 3" + "$mainMod, 4, workspace, 4" + "$mainMod, 5, workspace, 5" + "$mainMod, 6, workspace, 6" + "$mainMod, 7, workspace, 7" + "$mainMod, 8, workspace, 8" + "$mainMod, 9, workspace, 9" + "$mainMod, 0, workspace, 10" + "$mainMod SHIFT, 1, movetoworkspace, 1" + "$mainMod SHIFT, 2, movetoworkspace, 2" + "$mainMod SHIFT, 3, movetoworkspace, 3" + "$mainMod SHIFT, 4, movetoworkspace, 4" + "$mainMod SHIFT, 5, movetoworkspace, 5" + "$mainMod SHIFT, 6, movetoworkspace, 6" + "$mainMod SHIFT, 7, movetoworkspace, 7" + "$mainMod SHIFT, 8, movetoworkspace, 8" + "$mainMod SHIFT, 9, movetoworkspace, 9" + "$mainMod SHIFT, 0, movetoworkspace, 10" + "$mainMod CONTROL, L, exec, hyprlock" + "$mainMod, S, exec, hyprshot -m window --clipboard-only" + "$mainMod SHIFT, S, exec, hyprshot -m region --clipboard-only" + "$mainMod SHIFT CONTROL, S, exec, hyprshot -m output --clipboard-only" + "$mainMod, M, exec, ~/.local/bin/poweroptions.sh" + "$mainMod, F, fullscreen" + ]; + bindel = [ + ",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" + ",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" + ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" + ",XF86Eject, exec, mpc toggle" + ]; + bindm = [ + "$mainMod, mouse:272, movewindow" + "$mainMod, mouse:273, resizewindow" + ]; + windowrulev2 = "suppressevent maximize, class:.*"; +#+end_src + +Close my Hyprland configuration. +#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes + }; + }; + } +#+end_src diff --git a/nixos/.flake/home/programs/emacs/core.nix.org b/common/.flake/home/programs/emacs/core.nix.org index b1632d9..61688be 100644 --- a/nixos/.flake/home/programs/emacs/core.nix.org +++ b/common/.flake/home/programs/emacs/core.nix.org @@ -1,10 +1,11 @@ #+title: Emacs Configuration -#+begin_src nix :tangle ~/.flake/home/programs/emacs/core.nix :mkdirp yes +#+begin_src nix { config, pkgs, ... }: { home.file = { + "./.config/emacs/init.el".source = ./init.el; "./.config/emacs/force-custom-file.el".source = ./force-custom-file.el; "./.config/emacs/package-setup.el".source = ./package-setup.el; "./.config/emacs/user-interface.el".source = ./user-interface.el; @@ -13,13 +14,6 @@ }; programs.emacs = { enable = true; - extraConfig = '' - (load "~/.config/emacs/force-custom-file.el") - (load "~/.config/emacs/package-setup.el") - (load "~/.config/emacs/user-interface.el") - (load "~/.config/emacs/tools.el") - (load "~/.config/emacs/languages.el") - ''; }; } #+end_src diff --git a/nixos/.flake/home/programs/emacs/feed.org.org b/common/.flake/home/programs/emacs/feed.org.org index d074855..d074855 120000 --- a/nixos/.flake/home/programs/emacs/feed.org.org +++ b/common/.flake/home/programs/emacs/feed.org.org diff --git a/nixos/.flake/home/programs/emacs/force-custom-file.el.org b/common/.flake/home/programs/emacs/force-custom-file.el.org index 06a4dc7..06a4dc7 120000 --- a/nixos/.flake/home/programs/emacs/force-custom-file.el.org +++ b/common/.flake/home/programs/emacs/force-custom-file.el.org diff --git a/common/.flake/home/programs/emacs/init.el.org b/common/.flake/home/programs/emacs/init.el.org new file mode 120000 index 0000000..6b2f721 --- /dev/null +++ b/common/.flake/home/programs/emacs/init.el.org @@ -0,0 +1 @@ +../../../../../common/.config/emacs/init.el.org
\ No newline at end of file diff --git a/nixos/.flake/home/programs/emacs/languages.el.org b/common/.flake/home/programs/emacs/languages.el.org index dd60c9f..dd60c9f 120000 --- a/nixos/.flake/home/programs/emacs/languages.el.org +++ b/common/.flake/home/programs/emacs/languages.el.org diff --git a/nixos/.flake/home/programs/emacs/package-setup.el.org b/common/.flake/home/programs/emacs/package-setup.el.org index c0f3ead..c0f3ead 120000 --- a/nixos/.flake/home/programs/emacs/package-setup.el.org +++ b/common/.flake/home/programs/emacs/package-setup.el.org diff --git a/nixos/.flake/home/programs/emacs/tools.el.org b/common/.flake/home/programs/emacs/tools.el.org index ff0296b..ff0296b 120000 --- a/nixos/.flake/home/programs/emacs/tools.el.org +++ b/common/.flake/home/programs/emacs/tools.el.org diff --git a/nixos/.flake/home/programs/emacs/user-interface.el.org b/common/.flake/home/programs/emacs/user-interface.el.org index 8a7f782..8a7f782 120000 --- a/nixos/.flake/home/programs/emacs/user-interface.el.org +++ b/common/.flake/home/programs/emacs/user-interface.el.org diff --git a/common/.flake/home/programs/fastfetch.nix.org b/common/.flake/home/programs/fastfetch.nix.org new file mode 100644 index 0000000..96b2044 --- /dev/null +++ b/common/.flake/home/programs/fastfetch.nix.org @@ -0,0 +1,84 @@ +#+title: Fastfetch Configuration + +Specify the layout for =fastfetch=. +#+begin_src nix :tangle ~/.flake/home/programs/fastfetch.nix :mkdirp yes + { config, pkgs, ... }: + + { + programs.fastfetch = { + enable = true; + settings = { + logo = { + type = "raw"; + source = "~/.config/fastfetch/logo.sixel"; + width = 40; + height = 19; + }; + display = { + separator = " "; + }; + modules = [ + "title" + { + type = "custom"; + format = "──────────────────────────────────"; + } + { + type = "os"; + key = ""; + } + { + type = "kernel"; + key = ""; + } + { + type = "uptime"; + key = ""; + } + { + type = "packages"; + key = ""; + } + { + type = "shell"; + key = ""; + } + { + type = "display"; + key = ""; + } + { + type = "wm"; + key = ""; + } + { + type = "terminal"; + key = ""; + } + { + type = "cpu"; + key = ""; + } + { + type = "gpu"; + key = ""; + } + { + type = "memory"; + key = ""; + } + { + type = "disk"; + key = ""; + } + { + type = "locale"; + key = ""; + } + "break" + "colors" + ]; + }; + }; + } +#+end_src diff --git a/common/.flake/home/programs/foot.nix.org b/common/.flake/home/programs/foot.nix.org new file mode 100644 index 0000000..3490bed --- /dev/null +++ b/common/.flake/home/programs/foot.nix.org @@ -0,0 +1,42 @@ +#+title: Foot Terminal Configuration + +Specify my font and colour scheme for =foot=. +#+begin_src nix :tangle ~/.flake/home/programs/foot.nix :mkdirp yes +{ config, pkgs, ... }: + +{ + programs.foot = { + enable = true; + settings = { + main = { + font = "SauceCodePro Nerd Font:size=10"; + pad = "6x6"; + }; + mouse = { + hide-when-typing = "yes"; + }; + colors = { + alpha = "0.9"; + background = "ece0c9"; + foreground = "191916"; + regular0 = "191916"; + regular1 = "ac4438"; + regular2 = "354d52"; + regular3 = "ba9151"; + regular4 = "465b91"; + regular5 = "5b5489"; + regular6 = "4e6062"; + regular7 = "c9ad7a"; + bright0 = "293c3c"; + bright1 = "d8611c"; + bright2 = "4b7b53"; + bright3 = "d8974b"; + bright4 = "2f3d91"; + bright5 = "735e82"; + bright6 = "6b8f92"; + bright7 = "ece0c9"; + }; + }; + }; +} +#+end_src diff --git a/common/.flake/home/programs/git.nix.org b/common/.flake/home/programs/git.nix.org new file mode 100644 index 0000000..baf3aaa --- /dev/null +++ b/common/.flake/home/programs/git.nix.org @@ -0,0 +1,18 @@ +#+title: Git Configuration + +Specify my name and email for =git=. Also enable =delta= and =pull.rebase=. +#+begin_src nix :tangle ~/.flake/home/programs/git.nix :mkdirp yes +{ config, pkgs, ... }: + +{ + programs.git = { + enable = true; + userName = "Jacob Janzen"; + userEmail = "jacob.a.s.janzen@gmail.com"; + delta.enable = true; + extraConfig = { + pull.rebase = true; + }; + }; +} +#+end_src diff --git a/common/.flake/home/programs/hyprlock.nix.org b/common/.flake/home/programs/hyprlock.nix.org new file mode 100644 index 0000000..4e94386 --- /dev/null +++ b/common/.flake/home/programs/hyprlock.nix.org @@ -0,0 +1,42 @@ +#+title: Hyprlock Configuration + +Place a textbox in the middle of the screen and use my blurred wallpaper as the background when locking. +#+begin_src nix :tangle ~/.flake/home/programs/hyprlock.nix :mkdirp yes + { config, pkgs, ... }: + + { + programs.hyprlock = { + enable = true; + settings = { + general = { + disable_loading_bar = true; + grace = 0; + hide_cursor = true; + no_fade_in = false; + }; + background = [ + { + path = "~/.wallpaper"; + blur_passes = 3; + blur_size = 8; + } + ]; + input-field = [ + { + size = "200, 50"; + position = "0, -80"; + monitor = ""; + dots_center = true; + fade_on_empty = false; + font_color = "rgb(202, 211, 245)"; + inner_color = "rgb(91, 96, 120)"; + outer_color = "rgb(24, 25, 38)"; + outline_thickness = 5; + placeholder_text = "<span foreground=\"##cad3f5\">Password...</span>"; + shadow_passes = 2; + } + ]; + }; + }; + } +#+end_src diff --git a/common/.flake/home/programs/ncmpcpp.nix.org b/common/.flake/home/programs/ncmpcpp.nix.org new file mode 100644 index 0000000..eb1f02f --- /dev/null +++ b/common/.flake/home/programs/ncmpcpp.nix.org @@ -0,0 +1,28 @@ +#+title: =ncmpcpp= Configuration + +Enable =vi=-like controls and specify directories and MPD address. +#+begin_src nix :tangle ~/.flake/home/programs/ncmpcpp.nix :mkdirp yes +{ config, pkgs, ... }: + +{ + programs.ncmpcpp = { + enable = true; + bindings = [ + { key = "j"; command = "scroll_down"; } + { key = "k"; command = "scroll_up"; } + { key = "h"; command = "previous_column"; } + { key = "l"; command = "next_column"; } + { key = "g"; command = "move_home"; } + { key = "G"; command = "move_end"; } + { key = "n"; command = "next_found_item"; } + { key = "N"; command = "previous_found_item"; } + ]; + mpdMusicDir = "~/Music"; + settings = { + ncmpcpp_directory = "~/.config/nmcpcpp"; + mpd_host = "localhost"; + mpd_port = "6600"; + }; + }; +} +#+end_src diff --git a/common/.flake/home/programs/neovim.nix.org b/common/.flake/home/programs/neovim.nix.org new file mode 100644 index 0000000..350eded --- /dev/null +++ b/common/.flake/home/programs/neovim.nix.org @@ -0,0 +1,32 @@ +#+title: Neovim Settings + +Create a simple Neovim configuration. +#+begin_src nix :tangle ~/.flake/home/programs/neovim.nix :mkdirp yes + { config, pkgs, ... }: + + { + programs.neovim = { + enable = true; + + defaultEditor = true; + viAlias = true; + vimAlias = true; + plugins = with pkgs.vimPlugins; [ + vim-trailing-whitespace + lightline-vim + delimitMate + ]; + extraLuaConfig = '' + vim.opt.tabstop = 4 + vim.opt.expandtab = true + vim.opt.shiftwidth = 4 + vim.opt.autoindent = true + vim.opt.wildmode = 'longest,list' + vim.opt.number = true + vim.g.background = light + vim.cmd [[colorscheme default]] + vim.cmd [[set notermguicolors]] + ''; + }; + } +#+end_src diff --git a/common/.flake/home/programs/ssh.nix.org b/common/.flake/home/programs/ssh.nix.org new file mode 100644 index 0000000..a7502d2 --- /dev/null +++ b/common/.flake/home/programs/ssh.nix.org @@ -0,0 +1,13 @@ +#+title: SSH Configuration + +Add keys to SSH agent. +#+begin_src nix :tangle ~/.flake/home/programs/ssh.nix :mkdirp yes +{ config, pkgs, ... }: + +{ + programs.ssh = { + enable = true; + addKeysToAgent = "yes"; + }; +} +#+end_src diff --git a/common/.flake/home/programs/waybar.nix.org b/common/.flake/home/programs/waybar.nix.org new file mode 100644 index 0000000..7fe40f3 --- /dev/null +++ b/common/.flake/home/programs/waybar.nix.org @@ -0,0 +1,149 @@ +#+title: Waybar Configuration + +Show workspaces on the left, the current window in the centre, and MPD status, audio, cpu and memory status, clock, and system tray on the right. +#+begin_src nix :tangle ~/.flake/home/programs/waybar.nix :mkdirp yes + { config, pkgs, ... }: + + { + programs.waybar = { + enable = true; + settings = { + mainBar = { + height = 30; + spacing = 4; + modules-left = [ "hyprland/workspaces" ]; + modules-center = [ "hyprland/window" ]; + modules-right = [ "mpd" "pulseaudio" "cpu" "memory" "clock" "tray" ]; + mpd = { + format = "{stateIcon} {artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) [{songPosition}|{queueLength}] 🎵"; + format-disconnected = "Disconnected 🎵"; + format-stopped = "{consumeIcon}Stopped 🎵"; + unknown-tag = "N/A"; + interval = 2; + state-icons = { + paused = ""; + playing = ""; + }; + tooltip-format = "MPD (connected)"; + tooltip-format-disconnected = "MPD (disconnected)"; + on-click = "foot -e ncmpcpp"; + }; + tray = { + icon-size = 21; + spacing = 10; + show-passive-items = true; + }; + clock = { + format = "{:%H:%M\t%Y-%m-%d}"; + }; + cpu = { + format = "{usage}% "; + tooltip = false; + }; + memory = { + format = "{}% "; + }; + network = { + format-wifi = ""; + tooltip = false; + format-ethernet = ""; + format-linked = ""; + format-disconnected = "⚠"; + on-click = "kcmshell5 kcm_networkmanagement"; + }; + pulseaudio = { + format = "{volume}% {icon}"; + format-bluetooth = "{volume}% {icon}"; + format-bluetooth-muted = " {icon}"; + format-muted = " "; + format-source = "{volume}% "; + format-source-muted = ""; + format-icons = { + headphone = ""; + hands-free = ""; + headset = ""; + phone = ""; + portable = ""; + car = ""; + default = ["" "" ""]; + }; + on-click = "pavucontrol"; + }; + }; + }; + style = '' + window#waybar { + font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; + font-size: 13px; + background: transparent; + color: #ffffff; + text-shadow: 1px 1px #64727D; + transition-property: background-color; + transition-duration: .5s; + } + button { + border: none; + border-radius: 0; + } + button:hover { + background: inherit; + box-shadow: inset 0 -3px #ffffff; + } + #workspaces button { + padding: 0 5px; + text-shadow: 1px 1px #64727D; + background-color: transparent; + color: #ffffff; + } + #workspaces button:hover { + background: rgba(0, 0, 0, 0.2); + } + #workspaces button.focused { + background: transparent; + box-shadow: inset 0 -3px #ffffff; + } + #workspaces button.urgent { + background-color: #eb4d4b; + } + #clock, + #cpu, + #memory, + #disk, + #network, + #pulseaudio, + #wireplumber, + #custom-media, + #tray, + #mode, + #scratchpad, + #mpd { + padding: 0 10px; + } + #window, + #workspaces { + margin: 0 4px; + } + .modules-left > widget:first-child > #workspaces { + margin-left: 0; + } + + .modules-right > widget:last-child > #workspaces { + margin-right: 0; + } + #tray > .passive { + -gtk-icon-effect: dim; + } + #tray > .needs-attention { + -gtk-icon-effect: highlight; + } + #scratchpad { + background: rgba(0, 0, 0, 0.2); + } + + #scratchpad.empty { + background-color: transparent; + } + ''; + }; + } +#+end_src diff --git a/common/.flake/home/programs/zsh.nix.org b/common/.flake/home/programs/zsh.nix.org new file mode 100644 index 0000000..79795d0 --- /dev/null +++ b/common/.flake/home/programs/zsh.nix.org @@ -0,0 +1,87 @@ +#+title: ZSH Configuration + +Open =zsh= configuration. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + { config, pkgs, ... }: + + { + programs.zsh = { + enable = true; +#+end_src + +Automatically =cd= if only the path is used. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + autocd = true; +#+end_src + +Enable auto-suggestions. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + autosuggestion = { + enable = true; + }; +#+end_src + +Use =vi= keybindings. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + defaultKeymap = "viins"; +#+end_src + +Append to the history and ignore duplicates. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + history = { + append = true; + ignoreAllDups = true; + }; +#+end_src + +Specify =ls= aliases. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + shellAliases = { + "ll" = "ls -alF"; + "la" = "ls -a"; + "l" = "ls -F"; + "sl" = "ls"; + }; +#+end_src + +Enable syntax highlighting. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + syntaxHighlighting.enable = true; +#+end_src + +Create potential aliases and create the prompt. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + initExtra = '' + which lesspipe.sh &> /dev/null && export LESSOPEN="|lesspipe.sh %s" + which eza &> /dev/null && alias ls=eza + parse_git_dirty() { + git_status="$(git status 2> /dev/null)" + [[ "$git_status" =~ "use \"git push\" to publish your local commits" ]] && echo -n " %F{green}%f" + [[ "$git_status" =~ "Changes to be committed:" ]] && echo -n " %F{magenta}%f" + [[ "$git_status" =~ "Changes not staged for commit:" ]] && echo -n " %F{yellow}%f" + [[ "$git_status" =~ "Untracked files:" ]] && echo -n " %F{red}%f" + } + setopt prompt_subst + autoload -Uz vcs_info + precmd () { vcs_info } + zstyle ':vcs_info:*' formats ' %F{blue}%b%f' # git(main) + PS1='%(?..%B%F{red}[%?%\]%f%b )%F{green}%20<...<%~%<<%f$vcs_info_msg_0_$(parse_git_dirty) $ ' + ''; +#+end_src + +Launch =ssh-agent= at login. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + profileExtra = '' + if [ ! -S ~/.ssh/ssh_auth_sock ]; then + eval `ssh-agent` > /dev/null + ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock + fi + export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock + ''; +#+end_src + +Close =zsh= configuration. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + }; + } +#+end_src diff --git a/common/.flake/home/services/emacs.nix.org b/common/.flake/home/services/emacs.nix.org new file mode 100644 index 0000000..1a11446 --- /dev/null +++ b/common/.flake/home/services/emacs.nix.org @@ -0,0 +1,14 @@ +#+title: Emacs Service Configuration + +Enable Emacs daemon and client. +#+begin_src nix :tangle ~/.flake/home/services/emacs.nix :mkdirp yes +{ config, pkgs, ... }: + +{ + services.emacs = { + enable = true; + client.enable = true; + socketActivation.enable = true; + }; +} +#+end_src diff --git a/common/.flake/home/services/mako.nix.org b/common/.flake/home/services/mako.nix.org new file mode 100644 index 0000000..caa0240 --- /dev/null +++ b/common/.flake/home/services/mako.nix.org @@ -0,0 +1,13 @@ +#+title: Mako Configuration + +Enable =mako= to handle notifications. +#+begin_src nix :tangle ~/.flake/home/services/mako.nix :mkdirp yes +{ config, pkgs, ... }: + +{ + services.mako = { + enable = true; + backgroundColor = "#191916ff"; + }; +} +#+end_src diff --git a/common/.flake/home/services/mpd.nix.org b/common/.flake/home/services/mpd.nix.org new file mode 100644 index 0000000..b985b2a --- /dev/null +++ b/common/.flake/home/services/mpd.nix.org @@ -0,0 +1,21 @@ +#+title: MPD Configuration + +Set music directory and enable PipeWire output. +#+begin_src nix :tangle ~/.flake/home/services/mpd.nix :mkdirp yes + { config, pkgs, ... }: + + { + services.mpd = { + enable = true; + musicDirectory = "~/Music"; + extraConfig = '' + audio_output { + type "pipewire" + name "Pipewire" + mixer_type "hardware" + enabled "yes" + } + ''; + }; + } +#+end_src diff --git a/common/.flake/home/services/syncthing.nix.org b/common/.flake/home/services/syncthing.nix.org new file mode 100644 index 0000000..42dbf50 --- /dev/null +++ b/common/.flake/home/services/syncthing.nix.org @@ -0,0 +1,12 @@ +#+title: Syncthing Configuration + +Enable Syncthing service. +#+begin_src nix :tangle ~/.flake/home/services/syncthing.nix :mkdirp yes +{ config, pkgs, ... }: + +{ + services.syncthing = { + enable = true; + }; +} +#+end_src diff --git a/extract_src.py b/extract_src.py index 766bf1a..3fb5559 100755 --- a/extract_src.py +++ b/extract_src.py @@ -8,7 +8,7 @@ import re with open(sys.argv[1], "r") as inp: with open(sys.argv[2], "w") as out: in_src = False - startp = re.compile(r"^\s*#\+begin_src .* :tangle") + startp = re.compile(r"^\s*#\+begin_src") endp = re.compile(r"^\s*#\+end_src") quoted = re.compile(r"^\s*,(\*|,\*|#\+)") diff --git a/macos.local/.clang-format.org b/macos.local/.clang-format.org deleted file mode 120000 index 4b4ef61..0000000 --- a/macos.local/.clang-format.org +++ /dev/null @@ -1 +0,0 @@ -../common/.clang-format.org
\ No newline at end of file diff --git a/macos.local/.config/emacs b/macos.local/.config/emacs deleted file mode 120000 index f4e5e56..0000000 --- a/macos.local/.config/emacs +++ /dev/null @@ -1 +0,0 @@ -../../common/.config/emacs
\ No newline at end of file diff --git a/macos.local/.config/fastfetch b/macos.local/.config/fastfetch deleted file mode 120000 index a73d684..0000000 --- a/macos.local/.config/fastfetch +++ /dev/null @@ -1 +0,0 @@ -../../common/.config/fastfetch
\ No newline at end of file diff --git a/macos.local/.config/nvim b/macos.local/.config/nvim deleted file mode 120000 index a0abd03..0000000 --- a/macos.local/.config/nvim +++ /dev/null @@ -1 +0,0 @@ -../../common/.config/nvim
\ No newline at end of file diff --git a/macos.local/.flake/flake.nix.org b/macos.local/.flake/flake.nix.org new file mode 100644 index 0000000..b971bf6 --- /dev/null +++ b/macos.local/.flake/flake.nix.org @@ -0,0 +1,32 @@ +#+title: macOS Nix Configuration + +#+begin_src nix + { + description = "My Darwin Configuration"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + nix-darwin.url = "github:LnL7/nix-darwin"; + nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; + home-manager.url = "github:nix-community/home-manager"; + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + }; + + outputs = inputs@{ self, nix-darwin, nixpkgs, home-manager }: { + darwinConfigurations."macos" = nix-darwin.lib.darwinSystem { + specialArgs = { inherit inputs; }; + modules = [ + ./system/core.nix + home-manager.darwinModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.jjanzen = import ./home/core.nix; + } + ]; + }; + + darwinPackages = self.darwinConfigurations."macos".pkgs; + }; + } +#+end_src diff --git a/macos.local/.flake/home/.wallpaper b/macos.local/.flake/home/.wallpaper new file mode 120000 index 0000000..316db81 --- /dev/null +++ b/macos.local/.flake/home/.wallpaper @@ -0,0 +1 @@ +../../../common/.wallpaper
\ No newline at end of file diff --git a/macos.local/.flake/home/clang-format.nix.org b/macos.local/.flake/home/clang-format.nix.org new file mode 120000 index 0000000..db7166a --- /dev/null +++ b/macos.local/.flake/home/clang-format.nix.org @@ -0,0 +1 @@ +../../../common/.flake/home/clang-format.nix.org
\ No newline at end of file diff --git a/macos.local/.flake/home/core.nix.org b/macos.local/.flake/home/core.nix.org new file mode 100644 index 0000000..bb84514 --- /dev/null +++ b/macos.local/.flake/home/core.nix.org @@ -0,0 +1,21 @@ +#+title: Home Configuration + +Set up home manager for my user account and import submodules. +#+begin_src nix + { config, pkgs, ... }: + + { + imports = [ + ./clang-format.nix + ./fonts.nix + ./programs/core.nix + ]; + + home.username = "jjanzen"; + home.homeDirectory = "/Users/jjanzen"; + home.file.".wallpaper".source = ./.wallpaper; + + home.stateVersion = "24.05"; + programs.home-manager.enable = true; + } +#+end_src diff --git a/macos.local/.flake/home/fonts.nix.org b/macos.local/.flake/home/fonts.nix.org new file mode 120000 index 0000000..53bec1c --- /dev/null +++ b/macos.local/.flake/home/fonts.nix.org @@ -0,0 +1 @@ +../../../common/.flake/home/fonts.nix.org
\ No newline at end of file diff --git a/macos.local/.flake/home/programs/core.nix.org b/macos.local/.flake/home/programs/core.nix.org new file mode 100644 index 0000000..ba6818f --- /dev/null +++ b/macos.local/.flake/home/programs/core.nix.org @@ -0,0 +1,39 @@ +#+title: Core Program Configuration + +#+begin_src nix + { config, pkgs, ... }: + + { + imports = [ + ./emacs/core.nix + ./fastfetch.nix + ./git.nix + ./neovim.nix + ./zsh.nix + ]; + + home.packages = with pkgs; [ + aspell + bash-language-server + inetutils + clang-tools + cmake + cmake-language-server + eza + gcc-arm-embedded + htop + hyfetch + marksman + mpv + openocd + pinentry_mac + python312 + python312Packages.black + python312Packages.pylint + python312Packages.python-lsp-server + sqlite + texliveFull + yt-dlp + ]; + } +#+end_src diff --git a/macos.local/.flake/home/programs/emacs/core.nix.org b/macos.local/.flake/home/programs/emacs/core.nix.org new file mode 100644 index 0000000..627d725 --- /dev/null +++ b/macos.local/.flake/home/programs/emacs/core.nix.org @@ -0,0 +1,20 @@ +#+title: Emacs Configuration + +#+begin_src nix + { config, pkgs, ... }: + + { + home.file = { + "./.config/emacs/init.el".source = ./init.el; + "./.config/emacs/force-custom-file.el".source = ./force-custom-file.el; + "./.config/emacs/package-setup.el".source = ./package-setup.el; + "./.config/emacs/user-interface.el".source = ./user-interface.el; + "./.config/emacs/tools.el".source = ./tools.el; + "./.config/emacs/languages.el".source = ./languages.el; + }; + programs.emacs = { + # enable = true; + # package = pkgs.emacs-macport; + }; + } +#+end_src diff --git a/macos.local/.flake/home/programs/emacs/feed.org.org b/macos.local/.flake/home/programs/emacs/feed.org.org new file mode 120000 index 0000000..d074855 --- /dev/null +++ b/macos.local/.flake/home/programs/emacs/feed.org.org @@ -0,0 +1 @@ +../../../../../common/.config/emacs/feed.org.org
\ No newline at end of file diff --git a/macos.local/.flake/home/programs/emacs/force-custom-file.el.org b/macos.local/.flake/home/programs/emacs/force-custom-file.el.org new file mode 120000 index 0000000..06a4dc7 --- /dev/null +++ b/macos.local/.flake/home/programs/emacs/force-custom-file.el.org @@ -0,0 +1 @@ +../../../../../common/.config/emacs/force-custom-file.el.org
\ No newline at end of file diff --git a/macos.local/.flake/home/programs/emacs/init.el.org b/macos.local/.flake/home/programs/emacs/init.el.org new file mode 120000 index 0000000..6b2f721 --- /dev/null +++ b/macos.local/.flake/home/programs/emacs/init.el.org @@ -0,0 +1 @@ +../../../../../common/.config/emacs/init.el.org
\ No newline at end of file diff --git a/macos.local/.flake/home/programs/emacs/languages.el.org b/macos.local/.flake/home/programs/emacs/languages.el.org new file mode 120000 index 0000000..dd60c9f --- /dev/null +++ b/macos.local/.flake/home/programs/emacs/languages.el.org @@ -0,0 +1 @@ +../../../../../common/.config/emacs/languages.el.org
\ No newline at end of file diff --git a/macos.local/.flake/home/programs/emacs/package-setup.el.org b/macos.local/.flake/home/programs/emacs/package-setup.el.org new file mode 120000 index 0000000..c0f3ead --- /dev/null +++ b/macos.local/.flake/home/programs/emacs/package-setup.el.org @@ -0,0 +1 @@ +../../../../../common/.config/emacs/package-setup.el.org
\ No newline at end of file diff --git a/macos.local/.flake/home/programs/emacs/tools.el.org b/macos.local/.flake/home/programs/emacs/tools.el.org new file mode 120000 index 0000000..ff0296b --- /dev/null +++ b/macos.local/.flake/home/programs/emacs/tools.el.org @@ -0,0 +1 @@ +../../../../../common/.config/emacs/tools.el.org
\ No newline at end of file diff --git a/macos.local/.flake/home/programs/emacs/user-interface.el.org b/macos.local/.flake/home/programs/emacs/user-interface.el.org new file mode 120000 index 0000000..8a7f782 --- /dev/null +++ b/macos.local/.flake/home/programs/emacs/user-interface.el.org @@ -0,0 +1 @@ +../../../../../common/.config/emacs/user-interface.el.org
\ No newline at end of file diff --git a/macos.local/.flake/home/programs/fastfetch.nix.org b/macos.local/.flake/home/programs/fastfetch.nix.org new file mode 120000 index 0000000..25e2716 --- /dev/null +++ b/macos.local/.flake/home/programs/fastfetch.nix.org @@ -0,0 +1 @@ +../../../../common/.flake/home/programs/fastfetch.nix.org
\ No newline at end of file diff --git a/macos.local/.flake/home/programs/git.nix.org b/macos.local/.flake/home/programs/git.nix.org new file mode 120000 index 0000000..e8ddd28 --- /dev/null +++ b/macos.local/.flake/home/programs/git.nix.org @@ -0,0 +1 @@ +../../../../common/.flake/home/programs/git.nix.org
\ No newline at end of file diff --git a/macos.local/.flake/home/programs/neovim.nix.org b/macos.local/.flake/home/programs/neovim.nix.org new file mode 120000 index 0000000..871eafa --- /dev/null +++ b/macos.local/.flake/home/programs/neovim.nix.org @@ -0,0 +1 @@ +../../../../common/.flake/home/programs/neovim.nix.org
\ No newline at end of file diff --git a/macos.local/.flake/home/programs/zsh.nix.org b/macos.local/.flake/home/programs/zsh.nix.org new file mode 120000 index 0000000..59d4ec7 --- /dev/null +++ b/macos.local/.flake/home/programs/zsh.nix.org @@ -0,0 +1 @@ +../../../../common/.flake/home/programs/zsh.nix.org
\ No newline at end of file diff --git a/macos.local/.flake/system/core.nix.org b/macos.local/.flake/system/core.nix.org new file mode 100644 index 0000000..d38073f --- /dev/null +++ b/macos.local/.flake/system/core.nix.org @@ -0,0 +1,37 @@ +#+title: System Core + +This file imports various system configuration components in addition to enabling flakes and defining the system version. + +#+begin_src nix + { config, pkgs, ... }: + + { + environment.systemPackages = with pkgs; [ + emacs-macport + gnupg + neovim + yabai + skhd + ]; + + environment.variables.EDITOR = "nvim"; + + programs.gnupg.agent.enable = true; + + services.nix-daemon.enable = true; + nix.package = pkgs.nix; + + nix.settings.experimental-features = "nix-command flakes"; + + programs.zsh.enable = true; + + system.stateVersion = 5; + + nixpkgs.hostPlatform = "aarch64-darwin"; + + users.users.jjanzen = { + name = "jjanzen"; + home = "/Users/jjanzen"; + }; + } +#+end_src diff --git a/macos.local/.gitconfig.org.gpg b/macos.local/.gitconfig.org.gpg deleted file mode 120000 index b4b87c9..0000000 --- a/macos.local/.gitconfig.org.gpg +++ /dev/null @@ -1 +0,0 @@ -../common/.gitconfig.org.gpg
\ No newline at end of file diff --git a/macos.local/.local/share/fonts b/macos.local/.local/share/fonts deleted file mode 120000 index 9ab89c4..0000000 --- a/macos.local/.local/share/fonts +++ /dev/null @@ -1 +0,0 @@ -../../../common/.local/share/fonts
\ No newline at end of file diff --git a/macos.local/.profile.org b/macos.local/.profile.org deleted file mode 120000 index 6341fcf..0000000 --- a/macos.local/.profile.org +++ /dev/null @@ -1 +0,0 @@ -../common/.profile.org
\ No newline at end of file diff --git a/macos.local/.wallpaper b/macos.local/.wallpaper deleted file mode 120000 index ec41b94..0000000 --- a/macos.local/.wallpaper +++ /dev/null @@ -1 +0,0 @@ -../common/.wallpaper
\ No newline at end of file diff --git a/macos.local/.zshrc.org b/macos.local/.zshrc.org deleted file mode 120000 index ccbdc43..0000000 --- a/macos.local/.zshrc.org +++ /dev/null @@ -1 +0,0 @@ -../common/.zshrc.org
\ No newline at end of file diff --git a/nixos/.flake/home/clang-format.nix.org b/nixos/.flake/home/clang-format.nix.org index 64a2a64..db7166a 100644..120000 --- a/nixos/.flake/home/clang-format.nix.org +++ b/nixos/.flake/home/clang-format.nix.org @@ -1,15 +1 @@ -#+title: Clang Format Default Options - -#+begin_src nix :tangle ~/.flake/home/clang-format.nix :mkdirp yes - { config, pkgs, ... }: - - { - home.file.".clang-format".text = '' - BasedOnStyle: LLVM - IndentWidth: 4 - BreakBeforeBraces: Linux - AllowShortIfStatementsOnASingleLine: false - IndentCaseLabels: false - ''; - } -#+end_src +../../../common/.flake/home/clang-format.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/cursor.nix.org b/nixos/.flake/home/cursor.nix.org index 15396a0..3d3d406 100644..120000 --- a/nixos/.flake/home/cursor.nix.org +++ b/nixos/.flake/home/cursor.nix.org @@ -1,13 +1 @@ -#+title: Cursor Configuration - -Use =vanilla-dmz= cursor size 16. -#+begin_src nix :tangle ~/.flake/home/cursor.nix :mkdirp yes -{ config, pkgs, ... }: - -{ - home.file.".icons/default".source = "${pkgs.vanilla-dmz}/share/icons/Vanilla-DMZ"; - xresources.properties = { - "Xcursor.size" = 16; - }; -} -#+end_src +../../../common/.flake/home/cursor.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/fonts.nix.org b/nixos/.flake/home/fonts.nix.org index 3a01993..53bec1c 100644..120000 --- a/nixos/.flake/home/fonts.nix.org +++ b/nixos/.flake/home/fonts.nix.org @@ -1,14 +1 @@ -#+title: Font Configuration - -Install fonts necessary for my configuration. -#+begin_src nix :tangle ~/.flake/home/fonts.nix :mkdirp yes -{ config, pkgs, ... }: - -{ - fonts.fontconfig.enable = true; - home.packages = with pkgs; [ - cm_unicode - (pkgs.nerdfonts.override { fonts = [ "SourceCodePro" ]; }) - ]; -} -#+end_src +../../../common/.flake/home/fonts.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/hyprland.nix.org b/nixos/.flake/home/hyprland.nix.org index 725f920..d2a0693 100644..120000 --- a/nixos/.flake/home/hyprland.nix.org +++ b/nixos/.flake/home/hyprland.nix.org @@ -1,175 +1 @@ -#+title: Hyprland Configuration - -Open my Hyprland configuration. -#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes - { config, pkgs, ... }: - - { - wayland.windowManager.hyprland = { - enable = true; - settings = { -#+end_src - -I have a 1440p monitor and a 1080p monitor to its left rotated to be vertical. -#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes - monitor = [ "DP-2, 2560x1440@180, 0x0, 1" "HDMI-A-2, 1920x1080@60, -1080x-100, 1, transform, 3" ]; -#+end_src - -Set terminal, file manager, and menu. -#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes - "$terminal" = "foot"; - "$fileManager" = "dolphin"; - "$menu" = "fuzzel"; -#+end_src - -Enable startup applications: -- =nm-applet= for network configuration -- =blueman-applet= for bluetooth configuration -- =waybar= as top bar -- =swaybg= to set wallpaper -- =mpdscribble= as Last.fm scrobbler program. -#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes - exec-once = [ - "nm-applet &" - "blueman-applet &" - "waybar" - "swaybg -m fill -i ~/.wallpaper" - "mpdscribble" - ]; -#+end_src - -Specify cursor size. -#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes - env = [ - "XCURSOR_SIZE,24" - "HYPRCURSOR_SIZE,24" - ]; -#+end_src - -Set general appearance of the window manager. -#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes - general = { - gaps_in = 5; - gaps_out = 20; - border_size = 2; - resize_on_border = false; - layout = "dwindle"; - "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg"; - "col.inactive_border" = "rgba(595959aa)"; - }; -#+end_src - -Set window decorations. -#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes - decoration = { - rounding = 10; - active_opacity = 1.0; - inactive_opacity = 1.0; - drop_shadow = true; - shadow_range = 4; - shadow_render_power = 3; - "col.shadow" = "rgba(1a1a1aee)"; - blur = { - enabled = true; - size = 3; - passes = 1; - vibrancy = "0.1696"; - }; - }; -#+end_src - -Set window animations. -#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes - animations = { - enabled = true; - bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; - animation = [ - "windows, 1, 7, myBezier" - "windowsOut, 1, 7, default, popin 80%" - "border, 1, 10, default" "borderangle, 1, 8, default" - "fade, 1, 7, default" "workspaces, 1, 6, default" - ]; - }; -#+end_src - -Configure layouts. -#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes - dwindle = { - pseudotile = true; - preserve_split = true; - }; - master = { - new_status = "master"; - }; -#+end_src - -Configure the inputs. -#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes - input = { - kb_layout = "us"; - follow_mouse = 1; - sensitivity = 0; - }; -#+end_src - -Configure window manager controls. -#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes - "$mainMod" = "SUPER"; - bind = [ - "$mainMod, RETURN, exec, $terminal" - "$mainMod SHIFT, Q, killactive" - "$mainMod, E, exec, $fileManager" - "$mainMod SHIFT, SPACE, togglefloating" - "$mainMod, D, exec, $menu" - "$mainMod, P, pseudo" - "$mainMod SHIFT, E, togglesplit" - "$mainMod, H, movefocus, l" - "$mainMod, J, movefocus, d" - "$mainMod, K, movefocus, u" - "$mainMod, L, movefocus, r" - "$mainMod, 1, workspace, 1" - "$mainMod, 2, workspace, 2" - "$mainMod, 3, workspace, 3" - "$mainMod, 4, workspace, 4" - "$mainMod, 5, workspace, 5" - "$mainMod, 6, workspace, 6" - "$mainMod, 7, workspace, 7" - "$mainMod, 8, workspace, 8" - "$mainMod, 9, workspace, 9" - "$mainMod, 0, workspace, 10" - "$mainMod SHIFT, 1, movetoworkspace, 1" - "$mainMod SHIFT, 2, movetoworkspace, 2" - "$mainMod SHIFT, 3, movetoworkspace, 3" - "$mainMod SHIFT, 4, movetoworkspace, 4" - "$mainMod SHIFT, 5, movetoworkspace, 5" - "$mainMod SHIFT, 6, movetoworkspace, 6" - "$mainMod SHIFT, 7, movetoworkspace, 7" - "$mainMod SHIFT, 8, movetoworkspace, 8" - "$mainMod SHIFT, 9, movetoworkspace, 9" - "$mainMod SHIFT, 0, movetoworkspace, 10" - "$mainMod CONTROL, L, exec, hyprlock" - "$mainMod, S, exec, hyprshot -m window --clipboard-only" - "$mainMod SHIFT, S, exec, hyprshot -m region --clipboard-only" - "$mainMod SHIFT CONTROL, S, exec, hyprshot -m output --clipboard-only" - "$mainMod, M, exec, ~/.local/bin/poweroptions.sh" - "$mainMod, F, fullscreen" - ]; - bindel = [ - ",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" - ",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" - ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" - ",XF86Eject, exec, mpc toggle" - ]; - bindm = [ - "$mainMod, mouse:272, movewindow" - "$mainMod, mouse:273, resizewindow" - ]; - windowrulev2 = "suppressevent maximize, class:.*"; -#+end_src - -Close my Hyprland configuration. -#+begin_src nix :tangle ~/.flake/home/hyprland.nix :mkdirp yes - }; - }; - } -#+end_src +../../../common/.flake/home/hyprland.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/programs/emacs b/nixos/.flake/home/programs/emacs new file mode 120000 index 0000000..39d7462 --- /dev/null +++ b/nixos/.flake/home/programs/emacs @@ -0,0 +1 @@ +../../../../common/.flake/home/programs/emacs
\ No newline at end of file diff --git a/nixos/.flake/home/programs/fastfetch.nix.org b/nixos/.flake/home/programs/fastfetch.nix.org index 96b2044..25e2716 100644..120000 --- a/nixos/.flake/home/programs/fastfetch.nix.org +++ b/nixos/.flake/home/programs/fastfetch.nix.org @@ -1,84 +1 @@ -#+title: Fastfetch Configuration - -Specify the layout for =fastfetch=. -#+begin_src nix :tangle ~/.flake/home/programs/fastfetch.nix :mkdirp yes - { config, pkgs, ... }: - - { - programs.fastfetch = { - enable = true; - settings = { - logo = { - type = "raw"; - source = "~/.config/fastfetch/logo.sixel"; - width = 40; - height = 19; - }; - display = { - separator = " "; - }; - modules = [ - "title" - { - type = "custom"; - format = "──────────────────────────────────"; - } - { - type = "os"; - key = ""; - } - { - type = "kernel"; - key = ""; - } - { - type = "uptime"; - key = ""; - } - { - type = "packages"; - key = ""; - } - { - type = "shell"; - key = ""; - } - { - type = "display"; - key = ""; - } - { - type = "wm"; - key = ""; - } - { - type = "terminal"; - key = ""; - } - { - type = "cpu"; - key = ""; - } - { - type = "gpu"; - key = ""; - } - { - type = "memory"; - key = ""; - } - { - type = "disk"; - key = ""; - } - { - type = "locale"; - key = ""; - } - "break" - "colors" - ]; - }; - }; - } -#+end_src +../../../../common/.flake/home/programs/fastfetch.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/programs/foot.nix.org b/nixos/.flake/home/programs/foot.nix.org index 3490bed..6197c4a 100644..120000 --- a/nixos/.flake/home/programs/foot.nix.org +++ b/nixos/.flake/home/programs/foot.nix.org @@ -1,42 +1 @@ -#+title: Foot Terminal Configuration - -Specify my font and colour scheme for =foot=. -#+begin_src nix :tangle ~/.flake/home/programs/foot.nix :mkdirp yes -{ config, pkgs, ... }: - -{ - programs.foot = { - enable = true; - settings = { - main = { - font = "SauceCodePro Nerd Font:size=10"; - pad = "6x6"; - }; - mouse = { - hide-when-typing = "yes"; - }; - colors = { - alpha = "0.9"; - background = "ece0c9"; - foreground = "191916"; - regular0 = "191916"; - regular1 = "ac4438"; - regular2 = "354d52"; - regular3 = "ba9151"; - regular4 = "465b91"; - regular5 = "5b5489"; - regular6 = "4e6062"; - regular7 = "c9ad7a"; - bright0 = "293c3c"; - bright1 = "d8611c"; - bright2 = "4b7b53"; - bright3 = "d8974b"; - bright4 = "2f3d91"; - bright5 = "735e82"; - bright6 = "6b8f92"; - bright7 = "ece0c9"; - }; - }; - }; -} -#+end_src +../../../../common/.flake/home/programs/foot.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/programs/git.nix.org b/nixos/.flake/home/programs/git.nix.org index baf3aaa..e8ddd28 100644..120000 --- a/nixos/.flake/home/programs/git.nix.org +++ b/nixos/.flake/home/programs/git.nix.org @@ -1,18 +1 @@ -#+title: Git Configuration - -Specify my name and email for =git=. Also enable =delta= and =pull.rebase=. -#+begin_src nix :tangle ~/.flake/home/programs/git.nix :mkdirp yes -{ config, pkgs, ... }: - -{ - programs.git = { - enable = true; - userName = "Jacob Janzen"; - userEmail = "jacob.a.s.janzen@gmail.com"; - delta.enable = true; - extraConfig = { - pull.rebase = true; - }; - }; -} -#+end_src +../../../../common/.flake/home/programs/git.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/programs/hyprlock.nix.org b/nixos/.flake/home/programs/hyprlock.nix.org index 4e94386..7a25ac8 100644..120000 --- a/nixos/.flake/home/programs/hyprlock.nix.org +++ b/nixos/.flake/home/programs/hyprlock.nix.org @@ -1,42 +1 @@ -#+title: Hyprlock Configuration - -Place a textbox in the middle of the screen and use my blurred wallpaper as the background when locking. -#+begin_src nix :tangle ~/.flake/home/programs/hyprlock.nix :mkdirp yes - { config, pkgs, ... }: - - { - programs.hyprlock = { - enable = true; - settings = { - general = { - disable_loading_bar = true; - grace = 0; - hide_cursor = true; - no_fade_in = false; - }; - background = [ - { - path = "~/.wallpaper"; - blur_passes = 3; - blur_size = 8; - } - ]; - input-field = [ - { - size = "200, 50"; - position = "0, -80"; - monitor = ""; - dots_center = true; - fade_on_empty = false; - font_color = "rgb(202, 211, 245)"; - inner_color = "rgb(91, 96, 120)"; - outer_color = "rgb(24, 25, 38)"; - outline_thickness = 5; - placeholder_text = "<span foreground=\"##cad3f5\">Password...</span>"; - shadow_passes = 2; - } - ]; - }; - }; - } -#+end_src +../../../../common/.flake/home/programs/hyprlock.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/programs/ncmpcpp.nix.org b/nixos/.flake/home/programs/ncmpcpp.nix.org index eb1f02f..f91dfd3 100644..120000 --- a/nixos/.flake/home/programs/ncmpcpp.nix.org +++ b/nixos/.flake/home/programs/ncmpcpp.nix.org @@ -1,28 +1 @@ -#+title: =ncmpcpp= Configuration - -Enable =vi=-like controls and specify directories and MPD address. -#+begin_src nix :tangle ~/.flake/home/programs/ncmpcpp.nix :mkdirp yes -{ config, pkgs, ... }: - -{ - programs.ncmpcpp = { - enable = true; - bindings = [ - { key = "j"; command = "scroll_down"; } - { key = "k"; command = "scroll_up"; } - { key = "h"; command = "previous_column"; } - { key = "l"; command = "next_column"; } - { key = "g"; command = "move_home"; } - { key = "G"; command = "move_end"; } - { key = "n"; command = "next_found_item"; } - { key = "N"; command = "previous_found_item"; } - ]; - mpdMusicDir = "~/Music"; - settings = { - ncmpcpp_directory = "~/.config/nmcpcpp"; - mpd_host = "localhost"; - mpd_port = "6600"; - }; - }; -} -#+end_src +../../../../common/.flake/home/programs/ncmpcpp.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/programs/neovim.nix.org b/nixos/.flake/home/programs/neovim.nix.org index 350eded..871eafa 100644..120000 --- a/nixos/.flake/home/programs/neovim.nix.org +++ b/nixos/.flake/home/programs/neovim.nix.org @@ -1,32 +1 @@ -#+title: Neovim Settings - -Create a simple Neovim configuration. -#+begin_src nix :tangle ~/.flake/home/programs/neovim.nix :mkdirp yes - { config, pkgs, ... }: - - { - programs.neovim = { - enable = true; - - defaultEditor = true; - viAlias = true; - vimAlias = true; - plugins = with pkgs.vimPlugins; [ - vim-trailing-whitespace - lightline-vim - delimitMate - ]; - extraLuaConfig = '' - vim.opt.tabstop = 4 - vim.opt.expandtab = true - vim.opt.shiftwidth = 4 - vim.opt.autoindent = true - vim.opt.wildmode = 'longest,list' - vim.opt.number = true - vim.g.background = light - vim.cmd [[colorscheme default]] - vim.cmd [[set notermguicolors]] - ''; - }; - } -#+end_src +../../../../common/.flake/home/programs/neovim.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/programs/ssh.nix.org b/nixos/.flake/home/programs/ssh.nix.org index a7502d2..363ead0 100644..120000 --- a/nixos/.flake/home/programs/ssh.nix.org +++ b/nixos/.flake/home/programs/ssh.nix.org @@ -1,13 +1 @@ -#+title: SSH Configuration - -Add keys to SSH agent. -#+begin_src nix :tangle ~/.flake/home/programs/ssh.nix :mkdirp yes -{ config, pkgs, ... }: - -{ - programs.ssh = { - enable = true; - addKeysToAgent = "yes"; - }; -} -#+end_src +../../../../common/.flake/home/programs/ssh.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/programs/waybar.nix.org b/nixos/.flake/home/programs/waybar.nix.org index 7fe40f3..04d9dd3 100644..120000 --- a/nixos/.flake/home/programs/waybar.nix.org +++ b/nixos/.flake/home/programs/waybar.nix.org @@ -1,149 +1 @@ -#+title: Waybar Configuration - -Show workspaces on the left, the current window in the centre, and MPD status, audio, cpu and memory status, clock, and system tray on the right. -#+begin_src nix :tangle ~/.flake/home/programs/waybar.nix :mkdirp yes - { config, pkgs, ... }: - - { - programs.waybar = { - enable = true; - settings = { - mainBar = { - height = 30; - spacing = 4; - modules-left = [ "hyprland/workspaces" ]; - modules-center = [ "hyprland/window" ]; - modules-right = [ "mpd" "pulseaudio" "cpu" "memory" "clock" "tray" ]; - mpd = { - format = "{stateIcon} {artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) [{songPosition}|{queueLength}] 🎵"; - format-disconnected = "Disconnected 🎵"; - format-stopped = "{consumeIcon}Stopped 🎵"; - unknown-tag = "N/A"; - interval = 2; - state-icons = { - paused = ""; - playing = ""; - }; - tooltip-format = "MPD (connected)"; - tooltip-format-disconnected = "MPD (disconnected)"; - on-click = "foot -e ncmpcpp"; - }; - tray = { - icon-size = 21; - spacing = 10; - show-passive-items = true; - }; - clock = { - format = "{:%H:%M\t%Y-%m-%d}"; - }; - cpu = { - format = "{usage}% "; - tooltip = false; - }; - memory = { - format = "{}% "; - }; - network = { - format-wifi = ""; - tooltip = false; - format-ethernet = ""; - format-linked = ""; - format-disconnected = "⚠"; - on-click = "kcmshell5 kcm_networkmanagement"; - }; - pulseaudio = { - format = "{volume}% {icon}"; - format-bluetooth = "{volume}% {icon}"; - format-bluetooth-muted = " {icon}"; - format-muted = " "; - format-source = "{volume}% "; - format-source-muted = ""; - format-icons = { - headphone = ""; - hands-free = ""; - headset = ""; - phone = ""; - portable = ""; - car = ""; - default = ["" "" ""]; - }; - on-click = "pavucontrol"; - }; - }; - }; - style = '' - window#waybar { - font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; - font-size: 13px; - background: transparent; - color: #ffffff; - text-shadow: 1px 1px #64727D; - transition-property: background-color; - transition-duration: .5s; - } - button { - border: none; - border-radius: 0; - } - button:hover { - background: inherit; - box-shadow: inset 0 -3px #ffffff; - } - #workspaces button { - padding: 0 5px; - text-shadow: 1px 1px #64727D; - background-color: transparent; - color: #ffffff; - } - #workspaces button:hover { - background: rgba(0, 0, 0, 0.2); - } - #workspaces button.focused { - background: transparent; - box-shadow: inset 0 -3px #ffffff; - } - #workspaces button.urgent { - background-color: #eb4d4b; - } - #clock, - #cpu, - #memory, - #disk, - #network, - #pulseaudio, - #wireplumber, - #custom-media, - #tray, - #mode, - #scratchpad, - #mpd { - padding: 0 10px; - } - #window, - #workspaces { - margin: 0 4px; - } - .modules-left > widget:first-child > #workspaces { - margin-left: 0; - } - - .modules-right > widget:last-child > #workspaces { - margin-right: 0; - } - #tray > .passive { - -gtk-icon-effect: dim; - } - #tray > .needs-attention { - -gtk-icon-effect: highlight; - } - #scratchpad { - background: rgba(0, 0, 0, 0.2); - } - - #scratchpad.empty { - background-color: transparent; - } - ''; - }; - } -#+end_src +../../../../common/.flake/home/programs/waybar.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/programs/zsh.nix.org b/nixos/.flake/home/programs/zsh.nix.org index 79795d0..59d4ec7 100644..120000 --- a/nixos/.flake/home/programs/zsh.nix.org +++ b/nixos/.flake/home/programs/zsh.nix.org @@ -1,87 +1 @@ -#+title: ZSH Configuration - -Open =zsh= configuration. -#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes - { config, pkgs, ... }: - - { - programs.zsh = { - enable = true; -#+end_src - -Automatically =cd= if only the path is used. -#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes - autocd = true; -#+end_src - -Enable auto-suggestions. -#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes - autosuggestion = { - enable = true; - }; -#+end_src - -Use =vi= keybindings. -#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes - defaultKeymap = "viins"; -#+end_src - -Append to the history and ignore duplicates. -#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes - history = { - append = true; - ignoreAllDups = true; - }; -#+end_src - -Specify =ls= aliases. -#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes - shellAliases = { - "ll" = "ls -alF"; - "la" = "ls -a"; - "l" = "ls -F"; - "sl" = "ls"; - }; -#+end_src - -Enable syntax highlighting. -#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes - syntaxHighlighting.enable = true; -#+end_src - -Create potential aliases and create the prompt. -#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes - initExtra = '' - which lesspipe.sh &> /dev/null && export LESSOPEN="|lesspipe.sh %s" - which eza &> /dev/null && alias ls=eza - parse_git_dirty() { - git_status="$(git status 2> /dev/null)" - [[ "$git_status" =~ "use \"git push\" to publish your local commits" ]] && echo -n " %F{green}%f" - [[ "$git_status" =~ "Changes to be committed:" ]] && echo -n " %F{magenta}%f" - [[ "$git_status" =~ "Changes not staged for commit:" ]] && echo -n " %F{yellow}%f" - [[ "$git_status" =~ "Untracked files:" ]] && echo -n " %F{red}%f" - } - setopt prompt_subst - autoload -Uz vcs_info - precmd () { vcs_info } - zstyle ':vcs_info:*' formats ' %F{blue}%b%f' # git(main) - PS1='%(?..%B%F{red}[%?%\]%f%b )%F{green}%20<...<%~%<<%f$vcs_info_msg_0_$(parse_git_dirty) $ ' - ''; -#+end_src - -Launch =ssh-agent= at login. -#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes - profileExtra = '' - if [ ! -S ~/.ssh/ssh_auth_sock ]; then - eval `ssh-agent` > /dev/null - ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock - fi - export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock - ''; -#+end_src - -Close =zsh= configuration. -#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes - }; - } -#+end_src +../../../../common/.flake/home/programs/zsh.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/services/emacs.nix.org b/nixos/.flake/home/services/emacs.nix.org index 1a11446..45c44ee 100644..120000 --- a/nixos/.flake/home/services/emacs.nix.org +++ b/nixos/.flake/home/services/emacs.nix.org @@ -1,14 +1 @@ -#+title: Emacs Service Configuration - -Enable Emacs daemon and client. -#+begin_src nix :tangle ~/.flake/home/services/emacs.nix :mkdirp yes -{ config, pkgs, ... }: - -{ - services.emacs = { - enable = true; - client.enable = true; - socketActivation.enable = true; - }; -} -#+end_src +../../../../common/.flake/home/services/emacs.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/services/mako.nix.org b/nixos/.flake/home/services/mako.nix.org index caa0240..b4d7e40 100644..120000 --- a/nixos/.flake/home/services/mako.nix.org +++ b/nixos/.flake/home/services/mako.nix.org @@ -1,13 +1 @@ -#+title: Mako Configuration - -Enable =mako= to handle notifications. -#+begin_src nix :tangle ~/.flake/home/services/mako.nix :mkdirp yes -{ config, pkgs, ... }: - -{ - services.mako = { - enable = true; - backgroundColor = "#191916ff"; - }; -} -#+end_src +../../../../common/.flake/home/services/mako.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/services/mpd.nix.org b/nixos/.flake/home/services/mpd.nix.org index b985b2a..4b76825 100644..120000 --- a/nixos/.flake/home/services/mpd.nix.org +++ b/nixos/.flake/home/services/mpd.nix.org @@ -1,21 +1 @@ -#+title: MPD Configuration - -Set music directory and enable PipeWire output. -#+begin_src nix :tangle ~/.flake/home/services/mpd.nix :mkdirp yes - { config, pkgs, ... }: - - { - services.mpd = { - enable = true; - musicDirectory = "~/Music"; - extraConfig = '' - audio_output { - type "pipewire" - name "Pipewire" - mixer_type "hardware" - enabled "yes" - } - ''; - }; - } -#+end_src +../../../../common/.flake/home/services/mpd.nix.org
\ No newline at end of file diff --git a/nixos/.flake/home/services/syncthing.nix.org b/nixos/.flake/home/services/syncthing.nix.org index 42dbf50..8d42514 100644..120000 --- a/nixos/.flake/home/services/syncthing.nix.org +++ b/nixos/.flake/home/services/syncthing.nix.org @@ -1,12 +1 @@ -#+title: Syncthing Configuration - -Enable Syncthing service. -#+begin_src nix :tangle ~/.flake/home/services/syncthing.nix :mkdirp yes -{ config, pkgs, ... }: - -{ - services.syncthing = { - enable = true; - }; -} -#+end_src +../../../../common/.flake/home/services/syncthing.nix.org
\ No newline at end of file |