dotfiles

My PC Dotfiles & Website
commit 244e0041f0687fd7126d2fc72b8f1db2e71f2469
parent 0b0419606c872d71fe28869449b6d535d288434b
Author: maydayv7 <maydayv7@gmail.com>
Date:   Thu, 29 May 2025 23:32:36 +0530

feat(GNOME): Use `ddterm`

Diffstat:

MCHANGELOG.md | 1+
MREADME.md | 2+-
Mdevices/valkyrie/default.nix | 4++--
Mfiles/gnome/shortcuts.json | 102+++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------
Mmodules/gui/desktop/gnome/default.nix | 4++--
Mmodules/gui/desktop/gnome/settings/apps.nix | 2+-
Mmodules/gui/desktop/gnome/settings/default.nix | 10++--------
Mmodules/gui/desktop/gnome/settings/extensions.nix | 84++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
Mmodules/gui/desktop/hyprland/settings/keybindings.nix | 33+++++++++++++++++----------------
9 files changed, 155 insertions(+), 87 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md @@ -2,6 +2,7 @@ ### May +- Use `ddterm` with GNOME - Update to NixOS 25.05 (Warbler) - Drop XFCE Desktop - Drop `nixos-generators` -> Refactor install media configuration diff --git a/README.md b/README.md @@ -37,7 +37,7 @@ This [repository](https://github.com/maydayv7/dotfiles) contains the configurati - [KvLibadwaita](https://github.com/GabePoel/KvLibadwaita) Kvantum Theme: Integrates QT Apps with GNOME Desktop - Firefox [GNOME Theme](https://github.com/rafaelmardojai/firefox-gnome-theme): GNOME Theme for the Mozilla Firefox Browser, used for better desktop integration - VS Code [Adwaita Theme](https://github.com/piousdeer/vscode-adwaita): Integrates Visual Studio Code with GNOME Desktop -- Discord [DNOME](https://github.com/GeopJr/DNOME) Theme: Discord Theme inspired by Adwaita, designed to integrate Discord with GNOME +- Discord [GNOME Theme](https://github.com/ricewind012/discord-gnome-theme): A GNOME theme for Discord, following the Adwaita style & GNOME HIG - Firefox [Elementary Theme](https://github.com/Zonnev/elementaryos-firefox-theme): Elementary OS Theme for the Mozilla Firefox Browser, used for better desktop integration - VS Code [Elementary Theme](https://github.com/sixpounder/vscode-elementary-theme): Integrates Visual Studio Code with Pantheon Desktop diff --git a/devices/valkyrie/default.nix b/devices/valkyrie/default.nix @@ -70,9 +70,9 @@ }; gui = { - desktop = "hyprland"; + desktop = "gnome"; display = "eDP-1"; - wallpaper = "Quasar"; + wallpaper = "Sunrise"; fancy = true; }; diff --git a/files/gnome/shortcuts.json b/files/gnome/shortcuts.json @@ -3,11 +3,11 @@ "name": "Window Navigation", "shortcuts": [ { - "key": "Alt + F4 / Super + Q", + "key": "ALT + F4 / Super + Q", "description": "Close active window" }, { - "key": "Alt + Space", + "key": "ALT + Space", "description": "Activate window menu" }, { @@ -19,7 +19,7 @@ "description": "Toggle maximized window" }, { - "key": "Super + Shift + F", + "key": "Super + SHIFT + F", "description": "Toggle fullscreen window" }, { @@ -27,7 +27,7 @@ "description": "Focus window in specified direction" }, { - "key": "Super + Shift + W/A/S/D", + "key": "Super + SHIFT + W/A/S/D", "description": "Move window to specified tile" }, { @@ -35,20 +35,20 @@ "description": "Move window" }, { - "key": "Super + Ctrl + Mouse Drag", - "description": "Tile window (Use 'Alt' to span)" + "key": "Super + CTRL + Mouse Drag", + "description": "Tile window ('ALT' to span)" }, { "key": "Super + P", "description": "Pin window above all others" }, { - "key": "Alt + Tab", - "description": "Switches between applications" + "key": "ALT + Tab", + "description": "Switch between applications" }, { "key": "Super + Tab", - "description": "Switches between windows of current application" + "description": "Switch between windows of current app" } ] }, @@ -76,19 +76,19 @@ "description": "Switch to first/last workspace" }, { - "key": "Super + Shift + ←/→", - "description": "Move window to specified workspace" + "key": "Super + SHIFT + ←/→", + "description": "Move window between workspaces" }, { - "key": "Super + Ctrl + ←/→", - "description": "Move window to specified monitor" + "key": "Super + CTRL + ←/→", + "description": "Move window between monitors" }, { "key": "Super + F2", "description": "Run Dialog" }, { - "key": "Super + Shift + N", + "key": "Super + SHIFT + N", "description": "Show notification tray" }, { @@ -96,11 +96,11 @@ "description": "Switch keyboard layout" }, { - "key": "Ctrl + Alt + S", + "key": "CTRL + ALT + S", "description": "Resize window to pre-defined sizes" }, { - "key": "Ctrl + Alt + Del", + "key": "CTRL + ALT + Del", "description": "Open shutdown menu" }, { @@ -137,11 +137,11 @@ "description": "Open Files" }, { - "key": "Super + V", - "description": "Open Clipboard (Use 'Ctrl' for incognito)" + "key": "Super + T", + "description": "Open Dropdown Terminal" }, { - "key": "Super + T", + "key": "Super + SHIFT + T", "description": "Open Terminal" }, { @@ -149,15 +149,15 @@ "description": "Open Browser" }, { - "key": "Super + Enter", - "description": "Open Task Manager" + "key": "Super + V", + "description": "Open Clipboard ('CTRL' for incognito)" }, { - "key": "Super + Shift + T", - "description": "Open Text Editor" + "key": "Super + Enter", + "description": "Open Task Manager" }, { - "key": "Super + Shift + E", + "key": "Super + SHIFT + E", "description": "Open Emoji Picker" }, { @@ -165,19 +165,19 @@ "description": "Show this shortcuts menu" }, { - "key": "Ctrl + W", + "key": "CTRL + W", "description": "Close tab in tabbed apps" }, { - "key": "Ctrl + T", + "key": "CTRL + T", "description": "Opens new tab in tabbed apps" }, { - "key": "Ctrl + Shift + T", + "key": "CTRL + SHIFT + T", "description": "Reopen last closed tab in browser" }, { - "key": "Ctrl + /", + "key": "CTRL + /", "description": "Code Editor command palette" }, { @@ -198,24 +198,60 @@ "description": "Take region screenshot" }, { - "key": "Shift + Print", + "key": "SHIFT + Print", "description": "Take full screenshot" }, { - "key": "Ctrl + Print", + "key": "CTRL + Print", "description": "Take window screenshot" }, { - "key": "Alt + Print", + "key": "ALT + Print", "description": "Video capture desktop" } ] }, { - "name": "Overview Actions TODO", + "name": "Overview Actions", "shortcuts": [ { - "key": "; or `", + "key": "Tab", + "description": "Focus next window" + }, + { + "key": "Super + Tab", + "description": "Focus next monitor" + }, + { + "key": "ALT + Tab", + "description": "Focus dash icons" + }, + { + "key": "PgUp/PgDown or CTRL + Tab", + "description": "Switch between workspaces" + }, + { + "key": "SHIFT + PgUp/PgDown or Scroll", + "description": "Reorder workspaces" + }, + { + "key": "SHIFT + ←/→", + "description": "Move window between workspaces ('CTRL' for new)" + }, + { + "key": "Delete", + "description": "Close window" + }, + { + "key": "SHIFT + CTRL + Delete", + "description": "Close all windows on workspace" + }, + { + "key": "SHIFT + Enter", + "description": "Move window between monitors" + }, + { + "key": "Space or `", "description": "Show open application windows" }, { diff --git a/modules/gui/desktop/gnome/default.nix b/modules/gui/desktop/gnome/default.nix @@ -226,8 +226,8 @@ in }; programs = { - # Discord DNOME Theme - nixcord.quickCss = mkIf (exists "discord") ''@import url("https://raw.githack.com/GeopJr/DNOME/dist/DNOME.css");''; + # Discord GNOME Theme + nixcord.quickCss = mkIf (exists "discord") ''@import url("https://raw.githubusercontent.com/ricewind012/discord-gnome-theme/master/gnome.theme.css");''; # Code Editor vscode.profiles.default = mkIf (exists "vscode") { diff --git a/modules/gui/desktop/gnome/settings/apps.nix b/modules/gui/desktop/gnome/settings/apps.nix @@ -75,7 +75,7 @@ in highlight-current-line = true; indent-style = "tab"; show-line-numbers = true; - show-map = true; + show-map = false; tab-width = mkUint32 4; }; diff --git a/modules/gui/desktop/gnome/settings/default.nix b/modules/gui/desktop/gnome/settings/default.nix @@ -101,7 +101,6 @@ in 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/" ]; }; @@ -112,17 +111,11 @@ in }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { - binding = "<Super>t"; + binding = "<Super><Shift>t"; command = "ghostty"; name = "Terminal"; }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = { - binding = "<Super><Shift>t"; - command = "gnome-text-editor"; - name = "Text Editor"; - }; - "org/gnome/desktop/wm/preferences" = { button-layout = "appmenu:minimize,maximize,close"; focus-mode = "click"; @@ -148,6 +141,7 @@ in }; "org/gnome/desktop/interface" = { + accent-color = "blue"; clock-show-weekday = true; enable-animations = true; enable-hot-corners = true; diff --git a/modules/gui/desktop/gnome/settings/extensions.nix b/modules/gui/desktop/gnome/settings/extensions.nix @@ -9,15 +9,19 @@ let inherit (builtins) filter + genList hasAttr head map + toString ; inherit (lib) foldr hm + listToAttrs mkForce + nameValuePair optionals recursiveUpdate ; @@ -33,7 +37,6 @@ let [ { package = appindicator; } { package = arrange-windows; } - { package = control-monitor-brightness-and-volume-with-ddcutil; } { package = disconnect-wifi; } { package = display-configuration-switcher; } { package = gsconnect; } @@ -92,6 +95,10 @@ let settings.hpadding = 4; } { + package = brightness-control-using-ddcutil; + settings.hide-system-indicator = true; + } + { package = color-picker; settings.enable-format = true; } @@ -188,23 +195,16 @@ let }; } { - package = auto-activities; - settings = { - detect-minimized = true; - hide-on-new-window = true; - show-apps = false; - skip-last-workspace = false; - skip-taskbar = true; - }; - } - { package = caffeine; settings = { indicator-position = 0; - inhibit-apps = [ "startcenter.desktop" ]; nightlight-control = "never"; show-indicator = "always"; show-notifications = false; + inhibit-apps = [ + "startcenter.desktop" + "virt-manager.desktop" + ]; }; } { @@ -241,14 +241,31 @@ let }; } { - package = wsp-windows-search-provider; - name = "windows-search-provider"; - settings = { - custom-prefixes = "; `"; - results-order = 1; - search-commands = false; - search-method = 1; - }; + package = ddterm; + path = "com/github/amezin/ddterm"; + settings = + { + dterm-toggle-hotkey = [ "<Super>t" ]; + hide-window-on-esc = true; + panel-icon-type = "none"; + shortcut-find = [ "<Control>f" ]; + shortcut-page-close = [ "<Control>w" ]; + shortcut-win-new-tab = [ "<Control>t" ]; + show-animation = "ease-in-sine"; + show-animation-duration = 0.2; + hide-animation = "ease-out-sine"; + hide-animation-duration = 0.1; + window-skip-taskbar = false; + } + // (listToAttrs ( + genList ( + n: + let + num = toString (n + 1); + in + nameValuePair "shortcut-switch-to-tab-${num}" [ "<Control>${num}" ] + ) 9 + )); } { package = pano; @@ -280,6 +297,7 @@ let enable-blur-snap-assistant = false; enable-snap-assist = false; enable-tiling-system = true; + enable-tiling-system-windows-suggestions = true; enable-window-border = false; override-window-menu = true; restore-window-original-size = true; @@ -295,6 +313,16 @@ let }; } { + package = wsp-windows-search-provider; + name = "windows-search-provider"; + settings = { + custom-prefixes = "`"; + results-order = 1; + search-commands = false; + search-method = 1; + }; + } + { package = vertical-workspaces; settings = { aaa-loading-profile = true; @@ -302,7 +330,8 @@ let animation-speed-factor = 100; app-display-module = true; app-favorites-module = true; - app-folder-order = 2; + app-folder-order = 1; + app-folder-remove-button = 0; app-grid-active-preview = false; app-grid-animation = 4; app-grid-bg-blur-sigma = 40; @@ -319,6 +348,7 @@ let app-grid-order = 1; app-grid-page-width-scale = 80; app-grid-performance = true; + app-grid-remember-page = true; app-grid-rows = 0; app-grid-spacing = 12; center-app-grid = true; @@ -360,6 +390,7 @@ let overview-esc-behavior = 1; overview-mode = 0; panel-module = true; + panel-overview-style = 1; panel-position = 0; panel-visibility = 0; recent-files-search-provider-module = false; @@ -427,7 +458,7 @@ let settings = { skip-libadwaita-app = false; skip-libhandy-app = false; - border-width = 2; + border-width = -1; border-color = with colors; mkTuple [ @@ -437,6 +468,10 @@ let 1.0 ]; global-rounded-corner-settings = ''{'padding': <{'left': 1, 'right': 1, 'top': 1, 'bottom': 1}>, 'keepRoundedCorners': <{'maximized': true, 'fullscreen': false}>, 'borderRadius': <uint32 12>, 'smoothing': <0.0>, 'enabled': <true>}''; + blacklist = [ + "com.desktop.ding" + "com.github.amezin.ddterm" + ]; }; } { @@ -449,7 +484,6 @@ let } { package = gtk4-desktop-icons-ng-ding; - disable = true; # ! # Currently buggy settings = { dark-text-in-labels = false; show-drop-place = false; @@ -482,7 +516,9 @@ in ext: if (hasAttr "settings" ext) then ( - if (hasAttr "name" ext) then + if (hasAttr "path" ext) then + { "${ext.path}" = ext.settings; } + else if (hasAttr "name" ext) then { "org/gnome/shell/extensions/${ext.name}" = ext.settings; } else { "org/gnome/shell/extensions/${ext.package.extensionPortalSlug}" = ext.settings; } diff --git a/modules/gui/desktop/hyprland/settings/keybindings.nix b/modules/gui/desktop/hyprland/settings/keybindings.nix @@ -1,4 +1,8 @@ -_: { +_: +let + inherit (builtins) concatLists genList toString; +in +{ ## Compositor Binds ## wayland.windowManager.hyprland = { ## Keybindings @@ -83,21 +87,18 @@ _: { ] ++ # Workspaces - ( - with builtins; - concatLists ( - genList ( - n: - let - num = toString (n + 1); - in - [ - "$mod, ${num}, split:workspace, ${num}" - "$mod SHIFT, ${num}, split:movetoworkspace, ${num}" - ] - ) 9 - ) - ); + (concatLists ( + genList ( + n: + let + num = toString (n + 1); + in + [ + "$mod, ${num}, split:workspace, ${num}" + "$mod SHIFT, ${num}, split:movetoworkspace, ${num}" + ] + ) 9 + )); # Mouse bindm = [