Compare commits

..

6 commits

Author SHA1 Message Date
7a0a62fd88 Update flake.lock to reflect changes in dependencies 2025-05-19 16:34:22 -04:00
4c8001bcfa Refactor GNOME configuration and introduce new themes and programs
- Removed extensive GNOME settings from default.nix and replaced with a simplified import structure.
- Created new default.nix for GNOME programs to streamline configuration.
- Added ghostty terminal emulator with Fish integration and custom settings.
- Introduced a new theme configuration with Qogir icon theme and Stylix integration.
- Added new wallpapers and theme YAML for Invincible theme.
- Updated rune configuration to include desktop entries for NixOS and Windows 11 VMs.
- Added monitors.xml configuration for multi-monitor setups.
- Updated global GNOME configuration to enable auto-login and refine package exclusions.
2025-05-19 16:34:06 -04:00
ab53a9cbcc Add allowedUDPPorts for Enshrouded server in firewall configuration 2025-05-19 16:32:17 -04:00
111352d376 Cleanup gaming configs and fix gamescope 2025-05-19 16:32:07 -04:00
c3d60e2e15 Refactor configuration files: remove Hyprland references and clean up some unneeded things 2025-05-19 16:29:17 -04:00
5d0a1f59c4 FUCK HYPRLAND!!! 2025-05-19 15:38:52 -04:00
50 changed files with 846 additions and 3316 deletions

759
flake.lock generated

File diff suppressed because it is too large Load diff

View file

