Compare commits
30 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 53f33fa74b | |||
| 698292e00a | |||
| 83c1f23d61 | |||
| 63a32cee92 | |||
| 6287704cf3 | |||
| c3631f1ef8 | |||
| 0ec2a2cc7d | |||
| 8f3d0e7a7d | |||
| fdb1b8aeb5 | |||
| 40e311e5e4 | |||
| f5adb9d6d7 | |||
| afc7385c95 | |||
| 907d8bc9d2 | |||
| 9838e913b5 | |||
| 8f165dbc05 | |||
| 982e7edd2d | |||
| 830376454c | |||
| 830b945d91 | |||
| fd1da06173 | |||
| e79b2eeb05 | |||
| 45b1a1e7ec | |||
| ba224d45a4 | |||
| 632f4d9b38 | |||
| 66b68ce658 | |||
| 37558060f4 | |||
| 58c5ddd075 | |||
| 4b17075968 | |||
| 95e23247b0 | |||
| b500c0a4cc | |||
| 180a071620 |
26 changed files with 394 additions and 555 deletions
56
flake.lock
generated
56
flake.lock
generated
|
|
@ -10,11 +10,11 @@
|
|||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747514353,
|
||||
"narHash": "sha256-E1WjB+zvDw4x058mg3MIdK5j2huvnNpTEEt2brhg2H8=",
|
||||
"lastModified": 1747575206,
|
||||
"narHash": "sha256-NwmAFuDUO/PFcgaGGr4j3ozG9Pe5hZ/ogitWhY+D81k=",
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"rev": "6697e8babbd8f323dfd5e28f160a0128582c128b",
|
||||
"rev": "4835b1dc898959d8547a871ef484930675cb47f1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -67,6 +67,27 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"disko": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs-stable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1736864502,
|
||||
"narHash": "sha256-ItkIZyebGvNH2dK9jVGzJHGPtb6BSWLN8Gmef16NeY0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "0141aabed359f063de7413f80d906e1d98c0c123",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "v1.11.0",
|
||||
"repo": "disko",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
|
@ -111,16 +132,16 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747331121,
|
||||
"narHash": "sha256-3MmiUN/jOHBHQUnjqzg6qKArc17j2OS6jisEppDY4g8=",
|
||||
"lastModified": 1748665073,
|
||||
"narHash": "sha256-RMhjnPKWtCoIIHiuR9QKD7xfsKb3agxzMfJY8V9MOew=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "1eec32f0efe3b830927989767a9e6ece0d82d608",
|
||||
"rev": "282e1e029cb6ab4811114fc85110613d72771dea",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"ref": "release-25.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
@ -132,11 +153,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747439237,
|
||||
"narHash": "sha256-5rCGrnkglKKj4cav1U3HC+SIUNJh08pqOK4spQv9RjA=",
|
||||
"lastModified": 1748830238,
|
||||
"narHash": "sha256-EB+LzYHK0D5aqxZiYoPeoZoOzSAs8eqBDxm3R+6wMKU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "ae755329092c87369b9e9a1510a8cf1ce2b1c708",
|
||||
"rev": "c7fdb7e90bff1a51b79c1eed458fb39e6649a82a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -179,11 +200,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1747327360,
|
||||
"narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=",
|
||||
"lastModified": 1748693115,
|
||||
"narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e06158e58f3adee28b139e9c2bcfcc41f8625b46",
|
||||
"rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -195,16 +216,16 @@
|
|||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1747335874,
|
||||
"narHash": "sha256-IKKIXTSYJMmUtE+Kav5Rob8SgLPnfnq4Qu8LyT4gdqQ=",
|
||||
"lastModified": 1748708770,
|
||||
"narHash": "sha256-q8jG2HJWgooWa9H0iatZqBPF3bp0504e05MevFmnFLY=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ba8b70ee098bc5654c459d6a95dfc498b91ff858",
|
||||
"rev": "a59eb7800787c926045d51b70982ae285faa2346",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-24.11",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
@ -213,6 +234,7 @@
|
|||
"inputs": {
|
||||
"agenix": "agenix",
|
||||
"deploy-rs": "deploy-rs",
|
||||
"disko": "disko",
|
||||
"home-manager": "home-manager_2",
|
||||
"home-manager-stable": "home-manager-stable",
|
||||
"impermanence": "impermanence",
|
||||
|
|
|
|||
40
flake.nix
40
flake.nix
|
|
@ -3,14 +3,19 @@
|
|||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.05";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/master";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
home-manager-stable = {
|
||||
url = "github:nix-community/home-manager/release-24.11";
|
||||
url = "github:nix-community/home-manager/release-25.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs-stable";
|
||||
};
|
||||
|
||||
disko = {
|
||||
url = "github:nix-community/disko?ref=v1.11.0";
|
||||
inputs.nixpkgs.follows = "nixpkgs-stable";
|
||||
};
|
||||
|
||||
|
|
@ -36,10 +41,11 @@
|
|||
nixpkgs-stable,
|
||||
home-manager,
|
||||
home-manager-stable,
|
||||
disko,
|
||||
agenix,
|
||||
deploy-rs,
|
||||
impermanence,
|
||||
nix-flatpak,
|
||||
impermanence,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
|
@ -62,6 +68,7 @@
|
|||
defaultModules = [
|
||||
./hosts/${hostname}.nix
|
||||
agenix.nixosModules.default
|
||||
disko.nixosModules.default
|
||||
hm.nixosModules.default
|
||||
impermanence.nixosModules.impermanence
|
||||
nix-flatpak.nixosModules.nix-flatpak
|
||||
|
|
@ -79,7 +86,11 @@
|
|||
}
|
||||
];
|
||||
serverModules = [
|
||||
self.nixosModules.qbittorrent
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
self.overlays.serverOverlay
|
||||
];
|
||||
}
|
||||
];
|
||||
typeModules = if type == "server" then serverModules else workstationModules;
|
||||
allModules = defaultModules ++ typeModules ++ extraModules;
|
||||
|
|
@ -105,6 +116,12 @@
|
|||
alexandria = mkHost {
|
||||
hostname = "alexandria";
|
||||
type = "server";
|
||||
extraModules = [ self.nixosModules.qbittorrent ];
|
||||
};
|
||||
trantor = mkHost {
|
||||
hostname = "trantor";
|
||||
type = "server";
|
||||
system = "aarch64-linux";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -113,6 +130,9 @@
|
|||
};
|
||||
workstationOverlay = final: prev: {
|
||||
plasticity = nixpkgs.legacyPackages."x86_64-linux".callPackage ./packages/plasticity.nix { };
|
||||
toggleaudiosink =
|
||||
nixpkgs.legacyPackages."x86_64-linux".callPackage ./packages/toggleaudiosink.nix
|
||||
{ };
|
||||
};
|
||||
serverOverlay = final: prev: {
|
||||
};
|
||||
|
|
@ -134,6 +154,18 @@
|
|||
};
|
||||
};
|
||||
|
||||
trantor = {
|
||||
hostname = "trantor";
|
||||
profiles = {
|
||||
system = {
|
||||
user = "root";
|
||||
sshUser = "root";
|
||||
remoteBuild = true;
|
||||
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.alexandria;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
io = {
|
||||
hostname = "io";
|
||||
profiles = {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ in
|
|||
./jellyfin.nix
|
||||
./librespeed.nix
|
||||
./memos.nix
|
||||
./nextcloud.nix
|
||||
# ./nextcloud.nix
|
||||
./nginx.nix
|
||||
./searx.nix
|
||||
./services.nix
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
25565 # Minecraft
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
24454 # Minecraft Simple Voice Chat
|
||||
19132 # Minecraft Bedrock
|
||||
25565 # Minecraft
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
services = {
|
||||
nextcloud = {
|
||||
enable = true;
|
||||
package = pkgs.nextcloud30;
|
||||
package = pkgs.nextcloud31;
|
||||
datadir = "/data/nextcloud";
|
||||
hostName = "cloud.baduhai.dev";
|
||||
configureRedis = true;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@
|
|||
./boot.nix
|
||||
./console.nix
|
||||
./desktop.nix
|
||||
./flatpak.nix
|
||||
./impermanence.nix
|
||||
./locale.nix
|
||||
./networking.nix
|
||||
|
|
|
|||
|
|
@ -18,14 +18,6 @@
|
|||
# Workstation specific configuration
|
||||
(lib.mkIf hostType.isWorkstation {
|
||||
services = {
|
||||
displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland = {
|
||||
enable = true;
|
||||
compositor = "kwin";
|
||||
};
|
||||
};
|
||||
desktopManager.plasma6.enable = true;
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
|
|
@ -34,9 +26,20 @@
|
|||
jack.enable = true;
|
||||
wireplumber.enable = true;
|
||||
};
|
||||
greetd = {
|
||||
enable = true;
|
||||
settings.default_session.command = "${pkgs.greetd.tuigreet}/bin/tuigreet --remember --asterisks --time";
|
||||
};
|
||||
};
|
||||
|
||||
# programs.hyprland.enable = true;
|
||||
programs.niri.enable = true;
|
||||
environment.systemPackages = with pkgs; [
|
||||
anyrun
|
||||
foot
|
||||
gsettings-desktop-schemas
|
||||
swaybg
|
||||
swww
|
||||
xwayland-satellite
|
||||
];
|
||||
|
||||
hardware = {
|
||||
xpadneo.enable = true;
|
||||
|
|
@ -52,7 +55,6 @@
|
|||
enable = true;
|
||||
xdgOpenUsePortal = true;
|
||||
extraPortals = with pkgs; [
|
||||
kdePackages.xdg-desktop-portal-kde
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-gnome
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
{
|
||||
hostType,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
config = lib.mkMerge [
|
||||
# Common configuration
|
||||
{
|
||||
}
|
||||
|
||||
# Server specific configuration
|
||||
(lib.mkIf hostType.isServer {
|
||||
})
|
||||
|
||||
# Workstation specific configuration
|
||||
(lib.mkIf hostType.isWorkstation {
|
||||
services.flatpak = {
|
||||
enable = true;
|
||||
packages = [
|
||||
"com.github.k4zmu2a.spacecadetpinball"
|
||||
"com.github.tchx84.Flatseal"
|
||||
"com.steamgriddb.SGDBoop"
|
||||
"app.zen_browser.zen"
|
||||
"io.github.Foldex.AdwSteamGtk"
|
||||
"io.itch.itch"
|
||||
"org.freedesktop.Platform.VulkanLayer.MangoHud/x86_64/24.08"
|
||||
];
|
||||
uninstallUnmanaged = true;
|
||||
update.auto.enable = true;
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
||||
|
|
@ -27,14 +27,12 @@
|
|||
];
|
||||
directories = [
|
||||
"/etc/NetworkManager/system-connections"
|
||||
"/etc/waydroid-extra/images/"
|
||||
"/var/lib/bluetooth"
|
||||
"/var/lib/flatpak"
|
||||
"/var/lib/nixos"
|
||||
"/var/lib/systemd/coredump"
|
||||
"/var/lib/systemd/timers"
|
||||
"/var/lib/tailscale"
|
||||
"/var/lib/waydroid"
|
||||
"/var/log"
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -18,7 +18,10 @@
|
|||
enable = true;
|
||||
extraUpFlags = [ "--operator=user" ];
|
||||
};
|
||||
openssh.enable = true;
|
||||
openssh = {
|
||||
enable = true;
|
||||
settings.PermitRootLogin = "no";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
hostType,
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
|
|
@ -32,9 +33,10 @@
|
|||
ls = "${pkgs.eza}/bin/eza --icons --group-directories-first";
|
||||
neofetch = "fastfetch";
|
||||
tree = "ls --tree";
|
||||
tsh = "ssh -o RequestTTY=yes $argv tmux -u -CC new -A -s tmux-main";
|
||||
syscleanup = "sudo nix-collect-garbage -d; sudo /run/current-system/bin/switch-to-configuration boot";
|
||||
};
|
||||
|
||||
services.flatpak.enable = lib.mkDefault false;
|
||||
}
|
||||
|
||||
# Server specific configuration
|
||||
|
|
@ -42,133 +44,121 @@
|
|||
})
|
||||
|
||||
# Workstation specific configuration
|
||||
(lib.mkIf hostType.isWorkstation (
|
||||
let
|
||||
kdepkgs = with pkgs.kdePackages; [
|
||||
ark
|
||||
dolphin-plugins
|
||||
kolourpaint
|
||||
(lib.mkIf hostType.isWorkstation ({
|
||||
environment.systemPackages = with pkgs; [
|
||||
### Dev Tools ###
|
||||
bat
|
||||
deploy-rs
|
||||
fd
|
||||
fzf
|
||||
nixfmt-rfc-style
|
||||
nix-init
|
||||
nix-output-monitor
|
||||
ripgrep
|
||||
### Internet Browsers & Communication ###
|
||||
beeper
|
||||
brave
|
||||
tor-browser
|
||||
vesktop
|
||||
### Office & Productivity ###
|
||||
aspell
|
||||
aspellDicts.de
|
||||
aspellDicts.en
|
||||
aspellDicts.en-computers
|
||||
aspellDicts.pt_BR
|
||||
libreoffice-qt
|
||||
obsidian
|
||||
(octaveFull.withPackages (octavePackages: with octavePackages; [ signal ]))
|
||||
onlyoffice-desktopeditors
|
||||
rnote
|
||||
### Graphics & Design ###
|
||||
gimp
|
||||
inkscape
|
||||
orca-slicer
|
||||
plasticity
|
||||
### Gaming & Entertainment ###
|
||||
clonehero
|
||||
heroic
|
||||
mangohud
|
||||
prismlauncher
|
||||
### System Utilities ###
|
||||
adwaita-icon-theme
|
||||
junction
|
||||
kara
|
||||
kde-rounded-corners
|
||||
libfido2
|
||||
morewaita-icon-theme
|
||||
nautilus
|
||||
mission-center
|
||||
p7zip
|
||||
qbittorrent
|
||||
quickemu
|
||||
quickgui
|
||||
rustdesk
|
||||
steam-run
|
||||
toggleaudiosink
|
||||
unrar
|
||||
### Media ###
|
||||
mpv
|
||||
obs-studio
|
||||
qview
|
||||
];
|
||||
|
||||
programs = {
|
||||
adb.enable = true;
|
||||
steam = {
|
||||
enable = true;
|
||||
extraCompatPackages = [ pkgs.proton-ge-bin ];
|
||||
};
|
||||
dconf.enable = true;
|
||||
nix-ld.enable = true;
|
||||
kdeconnect.enable = true;
|
||||
partition-manager.enable = true;
|
||||
gamemode.enable = true;
|
||||
appimage = {
|
||||
enable = true;
|
||||
binfmt = true;
|
||||
};
|
||||
nh = {
|
||||
enable = true;
|
||||
flake = "/home/user/Projects/personal/nix-config";
|
||||
};
|
||||
};
|
||||
|
||||
fonts = {
|
||||
fontDir.enable = true;
|
||||
packages = with pkgs; [
|
||||
corefonts
|
||||
inter
|
||||
nerd-fonts.hack
|
||||
noto-fonts-cjk-sans
|
||||
roboto
|
||||
];
|
||||
kwrite = pkgs.symlinkJoin {
|
||||
name = "kwrite";
|
||||
paths = [ pkgs.kdePackages.kate ];
|
||||
postBuild = ''
|
||||
rm -rf $out/bin/kate \
|
||||
$out/bin/.kate-wrapped \
|
||||
$out/share/applications/org.kde.kate.desktop \
|
||||
$out/share/man \
|
||||
$out/share/icons/hicolor/*/apps/kate.png \
|
||||
$out/share/icons/hicolor/scalable/apps/kate.svg \
|
||||
$out/share/appdata/org.kde.kate.appdata.xml
|
||||
'';
|
||||
};
|
||||
in
|
||||
{
|
||||
environment.systemPackages =
|
||||
with pkgs;
|
||||
[
|
||||
### Dev Tools ###
|
||||
bat
|
||||
deploy-rs
|
||||
fd
|
||||
fzf
|
||||
nixfmt-rfc-style
|
||||
nix-init
|
||||
nix-output-monitor
|
||||
ripgrep
|
||||
### Internet Browsers & Communication ###
|
||||
beeper
|
||||
brave
|
||||
microsoft-edge
|
||||
nextcloud-client
|
||||
tor-browser
|
||||
vesktop
|
||||
### Office & Productivity ###
|
||||
aspell
|
||||
aspellDicts.de
|
||||
aspellDicts.en
|
||||
aspellDicts.en-computers
|
||||
aspellDicts.pt_BR
|
||||
kwrite
|
||||
libreoffice-qt
|
||||
obsidian
|
||||
(octaveFull.withPackages (octavePackages: with octavePackages; [ signal ]))
|
||||
onlyoffice-desktopeditors
|
||||
rnote
|
||||
### Graphics & Design ###
|
||||
gimp
|
||||
inkscape
|
||||
orca-slicer
|
||||
plasticity
|
||||
### Gaming & Entertainment ###
|
||||
clonehero
|
||||
heroic
|
||||
mangohud
|
||||
prismlauncher
|
||||
protonup
|
||||
### System Utilities ###
|
||||
adwaita-icon-theme
|
||||
junction
|
||||
kara
|
||||
kde-rounded-corners
|
||||
libfido2
|
||||
# lilipod BROKEN
|
||||
mission-center
|
||||
p7zip
|
||||
qbittorrent
|
||||
quickemu
|
||||
quickgui
|
||||
rustdesk
|
||||
steam-run
|
||||
unrar
|
||||
### Media ###
|
||||
mpv
|
||||
obs-studio
|
||||
qview
|
||||
]
|
||||
++ kdepkgs;
|
||||
};
|
||||
|
||||
programs = {
|
||||
adb.enable = true;
|
||||
steam.enable = true;
|
||||
dconf.enable = true;
|
||||
nix-ld.enable = true;
|
||||
kdeconnect.enable = true;
|
||||
partition-manager.enable = true;
|
||||
gamemode.enable = true;
|
||||
appimage = {
|
||||
enable = true;
|
||||
binfmt = true;
|
||||
};
|
||||
nh = {
|
||||
enable = true;
|
||||
flake = "/home/user/Projects/personal/nix-config";
|
||||
};
|
||||
};
|
||||
|
||||
fonts = {
|
||||
fontDir.enable = true;
|
||||
packages = with pkgs; [
|
||||
corefonts
|
||||
inter
|
||||
nerd-fonts.hack
|
||||
noto-fonts-cjk-sans
|
||||
roboto
|
||||
];
|
||||
};
|
||||
|
||||
environment.plasma6.excludePackages = (
|
||||
with pkgs.kdePackages;
|
||||
[
|
||||
discover
|
||||
elisa
|
||||
gwenview
|
||||
kate
|
||||
khelpcenter
|
||||
oxygen
|
||||
]
|
||||
);
|
||||
}
|
||||
))
|
||||
services.flatpak = {
|
||||
enable = true;
|
||||
packages = [
|
||||
### Dev Tools ###
|
||||
### Internet Browsers & Communication ###
|
||||
"app.zen_browser.zen"
|
||||
### Office & Productivity ###
|
||||
### Graphics & Design ###
|
||||
"com.boxy_svg.BoxySVG"
|
||||
### Gaming & Entertainment ###
|
||||
"com.github.k4zmu2a.spacecadetpinball"
|
||||
"io.itch.itch"
|
||||
"io.mrarm.mcpelauncher"
|
||||
"org.freedesktop.Platform.VulkanLayer.MangoHud/x86_64/24.08"
|
||||
### System Utilities ###
|
||||
"com.github.tchx84.Flatseal"
|
||||
"io.github.Foldex.AdwSteamGtk"
|
||||
"com.steamgriddb.SGDBoop"
|
||||
### Media ###
|
||||
];
|
||||
uninstallUnmanaged = true;
|
||||
update.auto.enable = true;
|
||||
};
|
||||
}))
|
||||
];
|
||||
}
|
||||
|
|
|
|||
9
hosts/modules/trantor/boot.nix
Normal file
9
hosts/modules/trantor/boot.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
boot = {
|
||||
loader.efi.efiSysMountPoint = "/boot";
|
||||
initrd.systemd.enable = true;
|
||||
kernel.sysctl."net.ipv4.ip_forward" = 1;
|
||||
};
|
||||
}
|
||||
10
hosts/modules/trantor/default.nix
Normal file
10
hosts/modules/trantor/default.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./boot.nix
|
||||
./disko.nix
|
||||
./hardware-configuration.nix
|
||||
./networking.nix
|
||||
];
|
||||
}
|
||||
32
hosts/modules/trantor/disko.nix
Normal file
32
hosts/modules/trantor/disko.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
disko.devices = {
|
||||
disk = {
|
||||
main = {
|
||||
type = "disk";
|
||||
device = "/dev/sda";
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
boot = {
|
||||
size = "512M";
|
||||
type = "EF00";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/boot";
|
||||
};
|
||||
};
|
||||
root = {
|
||||
size = "100%";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "ext4";
|
||||
mountpoint = "/";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
27
hosts/modules/trantor/hardware-configuration.nix
Normal file
27
hosts/modules/trantor/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
|
||||
|
||||
boot = {
|
||||
kernelModules = [ ];
|
||||
extraModulePackages = [ ];
|
||||
initrd = {
|
||||
availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"virtio_pci"
|
||||
"virtio_scsi"
|
||||
"usbhid"
|
||||
];
|
||||
kernelModules = [ ];
|
||||
};
|
||||
};
|
||||
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
|
||||
}
|
||||
10
hosts/modules/trantor/networking.nix
Normal file
10
hosts/modules/trantor/networking.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
networking = {
|
||||
firewall = {
|
||||
allowedTCPPorts = [ 25566 ];
|
||||
allowedUDPPorts = [ 25566 ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -20,17 +20,13 @@
|
|||
"wheel"
|
||||
];
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKcwF1yuWEfYGScNocEbs0AmGxyTIzGc4/IhpU587SJE"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA1v3+q3EaruiiStWjubEJWvtejam/r41uoOpCdwJtLL"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA1v3+q3EaruiiStWjubEJWvtejam/r41uoOpCdwJtLL user@rotterdam"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO3Y0PVpGfJHonqDS7qoCFhqzUvqGq9I9sax+F9e/5cs user@io"
|
||||
];
|
||||
hashedPassword = "$6$Pj7v/CpstyuWQQV0$cNujVDhfMBdwlGVEnnd8t71.kZPixbo0u25cd.874iaqLTH4V5fa1f98V5zGapjQCz5JyZmsR94xi00sUrntT0";
|
||||
};
|
||||
root = {
|
||||
shell = pkgs.fish;
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKcwF1yuWEfYGScNocEbs0AmGxyTIzGc4/IhpU587SJE"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA1v3+q3EaruiiStWjubEJWvtejam/r41uoOpCdwJtLL"
|
||||
];
|
||||
hashedPassword = "!";
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
virtualisation = {
|
||||
libvirtd.enable = true;
|
||||
lxd.enable = true;
|
||||
waydroid.enable = true;
|
||||
};
|
||||
})
|
||||
];
|
||||
|
|
|
|||
13
hosts/trantor.nix
Normal file
13
hosts/trantor.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
networking.hostName = "trantor";
|
||||
|
||||
imports = [
|
||||
./modules/trantor
|
||||
./modules
|
||||
];
|
||||
|
||||
nix.nixPath = [ "nixos-config=${./trantor.nix}" ];
|
||||
}
|
||||
|
||||
48
packages/toggleaudiosink.nix
Normal file
48
packages/toggleaudiosink.nix
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
pkgs ? import <nixpkgs> { },
|
||||
}:
|
||||
|
||||
pkgs.writeShellScriptBin "toggleaudiosink" ''
|
||||
#!/usr/bin/env bash
|
||||
|
||||
sound_server="pipewire"
|
||||
|
||||
# Grab a count of how many audio sinks we have
|
||||
sink_count=$(${pkgs.pulseaudio}/bin/pactl list sinks | grep -c "Sink #[[:digit:]]")
|
||||
# Create an array of the actual sink IDs
|
||||
sinks=()
|
||||
mapfile -t sinks < <(${pkgs.pulseaudio}/bin/pactl list sinks | grep 'Sink #[[:digit:]]' | sed -n -e 's/.*Sink #\([[:digit:]]\)/\1/p')
|
||||
# Get the ID of the active sink
|
||||
active_sink_name=$(${pkgs.pulseaudio}/bin/pactl info | grep 'Default Sink:' | sed -n -e 's/.*Default Sink:[[:space:]]\+\(.*\)/\1/p')
|
||||
active_sink=$(${pkgs.pulseaudio}/bin/pactl list sinks | grep -B 2 "$active_sink_name" | sed -n -e 's/Sink #\([[:digit:]]\)/\1/p' | head -n 1)
|
||||
|
||||
# Get the ID of the last sink in the array
|
||||
final_sink=''${sinks[$((sink_count - 1))]}
|
||||
|
||||
# Find the index of the active sink
|
||||
for index in "''${!sinks[@]}"; do
|
||||
if [[ "''${sinks[$index]}" == "$active_sink" ]]; then
|
||||
active_sink_index=$index
|
||||
fi
|
||||
done
|
||||
|
||||
# Default to the first sink in the list
|
||||
next_sink=''${sinks[0]}
|
||||
next_sink_index=0
|
||||
|
||||
# If we're not at the end of the list, move up the list
|
||||
if [[ $active_sink -ne $final_sink ]]; then
|
||||
next_sink_index=$((active_sink_index + 1))
|
||||
next_sink=''${sinks[$next_sink_index]}
|
||||
fi
|
||||
|
||||
# Change the default sink
|
||||
# Get the name of the next sink
|
||||
next_sink_name=$(${pkgs.pulseaudio}/bin/pactl list sinks | grep -C 2 "Sink #$next_sink" | sed -n -e 's/.*Name:[[:space:]]\+\(.*\)/\1/p' | head -n 1)
|
||||
${pkgs.pulseaudio}/bin/pactl set-default-sink "$next_sink_name"
|
||||
|
||||
# Move all inputs to the new sink
|
||||
for app in $(${pkgs.pulseaudio}/bin/pactl list sink-inputs | sed -n -e 's/.*Sink Input #\([[:digit:]]\)/\1/p'); do
|
||||
${pkgs.pulseaudio}/bin/pactl "move-sink-input $app $next_sink"
|
||||
done
|
||||
''
|
||||
|
|
@ -2,6 +2,7 @@ All my personal Nix and NixOS hosts, in a flake.
|
|||
|
||||
|Host|Description|Nixpkgs version|
|
||||
|:---|:---:|---:|
|
||||
|alexandria|Personal server/NAS|24.05|
|
||||
|alexandria|Personal server/NAS|25.05|
|
||||
|io|Mobile workstation|unstable|
|
||||
|rotterdam|Workstation|unstable|
|
||||
|trantor|VPS in Oracle Cloud|25.05|
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@
|
|||
programs = {
|
||||
bash = {
|
||||
enable = true;
|
||||
historyFile = "~/.cache/bash_history";
|
||||
};
|
||||
|
||||
helix = {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
{
|
||||
imports = [
|
||||
# ./hyprland.nix
|
||||
./programs.nix
|
||||
./home.nix
|
||||
];
|
||||
}
|
||||
|
|
|
|||
24
users/modules/user/home.nix
Normal file
24
users/modules/user/home.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.pointerCursor = {
|
||||
package = pkgs.kdePackages.breeze;
|
||||
name = "Breeze_Light";
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
package = pkgs.morewaita-icon-theme;
|
||||
name = "MoreWaita";
|
||||
};
|
||||
gtk3.extraConfig = {
|
||||
gtk-decoration-layout = "appmenu:";
|
||||
};
|
||||
gtk4.extraConfig = {
|
||||
gtk-decoration-layout = "appmenu:";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,299 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
heightfittr = pkgs.writeShellApplication {
|
||||
name = "heightfittr";
|
||||
runtimeInputs = with pkgs; [
|
||||
socat
|
||||
hyprland
|
||||
];
|
||||
text = ''
|
||||
function handle {
|
||||
case "$1" in
|
||||
*openwindow*)
|
||||
hyprctl dispatch scroller:fitheight all > /dev/null
|
||||
;;
|
||||
*closewindow*)
|
||||
hyprctl dispatch scroller:fitheight all > /dev/null
|
||||
;;
|
||||
esac
|
||||
}
|
||||
socat - "UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock" | while read -r line; do
|
||||
handle "$line"
|
||||
done
|
||||
'';
|
||||
};
|
||||
|
||||
scrollermodetoggle = pkgs.writeShellApplication {
|
||||
name = "scrollermodetoggle";
|
||||
runtimeInputs = with pkgs; [ hyprland ];
|
||||
text = ''
|
||||
if [ -f "$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/colmode" ]; then
|
||||
rm "$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/colmode"
|
||||
hyprctl --batch 'dispatch scroller:setmode row; notify 2 1000 0 "Row Mode"'
|
||||
else
|
||||
touch "$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/colmode"
|
||||
hyprctl --batch 'dispatch scroller:setmode col; notify 2 1000 0 "Column Mode"'
|
||||
fi
|
||||
'';
|
||||
};
|
||||
in
|
||||
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
plugins = with pkgs.hyprlandPlugins; [ hyprscroller ];
|
||||
extraConfig = ''
|
||||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
monitor=,preferred,auto,1
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
# exec-once = ${pkgs.gnome-settings-daemon}/libexec/gsd-rfkill
|
||||
# exec-once = waybar
|
||||
# exec-once = syshud
|
||||
exec-once = ${lib.getExe heightfittr}
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 20
|
||||
border_size = 2
|
||||
resize_on_border = true
|
||||
allow_tearing = false
|
||||
layout = scroller
|
||||
}
|
||||
misc {
|
||||
font_family = Inter
|
||||
}
|
||||
plugin {
|
||||
scroller {
|
||||
column_default_width = onethird
|
||||
focuswrap = false
|
||||
column_widths = onethird onehalf twothirds
|
||||
center_row_if_space_available = true
|
||||
}
|
||||
}
|
||||
decoration {
|
||||
rounding = 10
|
||||
rounding_power = 2
|
||||
dim_inactive = true
|
||||
dim_strength = 0.3
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
render_power = 3
|
||||
}
|
||||
blur {
|
||||
enabled = true
|
||||
size = 8
|
||||
passes = 1
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
layerrule = blur, waybar
|
||||
layerrule = ignorealpha 0.5, waybar
|
||||
layerrule = ignorezero, waybar
|
||||
}
|
||||
animations {
|
||||
enabled = yes, please :)
|
||||
bezier = easeOutQuint,0.23,1,0.32,1
|
||||
bezier = easeInOutCubic,0.65,0.05,0.36,1
|
||||
bezier = linear,0,0,1,1
|
||||
bezier = almostLinear,0.5,0.5,0.75,1.0
|
||||
bezier = quick,0.15,0,0.1,1
|
||||
animation = global, 1, 1, default
|
||||
animation = border, 1, 1, easeOutQuint
|
||||
animation = windows, 1, 1, easeOutQuint
|
||||
animation = windowsIn, 1, 1, easeOutQuint, popin 87%
|
||||
animation = windowsOut, 1, 1, linear, popin 87%
|
||||
animation = fadeIn, 1, 1, almostLinear
|
||||
animation = fadeOut, 1, 1, almostLinear
|
||||
animation = fade, 1, 1, quick
|
||||
animation = layers, 1, 1, easeOutQuint
|
||||
animation = layersIn, 1, 1, easeOutQuint, fade
|
||||
animation = layersOut, 1, 1, linear, fade
|
||||
animation = fadeLayersIn, 1, 1, almostLinear
|
||||
animation = fadeLayersOut, 1, 1, almostLinear
|
||||
animation = workspaces, 1, 1, almostLinear, slidevert
|
||||
}
|
||||
misc {
|
||||
force_default_wallpaper = 0
|
||||
disable_hyprland_logo = true
|
||||
}
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant = altgr-intl
|
||||
follow_mouse = 1
|
||||
sensitivity = 0
|
||||
accel_profile = flat
|
||||
natural_scroll = true
|
||||
touchpad {
|
||||
natural_scroll = true
|
||||
clickfinger_behavior = true
|
||||
}
|
||||
}
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
###################
|
||||
$mainMod = SUPER
|
||||
$terminal = ghostty
|
||||
$menu = ulauncher-toggle
|
||||
# APP SHORTCUTS
|
||||
bind = ALT, SPACE, exec, $menu
|
||||
bind = $mainMod, RETURN, exec, $terminal
|
||||
# SESSION MANAGEMENT
|
||||
bind = CTRL ALT, DELETE, exit,
|
||||
bind = $mainMod, mouse_up, exec, hyprnome
|
||||
bind = $mainMod, mouse_down, exec, hyprnome --previous
|
||||
bind = CTRL ALT, j, exec, hyprnome
|
||||
bind = CTRL ALT, k, exec, hyprnome --previous
|
||||
bind = $mainMod CTRL ALT, j, exec, hyprnome --move
|
||||
bind = $mainMod CTRL ALT, k, exec, hyprnome --move --previous
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
bind = CTRL ALT SHIFT, a, exec, bash /home/user/.local/bin/toggle-audio-output.sh
|
||||
# WINDOW MANAGEMENT
|
||||
bind = ALT, F4, killactive,
|
||||
bind = $mainMod, space, togglefloating,
|
||||
bind = $mainMod, f, fullscreen
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
bind = SUPER, h, movefocus, l
|
||||
bind = SUPER, l, movefocus, r
|
||||
bind = SUPER, k, movefocus, u
|
||||
bind = SUPER, j, movefocus, d
|
||||
bind = $mainMod CTRL, h, movewindow, l
|
||||
bind = $mainMod CTRL, l, movewindow, r
|
||||
bind = $mainMod CTRL, k, movewindow, u
|
||||
bind = $mainMod CTRL, j, movewindow, d
|
||||
bind = $mainMod, v, exec, ${lib.getExe scrollermodetoggle}
|
||||
bind = $mainMod, r, scroller:cyclewidth, next
|
||||
bind = $mainMod CTRL, r, scroller:cyclewidth, prev
|
||||
bind = $mainMod, p, scroller:pin,
|
||||
bind = $mainMod, c, scroller:alignwindow, center
|
||||
bind = $mainMod CTRL, f, scroller:fitsize, all
|
||||
|
||||
####################
|
||||
### WINDOW RULES ###
|
||||
####################
|
||||
windowrulev2 = suppressevent maximize, class:.*
|
||||
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
# ulauncher
|
||||
windowrule = float, ulauncher
|
||||
windowrule = pin, ulauncher
|
||||
windowrule = noborder, ulauncher
|
||||
windowrule = noshadow, ulauncher
|
||||
windowrule = nomaxsize, ulauncher
|
||||
windowrule = noblur, ulauncher
|
||||
windowrulev2 = animation slide top, class:^(ulauncher)$
|
||||
# browsers
|
||||
windowrulev2 = plugin:scroller:columnwidth onehalf, class:(firefox)
|
||||
windowrulev2 = plugin:scroller:columnwidth onehalf, class:(zen)
|
||||
windowrulev2 = plugin:scroller:columnwidth onehalf, class:(brave)
|
||||
'';
|
||||
};
|
||||
|
||||
services = {
|
||||
# swaync = {
|
||||
# enable = true;
|
||||
# settings = {
|
||||
# positionX = "left";
|
||||
# positionY = "top";
|
||||
# layer = "overlay";
|
||||
# control-center-layer = "top";
|
||||
# layer-shell = true;
|
||||
# cssPriority = "application";
|
||||
# control-center-margin-top = 20;
|
||||
# control-center-margin-bottom = 20;
|
||||
# control-center-margin-right = 20;
|
||||
# control-center-margin-left = 20;
|
||||
# notification-2fa-action = true;
|
||||
# notification-inline-replies = false;
|
||||
# notification-icon-size = 64;
|
||||
# notification-body-image-height = 100;
|
||||
# notification-body-image-width = 200;
|
||||
# timeout = 10;
|
||||
# timeout-low = 5;
|
||||
# timeout-critical = 0;
|
||||
# fit-to-screen = true;
|
||||
# relative-timestamps = true;
|
||||
# control-center-width = 500;
|
||||
# control-center-height = 600;
|
||||
# notification-window-width = 500;
|
||||
# keyboard-shortcuts = true;
|
||||
# image-visibility = "when-available";
|
||||
# transition-time = 200;
|
||||
# hide-on-clear = false;
|
||||
# hide-on-action = true;
|
||||
# script-fail-notify = true;
|
||||
# widgets = [
|
||||
# "inhibitors"
|
||||
# "title"
|
||||
# "dnd"
|
||||
# "notifications"
|
||||
# "mpris"
|
||||
# ];
|
||||
# widget-config = {
|
||||
# inhibitors = {
|
||||
# text = "Inhibitors";
|
||||
# button-text = "Clear All";
|
||||
# clear-all-button = true;
|
||||
# };
|
||||
# title = {
|
||||
# text = "Notifications";
|
||||
# clear-all-button = true;
|
||||
# button-text = "Clear All";
|
||||
# };
|
||||
# dnd = {
|
||||
# text = "Do Not Disturb";
|
||||
# };
|
||||
# mpris = {
|
||||
# image-size = 96;
|
||||
# image-radius = 12;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# clipman.enable = true;
|
||||
};
|
||||
|
||||
# programs = {
|
||||
# hyprlock.enable = true;
|
||||
# };
|
||||
|
||||
home.packages = with pkgs; [
|
||||
brightnessctl
|
||||
ghostty
|
||||
hyprnome
|
||||
playerctl
|
||||
swaynotificationcenter
|
||||
syshud
|
||||
ulauncher
|
||||
waybar
|
||||
# inputs.mithril.packages.${pkgs.system}.mithril-control-center
|
||||
];
|
||||
}
|
||||
|
|
@ -57,10 +57,13 @@
|
|||
settings = {
|
||||
add_newline = false;
|
||||
format = ''
|
||||
$directory$git_branch$git_status$nix_shell
|
||||
$hostname$directory$git_branch$git_status$nix_shell
|
||||
[ ❯ ](bold green)
|
||||
'';
|
||||
right_format = "$cmd_duration$character";
|
||||
hostname = {
|
||||
ssh_symbol = " ";
|
||||
};
|
||||
character = {
|
||||
error_symbol = "[](red)";
|
||||
success_symbol = "[](green)";
|
||||
|
|
@ -111,10 +114,6 @@
|
|||
(lib.mkIf hostType.isWorkstation {
|
||||
fonts.fontconfig.enable = true;
|
||||
|
||||
# home.packages = with pkgs; [
|
||||
# ulauncher
|
||||
# ];
|
||||
|
||||
programs = {
|
||||
password-store.package = pkgs.pass-wayland;
|
||||
|
||||
|
|
@ -137,46 +136,6 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
gtk = {
|
||||
gtk3.extraConfig = {
|
||||
gtk-decoration-layout = "appmenu:";
|
||||
};
|
||||
gtk4.extraConfig = {
|
||||
gtk-decoration-layout = "appmenu:";
|
||||
};
|
||||
};
|
||||
|
||||
# systemd.user.services.ulauncher = {
|
||||
# Unit = {
|
||||
# Description = "Ulauncher Application Launcher";
|
||||
# After = [ "graphical-session.target" ];
|
||||
# };
|
||||
# Service = {
|
||||
# Type = "simple";
|
||||
# Environment =
|
||||
# let
|
||||
# pydeps = pkgs.python3.withPackages (
|
||||
# pp: with pp; [
|
||||
# # dependencies for ulauncher-albert-calculate-anything
|
||||
# parsedatetime
|
||||
# pint
|
||||
# pytz
|
||||
# requests
|
||||
# simpleeval
|
||||
# ]
|
||||
# );
|
||||
# in
|
||||
# [
|
||||
# "PYTHONPATH=${pydeps}/${pydeps.sitePackages}"
|
||||
# ];
|
||||
# ExecStart = pkgs.writeShellScript "ulauncher-env-wrapper.sh" ''
|
||||
# export PATH="''${XDG_BIN_HOME}:$HOME/.nix-profile/bin:/etc/profiles/per-user/$USER/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin"
|
||||
# export GDK_BACKEND=wayland
|
||||
# exec ${pkgs.ulauncher}/bin/ulauncher --hide-window
|
||||
# '';
|
||||
# };
|
||||
# };
|
||||
})
|
||||
];
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue