diff options
Diffstat (limited to '')
| -rw-r--r-- | home/apps/default.nix | 1 | ||||
| -rw-r--r-- | home/apps/rofi/config.rasi | 99 | ||||
| -rw-r--r-- | home/apps/rofi/default.nix | 23 | ||||
| -rw-r--r-- | home/apps/rofi/theme.nix | 27 | ||||
| -rw-r--r-- | home/apps/wofi/default.nix | 2 | ||||
| -rw-r--r-- | home/apps/wofi/style.nix | 2 | ||||
| -rw-r--r-- | home/desktops/hyprland/binds.nix | 93 | ||||
| -rw-r--r-- | home/desktops/hyprland/settings.nix | 51 | ||||
| -rw-r--r-- | home/desktops/hyprland/wallpaper.nix | 6 | ||||
| -rw-r--r-- | home/neovim/init.lua | 17 |
10 files changed, 243 insertions, 78 deletions
diff --git a/home/apps/default.nix b/home/apps/default.nix index 58cd117..ebbd605 100644 --- a/home/apps/default.nix +++ b/home/apps/default.nix @@ -1,5 +1,6 @@ _: { imports = [ + ./rofi ./waybar ./wofi ./alacritty.nix diff --git a/home/apps/rofi/config.rasi b/home/apps/rofi/config.rasi new file mode 100644 index 0000000..8d8b1a4 --- /dev/null +++ b/home/apps/rofi/config.rasi @@ -0,0 +1,99 @@ +configuration { + modi: "drun"; + drun-match-fields: "name"; + matching: "glob"; + sort: true; + show-icons: true; + font: "JetBrainsMono Nerd Font 10"; +} + +@theme "~/.config/rofi/theme.rasi" + +window { + height: 30em; + width: 57em; + padding: @border-width; + background-color: @primary; + border-color: @primary; + border-radius: @outer-radius; +} + +mainbox { + orientation: horizontal; + children: [ "inputbar" , "listbox" ]; + background-color: @base; + border-radius: @outer-radius; +} + +inputbar { + width: 27em; + children: [ "entry" ]; + background-image: @background; +} + +entry { + enabled: false; +} + +listbox { + margin: 1em; + children: [ "dummy" , "listview" , "dummy" ]; + background-color: transparent; +} + +listview { + columns: 1; + lines: 7; + scrollbar: false; + expand: false; + fixed-height: true; + fixed-columns: true; + text-color: @text; + background-color: transparent; +} + +dummy { + background-color: transparent; +} + +element { + spacing: 1em; + padding: 0.5em 0.5em 0.5em 1.5em; + cursor: pointer; + text-color: @text; + background-color: transparent; + border-radius: @inner-radius; +} + +element selected.normal { + text-color: @surface; + background-color: @primary; +} + +element-icon { + size: 2.7em; + cursor: inherit; + text-color: inherit; + background-color: transparent; +} + +element-text { + vertical-align: 0.5; + horizontal-align: 0.0; + text-color: inherit; + background-color: transparent; +} + +error-message { + text-color: @text; + background-color: @base; + text-transform: capitalize; + children: [ "textbox" ]; +} + +textbox { + text-color: @error; + background-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} diff --git a/home/apps/rofi/default.nix b/home/apps/rofi/default.nix new file mode 100644 index 0000000..80c88a2 --- /dev/null +++ b/home/apps/rofi/default.nix @@ -0,0 +1,23 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (lib) mkIf; + theme = config.theme; + cfg = config.apps.rofi; +in { + config = mkIf cfg.enable { + default.appLauncher = lib.mkOverride 700 "rofi -show drun"; + + home.packages = [ + pkgs.rofi + ]; + + home.file = { + ".config/rofi/config.rasi".source = ./config.rasi; + ".config/rofi/theme.rasi".text = import ./theme.nix {inherit theme;}; + }; + }; +} diff --git a/home/apps/rofi/theme.nix b/home/apps/rofi/theme.nix new file mode 100644 index 0000000..891b5a3 --- /dev/null +++ b/home/apps/rofi/theme.nix @@ -0,0 +1,27 @@ +{theme}: let + text = "#${theme.colors.text}"; + base = "#${theme.colors.base}"; + surface = "#${theme.colors.surface}"; + primary = "#${theme.colors.primary}"; + error = "#${theme.colors.error}"; + outerGap = "${toString theme.outerGap}px"; + innerGap = "${toString theme.innerGap}px"; + outerRadius = "${toString theme.outerRadius}px"; + innerRadius = "${toString theme.innerRadius}px"; + borderWidth = "${toString theme.borderWidth}px"; + wallpaper = theme.wallpaper; +in '' + * { + primary: ${primary}; + error: ${error}; + base: ${base}; + surface: ${surface}; + text: ${text}; + inner-radius: ${innerRadius}; + outer-radius: ${outerRadius}; + inner-gap: ${innerGap}; + outer-gap: ${outerGap}; + border-width: ${borderWidth}; + background: url("${wallpaper}", height); + } +'' diff --git a/home/apps/wofi/default.nix b/home/apps/wofi/default.nix index 2de9f45..b528f65 100644 --- a/home/apps/wofi/default.nix +++ b/home/apps/wofi/default.nix @@ -7,7 +7,7 @@ cfg = config.apps.wofi; in { config = mkIf cfg.enable { - default.appLauncher = lib.mkDefault "wofi --show drun --prompt 'Seach Programs'"; + default.appLauncher = lib.mkOverride 800 "wofi --show drun --prompt 'Seach Programs' --allow-images --no-actions --normal-window"; programs.wofi = { enable = true; diff --git a/home/apps/wofi/style.nix b/home/apps/wofi/style.nix index 75a0a21..8d1fb75 100644 --- a/home/apps/wofi/style.nix +++ b/home/apps/wofi/style.nix @@ -18,7 +18,7 @@ in '' /* Window */ window { margin: 0px; - border: ${borderWidth} solid ${primary}; + border: none; border-radius: ${outerRadius}; background-color: ${base}; } diff --git a/home/desktops/hyprland/binds.nix b/home/desktops/hyprland/binds.nix index df4ecc0..3266938 100644 --- a/home/desktops/hyprland/binds.nix +++ b/home/desktops/hyprland/binds.nix @@ -1,66 +1,67 @@ -{config, ...}: { +{config, ...}: let + mod = "SUPER"; +in { wayland.windowManager.hyprland.settings = { # Keybinds - "$mod" = "SUPER"; bind = [ # Launch programs - "$mod, W, exec, ${config.default.browser}" - "$mod, D, exec, ${config.default.appLauncher}" - "$mod, L, exec, ${config.default.lockScreen}" - "$mod, Return, exec, ${config.default.terminal}" + "${mod}, W, exec, ${config.default.browser}" + "${mod}, D, exec, ${config.default.appLauncher}" + "${mod}, L, exec, ${config.default.lockScreen}" + "${mod}, Return, exec, ${config.default.terminal}" ", Print, exec, grimblast copy area" # Misc - "$mod SHIFT, L, exit" - #"$mod, tab, hyprexpo:expo, toggle" + "${mod} SHIFT, L, exit" + #"${mod}, tab, hyprexpo:expo, toggle" # Window operations - "$mod SHIFT, Q, killactive" - "$mod SHIFT, SPACE, togglefloating" - "$mod, F, fullscreen" - "$mod, J, togglesplit" + "${mod} SHIFT, Q, killactive" + "${mod} SHIFT, SPACE, togglefloating" + "${mod}, F, fullscreen" + "${mod}, J, togglesplit" # Move focus with mod + arrow keys - "$mod, left, movefocus, l" - "$mod, right, movefocus, r" - "$mod, up, movefocus, u" - "$mod, down, movefocus, d" + "${mod}, left, movefocus, l" + "${mod}, right, movefocus, r" + "${mod}, up, movefocus, u" + "${mod}, down, movefocus, d" # Move window across workspace with mod + arrow keys - "$mod SHIFT, left, hy3:movewindow, l" - "$mod SHIFT, right, hy3:movewindow, r" - "$mod SHIFT, up, hy3:movewindow, u" - "$mod SHIFT, down, hy3:movewindow, d" + "${mod} SHIFT, left, hy3:movewindow, l" + "${mod} SHIFT, right, hy3:movewindow, r" + "${mod} SHIFT, up, hy3:movewindow, u" + "${mod} SHIFT, down, hy3:movewindow, d" # Switch workspaces with mod + [0-9] - "$mod, 1, workspace, 1" - "$mod, 2, workspace, 2" - "$mod, 3, workspace, 3" - "$mod, 4, workspace, 4" - "$mod, 5, workspace, 5" - "$mod, 6, workspace, 6" - "$mod, 7, workspace, 7" - "$mod, 8, workspace, 8" - "$mod, 9, workspace, 9" + "${mod}, 1, workspace, 1" + "${mod}, 2, workspace, 2" + "${mod}, 3, workspace, 3" + "${mod}, 4, workspace, 4" + "${mod}, 5, workspace, 5" + "${mod}, 6, workspace, 6" + "${mod}, 7, workspace, 7" + "${mod}, 8, workspace, 8" + "${mod}, 9, workspace, 9" # Move active window to a workspace with mod + SHIFT + [0-9] - "$mod SHIFT, 1, movetoworkspacesilent, 1" - "$mod SHIFT, 2, movetoworkspacesilent, 2" - "$mod SHIFT, 3, movetoworkspacesilent, 3" - "$mod SHIFT, 4, movetoworkspacesilent, 4" - "$mod SHIFT, 5, movetoworkspacesilent, 5" - "$mod SHIFT, 6, movetoworkspacesilent, 6" - "$mod SHIFT, 7, movetoworkspacesilent, 7" - "$mod SHIFT, 8, movetoworkspacesilent, 8" - "$mod SHIFT, 9, movetoworkspacesilent, 9" - "$mod SHIFT, 0, movetoworkspacesilent, 10" + "${mod} SHIFT, 1, movetoworkspacesilent, 1" + "${mod} SHIFT, 2, movetoworkspacesilent, 2" + "${mod} SHIFT, 3, movetoworkspacesilent, 3" + "${mod} SHIFT, 4, movetoworkspacesilent, 4" + "${mod} SHIFT, 5, movetoworkspacesilent, 5" + "${mod} SHIFT, 6, movetoworkspacesilent, 6" + "${mod} SHIFT, 7, movetoworkspacesilent, 7" + "${mod} SHIFT, 8, movetoworkspacesilent, 8" + "${mod} SHIFT, 9, movetoworkspacesilent, 9" + "${mod} SHIFT, 0, movetoworkspacesilent, 10" # Move to tab @@ -75,14 +76,14 @@ "LALT, 9, hy3:focustab, index, 09" "LALT, 0, hy3:focustab, index, 10" - "$mod SHIFT, B, hy3:makegroup, h" - "$mod SHIFT, V, hy3:makegroup, v" - "$mod SHIFT, C, hy3:changegroup, toggletab" + "${mod} SHIFT, B, hy3:makegroup, h" + "${mod} SHIFT, V, hy3:makegroup, v" + "${mod} SHIFT, C, hy3:changegroup, toggletab" # Scroll through existing workspaces with mod + scroll - "$mod, mouse_down, workspace, e+1" - "$mod, mouse_up, workspace, e-1" + "${mod}, mouse_down, workspace, e+1" + "${mod}, mouse_up, workspace, e-1" ]; bindn = [ @@ -96,8 +97,8 @@ bindm = [ # Move/resize windows with mod + LMB/RMB and dragging - "$mod, mouse:272, movewindow" - "$mod, mouse:273, resizewindow" + "${mod}, mouse:272, movewindow" + "${mod}, mouse:273, resizewindow" ]; binde = [ diff --git a/home/desktops/hyprland/settings.nix b/home/desktops/hyprland/settings.nix index 219467e..d285b04 100644 --- a/home/desktops/hyprland/settings.nix +++ b/home/desktops/hyprland/settings.nix @@ -65,19 +65,27 @@ enabled = true; bezier = [ - "windowIn, 0.06, 0.71, 0.25, 1" - "windowResize, 0.04, 0.67, 0.38, 1" + "default, 0.12, 0.92, 0.08, 1.0" + "wind, 0.12, 0.92, 0.08, 1.0" + "overshot, 0.18, 0.95, 0.22, 1.03" + "linear, 1, 1, 1, 1" ]; animation = [ - "windowsIn, 1, 3, windowIn, slide #popin 20%" - "windowsOut, 1, 3, windowIn, slide #popin 70%" - "windowsMove, 1, 2.5, windowResize" - "border, 1, 10, default" - "borderangle, 1, 8, default" - "fade, 1, 3, default" - "workspaces, 1, 6, default" - "layers, 1, 5, windowIn, slide" + "windows, 1, 5, wind, popin 60%" + "windowsIn, 1, 6, overshot, popin 60%" + "windowsOut, 1, 4, overshot, popin 60%" + "windowsMove, 1, 4, overshot, slide" + "layers, 1, 4, default, popin" + "fadeIn, 1, 7, default" + "fadeOut, 1, 7, default" + "fadeSwitch, 1, 7, default" + "fadeShadow, 1, 7, default" + "fadeDim, 1, 7, default" + "fadeLayers, 1, 7, default" + "workspaces, 1, 5, overshot, slide" + "border, 1, 1, linear" + "borderangle, 1, 24, linear, loop" ]; }; @@ -95,6 +103,24 @@ sensitivity = 0; }; + # Window rules + windowrulev2 = [ + "float,workspace 1,forclass wofi" + "noborder,forclass wofi" + ]; + + # Layer rules + layerrule = [ + "blur true, match:namespace wofi" + "ignore_alpha 0, match:namespace wofi" + "blur true, match:namespace notificaations" + "ignore_alpha 0, match:namespace notifications" + "blur true, match:namespace swaync-notificaation-window" + "ignore_alpha 0, match:namespace swaync-notification-window" + "blur true, match:namespace swaync-control-center" + "ignore_alpha 0, match:namespace swaync-control-center" + ]; + # XWayland xwayland = { force_zero_scaling = "true"; @@ -116,11 +142,6 @@ no_update_news = true; no_donation_nag = true; }; - - # Experimental - experimental = { - xx_color_management_v4 = true; - }; }; # end settings }; # end hyprland } diff --git a/home/desktops/hyprland/wallpaper.nix b/home/desktops/hyprland/wallpaper.nix index e8fc861..0a404f5 100644 --- a/home/desktops/hyprland/wallpaper.nix +++ b/home/desktops/hyprland/wallpaper.nix @@ -3,8 +3,10 @@ enable = config.desktops.hyprland.enable; settings = { - preload = config.theme.wallpaper; - wallpaper = ",${config.theme.wallpaper}"; + wallpaper = { + monitor = ""; + path = config.theme.wallpaper; + }; splash = false; }; }; diff --git a/home/neovim/init.lua b/home/neovim/init.lua index a97feb4..e66e523 100644 --- a/home/neovim/init.lua +++ b/home/neovim/init.lua @@ -291,19 +291,10 @@ require('nvim-surround').setup {} --[[ SYNTAX HIGHLIGHTING ]]-- -require('nvim-treesitter.configs').setup { - highlight = { - enable = true, - disable = function(lang, buf) - local max_filesize = config.highlight.max_size * 1024 - local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) - if ok and stats and stats.size > max_filesize then - return true - end - end, - additional_vim_regex_highlighting = true, - }, -} +vim.api.nvim_create_autocmd('FileType', { + pattern = { '<filetype>' }, + callback = function() vim.treesitter.start() end, +}) require('illuminate').configure { providers = { |