@ -28,19 +28,7 @@
inputs.nixpkgs.follows = "nixpkgs-stable";
};
# TODO: theming
## Hyprland ##
watershot = {
url = "github:Liassica/watershot/165dd431c95054ac1bfea2f9a85e1be924af21c9";
inputs.nixpkgs.follows = "nixpkgs-stable";
};
better-control = {
url = "github:rishabh5321/better-control-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
## Theming ##
rose-pine-hyprcursor = {
url = "github:ndom91/rose-pine-hyprcursor";

View file

@ -1,5 +1,3 @@
#FIXME: Move attrs that will only work on linux to nixos.nix
#FIXME: if pulling in homemanager for isMinimal maybe set up conditional for some packages
{
config,
lib,
@ -18,17 +16,7 @@ in
"modules/global"
"modules/home"
])
./asdf.nix
./bash.nix # TODO: setup a nicer bash config... or zsh
./bat.nix
./direnv.nix
./fastfetch
./fish
./git.nix
./ranger.nix
./screen.nix
./ssh.nix
./zoxide.nix
(lib.custom.scanPaths ./.)
];
services.ssh-agent.enable = true;
@ -43,9 +31,8 @@ in
sessionVariables = {
EDITOR = "micro";
FLAKE = "${homeDir}/git/Nix/dot.nix";
MANPAGER = "batman"; # see ./cli/bat.nix
MANPAGER = "batman";
SHELL = shell;
TERM = "foot";
VISUAL = "micro";
};
preferXdgDirectories = true; # whether to make programs use XDG directories whenever supported
@ -67,15 +54,14 @@ in
};
};
# Core pkgs with no configs
home.packages = builtins.attrValues {
inherit (pkgs)
# Packages that don't have custom configs go here
btop # resource monitor
coreutils # basic gnu utils
dust # disk usage
eza # ls replacement
jq # json parser
p7zip # compression & encryption
pre-commit # git hooks
trashy # trash cli
unrar # rar extraction

View file

@ -15,9 +15,7 @@
delta # diffing
gh # github cli
logisim-evolution
mcaselector
prettierd
# nix
nixpkgs-review

View file

@ -1,5 +1,3 @@
# This module just provides a customized .desktop file with gamescope args dynamically created based on the
# host's monitors configuration
{
pkgs,
config,
@ -7,50 +5,51 @@
...
}:
let
monitor = lib.head (lib.filter (m: m.primary) config.monitors);
steam-session =
let
gamescope = lib.concatStringsSep " " [
(lib.getExe pkgs.gamescope)
"--rt"
"--output-width ${toString monitor.width}"
"--output-height ${toString monitor.height}"
"--framerate-limit ${toString monitor.refreshRate}"
"--prefer-output ${monitor.name}"
"--adaptive-sync"
"--expose-wayland"
"--backend wayland"
"--force-grab-cursor"
"--steam"
# "--hdr-enabled"
];
steam = lib.concatStringsSep " " [
"steam"
#"steam://open/bigpicture"
"-forcedesktopscaling ${toString monitor.scale}"
"-nofriendsui"
"-noschatui"
];
in
pkgs.writeTextDir "share/applications/steam-session.desktop" ''
[Desktop Entry]
Name=Steam Session
Comment=Steam with Gamescope
Exec=${gamescope} -- ${steam}
Icon=steam
Type=Application
Categories=Network;FileTransfer;Game;
MimeType=x-scheme-handler/steam;x-scheme-handler/steamlink;
PrefersNonDefaultGPU = true;
'';
in
#INFO: Gamescope is REALLY broken rn, this wont work
# let
# monitor = lib.head (lib.filter (m: m.primary) config.monitors);
# steam-session =
# let
# gamescope = lib.concatStringsSep " " [
# (lib.getExe pkgs.gamescope)
# "--rt"
# "--output-width ${toString monitor.width}"
# "--output-height ${toString monitor.height}"
# "--framerate-limit ${toString monitor.refreshRate}"
# "--prefer-output ${monitor.name}"
# "--adaptive-sync"
# "--expose-wayland"
# "--backend wayland"
# "--force-grab-cursor"
# "--steam"
# # "--hdr-enabled"
# ];
# steam = lib.concatStringsSep " " [
# "steam"
# #"steam://open/bigpicture"
# "-forcedesktopscaling ${toString monitor.scale}"
# "-nofriendsui"
# "-noschatui"
# ];
# in
# pkgs.writeTextDir "share/applications/steam-session.desktop" ''
# [Desktop Entry]
# Name=Steam Session
# Comment=Steam with Gamescope
# Exec=${gamescope} -- ${steam}
# Icon=steam
# Type=Application
# Categories=Network;FileTransfer;Game;
# MimeType=x-scheme-handler/steam;x-scheme-handler/steamlink;
# PrefersNonDefaultGPU = true;
# '';
# in
{
imports = lib.custom.scanPaths ./.;
home.packages = with pkgs; [
prismlauncher
steam-session
# steam-session
# modrinth-app
(lutris.override {
extraLibraries = pkgs: [
@ -62,3 +61,6 @@ in
})
];
}
# INFO: Example working command for running gamescope
# gamescope --adaptive-sync --backend sdl --expose-wayland --force-grab-cursor --framerate-limit 120 --immediate-flips --output-height 2160 --output-width 3840 --prefer-output DP-3 --rt -- gamemoderun %command%

View file

@ -8,13 +8,6 @@
}:
let
# citron-emu = pkgs.callPackage (lib.custom.relativeToRoot "pkgs/common/citron-emu/package.nix") {
# inherit pkgs;
# };
# borgtui = pkgs.callPackage (lib.custom.relativeToRoot "pkgs/common/borgtui/package.nix") {
# inherit pkgs;
# };
homeDir = hostSpec.home;
borg-wrapper = pkgs.writeScript "borg-wrapper" ''

View file

@ -1,575 +0,0 @@
# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
{ lib, ... }:
with lib.hm.gvariant;
{
dconf.settings = {
"desktop/ibus/general" = {
preload-engines = [];
};
"io/elementary/code/folder-manager" = {
opened-folders = [ "/home/toph/git/Nix/dot.nix" ];
};
"io/elementary/code/saved-state" = {
hp1-size = 144;
last-opened-path = "/home/toph";
vp-size = 125;
window-size = mkTuple [ 850 550 ];
window-state = "Normal";
};
"io/elementary/code/settings" = {
focused-document = "file:///home/toph/git/Nix/dot.nix/home/toph/common/optional/gaming/default.nix";
opened-files = [ (mkTuple [ "file:///home/toph/git/Nix/dot.nix/home/toph/rune/default.nix" 258 ]) (mkTuple [ "file:///home/toph/git/Nix/dot.nix/home/toph/common/optional/gaming/default.nix" 1079 ]) ];
plugins-enabled = [ "brackets-completion" "detect-indent" "editorconfig" ];
};
"io/elementary/desktop/wingpanel/applications-menu" = {
use-category = false;
};
"io/elementary/desktop/wingpanel/bluetooth" = {
bluetooth-enabled = true;
};
"io/elementary/desktop/wingpanel/sound" = {
last-title-info = [ "io.elementary.music.desktop" "" "" ];
preferred-devices = {
alsa_card.usb-Sonix_Technology_Co.__Ltd._USB_Live_camera_SN0001-02:analog-input-mic = 1741729685;
alsa_card.usb-Kingston_HyperX_Cloud_Alpha_S_000000000001-00:analog-input-mic = 1741729685;
alsa_card.pci-0000_03_00.1:hdmi-output-4 = 1741729685;
alsa_card.pci-0000_13_00.1:hdmi-output-0 = 1741724405;
};
};
"io/elementary/files/file-chooser" = {
last-folder-uri = "file:///home/toph/git/Nix/dot.nix";
window-size = mkTuple [ 800 450 ];
};
"io/elementary/files/icon-view" = {
zoom-level = "large";
};
"io/elementary/files/preferences" = {
active-tab-position = 0;
default-viewmode = "icon";
show-hiddenfiles = true;
sidebar-cat-personal-expander = true;
sidebar-width = 365;
tab-info-list = [ (mkTuple [ (mkUint32 0) "file:///home/toph/git/Nix/dot.nix/home/toph/rune" "" ]) ];
window-size = mkTuple [ 1970 1450 ];
window-state = "normal";
};
"io/elementary/settings" = {
window-height = 817;
window-maximized = false;
window-width = 1207;
};
"io/elementary/settings/keyboard" = {
first-launch = false;
};
"io/elementary/terminal/saved-state" = {
focused-tab = 0;
tab-zooms = [ "1" ];
tabs = [ "/home/toph/git/Nix/dot.nix" ];
window-size = mkTuple [ 1844 1281 ];
window-state = "Normal";
zoom = 1.0;
};
"io/elementary/terminal/settings" = {
prefer-dark-style = true;
theme = "dark";
};
"net/launchpad/plank/docks/dock1" = {
dock-items = [ "gala-multitaskingview.dockitem" "io.elementary.files.dockitem" "org.gnome.Epiphany.dockitem" "io.elementary.mail.dockitem" "io.elementary.tasks.dockitem" "io.elementary.calendar.dockitem" "io.elementary.music.dockitem" "io.elementary.videos.dockitem" "io.elementary.photos.dockitem" "io.elementary.settings.dockitem" ];
};
"org/gnome/Console" = {
last-window-maximised = false;
last-window-size = mkTuple [ 1463 1048 ];
};
"org/gnome/Extensions" = {
window-height = 1144;
window-maximized = false;
window-width = 1736;
};
"org/gnome/Weather" = {
window-height = 420;
window-maximized = false;
window-width = 992;
};
"org/gnome/baobab/ui" = {
is-maximized = false;
window-size = mkTuple [ 2023 1374 ];
};
"org/gnome/clocks/state/window" = {
maximized = false;
panel-id = "world";
size = mkTuple [ 870 690 ];
};
"org/gnome/control-center" = {
last-panel = "keyboard";
window-state = mkTuple [ 1663 1048 false ];
};
"org/gnome/desktop/app-folders" = {
folder-children = [ "Utilities" "YaST" "Pardus" ];
};
"org/gnome/desktop/app-folders/folders/Pardus" = {
categories = [ "X-Pardus-Apps" ];
name = "X-Pardus-Apps.directory";
translate = true;
};
"org/gnome/desktop/app-folders/folders/Utilities" = {
apps = [ "org.freedesktop.GnomeAbrt.desktop" "nm-connection-editor.desktop" "org.gnome.baobab.desktop" "org.gnome.Connections.desktop" "org.gnome.DejaDup.desktop" "org.gnome.DiskUtility.desktop" "org.gnome.Evince.desktop" "org.gnome.FileRoller.desktop" "org.gnome.font-viewer.desktop" "org.gnome.Loupe.desktop" "org.freedesktop.MalcontentControl.desktop" "org.gnome.seahorse.Application.desktop" "org.gnome.tweaks.desktop" "org.gnome.Usage.desktop" ];
categories = [ "X-GNOME-Utilities" ];
name = "X-GNOME-Utilities.directory";
translate = true;
};
"org/gnome/desktop/app-folders/folders/YaST" = {
categories = [ "X-SuSE-YaST" ];
name = "suse-yast.directory";
translate = true;
};
"org/gnome/desktop/background" = {
color-shading-type = "solid";
picture-options = "zoom";
picture-uri = "file:////nix/store/2fkxipgns07ik26hswq58kkx1m889ycw-wallpaper.jpg";
picture-uri-dark = "file:////nix/store/2fkxipgns07ik26hswq58kkx1m889ycw-wallpaper.jpg";
primary-color = "#000000";
secondary-color = "#000000";
};
"org/gnome/desktop/datetime" = {
automatic-timezone = true;
};
"org/gnome/desktop/input-sources" = {
sources = [ (mkTuple [ "xkb" "us" ]) ];
xkb-options = [ "compose:menu" "lv3:ralt_switch" "terminate:ctrl_alt_bksp" ];
};
"org/gnome/desktop/input-sources/xkb-options" = {
xkb-options = [ "compose:menu" "lv3:ralt_switch" "terminate:ctrl_alt_bksp" ];
};
"org/gnome/desktop/interface" = {
accent-color = "blue";
color-scheme = "prefer-dark";
cursor-theme = "Numix-Cursor";
gtk-theme = "Gruvbox-Dark";
icon-theme = "Papirus-Dark";
};
"org/gnome/desktop/notifications" = {
application-children = [ "org-gnome-console" "zen-twilight" "gnome-power-panel" "org-gnome-nautilus" "org-gnome-baobab" "spotify" "vesktop" "org-wezfurlong-wezterm" "org-remmina-remmina" "idea-ultimate" "org-telegram-desktop" ];
};
"org/gnome/desktop/notifications/application/gnome-power-panel" = {
application-id = "gnome-power-panel.desktop";
};
"org/gnome/desktop/notifications/application/idea-ultimate" = {
application-id = "idea-ultimate.desktop";
};
"org/gnome/desktop/notifications/application/org-gnome-baobab" = {
application-id = "org.gnome.baobab.desktop";
};
"org/gnome/desktop/notifications/application/org-gnome-console" = {
application-id = "org.gnome.Console.desktop";
};
"org/gnome/desktop/notifications/application/org-gnome-nautilus" = {
application-id = "org.gnome.Nautilus.desktop";
};
"org/gnome/desktop/notifications/application/org-remmina-remmina" = {
application-id = "org.remmina.Remmina.desktop";
};
"org/gnome/desktop/notifications/application/org-telegram-desktop" = {
application-id = "org.telegram.desktop.desktop";
};
"org/gnome/desktop/notifications/application/org-wezfurlong-wezterm" = {
application-id = "org.wezfurlong.wezterm.desktop";
};
"org/gnome/desktop/notifications/application/spotify" = {
application-id = "spotify.desktop";
};
"org/gnome/desktop/notifications/application/vesktop" = {
application-id = "vesktop.desktop";
};
"org/gnome/desktop/notifications/application/zen-twilight" = {
application-id = "zen.desktop";
};
"org/gnome/desktop/peripherals/mouse" = {
accel-profile = "flat";
natural-scroll = false;
speed = 0.0;
};
"org/gnome/desktop/peripherals/touchpad" = {
edge-scrolling-enabled = false;
two-finger-scrolling-enabled = true;
};
"org/gnome/desktop/screensaver" = {
color-shading-type = "solid";
picture-options = "zoom";
picture-uri = "file:////nix/store/2fkxipgns07ik26hswq58kkx1m889ycw-wallpaper.jpg";
primary-color = "#241f31";
secondary-color = "#000000";
};
"org/gnome/desktop/search-providers" = {
disabled = [ "org.gnome.seahorse.Application.desktop" "org.gnome.Epiphany.desktop" "org.gnome.Contacts.desktop" "org.gnome.Calendar.desktop" "org.gnome.Characters.desktop" "org.gnome.clocks.desktop" "org.gnome.Calculator.desktop" ];
enabled = [ "org.gnome.Weather.desktop" ];
sort-order = [ "org.gnome.Settings.desktop" "org.gnome.Contacts.desktop" "org.gnome.Nautilus.desktop" ];
};
"org/gnome/desktop/session" = {
idle-delay = mkUint32 480;
};
"org/gnome/desktop/sound" = {
event-sounds = true;
theme-name = "__custom";
};
"org/gnome/desktop/wm/keybindings" = {
close = [ "<Super>q" ];
maximize = [""];
move-to-monitor-left = [""];
move-to-monitor-right = [""];
move-to-workspace-right = [""];
shift-overview-down = [ "" ];
shift-overview-up = [ "" ];
switch-to-workspace-down = [ "" ];
switch-to-workspace-right = [];
switch-to-workspace-up = [ "" ];
toggle-application-view = [ "" ];
toggle-message-tray = [ "<Super>a" ];
unmaximize = [ "" ];
};
"org/gnome/evolution-data-server" = {
migrated = true;
};
"org/gnome/mutter" = {
dynamic-workspaces = true;
edge-tiling = false;
};
"org/gnome/mutter/keybindings" = {
toggle-tiled-left = [ "" ];
toggle-tiled-right = [ "" ];
};
"org/gnome/nautilus/preferences" = {
default-folder-viewer = "icon-view";
migrated-gtk-settings = true;
search-filter-time-type = "last_modified";
};
"org/gnome/nautilus/window-state" = {
initial-size = mkTuple [ 2120 1584 ];
initial-size-file-chooser = mkTuple [ 890 550 ];
maximized = false;
};
"org/gnome/portal/filechooser/org/gnome/Settings" = {
last-folder-path = "/home/toph/Pictures";
};
"org/gnome/settings-daemon/plugins/color" = {
night-light-enabled = true;
night-light-schedule-automatic = true;
night-light-schedule-from = 18.0;
night-light-schedule-to = 7.0;
night-light-temperature = mkUint32 3700;
};
"org/gnome/settings-daemon/plugins/media-keys" = {
custom-keybindings = [ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/" ];
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
binding = "<Super>t";
command = "wezterm";
name = "Terminal";
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
binding = "<Super>f";
command = "nautilus";
name = "Files";
};
"org/gnome/settings-daemon/plugins/power" = {
power-button-action = "hibernate";
sleep-inactive-ac-timeout = 1200;
sleep-inactive-ac-type = "suspend";
};
"org/gnome/shell" = {
disable-user-extensions = false;
enabled-extensions = [ "appindicatorsupport@rgcjonas.gmail.com" "blur-my-shell@aunetx" "clipboard-indicator@tudmotu.com" "color-picker@tuberry" "dash-to-panel@jderose9.github.com" "hibernate@dafne.rocks" "monitor-brightness-volume@ailin.nemui" "native-window-placement@gnome-shell-extensions.gcampax.github.com" "screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com" "tilingshell@ferrarodomenico.com" "user-theme@gnome-shell-extensions.gcampax.github.com" "Vitals@CoreCoding.com" ];
favorite-apps = [ "org.gnome.Nautilus.desktop" "org.wezfurlong.wezterm.desktop" "win11.desktop" "zen.desktop" "spotify.desktop" "vesktop.desktop" "org.telegram.desktop.desktop" "code.desktop" "fleet-jet.desktop" "steam.desktop" "Marvel Rivals.desktop" "org.prismlauncher.PrismLauncher.desktop" ];
last-selected-power-profile = "performance";
welcome-dialog-last-shown-version = "47.4";
};
"org/gnome/shell/extensions/blur-my-shell" = {
settings-version = 2;
};
"org/gnome/shell/extensions/blur-my-shell/appfolder" = {
brightness = 0.6;
sigma = 30;
};
"org/gnome/shell/extensions/blur-my-shell/dash-to-dock" = {
blur = true;
brightness = 0.6;
sigma = 30;
static-blur = true;
style-dash-to-dock = 0;
};
"org/gnome/shell/extensions/blur-my-shell/panel" = {
brightness = 0.6;
sigma = 50;
static-blur = false;
};
"org/gnome/shell/extensions/blur-my-shell/window-list" = {
brightness = 0.6;
sigma = 30;
};
"org/gnome/shell/extensions/clipboard-indicator" = {
cache-only-favorites = false;
cache-size = 120;
display-mode = 0;
enable-keybindings = true;
history-size = 40;
notify-on-copy = false;
pinned-on-bottom = true;
strip-text = false;
toggle-menu = [ "<Super>v" ];
topbar-preview-size = 10;
};
"org/gnome/shell/extensions/color-picker" = {
color-history = [ (mkUint32 3158064) 1447446 14538709 14637907 1447446 3355443 16777215 1644825 ];
color-picker-shortcut = [ "<Super>c" ];
enable-notify = true;
enable-shortcut = true;
enable-systray = true;
menu-size = mkUint32 8;
notify-style = mkUint32 0;
persistent-mode = false;
preview-style = mkUint32 0;
};
"org/gnome/shell/extensions/dash-to-panel" = {
appicon-margin = 6;
appicon-padding = 8;
available-monitors = [ 0 1 ];
dot-position = "TOP";
dot-style-focused = "DASHES";
dot-style-unfocused = "DASHES";
multi-monitors = false;
panel-positions = ''
{"0":"TOP","1":"TOP"}\n
'';
primary-monitor = 0;
scroll-icon-action = "CYCLE_WINDOWS";
scroll-panel-action = "SWITCH_WORKSPACE";
trans-panel-opacity = "0.40";
trans-use-custom-opacity = true;
tray-padding = 8;
};
"org/gnome/shell/extensions/hibernate-status-button" = {
show-hibernate-dialog = true;
show-hybrid-sleep = true;
show-hybrid-sleep-dialog = false;
};
"org/gnome/shell/extensions/tilingshell" = {
enable-autotiling = false;
enable-smart-window-border-radius = false;
enable-window-border = true;
inner-gaps = mkUint32 8;
last-version-name-installed = "16.2";
layouts-json = "[{\"id\":\"Layout 1\",\"tiles\":[{\"x\":0,\"y\":0,\"width\":0.22,\"height\":0.5,\"groups\":[2,1]},{\"x\":0,\"y\":0.5,\"width\":0.22,\"height\":0.5,\"groups\":[1,2]},{\"x\":0.22,\"y\":0,\"width\":0.2794791666666666,\"height\":0.5,\"groups\":[7,5,2]},{\"x\":0.753125,\"y\":0,\"width\":0.24687499999999998,\"height\":0.5,\"groups\":[4,3]},{\"x\":0.753125,\"y\":0.5,\"width\":0.24687499999999998,\"height\":0.5,\"groups\":[4,3]},{\"x\":0.22,\"y\":0.5,\"width\":0.2797395833333334,\"height\":0.5,\"groups\":[5,6,2]},{\"x\":0.49973958333333335,\"y\":0.5,\"width\":0.2533854166666667,\"height\":0.5,\"groups\":[5,3,6]},{\"x\":0.49947916666666664,\"y\":0,\"width\":0.25364583333333346,\"height\":0.5,\"groups\":[3,5,7]}]},{\"id\":\"Layout 2\",\"tiles\":[{\"x\":0,\"y\":0,\"width\":0.22,\"height\":1,\"groups\":[1]},{\"x\":0.22,\"y\":0,\"width\":0.56,\"height\":1,\"groups\":[1,2]},{\"x\":0.78,\"y\":0,\"width\":0.22,\"height\":1,\"groups\":[2]}]},{\"id\":\"985825\",\"tiles\":[{\"x\":0,\"y\":0,\"width\":1,\"height\":0.5,\"groups\":[1]},{\"x\":0,\"y\":0.5,\"width\":1,\"height\":0.5,\"groups\":[1]}]}]";
move-window-center = [ "<Super>Return" ];
outer-gaps = mkUint32 4;
overridden-settings = "{\"org.gnome.mutter.keybindings\":{\"toggle-tiled-right\":\"['<Super>Right']\",\"toggle-tiled-left\":\"['<Super>Left']\"},\"org.gnome.desktop.wm.keybindings\":{\"maximize\":\"['<Super>Up']\",\"unmaximize\":\"['<Super>Down', '<Alt>F5']\"},\"org.gnome.mutter\":{\"edge-tiling\":\"false\"}}";
restore-window-original-size = false;
selected-layouts = [ [ "Layout 1" "985825" ] [ "Layout 1" "985825" ] ];
span-multiple-tiles-activation-key = [ "1" ];
span-window-all-tiles = [ "<Control><Super>Page_Up" ];
span-window-down = [ "<Alt><Super>Down" ];
span-window-left = [ "<Alt><Super>Left" ];
span-window-right = [ "<Alt><Super>Right" ];
span-window-up = [ "<Alt><Super>Up" ];
tiling-system-activation-key = [ "2" ];
untile-window = [ "<Control><Super>Page_Down" ];
window-border-color = "rgb(53,132,228)";
window-border-width = mkUint32 1;
};
"org/gnome/shell/extensions/user-theme" = {
name = "Gruvbox-Dark";
};
"org/gnome/shell/extensions/vitals" = {
alphabetize = true;
hide-icons = false;
hide-zeros = false;
hot-sensors = [ "_memory_usage_" "_storage_free_" "_network_public_ip_" "_processor_usage_" "__temperature_avg__" "_system_uptime_" ];
icon-style = 0;
include-static-gpu-info = false;
menu-centered = false;
position-in-panel = 4;
show-gpu = false;
};
"org/gnome/shell/keybindings" = {
shift-overview-down = [];
shift-overview-up = [];
};
"org/gnome/shell/weather" = {
automatic-location = true;
locations = [];
};
"org/gnome/shell/world-clocks" = {
locations = [];
};
"org/gnome/tweaks" = {
show-extensions-notice = false;
};
"org/gtk/gtk4/settings/color-chooser" = {
custom-colors = [ (mkTuple [ 0.2078431397676468 0.5176469683647156 0.8941176533699036 1.0 ]) (mkTuple [ 0.9254902005195618 0.3686274588108063 0.3686274588108063 1.0 ]) ];
selected-color = mkTuple [ true 0.2078431397676468 0.5176469683647156 0.8941176533699036 1.0 ];
};
"org/gtk/gtk4/settings/file-chooser" = {
show-hidden = true;
};
"org/gtk/settings/file-chooser" = {
date-format = "regular";
location-mode = "path-bar";
show-hidden = true;
show-size-column = true;
show-type-column = true;
sidebar-width = 165;
sort-column = "name";
sort-directories-first = true;
sort-order = "ascending";
type-format = "category";
window-position = mkTuple [ 102 102 ];
window-size = mkTuple [ 1231 902 ];
};
"org/onboard" = {
schema-version = "2.3";
system-theme-associations = {
HighContrast = "HighContrast";
HighContrastInverse = "HighContrastInverse";
LowContrast = "LowContrast";
ContrastHighInverse = "HighContrastInverse";
Default = "";
};
use-system-defaults = false;
};
"org/virt-manager/virt-manager" = {
manager-window-height = 960;
manager-window-width = 1557;
xmleditor-enabled = true;
};
"org/virt-manager/virt-manager/confirm" = {
delete-storage = true;
forcepoweroff = true;
removedev = false;
unapplied-dev = true;
};
"org/virt-manager/virt-manager/connections" = {
autoconnect = [ "qemu:///session" "qemu:///system" ];
uris = [ "qemu:///session" "qemu:///system" ];
};
"org/virt-manager/virt-manager/conns/qemu:session" = {
window-size = mkTuple [ 800 600 ];
};
"org/virt-manager/virt-manager/conns/qemu:system" = {
window-size = mkTuple [ 800 600 ];
};
"org/virt-manager/virt-manager/details" = {
show-toolbar = true;
};
"org/virt-manager/virt-manager/new-vm" = {
graphics-type = "system";
};
"org/virt-manager/virt-manager/vmlist-fields" = {
disk-usage = true;
network-traffic = true;
};
"org/virt-manager/virt-manager/vms/338a0af844bb4ac49039e20b1763e86b" = {
autoconnect = 1;
vm-window-size = mkTuple [ 1280 872 ];
};
"org/virt-manager/virt-manager/vms/9148c8b7c3584392a70d923a0d8ae8ad" = {
autoconnect = 1;
vm-window-size = mkTuple [ 1280 844 ];
};
"org/virt-manager/virt-manager/vms/af177cf0fd0a4cc9817e574402e106f5" = {
autoconnect = 1;
vm-window-size = mkTuple [ 2021 1178 ];
};
};
}

View file

@ -0,0 +1,492 @@
# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
{ lib, ... }:
with lib.hm.gvariant;
{
dconf.settings = {
"org/gnome/TextEditor" = {
style-scheme = "stylix";
};
"org/gnome/desktop/app-folders" = {
folder-children = [
"System"
"Utilities"
"Useless Launchers"
];
};
"org/gnome/desktop/app-folders/folders/System" = {
apps = [
"org.gnome.baobab.desktop"
"org.gnome.DiskUtility.desktop"
"org.gnome.Logs.desktop"
"org.gnome.SystemMonitor.desktop"
"org.gnome.tweaks.desktop"
];
name = "X-GNOME-Shell-System.directory";
translate = true;
};
"org/gnome/desktop/app-folders/folders/Utilities" = {
apps = [
"org.gnome.Connections.desktop"
"org.gnome.FileRoller.desktop"
"org.gnome.font-viewer.desktop"
"org.gnome.Loupe.desktop"
"org.gnome.seahorse.Application.desktop"
];
name = "X-GNOME-Shell-Utilities.directory";
translate = true;
};
"org/gnome/desktop/app-folders/folders/Useless" = {
apps = [
"fish.desktop"
"ranger.desktop"
];
name = "Useless Launchers";
translate = false;
};
"org/gnome/desktop/input-sources" = {
sources = [
(mkTuple [
"xkb"
"us"
])
];
xkb-options = [
"terminate:ctrl_alt_bksp"
"lv3:ralt_switch"
"compose:menu"
];
};
"org/gnome/desktop/wm/keybindings" = {
maximize = [ ];
move-to-monitor-down = [ ];
move-to-monitor-left = [ ];
move-to-monitor-right = [ ];
move-to-monitor-up = [ ];
move-to-workspace-down = [ "<Control><Shift><Alt>Down" ];
move-to-workspace-left = [ ];
move-to-workspace-right = [ ];
move-to-workspace-up = [ "<Control><Shift><Alt>Up" ];
shift-overview-down = [ "" ];
shift-overview-up = [ "" ];
switch-applications = [ ];
switch-applications-backward = [
"<Shift><Super>Tab"
"<Shift><Alt>Tab"
];
switch-group = [
"<Super>Above_Tab"
"<Alt>Above_Tab"
];
switch-group-backward = [
"<Shift><Super>Above_Tab"
"<Shift><Alt>Above_Tab"
];
switch-panels = [ "<Control><Alt>Tab" ];
switch-panels-backward = [ "<Shift><Control><Alt>Tab" ];
switch-to-workspace-1 = [ ];
switch-to-workspace-down = [ "" ];
switch-to-workspace-last = [ ];
switch-to-workspace-left = [ ];
switch-to-workspace-right = [ ];
switch-to-workspace-up = [ "" ];
toggle-application-view = [ "" ];
toggle-message-tray = [ "" ];
unmaximize = [ ];
};
"org/gnome/nautilus/preferences" = {
default-folder-viewer = "icon-view";
migrated-gtk-settings = true;
search-filter-time-type = "last_modified";
};
"org/gnome/settings-daemon/plugins/color" = {
night-light-enabled = true;
night-light-schedule-automatic = false;
night-light-schedule-from = 19.0;
night-light-temperature = mkUint32 3892;
};
"org/gnome/settings-daemon/plugins/media-keys" = {
www = [ "<Super>w" ];
custom-keybindings = [
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/"
];
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
binding = "<Super>t";
command = "ghostty";
name = "Terminal";
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
binding = "<Super>f";
command = "nautilus";
name = "Files";
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = {
binding = "<Super>e";
command = "code";
name = "Code";
};
"org/gnome/shell" = {
enabled-extensions = [
"user-theme@gnome-shell-extensions.gcampax.github.com"
"dash-in-panel@fthx"
"AlphabeticalAppGrid@stuarthayhurst"
"color-picker@tuberry"
"monitor-brightness-volume@ailin.nemui"
"quicksettings-audio-devices-renamer@marcinjahn.com"
"Vitals@CoreCoding.com"
"appindicatorsupport@rgcjonas.gmail.com"
"paperwm@paperwm.github.com"
"just-perfection-desktop@just-perfection"
"pano@elhan.io"
"blur-my-shell@aunetx"
"quicksettings-audio-devices-hider@marcinjahn.com"
"undecorate@sun.wxg@gmail.com"
];
favorite-apps = [
"com.mitchellh.ghostty.desktop"
"org.gnome.Nautilus.desktop"
"win11.desktop"
"zen.desktop"
"code.desktop"
"spotify.desktop"
"vesktop.desktop"
"org.telegram.desktop.desktop"
"appeditor-local-application-1.desktop"
"Ryujinx.desktop"
"Marvel Rivals.desktop"
];
last-selected-power-profile = "performance";
welcome-dialog-last-shown-version = "48.1";
};
"org/gnome/shell/extensions/alphabetical-app-grid" = {
folder-order-position = "start";
};
"org/gnome/shell/extensions/appindicator" = {
icon-brightness = 0.0;
icon-contrast = 0.0;
icon-opacity = 240;
icon-saturation = 0.0;
icon-size = 0;
legacy-tray-enabled = true;
tray-pos = "right";
};
"org/gnome/shell/extensions/blur-my-shell" = {
hacks-level = 1;
settings-version = 2;
};
"org/gnome/shell/extensions/blur-my-shell/appfolder" = {
brightness = 1.0;
sigma = 85;
};
"org/gnome/shell/extensions/blur-my-shell/applications" = {
blur = true;
dynamic-opacity = false;
enable-all = true;
opacity = 230;
sigma = 85;
};
"org/gnome/shell/extensions/blur-my-shell/coverflow-alt-tab" = {
pipeline = "pipeline_default";
};
"org/gnome/shell/extensions/blur-my-shell/dash-to-dock" = {
blur = false;
brightness = 1.0;
override-background = true;
pipeline = "pipeline_default_rounded";
sigma = 85;
static-blur = false;
style-dash-to-dock = 0;
unblur-in-overview = true;
};
"org/gnome/shell/extensions/blur-my-shell/dash-to-panel" = {
blur-original-panel = false;
};
"org/gnome/shell/extensions/blur-my-shell/hidetopbar" = {
compatibility = false;
};
"org/gnome/shell/extensions/blur-my-shell/lockscreen" = {
pipeline = "pipeline_default";
};
"org/gnome/shell/extensions/blur-my-shell/overview" = {
pipeline = "pipeline_default";
};
"org/gnome/shell/extensions/blur-my-shell/panel" = {
brightness = 1.0;
override-background = true;
pipeline = "pipeline_default";
sigma = 85;
static-blur = false;
};
"org/gnome/shell/extensions/blur-my-shell/screenshot" = {
pipeline = "pipeline_default";
};
"org/gnome/shell/extensions/dash-in-panel" = {
button-margin = 6;
center-dash = true;
colored-dot = true;
icon-size = 32;
move-date = true;
panel-height = 46;
show-apps = false;
show-dash = false;
show-label = true;
};
"org/gnome/shell/extensions/just-perfection" = {
accessibility-menu = true;
activities-button = false;
clock-menu = true;
clock-menu-position = 1;
dash = true;
dash-app-running = true;
dash-separator = false;
keyboard-layout = true;
max-displayed-search-results = 0;
panel-in-overview = true;
quick-settings = true;
quick-settings-dark-mode = true;
ripple-box = true;
show-apps-button = false;
support-notifier-showed-version = 34;
support-notifier-type = 0;
top-panel-position = 0;
window-preview-close-button = true;
workspace = false;
workspace-switcher-size = 0;
workspaces-in-app-grid = true;
};
"org/gnome/shell/extensions/pano" = {
history-length = 100;
is-in-incognito = false;
window-position = mkUint32 2;
};
"org/gnome/shell/extensions/paperwm" = {
cycle-height-steps = [
0.25
0.3
0.5
0.7
0.95
];
cycle-width-steps = [
0.25
0.3
0.5
0.7
0.95
];
default-focus-mode = 1;
disable-topbar-styling = true;
edge-preview-enable = true;
edge-preview-timeout-enable = false;
gesture-enabled = false;
gesture-horizontal-fingers = 0;
horizontal-margin = 8;
last-used-display-server = "Wayland";
restore-attach-modal-dialogs = "true";
restore-edge-tiling = "true";
restore-workspaces-only-on-primary = "true";
selection-border-size = 4;
show-focus-mode-icon = false;
show-open-position-icon = false;
show-window-position-bar = false;
show-workspace-indicator = false;
vertical-margin = 8;
vertical-margin-bottom = 8;
window-gap = 8;
winprops = [ ];
};
"org/gnome/shell/extensions/paperwm/keybindings" = {
center = [ "<Super>c" ];
center-horizontally = [ "" ];
center-vertically = [ "" ];
close-window = [ "<Super>q" ];
cycle-height = [ "<Alt><Super>Up" ];
cycle-height-backwards = [ "<Alt><Super>Down" ];
cycle-width = [ "<Alt><Super>Right" ];
cycle-width-backwards = [ "<Alt><Super>Left" ];
live-alt-tab = [ "<Alt>Tab" ];
live-alt-tab-backward = [ "" ];
live-alt-tab-scratch = [ "" ];
live-alt-tab-scratch-backward = [ "" ];
move-down = [ "<Shift><Super>Down" ];
move-down-workspace = [ "" ];
move-left = [ "<Shift><Super>Left" ];
move-monitor-above = [ "" ];
move-monitor-below = [ "" ];
move-monitor-left = [ "<Shift><Alt><Super>Left" ];
move-monitor-right = [ "<Shift><Alt><Super>Right" ];
move-previous-workspace = [ "" ];
move-previous-workspace-backward = [ "" ];
move-right = [ "<Shift><Super>Right" ];
move-space-monitor-above = [ "" ];
move-space-monitor-below = [ "" ];
move-space-monitor-left = [ "" ];
move-space-monitor-right = [ "" ];
move-up = [ "<Shift><Super>Up" ];
move-up-workspace = [ "" ];
new-window = [ "<Super>n" ];
previous-workspace = [ "" ];
previous-workspace-backward = [ "" ];
swap-monitor-above = [ "" ];
swap-monitor-below = [ "" ];
swap-monitor-left = [ "" ];
swap-monitor-right = [ "" ];
switch-down-workspace = [ "" ];
switch-focus-mode = [ "<Alt><Super>a" ];
switch-monitor-above = [ "" ];
switch-monitor-below = [ "" ];
switch-monitor-left = [ "" ];
switch-monitor-right = [ "" ];
switch-next = [ "" ];
switch-open-window-position = [ "" ];
switch-previous = [ "" ];
switch-up-workspace = [ "" ];
take-window = [ "" ];
toggle-maximize-width = [ "" ];
toggle-scratch = [ "<Super>BackSpace" ];
toggle-scratch-layer = [ "<Control><Super>BackSpace" ];
toggle-scratch-window = [ "" ];
toggle-top-and-position-bar = [ "" ];
};
"org/gnome/shell/extensions/paperwm/workspaces" = {
list = [
"d3fe7ebc-4b28-4738-98b8-d4cd3e31cf7f"
"5291a627-8b95-48f4-bfd4-1f9e56b5234b"
"77949e36-39cc-4831-ad12-48054589a02a"
"407eab83-d3cd-4974-8d32-8fe0de05579c"
"0617efdf-c223-434c-9fd2-8bf9bedf9700"
];
};
"org/gnome/shell/extensions/paperwm/workspaces/0617efdf-c223-434c-9fd2-8bf9bedf9700" = {
index = 4;
};
"org/gnome/shell/extensions/paperwm/workspaces/407eab83-d3cd-4974-8d32-8fe0de05579c" = {
index = 3;
};
"org/gnome/shell/extensions/paperwm/workspaces/5291a627-8b95-48f4-bfd4-1f9e56b5234b" = {
index = 1;
show-top-bar = true;
};
"org/gnome/shell/extensions/paperwm/workspaces/77949e36-39cc-4831-ad12-48054589a02a" = {
index = 2;
};
"org/gnome/shell/extensions/paperwm/workspaces/d3fe7ebc-4b28-4738-98b8-d4cd3e31cf7f" = {
index = 0;
show-top-bar = true;
};
"org/gnome/shell/extensions/quicksettings-audio-devices-hider" = {
available-input-names = [
"Microphone \8211 USB Live camera"
"Digital Input (S/PDIF) \8211 USB Live camera"
"Microphone \8211 HyperX Cloud Alpha S"
];
available-output-names = [
"HDMI / DisplayPort 3 \8211 HD-Audio Generic"
"HDMI / DisplayPort \8211 Rembrandt Radeon High Definition Audio Controller"
"Analog Output \8211 HyperX Cloud Alpha S"
"Digital Output (S/PDIF) \8211 HyperX Cloud Alpha S"
];
excluded-input-names = [
"Digital Input (S/PDIF) \8211 USB Live camera"
"Microphone \8211 USB Live camera"
];
excluded-output-names = [
"HDMI / DisplayPort \8211 Rembrandt Radeon High Definition Audio Controller"
"Analog Output \8211 HyperX Cloud Alpha S"
];
};
"org/gnome/shell/extensions/quicksettings-audio-devices-renamer" = {
input-names-map = ''{'Microphone USB Live camera': 'NO', 'Digital Input (S/PDIF) USB Live camera': 'NO', 'Microphone HyperX Cloud Alpha S': 'Cloud S'}'';
output-names-map = ''{'HDMI / DisplayPort 3 HD-Audio Generic': 'Navi', 'HDMI / DisplayPort Rembrandt Radeon High Definition Audio Controller': 'NO', 'Analog Output HyperX Cloud Alpha S': 'NO', 'Digital Output (S/PDIF) HyperX Cloud Alpha S': 'Cloud S', 'Dummy Output': 'Dummy Output'}'';
};
"org/gnome/shell/extensions/user-theme" = {
name = "Stylix";
};
"org/gnome/shell/extensions/vitals" = {
alphabetize = true;
fixed-widths = true;
hide-icons = false;
hide-zeros = true;
icon-style = 1;
include-static-gpu-info = true;
include-static-info = true;
menu-centered = false;
position-in-panel = 0;
show-fan = false;
show-gpu = true;
show-memory = true;
show-network = true;
show-processor = true;
show-storage = true;
show-system = true;
show-temperature = true;
show-voltage = false;
use-higher-precision = false;
};
"org/gnome/shell/keybindings" = {
focus-active-notification = [ ];
shift-overview-down = [ ];
shift-overview-up = [ ];
toggle-application-view = [ "Home" ];
toggle-message-tray = [
"<Super>v"
"<Super>m"
];
};
"org/gnome/shell/world-clocks" = {
locations = [ ];
};
"org/virt-manager/virt-manager/connections" = {
autoconnect = [ "qemu:///system" ];
uris = [ "qemu:///system" ];
};
};
}

View file

@ -1,411 +1,7 @@
{
pkgs,
config,
lib,
...
}:
{
home.packages = with pkgs; [
gruvbox-gtk-theme
papirus-icon-theme
numix-cursor-theme
];
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
theme = {
name = "Gruvbox-Dark";
package = pkgs.gruvbox-gtk-theme;
};
cursorTheme = {
name = "Numix-Cursor";
package = pkgs.numix-cursor-theme;
};
gtk3.extraConfig = {
Settings = ''
gtk-application-prefer-dark-theme=1
'';
};
gtk4.extraConfig = {
Settings = ''
gtk-application-prefer-dark-theme=1
'';
};
};
# Created with 'dconf dump / | dconf2nix > dconf.nix'
dconf = {
enable = true;
settings = with lib.hm.gvariant; {
"org/gnome/desktop/background" = {
color-shading-type = "solid";
picture-options = "zoom";
picture-uri = "file:///" + ./wallpaper.jpg;
picture-uri-dark = "file:///" + ./wallpaper.jpg;
primary-color = "#000000";
secondary-color = "#000000";
};
"org/gnome/desktop/screensaver" = {
color-shading-type = "solid";
picture-options = "zoom";
picture-uri = "file:///" + ./wallpaper.jpg;
primary-color = "#241f31";
secondary-color = "#000000";
};
"org/gnome/desktop/interface" = {
accent-color = "blue";
color-scheme = "prefer-dark";
cursor-theme = "Numix-Cursor";
gtk-theme = "Gruvbox-Dark";
icon-theme = "Papirus-Dark";
};
"org/gnome/desktop/datetime" = {
automatic-timezone = true;
};
"org/gnome/desktop/input-sources" = {
sources = [
(mkTuple [
"xkb"
"us"
])
];
xkb-options = [
"compose:menu"
"lv3:ralt_switch"
"terminate:ctrl_alt_bksp"
];
};
"org/gnome/desktop/input-sources/xkb-options" = {
xkb-options = [
"compose:menu"
"lv3:ralt_switch"
"terminate:ctrl_alt_bksp"
];
};
"org/gnome/desktop/peripherals/mouse" = {
accel-profile = "flat";
natural-scroll = false;
speed = 0.0;
};
"org/gnome/desktop/search-providers" = {
disabled = [
"org.gnome.seahorse.Application.desktop"
"org.gnome.Epiphany.desktop"
"org.gnome.Contacts.desktop"
"org.gnome.Calendar.desktop"
"org.gnome.Characters.desktop"
"org.gnome.clocks.desktop"
"org.gnome.Calculator.desktop"
];
enabled = [ "org.gnome.Weather.desktop" ];
sort-order = [
"org.gnome.Settings.desktop"
"org.gnome.Contacts.desktop"
"org.gnome.Nautilus.desktop"
];
};
"org/gnome/desktop/session" = {
idle-delay = mkUint32 480;
};
"org/gnome/desktop/wm/keybindings" = {
close = [ "<Super>q" ];
maximize = [ "" ];
move-to-monitor-left = [ "" ];
move-to-monitor-right = [ "" ];
move-to-workspace-right = [ "" ];
shift-overview-down = [ "" ];
shift-overview-up = [ "" ];
switch-to-workspace-down = [ "" ];
switch-to-workspace-right = [ ];
switch-to-workspace-up = [ "" ];
toggle-application-view = [ "" ];
toggle-message-tray = [ "<Super>a" ];
unmaximize = [ "" ];
};
"org/gnome/mutter" = {
dynamic-workspaces = true;
edge-tiling = false;
};
"org/gnome/mutter/keybindings" = {
toggle-tiled-left = [ "" ];
toggle-tiled-right = [ "" ];
};
"org/gnome/settings-daemon/plugins/color" = {
night-light-enabled = true;
night-light-schedule-automatic = true;
night-light-schedule-from = 18.0;
night-light-schedule-to = 7.0;
night-light-temperature = mkUint32 3700;
};
"org/gnome/settings-daemon/plugins/media-keys" = {
custom-keybindings = [
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/"
];
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
binding = "<Super>t";
command = "wezterm";
name = "Terminal";
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
binding = "<Super>f";
command = "nautilus";
name = "Files";
};
# "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = {
# binding = "<Super>f";
# command = "rofi?";
# name = "rofi";
# };
"org/gnome/settings-daemon/plugins/power" = {
power-button-action = "hibernate";
sleep-inactive-ac-timeout = 1200;
sleep-inactive-ac-type = "suspend";
};
"org/gnome/shell" = {
disable-user-extensions = false;
enabled-extensions = [
"appindicatorsupport@rgcjonas.gmail.com"
"blur-my-shell@aunetx"
"clipboard-indicator@tudmotu.com"
"color-picker@tuberry"
"dash-to-panel@jderose9.github.com"
"monitor-brightness-volume@ailin.nemui"
"native-window-placement@gnome-shell-extensions.gcampax.github.com"
"screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com"
"tilingshell@ferrarodomenico.com"
"user-theme@gnome-shell-extensions.gcampax.github.com"
"Vitals@CoreCoding.com"
# pkgs.gnomeExtensions.just-perfection.extensionUuid
pkgs.gnomeExtensions.alphabetical-app-grid.extensionUuid
pkgs.gnomeExtensions.quick-settings-audio-devices-hider.extensionUuid
pkgs.gnomeExtensions.quick-settings-audio-devices-renamer.extensionUuid
];
favorite-apps = [
"org.gnome.Nautilus.desktop"
"org.wezfurlong.wezterm.desktop"
"win11.desktop"
"zen.desktop"
"spotify.desktop"
"vesktop.desktop"
"org.telegram.desktop.desktop"
"code.desktop"
"fleet-jet.desktop"
"steam.desktop"
"Marvel Rivals.desktop"
"org.prismlauncher.PrismLauncher.desktop"
];
last-selected-power-profile = "performance";
};
"org/gnome/shell/extensions/blur-my-shell" = {
settings-version = 2;
};
"org/gnome/shell/extensions/blur-my-shell/appfolder" = {
brightness = 0.6;
sigma = 30;
};
"org/gnome/shell/extensions/blur-my-shell/dash-to-dock" = {
blur = true;
brightness = 0.6;
sigma = 30;
static-blur = true;
style-dash-to-dock = 0;
};
"org/gnome/shell/extensions/blur-my-shell/panel" = {
brightness = 0.6;
sigma = 50;
static-blur = false;
};
"org/gnome/shell/extensions/blur-my-shell/window-list" = {
brightness = 0.6;
sigma = 30;
};
"org/gnome/shell/extensions/clipboard-indicator" = {
cache-only-favorites = false;
cache-size = 120;
display-mode = 0;
enable-keybindings = true;
history-size = 40;
notify-on-copy = false;
pinned-on-bottom = true;
strip-text = false;
toggle-menu = [ "<Super>v" ];
topbar-preview-size = 10;
};
"org/gnome/shell/extensions/color-picker" = {
color-history = [
(mkUint32 3158064)
1447446
14538709
14637907
1447446
3355443
16777215
1644825
];
color-picker-shortcut = [ "<Super>c" ];
enable-notify = true;
enable-shortcut = true;
enable-systray = true;
menu-size = mkUint32 8;
notify-style = mkUint32 0;
persistent-mode = false;
preview-style = mkUint32 0;
};
"org/gnome/shell/extensions/dash-to-panel" = {
appicon-margin = 6;
appicon-padding = 8;
available-monitors = [
0
1
];
dot-position = "TOP";
dot-style-focused = "DASHES";
dot-style-unfocused = "DASHES";
multi-monitors = false;
panel-positions = ''
{"0":"TOP","1":"TOP"}
'';
primary-monitor = 0;
scroll-icon-action = "CYCLE_WINDOWS";
scroll-panel-action = "SWITCH_WORKSPACE";
trans-panel-opacity = "0.40";
trans-use-custom-opacity = true;
tray-padding = 8;
};
"org/gnome/shell/extensions/tilingshell" = {
enable-autotiling = false;
enable-smart-window-border-radius = false;
enable-window-border = true;
inner-gaps = mkUint32 8;
last-version-name-installed = "16.2";
layouts-json = "[{\"id\":\"Layout 1\",\"tiles\":[{\"x\":0,\"y\":0,\"width\":0.22,\"height\":0.5,\"groups\":[2,1]},{\"x\":0,\"y\":0.5,\"width\":0.22,\"height\":0.5,\"groups\":[1,2]},{\"x\":0.22,\"y\":0,\"width\":0.2794791666666666,\"height\":0.5,\"groups\":[7,5,2]},{\"x\":0.753125,\"y\":0,\"width\":0.24687499999999998,\"height\":0.5,\"groups\":[4,3]},{\"x\":0.753125,\"y\":0.5,\"width\":0.24687499999999998,\"height\":0.5,\"groups\":[4,3]},{\"x\":0.22,\"y\":0.5,\"width\":0.2797395833333334,\"height\":0.5,\"groups\":[5,6,2]},{\"x\":0.49973958333333335,\"y\":0.5,\"width\":0.2533854166666667,\"height\":0.5,\"groups\":[5,3,6]},{\"x\":0.49947916666666664,\"y\":0,\"width\":0.25364583333333346,\"height\":0.5,\"groups\":[3,5,7]}]},{\"id\":\"Layout 2\",\"tiles\":[{\"x\":0,\"y\":0,\"width\":0.22,\"height\":1,\"groups\":[1]},{\"x\":0.22,\"y\":0,\"width\":0.56,\"height\":1,\"groups\":[1,2]},{\"x\":0.78,\"y\":0,\"width\":0.22,\"height\":1,\"groups\":[2]}]},{\"id\":\"985825\",\"tiles\":[{\"x\":0,\"y\":0,\"width\":1,\"height\":0.5,\"groups\":[1]},{\"x\":0,\"y\":0.5,\"width\":1,\"height\":0.5,\"groups\":[1]}]}]";
move-window-center = [ "<Super>Return" ];
outer-gaps = mkUint32 4;
overridden-settings = "{\"org.gnome.mutter.keybindings\":{\"toggle-tiled-right\":\"['<Super>Right']\",\"toggle-tiled-left\":\"['<Super>Left']\"},\"org.gnome.desktop.wm.keybindings\":{\"maximize\":\"['<Super>Up']\",\"unmaximize\":\"['<Super>Down', '<Alt>F5']\"},\"org.gnome.mutter\":{\"edge-tiling\":\"false\"}}";
restore-window-original-size = false;
selected-layouts = [
[
"Layout 1"
"985825"
]
[
"Layout 1"
"985825"
]
];
span-multiple-tiles-activation-key = [ "1" ];
span-window-all-tiles = [ "<Control><Super>Page_Up" ];
span-window-down = [ "<Alt><Super>Down" ];
span-window-left = [ "<Alt><Super>Left" ];
span-window-right = [ "<Alt><Super>Right" ];
span-window-up = [ "<Alt><Super>Up" ];
tiling-system-activation-key = [ "2" ];
untile-window = [ "<Control><Super>Page_Down" ];
window-border-width = mkUint32 1;
};
"org/gnome/shell/extensions/user-theme" = {
name = "Gruvbox-Dark";
};
"org/gnome/shell/extensions/vitals" = {
alphabetize = true;
hide-icons = false;
hide-zeros = false;
hot-sensors = [
"_memory_usage_"
"_storage_free_"
"_network_public_ip_"
"_processor_usage_"
"__temperature_avg__"
"_system_uptime_"
];
icon-style = 0;
include-static-gpu-info = false;
menu-centered = false;
position-in-panel = 4;
show-gpu = false;
};
"org/gtk/gtk4/settings/file-chooser" = {
show-hidden = true;
};
"org/gtk/settings/file-chooser" = {
date-format = "regular";
location-mode = "path-bar";
show-hidden = true;
show-size-column = true;
show-type-column = true;
sidebar-width = 165;
sort-column = "name";
sort-directories-first = true;
sort-order = "ascending";
type-format = "category";
window-position = mkTuple [
102
102
];
window-size = mkTuple [
1231
902
];
};
"org/virt-manager/virt-manager/connections" = {
autoconnect = [
"qemu:///session"
"qemu:///system"
];
uris = [
"qemu:///session"
"qemu:///system"
];
};
"org/virt-manager/virt-manager/vmlist-fields" = {
disk-usage = true;
network-traffic = true;
};
};
};
imports = lib.custom.scanPaths ./.;
}

View file

@ -1,4 +1,7 @@
{ lib, ... }:
{
lib,
...
}:
{
imports = lib.custom.scanPaths ./.;
}

View file

@ -0,0 +1,17 @@
{
# Replaces the default terminal emulator; gnome-terminal/gnome-console is disabled
programs.ghostty = {
enable = true;
enableFishIntegration = true;
settings = {
theme = "stylix";
font-family = "monospace";
font-size = "11";
background-opacity = "0.85";
};
};
home.sessionVariables = {
TERM = "ghostty";
};
}

View file

@ -47,10 +47,18 @@ in
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
sizes = {
applications = 12;
desktop = 11;
popups = 11;
terminal = 12;
};
};
targets = {
hyprpaper.enable = true;
gnome = {
enable = true;
useWallpaper = true;
};
vscode = {
enable = false;
# profileNames = [ "Stylix" ];

View file

Before

Width:  |  Height:  |  Size: 6.2 MiB

After

Width:  |  Height:  |  Size: 6.2 MiB

View file

Before

Width:  |  Height:  |  Size: 2.9 MiB

After

Width:  |  Height:  |  Size: 2.9 MiB

View file

@ -1,179 +0,0 @@
{
config,
inputs,
lib,
pkgs,
...
}:
let
## Functions, Variables and Launchers ##
# colorpicker = exec ./scripts/colorpicker.fish;
# lockscreen = exec ./scripts/lockscreen.fish;
# notify = exec ./scripts/notify.fish;
# wlogout = exec ./scripts/wlogout.fish;
#gtk-play = "${pkgs.libcanberra-gtk3}/bin/canberra-gtk-play";
#makoctl = "${config.services.mako.package}/bin/makoctl";
#notify-send = "${pkgs.libnotify}/bin/notify-send";
#playerctl = lib.getExe pkgs.playerctl; # installed via /home/common/optional/desktops/playerctl.nix
#swaylock = "lib.getExe pkgs.swaylock;
betterControl = inputs.better-control.packages.${pkgs.system}.better-control;
defaultApp =
type: "${pkgs.gtk3}/bin/gtk-launch $(${pkgs.xdg-utils}/bin/xdg-mime query default ${type})";
exec = script: "${pkgs.fish}/bin/fish ${script}";
files = "${pkgs.nautilus}/bin/nautilus $HOME";
browser = defaultApp "x-scheme-handler/https";
editor = "code";
launcher = "${pkgs.walker}/bin/walker --modules applications,ssh";
pactl = lib.getExe' pkgs.pulseaudio "pactl";
terminal = exec (import ./scripts/terminal.nix { inherit pkgs; });
brightness = exec (import ./scripts/brightness.nix { inherit pkgs lib; });
## Long ass keys ##
lowerVol = "XF86AudioLowerVolume";
raiseVol = "XF86AudioRaiseVolume";
brightUp = "XF86MonBrightnessUp";
brightDown = "XF86MonBrightnessDown";
## Keybinds & Submaps ##
#INFO: Did this scripts to avoid the shitty hyprland config implementation for nix :)
submaps = {
## Submap: Reset ##
"" = {
binds = {
## One-Shot Binds ##
"" = [
## Terminal ##
"SUPER, T, exec, ${terminal}"
# "SUPER_SHIFT, T, exec, ${terminal}" # Floating
# "SUPER_ALT, T, exec, ${terminal}" # Select
## App Runs ##
"SUPER, F, exec, ${files}"
"SUPER, E, exec, ${editor}"
"SUPER, W, exec, ${browser}"
"SUPER, N, exec, nm-connection-editor"
## Launcher ##
"SUPER, SUPER_L, exec, ${launcher}"
# "SUPER, SUPER_L, exec, ${launcher} --app launcher"
# "SUPER, P, exec, ${launcher} --app color" # Color Picker
# "SUPER, V, exec, ${launcher} --app clip" # Clipboard
# "SUPER, X, exec, ${launcher} --app power" # Power Menu
"SUPER, X, exec, ${lib.getExe betterControl} -pm" # Power Menu
## System ##
"SUPER, L, exec, hyprlock"
# "SUPER, L, exec, ${lockscreen}"
"SUPER, Q, killactive,"
"CTRL_ALT, Delete, exec, uwsm stop"
", ${brightUp}, exec, ${brightness} + 10"
", ${brightDown}, exec, ${brightness} - 10"
## Window Management ##
"SUPER_SHIFT, F, fullscreen, 0"
"SUPER_ALT, F, fullscreenstate, 0 3"
# "SUPER, F, exec, ${notify} 'Fullscreen Mode'"
"SUPER, Backspace, togglefloating,"
"SUPER, Backspace, centerwindow,"
"SUPER, left, scroller:movefocus, l"
"SUPER, right, scroller:movefocus, r"
"SUPER, up, scroller:movefocus, u"
"SUPER, down, scroller:movefocus, d"
"SUPER_SHIFT, left, scroller:movewindow, l, nomode"
"SUPER_SHIFT, right, scroller:movewindow, r, nomode"
"SUPER_SHIFT, up, scroller:movewindow, u, nomode"
"SUPER_SHIFT, down, scroller:movewindow, d, nomode"
"SUPER_SHIFT, P, pin,"
# "SUPER_SHIFT, P, exec, ${notify} 'Toggled Pin'"
"SUPER_SHIFT, S, swapnext"
# "SUPER_SHIFT, O, toggleopaque"
"SUPER, G, togglegroup"
# "SUPER, G, exec, ${notify} 'Toggled Group'"
"SUPER, Tab, changegroupactive, f"
# ## Workspaces ##
# ", Home, hyprexpo:expo, toggle"
", Home, overview:toggle"
"ALT, Tab, cyclenext,"
"ALT, Tab, bringactivetotop,"
"SUPER, 1, workspace, 1"
"SUPER, 2, workspace, 2"
"SUPER, 3, workspace, 3"
"SUPER, 4, workspace, 4"
"SUPER_ALT, G, exec, ${steam-map} on ${monitors-json}"
## Scroller ##
"SUPER, P, scroller:pin"
"SUPER, P, scroller:alignwindow, left"
"SUPER, P, scroller:setsize, onethird"
# "\\notify"
"SUPER_SHIFT, P, scroller:pin"
"SUPER_SHIFT, P, scroller:alignwindow, right"
"SUPER_SHIFT, P, scroller:setsize, onethird"
# "\\notify"
"SUPER, A, scroller:jump"
# F20 - F23
", code:198, scroller:selectiontoggle"
", code:199, scroller:selectionworkspace"
", code:200, scroller:selectionmove, e"
", code:201, scroller:selectionreset"
];
## Repeating Binds ##
e = [
"SUPER_ALT, left, scroller:cyclewidth, next"
"SUPER_ALT, right, scroller:cyclewidth, prev"
"SUPER_ALT, up, scroller:cycleheight, next"
"SUPER_ALT, down, scroller:cycleheight, prev"
# "SUPER_ALT, left, resizeactive, -20 0"
# "SUPER_ALT, right, resizeactive, 20 0"
# "SUPER_ALT, up, resizeactive, 0 -20"
# "SUPER_ALT, down, resizeactive, 0 20"
", ${raiseVol}, exec, ${pactl} set-sink-volume @DEFAULT_SINK@ +5%"
", ${lowerVol}, exec, ${pactl} set-sink-volume @DEFAULT_SINK@ -5%"
", ${raiseVol}, exec, ${pactl} set-source-volume @DEFAULT_SOURCE@ +5%"
", ${lowerVol}, exec, ${pactl} set-source-volume @DEFAULT_SOURCE@ -5%"
];
## Mouse Binds ##
m = [
", mouse:275, movewindow"
", mouse:276, resizewindow"
];
};
};
## Submap: Steam ##
steam = {
binds = {
"" = [
"SUPER, Escape, exec, ${steam-map} off ${monitors-json}"
];
n = [
"SUPER, SUPER_L, pass"
", mouse:275, pass"
", mouse:276, pass"
];
};
};
};
steam-map = import ./scripts/steam-map.nix { inherit pkgs; };
monitors-json = pkgs.writeText "monitors.json" (builtins.toJSON config.monitors);
submaps-script = import ./scripts/submaps.nix { inherit pkgs; };
submaps-json = pkgs.writeText "submaps.json" (builtins.toJSON submaps);
submaps-run = pkgs.runCommand "submaps-run" { inherit submaps-json submaps-script; } ''
mkdir -p $out
${pkgs.fish}/bin/fish ${submaps-script} ${submaps-json} > $out/submaps-out
'';
in
{
wayland.windowManager.hyprland.extraConfig = builtins.readFile "${submaps-run}/submaps-out";
}

View file

@ -1,190 +0,0 @@
{
config,
inputs,
lib,
pkgs,
...
}:
{
imports = lib.custom.scanPaths ./.;
wayland.windowManager.hyprland = {
enable = true;
systemd.enable = false; # using withUWSM
package = null;
portalPackage = null;
# systemd = {
# enable = true;
# variables = [ "--all" ];
# extraCommands = lib.mkBefore [
# "systemctl --user stop graphical-session.target"
# "systemctl --user start hyprland-session.target"
# ];
# };
settings = {
## Environment Vars ##
env = [
"NIXOS_XDG_OPEN_USE_PORTAL, 1" # for xdg-open to use portal
"NIXOS_OZONE_WL, 1" # for ozone-based and electron apps to run on wayland
"MOZ_ENABLE_WAYLAND, 1" # for firefox to run on wayland
"MOZ_WEBRENDER, 1" # for firefox to run on wayland
"XDG_SESSION_TYPE, wayland"
"XDG_SESSION_DESKTOP, Hyprland"
"XDG_CURRENT_DESKTOP, Hyprland"
"WLR_NO_HARDWARE_CURSORS, 1"
"WLR_RENDERER_ALLOW_SOFTWARE, 1"
"QT_QPA_PLATFORM, wayland"
"GTK_USE_PORTAL, 1"
"HYPRCURSOR_THEME, rose-pine-hyprcursor" # this will be better than default for now
];
xwayland = {
force_zero_scaling = true;
};
## Monitor ##
monitor = (
# INFO: parse the monitors defined in home/<user>/<host>/default.nix
map (
m:
"${m.name},${
if m.enabled then
"${toString m.width}x${toString m.height}@${toString m.refreshRate},${toString m.x}x${toString m.y},${toString m.scale},transform,${toString m.transform},vrr,${toString m.vrr}"
else
"disable"
}"
) (config.monitors)
);
# This used to be usefull now its just overkill
# Creates 1 persistent workspaces for all monitors
workspace =
let
json = pkgs.writeTextFile {
name = "monitors.json";
text = builtins.toJSON config.monitors;
};
parse = pkgs.runCommand "parse-workspaces" { } ''
mkdir "$out"; ${pkgs.jq}/bin/jq -r '
[ to_entries[] |
(.key as $i | .value.name as $name |
[ range(1;2) | ($i * 1 + .) as $wsnum |
if . == 0 then "\($wsnum), monitor:\($name), default:true, persistent:true"
else "\($wsnum), monitor:\($name)" end
]
)
] | flatten
' ${json} > "$out/out.json"
'';
output = builtins.fromJSON (builtins.readFile "${parse}/out.json");
in
output;
## Behavior ##
binds = {
workspace_center_on = 1;
movefocus_cycles_fullscreen = false;
};
input = {
follow_mouse = 2;
mouse_refocus = false;
kb_options = "fkeys:basic_13-24";
sensitivity = 0.5;
};
cursor = {
inactive_timeout = 10;
};
misc = {
disable_hyprland_logo = true;
animate_manual_resizes = true;
animate_mouse_windowdragging = true;
#disable_autoreload = true;
new_window_takes_over_fullscreen = 2;
middle_click_paste = false;
};
group = {
drag_into_group = 2;
merge_groups_on_drag = true;
# col.border_active = "";
# col.border_inactive = "";
groupbar = {
enabled = true;
height = 12;
};
};
dwindle = {
pseudotile = false;
force_split = 0;
smart_split = true;
split_bias = 1;
};
## Appearance ##
general = {
layout = "scroller";
border_size = 2;
gaps_in = 6;
gaps_out = 6;
# "col.inactive_border" = "rgb(191b1c)";
# "col.active_border" = "rgb(1cbdd9) rgb(f6ef9d) 30deg";
allow_tearing = true; # used to reduce latency and/or jitter in games
snap = {
enabled = true;
window_gap = 6;
};
};
decoration = {
rounding = 10;
rounding_power = 4.0;
active_opacity = 0.85;
inactive_opacity = 0.75;
fullscreen_opacity = 1.0;
dim_inactive = true;
dim_strength = 0.2;
blur = {
enabled = true;
size = 7;
passes = 3;
new_optimizations = true;
ignore_opacity = true;
xray = true;
# noise = 0.15;
popups = true;
};
shadow = {
enabled = true;
range = 30;
render_power = 2;
scale = 1.5;
# color = "rgb(191b1c)";
# color_inactive = "rgb(191b1c)";
};
};
animation = [
"windowsIn, 1, 5 ,default, popin 0%"
"windowsOut, 1, 5 ,default, popin"
"windowsMove, 1, 5 ,default, slide"
"fadeIn, 1, 8 ,default"
"fadeOut, 1, 8 ,default"
"fadeSwitch, 1, 8 ,default"
"fadeShadow, 1, 8 ,default"
"fadeDim, 1, 8 ,default"
"border, 1, 10 ,default"
"workspaces, 1, 5 ,default, slide"
];
};
};
}

View file

@ -1,68 +0,0 @@
{ pkgs, inputs, ... }:
{
home.packages = [
# pkgs.hyprlandPlugins.hyprexpo
pkgs.hyprlandPlugins.hyprspace
pkgs.hyprlandPlugins.hyprscroller
];
wayland.windowManager.hyprland = {
plugins = [
# pkgs.hyprlandPlugins.hyprexpo
pkgs.hyprlandPlugins.hyprspace
pkgs.hyprlandPlugins.hyprscroller
];
# TODO: Colors and Theme
settings = {
windowrulev2 = [
"bordercolor rgb(191b1c) rgb(ffffff) 25deg, tag: scroller:pinned"
];
plugin = {
# hyprexpo = {
# columns = 3;
# gap_size = 5;
# bg_col = "rgb(000000)";
# workspace_method = "center current"; # [center/first] [workspace] e.g. first 1 or center m+1
# };
overview = {
centerAligned = true;
hideOverlayLayers = true;
showSpecialWorkspaces = true;
};
scroller = {
mode = "row";
center_active_column = true;
center_active_window = false;
focus_wrap = true;
overview_scale_content = false;
"col.selection_border" = "rgb(191b1c)";
jump_labels_font = "Monocraft";
jump_labels_color = "rgb(ffffff)";
jump_labels_scale = "0.1";
jump_labels_keys = "qwfpgarstd";
# monitor_options = ''
# (
# DP-1 = (
# mode = row;
# column_default_width = onehalf;
# column_widths = onehalf onethird twothirds threefourths;
# window_default_height = seveneighths;
# window_heights = seveneighths onehalf onethird twothirds
# ),
# HDMI-A-2 = (
# mode = col;
# column_default_width = one;
# column_widths = one onehalf;
# window_default_height = twothirds;
# window_heights = seveneighths onehalf onethird twothirds
# ),
# )'';
monitor_options = "(DP-1 = (mode = row;column_default_width = onehalf;column_widths = seveneighths threequarters twothirds onehalf onethird;window_default_height = one;window_heights = one seveneighths twothirds onehalf onethird),HDMI-A-2 = (mode = col; column_default_width = one;column_widths = one onehalf;window_default_height = twothirds;window_heights = seveneighths twothirds onehalf onethird),)";
};
};
};
};
}

View file

@ -1,38 +0,0 @@
{ lib, ... }:
{
programs.hyprlock = {
enable = true;
settings = {
general = {
disable_loading_bar = true;
immediate_render = true;
hide_cursor = false;
no_fade_in = true;
};
background = lib.mkDefault [
{
path = "screenshot";
blur_passes = 3;
blur_size = 8;
}
];
input-field = lib.mkDefault [
{
size = "200, 50";
position = "0, -80";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_color = "rgb(202, 211, 245)";
inner_color = "rgb(91, 96, 120)";
outer_color = "rgb(24, 25, 38)";
outline_thickness = 5;
shadow_passes = 2;
}
];
};
};
}

View file

@ -1,248 +0,0 @@
app_launch_prefix = ""
terminal_title_flag = ""
locale = ""
close_when_open = false
theme = "default"
monitor = ""
hotreload_theme = false
as_window = false
timeout = 0
disable_click_to_close = false
force_keyboard_focus = true
[keys]
accept_typeahead = ["tab"]
trigger_labels = "lalt"
next = ["down"]
prev = ["up"]
close = ["esc"]
remove_from_history = ["shift backspace"]
resume_query = ["ctrl r"]
toggle_exact_search = ["ctrl m"]
[keys.activation_modifiers]
keep_open = "shift"
alternate = "alt"
[keys.ai]
clear_session = ["ctrl x"]
copy_last_response = ["ctrl c"]
resume_session = ["ctrl r"]
run_last_response = ["ctrl e"]
[events]
on_activate = ""
on_selection = ""
on_exit = ""
on_launch = ""
on_query_change = ""
[list]
dynamic_sub = true
keyboard_scroll_style = "emacs"
max_entries = 50
show_initial_entries = true
single_click = true
visibility_threshold = 20
placeholder = "No Results"
[search]
argument_delimiter = "#"
placeholder = "Search..."
delay = 0
resume_last_query = false
[activation_mode]
labels = "jkl;asdf"
[builtins.applications]
weight = 5
name = "applications"
placeholder = "Applications"
prioritize_new = true
hide_actions_with_empty_query = true
context_aware = true
refresh = true
show_sub_when_single = true
show_icon_when_single = true
show_generic = true
history = true
[builtins.applications.actions]
enabled = true
hide_category = false
hide_without_query = true
[builtins.bookmarks]
weight = 5
placeholder = "Bookmarks"
name = "bookmarks"
icon = "bookmark"
switcher_only = true
[[builtins.bookmarks.entries]]
label = "Walker"
url = "https://github.com/abenz1267/walker"
keywords = ["walker", "github"]
[builtins.xdph_picker]
hidden = true
weight = 5
placeholder = "Screen/Window Picker"
show_sub_when_single = true
name = "xdphpicker"
switcher_only = true
[builtins.ai]
weight = 5
placeholder = "AI"
name = "ai"
icon = "help-browser"
switcher_only = true
[[builtins.ai.anthropic.prompts]]
model = "claude-3-5-sonnet-20241022"
temperature = 1
max_tokens = 1_000
label = "General Assistant"
prompt = "You are a helpful general assistant. Keep your answers short and precise."
[builtins.calc]
require_number = true
weight = 5
name = "calc"
icon = "accessories-calculator"
placeholder = "Calculator"
min_chars = 4
[builtins.windows]
weight = 5
icon = "view-restore"
name = "windows"
placeholder = "Windows"
show_icon_when_single = true
[builtins.clipboard]
always_put_new_on_top = true
exec = "wl-copy"
weight = 5
name = "clipboard"
avoid_line_breaks = true
placeholder = "Clipboard"
image_height = 300
max_entries = 10
switcher_only = true
[builtins.commands]
weight = 5
icon = "utilities-terminal"
switcher_only = true
name = "commands"
placeholder = "Commands"
[builtins.custom_commands]
weight = 5
icon = "utilities-terminal"
name = "custom_commands"
placeholder = "Custom Commands"
[builtins.emojis]
exec = "wl-copy"
weight = 5
name = "emojis"
placeholder = "Emojis"
switcher_only = true
history = true
typeahead = true
show_unqualified = false
[builtins.symbols]
after_copy = ""
weight = 5
name = "symbols"
placeholder = "Symbols"
switcher_only = true
history = true
typeahead = true
[builtins.finder]
use_fd = false
weight = 5
icon = "file"
name = "finder"
placeholder = "Finder"
switcher_only = true
ignore_gitignore = true
refresh = true
concurrency = 8
show_icon_when_single = true
preview_images = false
[builtins.runner]
eager_loading = true
weight = 5
icon = "utilities-terminal"
name = "runner"
placeholder = "Runner"
typeahead = true
history = true
generic_entry = false
refresh = true
use_fd = false
[builtins.ssh]
weight = 5
icon = "preferences-system-network"
name = "ssh"
placeholder = "SSH"
switcher_only = true
history = true
refresh = true
[builtins.switcher]
weight = 5
name = "switcher"
placeholder = "Switcher"
prefix = "/"
[builtins.websearch]
keep_selection = true
weight = 5
icon = "applications-internet"
name = "websearch"
placeholder = "Websearch"
[[builtins.websearch.entries]]
name = "Google"
url = "https://www.google.com/search?q=%TERM%"
[[builtins.websearch.entries]]
name = "DuckDuckGo"
url = "https://duckduckgo.com/?q=%TERM%"
switcher_only = true
[[builtins.websearch.entries]]
name = "Ecosia"
url = "https://www.ecosia.org/search?q=%TERM%"
switcher_only = true
[[builtins.websearch.entries]]
name = "Yandex"
url = "https://yandex.com/search/?text=%TERM%"
switcher_only = true
[builtins.dmenu]
hidden = true
weight = 5
name = "dmenu"
placeholder = "Dmenu"
switcher_only = true
[builtins.translation]
delay = 1000
weight = 5
name = "translation"
icon = "accessories-dictionary"
placeholder = "Translation"
switcher_only = true
provider = "googlefree"

View file

@ -1,13 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.walker ];
wayland.windowManager.hyprland.settings.exec-once = [
''walker --gapplication-service''
];
home.file."~/.config/walker/config.toml" = {
source = ./config.toml;
target = ".config/walker/config.toml";
};
}

