initial commit
This commit is contained in:
commit
c094b5770c
113 changed files with 6879 additions and 0 deletions
16
users/sid/default.nix
Normal file
16
users/sid/default.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ inputs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
inputs.synix.nixosModules.normalUsers
|
||||
];
|
||||
|
||||
normalUsers = {
|
||||
sid = {
|
||||
extraGroups = [ "wheel" ];
|
||||
sshKeyFiles = [
|
||||
./pubkeys/gpg.pub
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
18
users/sid/home/default.nix
Normal file
18
users/sid/home/default.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
inputs,
|
||||
outputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./git.nix
|
||||
./home.nix
|
||||
./nixvim.nix
|
||||
./secrets
|
||||
|
||||
inputs.synix.homeModules.common
|
||||
|
||||
outputs.homeModules.common
|
||||
];
|
||||
}
|
||||
9
users/sid/home/git.nix
Normal file
9
users/sid/home/git.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings.user = {
|
||||
name = "sid";
|
||||
email = "sid@sid.ovh";
|
||||
};
|
||||
};
|
||||
}
|
||||
12
users/sid/home/home.nix
Normal file
12
users/sid/home/home.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
home = {
|
||||
username = "sid";
|
||||
|
||||
shellAliases = {
|
||||
gpr = "git remote prune origin";
|
||||
search-store = "find /nix/store -maxdepth 1 -type d | rg -i";
|
||||
};
|
||||
|
||||
stateVersion = "24.11";
|
||||
};
|
||||
}
|
||||
48
users/sid/home/hosts/16ach6/default.nix
Normal file
48
users/sid/home/hosts/16ach6/default.nix
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ../../hyprland ];
|
||||
|
||||
wayland.windowManager.hyprland.settings.monitor = [
|
||||
"eDP-1, 2560x1600@120, 0x0, 1.25"
|
||||
"desc:LG Electronics 34GL750 0x000417A0, 2560x1080@60, auto, 1"
|
||||
"desc:Eizo Nanao Corporation S2433W 24885089, 1920x1200, auto, 1" # , transform, 1"
|
||||
];
|
||||
|
||||
programs.waybar.settings.mainBar.output = "eDP-1";
|
||||
|
||||
programs.ssh.matchBlocks = {
|
||||
arch = {
|
||||
host = "a arch";
|
||||
hostname = "192.168.122.105";
|
||||
port = 22;
|
||||
user = "sid";
|
||||
};
|
||||
pc = {
|
||||
host = "pc";
|
||||
hostname = "192.168.178.140";
|
||||
port = 2299;
|
||||
user = "sid";
|
||||
};
|
||||
};
|
||||
|
||||
programs.sftpman.mounts = {
|
||||
arch = {
|
||||
host = "192.168.122.105";
|
||||
user = "sid";
|
||||
port = 22;
|
||||
mountPoint = "/home/sid";
|
||||
};
|
||||
};
|
||||
|
||||
home.shellAliases = {
|
||||
vbox-up = "VBoxManage startvm ubuntu-sopc --type headless";
|
||||
vbox-down = "VBoxManage controlvm ubuntu-sopc poweroff";
|
||||
vbox-list = "VBoxManage list vms --long | grep -e '^Name:' -e '^State:'";
|
||||
|
||||
dock-on = "hyprctl keyword monitor eDP-1, disable";
|
||||
dock-off = "hyprctl keyword monitor eDP-1, enable";
|
||||
};
|
||||
|
||||
services.spotifyd.settings.device_name = "16ach6";
|
||||
}
|
||||
40
users/sid/home/hosts/nuc8/default.nix
Normal file
40
users/sid/home/hosts/nuc8/default.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
imports = [ ../../hyprland ];
|
||||
|
||||
wayland.windowManager.hyprland.settings.monitor = [
|
||||
"desc:Eizo Nanao Corporation S2433W 24885089, 1920x1200, 0x0, 1"
|
||||
"desc:Eizo Nanao Corporation S1921 C9188037, 1280x1024, 1920x0, 1, transform, 1"
|
||||
];
|
||||
|
||||
home.sessionVariables = {
|
||||
AQ_NO_MODIFIERS = 1;
|
||||
};
|
||||
|
||||
programs.waybar.settings.mainBar.output = "DP-2";
|
||||
|
||||
programs.ssh.matchBlocks = {
|
||||
arch = {
|
||||
host = "a arch";
|
||||
hostname = "192.168.122.210";
|
||||
port = 22;
|
||||
user = "sid";
|
||||
};
|
||||
vde = {
|
||||
host = "v vde";
|
||||
hostname = "192.168.188.22";
|
||||
port = 2299;
|
||||
user = "sid";
|
||||
};
|
||||
};
|
||||
|
||||
programs.sftpman.mounts = {
|
||||
vde = {
|
||||
host = "192.168.188.22";
|
||||
user = "sid";
|
||||
port = 2299;
|
||||
mountPoint = "/home/sid/.config/nixos";
|
||||
};
|
||||
};
|
||||
|
||||
services.spotifyd.settings.device_name = "nuc8";
|
||||
}
|
||||
14
users/sid/home/hosts/pc/default.nix
Normal file
14
users/sid/home/hosts/pc/default.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports = [ ../../hyprland ];
|
||||
|
||||
wayland.windowManager.hyprland.settings.monitor = [
|
||||
"DP-3, 2560x1080@144, 1920x0, 1"
|
||||
"HDMI-A-1, 1920x1080@144, 0x0, 1"
|
||||
];
|
||||
|
||||
programs.waybar.settings.mainBar.output = "DP-3";
|
||||
|
||||
home.stateVersion = lib.mkForce "25.11";
|
||||
}
|
||||
34
users/sid/home/hosts/rv2/default.nix
Normal file
34
users/sid/home/hosts/rv2/default.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
imports = [ ../../hyprland ];
|
||||
|
||||
wayland.windowManager.hyprland.settings.monitor = [
|
||||
"DVI-D-1, 1920x1200, 0x0, 1"
|
||||
"DVI-I-1, 1280x1024, 1920x0, 1, transform, 1"
|
||||
];
|
||||
|
||||
programs.waybar.settings.mainBar.output = "DVI-D-1";
|
||||
|
||||
programs.ssh.matchBlocks = {
|
||||
arch = {
|
||||
host = "a arch";
|
||||
hostname = "192.168.122.12";
|
||||
port = 22;
|
||||
user = "sid";
|
||||
};
|
||||
vde = {
|
||||
host = "v vde";
|
||||
hostname = "192.168.1.224";
|
||||
port = 2299;
|
||||
user = "sid";
|
||||
};
|
||||
};
|
||||
|
||||
programs.sftpman.mounts = {
|
||||
arch = {
|
||||
host = "192.168.122.12";
|
||||
user = "sid";
|
||||
port = 22;
|
||||
mountPoint = "/home/sid";
|
||||
};
|
||||
};
|
||||
}
|
||||
128
users/sid/home/hyprland/README.md
Normal file
128
users/sid/home/hyprland/README.md
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
# Manual configuration
|
||||
|
||||
The following things are not (yet) automated by Nix. Follow these steps after finishing the installation (including Home Manager).
|
||||
|
||||
## Import secrets
|
||||
|
||||
It is assumed that your secrets are stored on a LUKS encrypted USB drive partition (sda3 in this case).
|
||||
|
||||
```bash
|
||||
USB=/dev/sda
|
||||
USER=$(whoami)
|
||||
HOST=$(cat /etc/hostname)
|
||||
|
||||
# Open crypt
|
||||
sudo mkdir -p /mnt/crypt
|
||||
sudo cryptsetup open "$USB"3 crypt
|
||||
sudo mount /dev/mapper/crypt /mnt/crypt
|
||||
|
||||
# Copy secrets
|
||||
sudo rsync -vP /mnt/crypt/gpg-backup.sec.asc /tmp
|
||||
sudo rsync -vP /mnt/crypt/$HOST/keys.txt /tmp
|
||||
sudo chown $USER:$USER /tmp/gpg-backup.sec.asc
|
||||
sudo chown $USER:$USER /tmp/keys.txt
|
||||
|
||||
# Import secrets
|
||||
mkdir -p ~/.config/sops/age && mv /tmp/keys.txt ~/.config/sops/age && chmod 0400 ~/.config/sops/age/keys.txt
|
||||
gpg --decrypt /tmp/gpg-backup.sec.asc | gpg --import
|
||||
gpg --edit-key D371C8E7D58F9D1E # replace with your key ID
|
||||
gpg> trust
|
||||
Your decision? 5
|
||||
Do you really want to set this key to ultimate trust? (y/N) y
|
||||
gpg> q
|
||||
|
||||
# Close crypt
|
||||
sudo umount -lf /mnt/crypt
|
||||
sudo cryptsetup close crypt
|
||||
```
|
||||
|
||||
## Clone password store repository
|
||||
|
||||
```bash
|
||||
git clone ssh://git.portuus.de:2299/home/sid/git/password-store $PASSWORD_STORE_DIR
|
||||
```
|
||||
|
||||
## Librewolf
|
||||
|
||||
Librewolf is handled through its Home Manager module. Extensions do not need to be installed, just activated.
|
||||
|
||||
- Extensions (allow every extension to run in private windows)
|
||||
- PassFF
|
||||
- Preferences
|
||||
- Behavior of Enter key: Fill and submit
|
||||
- Behavior of Shift-Enter key: Goto, fill and submit
|
||||
- floccus
|
||||
- Add profile
|
||||
- Nextcloud Bookmarks
|
||||
- Bookmarks folder: Bookmarks Toolbar
|
||||
|
||||
TODO
|
||||
- all custom search bookmarks lost their keywords
|
||||
- set Searx as the default search engine
|
||||
|
||||
## Element Desktop
|
||||
|
||||
- Authentication via username, password and security key
|
||||
- Settings
|
||||
- Appearance
|
||||
- Theme: Dark
|
||||
- Preferences
|
||||
- Allow spell check
|
||||
- Add: German (Germany)
|
||||
- Keyboard shortcuts
|
||||
- Use Ctrl + F to search timeline: true
|
||||
|
||||
## Thunderbird
|
||||
|
||||
The account setup must be done manually, as the `accounts.email` HM module requires setting personal information that would end up being public on the Git web frontend.
|
||||
|
||||
- Spelling
|
||||
- Add Dictionaries...
|
||||
- German: Download Dictionary
|
||||
|
||||
## Spotify
|
||||
|
||||
- Authentication via username and password
|
||||
|
||||
## Jellyfin Media Player
|
||||
|
||||
- Add server
|
||||
- Authentication via username and password
|
||||
|
||||
## OBS-Studio
|
||||
|
||||
- Scenes
|
||||
- Scene
|
||||
- Sources
|
||||
- Add: Screen Capture (PipeWire) > OK > Screen 0 (or a window or a region) > OK
|
||||
- Audio Mixer
|
||||
- Mic/Aux: Mute
|
||||
- File
|
||||
- Settings
|
||||
- Output
|
||||
- Recording
|
||||
- Recording Path: /home/sid/vid/recordings
|
||||
- Generate File Name without Space
|
||||
- Video
|
||||
- Base Resolution: 2560x1600
|
||||
- Output Resolution: 2560x1600
|
||||
- Common FPS Values: 60
|
||||
|
||||
> TODO: adjust video and audio codecs/quality
|
||||
|
||||
> TODO: keyboard shortcuts (currently using waybar tray icon)
|
||||
|
||||
## Eduroam
|
||||
|
||||
Download the eduroam configuration script [here](https://cat.eduroam.org/?idp=5134&profile=8268).
|
||||
|
||||
Execute it:
|
||||
|
||||
```bash
|
||||
nix-shell -p python3 python3Packages.dbus-python --run 'python eduroam-linux-THK-members_of_TH_Koln.py'
|
||||
```
|
||||
|
||||
## Zoom
|
||||
|
||||
- Authentication via username and password
|
||||
- Check "Keep me signed in"
|
||||
103
users/sid/home/hyprland/anyrun.nix
Normal file
103
users/sid/home/hyprland/anyrun.nix
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
{
|
||||
inputs,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
mkDir = dir: {
|
||||
path = config.home.homeDirectory + "/" + dir;
|
||||
recurse = true;
|
||||
};
|
||||
|
||||
mkDirs = dirs: map mkDir dirs;
|
||||
|
||||
dirs = [
|
||||
"aud"
|
||||
"dls"
|
||||
"doc"
|
||||
"img"
|
||||
"src"
|
||||
"vid"
|
||||
];
|
||||
|
||||
inherit (pkgs.stdenv.hostPlatform) system;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.kidex.homeModules.kidex
|
||||
];
|
||||
|
||||
programs.anyrun = {
|
||||
enable = true;
|
||||
package = inputs.anyrun.packages."${system}".anyrun-with-all-plugins;
|
||||
config = {
|
||||
x = {
|
||||
fraction = 0.5;
|
||||
};
|
||||
y = {
|
||||
fraction = 0.3;
|
||||
};
|
||||
width = {
|
||||
fraction = 0.3;
|
||||
};
|
||||
hideIcons = true;
|
||||
layer = "overlay";
|
||||
hidePluginInfo = true;
|
||||
showResultsImmediately = true;
|
||||
plugins = with inputs.anyrun.packages."${system}"; [
|
||||
applications
|
||||
dictionary
|
||||
kidex
|
||||
randr
|
||||
rink
|
||||
translate
|
||||
websearch
|
||||
];
|
||||
};
|
||||
extraCss = ''
|
||||
#window {
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
'';
|
||||
extraConfigFiles = {
|
||||
"dictionary.ron".text = ''
|
||||
Config(
|
||||
prefix: ":def",
|
||||
max_entries: 5,
|
||||
)
|
||||
'';
|
||||
"translate.ron".text = ''
|
||||
Config(
|
||||
prefix: ":t",
|
||||
language_delimiter: ">",
|
||||
max_entries: 3,
|
||||
)
|
||||
'';
|
||||
"randr.ron".text = ''
|
||||
Config(
|
||||
prefix: ":dp",
|
||||
max_entries: 5,
|
||||
)
|
||||
'';
|
||||
# TODO: websearch.ron: set custom search engine
|
||||
};
|
||||
};
|
||||
|
||||
services.kidex = {
|
||||
enable = true;
|
||||
settings = {
|
||||
ignored = [
|
||||
"*/.git/*"
|
||||
"*/.cache/*"
|
||||
"*/.direnv/*"
|
||||
];
|
||||
directories = mkDirs dirs;
|
||||
};
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland.settings.bind = [
|
||||
"$mod, space, exec, anyrun"
|
||||
];
|
||||
}
|
||||
34
users/sid/home/hyprland/default.nix
Normal file
34
users/sid/home/hyprland/default.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
# ./anyrun.nix
|
||||
./flatpak.nix
|
||||
./fzf-open.nix
|
||||
./gpg.nix
|
||||
./hyprland.nix
|
||||
./librewolf.nix
|
||||
./newsboat.nix
|
||||
# ./nextcloud-sync.nix
|
||||
./obs-studio.nix
|
||||
./opencode.nix
|
||||
./packages.nix
|
||||
./rclone.nix
|
||||
# ./recoll.nix
|
||||
./shell-aliases.nix
|
||||
./spotify-player.nix
|
||||
./ssh-hosts.nix
|
||||
./stylix.nix
|
||||
./vscode.nix
|
||||
./waybar.nix
|
||||
./xdg.nix
|
||||
./yazi.nix
|
||||
|
||||
inputs.synix.homeModules.virtualisation
|
||||
];
|
||||
}
|
||||
38
users/sid/home/hyprland/flatpak.nix
Normal file
38
users/sid/home/hyprland/flatpak.nix
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
{ inputs, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
];
|
||||
|
||||
services.flatpak = {
|
||||
enable = true;
|
||||
update = {
|
||||
onActivation = false;
|
||||
auto = {
|
||||
enable = true;
|
||||
onCalendar = "weekly";
|
||||
};
|
||||
};
|
||||
packages = [
|
||||
{
|
||||
appId = "org.mypaint.MyPaint";
|
||||
origin = "flathub";
|
||||
}
|
||||
# FIXME: does not start. installed `chat.commet.commetapp.flatpak` manually
|
||||
{
|
||||
appId = "im.riot.Riot";
|
||||
origin = "flathub";
|
||||
}
|
||||
{
|
||||
appId = "us.zoom.Zoom";
|
||||
origin = "flathub";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
flatpak
|
||||
flatpak-builder
|
||||
];
|
||||
}
|
||||
35
users/sid/home/hyprland/fzf-open.nix
Normal file
35
users/sid/home/hyprland/fzf-open.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
fzf-dirs = "~/doc ~/img ~/aud ~/dls ~/src ~/.config ~/.local";
|
||||
|
||||
fzf-open = pkgs.writeShellScriptBin "fzf-open" ''
|
||||
fzf --preview="pistol {}" --bind "enter:execute(hyprctl dispatch togglespecialworkspace fzf-open && xdg-open {} > /dev/null 2>&1 &)"
|
||||
'';
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
bind = [
|
||||
"$mod, Space, togglespecialworkspace, fzf-open"
|
||||
];
|
||||
windowrulev2 = [
|
||||
"float, class:floating"
|
||||
"size 50% 50%, title:fzf-open"
|
||||
];
|
||||
};
|
||||
extraConfig = ''
|
||||
workspace = special:fzf-open, on-created-empty:kitty --class=floating -e ${fzf-open}/bin/fzf-open
|
||||
'';
|
||||
};
|
||||
|
||||
home = {
|
||||
sessionVariables = {
|
||||
# FZF_DEFAULT_COMMAND = "rg --files --hidden --glob '!.git/**' ${fzf-dirs}";
|
||||
FZF_DEFAULT_COMMAND = "rg --files ${fzf-dirs}";
|
||||
};
|
||||
packages = [
|
||||
fzf-open
|
||||
];
|
||||
};
|
||||
}
|
||||
12
users/sid/home/hyprland/gpg.nix
Normal file
12
users/sid/home/hyprland/gpg.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{ inputs, ... }:
|
||||
|
||||
let
|
||||
key.a.grip = "F8BCC76BE2E55D52C3E92B963ADD3FDD8C153911";
|
||||
key.e.id = "97BEF39E76001BC0";
|
||||
in
|
||||
{
|
||||
imports = [ inputs.synix.homeModules.gpg ];
|
||||
|
||||
services.gpg-agent.sshKeys = [ key.a.grip ];
|
||||
programs.passwordManager.key = key.e.id;
|
||||
}
|
||||
49
users/sid/home/hyprland/hyprland.nix
Normal file
49
users/sid/home/hyprland/hyprland.nix
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
inputs,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ inputs.synix.homeModules.hyprland ];
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
autostart = true;
|
||||
settings = {
|
||||
bind =
|
||||
let
|
||||
flatpakRun = "${pkgs.flatpak}/bin/flatpak --user run";
|
||||
wineRun = "wine ${config.home.homeDirectory}/.wine/drive_c";
|
||||
in
|
||||
[
|
||||
"$mod, g, exec, gimp"
|
||||
"$mod, s, exec, kitty -T spotify -e spotify_player"
|
||||
"$mod, t, exec, teams-for-linux"
|
||||
"$mod, v, exec, virt-manager"
|
||||
"$mod, z, exec, ${flatpakRun} us.zoom.Zoom"
|
||||
"$mod CTRL, i, exec, ${wineRun}/Program\\ Files/AccessData/FTK\\ Imager/FTK\\ Imager.exe"
|
||||
"$mod CTRL, m, exec, ${flatpakRun} org.mypaint.MyPaint"
|
||||
"$mod CTRL, o, exec, obs"
|
||||
"$mod CTRL, p, exec, otp"
|
||||
"$mod SHIFT, a, exec, chromium --app=https://ai.portuus.de"
|
||||
];
|
||||
windowrule = [
|
||||
"workspace 4, title:^newsboat$"
|
||||
"workspace 6, class:^thunderbird$, title:Thunderbird$"
|
||||
"workspace 7, title:^Jellyfin Media Player$"
|
||||
"workspace 7, title:^spotify$"
|
||||
"workspace 8, class:^Element$, title:^Element"
|
||||
"workspace 9, class:^chrome-ai.portuus.de"
|
||||
"workspace 10, class:^zoom$, title:^Zoom"
|
||||
"workspace 10, class:^org.qbittorrent.qBittorrent$"
|
||||
"workspace 10, title:^Virtual Machine Manager$"
|
||||
];
|
||||
exec-once = [
|
||||
"[workspace 5 silent] librewolf"
|
||||
"[workspace 6 silent] thunderbird"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
13
users/sid/home/hyprland/librewolf.nix
Normal file
13
users/sid/home/hyprland/librewolf.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ inputs, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (pkgs.stdenv.hostPlatform) system;
|
||||
in
|
||||
{
|
||||
programs.librewolf = {
|
||||
profiles.default.extensions.packages =
|
||||
with inputs.nur.legacyPackages."${system}".repos.rycee.firefox-addons; [
|
||||
zotero-connector
|
||||
];
|
||||
};
|
||||
}
|
||||
12
users/sid/home/hyprland/newsboat.nix
Normal file
12
users/sid/home/hyprland/newsboat.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
programs.newsboat = {
|
||||
extraConfig = ''
|
||||
urls-source "miniflux"
|
||||
miniflux-url "https://miniflux.portuus.de/"
|
||||
miniflux-login "sid"
|
||||
miniflux-passwordfile "${config.sops.secrets.miniflux.path}"
|
||||
'';
|
||||
};
|
||||
}
|
||||
29
users/sid/home/hyprland/nextcloud-sync.nix
Normal file
29
users/sid/home/hyprland/nextcloud-sync.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{ inputs, config, ... }:
|
||||
|
||||
let
|
||||
mkConnection = dir: {
|
||||
local = config.home.homeDirectory + "/" + dir;
|
||||
remote = "/" + dir;
|
||||
};
|
||||
|
||||
mkConnections = dirs: map mkConnection dirs;
|
||||
|
||||
connections = [
|
||||
"aud"
|
||||
"doc"
|
||||
"img"
|
||||
"vid"
|
||||
];
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.synix.homeModules.nextcloud-sync
|
||||
];
|
||||
|
||||
services.nextcloud-sync = {
|
||||
enable = true;
|
||||
remote = "cloud.portuus.de";
|
||||
passwordFile = config.sops.secrets.nextcloud.path;
|
||||
connections = mkConnections connections;
|
||||
};
|
||||
}
|
||||
9
users/sid/home/hyprland/obs-studio.nix
Normal file
9
users/sid/home/hyprland/obs-studio.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
package = pkgs.obs-studio;
|
||||
plugins = [ pkgs.obs-studio-plugins.wlrobs ];
|
||||
};
|
||||
}
|
||||
10
users/sid/home/hyprland/opencode.nix
Normal file
10
users/sid/home/hyprland/opencode.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
programs.opencode = {
|
||||
enable = true;
|
||||
settings = {
|
||||
model = "openrouter/qwen/qwen3-coder";
|
||||
autoshare = false;
|
||||
autoupdate = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
84
users/sid/home/hyprland/packages.nix
Normal file
84
users/sid/home/hyprland/packages.nix
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
{ inputs, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (pkgs.stdenv.hostPlatform) system;
|
||||
in
|
||||
{
|
||||
home.packages =
|
||||
with pkgs;
|
||||
[
|
||||
prismlauncher
|
||||
audacity
|
||||
drawio
|
||||
gimp
|
||||
inkscape
|
||||
kicad
|
||||
mermaid-cli
|
||||
octaveFull
|
||||
pdfarranger
|
||||
remmina
|
||||
spotify
|
||||
syncthingtray
|
||||
teams-for-linux
|
||||
texliveFull
|
||||
xournalpp
|
||||
zotero
|
||||
|
||||
# inputs.gen-dmc.packages."${system}".gen-dmc
|
||||
|
||||
# angryipscanner # FIXME
|
||||
# autopsy # gradle-7.6.6 is marked as insecure
|
||||
# jellyfin-media-player # qtwebengine-5.15.19 is marked as insecure
|
||||
]
|
||||
# tools
|
||||
++ [
|
||||
aichat
|
||||
compose2nix
|
||||
duden
|
||||
ftx-prog
|
||||
gf
|
||||
glab
|
||||
gtkterm
|
||||
localsend
|
||||
magic-wormhole
|
||||
naabu
|
||||
ocrmypdf
|
||||
rpi-imager
|
||||
rustfmt
|
||||
showmethekey
|
||||
songrec
|
||||
speedtest-cli
|
||||
subfinder
|
||||
synadm
|
||||
yt-dlp
|
||||
|
||||
inputs.multios-usb.packages."${system}".default
|
||||
|
||||
(instaloader.overridePythonAttrs (oldAttrs: {
|
||||
propagatedBuildInputs = (oldAttrs.propagatedBuildInputs or [ ]) ++ [
|
||||
python3Packages.browser-cookie3
|
||||
];
|
||||
}))
|
||||
|
||||
local.gitingest # TODO: PR Nixpkgs
|
||||
local.otp
|
||||
local.pdf2printable
|
||||
local.transcribe
|
||||
local.yt2rss
|
||||
|
||||
synix.bulk-rename
|
||||
# synix.marker-pdf # FIXME
|
||||
]
|
||||
# reverse engineering
|
||||
# ++ [
|
||||
# checksec
|
||||
# ghidra-bin
|
||||
# ida-free
|
||||
# ]
|
||||
# android
|
||||
++ [
|
||||
adbfs-rootless
|
||||
android-tools
|
||||
scrcpy
|
||||
];
|
||||
}
|
||||
23
users/sid/home/hyprland/rclone.nix
Normal file
23
users/sid/home/hyprland/rclone.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{ config, ... }:
|
||||
|
||||
let
|
||||
sops = config.sops;
|
||||
in
|
||||
{
|
||||
sops.templates.rclone.path = config.xdg.configHome + "/rclone/rclone.conf";
|
||||
sops.templates.rclone.content = ''
|
||||
[portuus]
|
||||
type = webdav
|
||||
url = https://cloud.portuus.de/remote.php/dav/files/sid/
|
||||
vendor = nextcloud
|
||||
user = sid
|
||||
pass = ${sops.placeholder."rclone/portuus/pass"}
|
||||
|
||||
[sciebo]
|
||||
type = webdav
|
||||
url = ${sops.placeholder."rclone/sciebo/url"}
|
||||
vendor = owncloud
|
||||
user = ${sops.placeholder."rclone/sciebo/user"}
|
||||
pass = ${sops.placeholder."rclone/sciebo/pass"}
|
||||
'';
|
||||
}
|
||||
31
users/sid/home/hyprland/recoll.nix
Normal file
31
users/sid/home/hyprland/recoll.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
services.recoll = {
|
||||
enable = true;
|
||||
configDir = "${config.xdg.configHome}/recoll";
|
||||
settings = {
|
||||
nocjk = true;
|
||||
loglevel = 5;
|
||||
topdirs = [
|
||||
"~/aud"
|
||||
"~/dls"
|
||||
"~/doc"
|
||||
"~/img"
|
||||
"~/src"
|
||||
];
|
||||
|
||||
"~/dls" = {
|
||||
"skippedNames+" = [ "*.iso" ];
|
||||
};
|
||||
|
||||
"~/src" = {
|
||||
"skippedNames+" = [
|
||||
"node_modules"
|
||||
"target"
|
||||
"result"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
11
users/sid/home/hyprland/shell-aliases.nix
Normal file
11
users/sid/home/hyprland/shell-aliases.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.shellAliases = {
|
||||
bt = "bluetoothctl";
|
||||
ff = "find . -type f -name";
|
||||
dd-iso = "dd bs=4M status=progress oflag=sync";
|
||||
nc-sync = "nextcloud-sync-all";
|
||||
synapse_change_display_name = "${pkgs.synix.synapse_change_display_name}/bin/synapse_change_display_name -t $(${pkgs.pass}/bin/pass sid.ovh/matrix/access-token) -r sid.ovh";
|
||||
};
|
||||
}
|
||||
47
users/sid/home/hyprland/spotify-player.nix
Normal file
47
users/sid/home/hyprland/spotify-player.nix
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
programs.spotify-player = {
|
||||
enable = true;
|
||||
# package = pkgs.spotify-player.override {
|
||||
# withImage = false;
|
||||
# withSixel = false;
|
||||
# };
|
||||
settings = {
|
||||
actions = [
|
||||
{
|
||||
command = "GoToArtist";
|
||||
key_sequence = "g A";
|
||||
}
|
||||
{
|
||||
command = "GoToAlbum";
|
||||
key_sequence = "g B";
|
||||
target = "PlayingTrack";
|
||||
}
|
||||
];
|
||||
pause_icon = " ";
|
||||
play_icon = " ";
|
||||
device = {
|
||||
audio_cache = true;
|
||||
autoplay = true;
|
||||
normalization = true;
|
||||
volume = 100;
|
||||
};
|
||||
layout = {
|
||||
playback_window_position = "Bottom";
|
||||
library = {
|
||||
playlist_percent = 80;
|
||||
album_percent = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.spotifyd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
username = "zephyrius17";
|
||||
password_cmd = "cat ${config.sops.secrets.spotify.path}";
|
||||
};
|
||||
};
|
||||
}
|
||||
54
users/sid/home/hyprland/ssh-hosts.nix
Normal file
54
users/sid/home/hyprland/ssh-hosts.nix
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.ssh.matchBlocks = {
|
||||
edge = {
|
||||
host = "e edge";
|
||||
hostname = "49.12.227.10";
|
||||
port = 2299;
|
||||
user = "sid";
|
||||
};
|
||||
uvm = {
|
||||
host = "u uvm";
|
||||
hostname = "localhost";
|
||||
port = 2222;
|
||||
user = "root";
|
||||
checkHostIP = false;
|
||||
};
|
||||
portuus = {
|
||||
host = "p portuus *.portuus.de";
|
||||
hostname = "portuus.de";
|
||||
port = 2299;
|
||||
user = "sid";
|
||||
};
|
||||
sid = {
|
||||
host = "s sid *.sid.ovh";
|
||||
hostname = "sid.ovh";
|
||||
port = 2299;
|
||||
user = "sid";
|
||||
};
|
||||
X99S = {
|
||||
host = "X X99S";
|
||||
hostname = "steffen.fail";
|
||||
port = 2299;
|
||||
user = "sid";
|
||||
};
|
||||
};
|
||||
|
||||
# setup: sudo mkdir -p /mnt/sshfs && sudo chown sid:sid /mnt/sshfs
|
||||
programs.sftpman = {
|
||||
enable = true;
|
||||
# gpg --export-ssh-key <auth key id> > ~/.ssh/id_rsa.pub
|
||||
defaultSshKey = "/home/sid/.ssh/id_rsa.pub";
|
||||
mounts = {
|
||||
portuus = {
|
||||
host = "portuus.de";
|
||||
user = "sid";
|
||||
port = 2299;
|
||||
mountPoint = "/home/sid/.config/nixos";
|
||||
};
|
||||
};
|
||||
};
|
||||
home.shellAliases.sm = "sftpman";
|
||||
home.packages = [ pkgs.sshfs ];
|
||||
}
|
||||
16
users/sid/home/hyprland/stylix.nix
Normal file
16
users/sid/home/hyprland/stylix.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ inputs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
inputs.synix.homeModules.stylix
|
||||
];
|
||||
|
||||
stylix = {
|
||||
enable = true;
|
||||
scheme = "moonfly";
|
||||
targets = {
|
||||
waybar'.enable = true;
|
||||
bemenu'.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
19
users/sid/home/hyprland/vscode.nix
Normal file
19
users/sid/home/hyprland/vscode.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs = {
|
||||
vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
profiles.default.extensions = with pkgs.vscode-extensions; [
|
||||
mkhl.direnv
|
||||
ms-vscode.cmake-tools
|
||||
ms-vscode.cpptools
|
||||
];
|
||||
};
|
||||
direnv = {
|
||||
enable = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
19
users/sid/home/hyprland/waybar.nix
Normal file
19
users/sid/home/hyprland/waybar.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
programs.waybar.settings = {
|
||||
mainBar = {
|
||||
modules-right = [
|
||||
"custom/timer"
|
||||
"custom/newsboat"
|
||||
"network"
|
||||
"bluetooth"
|
||||
"cpu"
|
||||
"memory"
|
||||
"disk"
|
||||
"pulseaudio#input"
|
||||
"pulseaudio#output"
|
||||
"battery"
|
||||
"tray"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
18
users/sid/home/hyprland/xdg.nix
Normal file
18
users/sid/home/hyprland/xdg.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
xdg.userDirs =
|
||||
let
|
||||
homeDir = config.home.homeDirectory;
|
||||
in
|
||||
{
|
||||
desktop = "${homeDir}";
|
||||
documents = "${homeDir}/doc";
|
||||
download = "${homeDir}/dls";
|
||||
music = "${homeDir}/aud/music";
|
||||
pictures = "${homeDir}/img";
|
||||
publicShare = "${homeDir}";
|
||||
templates = "${homeDir}";
|
||||
videos = "${homeDir}/vid";
|
||||
};
|
||||
}
|
||||
33
users/sid/home/hyprland/yazi.nix
Normal file
33
users/sid/home/hyprland/yazi.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
programs.yazi =
|
||||
let
|
||||
hide-yazi-workspace = pkgs.writeShellScript "hide-yazi-workspace.sh" ''
|
||||
(hyprctl monitors -j | ${lib.getExe pkgs.jq} -e 'any(.specialWorkspace.name == "special:yazi")' > /dev/null) && hyprctl dispatch togglespecialworkspace yazi
|
||||
'';
|
||||
in
|
||||
{
|
||||
keymap = {
|
||||
mgr.prepend_keymap = [
|
||||
{
|
||||
on = "o";
|
||||
run = [
|
||||
"shell --orphan ${hide-yazi-workspace}"
|
||||
"open"
|
||||
];
|
||||
desc = "";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
extraConfig = ''
|
||||
workspace = special:yazi, on-created-empty:kitty -T yazi -e yazi
|
||||
bind = $mod, x, togglespecialworkspace, yazi
|
||||
windowrule = float, title:^yazi$
|
||||
windowrule = size 50% 50%, title:^yazi$
|
||||
'';
|
||||
};
|
||||
}
|
||||
113
users/sid/home/nixvim.nix
Normal file
113
users/sid/home/nixvim.nix
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
{ inputs, config, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
inputs.synix.homeModules.nixvim
|
||||
];
|
||||
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
plugins = {
|
||||
avante = {
|
||||
enable = true;
|
||||
settings = {
|
||||
auto_suggestions_provider = null;
|
||||
diff = {
|
||||
autojump = true;
|
||||
debug = false;
|
||||
list_opener = "copen";
|
||||
};
|
||||
highlights = {
|
||||
diff = {
|
||||
current = "DiffText";
|
||||
incoming = "DiffAdd";
|
||||
};
|
||||
};
|
||||
hints = {
|
||||
enabled = true;
|
||||
};
|
||||
selector = {
|
||||
provider = "telescope";
|
||||
};
|
||||
provider = "openrouter";
|
||||
providers = {
|
||||
openrouter = {
|
||||
__inherited_from = "openai";
|
||||
endpoint = "https://openrouter.ai/api/v1";
|
||||
api_key_name = "cmd:cat ${config.sops.secrets.openrouter-api-key.path}";
|
||||
model = "google/gemini-3-flash-preview";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
render-markdown = {
|
||||
enable = true;
|
||||
settings = {
|
||||
file_types = [
|
||||
"Avante"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
extraConfigLua = ''
|
||||
_G.cppman_picker = function(opts)
|
||||
local pickers = require "telescope.pickers"
|
||||
local finders = require "telescope.finders"
|
||||
local conf = require("telescope.config").values
|
||||
local actions = require "telescope.actions"
|
||||
local action_state = require "telescope.actions.state"
|
||||
local previewers = require "telescope.previewers"
|
||||
|
||||
opts = opts or {}
|
||||
pickers.new(opts, {
|
||||
prompt_title = "Cppman Search",
|
||||
finder = finders.new_oneshot_job({ "cppman", "-l" }, opts),
|
||||
sorter = conf.generic_sorter(opts),
|
||||
|
||||
previewer = previewers.new_buffer_previewer({
|
||||
title = "Manual Page",
|
||||
define_preview = function(self, entry, status)
|
||||
return require("telescope.previewers.utils").job_maker(
|
||||
{ "cppman", entry.value },
|
||||
self.state.bufnr,
|
||||
{
|
||||
callback = function(bufnr, content)
|
||||
if content then
|
||||
vim.api.nvim_buf_set_option(bufnr, "filetype", "man")
|
||||
end
|
||||
end,
|
||||
}
|
||||
)
|
||||
end,
|
||||
}),
|
||||
|
||||
attach_mappings = function(prompt_bufnr, map)
|
||||
actions.select_default:replace(function()
|
||||
local selection = action_state.get_selected_entry()
|
||||
|
||||
if not selection then
|
||||
return
|
||||
end
|
||||
|
||||
actions.close(prompt_bufnr)
|
||||
vim.cmd("terminal cppman " .. selection.value)
|
||||
vim.cmd("startinsert")
|
||||
end)
|
||||
return true
|
||||
end,
|
||||
}):find()
|
||||
end
|
||||
'';
|
||||
keymaps = [
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>fc";
|
||||
action = "<cmd>lua cppman_picker()<CR>";
|
||||
options = {
|
||||
desc = "Search C/C++ Docs (cppman)";
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
19
users/sid/home/secrets/default.nix
Normal file
19
users/sid/home/secrets/default.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{ inputs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
inputs.synix.homeModules.sops
|
||||
];
|
||||
|
||||
sops.secrets = {
|
||||
"rclone/portuus/pass" = { };
|
||||
"rclone/sciebo/pass" = { };
|
||||
"rclone/sciebo/url" = { };
|
||||
"rclone/sciebo/user" = { };
|
||||
gemini-api-key = { };
|
||||
miniflux = { };
|
||||
nextcloud = { };
|
||||
openrouter-api-key = { };
|
||||
spotify = { };
|
||||
};
|
||||
}
|
||||
27
users/sid/home/secrets/secrets.yaml
Normal file
27
users/sid/home/secrets/secrets.yaml
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
miniflux: ENC[AES256_GCM,data:8AraKHhALBBJ5vzXc3t3UKX1DqA=,iv:VWv7MaTfDXZIr/dVWOMyRm6rFqLVhvTU0CYv5a2/PAM=,tag:nStt3Rn08KWadYVECRyObA==,type:str]
|
||||
nextcloud: ENC[AES256_GCM,data:ge1GukFPmVe0vO1oL98loLpHkpE=,iv:7OTKSpxeKVmDFIvC8yd+c3TglZMIb6iLmXtUQgONWDE=,tag:1PYvJAYfSnZquyXz4eseDw==,type:str]
|
||||
rclone:
|
||||
portuus:
|
||||
pass: ENC[AES256_GCM,data:QcI6y3AKEh0+PWT4a7NXxbt0te78BJeZT3JxRxGpfkjxhqFWGNHHs6I0pxBFuyAkFa8=,iv:qcMmuAI1odd32YWO8OB+CB2cMHHK2raFBWJ/dSbBSuA=,tag:uxD2CVq9i5quK7QuQuwQTQ==,type:str]
|
||||
sciebo:
|
||||
url: ENC[AES256_GCM,data:T8eSTFOYRu+dOF3wnOBSorIgeOs1VkZ8xqH5mh2/g2VeKnvjeLmUg6/4X+ZthsBpetPeiELkeg+XzzT+F5qxEaaV5OdTT8c=,iv:qmpvVJLJwE6CmIEdne9vgoP5H1GTiZYOXb5yR2DaS5k=,tag:QdTmUW+O2Z2Dpqcb/Ug2/A==,type:str]
|
||||
user: ENC[AES256_GCM,data:FrZZtV05qq15bwZko/2qFhWLfn4=,iv:sddWcvc1K8J008bkqSrf22fCR9w+fD5uOykNVb0aBS8=,tag:XkwZtGtDskUBpbj0vJyHGg==,type:str]
|
||||
pass: ENC[AES256_GCM,data:osKqEPF3MXzGSA3bziw6hx+5fQNXkXfrWKAUiK7yV+r48nTsJ+YYzUlIjYluioM0,iv:TANLg8RW2NUwj0RKUZW09U//l//ijOjRB3uRLITlu/E=,tag:yJxkCWL0Y0a8MPH57duOMw==,type:str]
|
||||
spotify: ENC[AES256_GCM,data:PQ5eUxL/oi+SE6gbe5+XQYExHw0=,iv:vz5TCa6jS+LMZsxFOQZhC4EwetcHmu/zxK6JTVXucwA=,tag:+cyc2hdUsvfDwLbxzoeogg==,type:str]
|
||||
gemini-api-key: ENC[AES256_GCM,data:UvLB1vq56Wv4MpL/KPJ4M4p5Lx1Se/dv/vT/Vim2HSxHiyXWoVow,iv:xepkGlDG4doKeskQTyzxVx7SE7veUQVrzZahLdDxVQg=,tag:ue6lphZcPovfrgyibhRkDA==,type:str]
|
||||
openrouter-api-key: ENC[AES256_GCM,data:VGSlgUfEBwUKjEwdGqYTLvGlMJ3VSwApJexYZ4YVpKTE6oFQeZpsjMc6dymkSsLITVw2n92rfkhJi7e+MEvBCkNVNbb+KP5PnA==,iv:GvYq5+QhuONaPzHleGMuqzWQhhCcb9oxU9Pr/mWwKh4=,tag:iAlf173z7pW97LvkUPQgBA==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- recipient: age19yeqvv28fgrtk6jsh3xyaf0lch86kna6rcz4dwe962yyyyevu30sx474xy
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSbXBZV3VlYy91MWs5eFpa
|
||||
d1ZoTVlhbjNnaFZtTGtxQmpTTU1YcEJ1bTJjCndwMmNtZlBYWjJtQUl5QzVzNFhE
|
||||
bGprbjV0T3Njd3NjdTZxeHlxYTNOREkKLS0tIFllbUluejZJOUlWTWhUWVV2NU4r
|
||||
d0lFU3lCVHVxN2xveUE4V2VtanFBY2cKD4qYxFo7G6B0fsLcNeNZaK4k3DGwVocA
|
||||
XYHwoqEZ58xspiuVkp3F+fFpgoysuVusB9ZimjLkt2D6phk+0SGKfA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2026-02-18T17:07:22Z"
|
||||
mac: ENC[AES256_GCM,data:U3c9xDqKHIGFM9YCwR/1W2U2blWyXfFOljzyht+2aOA15v8Ys23vG5UJNO91frIRqZYnoSLTrJADlrW0S7zD4ft+7GHKK1XuriUXm5hzOl62HdB3pSX5nvWVdkPBdKE5e/se3HyQuiu0ZM9EHd0hepxLBh3YfQxGjhsaHZX2Q1g=,iv:r+1sC+MuONmFwEN935KJ0CFn9jsSGoI7rH+d6uDGYF8=,tag:2SNEFn1TNVQ2K/Jr9uIypQ==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.11.0
|
||||
1
users/sid/pubkeys/gpg.pub
Normal file
1
users/sid/pubkeys/gpg.pub
Normal file
|
|
@ -0,0 +1 @@
|
|||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDYeVnKDUk3SYN70qB6nVEqSCsCiUtObR2OHLexzinmdFU4xxSL76+9SCMFk7EHZpE5JouBBqVjCxEuZpCZUzCaKLFSL6KBQ+nFxqWTLJ2na7lbECXLrk6IlfGqnfPJzy0hcqszqy/MuZXAC2YgiNZfGxAJNY1UqOuaMAub18yHNo/mYfIS6ZDlRXdPEgsEzndTvE6znNQ2WsZk+jH4yRwKqkmEYqIiGRU8K4czCZchMH9vY/dGhi4kM/QJLmjj3pEZCt/d+tI88MkPzE0FagaNELcylmInLTbctv4eCwMn4waKLml53sRqhxkfVO1ZUfBPZq7pBNy90sqe7El3lKYM7n65T0Iry9pSJhvzMm7XkybpWZM834Y78okZEs1opsIZsCWVMXGInAmVs5bPPjrUNDKLqlfIb5fgUqclJiE4Hni5qF4iOSdQ2Xvex04GRwin4owmOKcpHAvAOHufLYjKxy+U4gd4VNzdYuRbr5Qs2kzPNl1JLWu8IKTUKzqpI5xZuDFOby8ZxhFqLZ1FWcIkFUiRVhVbz8GCtTLaMQeNV2ukkfIE4rK2u2UB+DBKEnQbBiRFbyCGhraEen2PvPi/wyE/71+AaOLM/JyYUt/S2+bz5lgugLFwNi9VJM4HgShcwwvzs7i//Hm2lj6Aj+dCPat8IquJ7QSVDUuu746Idw== (none)
|
||||
Loading…
Add table
Add a link
Reference in a new issue