Compare commits
9 Commits
2c0ae15417
...
c3c61ce654
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c3c61ce654 | ||
![]() |
626d78f088 | ||
![]() |
bcd5606107 | ||
![]() |
f8fbb52607 | ||
![]() |
2b0bdb0248 | ||
![]() |
f0403330e2 | ||
![]() |
e10079e578 | ||
![]() |
2a8fcf627b | ||
![]() |
3d54536168 |
108
flake.lock
generated
108
flake.lock
generated
@ -5,11 +5,11 @@
|
||||
"fromYaml": "fromYaml"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1732200724,
|
||||
"narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=",
|
||||
"lastModified": 1745523430,
|
||||
"narHash": "sha256-EAYWV+kXbwsH+8G/8UtmcunDeKwLwSOyfcmzZUkWE/c=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"rev": "153d52373b0fb2d343592871009a286ec8837aec",
|
||||
"rev": "58bfe2553d937d8af0564f79d5b950afbef69717",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -70,11 +70,11 @@
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1743774811,
|
||||
"narHash": "sha256-oiHLDHXq7ymsMVYSg92dD1OLnKLQoU/Gf2F1GoONLCE=",
|
||||
"lastModified": 1744642301,
|
||||
"narHash": "sha256-5A6LL7T0lttn1vrKsNOKUk9V0ittdW0VEqh6AtefxJ4=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "df53a7a31872faf5ca53dd0730038a62ec63ca9e",
|
||||
"rev": "59e3de00f01e5adb851d824cf7911bd90c31083a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -339,11 +339,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745340124,
|
||||
"narHash": "sha256-zQTOl/JPGjiAQoU1yraCGfPBg7yr4nlHNdbZy8Ebrl4=",
|
||||
"lastModified": 1746040799,
|
||||
"narHash": "sha256-osgPX/SzIpkR50vev/rqoTEAVkEcOWXoQXmbzsaI4KU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "c9433ae62fbb4bd09609e242569edc3b551e21a9",
|
||||
"rev": "5f217e5a319f6c186283b530f8c975e66c028433",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -360,11 +360,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745198506,
|
||||
"narHash": "sha256-0hVbHuqAnZUnnGaBTqNes0P0kfH+KKyup2boWDST0iI=",
|
||||
"lastModified": 1746040799,
|
||||
"narHash": "sha256-osgPX/SzIpkR50vev/rqoTEAVkEcOWXoQXmbzsaI4KU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "b0cc092405da805da6fa964f5a178343658ceaf0",
|
||||
"rev": "5f217e5a319f6c186283b530f8c975e66c028433",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -409,11 +409,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745161329,
|
||||
"narHash": "sha256-OEx+1ceH7bONZhxZv+CjoE9CXElL2raz2Zb/9iabWuE=",
|
||||
"lastModified": 1746111721,
|
||||
"narHash": "sha256-Jsn01TrHUZuo2IzeRkcnty+ftBcnHkbtv9NmLwdV9zk=",
|
||||
"owner": "doronbehar",
|
||||
"repo": "nix-matlab",
|
||||
"rev": "751b9ca566a57ad297987937e7873365a034788c",
|
||||
"rev": "07739cc347be4fda69deab66eea68b030e918e89",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
@ -430,11 +430,11 @@
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745320144,
|
||||
"narHash": "sha256-Rbw+E3Na694sTPjNSRFHtT1o31eQXO3OLEzM+25kcME=",
|
||||
"lastModified": 1746109800,
|
||||
"narHash": "sha256-sjDpqdvbQaiA6OAsgLE4niz6hmmCpoUH0cl5zyfu6FI=",
|
||||
"owner": "lilyinstarlight",
|
||||
"repo": "nixos-cosmic",
|
||||
"rev": "84d7c1002734f21f150c641da095c5ce43f1cb98",
|
||||
"rev": "9fe1aa7b6a1043003b38f36626dd29b52247d720",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -445,11 +445,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1744932701,
|
||||
"narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=",
|
||||
"lastModified": 1745930157,
|
||||
"narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef",
|
||||
"rev": "46e634be05ce9dc6d4db8e664515ba10b78151ae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -461,11 +461,11 @@
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1744440957,
|
||||
"narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=",
|
||||
"lastModified": 1746055187,
|
||||
"narHash": "sha256-3dqArYSMP9hM7Qpy5YWhnSjiqniSaT2uc5h2Po7tmg0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d",
|
||||
"rev": "3e362ce63e16b9572d8c2297c04f7c19ab6725a5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -477,11 +477,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1744868846,
|
||||
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
|
||||
"lastModified": 1746061036,
|
||||
"narHash": "sha256-OxYwCGJf9VJ2KnUO+w/hVJVTjOgscdDg/lPv8Eus07Y=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c",
|
||||
"rev": "3afd19146cac33ed242fc0fc87481c67c758a59e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -493,11 +493,11 @@
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1744868846,
|
||||
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
|
||||
"lastModified": 1746061036,
|
||||
"narHash": "sha256-OxYwCGJf9VJ2KnUO+w/hVJVTjOgscdDg/lPv8Eus07Y=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c",
|
||||
"rev": "3afd19146cac33ed242fc0fc87481c67c758a59e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -509,11 +509,11 @@
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1743583204,
|
||||
"narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=",
|
||||
"lastModified": 1745930157,
|
||||
"narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434",
|
||||
"rev": "46e634be05ce9dc6d4db8e664515ba10b78151ae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -530,11 +530,11 @@
|
||||
"nuschtosSearch": "nuschtosSearch"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745324162,
|
||||
"narHash": "sha256-Sjb/LvtWpPtSXacjJCTrLAmWtXNJd0SWxO3PzTvD7Tc=",
|
||||
"lastModified": 1746101723,
|
||||
"narHash": "sha256-loxT2bAglD3w8XDx+7huMXQHbg07yHHHCNiCiVWneqI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "60638182b8d1b0fe13631d02eafaf8903499ee60",
|
||||
"rev": "c91753bbe57781e08226829b9e354facd50caf1b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -552,11 +552,11 @@
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745342999,
|
||||
"narHash": "sha256-50TqkAv1ma3zI8TwekiVOdxBD+fyJsEeBHRgQtmSktk=",
|
||||
"lastModified": 1746118004,
|
||||
"narHash": "sha256-E5WQwA602g5qMnZDmgV7EqDAwyg4PqnoeMJAkDD1yak=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "71cefa751b886862229c679aab1c2b0fab837052",
|
||||
"rev": "9a4aaf927694321aeedfec791dfcc7850f8503cd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -575,11 +575,11 @@
|
||||
"treefmt-nix": "treefmt-nix_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743884191,
|
||||
"narHash": "sha256-foVcginhVvjg8ZnTzY5wwMeZ4wjJ8yX66PW5kgyivPE=",
|
||||
"lastModified": 1746056780,
|
||||
"narHash": "sha256-/emueQGaoT4vu0QjU9LDOG5roxRSfdY0K2KkxuzazcM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "fde90f5f52e13eed110a0e53a2818a2b09e4d37c",
|
||||
"rev": "d476cd0972dd6242d76374fcc277e6735715c167",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -631,11 +631,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745289264,
|
||||
"narHash": "sha256-7nt+UJ7qaIUe2J7BdnEEph9n2eKEwxUwKS/QIr091uA=",
|
||||
"lastModified": 1746067100,
|
||||
"narHash": "sha256-6JeEbboDvRjLwB9kzCnmWj+f+ZnMtKOe5c2F1VBpaTs=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "3b7171858c20d5293360042936058fb0c4cb93a9",
|
||||
"rev": "026e8fedefd6b167d92ed04b195c658d95ffc7a5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -666,11 +666,11 @@
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745332124,
|
||||
"narHash": "sha256-2lRWKSUlKTsfqLhyxXsxKcoPQG5tFQ3GbTne8/vVCQY=",
|
||||
"lastModified": 1746111784,
|
||||
"narHash": "sha256-94MEscICizhXBJvP5o6f9lcY2vWXTSg1XKZZbS19Yso=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "375b1de2424aac1338ee6e8b4ef15976b64b0462",
|
||||
"rev": "716e6669a9840e4ba0d8deb6ab1d016ef01c475a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -761,11 +761,11 @@
|
||||
"tinted-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1742851696,
|
||||
"narHash": "sha256-sR4K+OVFKeUOvNIqcCr5Br7NLxOBEwoAgsIyjsZmb8s=",
|
||||
"lastModified": 1744974599,
|
||||
"narHash": "sha256-Fg+rdGs5FAgfkYNCs74lnl8vkQmiZVdBsziyPhVqrlY=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "c37771c4ae8ff1667e27ddcf24991ebeb94a4e77",
|
||||
"rev": "28c26a621123ad4ebd5bbfb34ab39421c0144bdd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -777,11 +777,11 @@
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1743296873,
|
||||
"narHash": "sha256-8IQulrb1OBSxMwdKijO9fB70ON//V32dpK9Uioy7FzY=",
|
||||
"lastModified": 1745111349,
|
||||
"narHash": "sha256-udV+nHdpqgkJI9D0mtvvAzbqubt9jdifS/KhTTbJ45w=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "af5152c8d7546dfb4ff6df94080bf5ff54f64e3a",
|
||||
"rev": "e009f18a01182b63559fb28f1c786eb027c3dee9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -71,6 +71,10 @@
|
||||
sudo = true;
|
||||
configuration = ./users/jan.nix;
|
||||
};
|
||||
berg-van-abstractie = {
|
||||
sudo = false;
|
||||
configuration = ./users/comp-prog.nix;
|
||||
};
|
||||
};
|
||||
"vm-audio" = mkConfig "x86_64-linux" ./machines/vm-audio.nix {
|
||||
local = {
|
||||
|
@ -185,7 +185,6 @@
|
||||
DiscoverableTimeout = 0;
|
||||
AlwaysPairable = true;
|
||||
PairableTimeout = 0;
|
||||
ControllerMode = "bredr";
|
||||
FastConnectable = true;
|
||||
JustWorksRepairing = "always";
|
||||
};
|
||||
|
@ -58,7 +58,7 @@ in
|
||||
programs.dconf.enable = true;
|
||||
services.libinput.enable = true;
|
||||
networking.firewall = {
|
||||
enable = mkForce false;
|
||||
enable = true;
|
||||
logRefusedConnections = true;
|
||||
logRefusedPackets = true;
|
||||
logReversePathDrops = true;
|
||||
@ -84,6 +84,7 @@ in
|
||||
}
|
||||
];
|
||||
security.rtkit.enable = true;
|
||||
security.polkit.enable = true;
|
||||
|
||||
# TODO: Move to USB module
|
||||
# services.gvfs.enable = true;
|
||||
|
@ -1,4 +1,9 @@
|
||||
{ config, lib, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
{
|
||||
@ -8,11 +13,29 @@ with lib;
|
||||
|
||||
config = mkIf config.modules.grdp.enable {
|
||||
services.gnome.gnome-remote-desktop.enable = true;
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnome-remote-desktop
|
||||
gnome-control-center
|
||||
gnome-session
|
||||
gnome-shell
|
||||
gnome-settings-daemon
|
||||
gdm
|
||||
];
|
||||
systemd.services."gnome-remote-desktop".wantedBy = [ "graphical.target" ];
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [ 3389 ];
|
||||
allowedUDPPorts = [ 3389 ];
|
||||
};
|
||||
services.xserver.displayManager.gdm.enable = true;
|
||||
modules.greetd.enable = mkForce false;
|
||||
|
||||
# security.polkit.extraConfig = ''
|
||||
# polkit.addRule(function(action, subject) {
|
||||
# if (action.id == "org.gnome.controlcenter.remote-session-helper" &&
|
||||
# subject.isInGroup("wheel")) {
|
||||
# return polkit.Result.YES;
|
||||
# }
|
||||
# });'';
|
||||
# programs.dconf.profiles.user.databases = [
|
||||
# {
|
||||
# settings = with lib.gvariant; {
|
||||
|
@ -54,8 +54,7 @@ in
|
||||
|
||||
# Theming
|
||||
userChrome = readFile (
|
||||
pkgs.substituteAll {
|
||||
src = ./userChrome.css;
|
||||
pkgs.replaceVars ./userChrome.css {
|
||||
colors = config.desktop.theming.colorsCSS;
|
||||
}
|
||||
);
|
||||
|
@ -11,26 +11,30 @@ let
|
||||
in
|
||||
{
|
||||
options.desktop.theming.background = {
|
||||
path = mkOption {
|
||||
type = types.str;
|
||||
default = "minimal/a_flower_on_a_dark_background.png";
|
||||
description = "Path to the background image.";
|
||||
};
|
||||
themed = mkEnableOption "themed background";
|
||||
invert = mkEnableOption "invert background";
|
||||
src = mkOption {
|
||||
default = pkgs.fetchFromGitHub {
|
||||
owner = "dharmx";
|
||||
repo = "walls";
|
||||
rev = "6bf4d733ebf2b484a37c17d742eb47e5139e6a14";
|
||||
sha256 = "sha256-M96jJy3L0a+VkJ+DcbtrRAquwDWaIG9hAUxenr/TcQU=";
|
||||
image = {
|
||||
url = mkOption {
|
||||
type = types.str;
|
||||
default = "https://raw.githubusercontent.com/dharmx/walls/refs/heads/main/digital/a_drawing_of_a_spider_on_a_white_surface.png";
|
||||
description = "URL to the background image.";
|
||||
};
|
||||
hash = mkOption {
|
||||
type = types.str;
|
||||
default = "sha256-eCEjM7R9yeHNhZZtvHjrgkfwT25JA7FeMoVwnQ887CQ=";
|
||||
description = "SHA256 hash of the background image.";
|
||||
};
|
||||
};
|
||||
themed = mkEnableOption "themed background";
|
||||
inverted = mkEnableOption "invert background";
|
||||
};
|
||||
|
||||
config =
|
||||
with pkgs;
|
||||
let
|
||||
src = pkgs.fetchurl {
|
||||
url = cfg.image.url;
|
||||
hash = cfg.image.hash;
|
||||
};
|
||||
|
||||
theme = writeTextFile {
|
||||
name = "gowall-theme";
|
||||
text = builtins.toJSON {
|
||||
@ -61,45 +65,56 @@ in
|
||||
executable = true;
|
||||
};
|
||||
|
||||
fileExtension =
|
||||
name:
|
||||
let
|
||||
parts = splitString "." name;
|
||||
in
|
||||
if length parts > 1 then lists.last parts else "";
|
||||
|
||||
fileName =
|
||||
name:
|
||||
let
|
||||
parts = splitString "/" name;
|
||||
in
|
||||
if length parts > 1 then lists.last parts else name;
|
||||
|
||||
image = fileName cfg.image.url;
|
||||
|
||||
background-themed = stdenv.mkDerivation {
|
||||
name = "background-themed-1.0.0";
|
||||
src = cfg.src;
|
||||
src = src;
|
||||
|
||||
buildInputs = [
|
||||
gowall
|
||||
imagemagick
|
||||
(writeShellScriptBin "xdg-open" "")
|
||||
tree
|
||||
];
|
||||
|
||||
buildPhase =
|
||||
if cfg.themed then
|
||||
if cfg.invert then
|
||||
''
|
||||
cp ${theme} ./theme.json
|
||||
unpackPhase = ''
|
||||
cp ${src} ./${image}
|
||||
chmod u+w ./${image}
|
||||
'';
|
||||
|
||||
export HOME=$PWD
|
||||
convert ./${cfg.path} -channel RGB -negate ./${cfg.path}
|
||||
buildPhase = ''
|
||||
${optionalString cfg.inverted ''
|
||||
convert ./${image} -channel RGB -negate ./${image}
|
||||
''}
|
||||
${optionalString cfg.themed ''
|
||||
cp ${theme} ./theme.json
|
||||
|
||||
gowall convert ./${cfg.path} -o themed -t ./theme.json
|
||||
mv Pictures/gowall/themed.* ./
|
||||
mogrify -format png themed.*
|
||||
''
|
||||
else
|
||||
''
|
||||
cp ${theme} ./theme.json
|
||||
export HOME=$PWD
|
||||
|
||||
export HOME=$PWD
|
||||
|
||||
gowall convert ./${cfg.path} -o themed -t ./theme.json
|
||||
mv Pictures/gowall/themed.* ./
|
||||
mogrify -format png themed.*
|
||||
''
|
||||
else
|
||||
''
|
||||
cp ${cfg.path} ./themed
|
||||
|
||||
mogrify -format png themed
|
||||
'';
|
||||
gowall convert ./${image} --output themed -t ./theme.json
|
||||
tree
|
||||
mv ./themed/*.* ./
|
||||
''}
|
||||
mv ./${image} themed.${fileExtension image}
|
||||
${optionalString (fileExtension image != "png") ''
|
||||
mogrify -format png themed.*
|
||||
''}
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -Dm644 -t $out themed.png
|
||||
|
@ -110,8 +110,11 @@ in
|
||||
# Configure qt theme
|
||||
qt = mkIf config.desktop.enable {
|
||||
enable = true;
|
||||
platformTheme.name = "adwaita";
|
||||
style.name = if cfg.darkMode then "adwaita-dark" else "adwaita-light";
|
||||
platformTheme.name = "gtk";
|
||||
style = {
|
||||
name = if cfg.darkMode then "adwaita-dark" else "adwaita-light";
|
||||
package = pkgs.adwaita-qt;
|
||||
};
|
||||
};
|
||||
|
||||
# Configure gtk theme
|
||||
|
@ -35,6 +35,8 @@ let
|
||||
|
||||
fontModules = [
|
||||
# Import all fonts
|
||||
./fonts/adwaita-mono.nix
|
||||
./fonts/adwaita-sans.nix
|
||||
./fonts/cozette-vector.nix
|
||||
./fonts/cozette.nix
|
||||
./fonts/dejavu-sans.nix
|
||||
@ -190,8 +192,8 @@ in
|
||||
{
|
||||
enable = true;
|
||||
# TODO: Toggles
|
||||
gtk3.extraCss = disableCSD;
|
||||
gtk4.extraCss = disableCSD;
|
||||
gtk3.extraCss = mkIf config.modules.river.enable disableCSD;
|
||||
gtk4.extraCss = mkIf config.modules.river.enable disableCSD;
|
||||
};
|
||||
|
||||
# TODO: Make cursors configurable using modules.
|
||||
|
8
user-modules/desktop/theming/fonts/adwaita-mono.nix
Normal file
8
user-modules/desktop/theming/fonts/adwaita-mono.nix
Normal file
@ -0,0 +1,8 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
name = "Adwaita Mono";
|
||||
package = pkgs.adwaita-fonts;
|
||||
recommendedSize = 12;
|
||||
fallbackFonts = [ ];
|
||||
}
|
8
user-modules/desktop/theming/fonts/adwaita-sans.nix
Normal file
8
user-modules/desktop/theming/fonts/adwaita-sans.nix
Normal file
@ -0,0 +1,8 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
name = "Adwaita Sans";
|
||||
package = pkgs.adwaita-fonts;
|
||||
recommendedSize = 12;
|
||||
fallbackFonts = [ ];
|
||||
}
|
@ -11,7 +11,7 @@ let
|
||||
|
||||
my-mathematica = pkgs.mathematica.override {
|
||||
# TODO: Just use a generic name for the installer?
|
||||
source = ./Wolfram_14.1.0_LIN_Bndl.sh;
|
||||
# source = ./Wolfram_14.2.1_LIN_Bndl.sh;
|
||||
};
|
||||
in
|
||||
{
|
||||
|
@ -15,5 +15,11 @@ in
|
||||
config = mkIf cfg.enable {
|
||||
# TODO: Move to audioling
|
||||
home.packages = with pkgs; [ feishin ];
|
||||
|
||||
# TODO: Remove exception once no longer required by feishin
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"electron-33.4.11"
|
||||
"freeimage-3.18.0-unstable-2024-04-18"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ in
|
||||
listchars = "tab:»┈«,trail:·,extends:→,precedes:←,nbsp:␣";
|
||||
};
|
||||
|
||||
diagnostics = {
|
||||
diagnostic.settings = {
|
||||
enable = true;
|
||||
signs = true;
|
||||
underline = true;
|
||||
|
172
users/comp-prog.nix
Normal file
172
users/comp-prog.nix
Normal file
@ -0,0 +1,172 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
home.stateVersion = "24.11";
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# Desktop environment
|
||||
firefox
|
||||
gnome-text-editor
|
||||
gnome-calculator
|
||||
gnome-console
|
||||
gnome-logs
|
||||
gnome-system-monitor
|
||||
nautilus
|
||||
adwaita-icon-theme
|
||||
gnome-control-center
|
||||
gnome-shell-extensions
|
||||
glib
|
||||
gnome-menus
|
||||
gtk3.out
|
||||
xdg-user-dirs
|
||||
xdg-user-dirs-gtk
|
||||
cantarell-fonts
|
||||
dejavu_fonts
|
||||
source-code-pro
|
||||
source-sans
|
||||
gnome-session
|
||||
adwaita-fonts
|
||||
|
||||
# Coding tools
|
||||
vim-full
|
||||
nano
|
||||
neovim
|
||||
emacs
|
||||
gedit
|
||||
geany
|
||||
kdePackages.kate
|
||||
vscode
|
||||
python310
|
||||
jdk17
|
||||
gcc
|
||||
lldb
|
||||
pypy310
|
||||
|
||||
# Runners
|
||||
(writeShellScriptBin "mygcc" "gcc -std=gnu17 -x c -Wall -O2 -static -pipe -o $1 \"$1.c\" -lm")
|
||||
(writeShellScriptBin "mygpp" "g++ -std=gnu++20 -x c++ -Wall -O2 -static -pipe -o $1 \"$1.cpp\" -lm")
|
||||
(writeShellScriptBin "mypython" "pypy3 $@")
|
||||
(writeShellScriptBin "myjavac" "javac -encoding UTF-8 -sourcepath . -d . $@")
|
||||
(writeShellScriptBin "mykotlinc" "kotlinc -d . $@")
|
||||
];
|
||||
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
mutableExtensionsDir = false;
|
||||
profiles.default = {
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
ms-vscode.cpptools
|
||||
ms-dotnettools.csharp
|
||||
formulahendry.code-runner
|
||||
vscjava.vscode-java-debug
|
||||
dbaeumer.vscode-eslint
|
||||
redhat.java
|
||||
ms-python.python
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
profiles.default = {
|
||||
settings = {
|
||||
"browser.startup.homepage" = "https://domjudge.bulthuis.dev";
|
||||
};
|
||||
bookmarks = {
|
||||
force = true;
|
||||
settings = [
|
||||
{
|
||||
name = "Sites";
|
||||
toolbar = true;
|
||||
bookmarks = [
|
||||
{
|
||||
name = "C Reference";
|
||||
url = "https://en.cppreference.com/w/c";
|
||||
}
|
||||
{
|
||||
name = "C++ Reference";
|
||||
url = "https://en.cppreference.com/w/cpp";
|
||||
}
|
||||
{
|
||||
name = "Python 3.10 documentation";
|
||||
url = "https://docs.python.org/3.10/download.html";
|
||||
}
|
||||
{
|
||||
name = "Java 17 API Specification";
|
||||
url = "https://docs.oracle.com/en/java/javase/17/docs/api/";
|
||||
}
|
||||
{
|
||||
name = "Kotlin Language Documentation";
|
||||
url = "https://kotlinlang.org/docs/kotlin-reference.pdf";
|
||||
}
|
||||
{
|
||||
name = "DOMjudge Team Manual";
|
||||
url = "https://www.domjudge.org/docs/manual/main/index.html";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
modules = {
|
||||
unfree = {
|
||||
enable = true;
|
||||
allowedPackages = [
|
||||
"vscode"
|
||||
"vscode-extension-ms-vscode-cpptools"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
desktop = {
|
||||
enable = true;
|
||||
name = "Gnome";
|
||||
initScript = ''
|
||||
${pkgs.gnome-session}/bin/gnome-session
|
||||
'';
|
||||
session = {
|
||||
type = "wayland";
|
||||
desktop = "GNOME";
|
||||
};
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
config.common.default = [
|
||||
"gnome"
|
||||
"gtk"
|
||||
];
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gnome
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
|
||||
# Theme configuration
|
||||
desktop.theming =
|
||||
let
|
||||
fontpkgs = config.desktop.theming.fonts.pkgs;
|
||||
in
|
||||
{
|
||||
# Fonts
|
||||
fonts.serif = fontpkgs."DejaVu Serif";
|
||||
fonts.sansSerif = fontpkgs."Adwaita Sans";
|
||||
fonts.monospace = fontpkgs."Adwaita Mono";
|
||||
fonts.emoji = fontpkgs."Noto Color Emoji";
|
||||
fonts.interface = fontpkgs."Adwaita Sans";
|
||||
fonts.extraFonts = [ ];
|
||||
|
||||
# Color scheme
|
||||
# themes.catppuccin = {
|
||||
# enable = true;
|
||||
# flavor = "mocha";
|
||||
# };
|
||||
};
|
||||
}
|
748
users/jan.nix
748
users/jan.nix
@ -8,409 +8,399 @@
|
||||
}:
|
||||
|
||||
{
|
||||
config = {
|
||||
# State version
|
||||
home.stateVersion = "24.05";
|
||||
config = (
|
||||
lib.recursiveUpdate
|
||||
{
|
||||
# State version
|
||||
home.stateVersion = "24.05";
|
||||
|
||||
# TODO: Move into modules
|
||||
home.packages = with pkgs; [
|
||||
libreoffice-still
|
||||
remmina
|
||||
pinentry
|
||||
thunderbird
|
||||
signal-desktop
|
||||
prusa-slicer
|
||||
freecad-wayland
|
||||
inkscape
|
||||
ente-auth
|
||||
bitwarden
|
||||
carla
|
||||
];
|
||||
# TODO: Move into modules
|
||||
home.packages = with pkgs; [
|
||||
libreoffice-still
|
||||
remmina
|
||||
pinentry
|
||||
thunderbird
|
||||
signal-desktop
|
||||
prusa-slicer
|
||||
freecad-wayland
|
||||
inkscape
|
||||
ente-auth
|
||||
bitwarden
|
||||
carla
|
||||
baobab
|
||||
gnome-calculator
|
||||
nautilus
|
||||
];
|
||||
|
||||
# desktop.development = "river-light";
|
||||
desktop.enable = true;
|
||||
desktop.environments = {
|
||||
river-dark = {
|
||||
name = "River Dark";
|
||||
type = "custom";
|
||||
config = { };
|
||||
extraConfig = {
|
||||
modules = {
|
||||
# Desktop environment
|
||||
river.enable = true;
|
||||
waylock.enable = true;
|
||||
waybar.enable = true;
|
||||
mako.enable = true;
|
||||
foot.enable = true;
|
||||
rofi-rbw.enable = true;
|
||||
};
|
||||
# desktop.development = "river-light";
|
||||
desktop.enable = true;
|
||||
desktop.environments = {
|
||||
river-dark = {
|
||||
name = "River Dark";
|
||||
type = "custom";
|
||||
config = { };
|
||||
extraConfig = {
|
||||
modules = {
|
||||
# Desktop environment
|
||||
river.enable = true;
|
||||
waylock.enable = true;
|
||||
waybar.enable = true;
|
||||
mako.enable = true;
|
||||
foot.enable = true;
|
||||
rofi-rbw.enable = true;
|
||||
};
|
||||
|
||||
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
|
||||
config.common.default = [
|
||||
"wlr"
|
||||
"gtk"
|
||||
];
|
||||
config.common.default = [
|
||||
"wlr"
|
||||
"gtk"
|
||||
];
|
||||
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-wlr
|
||||
];
|
||||
};
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-wlr
|
||||
];
|
||||
};
|
||||
|
||||
# Color scheme
|
||||
desktop.theming.background = {
|
||||
# path = "unsorted/a_group_of_mountains_with_a_building_in_the_background.jpg";
|
||||
path = "anime/a_colorful_buildings_with_power_lines.jpg";
|
||||
themed = true;
|
||||
invert = false;
|
||||
};
|
||||
desktop.theming.themes.catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
};
|
||||
};
|
||||
};
|
||||
river-light = {
|
||||
name = "River Light";
|
||||
type = "custom";
|
||||
config = { };
|
||||
extraConfig = {
|
||||
modules = {
|
||||
# Desktop environment
|
||||
river.enable = true;
|
||||
waylock.enable = true;
|
||||
waybar.enable = true;
|
||||
mako.enable = true;
|
||||
foot.enable = true;
|
||||
rofi-rbw.enable = true;
|
||||
};
|
||||
|
||||
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
|
||||
config.common.default = [
|
||||
"wlr"
|
||||
"gtk"
|
||||
];
|
||||
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-wlr
|
||||
];
|
||||
};
|
||||
|
||||
# Color scheme
|
||||
desktop.theming.background = {
|
||||
# path = "unsorted/a_group_of_mountains_with_a_building_in_the_background.jpg";
|
||||
path = "anime/a_cartoon_of_a_street_with_buildings.jpeg";
|
||||
themed = true;
|
||||
invert = false;
|
||||
};
|
||||
desktop.theming.themes.catppuccin = {
|
||||
enable = true;
|
||||
flavor = lib.mkForce "latte";
|
||||
};
|
||||
};
|
||||
};
|
||||
# cosmic = {
|
||||
# name = "Cosmic";
|
||||
# type = "custom";
|
||||
# config = { };
|
||||
# extraConfig = {
|
||||
# desktop = {
|
||||
# initScript = ''
|
||||
# ${pkgs.cosmic-session}/bin/cosmic-session
|
||||
# '';
|
||||
# session = {
|
||||
# type = "wayland";
|
||||
# desktop = "cosmic";
|
||||
# };
|
||||
# };
|
||||
# # TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
||||
# xdg.portal = {
|
||||
# enable = true;
|
||||
|
||||
# config.common.default = [
|
||||
# "cosmic"
|
||||
# "gtk"
|
||||
# ];
|
||||
|
||||
# extraPortals = with pkgs; [
|
||||
# xdg-desktop-portal-cosmic
|
||||
# xdg-desktop-portal-gtk
|
||||
# ];
|
||||
|
||||
# configPackages = lib.mkDefault (with pkgs; [ xdg-desktop-portal-cosmic ]);
|
||||
# };
|
||||
# home.packages = with pkgs; [
|
||||
# adwaita-icon-theme
|
||||
# alsa-utils
|
||||
# cosmic-applets
|
||||
# cosmic-applibrary
|
||||
# cosmic-bg
|
||||
# (cosmic-comp.override {
|
||||
# useXWayland = false;
|
||||
# })
|
||||
# cosmic-edit
|
||||
# cosmic-files
|
||||
# cosmic-greeter
|
||||
# cosmic-icons
|
||||
# cosmic-idle
|
||||
# cosmic-launcher
|
||||
# cosmic-notifications
|
||||
# cosmic-osd
|
||||
# cosmic-panel
|
||||
# cosmic-player
|
||||
# cosmic-randr
|
||||
# cosmic-screenshot
|
||||
# cosmic-session
|
||||
# cosmic-settings
|
||||
# cosmic-settings-daemon
|
||||
# cosmic-term
|
||||
# cosmic-wallpapers
|
||||
# cosmic-workspaces-epoch
|
||||
# hicolor-icon-theme
|
||||
# playerctl
|
||||
# pop-icon-theme
|
||||
# pop-launcher
|
||||
# xdg-user-dirs
|
||||
# xwayland
|
||||
# cosmic-store
|
||||
|
||||
# # Fonts
|
||||
# fira
|
||||
# noto-fonts
|
||||
# open-sans
|
||||
# ];
|
||||
# };
|
||||
# };
|
||||
gnome = {
|
||||
name = "Gnome";
|
||||
type = "custom";
|
||||
config = { };
|
||||
extraConfig = {
|
||||
programs = {
|
||||
gnome-shell.enable = true;
|
||||
};
|
||||
desktop = {
|
||||
initScript = ''
|
||||
${pkgs.gnome-session}/bin/gnome-session
|
||||
'';
|
||||
session = {
|
||||
type = "wayland";
|
||||
desktop = "GNOME";
|
||||
# Color scheme
|
||||
desktop.theming.background = {
|
||||
# path = "unsorted/a_group_of_mountains_with_a_building_in_the_background.jpg";
|
||||
# image = "anime/a_colorful_buildings_with_power_lines.jpg";
|
||||
image = {
|
||||
url = "https://i.postimg.cc/tTB3dM3T/1382899.png";
|
||||
hash = "sha256-kStcwAtK2vxitU6uaQtZTA5iFS8k0iXkFwinY2M8wQE=";
|
||||
};
|
||||
# image = {
|
||||
# url = "https://raw.githubusercontent.com/dharmx/walls/refs/heads/main/digital/a_couple_of_people_standing_on_a_mountain.png";
|
||||
# hash = "sha256-SgKG090iSxwOPCGH/2ODPbwe275Zi5k0+d5Hso0mN7c=";
|
||||
# };
|
||||
themed = true;
|
||||
inverted = false;
|
||||
};
|
||||
desktop.theming.themes.catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
};
|
||||
};
|
||||
};
|
||||
river-light = {
|
||||
name = "River Light";
|
||||
type = "custom";
|
||||
config = { };
|
||||
extraConfig = {
|
||||
modules = {
|
||||
# Desktop environment
|
||||
river.enable = true;
|
||||
waylock.enable = true;
|
||||
waybar.enable = true;
|
||||
mako.enable = true;
|
||||
foot.enable = true;
|
||||
rofi-rbw.enable = true;
|
||||
};
|
||||
|
||||
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
||||
xdg.portal = {
|
||||
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
|
||||
config.common.default = [
|
||||
"wlr"
|
||||
"gtk"
|
||||
];
|
||||
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-wlr
|
||||
];
|
||||
};
|
||||
|
||||
# Color scheme
|
||||
desktop.theming.background = {
|
||||
# path = "unsorted/a_group_of_mountains_with_a_building_in_the_background.jpg";
|
||||
# image = "anime/a_cartoon_of_a_street_with_buildings.jpeg";
|
||||
image = {
|
||||
url = "https://raw.githubusercontent.com/dharmx/walls/refs/heads/main/digital/a_drawing_of_a_spider_on_a_white_surface.png";
|
||||
hash = "sha256-eCEjM7R9yeHNhZZtvHjrgkfwT25JA7FeMoVwnQ887CQ=";
|
||||
};
|
||||
themed = true;
|
||||
inverted = false;
|
||||
};
|
||||
desktop.theming.themes.catppuccin = {
|
||||
enable = true;
|
||||
flavor = lib.mkForce "latte";
|
||||
};
|
||||
};
|
||||
};
|
||||
gnome = {
|
||||
name = "Gnome";
|
||||
type = "custom";
|
||||
config = { };
|
||||
extraConfig = {
|
||||
programs = {
|
||||
gnome-shell.enable = true;
|
||||
};
|
||||
desktop = {
|
||||
initScript = ''
|
||||
${pkgs.gnome-session}/bin/gnome-session
|
||||
'';
|
||||
session = {
|
||||
type = "wayland";
|
||||
desktop = "GNOME";
|
||||
};
|
||||
};
|
||||
modules.river.enable = lib.mkForce false;
|
||||
# # Theme configuration
|
||||
# desktop.theming =
|
||||
# let
|
||||
# fontpkgs = config.desktop.theming.fonts.pkgs;
|
||||
# in
|
||||
# {
|
||||
# # Fonts
|
||||
# fonts.serif = fontpkgs."DejaVu Serif";
|
||||
# fonts.sansSerif = fontpkgs."Adwaita Sans";
|
||||
# fonts.monospace = fontpkgs."Adwaita Mono";
|
||||
# fonts.emoji = fontpkgs."Noto Color Emoji";
|
||||
# fonts.interface = fontpkgs."Adwaita Sans";
|
||||
# fonts.extraFonts = [ ];
|
||||
|
||||
# # Color scheme
|
||||
# themes.catppuccin = {
|
||||
# enable = true;
|
||||
# flavor = "mocha";
|
||||
# };
|
||||
# };
|
||||
|
||||
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
|
||||
config.common.default = [
|
||||
"gnome"
|
||||
"gtk"
|
||||
];
|
||||
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gnome
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
home.packages = [
|
||||
# Core utilities
|
||||
pkgs.epiphany
|
||||
pkgs.gnome-text-editor
|
||||
pkgs.gnome-calendar
|
||||
pkgs.gnome-characters
|
||||
pkgs.gnome-clocks
|
||||
pkgs.gnome-console
|
||||
pkgs.gnome-contacts
|
||||
pkgs.gnome-font-viewer
|
||||
pkgs.gnome-logs
|
||||
pkgs.gnome-maps
|
||||
pkgs.gnome-music
|
||||
pkgs.gnome-system-monitor
|
||||
pkgs.gnome-weather
|
||||
pkgs.loupe
|
||||
pkgs.gnome-connections
|
||||
pkgs.simple-scan
|
||||
pkgs.snapshot
|
||||
pkgs.totem
|
||||
pkgs.yelp
|
||||
|
||||
# Optional packages
|
||||
pkgs.adwaita-icon-theme
|
||||
pkgs.gnome-backgrounds
|
||||
pkgs.gnome-bluetooth
|
||||
pkgs.gnome-color-manager
|
||||
pkgs.gnome-control-center
|
||||
pkgs.gnome-shell-extensions
|
||||
pkgs.gnome-tour # GNOME Shell detects the .desktop file on first log-in.
|
||||
pkgs.gnome-user-docs
|
||||
pkgs.glib # for gsettings program
|
||||
pkgs.gnome-menus
|
||||
pkgs.gtk3.out # for gtk-launch program
|
||||
pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
|
||||
pkgs.xdg-user-dirs-gtk # Used to create the default bookmarks
|
||||
|
||||
# Fonts
|
||||
pkgs.cantarell-fonts
|
||||
pkgs.dejavu_fonts
|
||||
pkgs.source-code-pro # Default monospace font in 3.32
|
||||
pkgs.source-sans
|
||||
|
||||
# Other stuff
|
||||
pkgs.gnome-session
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Pipewire roc sink
|
||||
xdg.configFile."pipewire/pipewire.conf.d/60-roc-sink.conf" = {
|
||||
text = ''
|
||||
context.modules = [
|
||||
{
|
||||
name = "libpipewire-module-roc-sink"
|
||||
args = {
|
||||
fec.code = "rs8m"
|
||||
remote.ip = "10.20.60.251"
|
||||
remote.source.port = 10001
|
||||
remote.repair.port = 10002
|
||||
sink.name = "Roc Sink"
|
||||
sink.props.node.name = "roc-sink"
|
||||
}
|
||||
}
|
||||
]
|
||||
'';
|
||||
};
|
||||
|
||||
# Enabled modules
|
||||
modules = {
|
||||
# Communication
|
||||
whatsapp.enable = true;
|
||||
discord.enable = true;
|
||||
|
||||
# Browser
|
||||
firefox = {
|
||||
enable = true;
|
||||
default = false;
|
||||
};
|
||||
qutebrowser = {
|
||||
enable = true;
|
||||
default = true;
|
||||
};
|
||||
|
||||
config.common.default = [
|
||||
"gnome"
|
||||
"gtk"
|
||||
];
|
||||
# Gaming
|
||||
steam.enable = true;
|
||||
# modrinth.enable = true;
|
||||
# es-de.enable = true; # TODO: Fix, again
|
||||
retroarch.enable = true;
|
||||
ryujinx.enable = true;
|
||||
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gnome
|
||||
xdg-desktop-portal-gtk
|
||||
# Media
|
||||
spotify.enable = true;
|
||||
feishin.enable = true;
|
||||
|
||||
# Tools
|
||||
git = {
|
||||
enable = true;
|
||||
user = "Jan-Bulthuis";
|
||||
email = "git@bulthuis.dev";
|
||||
# TODO: Move
|
||||
ignores = [
|
||||
".envrc"
|
||||
".direnv"
|
||||
"flake.nix"
|
||||
"flake.lock"
|
||||
];
|
||||
};
|
||||
btop.enable = true;
|
||||
fish.enable = true;
|
||||
bluetuith.enable = false;
|
||||
winbox.enable = true;
|
||||
obsidian.enable = true;
|
||||
zathura.enable = true;
|
||||
eduvpn.enable = true;
|
||||
keyring.enable = true;
|
||||
scripts.enable = true;
|
||||
xpra = {
|
||||
enable = true;
|
||||
hosts = [
|
||||
"mixer@10.20.60.251"
|
||||
];
|
||||
};
|
||||
home.packages = [
|
||||
# Core utilities
|
||||
pkgs.baobab
|
||||
pkgs.epiphany
|
||||
pkgs.gnome-text-editor
|
||||
pkgs.gnome-calculator
|
||||
pkgs.gnome-calendar
|
||||
pkgs.gnome-characters
|
||||
pkgs.gnome-clocks
|
||||
pkgs.gnome-console
|
||||
pkgs.gnome-contacts
|
||||
pkgs.gnome-font-viewer
|
||||
pkgs.gnome-logs
|
||||
pkgs.gnome-maps
|
||||
pkgs.gnome-music
|
||||
pkgs.gnome-system-monitor
|
||||
pkgs.gnome-weather
|
||||
pkgs.loupe
|
||||
pkgs.nautilus
|
||||
pkgs.gnome-connections
|
||||
pkgs.simple-scan
|
||||
pkgs.snapshot
|
||||
pkgs.totem
|
||||
pkgs.yelp
|
||||
|
||||
# Optional packages
|
||||
pkgs.adwaita-icon-theme
|
||||
pkgs.gnome-backgrounds
|
||||
pkgs.gnome-bluetooth
|
||||
pkgs.gnome-color-manager
|
||||
pkgs.gnome-control-center
|
||||
pkgs.gnome-shell-extensions
|
||||
pkgs.gnome-tour # GNOME Shell detects the .desktop file on first log-in.
|
||||
pkgs.gnome-user-docs
|
||||
pkgs.glib # for gsettings program
|
||||
pkgs.gnome-menus
|
||||
pkgs.gtk3.out # for gtk-launch program
|
||||
pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
|
||||
pkgs.xdg-user-dirs-gtk # Used to create the default bookmarks
|
||||
# Development
|
||||
neovim.enable = true;
|
||||
vscode.enable = true;
|
||||
docker.enable = true;
|
||||
matlab.enable = true;
|
||||
mathematica.enable = true;
|
||||
|
||||
# Games
|
||||
pkgs.aisleriot
|
||||
pkgs.atomix
|
||||
pkgs.five-or-more
|
||||
pkgs.four-in-a-row
|
||||
pkgs.gnome-2048
|
||||
pkgs.gnome-chess
|
||||
pkgs.gnome-klotski
|
||||
pkgs.gnome-mahjongg
|
||||
pkgs.gnome-mines
|
||||
pkgs.gnome-nibbles
|
||||
pkgs.gnome-robots
|
||||
pkgs.gnome-sudoku
|
||||
pkgs.gnome-taquin
|
||||
pkgs.gnome-tetravex
|
||||
pkgs.hitori
|
||||
pkgs.iagno
|
||||
pkgs.lightsoff
|
||||
pkgs.quadrapassel
|
||||
pkgs.swell-foop
|
||||
pkgs.tali
|
||||
# Languages
|
||||
haskell.enable = false;
|
||||
js.enable = true;
|
||||
nix.enable = true;
|
||||
rust.enable = true;
|
||||
python.enable = true;
|
||||
cpp.enable = true;
|
||||
tex.enable = true;
|
||||
jupyter.enable = true;
|
||||
|
||||
# Fonts
|
||||
pkgs.cantarell-fonts
|
||||
pkgs.dejavu_fonts
|
||||
pkgs.source-code-pro # Default monospace font in 3.32
|
||||
pkgs.source-sans
|
||||
|
||||
# Other stuff
|
||||
pkgs.gnome-session
|
||||
# pkgs.gnome-session.sessions
|
||||
];
|
||||
# Enable unfree
|
||||
unfree.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Pipewire roc sink
|
||||
xdg.configFile."pipewire/pipewire.conf.d/60-roc-sink.conf" = {
|
||||
text = ''
|
||||
context.modules = [
|
||||
{
|
||||
name = "libpipewire-module-roc-sink"
|
||||
args = {
|
||||
fec.code = "rs8m"
|
||||
remote.ip = "10.20.60.251"
|
||||
remote.source.port = 10001
|
||||
remote.repair.port = 10002
|
||||
sink.name = "Roc Sink"
|
||||
sink.props.node.name = "roc-sink"
|
||||
}
|
||||
}
|
||||
]
|
||||
'';
|
||||
};
|
||||
# Theme configuration
|
||||
desktop.theming =
|
||||
let
|
||||
fontpkgs = config.desktop.theming.fonts.pkgs;
|
||||
in
|
||||
lib.mkDefault {
|
||||
# Fonts
|
||||
fonts.serif = fontpkgs."DejaVu Serif";
|
||||
fonts.sansSerif = fontpkgs."DejaVu Sans";
|
||||
fonts.monospace = fontpkgs."Dina";
|
||||
fonts.emoji = fontpkgs."Noto Color Emoji";
|
||||
fonts.interface = fontpkgs."Dina";
|
||||
fonts.extraFonts = [ ];
|
||||
|
||||
# Enabled modules
|
||||
modules = {
|
||||
# Communication
|
||||
whatsapp.enable = true;
|
||||
discord.enable = true;
|
||||
|
||||
# Browser
|
||||
firefox = {
|
||||
enable = true;
|
||||
default = false;
|
||||
};
|
||||
qutebrowser = {
|
||||
enable = true;
|
||||
default = true;
|
||||
};
|
||||
|
||||
# Gaming
|
||||
steam.enable = true;
|
||||
# modrinth.enable = true;
|
||||
# es-de.enable = true; # TODO: Fix, again
|
||||
retroarch.enable = true;
|
||||
ryujinx.enable = true;
|
||||
|
||||
# Media
|
||||
spotify.enable = true;
|
||||
feishin.enable = true;
|
||||
|
||||
# Tools
|
||||
git = {
|
||||
enable = true;
|
||||
user = "Jan-Bulthuis";
|
||||
email = "git@bulthuis.dev";
|
||||
# TODO: Move
|
||||
ignores = [
|
||||
".envrc"
|
||||
".direnv"
|
||||
"flake.nix"
|
||||
"flake.lock"
|
||||
];
|
||||
};
|
||||
btop.enable = true;
|
||||
fish.enable = true;
|
||||
bluetuith.enable = false;
|
||||
winbox.enable = true;
|
||||
obsidian.enable = true;
|
||||
zathura.enable = true;
|
||||
eduvpn.enable = true;
|
||||
keyring.enable = true;
|
||||
scripts.enable = true;
|
||||
xpra = {
|
||||
enable = true;
|
||||
hosts = [
|
||||
"mixer@10.20.60.251"
|
||||
];
|
||||
};
|
||||
|
||||
# Development
|
||||
neovim.enable = true;
|
||||
vscode.enable = true;
|
||||
docker.enable = true;
|
||||
matlab.enable = true;
|
||||
mathematica.enable = false;
|
||||
|
||||
# Languages
|
||||
haskell.enable = false;
|
||||
js.enable = true;
|
||||
nix.enable = true;
|
||||
rust.enable = true;
|
||||
python.enable = true;
|
||||
cpp.enable = true;
|
||||
tex.enable = true;
|
||||
jupyter.enable = true;
|
||||
|
||||
# Enable unfree
|
||||
unfree.enable = true;
|
||||
};
|
||||
|
||||
# Theme configuration
|
||||
desktop.theming =
|
||||
let
|
||||
fontpkgs = config.desktop.theming.fonts.pkgs;
|
||||
in
|
||||
# Color scheme
|
||||
themes.catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
# Fonts
|
||||
fonts.serif = fontpkgs."DejaVu Serif";
|
||||
fonts.sansSerif = fontpkgs."DejaVu Sans";
|
||||
fonts.monospace = fontpkgs."Dina";
|
||||
fonts.emoji = fontpkgs."Noto Color Emoji";
|
||||
fonts.interface = fontpkgs."Dina";
|
||||
fonts.extraFonts = [ ];
|
||||
# Default desktop environment
|
||||
modules = {
|
||||
# Desktop environment
|
||||
river.enable = true;
|
||||
waylock.enable = true;
|
||||
waybar.enable = true;
|
||||
mako.enable = true;
|
||||
foot.enable = true;
|
||||
rofi-rbw.enable = true;
|
||||
};
|
||||
|
||||
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
|
||||
config.common.default = lib.mkDefault [
|
||||
"wlr"
|
||||
"gtk"
|
||||
];
|
||||
|
||||
extraPortals =
|
||||
with pkgs;
|
||||
lib.mkDefault [
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-wlr
|
||||
];
|
||||
};
|
||||
|
||||
# Color scheme
|
||||
themes.catppuccin = {
|
||||
desktop.theming.background = lib.mkDefault {
|
||||
# path = "unsorted/a_group_of_mountains_with_a_building_in_the_background.jpg";
|
||||
# image = "anime/a_colorful_buildings_with_power_lines.jpg";
|
||||
image = {
|
||||
url = "https://i.postimg.cc/tTB3dM3T/1382899.png";
|
||||
hash = "sha256-kStcwAtK2vxitU6uaQtZTA5iFS8k0iXkFwinY2M8wQE=";
|
||||
};
|
||||
# image = {
|
||||
# url = "https://raw.githubusercontent.com/dharmx/walls/refs/heads/main/digital/a_couple_of_people_standing_on_a_mountain.png";
|
||||
# hash = "sha256-SgKG090iSxwOPCGH/2ODPbwe275Zi5k0+d5Hso0mN7c=";
|
||||
# };
|
||||
themed = true;
|
||||
inverted = false;
|
||||
};
|
||||
desktop.theming.themes.catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user