View file

@ -1,11 +0,0 @@
{ pkgs, inputs, ... }:
{
home.packages = [
inputs.watershot.packages.${pkgs.system}.default
pkgs.grim
];
home.file.".config/watershot.ron" = {
source = ./watershot.ron;
};
}

View file

@ -1,25 +0,0 @@
Config(
handle_radius: 10,
line_width: 2,
display_highlight_width: 5,
selection_color: Color(
r: 0.38,
g: 0.68,
b: 0.94,
a: 1.0,
),
shade_color: Color(
r: 0.11,
g: 0.0,
b: 0.11,
a: 0.6,
),
text_color: Color(
r: 1.0,
g: 1.0,
b: 1.0,
a: 1.0,
),
mode_text_size: 50,
font_family: "monospace",
)

View file

@ -1,134 +0,0 @@
{ pkgs, ... }:
let
# Zen extensions to float
zen-script = import ./scripts/zen-float.nix { inherit pkgs; };
zen-json = pkgs.writeText "zen-extensions.json" (builtins.toJSON zen-extensions);
zen-extensions = {
bitwarden = {
regex = "'*(Bitwarden Password Manager) - Bitwarden*'";
x = 500;
y = 900;
};
authenticator = {
regex = "'*(Authenticator) - Authenticator*'";
x = 335;
y = 525;
};
};
in
{
wayland.windowManager.hyprland.settings = {
# Floats zen extensions
exec-once = [
"${pkgs.fish}/bin/fish ${zen-script} ${zen-json}"
];
## Layers Rules ##
layer = [
#"blur, rofi"
#"ignorezero, rofi"
#"ignorezero, logout_dialog"
];
## Window Rules ##
windowrulev2 = [
# Dialogs
"float, title:^(Open File)(.*)$"
"float, title:^(Select a File)(.*)$"
"float, title:^(Choose wallpaper)(.*)$"
"float, title:^(Open Folder)(.*)$"
"float, title:^(Save As)(.*)$"
"float, title:^(Library)(.*)$"
"float, title:^(Accounts)(.*)$"
"float, title:^(Media viewer)$"
# Zen
"suppressevent maximize, class:^(zen)$"
"float, initialTitle:^(Picture-in-Picture)$"
"nodim, initialTitle:^(Picture-in-Picture)$"
"keepaspectratio, initialTitle:^(Picture-in-Picture)$"
"float, class:^(zen)$, title:^(File Upload)$"
"workspace special silent, title:^(Zen Sharing Indicator)$"
"workspace special silent, title:^(.*is sharing (your screen|a window)\.)$"
# Foot
"plugin:scroller:modemodifier col after focus, class:^(foot)$"
"plugin:scroller:windowheight onethird, class:^(foot)$"
# Vesktop
"workspace 2, class:^(vesktop)$"
"plugin:scroller:group vesktop, class:^(vesktop)$"
"opaque, initialTitle:^(Discord Popout)$"
"plugin:scroller:modemodifier row before focus, initialTitle:^(Discord Popout)$"
"plugin:scroller:windowheight onethird, initialTitle:^(Discord Popout)$"
# VsCode
"plugin:scroller:group code, class:^(code)$"
"plugin:scroller:alignwindow center, class:^(code)$"
"plugin:scroller:windowheight seveneighths, class:^(code)$"
# Float Apps
"float, class:^(galculator)$"
"float, class:^(waypaper)$"
"float, class:^(keymapp)$"
# Nautilus
"float, initialClass:^(org.gnome.Nautilus)$"
"float, initialClass:^(org.gnome.Nautilus)$, move 10% 50%"
"size 30% 30%, initialClass:^(org.gnome.Nautilus)$"
# Always opaque
"opaque, class:^([Gg]imp)$"
"opaque, class:^([Ff]lameshot)$"
"opaque, class:^([Ii]nkscape)$"
"opaque, class:^([Bb]lender)$"
"opaque, class:^([Oo][Bb][Ss])$"
"opaque, class:^([Vv]lc)$"
# Remove transparency from video
"opaque, title:^(Netflix)(.*)$"
"opaque, title:^(.*YouTube.*)$"
## Scratch rules ##
#"size 80% 85%, workspace:^(special:special)$"
#"center, workspace:^(special:special)$"
#Ryujinx
"opaque, initialClass:^(Ryujinx)$"
"immediate, initialClass:^(Ryujinx)$"
"workspace 3, initialClass:^(Ryujinx)$"
"float, initialTitle:^(ContentDialogOverlayWindow)$"
"center, initialTitle:^(ContentDialogOverlayWindow)$"
## Steam rules ##
"opaque, initialClass:^([Gg]amescope)$"
# "stayfocused, initialClass:^([Gg]amescope)$"
"fullscreen, initialClass:^([Gg]amescope)$"
"minsize 1 1, initialClass:^([Gg]amescope)$"
"immediate, initialClass:^([Gg]amescope)$"
"workspace 3, initialClass:^([Gg]amescope)$"
#
# ========== Fameshot rules ==========
#
# flameshot currently doesn't have great wayland support so needs some tweaks
#"rounding 0, class:^([Ff]lameshot)$"
#"noborder, class:^([Ff]lameshot)$"
#"float, class:^([Ff]lameshot)$"
#"move 0 0, class:^([Ff]lameshot)$"
#"suppressevent fullscreen, class:^([Ff]lameshot)$"
# "monitor:DP-1, ${flameshot}"
## Workspace Assignments ##
"workspace 2, initialClass:^(spotify)$"
"workspace 2, initialClass:^(org.telegram.desktop)$"
# "workspace name:4, initialClass:^(virt-manager)$"
# "workspace 8, class:^(obsidian)$"
# "workspace 9, class:^(brave-browser)$"
];
};
}

