Compare commits

...

5 commits

Author SHA1 Message Date
krizej
461954ff48 jacekgit fix fix fix 2024-06-15 22:08:14 +02:00
krizej
ded3572b91 jacekgit fix fix 2024-06-15 22:06:23 +02:00
krizej
6496c4b775 jacekgit fix 2024-06-15 22:03:45 +02:00
krizej
e0f5aa028d jacekgit 2024-06-15 22:02:35 +02:00
krizej
99566b2c3d desktop changes !! 2024-06-15 21:59:32 +02:00
18 changed files with 327 additions and 103 deletions

1
.gitignore vendored
View file

@ -1 +0,0 @@
hardware-configuration.nix

View file

@ -1,34 +1,44 @@
{ pkgs, ... }: {
{ pkgs, ...}: {
imports = [
./hardware-configuration.nix
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot = {
loader.grub = {
enable = true;
device = "/dev/disk/by-id/ata-Samsung_SSD_860_EVO_500GB_S4CNNE0M700172J";
};
# kernelParams = [
# "video=DP-3:1920x1080@240"
# "video=HDMI-3:1920x1080@75"
# ];
};
nix.settings.experimental-features = [ "nix-command" "flakes" ];
networking.hostName = "laptop";
networking.hostName = "krizej-pc";
networking.networkmanager.enable = true;
time.timeZone = "Europe/Warsaw";
services.libinput = {
enable = true;
touchpad = {
naturalScrolling = false; # it's reversed on my laptop for some reason
tapping = true;
tappingButtonMap = "lmr";
scrollMethod = "edge";
};
};
services.xserver = {
enable = true;
displayManager.gdm.enable = true;
windowManager.i3.enable = true;
xkb.layout = "pl";
libinput = {
enable = true;
touchpad = {
naturalScrolling = false; # it's reversed on my laptop for some reason
tapping = true;
tappingButtonMap = "lmr";
scrollMethod = "edge";
};
};
# this shit doesn't actually work
# this shit doesn't actually work
autoRepeatDelay = 180;
autoRepeatInterval = 50;
# this does
@ -52,10 +62,10 @@
hardware.pulseaudio.enable = true;
# fucking stupid android shit man
users.groups.plugdev.members = [ "krizej" ];
services.udev.extraRules = ''
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="2e76", MODE="0666", GROUP="plugdev"
'';
# users.groups.plugdev.members = [ "krizej" ];
# services.udev.extraRules = ''
# SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="2e76", MODE="0666", GROUP="plugdev"
# '';
users.users.krizej = {
isNormalUser = true;
@ -77,21 +87,32 @@
programs.fish.promptInit = ''
${pkgs.any-nix-shell}/bin/any-nix-shell fish --info-right | source
'';
programs.steam = {
enable = true;
};
environment.systemPackages = with pkgs; [
ed # is the standard text editor.
vim
file
wget
btop
git
gcc
unzip
python312
python311
ripgrep
gnomeExtensions.user-themes
xdg-user-dirs
man-pages
man-pages-posix
ntfs3g
gnumake
xclip
tcl
pkg-config
tree
];
documentation.dev.enable = true;

44
files/workspace2.json Normal file
View file

@ -0,0 +1,44 @@
// vim:ts=4:sw=4:et
{
"border": "pixel",
"current_border_width": 1,
"floating": "auto_off",
"geometry": {
"height": 1054,
"width": 940,
"x": 1921,
"y": 1
},
"marks": [],
"name": "Friends - Discord",
"percent": 0.6,
"swallows": [
{
"class": "^discord$",
"title": "^(?!.*Updater)"
}
],
"type": "con"
}
{
"border": "pixel",
"current_border_width": 1,
"floating": "auto_off",
"geometry": {
"height": 1054,
"width": 1918,
"x": 1921,
"y": 1
},
"marks": [],
"name": "Element * | the idiot room",
"percent": 0.4,
"swallows": [
{
"class": "^Element$"
}
],
"type": "con"
}

View file

@ -7,32 +7,31 @@
]
},
"locked": {
"lastModified": 1714043624,
"narHash": "sha256-Xn2r0Jv95TswvPlvamCC46wwNo8ALjRCMBJbGykdhcM=",
"lastModified": 1718243258,
"narHash": "sha256-abBpj2VU8p6qlRzTU8o22q68MmOaZ4v8zZ4UlYl5YRU=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "86853e31dc1b62c6eeed11c667e8cdd0285d4411",
"rev": "8d5e27b4807d25308dfe369d5a923d87e7dbfda3",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-23.11",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1714531828,
"narHash": "sha256-ILsf3bdY/hNNI/Hu5bSt2/KbmHaAVhBbNUOdGztTHEg=",
"lastModified": 1718318537,
"narHash": "sha256-4Zu0RYRcAY/VWuu6awwq4opuiD//ahpc2aFHg2CWqFY=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "0638fe2715d998fa81d173aad264eb671ce2ebc1",
"rev": "e9ee548d90ff586a6471b4ae80ae9cfcbceb3420",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-23.11",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}

View file

@ -1,16 +1,16 @@
{
description = ":-)";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager/release-23.11";
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nur.url = "github:nix-community/NUR";
};
outputs = { nixpkgs, home-manager, nur, ... }: {
nixosConfigurations = {
laptop = nixpkgs.lib.nixosSystem {
"krizej-pc" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
{ nixpkgs.overlays = [ nur.overlay ]; }

View file

@ -0,0 +1,34 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/a146cbcb-a384-48d8-af3b-85e818302894";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/365d77bf-8a9f-49fa-a96d-1eaa2aa4c275"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s25.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -11,7 +11,7 @@ let
)
)
);
in {
in rec {
home.stateVersion = "23.11";
home.username = "krizej";
home.homeDirectory = "/home/krizej";
@ -31,9 +31,9 @@ in {
xarchiver
fortune
vim-full
jetbrains.pycharm-professional
android-studio
android-tools
jetbrains.pycharm-community
# android-studio
# android-tools
feh
element-desktop
lxappearance
@ -42,7 +42,11 @@ in {
discord
libreoffice-qt
wineWowPackages.stable
jetbrains.clion
winetricks
pamixer
gimp
xorg.xkill
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
@ -57,9 +61,8 @@ in {
# '')
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
".config/i3/workspace2.json".source = files/workspace2.json;
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
@ -72,29 +75,29 @@ in {
# '';
};
home.sessionVariables = {
home.sessionVariables = let HOME = home.homeDirectory; in rec {
EDITOR = "vim";
MANSECT = "2:3:3p:3type:1:1p:n:l:8:0:0p:5:4:9:6:7";
# xdg crap thx poz
XDG_DATA_HOME = "$HOME/.local/share";
XDG_CONFIG_HOME = "$HOME/.config";
XDG_STATE_HOME = "$HOME/.local/state";
XDG_CACHE_HOME = "$HOME/.cache";
ANDROID_USER_HOME = "$XDG_DATA_HOME/android";
ANDROID_HOME = "$XDG_DATA_HOME/android/sdk";
GRADLE_USER_HOME = "$XDG_DATA_HOME/gradle";
PYTHONSTARTUP = "$XDG_CONFIG_HOME/python/pythonrc";
HISTFILE = "$XDG_CACHE_HOME/bash/history";
CARGO_HOME = "$XDG_DATA_HOME/cargo";
_JAVA_OPTIONS = "-Djava.utils.prefs.userRoot=$XDG_CONFIG_HOME/java";
GNUPGHOME = "$XDG_DATA_HOME/cargo";
WINEPREFIX = "$XDG_DATA_HOME/wine";
RUSTUP_HOME = "$XDG_DATA_HOME/rustup";
NUGET_PACKAGES = "$XDG_CACHE_HOME/NuGetPackages";
FCEUX_HOME = "$XDG_CONFIG_HOME/fceux";
DOTNET_CLI_HOME = "$XDG_CONFIG_HOME/dotnet";
GTK2_RC_FILES = lib.mkForce "$XDG_CONFIG_HOME/gtk-2.0/gtkrc";
XDG_DATA_HOME = "${HOME}/.local/share";
XDG_CONFIG_HOME = "${HOME}/.config";
XDG_STATE_HOME = "${HOME}/.local/state";
XDG_CACHE_HOME = "${HOME}/.cache";
ANDROID_USER_HOME = "${XDG_DATA_HOME}/android";
ANDROID_HOME = "${XDG_DATA_HOME}/android/sdk";
GRADLE_USER_HOME = "${XDG_DATA_HOME}/gradle";
PYTHONSTARTUP = "${XDG_CONFIG_HOME}/python/pythonrc";
HISTFILE = "${XDG_CACHE_HOME}/bash/history";
CARGO_HOME = "${XDG_DATA_HOME}/cargo";
_JAVA_OPTIONS = "-Djava.utils.prefs.userRoot=${XDG_CONFIG_HOME}/java";
GNUPGHOME = "${XDG_DATA_HOME}/gnupg";
WINEPREFIX = "${XDG_DATA_HOME}/wine";
RUSTUP_HOME = "${XDG_DATA_HOME}/rustup";
NUGET_PACKAGES = "${XDG_CACHE_HOME}/NuGetPackages";
FCEUX_HOME = "${XDG_CONFIG_HOME}/fceux";
DOTNET_CLI_HOME = "${XDG_CONFIG_HOME}/dotnet";
GTK2_RC_FILES = lib.mkForce "${XDG_CONFIG_HOME}/gtk-2.0/gtkrc";
};
xdg.userDirs = let
@ -119,12 +122,12 @@ in {
windowManager.i3 = (import ./programs/i3.nix args);
};
# home.pointerCursor = {
# gtk.enable = true;
# x11.enable = true;
# name = "Windows-7-Aero-Cursors_Default";
# package = pkgs.win7-cursors;
# };
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
name = "aero-drop";
package = pkgs.win7-cursors;
};
gtk = {
enable = true;

View file

@ -0,0 +1,30 @@
{ lib, stdenv, fetchFromGitHub, }:
stdenv.mkDerivation {
pname = "darkcold-gtk-theme";
version = "v5.1.0";
src = fetchFromGitHub {
owner = "originalseed";
repo = "darkcold";
rev = "71f8fec1fbd62e1bf94fae839efea0acbcd30c0d";
hash = "sha256-Wk0TAGRUqAJn7PxyqKV3WnZXx2krEQKF/6KZ+R8ld+U=";
};
installPhase = ''
runHook preInstall
mkdir -p "$out/share/themes/darkcold/"
cp -r * "$out/share/themes/darkcold/";
cp userContent.css "$out/";
runHook postInstall
'';
meta = with lib; {
description = "DarkCold GTK2/3 + Firefox theme";
homepage = "https://github.com/${src.owner}/${src.repo}";
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View file

@ -6,6 +6,7 @@ pkgs: [
winxp-icons = pkgs.callPackage ./winxp-icons.nix {};
oxylite-icon-theme = pkgs.callPackage ./oxylite-icon-theme.nix {};
e17gtk-revolved = pkgs.callPackage ./e17gtk-revolved.nix {};
darkcold-gtk-theme = pkgs.callPackage ./darkcold-gtk-theme.nix {};
})
]

View file

@ -1,25 +1,30 @@
{ lib, stdenv, fetchFromGitHub }:
stdenv.mkDerivation {
{ lib, stdenv, fetchzip }:
stdenv.mkDerivation rec {
pname = "win7-cursors";
version = "1";
src = fetchFromGitHub {
owner = "lLexian";
repo = "Windows-7-Aero-Cursors_Linux";
rev = "f14c659082d38be7cbde2101ea5ab71987ead64e";
hash = "sha256-aG+iHqwTZxgWLg0qkJtTIW+byxUszHR9HN3TDnR1i7Y=";
src = fetchzip {
url = "https://gitgud.io/wackyideas/aerothemeplasma/-/raw/master/Icons%20and%20cursors/aero-drop.tar.gz?ref_type=heads&inline=false";
hash = "sha256-4IY6ZE/nSLJ3HGfzEp2rxBah8Z9lUNQdGncRTjv2Jtg=";
};
installPhase = ''
thedir="$out/share/icons/"
install -d $thedir
cp -r * $thedir
thedir="$out/share/icons/aero-drop"
mkdir -p $thedir/cursors
for f in $(find $src \( -type f -or -type l \) -and -not -name "*move" -and -not -name "*fleur" -and -not -name "*.theme"); do
cp $f $thedir/cursors
done
cp $src/index.theme $thedir/index.theme
cp $src/cursors/fleur_actual $thedir/cursors/move
cp $src/cursors/fleur_actual $thedir/cursors/fleur
cp $src/cursors/crosshair $thedir/cursors/kill
cp $src/cursors/crosshair $thedir/cursors/pirate
'';
meta = with lib; {
description = "Windows 7 Cursors";
homepage = "https://github.com/lLexian/Windows-7-Aero-Cursors_Linux";
license = licenses.gpl2Only;
homepage = "https://gitgud.io/wackyideas/aerothemeplasma";
license = licenses.agpl3Plus;
platforms = platforms.linux;
};
}

BIN
programs/.ssh.nix.swp Normal file

Binary file not shown.

View file

@ -1,4 +1,4 @@
{ pkgs, ...}:
{ pkgs, ... }:
{
enable = true;
hooks.postswitch = {
@ -7,22 +7,22 @@
profiles = {
"main" = {
fingerprint = {
"HDMI-1" = "00ffffffffffff0026cd5861830600001d1f010380361e782a4c70a5574ea4260b5054a56b80710081408180a940b3009500950fd1c0023a801871382d40582c4500202f2100001e000000ff0031313737393132393031363637000000fd0038f01fff3c000a202020202020000000fc00504c3235393048530a2020202001b3020345f14c90040302011112131f203f40e200d5230907078301000067030c001000384467d85dc4017880006d1a0000020130f0e60000000000e305c301e60605016666005a8780a070384d4030203500202f2100001a23e88078703887401c40980c202f2100001a00000000000000000000000000000000000000000000e0";
"eDP-1" = "00ffffffffffff003870400000000000011c01049522137803f285975c588f281d5054000000010101010101010101010101010101012e3680a070381f403020350058c21000001a182480a070381f403020350058c21000001a00000000000000000000000000000000000000000002000c42f90b3c6a0c13237d0000000034";
"DP-3" = "00ffffffffffff0026cd5961830600001d1f0104b5361e783b4c70a5574ea4260b5054a56b80710081408180a940b3009500950fd1c0023a801871382d40582c4500202f2100001e000000ff0031313737393132393031363637000000fd0030f0ffff3c010a202020202020000000fc00504c3235393048530a20202020019202033bf1529005040302011112131f203f140607151640e200d52309070783010000e305c301e60605016666006d1a0000020130f00000000000005a8780a070384d4030203500202f2100001ad09480a070381e4008203500202f2100001a23e88078703887401c40980c202f2100001a000000000000000000000000000063";
"HDMI-3" = "00ffffffffffff0026cd326162190000291c010380361e782a9055a75553a028135054a56b80710081408180a940b3009500950fd1c0023a801871382d40582c4500202f2100001e000000ff0031313534333834313036343938000000fd00374c1e5312000a202020202020000000fc00504c32353330480a2020202020016202032bf14f90050403020111121314060715161f230907078301000065030c001000681a00000101284be6023a801871382d40582c4500202f2100001f011d8018711c1620582c2500202f2100009e011d007251d01e206e285500202f2100001e2a4480a07038274030203500202f2100001a000000000000000000000000ab";
};
config = {
"HDMI-1" = {
"DP-3" = {
enable = true;
mode = "1920x1080";
rate = "239.76";
position = "1920x0";
position = "0x0";
};
"eDP-1" = {
"HDMI-3" = {
enable = true;
mode = "1920x1080";
rate = "60.02";
rate = "74.97";
primary = true;
position = "0x0";
position = "1920x0";
};
};
};

View file

@ -8,5 +8,8 @@
"yt-dlp"
"rofi"
"autorandr"
"i3status"
"ssh"
"git"
]

View file

@ -58,17 +58,17 @@
"Google".metaData.alias = "@g";
"Nix Packages" = {
urls = [{ template = "https://search.nixos.org/packages?query={searchTerms}"; }];
urls = [{ template = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}"; }];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
"Nix Options" = {
urls = [{ template = "https://search.nixos.org/options?query={searchTerms}"; }];
urls = [{ template = "https://search.nixos.org/options?channel=unstable&query={searchTerms}"; }];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@no" ];
};
"Home Manger" = {
urls = [{ template = "https://home-manager-options.extranix.com/?release=release-23.11&query={searchTerms}"; }];
urls = [{ template = "https://home-manager-options.extranix.com/?release=master&query={searchTerms}"; }];
icon = "https://home-manager-options.extranix.com/images/favicon.png";
iconUpdateURL = "https://home-manager-options.extranix.com/images/favicon.png";
updateInterval = 24 * 60 * 60 * 1000;

8
programs/git.nix Normal file
View file

@ -0,0 +1,8 @@
{...}:
{
enable = true;
userName = "krizej";
userEmail = "60076189+krizej@users.noreply.github.com";
# init.defaultBranch = "master";
# push.autoSetupRemote = true;
}

View file

@ -1,10 +1,7 @@
{...}:
{ pkgs, ... }:
{
enable = true;
config = rec {
modifier = "Mod4";
floating.modifier = "Mod4";
assigns = {
"2" = [
{ class = "discord"; }
@ -33,10 +30,17 @@
names = ["JetBrains Mono NL"];
size = 10.0;
};
bars = [{
inherit fonts;
trayOutput = "primary";
statusCommand = "${pkgs.i3status}/bin/i3status";
}];
defaultWorkspace = "workspace number 1";
workspaceOutputAssign = [
{ workspace = "1"; output = "DisplayPort-2"; }
{ workspace = "2"; output = "HDMI-A-2"; }
{ workspace = "1"; output = "DP-3"; }
{ workspace = "2"; output = "HDMI-3"; }
];
focus = {
@ -67,24 +71,30 @@
# { command = "hydration.sh &"; notification = false; }
{ command = "i3-msg \"workspace 2; append_layout ~/.config/i3/workspace2.json\""; notification = false; }
{ command = "discord &"; notification = false; }
{ command = "element-desktop &"; notification = false; }
{ command = "xrandr --output DP-3 --mode 1920x1080 --rate 239.76 --primary --output HDMI-3 --mode 1920x1080 --rate 74.97 --right-of DP-3 &"; notification = false; }
{ command = "sleep 1 && i3-msg \"workspace 1\""; notification = false; }
];
modifier = "Mod4";
floating.modifier = "Mod4";
keybindings =
let
mod = modifier;
in {
# Program keybinds
"${mod}+Return" = "exec alacritty";
"${mod}+Shift+s" = "exec flameshot gui";
"${mod}+b" = "exec firefox";
"${mod}+d" = "exec rofi -show drun";
"${mod}+Return" = "exec --no-startup-id alacritty";
"${mod}+Shift+s" = "exec --no-startup-id flameshot gui";
"${mod}+b" = "exec --no-startup-id firefox";
"${mod}+d" = "exec --no-startup-id rofi -show drun";
# Volume control
"Ctrl+F9" = "pamixer --toggle-mute";
"Ctrl+F10" = "pamixer --decrease 5";
"Ctrl+F11" = "pamixer --increase 5";
"Ctrl+F9" = "exec --no-startup-id pamixer --toggle-mute";
"Ctrl+F10" = "exec --no-startup-id pamixer --decrease 5";
"Ctrl+F11" = "exec --no-startup-id pamixer --increase 5";
# MPD controls
# "Ctrl+F5" = "exec ~/music/select_music.sh";
@ -101,8 +111,9 @@
"${mod}+f" = "fullscreen toggle";
"${mod}+r" = "mode resize";
"${mod}+Shift+q" = "kill";
"${mod}+k" = "exec xkill";
"${mod}+Shift+r" = "restart";
"${mod}+Shift+e" = "exec i3-nagbar -t warning -m 'exit?' -b 'yes' 'i3-msg exit'";
"${mod}+Shift+e" = "exec --no-startup-id i3-nagbar -t warning -m 'exit?' -b 'yes' 'i3-msg exit'";
"${mod}+Left" = "focus left";
"${mod}+Right" = "focus right";
@ -117,8 +128,8 @@
"${mod}+w" = "layout tabbed";
"${mod}+e" = "layout toggle split";
"${mod}+Shift+Space" = "floating toggle";
"${mod}+Space" = "focus mode_toggle";
"${mod}+Shift+space" = "floating toggle";
"${mod}+space" = "focus mode_toggle";
"${mod}+1" = "workspace number 1";
"${mod}+2" = "workspace number 2";

48
programs/i3status.nix Normal file
View file

@ -0,0 +1,48 @@
{...}:
{
enable = true;
enableDefault = false;
general = {
interval = 1;
colors = true;
color_good = "#91d956";
color_bad = "#f43841";
color_degraded = "#ffdd33";
output_format = "i3bar";
};
modules = {
"cpu_usage" = {
position = 0;
settings = {
format = "cpu: %usage";
};
};
"memory" = {
position = 1;
settings = {
format = "mem: %used";
threshold_degraded = "1G";
format_degraded = "MEMORY < %available";
};
};
"volume master" = {
position = 2;
settings = {
color_degraded = "#333333";
format = "vol: %volume";
format_muted = "vol: ---";
};
};
"tztime local" = {
position = 3;
settings = {
format = "%Y-%m-%d %H:%M:%S (%A)";
};
};
};
}

18
programs/ssh.nix Normal file
View file

@ -0,0 +1,18 @@
{...}:
{
enable = true;
matchBlocks = {
"github.com" = {
user = "git";
identityFile = "~/.ssh/github";
};
"192.168.1.12" = {
identityFile = "~/.ssh/raspi";
};
"git.jacekpoz.pl" = {
user = "forgejo";
identityFile = "~/.ssh/jacekgit";
};
};
}