too lazy to describe

Signed-off-by: unexplrd <unexplrd@linerds.us>
This commit is contained in:
2025-03-20 19:58:38 +02:00
parent ef76c91365
commit 1d46820135
13 changed files with 839 additions and 250 deletions

View File

@ -1,7 +1,9 @@
{
imports = [
{inputs, ...}: {
imports = with inputs; [
way-edges.homeManagerModules.default
./common/xdg-userdirs.nix
./hyprland/default.nix
./gnome/default.nix
./niri/default.nix
./plasma/default.nix
];

View File

@ -0,0 +1,206 @@
{
config,
pkgs,
lib,
...
}:
with lib; let
cfg = config.desktop.gnome;
colors = config.lib.stylix.colors;
in {
options = {
desktop.gnome.enable =
mkEnableOption "enable gnome desktop";
};
config = mkIf cfg.enable {
home.packages = with pkgs; [
gnomeExtensions.alphabetical-app-grid
gnomeExtensions.removable-drive-menu
gnomeExtensions.caffeine
gnomeExtensions.space-bar
gnomeExtensions.switcher
gnomeExtensions.tactile
gnomeExtensions.pano
gnomeExtensions.window-is-ready-remover
junction
celluloid
mission-center
dconf
pwvucontrol
wl-clipboard
];
programs.gnome-shell.extensions = [
{package = pkgs.gnomeExtensions.alphabetical-app-grid;}
{package = pkgs.gnomeExtensions.removable-drive-menu;}
{package = pkgs.gnomeExtensions.caffeine;}
{package = pkgs.gnomeExtensions.space-bar;}
{package = pkgs.gnomeExtensions.switcher;}
{package = pkgs.gnomeExtensions.tactile;}
{package = pkgs.gnomeExtensions.pano;}
{package = pkgs.gnomeExtensions.window-is-ready-remover;}
];
dconf.settings = with lib.hm.gvariant; {
"org/gnome/desktop/a11y/applications" = {
screen-reader-enabled = false;
};
"org/gnome/desktop/app-folders/folders/Utilities" = {
apps = ["org.gnome.baobab.desktop" "org.gnome.FileRoller.desktop" "org.gnome.DiskUtility.desktop" "org.gnome.Connections.desktop" "org.gnome.seahorse.Application.desktop" "org.gnome.Loupe.desktop" "org.gnome.Evince.desktop" "org.gnome.font-viewer.desktop" "org.freedesktop.GnomeAbrt.desktop" "nm-connection-editor.desktop" "org.gnome.DejaDup.desktop" "org.gnome.tweaks.desktop" "org.gnome.Usage.desktop"];
categories = ["X-GNOME-Utilities"];
name = "X-GNOME-Utilities.directory";
translate = true;
};
"org/gnome/desktop/input-sources" = {
mru-sources = [(mkTuple ["xkb" "us"])];
sources = [(mkTuple ["xkb" "us"]) (mkTuple ["xkb" "ua"]) (mkTuple ["xkb" "us+colemak_dh"])];
xkb-options = ["terminate:ctrl_alt_bksp"];
};
"org/gnome/desktop/interface" = {
accent-color = "slate";
clock-show-seconds = true;
color-scheme = "prefer-dark";
enable-animations = true;
gtk-enable-primary-paste = false;
scaling-factor = mkUint32 1;
toolbar-style = "text";
toolkit-accessibility = false;
};
"org/gnome/desktop/peripherals/mouse" = {
accel-profile = "flat";
};
"org/gnome/desktop/peripherals/keyboard" = {
delay = 250;
repeat-interval = 25;
};
"org/gnome/desktop/peripherals/touchpad" = {
two-finger-scrolling-enabled = true;
};
"org/gnome/desktop/search-providers" = {
disabled = ["org.gnome.Epiphany.desktop"];
sort-order = ["org.gnome.Settings.desktop" "org.gnome.Contacts.desktop" "org.gnome.Nautilus.desktop"];
};
"org/gnome/desktop/wm/keybindings" = {
close = ["<Control><Super>q"];
move-to-monitor-down = ["<Shift><Control><Super>Down"];
move-to-monitor-left = ["<Shift><Control><Super>Left"];
move-to-monitor-right = ["<Shift><Control><Super>Right"];
move-to-monitor-up = ["<Shift><Control><Super>Up"];
move-to-workspace-1 = ["<Control><Super>1"];
move-to-workspace-2 = ["<Control><Super>2"];
move-to-workspace-3 = ["<Control><Super>3"];
move-to-workspace-4 = ["<Control><Super>4"];
move-to-workspace-5 = ["<Control><Super>5"];
move-to-workspace-last = ["<Shift><Control><Super>End"];
move-to-workspace-left = ["<Control><Super>Left"];
move-to-workspace-right = ["<Control><Super>Right"];
switch-input-source = ["<Super>Escape"];
switch-input-source-backward = ["<Shift><Super>Escape"];
switch-to-workspace-1 = ["<Super>1"];
switch-to-workspace-2 = ["<Super>2"];
switch-to-workspace-3 = ["<Super>3"];
switch-to-workspace-4 = ["<Super>4"];
switch-to-workspace-left = ["<Super>Left"];
switch-to-workspace-right = ["<Super>Right"];
};
"org/gnome/desktop/wm/preferences" = {
auto-raise = true;
button-layout = "icon:close";
};
"org/gnome/epiphany" = {
ask-for-default = false;
};
"org/gnome/mutter" = {
dynamic-workspaces = true;
experimental-features = ["scale-monitor-framebuffer"];
workspaces-only-on-primary = true;
};
"org/gnome/nm-applet" = {
disable-connected-notifications = true;
};
"org/gnome/settings-daemon/plugins/color" = {
night-light-enabled = true;
night-light-schedule-automatic = false;
};
"org/gnome/shell" = {
enabled-extensions = ["drive-menu@gnome-shell-extensions.gcampax.github.com" "caffeine@patapon.info" "AlphabeticalAppGrid@stuarthayhurst" "appindicatorsupport@rgcjonas.gmail.com" "user-theme@gnome-shell-extensions.gcampax.github.com" "tactile@lundal.io" "switcher@landau.fi" "pano@elhan.io" "space-bar@luchrioh"];
};
"org/gnome/shell/app-switcher" = {
current-workspace-only = true;
};
"org/gnome/shell/extensions/caffeine" = {
indicator-position-max = 1;
};
"org/gnome/shell/extensions/space-bar/appearance" = {
application-styles = ".space-bar {n -natural-hpadding: 12px;n}nn.space-bar-workspace-label.active {n margin: 0 4px;n background-color: rgba(255,255,255,0.3);n color: rgba(255,255,255,1);n border-color: rgba(0,0,0,0);n font-weight: 700;n border-radius: 4px;n border-width: 0px;n padding: 3px 8px;n}nn.space-bar-workspace-label.inactive {n margin: 0 4px;n background-color: rgba(0,0,0,0);n color: rgba(255,255,255,1);n border-color: rgba(0,0,0,0);n font-weight: 700;n border-radius: 4px;n border-width: 0px;n padding: 3px 8px;n}nn.space-bar-workspace-label.inactive.empty {n margin: 0 4px;n background-color: rgba(0,0,0,0);n color: rgba(255,255,255,0.5);n border-color: rgba(0,0,0,0);n font-weight: 700;n border-radius: 4px;n border-width: 0px;n padding: 3px 8px;n}";
};
"org/gnome/shell/extensions/space-bar/behavior" = {
show-empty-workspaces = false;
};
"org/gnome/shell/extensions/switcher" = {
activate-after-ms = mkUint32 0;
activate-by-key = mkUint32 1;
fade-enable = true;
font-size = mkUint32 24;
icon-size = mkUint32 24;
max-width-percentage = mkUint32 60;
only-current-workspace = true;
show-executables = false;
show-switcher = ["<Super>space"];
workspace-indicator = true;
};
"org/gnome/shell/extensions/tactile" = {
background-color = "#${colors.base00}";
border-color = "#${colors.base0D}";
border-size = 3;
col-3 = 0;
gap-size = 6;
layout-2-col-1 = 1;
layout-2-row-2 = 0;
layout-3-col-1 = 2;
layout-3-col-2 = 1;
layout-3-col-3 = 0;
layout-3-row-2 = 0;
monitor-1-layout = 3;
text-color = "#${colors.base05}";
tile-0-2 = ["z"];
tile-1-1 = ["r"];
tile-1-2 = ["x"];
tile-2-0 = ["f"];
tile-2-1 = ["s"];
tile-2-2 = ["c"];
tile-3-0 = ["p"];
tile-3-1 = ["t"];
tile-3-2 = ["d"];
};
"org/gnome/software" = {
download-updates = false;
download-updates-notify = false;
first-run = false;
};
"org/gnome/tweaks" = {
show-extensions-notice = false;
};
};
};
}

View File

@ -322,11 +322,11 @@ in {
dots_center = true;
fade_on_empty = false;
font_family = "${config.stylix.fonts.serif.name}";
font_color = "rgb(${config.lib.stylix.colors.base05})";
inner_color = "rgb(${config.lib.stylix.colors.base00})";
outer_color = "rgb(${config.lib.stylix.colors.base0D})";
check_color = "rgb(${config.lib.stylix.colors.base0A})";
fail_color = "rgb(${config.lib.stylix.colors.base08})";
font_color = "rgb(${colors.base05})";
inner_color = "rgb(${colors.base00})";
outer_color = "rgb(${colors.base0D})";
check_color = "rgb(${colors.base0A})";
fail_color = "rgb(${colors.base08})";
placeholder_text = "locked...";
fail_text = "wrong";
shadow_passes = 0;
@ -336,8 +336,8 @@ in {
{
rounding = 12;
size = "150, 50";
color = "rgb(${config.lib.stylix.colors.base00})";
border_color = "rgb(${config.lib.stylix.colors.base0D})";
color = "rgb(${colors.base00})";
border_color = "rgb(${colors.base0D})";
position = "-62, 30";
halign = "center";
valign = "center";
@ -345,8 +345,8 @@ in {
{
rounding = 12;
size = "120, 50";
color = "rgb(${config.lib.stylix.colors.base00})";
border_color = "rgb(${config.lib.stylix.colors.base0D})";
color = "rgb(${colors.base00})";
border_color = "rgb(${colors.base0D})";
position = "77, 28";
halign = "center";
valign = "center";
@ -359,8 +359,8 @@ in {
text_align = "center";
font_size = 16;
font_family = "${config.stylix.fonts.serif.name}";
outer_color = "rgb(${config.lib.stylix.colors.base00})";
color = "rgb(${config.lib.stylix.colors.base05})";
outer_color = "rgb(${colors.base00})";
color = "rgb(${colors.base05})";
position = "-62, 28";
halign = "center";
valign = "center";
@ -371,8 +371,8 @@ in {
text_align = "center";
font_size = 16;
font_family = "${config.stylix.fonts.serif.name}";
outer_color = "rgb(${config.lib.stylix.colors.base00})";
color = "rgb(${config.lib.stylix.colors.base05})";
outer_color = "rgb(${colors.base00})";
color = "rgb(${colors.base05})";
position = "77, 28";
halign = "center";
valign = "center";
@ -380,7 +380,6 @@ in {
];
};
};
# ifLaptop
xdg.configFile = {
niri = {
target = "niri/config.kdl";
@ -476,8 +475,8 @@ in {
// default-column-width { proportion 0.9; }
default-column-width {}
tab-indicator {
active-color "#${config.lib.stylix.colors.base04}"
inactive-color "#${config.lib.stylix.colors.base03}"
active-color "#${colors.base04}"
inactive-color "#${colors.base03}"
width 8
gap 6
corner-radius 4
@ -489,8 +488,8 @@ in {
focus-ring {
// off
width 3
active-gradient from="#${config.lib.stylix.colors.base0D}" to="#${config.lib.stylix.colors.base0F}" angle=40 relative-to="workspace-view"
inactive-color "#${config.lib.stylix.colors.base03}"
active-gradient from="#${colors.base0D}" to="#${colors.base0F}" angle=40 relative-to="workspace-view"
inactive-color "#${colors.base03}"
}
struts {
left 52
@ -511,18 +510,18 @@ in {
match is-window-cast-target=true
focus-ring {
width 3
active-color "#${config.lib.stylix.colors.base0F}"
inactive-color "#${config.lib.stylix.colors.base03}"
active-color "#${colors.base0F}"
inactive-color "#${colors.base03}"
}
border {
width 3
active-color "#${config.lib.stylix.colors.base0F}"
inactive-color "#${config.lib.stylix.colors.base03}"
active-color "#${colors.base0F}"
inactive-color "#${colors.base03}"
}
shadow {
on
color "#${config.lib.stylix.colors.base0F}"
inactive-color "#${config.lib.stylix.colors.base03}"
color "#${colors.base0F}"
inactive-color "#${colors.base03}"
}
}
@ -775,6 +774,365 @@ in {
'';
};
};
programs.way-edges = {
enable = false;
settings = {
"$schema" = "https://raw.githubusercontent.com/way-edges/way-edges/master/config/config.schema.json";
ensure_load_group = ["niri" "tray" "common"];
groups = [
{
name = "niri";
widgets = [
{
edge = "top";
layer = "overlay";
margins = {left = "25%";};
monitor = 0;
position = "left";
widget = {
event_map = {
"272" = "niri msg action focus-column-left";
"273" = "niri msg action focus-workspace-up";
};
length = "25%";
thickness = 20;
type = "btn";
};
}
{
edge = "top";
layer = "overlay";
margins = {right = "25%";};
monitor = 0;
position = "right";
widget = {
event_map = {
"272" = "niri msg action focus-column-right";
"273" = "niri msg action focus-workspace-down";
};
frame_rate = 144;
length = "25%";
thickness = 20;
type = "btn";
};
}
{
edge = "top";
layer = "overlay";
margins = {left = "25%";};
monitor = 0;
position = "left";
widget = {
color = "#${colors.base00}";
event_map = {
"272" = "niri msg action focus-column-left";
"273" = "niri msg action focus-workspace-up";
};
length = "25%";
thickness = 20;
type = "btn";
};
}
{
edge = "top";
layer = "overlay";
margins = {right = "25%";};
monitor = 0;
position = "right";
widget = {
color = "#${colors.base00}";
event_map = {
"272" = "niri msg action focus-column-right";
"273" = "niri msg action focus-workspace-down";
};
length = "25%";
thickness = 20;
type = "btn";
};
}
{
edge = "left";
layer = "overlay";
monitor = 0;
position = "bottom";
widget = {
active_increase = 0.5;
default_color = "#${colors.base00}";
hover_color = "#${colors.base03}";
focus_color = "#${colors.base0C}";
length = "20%";
preset = "niri";
thickness = 30;
type = "workspace";
};
}
];
}
{
name = "common";
widgets =
[
{
edge = "bottom";
layer = "overlay";
monitor = 0;
widget = {
color = "#${colors.base00}";
event_map = {
"272" = "niri msg action maximize-column";
# "273" = "sh -c pkill nwg-drawer || nwg-drawer";
"276" = "niri msg action toggle-column-tabbed-display";
};
length = "40%";
thickness = 20;
type = "btn";
};
}
{
edge = "left";
layer = "overlay";
margins = {top = 40;};
monitor = 0;
name = "stats";
position = "top";
widget = {
outlook = {
color = "#5d3f3c";
type = "window";
};
type = "wrap-box";
widgets = [
{
index = [
(lib.strings.toInt "-1")
(lib.strings.toInt "-1")
];
widget = {
bg_color = "#00000044";
fg_color = "#82B2E3";
font_family = config.stylix.fonts.serif.name;
font_size = 20;
prefix = " ";
preset = {
type = "disk";
update_interval = 500;
};
suffix = " {preset}";
suffix_hide = true;
type = "ring";
};
}
{
index = [
(lib.strings.toInt "-1")
(lib.strings.toInt "-1")
];
widget = {
bg_color = "#00000044";
fg_color = "#FFB77B";
font_family = config.stylix.fonts.serif.name;
font_size = 20;
prefix = " ";
preset = {
type = "battery";
update_interval = 500;
};
suffix = " {preset}";
suffix_hide = true;
type = "ring";
};
}
{
index = [
(lib.strings.toInt "-1")
(lib.strings.toInt "-1")
];
widget = {
bg_color = "#00000044";
fg_color = "#FB8893";
font_family = config.stylix.fonts.serif.name;
font_size = 20;
prefix = " ";
preset = {
type = "cpu";
update_interval = 500;
};
suffix = " {preset}";
suffix_hide = true;
type = "ring";
};
}
{
index = [
(lib.strings.toInt "-1")
(lib.strings.toInt "-1")
];
widget = {
bg_color = "#00000044";
fg_color = "#BEAFD9";
font_family = config.stylix.fonts.serif.name;
font_size = 20;
prefix = "󰾶 ";
preset = {
type = "swap";
update_interval = 500;
};
suffix = " {preset}";
suffix_hide = true;
type = "ring";
};
}
{
index = [
(lib.strings.toInt "-1")
(lib.strings.toInt "-1")
];
widget = {
bg_color = "#00000044";
font_family = config.stylix.fonts.serif.name;
font_size = 20;
prefix = " ";
preset = {
type = "ram";
update_interval = 500;
};
suffix = " {preset}";
suffix_hide = true;
type = "ring";
};
}
];
};
}
{
edge = "top";
layer = "overlay";
monitor = 0;
name = "time";
position = "right";
widget = {
font_family = config.stylix.fonts.serif.name;
outlook = {
color = "#${colors.base00}";
margins = {
bottom = 10;
left = 30;
right = 30;
top = 10;
};
type = "window";
};
type = "wrap-box";
widgets = [
{
index = [
(lib.strings.toInt "-1")
(lib.strings.toInt "-1")
];
widget = {
font_family = config.stylix.fonts.serif.name;
fg_color = "#${colors.base07}";
font_size = 30;
preset = {
format = "%v %T %A";
type = "time";
update_interval = 500;
};
type = "text";
};
}
];
};
}
{
edge = "top";
layer = "overlay";
monitor = 0;
position = "left";
preview_size = 7;
widget = {
font_family = config.stylix.fonts.serif.name;
border_width = 4;
length = "12.5%";
bg_color = "#${colors.base00}";
fg_color = "#${colors.base0C}";
mute_color = "#${colors.base0A}";
preset.type = "speaker";
redraw_only_on_internal_update = true;
thickness = 30;
type = "slider";
};
}
]
++ (lib.optionals (hostname
!= "dunamis") [
{
edge = "top";
layer = "overlay";
margins = {left = "12.5%";};
monitor = 0;
position = "left";
preview_size = 7;
widget = {
font_family = config.stylix.fonts.serif.name;
border_width = 4;
bg_color = "#${colors.base00}";
fg_color = "#${colors.base0B}";
length = "12.5%";
preset.type = "backlight";
redraw_only_on_internal_update = true;
thickness = 30;
type = "slider";
};
}
]);
}
{
name = "tray";
widgets = [
{
edge = "bottom";
layer = "overlay";
monitor = 0;
name = "tray";
position = "right";
widget = {
align = "bottom_left";
outlook = {
font_family = config.stylix.fonts.serif.name;
color = "#${colors.base07}";
type = "window";
};
type = "wrap-box";
widgets = [
{
index = [
(lib.strings.toInt "-1")
(lib.strings.toInt "-1")
];
widget = {
font_family = config.stylix.fonts.serif.name;
grid_align = "bottom_left";
header_draw_config = {text_color = "#${colors.base00}";};
header_menu_align = "left";
header_menu_stack = "menu_top";
icon_size = 42;
menu_draw_config = {
border_color = "#${colors.base00}";
text_color = "#${colors.base00}";
font_pixel_height = 18;
};
type = "tray";
};
}
];
};
}
];
}
];
};
};
programs.waybar = {
enable = true;
systemd = {
@ -783,8 +1141,8 @@ in {
};
settings = {
bar-0 = {
layer = "top";
position = "bottom";
# layer = "top";
position = "top";
height = 32;
spacing = 4;
margin-left = 63;
@ -795,7 +1153,7 @@ in {
"niri/workspaces"
"wlr/taskbar"
];
# modules-center = [];
modules-center = ["mpris"];
modules-right = [
"wireplumber"
(ifLaptop "group/laptop")
@ -880,6 +1238,17 @@ in {
format-alt = "{icon} {time}";
format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
};
mpris = {
format = "{player_icon} {dynamic}";
format-paused = "{status_icon} <i>{dynamic}</i>";
playing-len = 30;
playing-paused = 30;
player-icons = {
default = "";
mpv = "🎵";
};
status-icons = {paused = "";};
};
"upower" = {
icon-size = 16;
format = "{percentage}";
@ -974,12 +1343,20 @@ in {
transition-property: background-color;
transition-duration: 0.5s;
}
.modules-center {
background-color: transparent;
}
.mpris.stopped {
background-color: transparent;
}
.mpris.playing,
.mpris.paused,
.modules-left,
.modules-right {
border-top-left-radius: 12px;
border-top-right-radius: 12px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
border-bottom-left-radius: 12px;
border-bottom-right-radius: 12px;
border-top-left-radius: 0px;
border-top-right-radius: 0px;
background-color: @base00;
color: @base05;
padding: 0 0.5em;

View File

@ -40,6 +40,7 @@ in {
bind \cH backward-kill-word
set fish_greeting
set fish_cursor_default block blink
set EDITOR hx
'';
};
};

View File

@ -17,7 +17,7 @@ in {
settings = {
options = {
urAccepted = -1;
relaysEnabled = false;
relaysEnabled = true;
};
devices = {
"dunamis".id = "72VRZFX-65SZUKP-2XL2WLG-75MMKLG-PQLDEZN-G5OI5U7-RLF4OHS-LNCXEQX";
@ -25,7 +25,7 @@ in {
"phone".id = "XBZLA7Y-YOBZHLO-MSTRAGS-6SN5MEZ-FDKR76F-DIX2BKE-FMDNUYR-TMD6UAQ";
};
folders = {
"docs" = {
"kgWDuKXLwWm9dalD" = {
path = "/home/user/docs";
devices = [
"dunamis"
@ -33,7 +33,7 @@ in {
"phone"
];
};
"programming" = {
"lPdfBZtxd6fATFp2" = {
path = "/home/user/programming";
devices = [
"dunamis"

View File

@ -2,6 +2,7 @@
imports = [
./niri.nix
./cosmic.nix
./gnome.nix
./plasma.nix
./hyprland.nix
];

View File

@ -0,0 +1,30 @@
{
config,
pkgs,
lib,
...
}:
with lib; let
cfg = config.desktop.gnome;
in {
imports = [./common/pipewire.nix];
options = {
desktop.gnome.enable =
mkEnableOption "enable gnome desktop";
};
config = mkIf cfg.enable {
services.xserver = {
enable = true;
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
};
programs.dconf.enable = true;
programs.seahorse.enable = true;
services.gnome.gnome-keyring.enable = true;
services.udisks2.enable = true;
services.dbus = {
apparmor = "enabled";
implementation = "broker";
};
};
}