View file

@ -1,46 +0,0 @@
{ pkgs, lib, ... }:
let
# Define your I2C bus numbers
# Couldnt find a non hardcoded way to get the bus numbers :(
busesList = [
6
9
];
busesStr = lib.concatStringsSep " " (map toString busesList);
in
pkgs.writeScript "brightness-control" ''
#!/usr/bin/env fish
# Usage:
# brightness-control --up 10
# brightness-control + 10
# brightness-control --down 15
# brightness-control - 15
if test (count $argv) -ne 2
echo "Usage: $argv[0] [--up|+|--down|-] <INTEGER>"
exit 1
end
set option $argv[1]
set value $argv[2]
if test "$option" = "--up" -o "$option" = "+"
set op "+"
else if test "$option" = "--down" -o "$option" = "-"
set op "-"
else
echo "Invalid option. Use --up | + or --down | -"
exit 1
end
# Hard-coded bus list:
set buses ${busesStr}
for bus in $buses
echo "Changing brightness on bus $bus: ddcutil setvcp 10 $op $value --bus $bus"
${pkgs.ddcutil}/bin/ddcutil setvcp 10 $op $value --bus $bus
end
''

View file

@ -1,3 +0,0 @@
{
# :D
}

View file

@ -1,55 +0,0 @@
{
pkgs,
...
}:
pkgs.writeScript "steam-map" ''
#!/usr/bin/env fish
# Usage: ./steam-map-toggle.fish on|off <monitors.json>
if test (count $argv) -lt 2
echo "Usage: $0 on|off <monitors.json>"
exit 1
end
set mode $argv[1]
set json_file $argv[2]
if not test -e $json_file
echo "Error: File $json_file does not exist"
exit 1
end
# Parse the JSON and generate instructions for NON-primary monitors.
# When 'off', build the monitor string; when 'on', disable the monitor.
set instructions (${pkgs.jq}/bin/jq -r --arg mode "$mode" '
.[] |
if .primary then empty else
if $mode == "off" then
.name + "," +
(.width|tostring) + "x" + (.height|tostring) + "@" + (.refreshRate|tostring) + "," +
(.x|tostring) + "x" + (.y|tostring) + "," +
(.scale|tostring) +
(if has("transform") then ",transform," + (.transform|tostring) else "" end) +
",vrr," + (if has("vrr") then (.vrr|tostring) else "0" end)
else
.name + ", disable"
end
end
' $json_file)
# Execute hyprctl keyword monitor for each instruction.
for instruction in $instructions
echo "Running: hyprctl keyword monitor $instruction"
hyprctl keyword monitor "$instruction"
end
# Dispatch the appropriate submap.
if [ "$mode" = "on" ]
hyprctl --batch "dispatch submap steam; dispatch workspace 3"
else if [ "$mode" = "off" ]
hyprctl dispatch submap reset
else
echo "Invalid mode: $mode"
exit 1
end
''

View file

@ -1,44 +0,0 @@
{
pkgs,
...
}:
pkgs.writeScript "submap-script" ''
#!/usr/bin/env fish
# Usage: ./parse_submaps.fish path/to/file.json
if test (count $argv) -lt 1
echo "Usage: $argv[0] path/to/file.json"
exit 1
end
set json_file $argv[1]
# Iterate over submaps preserving order
for entry in (${pkgs.jq}/bin/jq -c '.| to_entries[]' $json_file)
set submap_name (echo $entry | ${pkgs.jq}/bin/jq -r '.key')
echo "submap=$submap_name"
# Process each binds entry within the submap
for bind_entry in (echo $entry | ${pkgs.jq}/bin/jq -c '.value.binds | to_entries[]')
set bind_key (echo $bind_entry | ${pkgs.jq}/bin/jq -r '.key')
if test "$bind_key" = ""
set prefix "bind="
else if test "$bind_key" = "unbind"
set prefix "unbind="
else
set prefix "bind$bind_key="
end
# Process each binding's value in the array
for binding in (echo $bind_entry | ${pkgs.jq}/bin/jq -r '.value[]')
echo "$prefix$binding"
end
end
# Append submap reset except for default "" submap
if not test "$submap_name" = ""
echo "submap=reset"
end
end
''

View file

@ -1,10 +0,0 @@
{
pkgs,
...
}:
# TODO: obviously lol
# Handle float terminal and grim select terminal
pkgs.writeScript "terminal-launch" ''
#!/usr/bin/env fish
foot
''

View file

@ -1,60 +0,0 @@
{
pkgs,
...
}:
pkgs.writeScript "zen-script" ''
#!/usr/bin/env fish
if test (count $argv) -lt 1
echo "Usage: $argv[0] path/to/your.json"
exit 1
end
set json_file $argv[1]
function handle
set -l line $argv[1]
set -l file_path $argv[2]
switch $line
case "windowtitlev2*"
# Expected format: windowtitlev2>><id>,<title>
set -l payload (string replace -r '^windowtitlev2>>' "" $line)
set -l parts (string split "," $payload)
set -l window_id (string trim $parts[1])
set -l title (string join "," $parts[2..-1])
# Debug output
echo "Extracted window_id: [$window_id]"
echo "Extracted title: [$title]"
# Loop over the extensions defined in the JSON file.
for ext in ( ${pkgs.jq}/bin/jq -r 'keys[]' $file_path )
echo "Processing extension: [$ext]"
# Get regex, x and y for the current extension.
set -l reg ( ${pkgs.jq}/bin/jq -r --arg k $ext '.[$k].regex' $file_path )
set -l ext_x ( ${pkgs.jq}/bin/jq -r --arg k $ext '.[$k].x' $file_path )
set -l ext_y ( ${pkgs.jq}/bin/jq -r --arg k $ext '.[$k].y' $file_path )
# Remove any extra surrounding single quotes.
set -l reg (string trim -c "'" $reg)
# Debug: show the extension and regex being used.
echo "Checking extension [$ext] with regex [$reg] against title [$title]"
# If the title matches the regex, dispatch floating commands.
if string match -q -- "*$reg*" "$title"
echo "$ext window id: $window_id -- setting float mode with size $ext_x x $ext_y"
hyprctl --batch "dispatch togglefloating address:0x$window_id; dispatch resizewindowpixel exact $ext_x $ext_y,address:0x$window_id;"
return
end
end
case "*"
# Do nothing for other events.
end
end
${pkgs.socat}/bin/socat -U - UNIX-CONNECT:/run/user/1000/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock | while read -l line
handle "$line" "$json_file"
end
''

View file

@ -1,4 +0,0 @@
{ lib, ... }:
{
imports = lib.custom.scanPaths ./.;
}

View file

@ -1,200 +0,0 @@
#
# Dunst
# Notification Daemon
#
{ pkgs, ... }:
{
home.packages = builtins.attrValues {
inherit (pkgs) libnotify; # required by dunst
};
services.dunst = {
enable = true;
# waylandDisplay = ""; # set the service's WAYLAND_DISPLAY environment variable
# configFile = "";
iconTheme = {
name = "Adwaita";
package = pkgs.adwaita-icon-theme;
size = "16x16";
};
settings = {
global = {
# Allow a small subset of html markup:<b></b>, <i></i>, <s></s>, and <u></u>.
# For a complete reference see
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
# If markup is not allowed, those tags will be stripped out of the message.
allow_markup = "yes";
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# Markup is allowed
format = "%I %s %p\\n%b";
#TODO dynamic fonts
#font = "Droid Sans 12";
alignment = "left"; # Options are "left", "center", and "right".
sort = "yes"; # Sort messages by urgency.
indicate_hidden = "yes"; # Show how many messages are currently hidden (because of geometry).
# The frequency with which text that is longer than the notification
# window allows bounces back and forth.
# This option conflicts with "word_wrap".
# Set to 0 to disable.
bounce_freq = 5;
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60;
# Split notifications into multiple lines if they don't fit into
# geometry.
word_wrap = "no";
# Ignore newlines '\n' in notifications.
ignore_newline = "no";
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectevly.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
geometry = "0x4-25+25";
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
shrink = "yes";
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a windowmanager that exports the _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern windowmanagers.
#
# If this option is set to mouse or keyboard, the monitor option will be ignored.
follow = "mouse";
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = "yes";
# Maximum amount of notifications kept in history
history_length = 20;
# Display indicators for URLs (U) and actions (A).
show_indicators = "yes";
# The height of a single line. If the height is smaller than the
# font height, it will get raised to the font height.
# This adds empty space above and under the text.
line_height = 0;
# Draw a line of "separator_height" pixel height between two
# notifications. Set to 0 to disable.
separator_height = 1;
# Padding between text and separator.
padding = 8;
# Horizontal padding.
horizontal_padding = 10;
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing windowmanager is
# present (e.g. xcompmgr, compiz, etc.).
transparency = 15;
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
# separator_color = "#454947";
# Print a notification on startup.
# This is mainly for error detection, since dbus (re-)starts dunst
# automatically after a crash.
#set to true for debugging
startup_notification = false;
# Align icons left/right/off
icon_position = "left";
width = 300;
height = 300;
offset = "30x50";
#origin = "top-right";
origin = "top-center";
#TODO dynamic theme colours
# frame_color = "#dc7f41";
# Browser for opening urls in context menu.
browser = "firefox";
};
frame = {
width = 2;
#TODO dynamic colours
# color = "#dc7f41";
};
shortcuts = {
# Shortcuts are specified as [modifier+][modifier+]...key
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
# "mod3" and "mod4" (windows-key).
# Xev might be helpful to find names for keys.
# Close notification.
close = "mod1+space";
# Close all notifications.
close_all = "ctrl+mod1+space";
# Redisplay last message(s).
history = "ctrl+mod4+h";
# Context menu.
context = "ctrl+mod1+c";
};
urgency_low = {
#TODO dynamic colours
# background = "#1e1e20";
# foreground = "#c5c8c6";
timeout = 10;
};
urgency_normal = {
#TODO dynamic colours
# background = "#1e1e20";
# foreground = "#c5c8c6";
timeout = 10;
};
urgency_critical = {
#TODO dynamic colours
# background = "#1e1e20";
# foreground = "#c5c8c6";
timeout = 0;
};
};
};
}

View file

@ -1,19 +0,0 @@
{
# Enable gammastep for night light
services.gammastep = {
enable = true;
provider = "manual";
latitude = 37.541290;
longitude = -77.434769;
settings = {
general = {
fade = 1;
adjustment-method = "wayland";
};
};
temperature = {
day = 6500;
night = 4500;
};
};
}

View file

@ -1,23 +0,0 @@
# Hyprpaper is used to set the wallpaper on the system
{
pkgs,
config,
...
}:
{
# The wallpaper is set by stylix
services.hyprpaper = {
enable = true;
settings = {
ipc = "on";
splash = false;
splash_offset = 2.0;
};
};
wayland.windowManager.hyprland.settings = {
exec-once = [
"${pkgs.hyprpaper}/bin/hyprpaper"
];
};
}

View file

@ -1,6 +0,0 @@
{ pkgs, ... }:
{
services.playerctld = {
enable = true;
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

View file

@ -26,4 +26,8 @@
];
};
};
home.file.".config/monitors.xml" = {
source = ./monitors.xml;
};
}

