From a4e5bb21d302b841c2171e14478c5c48c3e1375e Mon Sep 17 00:00:00 2001 From: xqtc Date: Fri, 27 Dec 2024 16:43:03 +0100 Subject: [PATCH] Add ghostty; Hyprland config stuff --- flake.lock | 154 ++++++++++++++++++++++++++++--- flake.nix | 3 + home/config-files/ghostty-config | 34 +++++++ home/config-files/hyprland.conf | 11 ++- home/modules/default.nix | 1 + home/modules/ghostty.nix | 4 + home/modules/home-pkgs.nix | 1 + 7 files changed, 191 insertions(+), 17 deletions(-) create mode 100644 home/config-files/ghostty-config create mode 100644 home/modules/ghostty.nix diff --git a/flake.lock b/flake.lock index 4b44857..77e665b 100644 --- a/flake.lock +++ b/flake.lock @@ -134,6 +134,22 @@ } }, "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_3": { "locked": { "lastModified": 1696426674, "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", @@ -147,7 +163,7 @@ "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" } }, - "flake-compat_3": { + "flake-compat_4": { "locked": { "lastModified": 1696426674, "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", @@ -238,6 +254,24 @@ "inputs": { "systems": "systems_2" }, + "locked": { + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { + "inputs": { + "systems": "systems_3" + }, "locked": { "lastModified": 1710146030, "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", @@ -252,9 +286,9 @@ "type": "github" } }, - "flake-utils_4": { + "flake-utils_5": { "inputs": { - "systems": "systems_3" + "systems": "systems_4" }, "locked": { "lastModified": 1731533236, @@ -270,9 +304,9 @@ "type": "github" } }, - "flake-utils_5": { + "flake-utils_6": { "inputs": { - "systems": "systems_5" + "systems": "systems_6" }, "locked": { "lastModified": 1685518550, @@ -303,6 +337,27 @@ "type": "github" } }, + "ghostty": { + "inputs": { + "flake-compat": "flake-compat_2", + "nixpkgs-stable": "nixpkgs-stable", + "nixpkgs-unstable": "nixpkgs-unstable", + "zig": "zig" + }, + "locked": { + "lastModified": 1735271978, + "narHash": "sha256-y6Ony5eq4F4E76Y2ZhALSEzBZ4GbGRVQIEScPieCDGI=", + "owner": "ghostty-org", + "repo": "ghostty", + "rev": "a8e5eef11cc67f87f445626f9ca2993373774bf8", + "type": "github" + }, + "original": { + "owner": "ghostty-org", + "repo": "ghostty", + "type": "github" + } + }, "git-hooks": { "inputs": { "flake-compat": [ @@ -441,7 +496,7 @@ }, "lix-module": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_4", "flakey-profile": "flakey-profile", "lix": "lix", "nixpkgs": [ @@ -594,6 +649,22 @@ } }, "nixpkgs-stable": { + "locked": { + "lastModified": 1733423277, + "narHash": "sha256-TxabjxEgkNbCGFRHgM/b9yZWlBj60gUOUnRT/wbVQR8=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e36963a147267afc055f7cf65225958633e536bf", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "release-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { "locked": { "lastModified": 1732981179, "narHash": "sha256-F7thesZPvAMSwjRu0K8uFshTk3ZZSNAsXTIFvXBT+34=", @@ -609,6 +680,22 @@ } }, "nixpkgs-unstable": { + "locked": { + "lastModified": 1733229606, + "narHash": "sha256-FLYY5M0rpa5C2QAE3CKLYAM6TwbKicdRK6qNrSHlNrE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "566e53c2ad750c84f6d31f9ccb9d00f823165550", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable_2": { "locked": { "lastModified": 1723637854, "narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=", @@ -722,7 +809,7 @@ "nixvim": { "inputs": { "devshell": "devshell", - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat_3", "flake-parts": "flake-parts_2", "git-hooks": "git-hooks", "home-manager": "home-manager_2", @@ -749,7 +836,7 @@ }, "nuschtosSearch": { "inputs": { - "flake-utils": "flake-utils_4", + "flake-utils": "flake-utils_5", "ixx": "ixx", "nixpkgs": [ "nixvim", @@ -773,9 +860,9 @@ "proxmox-nixos": { "inputs": { "crane": "crane", - "flake-compat": "flake-compat_3", - "nixpkgs-stable": "nixpkgs-stable", - "nixpkgs-unstable": "nixpkgs-unstable", + "flake-compat": "flake-compat_4", + "nixpkgs-stable": "nixpkgs-stable_2", + "nixpkgs-unstable": "nixpkgs-unstable_2", "utils": "utils" }, "locked": { @@ -800,6 +887,7 @@ "firefox-addons": "firefox-addons", "flake-parts": "flake-parts", "flake-utils": "flake-utils_2", + "ghostty": "ghostty", "home-manager": "home-manager", "lix-module": "lix-module", "nh": "nh", @@ -852,7 +940,7 @@ }, "spicetify-nix": { "inputs": { - "flake-utils": "flake-utils_5", + "flake-utils": "flake-utils_6", "nixpkgs": "nixpkgs_7" }, "locked": { @@ -944,6 +1032,21 @@ "type": "github" } }, + "systems_6": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": [ @@ -967,7 +1070,7 @@ }, "utils": { "inputs": { - "systems": "systems_4" + "systems": "systems_5" }, "locked": { "lastModified": 1710146030, @@ -982,6 +1085,31 @@ "repo": "flake-utils", "type": "github" } + }, + "zig": { + "inputs": { + "flake-compat": [ + "ghostty" + ], + "flake-utils": "flake-utils_3", + "nixpkgs": [ + "ghostty", + "nixpkgs-stable" + ] + }, + "locked": { + "lastModified": 1717848532, + "narHash": "sha256-d+xIUvSTreHl8pAmU1fnmkfDTGQYCn2Rb/zOwByxS2M=", + "owner": "mitchellh", + "repo": "zig-overlay", + "rev": "02fc5cc555fc14fda40c42d7c3250efa43812b43", + "type": "github" + }, + "original": { + "owner": "mitchellh", + "repo": "zig-overlay", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 231e422..e8f29bb 100644 --- a/flake.nix +++ b/flake.nix @@ -37,6 +37,9 @@ url = "github:SaumonNet/proxmox-nixos"; # inputs.nixpkgs.follows = "proxmox-nixos"; }; + ghostty = { + url = "github:ghostty-org/ghostty"; + }; firefox-addons.url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; #nixpkgs-nixvim.url = "github:NixOS/nixpkgs/fbd188864020b9a1226d35b9df1fe465e1f378c1"; diff --git a/home/config-files/ghostty-config b/home/config-files/ghostty-config new file mode 100644 index 0000000..229a59a --- /dev/null +++ b/home/config-files/ghostty-config @@ -0,0 +1,34 @@ +theme = kanagawabones +background-opacity = 1 +background-blur-radius = 1 +gtk-titlebar = false +adw-toolbar-style = flat +gtk-tabs-location = bottom +window-theme = ghostty +mouse-hide-while-typing = true +font-family = Hasklug Nerd Font Mono +font-size = 15 +keybind = ctrl+t=new_tab +keybind = ctrl+shift+t=toggle_tab_overview + +# TABS +keybind = ctrl+1=goto_tab:1 +keybind = ctrl+2=goto_tab:2 +keybind = ctrl+3=goto_tab:3 +keybind = ctrl+4=goto_tab:4 +keybind = ctrl+5=goto_tab:5 +keybind = ctrl+6=goto_tab:6 +keybind = ctrl+7=goto_tab:7 +keybind = ctrl+8=goto_tab:8 +keybind = ctrl+9=goto_tab:9 + +# SPLITS +keybind = ctrl+alt+shift+h=new_split:left +keybind = ctrl+alt+shift+j=new_split:down +keybind = ctrl+alt+shift+k=new_split:up +keybind = ctrl+alt+shift+l=new_split:right + +keybind = ctrl+shift+h=goto_split:left +keybind = ctrl+shift+j=goto_split:bottom +keybind = ctrl+shift+k=goto_split:top +keybind = ctrl+shift+l=goto_split:right diff --git a/home/config-files/hyprland.conf b/home/config-files/hyprland.conf index d27107e..05b4f75 100644 --- a/home/config-files/hyprland.conf +++ b/home/config-files/hyprland.conf @@ -19,10 +19,10 @@ exec-once = waybar & swww init & mako & kwalletd6 & nextcloud # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { - kb_layout = us,de + kb_layout = us kb_variant = kb_model = - kb_options = grp:win_space_toggle + # kb_options = grp:win_space_toggle kb_rules = follow_mouse = 1 @@ -71,7 +71,7 @@ decoration { } animations { - enabled = yes + enabled = no # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more @@ -112,6 +112,9 @@ gestures { windowrulev2 = float,class:^(foot)$, title:^(foot)$ windowrulev2 = size 50% 50%,class:^(foot)$, title:^(foot)$ windowrulev2 = center,class:^(foot)$, title:^(foot)$ +windowrulev2 = float,class:^(ghostty)$, title:^(ghostty)$ +windowrulev2 = size 50% 50%,class:^(ghostty)$, title:^(ghostty)$ +windowrulev2 = center,class:^(ghostty)$, title:^(ghostty)$ windowrulev2 = xray, floating:1 # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more @@ -120,7 +123,7 @@ windowrulev2 = xray, floating:1 $mainMod = SUPER # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more -bind = $mainMod, return, exec, wezterm +bind = $mainMod, return, exec, ghostty bind = $mainMod SHIFT, Q, killactive, bind = $mainMod, F, fullscreen, bind = $mainMod SHIFT, X, exit, diff --git a/home/modules/default.nix b/home/modules/default.nix index 3d9bd19..2c41003 100644 --- a/home/modules/default.nix +++ b/home/modules/default.nix @@ -9,6 +9,7 @@ ./nixvim.nix ./shell.nix ./firefox.nix + ./ghostty.nix # ./dwl.nix ./wm.nix ./gtk.nix diff --git a/home/modules/ghostty.nix b/home/modules/ghostty.nix new file mode 100644 index 0000000..8fb6410 --- /dev/null +++ b/home/modules/ghostty.nix @@ -0,0 +1,4 @@ +{inputs, pkgs, lib, ...}: +{ + xdg.configFile."ghostty/config".source = ../config-files/ghostty-config; +} diff --git a/home/modules/home-pkgs.nix b/home/modules/home-pkgs.nix index b4ee243..ba09b9b 100644 --- a/home/modules/home-pkgs.nix +++ b/home/modules/home-pkgs.nix @@ -51,6 +51,7 @@ in { simplex-chat-desktop ])) ++ (with pkgs; [ + inputs.ghostty.packages.x86_64-linux.default nh bat