dotfiles
My PC Dotfiles & Websitegit clone https://github.com/maydayv7/dotfiles
commit ecceb13e2d04f6b1327c30693022f275d0063315 parent b86eec7d56cb52471b2c161688f1bd5f60866ac1 Author: maydayv7 <maydayv7@gmail.com> Date: Sun, 29 Oct 2023 14:42:35 +0530 feat: Update GNOME Experience - Use `blackbox` as default terminal - Use `forge` for tiling - Add keyboard shortcuts window
Diffstat:
| M | README.md | | | 20 | ++++++++++++-------- |
| M | files/default.nix | | | 12 | +++++++----- |
| M | files/gnome/dconf.nix | | | 163 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------- |
| A | files/gnome/shortcuts.json | | | 245 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | files/gnome/tiling.css | | | 132 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| M | modules/gui/desktop/gnome.nix | | | 12 | +++++++++--- |
| M | modules/user/home.nix | | | 2 | +- |
| M | scripts/README.md | | | 35 | ++++++++++++++++++----------------- |
| M | scripts/nixos.nix | | | 34 | +++++++++++++++++----------------- |
9 files changed, 559 insertions(+), 96 deletions(-)
diff --git a/README.md b/README.md @@ -45,13 +45,13 @@ 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 | [Console](https://gitlab.gnome.org/GNOME/console), [`xfce4` Terminal](https://docs.xfce.org/apps/terminal/start) | -| Browser | [Firefox](https://www.mozilla.org/en-US/firefox/) | -| Desktop Environments | [GNOME](https://www.gnome.org), [XFCE](https://xfce.org/) | +| 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) | +| Browser | [Firefox](https://www.mozilla.org/en-US/firefox/) | +| Desktop Environments | [GNOME](https://www.gnome.org), [XFCE](https://xfce.org/) | ## Structure @@ -348,7 +348,7 @@ The [`home-manager`](https://github.com/nix-community/home-manager) module is us - [Neofetch](https://github.com/dylanaraps/neofetch): Snazzy CLI System Information Tool - [Powerlevel10K](https://github.com/romkatv/powerlevel10k) Theme: ZSH Theme for the fancy-looking prompt with immense customization capabilities -- [Dash to Panel](https://github.com/home-sweet-gnome/dash-to-panel): GNOME Shell Extension providing a highly customizable icon taskbar for maximized productivity +- [Arc Theme](https://github.com/jnsh/arc-theme): Flat GTK theme with transparent elements for various desktop shells, window managers and applications - [DNOME](https://github.com/GeopJr/DNOME) Discord Theme: Discord theme inspired by Adwaita, designed to integrate Discord with GNOME - [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 @@ -431,6 +431,9 @@ You can navigate to the `README`s present in the various directories to know mor - Support Android Virtualisation using Waydroid - Drop `compat` Libraries - Refactor GNOME Experience + - Use `blackbox` as default terminal + - Use [`forge`](https://github.com/forge-ext/forge) for tiling + - Add keyboard shortcuts window using []`shortcuts`](https://gitlab.com/paddatrapper/shortcuts-gnome-extension) - Improve XFCE Configuration and Handling - Improve Automatic Package Update Script - Enable ZFS encryption @@ -611,6 +614,7 @@ You can navigate to the `README`s present in the various directories to know mor - It is a hard requirement to clone the repository to `/etc/nixos` in order to use it as intended - Secure Boot isn't supported yet - Home Configuration can't be decoupled from System +- Lack of automatic script checking #### Manually Managed Packages diff --git a/files/default.nix b/files/default.nix @@ -31,11 +31,13 @@ in rec { git.hooks = ./git/hooks; # GNOME Desktop - gnome = { - dconf = ./gnome/dconf.nix; - iso = readFile ./gnome/iso; - menu = readFile ./gnome/menu.json; - }; + gnome = + { + dconf = ./gnome/dconf.nix; + iso = readFile ./gnome/iso; + tiling = ./gnome/tiling.css; + } + // map.files ./gnome lib.id ".json"; # GPG Keys Directory gpg = "/etc/gpg"; diff --git a/files/gnome/dconf.nix b/files/gnome/dconf.nix @@ -50,11 +50,11 @@ in { switch-applications-backward = ["<Shift><Alt>Tab"]; switch-group = ["<Super>Tab"]; switch-group-backward = ["<Shift><Super>Tab"]; - switch-to-workspace-down = ["<Primary><Super>Down" "<Primary><Super>j"]; + switch-to-workspace-down = []; switch-to-workspace-left = ["<Super>Left"]; switch-to-workspace-right = ["<Super>Right"]; - switch-to-workspace-up = ["<Primary><Super>Up" "<Primary><Super>k"]; - toggle-maximized = ["<Super>m"]; + switch-to-workspace-up = []; + toggle-maximized = ["F11"]; unmaximize = []; }; @@ -90,7 +90,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/" @@ -105,7 +105,7 @@ in { "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { binding = "<Super>t"; - command = "kgx"; + command = "blackbox"; name = "Terminal"; }; @@ -141,7 +141,7 @@ in { font-name = "${head fonts.sansSerif} Medium, Medium 11"; gtk-im-module = "gtk-im-context-simple"; locate-pointer = true; - monospace-font-name = "${head fonts.monospace} 10"; + monospace-font-name = "${head fonts.monospace} 11"; show-battery-percentage = true; toolkit-accessibility = false; }; @@ -163,7 +163,7 @@ in { night-light-schedule-automatic = false; night-light-schedule-from = 19.0; night-light-schedule-to = 7.0; - night-light-temperature = "uint32 3700"; + night-light-temperature = mkUint32 3700; }; "org/gnome/desktop/a11y/magnifier" = { @@ -177,7 +177,7 @@ in { "org/gnome/desktop/privacy" = { disable-microphone = false; - old-files-age = "uint32 7"; + old-files-age = mkUint32 7; remember-recent-files = false; remove-old-temp-files = true; remove-old-trash-files = true; @@ -198,7 +198,7 @@ in { "org/gnome/desktop/screensaver" = { color-shading-type = "solid"; - lock-delay = "uint32 0"; + lock-delay = mkUint32 0; lock-enabled = false; picture-options = "zoom"; primary-color = "#000000000000"; @@ -208,9 +208,16 @@ in { # GTK+ Apps "org/gnome/desktop/calendar".show-weekdate = true; "ca/desrt/dconf-editor".show-warning = false; - "io/github/seadve/Kooha".video-format = "mp4"; "org/gnome/shell/world-clocks".locations = "[<(uint32 2, <('Coordinated Universal Time (UTC)', '@UTC', false, @a(dd) [], @a(dd) [])>)>]"; + "org/gnome/desktop/search-providers" = { + sort-order = [ + "org.gnome.Contacts.desktop" + "org.gnome.Documents.desktop" + "org.gnome.Nautilus.desktop" + ]; + }; + "org/gnome/Geary" = { ask-open-attachment = true; compose-as-html = true; @@ -220,6 +227,12 @@ in { startup-notifications = true; }; + "org/gnome/epiphany/sync".sync-device-name = sys.networking.hostName; + "org/gnome/epiphany/web" = { + default-zoom-level = 1.0; + enable-mouse-gestures = true; + }; + "org/gnome/epiphany" = { active-clear-data-items = 391; ask-for-default = false; @@ -228,12 +241,6 @@ in { use-google-search-suggestions = true; }; - "org/gnome/epiphany/sync".sync-device-name = sys.networking.hostName; - "org/gnome/epiphany/web" = { - default-zoom-level = 1.0; - enable-mouse-gestures = true; - }; - "org/gtk/gtk4/settings/file-chooser".sort-directories-first = true; "org/gnome/nautilus/icon-view" = { captions = ["size" "date_modified" "none"]; @@ -250,6 +257,18 @@ 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"; @@ -258,12 +277,6 @@ in { tab-width = mkUint32 4; }; - "com/github/hugolabe/Wike" = { - custom-font = true; - dark-mode = true; - font-family = head fonts.sansSerif; - }; - "org/gnome/builder/editor" = { auto-hide-map = true; auto-save-timeout = 60; @@ -276,9 +289,14 @@ in { style-scheme-name = "builder-dark"; }; + "com/github/hugolabe/Wike" = { + custom-font = true; + dark-mode = true; + font-family = head fonts.sansSerif; + }; + # App Grid "org/gnome/shell" = { - command-history = ["rt" "r"]; disable-user-extensions = false; disable-extension-version-validation = true; disabled-extensions = ["workspace-indicator@gnome-shell-extensions.gcampax.github.com"]; @@ -288,9 +306,9 @@ in { "caffeine@patapon.info" "CoverflowAltTab@palatis.blogspot.com" "drive-menu@gnome-shell-extensions.gcampax.github.com" + "forge@jmmaranan.com" "gestureImprovements@gestures" "gnome-ui-tune@itstime.tech" - "gTile@vibou" "guillotine@fopdoodle.net" "just-perfection-desktop@just-perfection" "lock-screen-message@advendradeswanta.gitlab.com" @@ -299,6 +317,7 @@ in { "quick-settings-avatar@d-go" "quick-settings-tweaks@qwreey" "rounded-window-corners@yilozt" + "Shortcuts@kyle.aims.ac.za" "space-bar@luchrioh" "status-area-horizontal-spacing@mathematical.coffee.gmail.com" "timepp@zagortenay333" @@ -312,7 +331,7 @@ in { "google-chrome.desktop" "org.gnome.Geary.desktop" "org.gnome.Nautilus.desktop" - "org.gnome.Console.desktop" + "com.raggesilver.BlackBox.desktop" "org.gnome.TextEditor.desktop" "org.gnome.Settings.desktop" ]; @@ -341,31 +360,32 @@ in { "org/gnome/desktop/app-folders/folders/a136187d-1d93-4d35-8423-082f15957be9" = { name = "Office"; apps = [ - "Code.desktop" - "startcenter.desktop" - "writer.desktop" - "impress.desktop" - "draw.desktop" "base.desktop" "calc.desktop" + "Code.desktop" + "draw.desktop" + "impress.desktop" "math.desktop" - "onlyoffice-desktopeditors.desktop" "net.sourceforge.gscan2pdf.desktop" + "onlyoffice-desktopeditors.desktop" + "startcenter.desktop" "virt-manager.desktop" + "writer.desktop" ]; }; "org/gnome/desktop/app-folders/folders/b79e9b82-2127-459b-9e82-11bd3be09d04" = { name = "Utilities"; apps = [ - "org.gnome.Logs.desktop" - "org.gnome.Devhelp.desktop" - "org.gnome.Tour.desktop" "cups.desktop" "nixos-manual.desktop" - "yelp.desktop" "org.gnome.baobab.desktop" + "org.gnome.Console.desktop" + "org.gnome.Devhelp.desktop" + "org.gnome.Logs.desktop" + "org.gnome.Tour.desktop" "xterm.desktop" + "yelp.desktop" ]; }; @@ -402,13 +422,14 @@ in { # Shell Extensions "org/gnome/shell/extensions/user-theme".name = "Adwaita"; + "org/gnome/shell/extensions/lock-screen-message".message = "Welcome, ${config.credentials.fullname}!"; + + "com/ftpix/transparentbar".transparency = 0; "org/gnome/shell/extensions/alphabetical-app-grid".folder-order-position = "start"; "org/gnome/shell/extensions/gestureImprovements".allow-minimize-window = true; "org/gnome/shell/extensions/gnome-ui-tune".hide-search = false; "org/gnome/shell/extensions/lockkeys".style = "show-hide"; - "org/gnome/shell/extensions/lock-screen-message".message = "Welcome, ${config.credentials.fullname}!"; "org/gnome/shell/extensions/status-area-horizontal-spacing".hpadding = 4; - "com/ftpix/transparentbar".transparency = 0; "org/gnome/shell/extensions/caffeine" = { indicator-position = 0; @@ -433,12 +454,57 @@ in { show-osd-monitor-indexes = false; }; - "org/gnome/shell/extensions/gtile" = { - show-icon = true; - target-presets-to-monitor-of-mouse = true; - theme = "Minimal Dark"; - window-margin = 2; - window-margin-fullscreen-enabled = true; + "org/gnome/shell/extensions/forge" = { + auto-split-enabled = true; + focus-border-toggle = false; + stacked-tiling-mode-enabled = true; + tabbed-tiling-mode-enabled = true; + tiling-mode-enabled = false; + window-gap-hidden-on-single = false; + }; + + "org/gnome/shell/extensions/forge/keybindings" = { + con-split-horizontal = []; + con-split-layout-toggle = []; + con-split-vertical = []; + con-stacked-layout-toggle = ["<Shift><Super>s"]; + con-tabbed-layout-toggle = ["<Shift><Super>t"]; + con-tabbed-showtab-decoration-toggle = []; + focus-border-toggle = []; + mod-mask-mouse-tile = "Super"; + prefs-open = []; + prefs-tiling-toggle = ["<Super>z"]; + window-focus-down = ["<Super>s"]; + window-focus-left = ["<Super>a"]; + window-focus-right = ["<Super>d"]; + window-focus-up = ["<Super>w"]; + window-gap-size-decrease = ["<Primary><Super>minus"]; + window-gap-size-increase = ["<Primary><Super>plus"]; + window-move-down = ["<Primary><Super>s"]; + window-move-left = ["<Primary><Super>a"]; + window-move-right = ["<Primary><Super>d"]; + window-move-up = ["<Primary><Super>w"]; + window-resize-bottom-decrease = ["<Alt><Primary><Super>Down"]; + window-resize-bottom-increase = ["<Alt><Super>Down"]; + window-resize-left-decrease = ["<Alt><Primary><Super>Left"]; + window-resize-left-increase = ["<Alt><Super>Left"]; + window-resize-right-decrease = ["<Alt><Primary><Super>Right"]; + window-resize-right-increase = ["<Alt><Super>Right"]; + window-resize-top-decrease = ["<Alt><Primary><Super>Up"]; + window-resize-top-increase = ["<Alt><Super>Up"]; + window-snap-center = ["<Super>c"]; + window-snap-one-third-left = []; + window-snap-one-third-right = []; + window-snap-two-third-left = []; + window-snap-two-third-right = []; + window-swap-down = ["<Shift><Super>s"]; + window-swap-last-active = []; + window-swap-left = ["<Shift><Super>a"]; + window-swap-right = ["<Shift><Super>d"]; + window-swap-up = ["<Shift><Super>w"]; + window-toggle-always-float = []; + window-toggle-float = ["<Super>p"]; + workspace-active-tile-toggle = ["<Shift><Super>z"]; }; "org/gnome/shell/extensions/just-perfection" = { @@ -490,6 +556,14 @@ in { unfocused-shadow = "{'horizontal_offset': 0, 'vertical_offset': 2, 'blur_offset': 12, 'spread_radius': -1, 'opacity': 65}"; }; + "org/gnome/shell/extensions/shortcuts" = { + shortcuts-file = files.gnome.shortcuts; + shortcuts-toggle-overview = ["<Super>slash"]; + use-custom-shortcuts = true; + use-transparency = true; + visibility = 50; + }; + "org/gnome/shell/extensions/space-bar/behavior" = { scroll-wheel = "disabled"; show-empty-workspaces = true; @@ -511,12 +585,11 @@ in { "org/gnome/shell/extensions/top-bar-organizer" = { center-box-order = ["dateMenu"]; - left-box-order = ["Space Bar" "activities" "timepp" "guillotine" "appMenu"]; + left-box-order = ["Space Bar" "activities" "timepp" "guillotine@fopdoodle.net" "appMenu"]; right-box-order = [ "a11y" "aggregateMenu" "drive-menu" - "GTileStatusButton" "pano@elhan.io" "vitalsMenu" "dwellClick" diff --git a/files/gnome/shortcuts.json b/files/gnome/shortcuts.json @@ -0,0 +1,245 @@ +[ + { + "name": "Window Navigation", + "shortcuts": [ + { + "key": "Super", + "description": "Enter Overview" + }, + { + "key": "Alt + F4 / Super + Q", + "description": "Close window" + }, + { + "key": "Super + Mouse Drag", + "description": "Move window" + }, + { + "key": "F11", + "description": "Make Full screen/Restore" + }, + { + "key": "Super + Up/Down", + "description": "Maximize/Minimize window" + }, + { + "key": "Alt + Tab", + "description": "Switches between Application" + }, + { + "key": "Super + Tab", + "description": "Switches between Windows of current application" + }, + { + "key": "Super + Left/Right", + "description": "Switch to the left/right Workspace" + }, + { + "key": "Super + Home/End", + "description": "Switch to first/last Workspace" + }, + { + "key": "Super + Ctrl + Left/Right", + "description": "Move window to left/right Workspace" + }, + { + "key": "Super + Shift + Left/Right", + "description": "Move window to left/right Monitor" + } + ] + }, + { + "name": "Tiling", + "shortcuts": [ + { + "key": "Super + Z", + "description": "Toggle window Tiling" + }, + { + "key": "Super + Shift + Z", + "description": "Toggle automatic window tiling" + }, + { + "key": "Super + Shift + S", + "description": "Toggle stacked layout" + }, + { + "key": "Super + Shift + T", + "description": "Toggle tabbed layout" + }, + { + "key": "Super + W/A/S/D", + "description": "Focus up/left/down/right window" + }, + { + "key": "Super + Ctrl + W/A/S/D", + "description": "Move window up/left/down/right" + }, + { + "key": "Super + Shift + W/A/S/D", + "description": "Swap window up/left/down/right" + }, + { + "key": "Super + C", + "description": "Snap window to center" + }, + { + "key": "Super + P", + "description": "Pin window above all others (or unpin)" + }, + { + "key": "Super + Alt + Up/Left/Down/Right", + "description": "Increase top/left/bottom/right window size" + }, + { + "key": "Super + Ctrl + Alt + Up/Left/Down/Right", + "description": "Decrease top/left/bottom/right window size" + } + ] + }, + { + "name": "Run and Close Applications", + "shortcuts": [ + { + "key": "Super + F2", + "description": "Run Dialog" + }, + { + "key": "Super + 1,2,3,...", + "description": "Run app by Position in the Launcher" + }, + { + "key": "Super + I", + "description": "Open Settings" + }, + { + "key": "Super + F", + "description": "Open Files" + }, + { + "key": "Super + V", + "description": "Open Clipboard (Use 'Ctrl' for incognito)" + }, + { + "key": "Super + T", + "description": "Open Terminal" + }, + { + "key": "Super + `", + "description": "Open Browser" + }, + { + "key": "Ctrl + Alt + Return", + "description": "Opens Task Manager" + }, + { + "key": "Super + /", + "description": "Show shortcuts menu" + } + ] + }, + { + "name": "System Shortcuts", + "shortcuts": [ + { + "key": "Super + Space", + "description": "Switch keyboard layout" + }, + { + "key": "Ctrl + Alt + Del", + "description": "Opens the shutdown menu" + }, + { + "key": "Super + L", + "description": "Locks the screen" + }, + { + "key": "Super + X", + "description": "Toggle zoom" + }, + { + "key": "Super + =", + "description": "Zoom in" + }, + { + "key": "Super + -", + "description": "Zoom out" + } + ] + }, + { + "name": "Application Shortcuts", + "shortcuts": [ + { + "key": "Ctrl + W", + "description": "Close tab in tab enabled apps" + }, + { + "key": "Ctrl + T", + "description": "Opens new tab in tab enabled apps" + }, + { + "key": "Ctrl + Shift + T", + "description": "Reopen last closed tab in web browser" + }, + { + "key": "F5", + "description": "Document Viewer presentation mode" + }, + { + "key": "F9", + "description": "LibreOffice presentation mode" + } + ] + }, + { + "name": "Screenshot Shortcuts", + "shortcuts": [ + { + "key": "Print", + "description": "Take a screenshot of a region" + }, + { + "key": "Shift + Print", + "description": "Take a full screenshot" + }, + { + "key": "Ctrl + Print", + "description": "Take a screenshot of a window" + }, + { + "key": "Alt + Print", + "description": "Video capture desktop" + } + ] + }, + { + "name": "Gestures", + "shortcuts": [ + { + "key": "3 Finger Horizontal Swipe", + "description": "Switch windows" + }, + { + "key": "4 Finger Horizontal Swipe (2/3 in overview)", + "description": "Switch workspaces" + }, + { + "key": "4 Finger Vertical Swipe", + "description": "Desktop/Overview/App Grid navigation" + }, + { + "key": "3 Finger Vertical Swipe", + "description": "Maximize/minimize/fullscreen a window" + }, + { + "key": "3/4 Finger Pinch", + "description": "Show desktop" + }, + { + "key": "2/3 Finger Horizontal Swipe in App Grid", + "description": "Switch app pages" + } + ] + } +] diff --git a/files/gnome/tiling.css b/files/gnome/tiling.css @@ -0,0 +1,132 @@ +.tiled { + color: rgba(236, 94, 94, 1); + opacity: 1; + border-width: 3px; +} + +.split { + color: rgba(255, 246, 108, 1); + opacity: 1; + border-width: 3px; +} + +.stacked { + color: rgba(247, 162, 43, 1); + opacity: 1; + border-width: 3px; +} + +.tabbed { + color: rgba(17, 199, 224, 1); + opacity: 1; + border-width: 3px; +} + +.floated { + color: rgba(180, 167, 214, 1); + border-width: 3px; + opacity: 1; +} + +.window-tiled-border { + border-width: 3px; + border-color: rgba(236, 94, 94, 1); + border-style: solid; + border-radius: 14px; +} + +.window-split-border { + border-width: 3px; + border-color: rgb(248, 228, 92); + border-style: solid; + border-radius: 14px; +} + +.window-split-horizontal { + border-left-width: 0; + border-top-width: 0; + border-bottom-width: 0; +} + +.window-split-vertical { + border-left-width: 0; + border-top-width: 0; + border-right-width: 0; +} + +.window-stacked-border { + border-width: 3px; + border-color: rgb(255, 163, 72); + border-style: solid; + border-radius: 14px; +} + +.window-tabbed-border { + border-width: 3px; + border-color: rgba(17, 199, 224, 1); + border-style: solid; + border-radius: 14px; +} + +.window-tabbed-bg { + border-radius: 8px; +} + +.window-tabbed-tab { + background-color: rgba(54, 47, 45, 1); + border-color: rgba(17, 199, 224, 0.6); + border-width: 1px; + border-radius: 8px; + color: white; + margin: 1px; + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2); +} + +.window-tabbed-tab-active { + background-color: rgba(17, 199, 224, 1); + color: black; + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2); +} + +.window-tabbed-tab-close { + padding: 3px; + margin: 4px; + border-radius: 16px; + width: 16px; + background-color: #e06666; +} + +.window-tabbed-tab-icon { + margin: 3px; +} + +.window-floated-border { + border-width: 3px; + border-color: rgb(53, 132, 228); + border-style: solid; + border-radius: 14px; +} + +.window-tilepreview-tiled { + border-width: 1px; + border-color: rgba(236, 94, 94, 0.4); + border-style: solid; + border-radius: 14px; + background-color: rgba(236, 94, 94, 0.3); +} + +.window-tilepreview-stacked { + border-width: 1px; + border-color: rgba(255, 163, 72, 0.3); + border-style: solid; + border-radius: 14px; + background-color: rgba(255, 163, 72, 0.2); +} + +.window-tilepreview-tabbed { + border-width: 1px; + border-color: rgba(18, 199, 224, 0.4); + border-style: solid; + border-radius: 14px; + background-color: rgba(17, 199, 224, 0.3); +} diff --git a/modules/gui/desktop/gnome.nix b/modules/gui/desktop/gnome.nix @@ -99,7 +99,7 @@ in { "workbench.preferredLightColorTheme" = "Adwaita Light"; "workbench.productIconTheme" = "adwaita"; "window.titleBarStyle" = "custom"; - "terminal.external.linuxExec" = "gnome-console"; + "terminal.external.linuxExec" = "blackbox"; }; }; @@ -111,7 +111,10 @@ in { ".config/gtk-3.0/bookmarks".text = gtk.bookmarks; # Action Menu - ".config/guillotine.json".text = gnome.menu; + ".config/guillotine.json".source = gnome.menu; + + # Window Tiling Stylesheet + ".config/forge/stylesheet/forge/stylesheet.css".source = gnome.tiling; # Prevent Suspension on lid close ".config/autostart/ignore-lid-switch-tweak.desktop".text = '' @@ -166,6 +169,7 @@ in { ++ (with pkgs; [ # GNOME Circle apostrophe + blackbox-terminal curtail deja-dup dialect @@ -204,16 +208,17 @@ in { appindicator caffeine coverflow-alt-tab + forge gesture-improvements gnome-40-ui-improvements guillotine - gtile just-perfection lock-keys lock-screen-message pano quick-settings-tweaker rounded-window-corners + shortcuts space-bar status-area-horizontal-spacing timepp @@ -228,6 +233,7 @@ in { # Persisted Files user.persist.directories = [ ".config/dconf" + ".config/forge" ".config/gnome-boxes" ".config/gnome-builder" ".config/GIMP" diff --git a/modules/user/home.nix b/modules/user/home.nix @@ -15,7 +15,7 @@ # Package Configuration home = { - stateVersion = config.system.stateVersion; + inherit (config.system) stateVersion; file = { ".config/nixpkgs/config.nix".source = ../nix/config.nix; ".config/nix/nix.conf".source = diff --git a/scripts/README.md b/scripts/README.md @@ -4,26 +4,27 @@ The `scripts` directory contains a combination of custom Bash Scripts (with `nix A system management script, invoked with the command [`nixos`](./nixos.nix), has been included, which can be used to apply user and device configuration changes, painlessly install the OS and setup the device using a single command, and perform various other useful functions (If you have a working NixOS install, you can check it out using `nix run github:maydayv7/dotfiles`) ```shellsession -$ nixos +$ nixos -h +## Tool for NixOS System Management ## # Legend # xxx - Command - [ ] - Optional - Command Description + [ ] - Optional - Command Description ' ' - Variable # Usage # - apply [ --'option' ] - Applies Device and User Configuration - cache 'command' - Pushes Binary Cache Output to Cachix - check [ --trace ] - Checks System Configuration [ Displays Error to Trace ] - clean [ --all ] - Garbage Collects and Optimises Nix Store - explore - Opens Interactive Shell to explore Syntax and Configuration - install - Installs NixOS onto System - iso 'variant' [ --burn ] - Builds Image for Specified Install Media or Device [ Burns '.iso' to USB ] - list [ 'pattern' ] - Lists all Installed Packages [ Returns Matches ] - locate 'package' - Locates Installed Package - run [ 'path' ] 'command' - Runs Specified Command [ from 'path' ] (Wraps 'nix run') - save - Saves Configuration State to Repository - search 'term' [ 'source' ] - Searches for Packages [ Providing 'term' ] or Configuration Options - secret 'choice' [ 'path' ] - Manages 'sops' Encrypted Secrets - shell [ 'name' ] - Opens desired Nix Developer Shell - update [ 'repository' ] - Updates System Repositories + apply [ --'option' ] - Applies Device and User Configuration + cache 'command' - Pushes Binary Cache Output to Cachix + check [ --trace ] - Checks System Configuration [ Displays Error to Trace ] + clean [ --all ] - Garbage Collects and Optimises Nix Store + explore - Opens Interactive Shell to explore Syntax and Configuration + install - Installs NixOS onto System + iso 'variant' [ --burn ] - Builds Image for Specified Install Media or Device [ Burns '.iso' to USB ] + list [ 'pattern' ] - Lists all Installed Packages [ Returns Matches ] + locate 'package' - Locates Installed Package + run [ 'path' ] 'command' - Runs Specified Command [ from 'path' ] (Wraps 'nix run') + save - Saves Configuration State to Repository + search 'term' [ 'source' ] - Searches for Packages [ Providing 'term' ] or Configuration Options + secret 'choice' [ 'path' ] - Manages 'sops' Encrypted Secrets + shell [ 'name' ] - Opens desired Nix Developer Shell + update [ 'repository' ['rev'] ] - Updates System Repositories ``` diff --git a/scripts/nixos.nix b/scripts/nixos.nix @@ -20,25 +20,25 @@ with files; let script = '' # Legend # xxx - Command - [ ] - Optional - Command Description + [ ] - Optional - Command Description ' ' - Variable # Usage # - apply [ --'option' ] - Applies Device and User Configuration - cache 'command' - Pushes Binary Cache Output to Cachix - check [ --trace ] - Checks System Configuration [ Displays Error to Trace ] - clean [ --all ] - Garbage Collects and Optimises Nix Store - explore - Opens Interactive Shell to explore Syntax and Configuration - install - Installs NixOS onto System - iso 'variant' [ --burn ] - Builds Image for Specified Install Media or Device [ Burns '.iso' to USB ] - list [ 'pattern' ] - Lists all Installed Packages [ Returns Matches ] - locate 'package' - Locates Installed Package - run [ 'path' ] 'command' - Runs Specified Command [ from 'path' ] (Wraps 'nix run') - save - Saves Configuration State to Repository - search 'term' [ 'source' ] - Searches for Packages [ Providing 'term' ] or Configuration Options - secret 'choice' [ 'path' ] - Manages 'sops' Encrypted Secrets - shell [ 'name' ] - Opens desired Nix Developer Shell - update [ 'repository' ] - Updates System Repositories + apply [ --'option' ] - Applies Device and User Configuration + cache 'command' - Pushes Binary Cache Output to Cachix + check [ --trace ] - Checks System Configuration [ Displays Error to Trace ] + clean [ --all ] - Garbage Collects and Optimises Nix Store + explore - Opens Interactive Shell to explore Syntax and Configuration + install - Installs NixOS onto System + iso 'variant' [ --burn ] - Builds Image for Specified Install Media or Device [ Burns '.iso' to USB ] + list [ 'pattern' ] - Lists all Installed Packages [ Returns Matches ] + locate 'package' - Locates Installed Package + run [ 'path' ] 'command' - Runs Specified Command [ from 'path' ] (Wraps 'nix run') + save - Saves Configuration State to Repository + search 'term' [ 'source' ] - Searches for Packages [ Providing 'term' ] or Configuration Options + secret 'choice' [ 'path' ] - Manages 'sops' Encrypted Secrets + shell [ 'name' ] - Opens desired Nix Developer Shell + update [ 'repository' ['rev'] ] - Updates System Repositories ''; apply = '' @@ -144,7 +144,7 @@ in ;; *) echo "Rolling Back to Generation '$3'..." - sudo nix-env --switch-generation "$3" -p "$profile" && sudo $profile/bin/switch-to-configuration switch + sudo nix-env --switch-generation "$3" -p "$profile" && nixos apply --activate ;; esac ;;