View file

@ -0,0 +1,134 @@
<monitors version="2">
<configuration>
<layoutmode>physical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1</scale>
<transform>
<rotation>right</rotation>
<flipped>no</flipped>
</transform>
<monitor>
<monitorspec>
<connector>HDMI-1-2</connector>
<vendor>DEL</vendor>
<product>DELL U2417H</product>
<serial>XVNNT67I176L</serial>
</monitorspec>
<mode>
<width>1920</width>
<height>1080</height>
<rate>60.000</rate>
</mode>
</monitor>
</logicalmonitor>
<logicalmonitor>
<x>1080</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>DP-3</connector>
<vendor>AUS</vendor>
<product>PG42UQ</product>
<serial>R1LMTF056092</serial>
</monitorspec>
<mode>
<width>3840</width>
<height>2160</height>
<rate>59.997</rate>
</mode>
</monitor>
</logicalmonitor>
</configuration>
<configuration>
<layoutmode>physical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1</scale>
<transform>
<rotation>right</rotation>
<flipped>no</flipped>
</transform>
<monitor>
<monitorspec>
<connector>HDMI-2</connector>
<vendor>DEL</vendor>
<product>DELL U2417H</product>
<serial>XVNNT67I176L</serial>
</monitorspec>
<mode>
<width>1920</width>
<height>1080</height>
<rate>60.000</rate>
</mode>
</monitor>
</logicalmonitor>
<logicalmonitor>
<x>1080</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>DP-3</connector>
<vendor>AUS</vendor>
<product>PG42UQ</product>
<serial>R1LMTF056092</serial>
</monitorspec>
<mode>
<width>3840</width>
<height>2160</height>
<rate>120.000</rate>
</mode>
</monitor>
</logicalmonitor>
</configuration>
<configuration>
<layoutmode>physical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1</scale>
<transform>
<rotation>right</rotation>
<flipped>no</flipped>
</transform>
<monitor>
<monitorspec>
<connector>HDMI-A-1-1</connector>
<vendor>DEL</vendor>
<product>DELL U2417H</product>
<serial>XVNNT67I176L</serial>
</monitorspec>
<mode>
<width>1920</width>
<height>1080</height>
<rate>60.000</rate>
</mode>
</monitor>
</logicalmonitor>
<logicalmonitor>
<x>1080</x>
<y>0</y>
<scale>1</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>DisplayPort-2</connector>
<vendor>AUS</vendor>
<product>PG42UQ</product>
<serial>R1LMTF056092</serial>
</monitorspec>
<mode>
<width>3840</width>
<height>2160</height>
<rate>119.999</rate>
</mode>
</monitor>
</logicalmonitor>
</configuration>
</monitors>

View file

@ -9,16 +9,15 @@
## Required Configs ##
../common/core # required
## Host-specific Optional Configs ##
## Optional Configs ##
../common/optional/browsers
# ../common/optional/gnome
../common/optional/hyprland
../common/optional/gnome
../common/optional/development
../common/optional/gaming
../common/optional/xdg.nix # file associations
../common/optional/xdg.nix
## Home-specific Configs ##
./desktop
## Rune Specific ##
./config
];
## Packages with no needed configs ##
@ -42,34 +41,6 @@
## Productivity ##
gimp
inkscape
xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland
;
};
monitors = [
{
name = "DP-1";
x = 900;
y = 0;
width = 3840;
height = 2160;
refreshRate = 120;
primary = true;
scale = 1.20;
vrr = 2;
}
{
name = "HDMI-A-2";
x = 0;
y = 0;
width = 1920;
height = 1080;
refreshRate = 60;
primary = false;
transform = 3;
scale = 1.20;
}
];
}

View file

@ -18,16 +18,5 @@
wireplumber.enable = true;
jack.enable = true;
lowLatency.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
# media-session.enable = true;
};
environment.systemPackages = builtins.attrValues {
inherit (pkgs)
playerctl # cli utility and lib for controlling media players
# pamixer # cli pulseaudio sound mixer
;
};
}

View file

@ -25,17 +25,9 @@
};
};
services.blueman.enable = true;
# these 2 options below were not mentioned in wiki
boot = {
extraModprobeConfig = ''
options bluetooth enable_ecred=1
'';
};
environment.systemPackages = with pkgs; [
bluez-tools
bluetuith # can transfer files via OBEX
];
}

View file

@ -7,6 +7,13 @@
{
hardware.xone.enable = true; # xbox controller
hardware.opengl = {
enable = true;
driSupport32Bit = true;
};
services.xserver.videoDrivers = [ "amdgpu" ];
programs = {
steam = {
enable = true;
@ -31,30 +38,24 @@
;
inherit (pkgs)
gamemode
gamescope # !!!: DO NOT ADD GAMESCOPE ANYWHERE ELSE IN CONFIG, IT WILL BREAK!
gperftools
keyutils
libkrb5
libpng
libpulseaudio
libvorbis
libkrb5
keyutils
gperftools
gamemode
;
});
};
extraCompatPackages = [ pkgs.unstable.proton-ge-bin ];
gamescopeSession.enable = true;
};
#gamescope launch args set dynamically in home/<user>/common/optional/gaming
gamescope = {
enable = true;
capSysNice = true;
};
# to run steam games in game mode, add the following to the game's properties from within steam
# gamemoderun %command%
gamemode = {
enable = true;
settings = {
#see gamemode man page for settings info
general = {
softrealtime = "auto";
inhibit_screensaver = 1;
@ -73,3 +74,5 @@
};
};
}
# gamescope --adaptive-sync --backend sdl --expose-wayland --force-grab-cursor --framerate-limit 120 --immediate-flips --output-height 2160 --output-width 3840 --prefer-output DP-1 --rt -- gamemoderun %command%

View file

@ -1,12 +1,18 @@
{ pkgs, ... }:
{ pkgs, config, ... }:
{
# Enable the X11 windowing system.
services.xserver = {
enable = true;
# Enable the GNOME Desktop Environment.
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
displayManager = {
gdm.enable = true;
autoLogin = {
enable = true;
user = config.hostSpec.username;
};
};
# Configure keymap in X11
xkb = {
@ -15,22 +21,26 @@
};
};
services.udev.packages = with pkgs; [ gnome-settings-daemon ];
#INFO: Fix for autoLogin
systemd.services."getty@tty1".enable = false;
systemd.services."autovt@tty1".enable = false;
services.udev.packages = with pkgs; [ gnome-settings-daemon ];
environment.systemPackages = with pkgs; [
gnome-tweaks
gnomeExtensions.alphabetical-app-grid
gnomeExtensions.appindicator
gnomeExtensions.blur-my-shell
gnomeExtensions.clipboard-indicator
gnomeExtensions.color-picker
gnomeExtensions.control-monitor-brightness-and-volume-with-ddcutil
gnomeExtensions.dash-to-panel
gnomeExtensions.tiling-shell
gnomeExtensions.vitals
# gnomeExtensions.just-perfection
gnomeExtensions.alphabetical-app-grid
gnomeExtensions.dash-in-panel
gnomeExtensions.just-perfection
gnomeExtensions.pano
gnomeExtensions.paperwm
gnomeExtensions.quick-settings-audio-devices-hider
gnomeExtensions.quick-settings-audio-devices-renamer
gnomeExtensions.undecorate
gnomeExtensions.vitals
];
## Exclusions ##
@ -38,14 +48,20 @@
environment.gnome.excludePackages = (
with pkgs;
[
atomix # puzzle game
epiphany # web browser
evince # document viewer
gedit # text editor
atomix
baobab
epiphany
# evince
geary
gedit
gnome-console
gnome-contacts
gnome-maps
gnome-music
gnome-photos
gnome-terminal
gnome-tour
gnome-user-docs
gnomeExtensions.applications-menu
gnomeExtensions.launch-new-instance
gnomeExtensions.light-style
@ -54,9 +70,10 @@
gnomeExtensions.system-monitor
gnomeExtensions.window-list
gnomeExtensions.windownavigator
hitori # sudoku game
iagno # go game
tali # poker game
hitori
iagno
simple-scan
tali
yelp
]
);

View file

@ -1,20 +0,0 @@
{
inputs,
pkgs,
lib,
...
}:
{
imports = lib.custom.scanPaths ./.;
programs.hyprland = {
enable = true;
withUWSM = true;
};
environment.systemPackages = [
inputs.rose-pine-hyprcursor.packages.${pkgs.system}.default
inputs.better-control.packages.${pkgs.system}.better-control
];
}

View file

@ -1,16 +0,0 @@
{
programs.foot = {
enable = true;
settings = {
main = {
term = "xterm-256color";
font = "monospace:size=10";
dpi-aware = "yes";
};
mouse = {
hide-when-typing = "yes";
};
};
};
}

View file

@ -1,24 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
file-roller
nautilus
nautilus-open-any-terminal
sushi
];
services = {
# needed for GNOME services outside of GNOME Desktop
dbus.packages = with pkgs; [
gcr
gnome-keyring
gnome-settings-daemon
gvfs
];
gnome.gnome-keyring.enable = true;
gvfs.enable = true;
};
}

View file

@ -1,36 +0,0 @@
#
# greeter -> tuigreet https://github.com/apognu/tuigreet?tab=readme-ov-file
# display manager -> greetd https://man.sr.ht/~kennylevinsen/greetd/
#
{
config,
pkgs,
lib,
...
}:
let
user = config.hostSpec.username;
default = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --asterisks --time --time-format '%I:%M %p | %a %h | %F' --cmd uwsm start default";
user = user;
};
initial = {
# command = "${pkgs.hyprland}/bin/Hyprland";
command = "uwsm start default";
user = user;
};
in
{
# environment.systemPackages = [ pkgs.greetd.tuigreet ];
services.greetd = {
enable = true;
restart = true;
settings = rec {
default_session = default;
initial_session = initial;
};
};
}

View file

@ -1,22 +0,0 @@
{ pkgs, ... }:
{
# general packages related to wayland
environment.systemPackages = with pkgs; [
grim # screen capture component, required by flameshot
waypaper # wayland packages(nitrogen analog for wayland)
swww # backend wallpaper daemon required by waypaper
wl-clipboard-rs
wlr-randr
];
xdg.portal = {
enable = true;
xdgOpenUsePortal = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
# pkgs.xdg-desktop-portal-hyprland
];
# configPackages = [ pkgs.hyprland ];
# config.common.default = "*";
};
}

View file

@ -37,8 +37,7 @@ in
"hosts/global/common/bluetooth.nix"
"hosts/global/common/ddcutil.nix" # ddcutil for monitor controls
"hosts/global/common/gaming.nix" # steam, gamescope, gamemode, and related hardware
# "hosts/global/common/gnome.nix" # desktop
"hosts/global/common/hyprland" # desktop
"hosts/global/common/gnome.nix"
"hosts/global/common/libvirt.nix" # vm tools
"hosts/global/common/nvtop.nix" # GPU monitor (not available in home-manager)
"hosts/global/common/plymouth.nix" # fancy boot screen

Binary file not shown.