diff --git a/homes/common.nix b/homes/common.nix index f387f4b..a94198c 100644 --- a/homes/common.nix +++ b/homes/common.nix @@ -46,6 +46,8 @@ in { micromamba most nextflow + p7zip + pdfgrep pipx python3 zulu17 diff --git a/homes/desktop.nix b/homes/desktop.nix index 0e376ce..1a7e7d9 100644 --- a/homes/desktop.nix +++ b/homes/desktop.nix @@ -2,6 +2,7 @@ imports = [ ./../programs/firefox.nix + ./../programs/ghostty.nix ./../programs/zed.nix ./../services/gpg-agent.nix ]; diff --git a/playbook.yaml b/playbook.yaml index 3ed7300..cd47a15 100644 --- a/playbook.yaml +++ b/playbook.yaml @@ -179,6 +179,7 @@ name: - chromium - firefoxpwa + - ghostty - inkscape - kate - kdenlive @@ -258,6 +259,7 @@ - com.logseq.Logseq - io.freetubeapp.FreeTube - io.github.alainm23.planify + - io.github.dweymouth.supersonic - io.openrct2.OpenRCT2 - org.zulip.Zulip - net.ankiweb.Anki diff --git a/programs/ghostty.nix b/programs/ghostty.nix new file mode 100644 index 0000000..ea54cde --- /dev/null +++ b/programs/ghostty.nix @@ -0,0 +1,17 @@ +{ ... }: { + programs.ghostty = { + enable = true; + package = null; + enableBashIntegration = true; + enableZshIntegration = true; + settings = { + quick-terminal-position = "top"; + quick-terminal-screen = "main"; + quick-terminal-autohide = true; + quick-terminal-size = "50%,50%"; + keybind = "global:cmd+backquote=toggle_quick_terminal"; + macos-hidden = "always"; + linux-cgroup = "always"; + }; + }; +} diff --git a/services/nixos-update.nix b/services/nixos-update.nix index 5fad1d6..ab19529 100644 --- a/services/nixos-update.nix +++ b/services/nixos-update.nix @@ -2,35 +2,21 @@ { pkgs, ... }: { - environment.systemPackages = with pkgs; - [ - (pkgs.writeScriptBin "update-nixos" '' - #!${pkgs.bash}/bin/bash - echo "Requesting system update..." - ${pkgs.systemd}/bin/systemctl start nixos-update.service - '') - ]; + environment.systemPackages = [ + (pkgs.writeScriptBin "update-nixos" '' + #!${pkgs.bash}/bin/bash + echo "Requesting system update..." + ${pkgs.systemd}/bin/systemctl start nixos-update.service + '') + ]; # Service to update NixOS configuration from git repo systemd.services."nixos-update" = { description = "Update NixOS configuration from git repository"; - path = with pkgs; [ git coreutils ]; + path = with pkgs; [ coreutils ]; script = '' - # Ensure the directory exists - mkdir -p /srv/config - - # Clone/pull the repository - if [ -d "/srv/config/.git" ]; then - cd /srv/config - git fetch origin - git reset --hard origin/master - else - rm -rf /srv/config - git clone https://code.millironx.com/millironx/nix-dotfiles.git /srv/config - fi - - # Rebuild the system - ${pkgs.nixos-rebuild}/bin/nixos-rebuild switch --flake /srv/config#bosephus + # Rebuild the system directly from the remote flake + ${pkgs.nixos-rebuild}/bin/nixos-rebuild switch --flake git+https://code.millironx.com/millironx/nix-dotfiles.git#bosephus ''; serviceConfig = { Type = "oneshot"; diff --git a/systems/darwin/corianne.nix b/systems/darwin/corianne.nix index a07cc97..f8067ce 100644 --- a/systems/darwin/corianne.nix +++ b/systems/darwin/corianne.nix @@ -33,6 +33,59 @@ system.keyboard.enableKeyMapping = true; system.primaryUser = "millironx"; + system.defaults.dock = { + autohide = false; + minimize-to-application = true; + mru-spaces = false; + persistent-apps = let + dedupDotApp = appName: + if pkgs.lib.strings.hasSuffix ".app" appName then + appName + else + appName + ".app"; + macAppPath = { location, name }: "${location}/${dedupDotApp name}"; + sysApp = appName: { + app = macAppPath { + location = "/Applications"; + name = appName; + }; + }; + chromeApp = appName: { + app = macAppPath { + location = "/Users/millironx/Applications/Chromium Apps.localized"; + name = appName; + }; + }; + localApp = appName: { + app = macAppPath { + location = "/Users/millironx/Applications"; + name = appName; + }; + }; + in [ + (sysApp "Firefox") + (chromeApp "Messages") + (sysApp "Signal") + (sysApp "Thunderbird") + (sysApp "Immich") + (sysApp "Logseq") + (sysApp "Zed") + (sysApp "Steam") + (sysApp "Amperfy") + (sysApp "Microsoft Word") + (sysApp "Microsoft Excel") + (sysApp "Microsoft PowerPoint") + (localApp "Canvas") + (sysApp "Zotero") + (localApp "VetPrep") + (chromeApp "Instinct Dashboard") + (chromeApp "Carestream") + ]; + show-process-indicators = true; + show-recents = false; + tilesize = 48; + }; + # nix-darwin doesn't provide a nice injection point for running activation # scripts like home-manager does. In other words, we can't add an arbitrary # number of activation scripts with well-defined entry points into the system @@ -127,8 +180,10 @@ "anki" "anythingllm" "db-browser-for-sqlite" + "dolphin" "firefox" "freetube" + "ghostty" "inkscape" "iterm2" "logi-options+" @@ -140,6 +195,7 @@ "openrct2" "porting-kit" "qownnotes" + "qt-creator" "rstudio" "signal" "slack" @@ -157,6 +213,7 @@ "zulip" ]; masApps = { + "Amperfy Music" = 1530145038; "Bitwarden" = 1352778147; "Tailscale" = 1475387142; }; diff --git a/systems/linux/bosephus.nix b/systems/linux/bosephus.nix index a3c7c7a..9b2052a 100644 --- a/systems/linux/bosephus.nix +++ b/systems/linux/bosephus.nix @@ -11,6 +11,7 @@ ./../../services/nixos-update.nix ./../../services/samba.nix ./../../services/pihole.nix + ./../../services/galaxy.nix ]; # Bootloader. @@ -93,11 +94,40 @@ programs.zsh.enable = true; - environment.systemPackages = with pkgs; [ neovim git borgbackup ]; + environment.systemPackages = with pkgs; [ + neovim + git + borgbackup + # Galaxy dependencies + python3 + python3Packages.virtualenv + python3Packages.pip + python3Packages.setuptools + python3Packages.wheel + nodejs + which + procps + gcc + gnumake + ]; services = { openssh.enable = true; tailscale.enable = true; + galaxy = { + enable = true; + host = "0.0.0.0"; # Allow external connections + port = 8080; + dataDir = "/var/lib/galaxy"; + user = "galaxy"; + group = "galaxy"; + }; + }; + + # Virtual memory settings for Galaxy + boot.kernel.sysctl = { + "vm.swappiness" = 10; + "vm.min_free_kbytes" = 65536; }; system.stateVersion = "25.05"; # Did you read the comment?