Compare commits
No commits in common. "7815017528fca3e0addb848dbf64d8858f4ed0cb" and "bfa2521ed09c33f32b4f0405c3117e3a0381c2f6" have entirely different histories.
7815017528
...
bfa2521ed0
34 changed files with 883 additions and 604 deletions
|
|
@ -1,47 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
flake.modules = {
|
|
||||||
nixos.fish =
|
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
programs.fish.enable = true;
|
|
||||||
};
|
|
||||||
homeManager.fish =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
programs.fish = {
|
|
||||||
enable = true;
|
|
||||||
interactiveShellInit = ''
|
|
||||||
set fish_greeting
|
|
||||||
${lib.getExe pkgs.nix-your-shell} fish | source
|
|
||||||
'';
|
|
||||||
loginShellInit = "${lib.getExe pkgs.nix-your-shell} fish | source";
|
|
||||||
plugins = [
|
|
||||||
{
|
|
||||||
name = "bang-bang";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "oh-my-fish";
|
|
||||||
repo = "plugin-bang-bang";
|
|
||||||
rev = "f969c618301163273d0a03d002614d9a81952c1e";
|
|
||||||
sha256 = "sha256-A8ydBX4LORk+nutjHurqNNWFmW6LIiBPQcxS3x4nbeQ=";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "z";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "jethrokuan";
|
|
||||||
repo = "z";
|
|
||||||
rev = "067e867debee59aee231e789fc4631f80fa5788e";
|
|
||||||
sha256 = "sha256-emmjTsqt8bdI5qpx1bAzhVACkg0MNB/uffaRjjeuFxU=";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
flake.modules.nixos.ssh =
|
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings.PermitRootLogin = "no";
|
|
||||||
extraConfig = ''
|
|
||||||
PrintLastLog no
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
programs = {
|
|
||||||
bash.interactiveShellInit = ''
|
|
||||||
if { [ -n "$SSH_CONNECTION" ] && [ -z "$IN_NIX_SHELL" ]; } || [ -z "$TMUX" ]; then
|
|
||||||
export TERM=xterm-256color
|
|
||||||
clear
|
|
||||||
fastfetch
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
fish.interactiveShellInit = ''
|
|
||||||
set fish_greeting
|
|
||||||
if set -q SSH_CONNECTION; and not set -q IN_NIX_SHELL; or not set -q TMUX
|
|
||||||
export TERM=xterm-256color
|
|
||||||
clear
|
|
||||||
fastfetch
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -3,18 +3,13 @@
|
||||||
{
|
{
|
||||||
flake.modules = {
|
flake.modules = {
|
||||||
nixos.cli =
|
nixos.cli =
|
||||||
{ pkgs, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = with inputs.self.modules.nixos; [
|
imports = with inputs.self.modules.nixos; [
|
||||||
btop
|
btop
|
||||||
helix
|
helix
|
||||||
tmux
|
tmux
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
p7zip
|
|
||||||
rclone
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
homeManager.cli =
|
homeManager.cli =
|
||||||
{ ... }:
|
{ ... }:
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
flake.modules.nixos.boot =
|
flake.modules.nixos.common-boot =
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
boot = {
|
boot = {
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
flake.modules.nixos.console =
|
flake.modules.nixos.common-console =
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
console = {
|
console = {
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
flake.modules.nixos.firewall =
|
flake.modules.nixos.common-firewall =
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
networking = {
|
networking = {
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
flake.modules.nixos.locale =
|
flake.modules.nixos.common-locale =
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
time.timeZone = "America/Bahia";
|
time.timeZone = "America/Bahia";
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
flake.modules.nixos.nix =
|
flake.modules.nixos.common-nix =
|
||||||
{ inputs, ... }:
|
{ inputs, ... }:
|
||||||
{
|
{
|
||||||
imports = [ inputs.nixos-cli.nixosModules.nixos-cli ];
|
imports = [ inputs.nixos-cli.nixosModules.nixos-cli ];
|
||||||
14
aspects/common/openssh.nix
Normal file
14
aspects/common/openssh.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
flake.modules.nixos.common-openssh =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings.PermitRootLogin = "no";
|
||||||
|
extraConfig = ''
|
||||||
|
PrintLastLog no
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,23 +1,16 @@
|
||||||
{ inputs, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
flake.modules.nixos.base =
|
flake.modules.nixos.common-programs =
|
||||||
{ lib, pkgs, ... }:
|
{ lib, pkgs, ... }:
|
||||||
{
|
{
|
||||||
imports = with inputs.self.modules.nixos; [
|
|
||||||
boot
|
|
||||||
console
|
|
||||||
firewall
|
|
||||||
fish
|
|
||||||
locale
|
|
||||||
nix
|
|
||||||
security
|
|
||||||
ssh
|
|
||||||
];
|
|
||||||
environment = {
|
environment = {
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
|
### Dev Tools ###
|
||||||
git
|
git
|
||||||
|
### System Utilities ###
|
||||||
fastfetch
|
fastfetch
|
||||||
nixos-firewall-tool
|
nixos-firewall-tool
|
||||||
|
nvd
|
||||||
sysz
|
sysz
|
||||||
wget
|
wget
|
||||||
yazi
|
yazi
|
||||||
|
|
@ -29,15 +22,18 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.command-not-found.enable = false;
|
programs = {
|
||||||
|
command-not-found.enable = false;
|
||||||
services = {
|
fish = {
|
||||||
dbus.implementation = "broker";
|
|
||||||
irqbalance.enable = true;
|
|
||||||
fstrim.enable = true;
|
|
||||||
tailscale = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
extraUpFlags = [ "--operator=user" ];
|
interactiveShellInit = ''
|
||||||
|
set fish_greeting
|
||||||
|
if set -q SSH_CONNECTION; and not set -q IN_NIX_SHELL; or not set -q TMUX
|
||||||
|
export TERM=xterm-256color
|
||||||
|
clear
|
||||||
|
fastfetch
|
||||||
|
end
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
flake.modules.nixos.security =
|
flake.modules.nixos.common-security =
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
security.sudo = {
|
security.sudo = {
|
||||||
12
aspects/common/services.nix
Normal file
12
aspects/common/services.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
flake.modules.nixos.common-services =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
dbus.implementation = "broker";
|
||||||
|
irqbalance.enable = true;
|
||||||
|
fstrim.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
11
aspects/common/tailscale.nix
Normal file
11
aspects/common/tailscale.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
flake.modules.nixos.common-tailscale =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
services.tailscale = {
|
||||||
|
enable = true;
|
||||||
|
extraUpFlags = [ "--operator=user" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
34
aspects/desktop/boot.nix
Normal file
34
aspects/desktop/boot.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
flake.modules.nixos.desktop-boot =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
boot = {
|
||||||
|
plymouth.enable = true;
|
||||||
|
initrd.systemd.enable = true;
|
||||||
|
loader.efi.efiSysMountPoint = "/boot/efi";
|
||||||
|
kernelPackages = pkgs.linuxPackages_xanmod_latest;
|
||||||
|
extraModprobeConfig = ''
|
||||||
|
options bluetooth disable_ertm=1
|
||||||
|
'';
|
||||||
|
kernel.sysctl = {
|
||||||
|
"net.ipv4.tcp_mtu_probing" = 1;
|
||||||
|
};
|
||||||
|
kernelParams = [
|
||||||
|
"quiet"
|
||||||
|
"splash"
|
||||||
|
"i2c-dev"
|
||||||
|
"i2c-piix4"
|
||||||
|
"loglevel=3"
|
||||||
|
"udev.log_priority=3"
|
||||||
|
"rd.udev.log_level=3"
|
||||||
|
"rd.systemd.show_status=false"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
307
aspects/desktop/desktop.nix
Normal file
307
aspects/desktop/desktop.nix
Normal file
|
|
@ -0,0 +1,307 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake.modules = {
|
||||||
|
nixos.desktop-desktop =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.niri-flake.nixosModules.niri
|
||||||
|
inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||||
|
];
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
sessionVariables = {
|
||||||
|
KDEHOME = "$XDG_CONFIG_HOME/kde4"; # Stops kde from placing a .kde4 folder in the home dir
|
||||||
|
NIXOS_OZONE_WL = "1"; # Forces chromium and most electron apps to run in wayland
|
||||||
|
};
|
||||||
|
systemPackages = with pkgs; [
|
||||||
|
### Web ###
|
||||||
|
bitwarden-desktop
|
||||||
|
fragments
|
||||||
|
nextcloud-client
|
||||||
|
tor-browser
|
||||||
|
vesktop
|
||||||
|
inputs.zen-browser.packages."${system}".default
|
||||||
|
### Office & Productivity ###
|
||||||
|
aspell
|
||||||
|
aspellDicts.de
|
||||||
|
aspellDicts.en
|
||||||
|
aspellDicts.en-computers
|
||||||
|
aspellDicts.pt_BR
|
||||||
|
papers
|
||||||
|
presenterm
|
||||||
|
rnote
|
||||||
|
### Graphics & Design ###
|
||||||
|
gimp
|
||||||
|
inkscape
|
||||||
|
plasticity
|
||||||
|
### System Utilities ###
|
||||||
|
adwaita-icon-theme
|
||||||
|
ghostty
|
||||||
|
gnome-disk-utility
|
||||||
|
junction
|
||||||
|
libfido2
|
||||||
|
mission-center
|
||||||
|
nautilus
|
||||||
|
p7zip
|
||||||
|
rclone
|
||||||
|
toggleaudiosink
|
||||||
|
unrar
|
||||||
|
### Media ###
|
||||||
|
decibels
|
||||||
|
loupe
|
||||||
|
obs-studio
|
||||||
|
showtime
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
wireplumber.enable = true;
|
||||||
|
};
|
||||||
|
greetd = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
default_session = {
|
||||||
|
command = "${lib.getExe pkgs.tuigreet} --user-menu --time --remember --asterisks --cmd ${config.programs.niri.package}/bin/niri-session";
|
||||||
|
user = "greeter";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// lib.optionalAttrs (config.networking.hostName == "io") {
|
||||||
|
initial_session = {
|
||||||
|
command = "${config.programs.niri.package}/bin/niri-session";
|
||||||
|
user = "user";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
flatpak = {
|
||||||
|
enable = true;
|
||||||
|
packages = [
|
||||||
|
### Office & Productivity ###
|
||||||
|
"com.collabora.Office"
|
||||||
|
### Graphics & Design ###
|
||||||
|
"com.boxy_svg.BoxySVG"
|
||||||
|
rec {
|
||||||
|
appId = "io.github.softfever.OrcaSlicer";
|
||||||
|
sha256 = "0hdx5sg6fknj1pfnfxvlfwb5h6y1vjr6fyajbsnjph5gkp97c6p1";
|
||||||
|
bundle = "${pkgs.fetchurl {
|
||||||
|
url = "https://github.com/SoftFever/OrcaSlicer/releases/download/v2.3.0/OrcaSlicer-Linux-flatpak_V2.3.0_x86_64.flatpak";
|
||||||
|
inherit sha256;
|
||||||
|
}}";
|
||||||
|
}
|
||||||
|
### System Utilities ###
|
||||||
|
"com.github.tchx84.Flatseal"
|
||||||
|
"com.rustdesk.RustDesk"
|
||||||
|
];
|
||||||
|
uninstallUnmanaged = true;
|
||||||
|
update.auto.enable = true;
|
||||||
|
};
|
||||||
|
gvfs.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
security.rtkit.enable = true; # Needed for pipewire to acquire realtime priority
|
||||||
|
|
||||||
|
users = {
|
||||||
|
users.greeter = {
|
||||||
|
isSystemUser = true;
|
||||||
|
group = "greeter";
|
||||||
|
};
|
||||||
|
groups.greeter = { };
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
niri = {
|
||||||
|
enable = true;
|
||||||
|
package = inputs.niri.packages.${pkgs.system}.niri;
|
||||||
|
};
|
||||||
|
kdeconnect = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.valent;
|
||||||
|
};
|
||||||
|
dconf.enable = true;
|
||||||
|
appimage = {
|
||||||
|
enable = true;
|
||||||
|
binfmt = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
niri-flake.cache.enable = false;
|
||||||
|
|
||||||
|
fonts = {
|
||||||
|
fontDir.enable = true;
|
||||||
|
packages = with pkgs; [
|
||||||
|
corefonts
|
||||||
|
inter
|
||||||
|
nerd-fonts.fira-code
|
||||||
|
noto-fonts-cjk-sans
|
||||||
|
noto-fonts-color-emoji
|
||||||
|
roboto
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.portal = {
|
||||||
|
extraPortals = with pkgs; [
|
||||||
|
xdg-desktop-portal-gnome
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
|
config = {
|
||||||
|
common.default = "*";
|
||||||
|
niri.default = [
|
||||||
|
"gtk"
|
||||||
|
"gnome"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
homeManager.desktop-desktop =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [ inputs.vicinae.homeManagerModules.default ];
|
||||||
|
|
||||||
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
|
home.packages = with pkgs; [ xwayland-satellite ];
|
||||||
|
|
||||||
|
services.vicinae = {
|
||||||
|
enable = true;
|
||||||
|
systemd = {
|
||||||
|
enable = true;
|
||||||
|
autoStart = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
ghostty = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
cursor-style = "block";
|
||||||
|
shell-integration-features = "no-cursor";
|
||||||
|
cursor-style-blink = false;
|
||||||
|
custom-shader = "${builtins.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/hackr-sh/ghostty-shaders/cb6eb4b0d1a3101c869c62e458b25a826f9dcde3/cursor_blaze.glsl";
|
||||||
|
sha256 = "sha256:0g2lgqjdrn3c51glry7x2z30y7ml0y61arl5ykmf4yj0p85s5f41";
|
||||||
|
}}";
|
||||||
|
bell-features = "";
|
||||||
|
gtk-titlebar-style = "tabs";
|
||||||
|
keybind = [ "shift+enter=text:\\x1b\\r" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
password-store = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.pass-wayland;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg = {
|
||||||
|
enable = true;
|
||||||
|
userDirs.enable = true;
|
||||||
|
mimeApps = {
|
||||||
|
enable = true;
|
||||||
|
defaultApplications = {
|
||||||
|
"text/html" = [
|
||||||
|
"re.sonny.Junction.desktop"
|
||||||
|
"zen-browser.desktop"
|
||||||
|
"torbrowser.desktop"
|
||||||
|
];
|
||||||
|
"x-scheme-handler/http" = [
|
||||||
|
"re.sonny.Junction.desktop"
|
||||||
|
"zen-browser.desktop"
|
||||||
|
"torbrowser.desktop"
|
||||||
|
];
|
||||||
|
"x-scheme-handler/https" = [
|
||||||
|
"re.sonny.Junction.desktop"
|
||||||
|
"zen-browser.desktop"
|
||||||
|
"torbrowser.desktop"
|
||||||
|
];
|
||||||
|
"x-scheme-handler/about" = [
|
||||||
|
"re.sonny.Junction.desktop"
|
||||||
|
"zen-browser.desktop"
|
||||||
|
"torbrowser.desktop"
|
||||||
|
];
|
||||||
|
"x-scheme-handler/unknown" = [
|
||||||
|
"re.sonny.Junction.desktop"
|
||||||
|
"zen-browser.desktop"
|
||||||
|
"torbrowser.desktop"
|
||||||
|
];
|
||||||
|
"image/jpeg" = "org.gnome.Loupe.desktop";
|
||||||
|
"image/png" = "org.gnome.Loupe.desktop";
|
||||||
|
"image/gif" = "org.gnome.Loupe.desktop";
|
||||||
|
"image/webp" = "org.gnome.Loupe.desktop";
|
||||||
|
"image/bmp" = "org.gnome.Loupe.desktop";
|
||||||
|
"image/svg+xml" = "org.gnome.Loupe.desktop";
|
||||||
|
"image/tiff" = "org.gnome.Loupe.desktop";
|
||||||
|
"video/mp4" = "io.bassi.Showtime.desktop";
|
||||||
|
"video/x-matroska" = "io.bassi.Showtime.desktop";
|
||||||
|
"video/webm" = "io.bassi.Showtime.desktop";
|
||||||
|
"video/mpeg" = "io.bassi.Showtime.desktop";
|
||||||
|
"video/x-msvideo" = "io.bassi.Showtime.desktop";
|
||||||
|
"video/quicktime" = "io.bassi.Showtime.desktop";
|
||||||
|
"video/x-flv" = "io.bassi.Showtime.desktop";
|
||||||
|
"audio/mpeg" = "io.bassi.Showtime.desktop";
|
||||||
|
"audio/flac" = "io.bassi.Showtime.desktop";
|
||||||
|
"audio/ogg" = "io.bassi.Showtime.desktop";
|
||||||
|
"audio/wav" = "io.bassi.Showtime.desktop";
|
||||||
|
"audio/mp4" = "io.bassi.Showtime.desktop";
|
||||||
|
"audio/x-opus+ogg" = "io.bassi.Showtime.desktop";
|
||||||
|
"application/pdf" = [
|
||||||
|
"org.gnome.Papers.desktop"
|
||||||
|
"zen-browser.desktop"
|
||||||
|
];
|
||||||
|
"text/plain" = "Helix.desktop";
|
||||||
|
"text/markdown" = "Helix.desktop";
|
||||||
|
"text/x-log" = "Helix.desktop";
|
||||||
|
"application/x-shellscript" = "Helix.desktop";
|
||||||
|
"application/vnd.openxmlformats-officedocument.wordprocessingml.document" =
|
||||||
|
"com.collabora.Office.desktop"; # DOCX
|
||||||
|
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" =
|
||||||
|
"com.collabora.Office.desktop"; # XLSX
|
||||||
|
"application/vnd.openxmlformats-officedocument.presentationml.presentation" =
|
||||||
|
"com.collabora.Office.desktop"; # PPTX
|
||||||
|
"application/vnd.oasis.opendocument.text" = "com.collabora.Office.desktop"; # ODT
|
||||||
|
"application/vnd.oasis.opendocument.spreadsheet" = "com.collabora.Office.desktop"; # ODS
|
||||||
|
"application/vnd.oasis.opendocument.presentation" = "com.collabora.Office.desktop"; # ODP
|
||||||
|
"application/msword" = "com.collabora.Office.desktop"; # DOC
|
||||||
|
"application/vnd.ms-excel" = "com.collabora.Office.desktop"; # XLS
|
||||||
|
"application/vnd.ms-powerpoint" = "com.collabora.Office.desktop"; # PPT
|
||||||
|
"application/zip" = "org.gnome.FileRoller.desktop";
|
||||||
|
"application/x-tar" = "org.gnome.FileRoller.desktop";
|
||||||
|
"application/x-compressed-tar" = "org.gnome.FileRoller.desktop";
|
||||||
|
"application/x-bzip-compressed-tar" = "org.gnome.FileRoller.desktop";
|
||||||
|
"application/x-xz-compressed-tar" = "org.gnome.FileRoller.desktop";
|
||||||
|
"application/x-7z-compressed" = "org.gnome.FileRoller.desktop";
|
||||||
|
"application/x-rar" = "org.gnome.FileRoller.desktop";
|
||||||
|
"application/gzip" = "org.gnome.FileRoller.desktop";
|
||||||
|
"application/x-bzip" = "org.gnome.FileRoller.desktop";
|
||||||
|
"inode/directory" = "org.gnome.Nautilus.desktop";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Set Ghostty as default terminal
|
||||||
|
home.sessionVariables = {
|
||||||
|
TERMINAL = "ghostty";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,28 +1,6 @@
|
||||||
{ inputs, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
flake.modules = {
|
flake.modules.homeManager.desktop-niri =
|
||||||
nixos.niri =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [ inputs.niri-flake.nixosModules.niri ];
|
|
||||||
|
|
||||||
services.greetd.settings = {
|
|
||||||
default_session.command = "${lib.getExe pkgs.tuigreet} --user-menu --time --remember --asterisks --cmd ${config.programs.niri.package}/bin/niri-session";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.niri.enable = true;
|
|
||||||
|
|
||||||
xdg.portal.config.niri.default = [
|
|
||||||
"gtk"
|
|
||||||
"gnome"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
homeManager.niri =
|
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
|
|
@ -247,5 +225,4 @@
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
21
aspects/desktop/nix.nix
Normal file
21
aspects/desktop/nix.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
{
|
||||||
|
flake.modules.nixos.desktop-nix =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
environment.etc."channels/nixpkgs".source = inputs.nixpkgs.outPath;
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
registry.nixpkgs.flake = inputs.nixpkgs;
|
||||||
|
nixPath = [
|
||||||
|
"nixpkgs=${inputs.nixpkgs}"
|
||||||
|
"/nix/var/nix/profiles/per-user/root/channels"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
23
aspects/desktop/services.nix
Normal file
23
aspects/desktop/services.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
flake.modules.nixos.desktop-services =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
printing.enable = true;
|
||||||
|
udev.packages = with pkgs; [ yubikey-personalization ];
|
||||||
|
keyd = {
|
||||||
|
enable = true;
|
||||||
|
keyboards.all = {
|
||||||
|
ids = [ "*" ];
|
||||||
|
settings.main.capslock = "overload(meta, esc)";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -16,11 +16,21 @@
|
||||||
((inputs.import-tree.initFilter (p: lib.hasSuffix ".nix" p)) ./_alexandria)
|
((inputs.import-tree.initFilter (p: lib.hasSuffix ".nix" p)) ./_alexandria)
|
||||||
]
|
]
|
||||||
++ (with inputs.self.modules.nixos; [
|
++ (with inputs.self.modules.nixos; [
|
||||||
# system aspects
|
|
||||||
base
|
|
||||||
cli
|
cli
|
||||||
|
|
||||||
# user aspects
|
# Common aspects (always included)
|
||||||
|
common-boot
|
||||||
|
common-console
|
||||||
|
common-firewall
|
||||||
|
common-locale
|
||||||
|
common-nix
|
||||||
|
common-openssh
|
||||||
|
common-programs
|
||||||
|
common-security
|
||||||
|
common-services
|
||||||
|
common-tailscale
|
||||||
|
|
||||||
|
# User aspects
|
||||||
user
|
user
|
||||||
root
|
root
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,22 +19,36 @@
|
||||||
})
|
})
|
||||||
]
|
]
|
||||||
++ (with inputs.self.modules.nixos; [
|
++ (with inputs.self.modules.nixos; [
|
||||||
# system aspects
|
|
||||||
base
|
|
||||||
cli
|
cli
|
||||||
desktop
|
|
||||||
|
|
||||||
# user aspects
|
# Common aspects (always included)
|
||||||
|
common-boot
|
||||||
|
common-console
|
||||||
|
common-firewall
|
||||||
|
common-locale
|
||||||
|
common-nix
|
||||||
|
common-openssh
|
||||||
|
common-programs
|
||||||
|
common-security
|
||||||
|
common-services
|
||||||
|
common-tailscale
|
||||||
|
|
||||||
|
# User aspects
|
||||||
user
|
user
|
||||||
root
|
root
|
||||||
|
|
||||||
|
# Desktop aspects
|
||||||
|
desktop-boot
|
||||||
|
desktop-desktop
|
||||||
|
desktop-nix
|
||||||
|
desktop-services
|
||||||
|
|
||||||
# Other aspects
|
# Other aspects
|
||||||
ai
|
ai
|
||||||
bluetooth
|
bluetooth
|
||||||
dev
|
dev
|
||||||
libvirtd
|
libvirtd
|
||||||
networkmanager
|
networkmanager
|
||||||
niri
|
|
||||||
podman
|
podman
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -19,27 +19,41 @@
|
||||||
})
|
})
|
||||||
]
|
]
|
||||||
++ (with inputs.self.modules.nixos; [
|
++ (with inputs.self.modules.nixos; [
|
||||||
# system aspects
|
|
||||||
base
|
|
||||||
cli
|
cli
|
||||||
desktop
|
|
||||||
|
|
||||||
# user aspects
|
# Common aspects (always included)
|
||||||
|
common-boot
|
||||||
|
common-console
|
||||||
|
common-firewall
|
||||||
|
common-locale
|
||||||
|
common-nix
|
||||||
|
common-openssh
|
||||||
|
common-programs
|
||||||
|
common-security
|
||||||
|
common-services
|
||||||
|
common-tailscale
|
||||||
|
|
||||||
|
# User aspects
|
||||||
user
|
user
|
||||||
root
|
root
|
||||||
|
|
||||||
|
# Desktop aspects
|
||||||
|
desktop-boot
|
||||||
|
desktop-desktop
|
||||||
|
desktop-nix
|
||||||
|
desktop-services
|
||||||
|
|
||||||
# Other aspects based on tags
|
# Other aspects based on tags
|
||||||
ai
|
ai
|
||||||
bluetooth
|
bluetooth
|
||||||
dev
|
dev
|
||||||
fwupd
|
fwupd
|
||||||
gaming-flatpak
|
|
||||||
gaming-hardware
|
|
||||||
gaming-launchers
|
|
||||||
gaming-steam
|
gaming-steam
|
||||||
|
gaming-hardware
|
||||||
|
gaming-flatpak
|
||||||
|
gaming-launchers
|
||||||
libvirtd
|
libvirtd
|
||||||
networkmanager
|
networkmanager
|
||||||
niri
|
|
||||||
podman
|
podman
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -12,17 +12,30 @@
|
||||||
inputs.self.overlays.default
|
inputs.self.overlays.default
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
((inputs.import-tree.initFilter (p: lib.hasSuffix ".nix" p)) ./_trantor)
|
|
||||||
|
# Factory-generated ephemeral module
|
||||||
(inputs.self.factory.ephemeral {
|
(inputs.self.factory.ephemeral {
|
||||||
rootDevice = "/dev/disk/by-id/scsi-360b207ed25d84372a95d1ecf842f8e20-part2";
|
rootDevice = "/dev/disk/by-id/scsi-360b207ed25d84372a95d1ecf842f8e20-part2";
|
||||||
})
|
})
|
||||||
|
|
||||||
|
((inputs.import-tree.initFilter (p: lib.hasSuffix ".nix" p)) ./_trantor)
|
||||||
]
|
]
|
||||||
++ (with inputs.self.modules.nixos; [
|
++ (with inputs.self.modules.nixos; [
|
||||||
# system aspects
|
|
||||||
base
|
|
||||||
cli
|
cli
|
||||||
|
|
||||||
# user aspects
|
# Common aspects (always included)
|
||||||
|
common-boot
|
||||||
|
common-console
|
||||||
|
common-firewall
|
||||||
|
common-locale
|
||||||
|
common-nix
|
||||||
|
common-openssh
|
||||||
|
common-programs
|
||||||
|
common-security
|
||||||
|
common-services
|
||||||
|
common-tailscale
|
||||||
|
|
||||||
|
# User aspects
|
||||||
user
|
user
|
||||||
root
|
root
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
flake.modules.nixos.graphics =
|
flake.modules.nixos.programs-graphics =
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
flake.modules = {
|
flake.modules = {
|
||||||
nixos.media =
|
nixos.programs-media =
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
flake.modules.nixos.office =
|
flake.modules.nixos.programs-office =
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
62
aspects/programs/utilities.nix
Normal file
62
aspects/programs/utilities.nix
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
flake.modules = {
|
||||||
|
nixos.programs-utilities =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
ghostty
|
||||||
|
gnome-disk-utility
|
||||||
|
mission-center
|
||||||
|
nautilus
|
||||||
|
p7zip
|
||||||
|
rclone
|
||||||
|
unrar
|
||||||
|
# Desktop Integration
|
||||||
|
adwaita-icon-theme
|
||||||
|
junction
|
||||||
|
libfido2
|
||||||
|
toggleaudiosink
|
||||||
|
# Xwayland Support
|
||||||
|
xwayland-satellite
|
||||||
|
];
|
||||||
|
|
||||||
|
services.flatpak.packages = [
|
||||||
|
"com.github.tchx84.Flatseal"
|
||||||
|
"com.rustdesk.RustDesk"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
homeManager.programs-utilities =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
ghostty = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
cursor-style = "block";
|
||||||
|
shell-integration-features = "no-cursor";
|
||||||
|
cursor-style-blink = false;
|
||||||
|
custom-shader = "${builtins.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/hackr-sh/ghostty-shaders/cb6eb4b0d1a3101c869c62e458b25a826f9dcde3/cursor_blaze.glsl";
|
||||||
|
sha256 = "sha256:0g2lgqjdrn3c51glry7x2z30y7ml0y61arl5ykmf4yj0p85s5f41";
|
||||||
|
}}";
|
||||||
|
bell-features = "";
|
||||||
|
gtk-titlebar-style = "tabs";
|
||||||
|
keybind = [ "shift+enter=text:\\x1b\\r" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
password-store = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.pass-wayland;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
TERMINAL = "ghostty";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
flake.modules.nixos.web =
|
flake.modules.nixos.programs-web =
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
14
aspects/server/boot.nix
Normal file
14
aspects/server/boot.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
# aspects/server/boot.nix
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
flake.modules.nixos.server-boot =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_hardened;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
|
# aspects/server/nix.nix
|
||||||
{ inputs, ... }:
|
{ inputs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
flake.modules.nixos.server =
|
flake.modules.nixos.server-nix =
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
|
|
@ -9,14 +9,6 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
boot = {
|
|
||||||
kernelPackages = pkgs.linuxPackages_hardened;
|
|
||||||
kernel.sysctl = {
|
|
||||||
"net.ipv4.ip_forward" = 1;
|
|
||||||
"net.ipv6.conf.all.forwarding" = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.etc."channels/nixpkgs".source = inputs.nixpkgs-stable.outPath;
|
environment.etc."channels/nixpkgs".source = inputs.nixpkgs-stable.outPath;
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
|
|
@ -26,11 +18,5 @@
|
||||||
"/nix/var/nix/profiles/per-user/root/channels"
|
"/nix/var/nix/profiles/per-user/root/channels"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.tailscale = {
|
|
||||||
extraSetFlags = [ "--advertise-exit-node" ];
|
|
||||||
useRoutingFeatures = "server";
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
22
aspects/server/tailscale.nix
Normal file
22
aspects/server/tailscale.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
# aspects/server/tailscale.nix
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
flake.modules.nixos.server-tailscale =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
services.tailscale = {
|
||||||
|
extraSetFlags = [ "--advertise-exit-node" ];
|
||||||
|
useRoutingFeatures = "server";
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.kernel.sysctl = {
|
||||||
|
"net.ipv4.ip_forward" = 1;
|
||||||
|
"net.ipv6.conf.all.forwarding" = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
flake.modules.homeManager.bash =
|
flake.modules.homeManager.shell-bash =
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
40
aspects/shell/fish.nix
Normal file
40
aspects/shell/fish.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
flake.modules.homeManager.shell-fish =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
programs.fish = {
|
||||||
|
enable = true;
|
||||||
|
interactiveShellInit = ''
|
||||||
|
set fish_greeting
|
||||||
|
${lib.getExe pkgs.nix-your-shell} fish | source
|
||||||
|
'';
|
||||||
|
loginShellInit = "${lib.getExe pkgs.nix-your-shell} fish | source";
|
||||||
|
plugins = [
|
||||||
|
{
|
||||||
|
name = "bang-bang";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "oh-my-fish";
|
||||||
|
repo = "plugin-bang-bang";
|
||||||
|
rev = "f969c618301163273d0a03d002614d9a81952c1e";
|
||||||
|
sha256 = "sha256-A8ydBX4LORk+nutjHurqNNWFmW6LIiBPQcxS3x4nbeQ=";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "z";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "jethrokuan";
|
||||||
|
repo = "z";
|
||||||
|
rev = "067e867debee59aee231e789fc4631f80fa5788e";
|
||||||
|
sha256 = "sha256-emmjTsqt8bdI5qpx1bAzhVACkg0MNB/uffaRjjeuFxU=";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,207 +0,0 @@
|
||||||
{
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
flake.modules = {
|
|
||||||
nixos.desktop =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.nix-flatpak.nixosModules.nix-flatpak
|
|
||||||
]
|
|
||||||
++ (with inputs.self.modules.nixos; [
|
|
||||||
graphics
|
|
||||||
media
|
|
||||||
office
|
|
||||||
web
|
|
||||||
]);
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
plymouth.enable = true;
|
|
||||||
initrd.systemd.enable = true;
|
|
||||||
loader.efi.efiSysMountPoint = "/boot/efi";
|
|
||||||
kernelPackages = pkgs.linuxPackages_xanmod_latest;
|
|
||||||
extraModprobeConfig = ''
|
|
||||||
options bluetooth disable_ertm=1
|
|
||||||
'';
|
|
||||||
kernel.sysctl = {
|
|
||||||
"net.ipv4.tcp_mtu_probing" = 1;
|
|
||||||
};
|
|
||||||
kernelParams = [
|
|
||||||
"quiet"
|
|
||||||
"splash"
|
|
||||||
"i2c-dev"
|
|
||||||
"i2c-piix4"
|
|
||||||
"loglevel=3"
|
|
||||||
"udev.log_priority=3"
|
|
||||||
"rd.udev.log_level=3"
|
|
||||||
"rd.systemd.show_status=false"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
nix = {
|
|
||||||
registry.nixpkgs.flake = inputs.nixpkgs;
|
|
||||||
nixPath = [
|
|
||||||
"nixpkgs=${inputs.nixpkgs}"
|
|
||||||
"/nix/var/nix/profiles/per-user/root/channels"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
etc."channels/nixpkgs".source = inputs.nixpkgs.outPath;
|
|
||||||
sessionVariables = {
|
|
||||||
KDEHOME = "$XDG_CONFIG_HOME/kde4"; # Stops kde from placing a .kde4 folder in the home dir
|
|
||||||
NIXOS_OZONE_WL = "1"; # Forces chromium and most electron apps to run in wayland
|
|
||||||
};
|
|
||||||
systemPackages = with pkgs; [
|
|
||||||
adwaita-icon-theme
|
|
||||||
ghostty
|
|
||||||
gnome-disk-utility
|
|
||||||
junction
|
|
||||||
libfido2
|
|
||||||
mission-center
|
|
||||||
nautilus
|
|
||||||
toggleaudiosink
|
|
||||||
unrar
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
printing.enable = true;
|
|
||||||
udev.packages = with pkgs; [ yubikey-personalization ];
|
|
||||||
keyd = {
|
|
||||||
enable = true;
|
|
||||||
keyboards.all = {
|
|
||||||
ids = [ "*" ];
|
|
||||||
settings.main.capslock = "overload(meta, esc)";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
jack.enable = true;
|
|
||||||
wireplumber.enable = true;
|
|
||||||
};
|
|
||||||
greetd = {
|
|
||||||
enable = true;
|
|
||||||
settings.default_session.user = "greeter";
|
|
||||||
};
|
|
||||||
flatpak = {
|
|
||||||
enable = true;
|
|
||||||
packages = [
|
|
||||||
"com.github.tchx84.Flatseal"
|
|
||||||
"com.rustdesk.RustDesk"
|
|
||||||
];
|
|
||||||
uninstallUnmanaged = true;
|
|
||||||
update.auto.enable = true;
|
|
||||||
};
|
|
||||||
gvfs.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
security.rtkit.enable = true; # Needed for pipewire to acquire realtime priority
|
|
||||||
|
|
||||||
users = {
|
|
||||||
users.greeter = {
|
|
||||||
isSystemUser = true;
|
|
||||||
group = "greeter";
|
|
||||||
};
|
|
||||||
groups.greeter = { };
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
kdeconnect = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.valent;
|
|
||||||
};
|
|
||||||
dconf.enable = true;
|
|
||||||
appimage = {
|
|
||||||
enable = true;
|
|
||||||
binfmt = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts = {
|
|
||||||
fontDir.enable = true;
|
|
||||||
packages = with pkgs; [
|
|
||||||
corefonts
|
|
||||||
inter
|
|
||||||
nerd-fonts.fira-code
|
|
||||||
noto-fonts-cjk-sans
|
|
||||||
noto-fonts-color-emoji
|
|
||||||
roboto
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.portal = {
|
|
||||||
extraPortals = with pkgs; [
|
|
||||||
xdg-desktop-portal-gnome
|
|
||||||
xdg-desktop-portal-gtk
|
|
||||||
];
|
|
||||||
config.common.default = "*";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
homeManager.desktop =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [ inputs.vicinae.homeManagerModules.default ];
|
|
||||||
|
|
||||||
fonts.fontconfig.enable = true;
|
|
||||||
|
|
||||||
home = {
|
|
||||||
packages = with pkgs; [ xwayland-satellite ];
|
|
||||||
sessionVariables.TERMINAL = "ghostty";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.vicinae = {
|
|
||||||
enable = true;
|
|
||||||
systemd = {
|
|
||||||
enable = true;
|
|
||||||
autoStart = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
ghostty = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
cursor-style = "block";
|
|
||||||
shell-integration-features = "no-cursor";
|
|
||||||
cursor-style-blink = false;
|
|
||||||
custom-shader = "${builtins.fetchurl {
|
|
||||||
url = "https://raw.githubusercontent.com/hackr-sh/ghostty-shaders/cb6eb4b0d1a3101c869c62e458b25a826f9dcde3/cursor_blaze.glsl";
|
|
||||||
sha256 = "sha256:0g2lgqjdrn3c51glry7x2z30y7ml0y61arl5ykmf4yj0p85s5f41";
|
|
||||||
}}";
|
|
||||||
bell-features = "";
|
|
||||||
gtk-titlebar-style = "tabs";
|
|
||||||
keybind = [ "shift+enter=text:\\x1b\\r" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
password-store = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.pass-wayland;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg = {
|
|
||||||
enable = true;
|
|
||||||
userDirs.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs = {
|
programs = {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue