Compare commits

...

9 Commits

Author SHA1 Message Date
Jill d92f5cd238 fix flameshot 2024-01-18 16:01:46 +03:00
Jill c8433e9ce6 syncthing FAIL! 2024-01-18 15:19:46 +03:00
Jill 363a2710ab goop-drive -> seven-red-suns 2024-01-18 15:11:11 +03:00
Jill c0d2c7d379 i don't rember 2024-01-18 15:10:55 +03:00
Jill a386ed30a7 mess around with desktops, switch goop-drive to wayland 2024-01-16 06:30:11 +03:00
Jill 24036ac7aa set gnome theme thru dconf 2024-01-12 10:53:25 +03:00
Jill c248973b5e declaratively set enabled extensions 2024-01-10 17:23:31 +03:00
Jill c53b2e531e remove unnecessary packages 2024-01-10 16:39:58 +03:00
Jill 95bbf76532 somehow this fixes an issue that randomly popped up 2024-01-08 19:30:34 +03:00
11 changed files with 100 additions and 20 deletions

View File

@ -1,6 +1,6 @@
# nix-config
hello!! welcome to my little nix cave, home to `goop-drive` and potentially more hosts to come.
hello!! welcome to my little nix cave, home to `seven-red-suns` and potentially more hosts to come.
this is a nix flake managing my nixos systems. it isn't really ready for other peoples' use, but you are free to look around.

View File

@ -71,6 +71,14 @@ in {
desktop-file-utils
shared-mime-info
xdg-user-dirs
xdg-utils
xdg-utils
# fun fact! when using flakes not having
# git available as a global package while operating
# on a git repository makes nixos-rebuild break,
# rendering your system unable to rebuild.
# nix is really cool
git
];
documentation.nixos.enable = false;
}

View File

@ -51,7 +51,8 @@
};
};
packages."${system}" = mapModules ./packages (p: pkgs.callPackage p {});
#packages."${system}" = mapModules ./packages (p: pkgs.callPackage p {});
packages."${system}" = {};
nixosModules = mapModulesRec ./modules import;

View File

@ -33,7 +33,7 @@
pipewire.enable = true;
};
desktop = {
envProto = "x11";
envProto = "wayland";
gnome.enable = true;
gnome.keybinds.shell = {
# disable defaults
@ -44,7 +44,9 @@
gnome.keybinds.custom = {
"take-screenshot" = {
binding = "Print";
command = "${lib.getExe pkgs.flameshot} gui";
command = let
screenshotScript = pkgs.writeScript "screenshot" "XDG_SESSION_TYPE=wayland ${lib.getExe pkgs.flameshot} gui -c";
in ''${screenshotScript}'';
};
"take-screen-recording" = {
binding = "<Shift>Print";
@ -59,6 +61,7 @@
command = ''${grabScript}'';
};
};
#xfce.enable = true;
themes.active = "catppuccin";
};
software = {

View File

@ -26,6 +26,8 @@ in {
# extraPortals = [pkgs.xdg-desktop-portal-gtk];
# config.common.default = "*";
#};
services.xserver.excludePackages = [ pkgs.xterm ];
services.gnome.gnome-keyring.enable = true;

View File

@ -1,11 +1,33 @@
{ config, lib, pkgs, ... }:
with lib;
with builtins;
let
cfg = config.modules.desktop.gnome;
in {
options.modules.desktop.gnome = {
enable = mkEnableOption "Enable the Gnome desktop environment";
extensions = mkOption {
description = "Set a list of extensions to use";
type = types.listOf types.package;
default = with pkgs.gnomeExtensions; [
rounded-window-corners
force-quit
pixel-saver
status-area-horizontal-spacing
weeks-start-on-monday-again
user-themes
espresso
clipboard-indicator
appindicator
#blur-my-shell
#dash-to-dock
just-perfection
disable-unredirect-fullscreen-windows
#gsconnect
#launch-new-instance
];
};
keybinds = {
shell = mkOption {
description = ''Override Gnome shell keybindings (org/gnome/shell/keybindings/...)'';
@ -60,27 +82,43 @@ in {
wayland = mkForce (config.modules.desktop.envProto == "wayland");
};
services.gnome.sushi.enable = true;
services.gnome.games.enable = true;
hm.home.packages = with pkgs; [
dconf2nix
gnome.gnome-disk-utility
gnome.dconf-editor
gnome.gnome-tweaks
] ++ (with pkgs.gnomeExtensions; [
appindicator
clipboard-indicator
espresso
user-themes
gedit
] ++ cfg.extensions;
# just out of curiosity
aylurs-widgets
blur-my-shell
dash-to-dock
just-perfection
rounded-window-corners
space-bar
]);
environment.gnome.excludePackages = with pkgs.gnome; [
pkgs.gnome-tour
#baobab
epiphany
pkgs.gnome-text-editor
#gnome-calculator
#gnome-calendar
#gnome-characters
#gnome-clocks
pkgs.gnome-console
gnome-contacts
#gnome-font-viewer
#gnome-logs
gnome-maps
gnome-music
#gnome-system-monitor
#gnome-weather
#pkgs.loupe
#nautilus
pkgs.gnome-connections
simple-scan
pkgs.snapshot
#totem
yelp
seahorse
geary
];
hm.dconf = let
# [ binding ]
@ -89,6 +127,8 @@ in {
customBindingSets = imap0 (i: v: { name = "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom${toString i}"; value = v; }) customBindings;
# { key = binding }
customBindingsAttr = listToAttrs customBindingSets;
extensions = map (pkg: pkg.extensionUuid) cfg.extensions;
in {
settings = {
"org/gnome/settings-daemon/plugins/media-keys" = {
@ -98,6 +138,8 @@ in {
"org/gnome/shell/keybindings" = cfg.keybinds.shell;
"org/gnome/desktop/wm/keybindings" = cfg.keybinds.wm;
"org/gnome/mutter/keybindings" = cfg.keybinds.mutter;
"org/gnome/shell".enabled-extensions = extensions;
} // customBindingsAttr;
};
};

View File

@ -49,6 +49,8 @@ in {
iconTheme = cfg.iconTheme;
theme = cfg.gtkTheme;
};
hm.dconf.settings."org/gnome/desktop/interface/gtk-theme".name = cfg.gtkTheme.name;
hm.dconf.settings."org/gnome/shell/extensions/user-theme".name = cfg.gtkTheme.name;
hm.programs.vscode = {
extensions = [ cfg.editor.vscode.extension ];

21
modules/desktop/xfce.nix Normal file
View File

@ -0,0 +1,21 @@
{ lib, config, ... }:
with lib;
let
cfg = config.modules.desktop.xfce;
in {
options.modules.desktop.xfce = {
enable = mkEnableOption "Enable Xfce, a lightweight desktop environment based on GTK+";
};
config = mkIf cfg.enable {
services.xserver = {
enable = true;
desktopManager = {
xterm.enable = false;
xfce.enable = true;
};
displayManager.defaultSession = "xfce";
};
};
}

View File

@ -9,7 +9,8 @@ in {
};
config = mkIf cfg.enable {
# todo: declare sync folders & devices here
# declare sync folders & devices here
# edit: turns out you can't with hm. huh
hm.services.syncthing.enable = true;
hm.services.syncthing.tray.enable = true;
};