diff --git a/features-nixos/global/locale.nix b/features-nixos/global/locale.nix index 7833786..16010ae 100644 --- a/features-nixos/global/locale.nix +++ b/features-nixos/global/locale.nix @@ -1,4 +1,4 @@ -{ +{pkgs, ...}: { # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; @@ -23,4 +23,18 @@ console.keyMap = "de"; time.timeZone = "Europe/Berlin"; + + ## Japanese input, env vars and servic start are configured in hyprland config + ## Configure via program fcitx5-configuration + ## There, add the mozc input for japanese + ## This could also be done declaratively in this config, see: https://wiki.nixos.org/wiki/Fcitx5 + i18n.inputMethod = { + enable = true; + type = "fcitx5"; + fcitx5.addons = with pkgs; [ + fcitx5-mozc + fcitx5-gtk # Ensures IME works in GTK applications + ]; + fcitx5.waylandFrontend = true; # compability with wayland + }; } diff --git a/features-nixos/optional/solokey.nix b/features-nixos/optional/solokey.nix new file mode 100644 index 0000000..1d49a02 --- /dev/null +++ b/features-nixos/optional/solokey.nix @@ -0,0 +1,7 @@ +# config to make solokey1 work for ssh +{...}: { + # services.pcscd.enable = true; + + services.gnome.gcr-ssh-agent.enable = false; + programs.ssh.startAgent = true; +} diff --git a/flake.lock b/flake.lock index 17f621c..a3b335d 100644 --- a/flake.lock +++ b/flake.lock @@ -83,6 +83,21 @@ "type": "github" } }, + "crane_2": { + "locked": { + "lastModified": 1771121070, + "narHash": "sha256-aIlv7FRXF9q70DNJPI237dEDAznSKaXmL5lfK/Id/bI=", + "owner": "ipetkov", + "repo": "crane", + "rev": "a2812c19f1ed2e5ed5ce2ef7109798b575c180e1", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, "deploy-rs": { "inputs": { "flake-compat": "flake-compat", @@ -90,11 +105,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1781627888, - "narHash": "sha256-5yHuAh9k7rT7rtf3uRaXkiUyYvQE9oaCgzhprLm2mr8=", + "lastModified": 1786361680, + "narHash": "sha256-IxaZkb9rCGEZ+yGndxKXONeIEcKMzoFUsvLTB5G/caw=", "owner": "serokell", "repo": "deploy-rs", - "rev": "6d3087eedff75a715b40c0e124ba15d2dd7bec28", + "rev": "16901271e5b30b591e56f7a84f25f186fb20f3e1", "type": "github" }, "original": { @@ -126,11 +141,11 @@ "firefox-gnome-theme": { "flake": false, "locked": { - "lastModified": 1779670703, - "narHash": "sha256-UdfMivNMwCCqQsYDg5pSz8X2IOaOrIZLIIy+Bg3CO2o=", + "lastModified": 1783570805, + "narHash": "sha256-ptl5aRlCv9/uRSv2u8Hq8UFVFeZ6Q/bT049bpqNgc3w=", "owner": "rafaelmardojai", "repo": "firefox-gnome-theme", - "rev": "942159e73e40bf785816f7f1f5feed9ef3d7c8f9", + "rev": "5602ed62d638142c1ab31dccd01dfbfb28841225", "type": "github" }, "original": { @@ -179,11 +194,11 @@ ] }, "locked": { - "lastModified": 1778716662, - "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", + "lastModified": 1785627969, + "narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", + "rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a", "type": "github" }, "original": { @@ -200,11 +215,11 @@ ] }, "locked": { - "lastModified": 1778716662, - "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", + "lastModified": 1782949081, + "narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", + "rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e", "type": "github" }, "original": { @@ -267,6 +282,24 @@ "type": "github" } }, + "flake-utils_4": { + "inputs": { + "systems": "systems_8" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "fromYaml": { "flake": false, "locked": { @@ -307,11 +340,11 @@ ] }, "locked": { - "lastModified": 1784350909, - "narHash": "sha256-ZWyzLbS1yKUTeFJLmdVuWNnHttL333/ldJbEE+KzCrM=", + "lastModified": 1787377438, + "narHash": "sha256-Sxu1NLTD/Ern6hFGLlZmtKCSct3YQXZI/lls8RE1XeM=", "owner": "nix-community", "repo": "home-manager", - "rev": "4ce190229c73d44536caa7072f6308fb2d8feeb3", + "rev": "65258d5c65a250189fde2e35f490d15e064c4c62", "type": "github" }, "original": { @@ -430,11 +463,11 @@ ] }, "locked": { - "lastModified": 1784440659, - "narHash": "sha256-Q5kNLlWngt7TaIIZoxDKWMHjiSaNRVqr70FqWCRRfr4=", + "lastModified": 1787457452, + "narHash": "sha256-FJh4esFS3zqNNuKwvN3t6wrJGewqp1AUF9DAEvoKPD8=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "4f8d52a3598b0dc7db7a5e7b419e3edd9d1ecfdb", + "rev": "c51d5c2ba69c907a34e90c9b6b80cd2b93811745", "type": "github" }, "original": { @@ -505,11 +538,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1784310968, - "narHash": "sha256-rkSPTePrKqs4dg+i7ZFCq93+HrClac6oSwXX927SVjA=", + "lastModified": 1787144466, + "narHash": "sha256-HHfv2/HkNSKbbSyU9iD/g8lbP6r4tl33sSw1W4rXCk0=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "779c32a00155994c86cde8213a8dd4df139d4355", + "rev": "0471accf8d0a8210b31d947497d179ecc99e0021", "type": "github" }, "original": { @@ -536,11 +569,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1784356753, - "narHash": "sha256-12KrbMiWLcf8m7pCvAtZh1ZrgF85ZXDXvfR/fWTKy84=", + "lastModified": 1787736819, + "narHash": "sha256-cV5xEJJK3BvhU8rEd4mC9UsmDi5qscv/kzGPhBRC5WA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "61b7c44c4073f0b827768aff0049561b5110ea5a", + "rev": "9fbb54b33e91ee4ca368e35a78e0613c720600b3", "type": "github" }, "original": { @@ -593,11 +626,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1784280462, - "narHash": "sha256-DtoqIqM7VkR6NxAkcLpMwmi02USwWb3JdmNGLyhthc0=", + "lastModified": 1787848966, + "narHash": "sha256-7gDpu5hpq0rOYnYMcOWqSzquK4HA/xU8Xf3CjUBOOJA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "293d6abedf0478e681a4dfcfcb35b30fc796a32f", + "rev": "d57af924f160a5084293c71c2043f058bd1cdb60", "type": "github" }, "original": { @@ -609,11 +642,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1781216227, - "narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=", + "lastModified": 1787204541, + "narHash": "sha256-OURZPknrTjQrlNyxPdqzyqmU/81Wes1CUP/Ft1Rv/YI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0", + "rev": "5880666fd9eb563038431edb35c2d0aa595884e6", "type": "github" }, "original": { @@ -625,15 +658,15 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1784356753, - "narHash": "sha256-zupdTm41be2fY8cexroEOGjopl3F2Gqs3gk7ieqaM3s=", - "rev": "61b7c44c4073f0b827768aff0049561b5110ea5a", + "lastModified": 1787360063, + "narHash": "sha256-95aJfHyQTLWslCXFVNB0odgmVkpdmDezQwTg9mhqV1E=", + "rev": "2c423e03bbafcff28bfadc6781a4a8257f205cb5", "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1036777.61b7c44c4073/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1059570.2c423e03bbaf/nixexprs.tar.zst" }, "original": { "type": "tarball", - "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" + "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.zst" } }, "nixvim": { @@ -643,11 +676,11 @@ "systems": "systems_4" }, "locked": { - "lastModified": 1782919967, - "narHash": "sha256-pRwjfB5HQJ3m8J8bOR43pPHtHI7VUJSqwLA3P06cOY0=", + "lastModified": 1787536726, + "narHash": "sha256-aBh5Yk9tX8ZV4k10BJr2fvTq0/+iWGegaCMUOU7YKas=", "owner": "nix-community", "repo": "nixvim", - "rev": "667c8471f4a0fb24d702d1a61af8609f1a5f1ba6", + "rev": "e2c3f9f36326d07340626847543c557e2b95fb50", "type": "github" }, "original": { @@ -662,11 +695,11 @@ "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1784456694, - "narHash": "sha256-WjF2/HV1swc1Fwug/8Hf4jtCCQeQqdSVIT6peWB8CGs=", + "lastModified": 1787962868, + "narHash": "sha256-kST4FTVCH5qsMU9FWalSqMxt6JeBnnAT83cMWSeN5Dc=", "owner": "noctalia-dev", "repo": "noctalia", - "rev": "98f0d2b4afc2b1389d8480ce64e7f30957ff3800", + "rev": "4b03775fac344d87c078431f49e52c1e5b2be528", "type": "github" }, "original": { @@ -688,11 +721,11 @@ ] }, "locked": { - "lastModified": 1779766384, - "narHash": "sha256-P7Ohnlq8b8b2fU+Sgkrej7LBTM60LBTkHleLuYzmLmU=", + "lastModified": 1785549842, + "narHash": "sha256-DCwBZmGsySF7oKGTRgEv2HvpxVXkHT+38VhTM76k0B4=", "owner": "nix-community", "repo": "NUR", - "rev": "57800b7ab648725ccd33551d01484ee14952ad3f", + "rev": "a9f987b57594e845e3e5cdd423b9a70846d70308", "type": "github" }, "original": { @@ -721,6 +754,7 @@ "sops-nix": "sops-nix", "stylix": "stylix", "systems": "systems_7", + "vortix": "vortix", "yazi-flavors": "yazi-flavors" } }, @@ -753,11 +787,11 @@ ] }, "locked": { - "lastModified": 1783174389, - "narHash": "sha256-aCWC8ngycU7OdJrU2+Je3qf+1a2ykuBvpPhZT/9tXMc=", + "lastModified": 1786629091, + "narHash": "sha256-gkig4nPi1CWc4Z50GBsjE4ygSE7hMpl/TwID2an2Cck=", "owner": "Mic92", "repo": "sops-nix", - "rev": "f1406619a3884cd5c47992a70b8b35c9c0fcb4c9", + "rev": "a8627b21b9107c5711c96b84f32a9a4b3d45295f", "type": "github" }, "original": { @@ -786,11 +820,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1784060273, - "narHash": "sha256-14rIy2kTs5CufmDpgJrwkR+7IzuCAXyLYDAx6ixfRFc=", + "lastModified": 1786383226, + "narHash": "sha256-SM00z+A0/ruFPGCRdoxDnApVGa3A1iLlhRmMvnGH7tU=", "owner": "nix-community", "repo": "stylix", - "rev": "2245fa9e16034149b6501834b99863a486e94725", + "rev": "a01dcef2f28b4106d6b3817ab89280194bf716d3", "type": "github" }, "original": { @@ -905,6 +939,21 @@ "type": "github" } }, + "systems_8": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "tinted-kitty": { "flake": false, "locked": { @@ -924,11 +973,11 @@ "tinted-schemes": { "flake": false, "locked": { - "lastModified": 1777806186, - "narHash": "sha256-PDF0/wObw4nIsSBeXVYLsloXOiphXCgIdsrNcVXguKs=", + "lastModified": 1785153830, + "narHash": "sha256-fNdfCTeCXU3tZG3TMincd+u68qBHQgCr2Ljr/M1mWP0=", "owner": "tinted-theming", "repo": "schemes", - "rev": "0c94645546f4f3ddac77a1a5fce54eb95bf50795", + "rev": "9bd28ed313560db3c5b605c63bc4e309e78e3fc8", "type": "github" }, "original": { @@ -940,11 +989,11 @@ "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1778379944, - "narHash": "sha256-wPDFzMGSlARlw0Sfsn48Q2+jPSfk6N0Ng6BC/d+7Q24=", + "lastModified": 1785031658, + "narHash": "sha256-mZp9O2LjzdMzlqQF3l3fjqsuPBzXy+1qTfBEUGjTlpk=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "fe0203a198690e71a5ff11e08812a4673de3678d", + "rev": "5d2c67f61ea7af36f16865ab6d541cdba41dc257", "type": "github" }, "original": { @@ -956,11 +1005,11 @@ "tinted-zed": { "flake": false, "locked": { - "lastModified": 1778378178, - "narHash": "sha256-OXPXRIQgGwV77HjYRryOHguh4ALX96jkg+tseLkGgHA=", + "lastModified": 1785030526, + "narHash": "sha256-klZf8UviewRkxuu74Bhbq6tqy7oxebQC7UVRWbbtQxU=", "owner": "tinted-theming", "repo": "base16-zed", - "rev": "9cd816033ff969415b190722cddf134e78a5665f", + "rev": "16f5a8adf4a6b1310d0a61ab172de963e8f76a02", "type": "github" }, "original": { @@ -987,14 +1036,36 @@ "type": "github" } }, + "vortix": { + "inputs": { + "crane": "crane_2", + "flake-utils": "flake-utils_4", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1787232922, + "narHash": "sha256-tJGRoX8WmhrTcqLjr57C0EjlMo8wTy0mIgJ19AgLUU0=", + "owner": "Harry-kp", + "repo": "vortix", + "rev": "8e2d58d14878ac598d1b697468d7e79d091b2b6a", + "type": "github" + }, + "original": { + "owner": "Harry-kp", + "repo": "vortix", + "type": "github" + } + }, "yazi-flavors": { "flake": false, "locked": { - "lastModified": 1782552321, - "narHash": "sha256-erZI0H5TxqFu2P917juL5PIB3LC0oJGKPcB1VibJDqo=", + "lastModified": 1787401728, + "narHash": "sha256-NGnfrQdsnQITKCZ0oh6DCxeCR2ozJoPAZetsi3ghHAI=", "owner": "yazi-rs", "repo": "flavors", - "rev": "4770a3467169bfdb0a3b11601921aaf27c100630", + "rev": "20b47bfd78880c2674899597fd26bc01b21ff48c", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 11ae8ac..e429d4e 100644 --- a/flake.nix +++ b/flake.nix @@ -25,6 +25,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + vortix = { + url = "github:Harry-kp/vortix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + home-manager = { url = "github:nix-community/home-manager/release-26.05"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/homes/julian/features/fish/default.nix b/homes/julian/features/fish/default.nix index 9654260..910cfcb 100644 --- a/homes/julian/features/fish/default.nix +++ b/homes/julian/features/fish/default.nix @@ -32,6 +32,30 @@ with lib; { enableFishIntegration = true; }; + programs.atuin = { + enable = true; + enableFishIntegration = true; + daemon.enable = true; + settings = { + auto_sync = false; + enter_accept = true; # execute directly on enter + ai = { + enabled = true; + capabilites = { + enable_file_tools = false; + enable_command_execution = false; + enable_history_output = false; + enable_history_search = true; + }; + opening = { + # The context sent to the ai + send_cwd = false; + send_last_command = false; + }; + }; + }; + }; + programs.fish = { enable = true; diff --git a/homes/julian/features/hyprland/hyprland.lua b/homes/julian/features/hyprland/hyprland.lua index d0680c0..d10b3e1 100644 --- a/homes/julian/features/hyprland/hyprland.lua +++ b/homes/julian/features/hyprland/hyprland.lua @@ -7,6 +7,7 @@ hl.on("hyprland.start", function() -- hl.exec_cmd("waybar") hl.exec_cmd("env QT_QPA_PLATFORMTHEME=qt5ct noctalia-shell") -- env ensures noctalia works alongside kde hl.exec_cmd("firefox") + hl.exec_cmd("fcitx5 -d -r") end) hl.on("config.reloaded", function() hl.exec_cmd("correct-workspace-locations") @@ -18,6 +19,10 @@ end) -- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/ hl.env("TERMINAL", terminal) -- e.g. for emacs +-- Use fcitx for optional japanese input +hl.env("XMODIFIERS", "@im=fcitx") +hl.env("QT_IM_MODULE", "fcitx") +hl.env("SDL_IM_MODULE", "fcitx") ----------------------- ----- PERMISSIONS ----- diff --git a/homes/julian/features/suites/desktop/default.nix b/homes/julian/features/suites/desktop/default.nix index 856e356..3efafd3 100644 --- a/homes/julian/features/suites/desktop/default.nix +++ b/homes/julian/features/suites/desktop/default.nix @@ -18,6 +18,11 @@ }; home.packages = with pkgs; [ + (anki.withAddons [ + ankiAddons.anki-connect + ankiAddons.passfail2 + ankiAddons.review-heatmap + ]) arandr calibre # ebook manager and viewer # digikam diff --git a/homes/julian/features/suites/development/default.nix b/homes/julian/features/suites/development/default.nix index 53fa6ff..6cad4e6 100644 --- a/homes/julian/features/suites/development/default.nix +++ b/homes/julian/features/suites/development/default.nix @@ -1,10 +1,18 @@ -{pkgs, ...}: { +{ + pkgs, + inputs, + ... +}: { programs.opencode = { enable = true; package = pkgs.unstable.opencode; }; home.packages = with pkgs; [ + inputs.vortix.packages.${pkgs.system}.default # tui for wireguard + + worktrunk # interface for git worktrees + watchexec # Run command when any file in current dir changes android-tools # adb # shellcheck # Check bash scripts for common errors diff --git a/hosts/aspi/default.nix b/hosts/aspi/default.nix index 0befe33..128a9e3 100644 --- a/hosts/aspi/default.nix +++ b/hosts/aspi/default.nix @@ -24,6 +24,7 @@ "${pwd}/features-nixos/optional/k9s" "${pwd}/features-nixos/optional/avahi.nix" + "${pwd}/features-nixos/optional/solokey.nix" ]; networking.hostName = "aspi"; @@ -31,6 +32,9 @@ # networking.firewall.checkReversePath = false; # Makes wg interface with all ips work + programs.ausweisapp.enable = true; + programs.ausweisapp.openFirewall = true; # for pairing with smartphone + modules = { syncthing = { enable = true; diff --git a/hosts/kardorf/default.nix b/hosts/kardorf/default.nix index 6f30dbd..57eabfe 100644 --- a/hosts/kardorf/default.nix +++ b/hosts/kardorf/default.nix @@ -28,6 +28,7 @@ "${pwd}/features-nixos/optional/wireshark.nix" "${pwd}/features-nixos/optional/flatpak.nix" "${pwd}/features-nixos/optional/k9s" + "${pwd}/features-nixos/optional/solokey.nix" ]; networking.hostName = "kardorf"; diff --git a/packages/smath-studio.nix b/packages/smath-studio.nix index d649e3b..842453d 100644 --- a/packages/smath-studio.nix +++ b/packages/smath-studio.nix @@ -1,17 +1,19 @@ { + lib, appimageTools, fetchurl, libgdiplus, }: let pname = "smath-studio"; - version = "1.3.0.9126"; + version = "1.5.0.9678"; src = fetchurl { - url = "https://smath.com/en-US/files/Download/cqSek/SMathStudioDesktop.1_3_0_9126.x86_64.ubuntu-22_04.glibc2.35.AppImage"; - hash = "sha256-4FpdFGPFaPDK6WWSJHVtxcC8auaNkGmHyUtbegij6cQ="; + # The code after /Download/ changes per release + url = "https://smath.com/en-US/files/Download/c4zCE/SMathStudioDesktop.1_5_0_9678.x86_64.ubuntu-22_04.glibc2.35.AppImage"; + hash = "sha256-6lnuRnhoH6E+jIZXSgb/Pz9wE9nVAbduDHrkKCKKH+Y="; }; - appimageContents = appimageTools.extractType2 { + appimageContents = appimageTools.extract { inherit pname version src; }; in @@ -30,6 +32,22 @@ in extraInstallCommands = '' install -m 444 -D ${appimageContents}/*.desktop -t $out/share/applications sed -i "s|^Exec=.*|Exec=smath-studio %U|" $out/share/applications/*.desktop - cp -r ${appimageContents}/usr/share/icons $out/share + + # Package icons into /apps directory + for icon in ${appimageContents}/usr/share/icons/hicolor/*/*.png; do + if [ -f "$icon" ]; then + size=$(basename $(dirname "$icon")) + install -m 444 -D "$icon" "$out/share/icons/hicolor/$size/apps/smath.png" + fi + done ''; + + meta = with lib; { + description = "Tiny, powerful, free mathematical program with WYSIWYG editor and complete units of measurements support"; + homepage = "https://smath.com/"; + license = licenses.unfree; # SMath is freeware, but closed source + # maintainers = with maintainers; [frajul]; + mainProgram = "smath-studio"; + platforms = ["x86_64-linux"]; + }; }