nixfmt
This commit is contained in:
parent
7309074f25
commit
8f98f7d420
45 changed files with 932 additions and 723 deletions
|
|
@ -4,289 +4,304 @@
|
|||
}:
|
||||
{
|
||||
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
|
||||
nixos.desktop-desktop =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
inputs.niri-flake.nixosModules.niri
|
||||
inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||
];
|
||||
};
|
||||
|
||||
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";
|
||||
};
|
||||
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
|
||||
};
|
||||
};
|
||||
flatpak = {
|
||||
enable = true;
|
||||
packages = [
|
||||
systemPackages = with pkgs; [
|
||||
### Web ###
|
||||
bitwarden-desktop
|
||||
fragments
|
||||
nextcloud-client
|
||||
tor-browser
|
||||
vesktop
|
||||
inputs.zen-browser.packages."${system}".default
|
||||
### Office & Productivity ###
|
||||
"com.collabora.Office"
|
||||
aspell
|
||||
aspellDicts.de
|
||||
aspellDicts.en
|
||||
aspellDicts.en-computers
|
||||
aspellDicts.pt_BR
|
||||
papers
|
||||
presenterm
|
||||
rnote
|
||||
### 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;
|
||||
}}";
|
||||
}
|
||||
gimp
|
||||
inkscape
|
||||
plasticity
|
||||
### 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"
|
||||
adwaita-icon-theme
|
||||
ghostty
|
||||
gnome-disk-utility
|
||||
junction
|
||||
libfido2
|
||||
mission-center
|
||||
nautilus
|
||||
p7zip
|
||||
rclone
|
||||
toggleaudiosink
|
||||
unrar
|
||||
### Media ###
|
||||
decibels
|
||||
loupe
|
||||
obs-studio
|
||||
showtime
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
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;
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
||||
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" ];
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
||||
password-store = {
|
||||
enable = true;
|
||||
package = pkgs.pass-wayland;
|
||||
};
|
||||
};
|
||||
niri-flake.cache.enable = false;
|
||||
|
||||
xdg = {
|
||||
enable = true;
|
||||
userDirs.enable = true;
|
||||
mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"text/html" = [
|
||||
"re.sonny.Junction.desktop"
|
||||
"zen-browser.desktop"
|
||||
"torbrowser.desktop"
|
||||
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"
|
||||
];
|
||||
"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";
|
||||
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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue