dotfiles
My PC Dotfiles & Websitegit clone https://github.com/maydayv7/dotfiles
commit 83883fa924500f3b88c5ba8275fa10894994df1e parent 95e93d2459f29da3c6b7b87c3fd8f7481191cbbc Author: maydayv7 <maydayv7@gmail.com> Date: Wed, 5 Feb 2025 10:57:29 +0530 refactor(GNOME): Drop PaperWM for Tiling Shell Also drop Blackbox for Ghostty, and fix some niggles
Diffstat:
22 files changed, 338 insertions(+), 442 deletions(-)
diff --git a/README.md b/README.md @@ -106,14 +106,14 @@ This [repository](https://github.com/maydayv7/dotfiles) contains the configurati ## Programs -| Type | Programs | -| :------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| Editors | [`nano`](https://www.nano-editor.org/), [VS Code](https://code.visualstudio.com/) | -| Shells | [`bash`](https://www.gnu.org/software/bash/), [`zsh`](https://www.zsh.org) | -| Terminal | [Blackbox](https://gitlab.gnome.org/raggesilver/blackbox), [`xfce4` Terminal](https://docs.xfce.org/apps/terminal/start), [Kitty](https://sw.kovidgoyal.net/kitty/) | -| Browser | [Firefox](https://www.mozilla.org/en-US/firefox/) | -| Desktop Environments | [GNOME](https://www.gnome.org), [XFCE](https://xfce.org/), [Pantheon](https://elementary.io/) | -| Compositors | [Hyprland](https://hyprland.org/), [Picom](https://github.com/yshui/picom) | +| Type | Programs | +| :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------: | +| Editors | [`nano`](https://www.nano-editor.org/), [VS Code](https://code.visualstudio.com/) | +| Shells | [`bash`](https://www.gnu.org/software/bash/), [`zsh`](https://www.zsh.org) | +| Terminal | [Ghostty](https://ghostty.org/), [`xfce4` Terminal](https://docs.xfce.org/apps/terminal/start), [Kitty](https://sw.kovidgoyal.net/kitty/) | +| Browser | [Firefox](https://www.mozilla.org/en-US/firefox/) | +| Desktop Environments | [GNOME](https://www.gnome.org), [XFCE](https://xfce.org/), [Pantheon](https://elementary.io/) | +| Compositors | [Hyprland](https://hyprland.org/), [Picom](https://github.com/yshui/picom) | ## Structure @@ -521,6 +521,9 @@ You can navigate to the `README`s present in the various directories to know mor - Use `nixpkgs` version - Use [`nemo`](https://community.linuxmint.com/software/view/nemo) File Manager - Add KDE Connect Support +- GNOME Changes + - Drop PaperWM for Tiling Shell + - Drop Blackbox for Ghostty - Update Wine Packages ### v24.5 diff --git a/devices/valkyrie/default.nix b/devices/valkyrie/default.nix @@ -23,7 +23,7 @@ vm = { vfio = "on"; - android.enable = true; + android.enable = false; }; }; @@ -48,9 +48,9 @@ }; gui = { - desktop = "hyprland"; + desktop = "gnome"; display = "eDP-1"; - wallpaper = "Thread"; + wallpaper = "Nix"; fancy = true; }; diff --git a/files/colors/adwaita.yaml b/files/colors/adwaita.yaml @@ -1,18 +1,18 @@ -scheme: "Adwaita Dark" +scheme: "Adwaita" author: "maydayv7" -base00: "1E1E1E" -base01: "241F31" -base02: "3D3846" -base03: "5E5C64" -base04: "77767B" -base05: "C0BFBC" -base06: "DEDDDA" -base07: "F6F5F4" -base08: "C01C28" -base09: "ED333B" -base0A: "F5C211" -base0B: "2EC27E" -base0C: "0AB9DC" -base0D: "1E78E4" -base0E: "9841BB" -base0F: "DC8ADD" +base00: "#1E1E1E" +base01: "#242424" +base02: "#303030" +base03: "#5E5C64" +base04: "#C0BFBC" +base05: "#F6F5F4" +base06: "#CDAB8F" +base07: "#62a0ea" +base08: "#ED333B" +base09: "#FFA348" +base0A: "#F5C211" +base0B: "#57E389" +base0C: "#0AB9DC" +base0D: "#1E78E4" +base0E: "#9841BB" +base0F: "#C061CB" diff --git a/files/colors/arc.yaml b/files/colors/arc.yaml @@ -1,18 +1,18 @@ scheme: "Arc Dark" author: "maydayv7" -base00: "2F343F" -base01: "404552" -base02: "4B5162" -base03: "7C818C" -base04: "A2A2A2" -base05: "F3F4F5" -base06: "0F75BD" -base07: "F9F9F9" -base08: "9C3528" -base09: "D64937" -base0A: "F3B43A" -base0B: "61BC3B" -base0C: "288E9C" -base0D: "0D68A8" -base0E: "744560" -base0F: "37C3D6" +base00: "#2F343F" +base01: "#404552" +base02: "#4B5162" +base03: "#7C818C" +base04: "#A2A2A2" +base05: "#F3F4F5" +base06: "#0F75BD" +base07: "#F9F9F9" +base08: "#9C3528" +base09: "#D64937" +base0A: "#F3B43A" +base0B: "#61BC3B" +base0C: "#288E9C" +base0D: "#0D68A8" +base0E: "#744560" +base0F: "#37C3D6" diff --git a/files/colors/catppuccin.yaml b/files/colors/catppuccin.yaml @@ -1,18 +1,18 @@ scheme: "Catppuccin Macchiato" author: "catppuccin" -base00: "24273A" -base01: "1E2030" -base02: "363A4F" -base03: "494D64" -base04: "5B6078" -base05: "CAD3F5" -base06: "F4DBD6" -base07: "B7BDF8" -base08: "ED8796" -base09: "F5A97F" -base0A: "EED49F" -base0B: "A6DA95" -base0C: "8BD5CA" -base0D: "8AADF4" -base0E: "C6A0F6" -base0F: "F0C6C6" +base00: "#24273A" +base01: "#1E2030" +base02: "#363A4F" +base03: "#494D64" +base04: "#5B6078" +base05: "#CAD3F5" +base06: "#F4DBD6" +base07: "#B7BDF8" +base08: "#ED8796" +base09: "#F5A97F" +base0A: "#EED49F" +base0B: "#A6DA95" +base0C: "#8BD5CA" +base0D: "#8AADF4" +base0E: "#C6A0F6" +base0F: "#F0C6C6" diff --git a/files/colors/elementary.yaml b/files/colors/elementary.yaml @@ -1,18 +1,18 @@ scheme: "Elementary OS" author: "maydayv7" -base00: "2D363A" -base01: "073642" -base02: "073642" -base03: "94A3A5" -base04: "94A3A5" -base05: "C0BFBC" -base06: "DEDDDA" -base07: "EEEEEE" -base08: "DC322F" -base09: "CB4B16" -base0A: "B58900" -base0B: "859900" -base0C: "2AA198" -base0D: "268BD2" -base0E: "D33682" -base0F: "EC0048" +base00: "#2D363A" +base01: "#073642" +base02: "#073642" +base03: "#94A3A5" +base04: "#94A3A5" +base05: "#C0BFBC" +base06: "#DEDDDA" +base07: "#EEEEEE" +base08: "#DC322F" +base09: "#CB4B16" +base0A: "#B58900" +base0B: "#859900" +base0C: "#2AA198" +base0D: "#268BD2" +base0E: "#D33682" +base0F: "#EC0048" diff --git a/files/flake.nix b/files/flake.nix @@ -57,8 +57,6 @@ { iso = readFile ./gnome/iso; settings = ./gnome/settings; - shell = readFile ./gnome/shell.css; - tiling = readFile ./gnome/tiling.css; } // map.files { directory = ./gnome; @@ -190,7 +188,6 @@ xfce = { css = readFile ./xfce/gtk.css; panel = ./xfce/panel; - terminal = readFile ./xfce/terminalrc; settings = {directory = ./xfce/settings;} // map.files { diff --git a/files/gnome/settings/apps.nix b/files/gnome/settings/apps.nix @@ -60,18 +60,6 @@ in { show-delete-permanently = true; }; - "com/raggesilver/BlackBox" = { - font = "${head fonts.monospace} 11"; - headerbar-drag-area = true; - notify-process-completion = true; - opacity = mkUint32 90; - remember-window-size = true; - show-headerbar = true; - show-menu-button = true; - terminal-bell = false; - pretty = true; - }; - "org/gnome/TextEditor" = { highlight-current-line = true; indent-style = "tab"; @@ -104,7 +92,7 @@ in { "google-chrome.desktop" "org.gnome.Geary.desktop" "org.gnome.Nautilus.desktop" - "com.raggesilver.BlackBox.desktop" + "com.mitchellh.ghostty.desktop" "org.gnome.TextEditor.desktop" "org.gnome.Settings.desktop" ]; diff --git a/files/gnome/settings/default.nix b/files/gnome/settings/default.nix @@ -18,33 +18,34 @@ in { always-on-top = ["<Super>p"]; begin-move = []; begin-resize = []; - close = ["<Alt>F4"]; + close = ["<Super>q" "<Alt>F4"]; cycle-group = []; cycle-group-backward = []; - maximize = [""]; - minimize = ["<Super>h"]; - move-to-center = [""]; + maximize = ["<Super>Up"]; + minimize = ["<Super>Down"]; + move-to-center = ["<Super>c"]; move-to-monitor-down = []; - move-to-monitor-left = [""]; - move-to-monitor-right = [""]; + move-to-monitor-left = ["<Primary><Super>Left"]; + move-to-monitor-right = ["<Primary><Super>Right"]; move-to-monitor-up = []; move-to-workspace-1 = []; move-to-workspace-down = []; move-to-workspace-last = []; - move-to-workspace-left = [""]; - move-to-workspace-right = [""]; + move-to-workspace-left = ["<Shift><Super>Left"]; + move-to-workspace-right = ["<Shift><Super>Right"]; move-to-workspace-up = []; panel-main-menu = []; panel-run-dialog = ["<Super>F2"]; - switch-applications = [""]; - switch-applications-backward = [""]; - switch-group = [""]; - switch-group-backward = [""]; + switch-applications = ["<Alt>Tab"]; + switch-applications-backward = ["<Shift><Alt>Tab"]; + switch-group = ["<Super>Tab"]; + switch-group-backward = ["<Shift><Super>Tab"]; switch-to-workspace-down = []; - switch-to-workspace-left = []; - switch-to-workspace-right = []; + switch-to-workspace-left = ["<Super>Left"]; + switch-to-workspace-right = ["<Super>Right"]; switch-to-workspace-up = []; - toggle-maximized = ["F11"]; + toggle-fullscreen = ["<Shift><Super>f"]; + toggle-maximized = ["<Super>m"]; unmaximize = []; }; @@ -74,12 +75,12 @@ in { "org/gnome/settings-daemon/plugins/media-keys" = { area-screenshot = ["Print"]; area-screenshot-clip = []; - control-center = [""]; + control-center = ["<Super><Shift>grave"]; email = ["<Super>e"]; home = ["<Super>f"]; magnifier = ["<Super>x"]; - magnifier-zoom-in = ["<Super><Primary>equal"]; - magnifier-zoom-out = ["<Super><Primary>minus"]; + magnifier-zoom-in = ["<Super>equal"]; + magnifier-zoom-out = ["<Super>minus"]; rotate-video-lock-static = []; screencast = ["<Alt>Print"]; screenreader = []; @@ -91,7 +92,7 @@ in { volume-up = ["AudioRaiseVolume"]; window-screenshot = ["<Primary>Print"]; window-screenshot-clip = []; - www = ["<Super>w"]; + www = ["<Super>grave"]; custom-keybindings = [ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/" @@ -101,13 +102,13 @@ in { "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { binding = "<Super>Return"; - command = "missioncenter"; + command = "resources"; name = "Task Manager"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { binding = "<Super>t"; - command = "blackbox"; + command = "ghostty"; name = "Terminal"; }; @@ -171,12 +172,8 @@ in { }; "org/gnome/desktop/a11y/magnifier" = { - cross-hairs-clip = true; - cross-hairs-color = "#15519a"; - cross-hairs-length = 1440; - cross-hairs-opacity = 1.0; mouse-tracking = "proportional"; - show-cross-hairs = true; + show-cross-hairs = false; }; "org/gnome/desktop/privacy" = { diff --git a/files/gnome/settings/extensions.nix b/files/gnome/settings/extensions.nix @@ -7,9 +7,10 @@ ... }: let inherit (builtins) filter hasAttr head map; - inherit (lib) foldr hm mapAttrs' mkForce nameValuePair optionals recursiveUpdate; + inherit (lib) foldr hm mkForce optionals recursiveUpdate; homeDir = config.home.homeDirectory; font = head sys.fonts.fontconfig.defaultFonts.sansSerif; + inherit (sys.lib.stylix) colors; # Shell Extensions extensions = with pkgs.gnomeExtensions // hm.gvariant; ([ @@ -22,7 +23,10 @@ {package = hide-minimized;} {package = invert-window-color;} {package = media-progress;} + {package = overview-hover;} {package = removable-drive-menu;} + {package = unmess;} + {package = window-state-manager;} {package = x11-gestures;} {package = xlanguagetray;} { @@ -36,14 +40,11 @@ { package = top-bar-organizer; settings = { - center-box-order = []; + center-box-order = ["dateMenu"]; left-box-order = [ - "WorkspaceMenu" "activities" "guillotine" "guillotine@fopdoodle.net" - "FocusButton" - "OpenPositionButton" "appMenu" ]; @@ -61,7 +62,6 @@ "screenSharing" "screenRecording" "quickSettings" - "dateMenu" ]; }; } @@ -80,6 +80,13 @@ settings.name = mkForce "custom"; } { + package = fullscreen-avoider; + settings = { + move-hot-corners = true; + move-notifications = true; + }; + } + { package = window-title-is-back; settings = { colored-icon = true; @@ -114,6 +121,15 @@ }; } { + package = focus-changer; + settings = { + focus-down = ["<Super>s"]; + focus-left = ["<Super>a"]; + focus-right = ["<Super>d"]; + focus-up = ["<Super>w"]; + }; + } + { package = vitals; settings = { hot-sensors = ["_default_icon_"]; @@ -124,6 +140,28 @@ }; } { + package = alttab-mod; + name = "altTab-mod"; + settings = { + current-monitor-only = true; + current-monitor-only-window = true; + current-workspace-only = true; + disable-hover-select = false; + focus-on-select-window = true; + remove-delay = true; + }; + } + { + 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; @@ -136,7 +174,7 @@ { package = shortcuts; settings = { - maxcolumns = 4; + maxcolumns = 3; shortcuts-file = files.gnome.shortcuts; shortcuts-toggle-overview = ["<Super>slash"]; show-icon = false; @@ -146,6 +184,27 @@ }; } { + package = window-gestures; + name = "windowgestures"; + settings = { + fn-fullscreen = true; + fn-maximized-snap = true; + fn-move = true; + fn-move-snap = true; + fn-resize = true; + pinch-enable = true; + pinch3-in = 0; + pinch3-out = 0; + pinch4-in = 14; + pinch4-out = 3; + swipe3-down = 1; + swipe4-updown = 22; + taphold-move = true; + three-finger = false; + use-active-window = true; + }; + } + { package = wsp-windows-search-provider; name = "windows-search-provider"; settings = { @@ -178,127 +237,29 @@ }; } { - package = rocketbar; + package = tiling-shell; + name = "tilingshell"; settings = { - appbutton-backlight-dominant-color = false; - appbutton-enable-drag-and-drop = true; - appbutton-enable-indicators = true; - appbutton-enable-minimize-action = true; - appbutton-enable-scroll = true; - appbutton-enable-sound-control = false; - appbutton-icon-size = 21; - appbutton-menu-require-click = true; - hotcorner-enable-in-fullscreen = false; - indicator-dominant-color-active = true; - indicator-dominant-color-inactive = false; - indicator-position = "top"; - notification-counter-center-clock = false; - notification-counter-enabled = true; - notification-counter-hide-empty = false; - notification-service-count-attention-sources = false; - notification-service-enable-unity-dbus = true; - overview-enable-empty-space-clicks = false; - panel-enable-middle-button = false; - panel-menu-require-click = false; - taskbar-enabled = true; - taskbar-position = "center"; - taskbar-preserve-position = true; - taskbar-show-favorites = false; + enable-blur-selected-tilepreview = false; + enable-blur-snap-assistant = false; + enable-snap-assist = false; + enable-tiling-system = true; + enable-window-border = true; + override-window-menu = true; + restore-window-original-size = true; + tiling-system-activation-key = ["0"]; + top-edge-maximize = true; + window-border-width = mkUint32 2; + inner-gaps = mkUint32 5; + outer-gaps = mkUint32 5; + move-window-down = ["<Shift><Super>s"]; + move-window-left = ["<Shift><Super>a"]; + move-window-right = ["<Shift><Super>d"]; + move-window-up = ["<Shift><Super>w"]; + window-border-color = with colors; "rgb(${base0D-rgb-r},${base0D-rgb-g},${base0D-rgb-b})"; }; } { - package = pkgs.custom.gnome-paperwm; - settings = - { - animation-time = 0.25; - disable-topbar-styling = false; - gesture-horizontal-fingers = 4; - gesture-workspace-fingers = 4; - horizontal-margin = 10; - maximize-within-tiling = true; - open-window-position = 0; - open-window-position-option-up = true; - overview-ensure-viewport-animation = 1; - overview-min-windows-per-row = 4; - restore-attach-modal-dialogs = "true"; - restore-edge-tiling = "false"; - restore-workspaces-only-on-primary = "true"; - selection-border-size = 5; - show-focus-mode-icon = true; - show-open-position-icon = true; - show-window-position-bar = true; - show-workspace-indicator = true; - topbar-mouse-scroll-enable = true; - use-default-background = true; - vertical-margin = 5; - vertical-margin-bottom = 5; - window-gap = 15; - winprops = []; - } - // mapAttrs' (name: value: - nameValuePair "keybindings/${name}" value) { - barf-out = [""]; - barf-out-active = ["<Shift><Super>b"]; - center-horizontally = ["<Super>c"]; - center-vertically = [""]; - close-window = ["<Super>q"]; - cycle-height = [""]; - cycle-height-backwards = [""]; - cycle-width = [""]; - cycle-width-backwards = [""]; - drift-left = ["<Super>semicolon"]; - drift-right = ["<Super>apostrophe"]; - live-alt-tab = ["<Alt>Tab"]; - live-alt-tab-backward = ["<Shift><Alt>Tab"]; - live-alt-tab-scratch = ["<Control><Super>grave"]; - live-alt-tab-scratch-backward = [""]; - move-down = ["<Shift><Super>Down"]; - move-down-workspace = ["<Shift><Super>greater"]; - move-left = ["<Shift><Super>Left"]; - move-monitor-above = [""]; - move-monitor-below = [""]; - move-monitor-left = ["<Shift><Super>braceleft"]; - move-monitor-right = ["<Shift><Super>braceright"]; - 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 = ["<Shift><Super>comma"]; - new-window = ["<Super>n"]; - previous-workspace = ["<Super>Tab"]; - previous-workspace-backward = ["<Shift><Super>Tab"]; - resize-h-dec = ["<Shift><Super>underscore"]; - resize-w-inc = ["<Super>equal"]; - slurp-in = ["<Super>b"]; - swap-monitor-above = [""]; - swap-monitor-below = [""]; - swap-monitor-left = ["<Control><Super>bracketleft"]; - swap-monitor-right = ["<Control><Super>bracketright"]; - switch-down-workspace = ["<Super>period"]; - switch-first = [""]; - switch-last = [""]; - switch-left = ["<Super>Left"]; - switch-monitor-above = [""]; - switch-monitor-below = [""]; - switch-monitor-left = ["<Super>bracketleft"]; - switch-monitor-right = ["<Super>bracketright"]; - switch-next = [""]; - switch-previous = [""]; - switch-up = ["<Super>Up"]; - switch-up-workspace = ["<Super>comma"]; - take-window = ["<Alt>grave"]; - toggle-maximize-width = ["<Super>m"]; - toggle-scratch = ["<Super>grave"]; - toggle-scratch-layer = ["<Shift><Super>asciitilde"]; - toggle-scratch-window = [""]; - toggle-top-and-position-bar = [""]; - }; - } - { package = vertical-workspaces; settings = { aaa-loading-profile = true; @@ -334,7 +295,7 @@ dash-bg-opacity = 50; dash-bg-radius = 0; dash-icon-scroll = 1; - dash-isolate-workspaces = false; + dash-isolate-workspaces = true; dash-max-icon-size = 64; dash-module = true; dash-position = 2; @@ -418,18 +379,29 @@ ws-switcher-mode = 0; ws-switcher-wraparound = false; ws-thumbnail-scale = 10; - ws-thumbnail-scale-appgrid = 15; + ws-thumbnail-scale-appgrid = 20; ws-thumbnails-full = false; - ws-thumbnails-position = 0; + ws-thumbnails-position = 5; wst-position-adjust = 0; }; } ] ++ optionals sys.gui.fancy [ + {package = rounded-window-corners-reborn;} + {package = transparent-top-bar;} { package = panel-corners; settings.panel-corners = false; } + { + package = gtk4-desktop-icons-ng-ding; + disable = true; #!# Currently buggy + settings = { + dark-text-in-labels = false; + show-drop-place = false; + show-network-volumes = false; + }; + } ]); in { dconf.settings = diff --git a/files/gnome/shortcuts.json b/files/gnome/shortcuts.json @@ -7,112 +7,48 @@ "description": "Close active window" }, { - "key": "F11 / Super + Shift + F", - "description": "Make fullscreen/restore" - }, - { - "key": "Super + M", - "description": "Maximize horizontally" - }, - { - "key": "Super + ↑/←/↓/→", - "description": "Switch window columns" - }, - { - "key": "Super + Shift + ↑/←/↓/→", - "description": "Move window to specified column" - }, - { - "key": "Super + Mouse Drag", - "description": "Move window" - }, - { - "key": "Alt + Tab", - "description": "Switch between windows" - }, - { - "key": "Alt + `", - "description": "Grab and drop windows" - }, - { - "key": "Super + Tab", - "description": "Switch between workspaces" - }, - { - "key": "Super + < / >", - "description": "Switch workspaces" - }, - { - "key": "Super + Shift + < / >", - "description": "Move window to specified workspace" - }, - { - "key": "Super + C", - "description": "Center window" - }, - { - "key": "Super + N", - "description": "Duplicate window" - }, - { - "key": "Super + H", - "description": "Minimize window" - }, - { - "key": "Super + B", - "description": "Move window to active column" + "key": "Alt + Space", + "description": "Activate window menu" }, { - "key": "Super + Shift + B", - "description": "Move window to new column" + "key": "Super + ↑/↓", + "description": "Maximize/Minimize window" }, { - "key": "Super + = / -", - "description": "Change window width" + "key": "Super + M", + "description": "Toggle maximized window" }, { - "key": "Super + Shift + = / -", - "description": "Change window height" + "key": "Super + Shift + F", + "description": "Toggle fullscreen window" }, { - "key": "Super + Shift + ; / '", - "description": "Drift viewport" + "key": "Super + W/A/S/D", + "description": "Focus window in specified direction" }, { - "key": "Super + `", - "description": "Toggle window float" + "key": "Super + Shift + W/A/S/D", + "description": "Move window to specified tile" }, { - "key": "Super + Shift + `", - "description": "Show floating windows" + "key": "Super + Mouse Drag", + "description": "Move window" }, { - "key": "Super + Ctrl + `", - "description": "Switch between floating windows" + "key": "Super + Ctrl + Mouse Drag", + "description": "Tile window (Use 'Alt' to span)" }, { "key": "Super + P", - "description": "Pin floating window" + "description": "Pin window above all others" }, { - "key": "Super + ] / [", - "description": "Switch to specified monitor" - }, - { - "key": "Super + Shift + ] / [", - "description": "Move window to specified monitor" - }, - { - "key": "Super + Ctrl + ] / [", - "description": "Swap workspaces with specified monitor" - }, - { - "key": "Super + Shift + C", - "description": "Switch window focus mode" + "key": "Alt + Tab", + "description": "Switches between applications" }, { - "key": "Super + Shift + W", - "description": "Switch position of new windows" + "key": "Super + Tab", + "description": "Switches between windows of current application" } ] }, @@ -128,8 +64,28 @@ "description": "Enter App Grid" }, { - "key": "Alt + Space", - "description": "Activate window menu" + "key": "Super + 1,2,3...", + "description": "Run app by position in launcher" + }, + { + "key": "; or ` in Overview", + "description": "Show open application windows" + }, + { + "key": "Super + ←/→", + "description": "Switch workspaces" + }, + { + "key": "Super + Home/End", + "description": "Switch to first/last workspace" + }, + { + "key": "Super + Shift + ←/→", + "description": "Move window to specified workspace" + }, + { + "key": "Super + Ctrl + ←/→", + "description": "Move window to specified monitor" }, { "key": "Super + F2", @@ -156,11 +112,11 @@ "description": "Toggle zoom" }, { - "key": "Super + Ctrl + =", + "key": "Super + =", "description": "Zoom in" }, { - "key": "Super + Ctrl + -", + "key": "Super + -", "description": "Zoom out" }, { @@ -173,12 +129,8 @@ "name": "Application Shortcuts", "shortcuts": [ { - "key": "Super + 1,2,3...", - "description": "Run app by position in launcher" - }, - { - "key": "; or ` in Overview", - "description": "Show open application windows" + "key": "Super + ~", + "description": "Open Settings" }, { "key": "Super + F", @@ -193,7 +145,7 @@ "description": "Open Terminal" }, { - "key": "Super + W", + "key": "Super + `", "description": "Open Browser" }, { @@ -263,22 +215,42 @@ "name": "Navigation Gestures", "shortcuts": [ { - "key": "3F ← Swipe", - "description": "Show overview/apps grid" + "key": "4F ↑ Swipe (←/→)", + "description": "Maximize/fullscreen/restore(/snap) a window" }, { "key": "3F ↑ Swipe", - "description": "Switch workspaces directly" + "description": "Show overview/apps grid" }, { - "key": "4F ←/→ Swipe", - "description": "Switch windows" + "key": "3F ↓ Swipe", + "description": "Minimize window" }, { - "key": "4F ↓ Swipe", + "key": "3F ←/→ Swipe", "description": "Switch workspaces" }, { + "key": "4F Hold then Swipe", + "description": "Move window" + }, + { + "key": "3F ↓ Swipe then ←/→", + "description": "Switch to previous/next window" + }, + { + "key": "4F ↓ Swipe", + "description": "Show notification center" + }, + { + "key": "4F Pinch Out", + "description": "Show desktop" + }, + { + "key": "4F Pinch In", + "description": "Mute audio" + }, + { "key": "2F ←/→ Swipe", "description": "Switch pages or move backward/forward" } diff --git a/modules/apps/flatpak.nix b/modules/apps/flatpak.nix @@ -23,7 +23,7 @@ in { services.flatpak = { enable = true; - uninstallUnused = true; + uninstallUnmanaged = true; # Repositories remotes = [ diff --git a/modules/gui/desktop/gnome/default.nix b/modules/gui/desktop/gnome/default.nix @@ -90,7 +90,7 @@ in { gnupg.agent.pinentryPackage = mkForce pkgs.pinentry.gnome3; nautilus-open-any-terminal = { enable = true; - terminal = "blackbox"; + terminal = "ghostty"; }; kdeconnect = { @@ -115,12 +115,14 @@ in { hardware.i2c.enable = true; }) - ## User Configuration (mkIf (desktop == "gnome") { user.homeConfig = { # Desktop Settings imports = [gnome.settings]; - stylix.targets.gnome.enable = true; + stylix.targets = { + gnome.enable = true; + ghostty.enable = true; + }; # Default Applications xdg.mimeApps.defaultApplications = util.build.mime xdg.mime { @@ -135,6 +137,39 @@ in { text = ["org.gnome.TextEditor.desktop"]; video = ["io.github.celluloid_player.Celluloid.desktop"]; }; + + ## Terminal + programs.ghostty = { + enable = true; + settings = { + # Features + clipboard-paste-protection = true; + clipboard-trim-trailing-spaces = true; + copy-on-select = false; + mouse-hide-while-typing = true; + quit-after-last-window-closed = true; + scrollback-limit = 4200; + shell-integration-features = true; + window-vsync = true; + + # Keybindings + keybind = [ + "ctrl+h=goto_split:left" + "ctrl+j=goto_split:bottom" + "ctrl+k=goto_split:top" + "ctrl+l=goto_split:right" + "ctrl+shift+h=new_split:left" + "ctrl+shift+j=new_split:down" + "ctrl+shift+k=new_split:up" + "ctrl+shift+l=new_split:right" + "ctrl+shift+enter=new_split:auto" + "ctrl+shift+i=inspector:toggle" + "ctrl+shift+r=reload_config" + "ctrl+t=new_tab" + "ctrl+f=write_scrollback_file:open" + ]; + }; + }; }; ## Color Scheme @@ -144,7 +179,8 @@ in { }; ## Package List - environment. systemPackages = with pkgs; [ + environment.systemPackages = with pkgs; [ + ghostty gnome-boxes gnome-sound-recorder gnome-text-editor @@ -158,18 +194,18 @@ in { # Circle apostrophe - blackbox-terminal curtail deja-dup dialect drawing fractal fragments - gnome-podcasts + gnome-decoder gnome-secrets gthumb lollypop - mission-center + resources + upscaler video-trimmer wike wordbook @@ -184,6 +220,7 @@ in { user.persist.directories = [ # Apps ".config/evolution" + ".config/ghostty" ".config/gnome-boxes" ".config/gnome-builder" ".local/share/epiphany" @@ -209,11 +246,14 @@ in { ## 3rd Party Apps Configuration (mkIf (desktop == "gnome") { user.homeConfig = { - home.file = { - # Firefox GNOME Theme - ".mozilla/firefox/default/chrome/userChrome.css".text = ''@import "${pkgs.custom.firefox-gnome-theme}/userChrome.css";''; - ".mozilla/firefox/default/chrome/userContent.css".text = ''@import "${pkgs.custom.firefox-gnome-theme}/userContent.css";''; + # Firefox GNOME Theme + stylix.targets.firefox = { + enable = mkForce true; + profileNames = ["default"]; + firefoxGnomeTheme.enable = true; + }; + home.file = { # Discord DNOME Theme ".config/vesktop/settings/quickCss.css" = mkIf (exists "discord") {text = ''@import url("https://raw.githack.com/GeopJr/DNOME/dist/DNOME.css");'';}; @@ -231,7 +271,7 @@ in { "workbench.colorTheme" = "Adwaita Dark"; "workbench.productIconTheme" = "adwaita"; "window.titleBarStyle" = "custom"; - "terminal.external.linuxExec" = "blackbox"; + "terminal.external.linuxExec" = "ghostty"; }; }; }; diff --git a/modules/gui/desktop/hyprland/apps/settings.nix b/modules/gui/desktop/hyprland/apps/settings.nix @@ -94,6 +94,8 @@ ## Window Rules windowrulev2 = lib.flatten ([ + "pin, class:^(gnome-control-center)$" + # Clipboard Manager "float, class:^(clipse)$" diff --git a/modules/gui/desktop/pantheon.nix b/modules/gui/desktop/pantheon.nix @@ -127,9 +127,9 @@ in { }; # Firefox Elementary Theme - ".mozilla/firefox/default/chrome/userChrome.css".source = "${pkgs.custom.firefox-elementary-theme}/Windows/userChrome.css"; - ".mozilla/firefox/default/chrome/userContent.css".source = "${pkgs.custom.firefox-elementary-theme}/userContent.css"; - ".mozilla/firefox/default/chrome/base.css".source = "${pkgs.custom.firefox-elementary-theme}/base.css"; + ".mozilla/firefox/default/chrome/userChrome.css".source = "${pkgs.custom.firefox-elementary}/Windows/userChrome.css"; + ".mozilla/firefox/default/chrome/userContent.css".source = "${pkgs.custom.firefox-elementary}/userContent.css"; + ".mozilla/firefox/default/chrome/base.css".source = "${pkgs.custom.firefox-elementary}/base.css"; # Panel Indicators ".config/autostart/ibus-daemon.desktop".text = '' diff --git a/modules/gui/gtk.nix b/modules/gui/gtk.nix @@ -46,7 +46,10 @@ in { homeConfig = { # Bookmarks - home.file.".config/gtk-3.0/bookmarks".text = files.gtk.bookmarks; + home.file.".config/gtk-3.0/bookmarks" = { + text = files.gtk.bookmarks; + force = true; + }; # Theming stylix.targets.gtk.enable = false; diff --git a/packages/firefox-elementary-theme/default.nix b/packages/firefox-elementary/default.nix diff --git a/packages/firefox-elementary-theme/metadata.nix b/packages/firefox-elementary/metadata.nix diff --git a/packages/firefox-gnome-theme/default.nix b/packages/firefox-gnome-theme/default.nix @@ -1,28 +0,0 @@ -{ - lib, - pkgs, - ... -}: -with pkgs; let - metadata = import ./metadata.nix; -in - stdenv.mkDerivation rec { - pname = "firefox-gnome-theme"; - version = metadata.rev; - - src = fetchFromGitHub { - owner = "rafaelmardojai"; - repo = pname; - inherit (metadata) rev sha256; - }; - - dontBuild = true; - installPhase = "mkdir -p $out/ && cp -r . $out/"; - - meta = with lib; { - description = "A GNOME Theme for Firefox"; - homepage = metadata.repo; - license = licenses.unlicense; - maintainers = ["maydayv7"]; - }; - } diff --git a/packages/firefox-gnome-theme/metadata.nix b/packages/firefox-gnome-theme/metadata.nix @@ -1,6 +0,0 @@ -{ - repo = "https://github.com/rafaelmardojai/firefox-gnome-theme"; - branch = "master"; - rev = "91ca1f82d717b02ceb03a3f423cbe8082ebbb26d"; - sha256 = "sha256-S79Hqn2EtSxU4kp99t8tRschSifWD4p/51++0xNWUxw="; -} diff --git a/packages/gnome-paperwm/default.nix b/packages/gnome-paperwm/default.nix @@ -1,38 +0,0 @@ -{ - lib, - pkgs, - ... -}: -with pkgs; let - metadata = import ./metadata.nix; - uuid = "paperwm@paperwm.github.com"; -in - stdenv.mkDerivation rec { - pname = "paperwm"; - version = metadata.rev; - - src = fetchFromGitHub { - owner = pname; - repo = pname; - inherit (metadata) rev sha256; - }; - - nativeBuildInputs = [pkgs.glib]; - buildPhase = "make -C schemas gschemas.compiled"; - installPhase = '' - mkdir -p $out/share/gnome-shell/extensions - cp -r -T . $out/share/gnome-shell/extensions/${uuid} - ''; - - passthru = { - extensionPortalSlug = pname; - extensionUuid = uuid; - }; - - meta = with lib; { - description = "Tiled scrollable window management for GNOME Shell"; - homepage = metadata.repo; - license = licenses.gpl3Only; - maintainers = ["maydayv7"]; - }; - } diff --git a/packages/gnome-paperwm/metadata.nix b/packages/gnome-paperwm/metadata.nix @@ -1,6 +0,0 @@ -{ - repo = "https://github.com/paperwm/PaperWM"; - release = true; - rev = "v47.1.0"; - sha256 = "sha256-9cREe41cACf8/Ab1g0gwUdS7XJ1zFfczv0FtNFSb+W0="; -}