diff --git a/dotfiles/kitagawa/equibop/equicord-settings.json b/dotfiles/kitagawa/equibop/equicord-settings.json index 6391a83..0efb47b 100644 --- a/dotfiles/kitagawa/equibop/equicord-settings.json +++ b/dotfiles/kitagawa/equibop/equicord-settings.json @@ -4,7 +4,7 @@ "authenticated": false, "settingsSync": false, "url": "https://cloud.equicord.org/", - "settingsSyncVersion": 1787926226537 + "settingsSyncVersion": 1788610714905 }, "enableOnlineThemes": true, "enabledThemeLinks": [ @@ -118,7 +118,9 @@ "settingsLocation": "aboveNitro" }, "WebKeybinds": { - "enabled": true + "enabled": true, + "showNavigationButtons": true, + "overrideCommonKeybinds": true }, "WebScreenShareFixes": { "enabled": true @@ -595,7 +597,7 @@ "enabled": false }, "AudioPlayerAPI": { - "enabled": false + "enabled": true }, "HeaderBarAPI": { "enabled": true @@ -1204,6 +1206,9 @@ }, "SidebarChat": { "enabled": false + }, + "VoiceMessagesInBackground": { + "enabled": true } }, "useQuickCss": true, diff --git a/dotfiles/kitagawa/remmina/group_rdp_takamaki_greyweather-dev.remmina b/dotfiles/kitagawa/remmina/group_rdp_takamaki_greyweather-dev.remmina index 4a1a42b..8511f6a 100644 --- a/dotfiles/kitagawa/remmina/group_rdp_takamaki_greyweather-dev.remmina +++ b/dotfiles/kitagawa/remmina/group_rdp_takamaki_greyweather-dev.remmina @@ -1,16 +1,16 @@ [remmina] -password=fEyBOZsHZDgKWSF2JAM6zg== +password=. gateway_username= smartcard_pin= -window_height=780 -notes_text= vc= +notes_text= +window_height=780 preferipv6=0 -ssh_tunnel_loopback=1 -serialname= -tls-seclevel= -sound=local scale=2 +ssh_tunnel_loopback=1 +tls-seclevel= +serialname= +sound=local printer_overrides= name=takamaki console=0 @@ -22,6 +22,7 @@ security= disable_fastpath=0 left-handed=0 multitransport=0 +postcommand= ssh_tunnel_command_args= group= server=greyweather.dev @@ -31,26 +32,25 @@ glyph-cache=0 rdp_idle_keypress_combo=1 disableclipboard=0 rdp_idle_keypress_time=No -audio-output= +disconnect-prompt=0 ssh_tunnel_command= monitorids= parallelpath= -disconnect-prompt=0 -gateway_server= -protocol=RDP -old-license=0 labels= +audio-output= +protocol=RDP +serialpermissive=0 +old-license=0 ssh_tunnel_password= resolution_mode=2 cert_ignore=0 assistance_mode=0 pth= -loadbalanceinfo= disableautoreconnect=0 +loadbalanceinfo= ssh_tunnel_enabled=1 clientbuild= -serialpermissive=0 -postcommand= +gateway_server= clientname= resolution_width=0 allow_empty_pass=0 @@ -73,7 +73,7 @@ serialpath= gateway_password= enable-autostart=0 usb= -ssh_tunnel_passphrase= +ssh_tunnel_passphrase=. shareparallel=0 smartcardname= disablepasswordstoring=0 @@ -96,7 +96,7 @@ microphone= timeout= ssh_tunnel_privatekey=/home/grey/.ssh/id_takamaki gwtransp=auto -ssh_tunnel_server=takamaki +ssh_tunnel_server=greyweather.dev:2222 ignore-tls-errors=1 window_maximize=1 forceipvx=0 diff --git a/dotfiles/shared/git.conf b/dotfiles/shared/git.conf new file mode 100644 index 0000000..31cecb9 --- /dev/null +++ b/dotfiles/shared/git.conf @@ -0,0 +1,36 @@ +[commit] + gpgSign = true + +[diff] + guitool = "kitty.gui" + tool = "kitty" + +[difftool] + prompt = false + trustExitCode = true + +[difftool "kitty"] + cmd = "kitten diff $LOCAL $REMOTE" + +[difftool "kitty.gui"] + cmd = "kitten diff $LOCAL $REMOTE" + +[filter "lfs"] + clean = "git-lfs clean -- %f" + process = "git-lfs filter-process" + required = true + smudge = "git-lfs smudge -- %f" + +[gpg] + format = "openpgp" + +[gpg "openpgp"] + program = "gpg" + +[tag] + gpgSign = true + +[user] + email = "grey@greyweather.dev" + name = "Grey Jones" + signingKey = "CC7388DF8E1890729921BCFF7C67C51C2FF524D9" \ No newline at end of file diff --git a/dotfiles/shared/vscode/settings.json b/dotfiles/shared/vscode/settings.json index 2229d6b..392ca1a 100644 --- a/dotfiles/shared/vscode/settings.json +++ b/dotfiles/shared/vscode/settings.json @@ -1,59 +1,37 @@ { + "editor.semanticHighlighting.enabled": true, "[nix]": { "editor.tabSize": 2 }, "chat.disableAIFeatures": true, - "patternStore.savedPatterns": [ - { - "label": "convert JSON pairs to Nix format", - "find": "\"(\\w+)\": (.+?),?$", - "replace": "$1 = $2;", - "flags": { - "isRegex": true, - "isCaseSensitive": false, - "matchWholeWord": false, - "isMultiline": false - }, - "filesToInclude": "*.nix", - "filesToExclude": "*.json", - "scope": "global" - }, - { - "label": "convert JSON opening bracket to Nix format", - "find": "(\"\\w+\"): \\{$", - "replace": "$1 = {", - "flags": { - "isRegex": true, - "isCaseSensitive": false, - "matchWholeWord": false, - "isMultiline": false - }, - "filesToInclude": "*.nix", - "filesToExclude": "*.json", - "scope": "global" - }, - { - "label": "convert JSON closing bracket to Nix format", - "find": "\\},?$", - "replace": "};", - "flags": { - "isRegex": true, - "isCaseSensitive": false, - "matchWholeWord": false, - "isMultiline": false - }, - "filesToInclude": "*.nix", - "filesToExclude": "*.json", - "scope": "global" - } - ], "search.exclude": { "**/assets/**": true, + "**/dotfiles/**": true, "**/flake.lock": true }, "update.mode": "none", "workbench.welcomePage.walkthroughs.openOnInstall": false, "explorer.confirmDelete": false, "update.showReleaseNotes": false, - "explorer.confirmDragAndDrop": false + "explorer.confirmDragAndDrop": false, + "nix.enableLanguageServer": true, + "nix.serverPath": "nixd", + "nix.serverSettings": { + "nixd": { + "formatting": { + "command": ["nixfmt"], + }, + "options": { + // By default, this entry will be read from `import { }`. + // You can write arbitrary Nix expressions here, to produce valid "options" declaration result. + // Tip: for flake-based configuration, utilize `builtins.getFlake` + "nixos": { + "expr": "(builtins.getFlake \"/home/grey/flake\").nixosModules.options.options", + }, + "home-manager": { + "expr": "(builtins.getFlake \"/home/grey/flake\").homeModules.options.options" + } + } + } + } } diff --git a/flake.lock b/flake.lock index 9e6971c..cc9f953 100644 --- a/flake.lock +++ b/flake.lock @@ -187,11 +187,11 @@ ] }, "locked": { - "lastModified": 1788653102, - "narHash": "sha256-UHCmPae6q8t15dMGZ6d+Imkpu+tQFxxOWD8+n/5AWT4=", + "lastModified": 1788729777, + "narHash": "sha256-giJweBm8UNIi56rdA37RkaU7RPCyiU4ml42jPHfIDqc=", "ref": "refs/heads/main", - "rev": "18982a624707263369598f49f80f55c65357610b", - "revCount": 54, + "rev": "e4a3a0344d3f0701e26be7fc8a0f271d34058018", + "revCount": 55, "type": "git", "url": "https://git.greyweather.dev/greyweather/nix-helper-flake" }, diff --git a/modules/capabilities/graphics.nix b/modules/capabilities/graphics.nix index bac6f0f..64c4b44 100644 --- a/modules/capabilities/graphics.nix +++ b/modules/capabilities/graphics.nix @@ -11,14 +11,14 @@ kdePackages.filelight ]; in { - flake.nixosModules.graphics = { pkgs, ... }: { + flake.nixosModules.graphics = { pkgs, config, ... }: { imports = [ self.nixosModules.graphicsOptions ]; environment.systemPackages = with pkgs; [ wayland-utils mesa-demos vulkan-tools - ] ++ (if !config.features.nixos.home-manager.enable then (extraPackages pkgs) else []); + ] ++ (if !(config.features.nixos.home-manager.enable) then (extraPackages pkgs) else []); fonts.packages = with pkgs; [ iosevka-comfy.comfy diff --git a/modules/components/window-managers/biri.nix b/modules/components/window-managers/biri.nix index f7a213f..7d33052 100644 --- a/modules/components/window-managers/biri.nix +++ b/modules/components/window-managers/biri.nix @@ -1,10 +1,10 @@ -{ inputs, self, ... }: { +{ ... }: { imports = [ ./niri.nix ]; flake.nixosModules.graphics = { config, pkgs, lib, ... }: { # override niri source to use https://github.com/barrulus/biri config = lib.mkIf (builtins.elem "biri" config.components.windowManagers) { - programs.niri.package = self.packages.${pkgs.stdenv.hostPlatform.system}.biri; + programs.niri.package = pkgs.biri; home-manager.users.${config.info.userName} = lib.mkIf (config.features.nixos.home-manager.enable) { components.windowManagers = [ "biri" ]; @@ -12,7 +12,7 @@ }; }; - flake.homeModules.graphics = { config, pkgs, lib, inputs, ... }: { + flake.homeModules.graphics = { config, lib, ... }: { config = lib.mkIf (builtins.elem "biri" config.components.windowManagers) { features.applications.shellScripts = { niri-scratch-workspace-toggle = '' diff --git a/modules/features/applications/gui/vscode.nix b/modules/features/applications/gui/vscode.nix index 63fc5fb..a024021 100644 --- a/modules/features/applications/gui/vscode.nix +++ b/modules/features/applications/gui/vscode.nix @@ -1,9 +1,9 @@ -{ inputs, self, ... }: let +{ inputs, ... }: let optionName = "features.applications.gui.vscode.enable"; in { imports = [ (inputs.helpers.mkStandardFeature.flakeModule "graphics" optionName "VS Code") ]; - flake.nixosModules.graphics = { config, pkgs, lib, ... }: { + flake.nixosModules.graphics = { config, pkgs, ... }: { imports = [ (inputs.helpers.mkStandardFeature.nixosModule { inherit config optionName; } { environment.systemPackages = [ pkgs.vscode ]; }) ]; diff --git a/modules/global/home.nix b/modules/global/home.nix index 4856022..cb43223 100644 --- a/modules/global/home.nix +++ b/modules/global/home.nix @@ -29,19 +29,11 @@ homeDirectory = "/home/${config.home.username}"; file = inputs.helpers.localBinFromStringAttrs config.features.applications.shellScripts; - }; - programs.sftpman = lib.mkIf (config.info.hostName != "sakamoto") { - enable = true; - mounts = { - sakamoto = { - host = "sakamoto"; - mountDestPath = "/home/grey/mounts/ssh/sakamoto"; - mountPoint = "/"; - sshKey = "/home/grey/.ssh/id_sakamoto"; - user = "grey"; - }; - }; + activation.linkGitConfig = lib.hm.dag.entryAfter ["writeBoundary"] (inputs.helpers.mkSymlinkActivationScript { + target = "${config.home.homeDirectory}/.gitconfig"; + source = "${config.info.rootPath}/dotfiles/shared/git.conf"; + }); }; targets.genericLinux.enable = config.info.isStandalone; @@ -60,20 +52,16 @@ services.gnome-keyring.enable = config.info.isStandalone; programs = { - git = { + sftpman = lib.mkIf (config.info.hostName != "sakamoto") { enable = true; - - lfs.enable = true; - - settings = { - user.name = "Grey Jones"; - user.email = "grey@greyweather.dev"; - }; - - signing = { - format = "openpgp"; - key = "CC7388DF8E1890729921BCFF7C67C51C2FF524D9"; - signByDefault = true; + mounts = { + sakamoto = { + host = "sakamoto"; + mountDestPath = "/home/grey/mounts/ssh/sakamoto"; + mountPoint = "/"; + sshKey = "/home/grey/.ssh/id_sakamoto"; + user = "grey"; + }; }; }; diff --git a/modules/global/nixos.nix b/modules/global/nixos.nix index 2b2c4e3..d3ad74b 100644 --- a/modules/global/nixos.nix +++ b/modules/global/nixos.nix @@ -54,15 +54,21 @@ }; environment.systemPackages = with pkgs; [ - git fzf jq busybox ethtool hyperfine + nixd + nixfmt ] ++ config.features.applications.extraPackages; programs = { + git = { + enable = true; + lfs.enable = true; + }; + nano = { enable = true; nanorc = '' diff --git a/modules/hosts/kitagawa/kitagawa.nix b/modules/hosts/kitagawa/kitagawa.nix index 98f4c3f..62a7f69 100644 --- a/modules/hosts/kitagawa/kitagawa.nix +++ b/modules/hosts/kitagawa/kitagawa.nix @@ -50,6 +50,7 @@ extraPackages = with pkgs; [ moonlight-qt + github-desktop ]; }; }; @@ -103,6 +104,7 @@ jetbrains.idea xarchiver kdePackages.kate + kdePackages.kdeconnect-kde loupe sshfs ]; diff --git a/modules/options/aggregated-options.nix b/modules/options/aggregated-options.nix new file mode 100644 index 0000000..703daa3 --- /dev/null +++ b/modules/options/aggregated-options.nix @@ -0,0 +1,18 @@ +{ self, ... }: { + flake.nixosModules.options = { ... }: { + imports = with self.nixosModules; [ + globalOptions + graphicsOptions + gamingOptions + ]; + }; + + flake.homeModules.options = { ... }: { + imports = with self.homeModules; [ + globalOptions + audioOptions + graphicsOptions + gamingOptions + ]; + }; +} diff --git a/modules/overlays.nix b/modules/overlays.nix new file mode 100644 index 0000000..2f06f2d --- /dev/null +++ b/modules/overlays.nix @@ -0,0 +1,21 @@ +{ inputs, self, ... }: let + overlays = [ + (final: prev: let + stablePkgs = import inputs.nixpkgs-26-05 { + system = prev.stdenv.hostPlatform.system; + config.allowUnfree = true; + }; + in { + vscode = stablePkgs.vscode; + biri = self.packages.${prev.stdenv.hostPlatform.system}.biri; + }) + ]; +in { + flake.nixosModules.global = { ... }: { + nixpkgs.overlays = overlays; + }; + + flake.homeModules.global = { lib, config, ... }: { + nixpkgs.overlays = lib.mkIf (config.info.isStandalone) overlays; + }; +}