diff --git a/dotfiles/dot_config/fish/functions/flakeup.fish b/dotfiles/dot_config/fish/functions/flakeup.fish new file mode 100644 index 0000000..ed53d26 --- /dev/null +++ b/dotfiles/dot_config/fish/functions/flakeup.fish @@ -0,0 +1,5 @@ +#!/usr/bin/env fish + +function flakeup --description 'update flake sources' + nix flake update --flake /home/emenel/source/nixos-config +end diff --git a/dotfiles/dot_config/hypr/hypridle.conf b/dotfiles/dot_config/hypr/hypridle.conf new file mode 100644 index 0000000..1ad7f82 --- /dev/null +++ b/dotfiles/dot_config/hypr/hypridle.conf @@ -0,0 +1,50 @@ +general { + lock_cmd = pidof hyprlock || hyprlock + before_sleep_cmd = loginctl lock-session +} + +# battery timers +listener { + timeout = 30 + on-timeout = systemd-ac-power || light -S 0 + on-resume = systemd-ac-power || light -I +} + +listener { + timeout = 30 + on-timeout = systemd-ac-power || light -s razer/0003:1532:02B6.0004/backlight -S 0 + on-resume = systemd-ac-power || light -s razer/0003:1532:02B6.0004/backlight -S 40 +} + +listener { + timeout = 120 + on-timeout = systemd-ac-power || systemd-ac-power && loginctl lock-session +} + +listener { + timeout = 600 + on-timeout = systemd-ac-power || systemctl suspend +} + +# ac power timers +listener { + timeout = 60 + on-timeout = systemd-ac-power && light -S 0 + on-resume = systemd-ac-power && light -I +} + +listener { + timeout = 60 + on-timeout = systemd-ac-power && light -s razer/0003:1532:02B6.0004/backlight -S 0 + on-resume = systemd-ac-power && light -s razer/0003:1532:02B6.0004/backlight -S 40 +} + +listener { + timeout = 300 + on-timeout = systemd-ac-power && loginctl lock-session +} + +listener { + timeout = 1800 + on-timeout = systemd-ac-power && systemctl suspend +} diff --git a/dotfiles/dot_config/hypr/hyprlock.conf b/dotfiles/dot_config/hypr/hyprlock.conf new file mode 100644 index 0000000..392d8f9 --- /dev/null +++ b/dotfiles/dot_config/hypr/hyprlock.conf @@ -0,0 +1,53 @@ +general { + grace = 1 + hide_cursor = true +} + +background { + color = rgb(0,0,0) +} + +input-field { + monitor = + # size = 250, 60 + outline_thickness = 2 + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.35 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + outer_color = rgba(0, 0, 0, 0) + inner_color = rgba(225, 225, 225, 0.25) + font_color = rgb(0,0,0) + fade_on_empty = false + rounding = -1 + check_color = rgb(204, 136, 34) + placeholder_text = hm ... + hide_input = false + position = 0, 0 + halign = center + valign = center + font_family = JetBrains Mono +} + +# DATE +label { + monitor = + text = cmd[update:1000] echo "$(date +"%A, %B %d")" + color = rgba(242, 243, 244, 0.75) + font_size = 32 + font_family = JetBrains Mono + position = 0, 300 + halign = center + valign = center +} + +# TIME +label { + monitor = + text = cmd[update:1000] echo "$(date +"%-I:%M")" + color = rgba(242, 243, 244, 0.75) + font_size = 32 + font_family = JetBrains Mono Extrabold + position = 0, 200 + halign = center + valign = center +} diff --git a/dotfiles/dot_config/mako/config b/dotfiles/dot_config/mako/config new file mode 100644 index 0000000..1194618 --- /dev/null +++ b/dotfiles/dot_config/mako/config @@ -0,0 +1,25 @@ +max-visible=5 +sort=-time + +layer=top +anchor=top-right + +font=JetbrainsMono-Light 12 +background-color=#111111 +text-color=#eeeeee +width=300 +height=100 +margin=24 +padding=16 +border-size=2 +border-color=#eeeeee +border-radius=6 +progress-color=over #5588AAFF +icons=true +max-icon-size=64 + +markup=true +actions=true +format=%s\n%b +default-timeout=5000 +ignore-timeout=false diff --git a/dotfiles/dot_config/niri/config.kdl b/dotfiles/dot_config/niri/config.kdl index 41a52b1..93042ef 100644 --- a/dotfiles/dot_config/niri/config.kdl +++ b/dotfiles/dot_config/niri/config.kdl @@ -53,10 +53,6 @@ environment { MOZ_ENABLE_WAYLAND "1" } -/-switch-events { - lid-close { spawn "swaylock"; } -} - cursor { xcursor-theme "Bibata-Modern-Classic" xcursor-size 24 @@ -99,10 +95,11 @@ spawn-at-startup "maestral_qt" spawn-at-startup "xwayland-satellite" ":0" spawn-at-startup "clipse" "-listen" spawn-at-startup "waybar" -spawn-at-startup "eww" "daemon" +// spawn-at-startup "eww" "daemon" spawn-at-startup "swayosd-server" -spawn-at-startup "bitwarden" spawn-at-startup "plexamp" +// spawn-at-startup "shikane" +spawn-at-startup "hypridle" screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" @@ -110,6 +107,12 @@ animations { slowdown 1.0 } +// global window rule for shared config +window-rule { + geometry-corner-radius 8 + clip-to-geometry true +} + window-rule { match app-id="Calculator" match app-id="Color Picker" @@ -138,29 +141,19 @@ window-rule { open-floating true } -window-rule { - geometry-corner-radius 8 - clip-to-geometry true -} - -/-window-rule { - match is-active=false - opacity 0.75 -} - binds { // shows a list of important hotkeys. Mod+Shift+Slash { show-hotkey-overlay; } // Suggested binds for running programs: terminal, app launcher, screen locker. - Mod+T { spawn "wezterm"; } - Mod+E { spawn "emacsclient" "-r" "-n"; } - Mod+B { spawn "firefox"; } - //Mod+Space { spawn "fuzzel"; } Mod+Space { spawn "wezterm" "--config-file" "/home/emenel/.config/wezterm/launcher.lua" "start" "--class" "launcher" "--always-new-process" "sway-launcher-desktop"; } + Mod+Ctrl+T { spawn "wezterm"; } + Mod+Ctrl+E { spawn "emacsclient" "-r" "-n"; } + Mod+Ctrl+B { spawn "firefox"; } Mod+Ctrl+V { spawn "wezterm" "--config-file" "/home/emenel/.config/wezterm/launcher.lua" "start" "--class" "launcher" "--always-new-process" "clipse"; } Mod+Ctrl+F { spawn "wezterm" "--config-file" "/home/emenel/.config/wezterm/launcher.lua" "start" "--always-new-process" "yazi"; } - Super+Shift+L { spawn "swaylock"; } + + Super+Shift+L { spawn "hyprlock"; } // Example volume keys mappings for PipeWire & WirePlumber. // The allow-when-locked=true property makes them work even when the session is locked. @@ -321,8 +314,8 @@ binds { Mod+Shift+Equal { set-window-height "+10%"; } // Move the focused window between the floating and the tiling layout. - Mod+Ctrl+X { toggle-window-floating; } - // Mod+Shift+X { switch-focus-between-floating-and-tiling; } + Mod+Ctrl+X { toggle-window-floating; } + Mod+Alt+X { switch-focus-between-floating-and-tiling; } Mod+X { focus-workspace "scratchpad"; } // Actions to switch layouts. diff --git a/dotfiles/dot_config/shikane/config.toml b/dotfiles/dot_config/shikane/config.toml new file mode 100644 index 0000000..63b6a94 --- /dev/null +++ b/dotfiles/dot_config/shikane/config.toml @@ -0,0 +1,67 @@ +[[profile]] +name = "desk-dual" +exec = ["notify-send shikane \"Profile $SHIKANE_PROFILE_NAME has been applied\""] + [[profile.output]] + enable = true + search = ["m=TL140ADXP04-0", "s=", "v=Thermotrex Corporation"] + mode = "2560x1600@240Hz" + position = "3840,0" + scale = 1.0 + transform = "normal" + adaptive_sync = false + + [[profile.output]] + enable = true + search = ["m=BenQ PD2725U", "s=N2N00414019", "v=PNP(BNQ)"] + mode = "3840x2160@59.997Hz" + position = "0,0" + scale = 1.0 + transform = "normal" + adaptive_sync = false + + +[[profile]] +name = "desk-clam" +exec = ["notify-send shikane \"Profile $SHIKANE_PROFILE_NAME has been applied\""] + [[profile.output]] + enable = false + search = ["m=TL140ADXP04-0", "s=", "v=Thermotrex Corporation"] + + [[profile.output]] + enable = true + search = ["m=BenQ PD2725U", "s=N2N00414019", "v=PNP(BNQ)"] + mode = "3840x2160@59.997Hz" + position = "0,0" + scale = 1.0 + transform = "normal" + adaptive_sync = false + + +[[profile]] +name = "laptop" +exec = ["notify-send shikane \"Profile $SHIKANE_PROFILE_NAME has been applied\""] + [[profile.output]] + enable = true + search = ["m=TL140ADXP04-0", "s=", "v=Thermotrex Corporation"] + mode = "2560x1600@240Hz" + position = "0,0" + scale = 1.0 + transform = "normal" + adaptive_sync = false + + +[[profile]] +name = "laptop-misc" +exec = ["notify-send shikane \"Profile $SHIKANE_PROFILE_NAME has been applied\""] + [[profile.output]] + enable = true + search = ["m=TL140ADXP04-0", "s=", "v=Thermotrex Corporation"] + mode = "2560x1600@240Hz" + position = "3840,0" + scale = 1.0 + transform = "normal" + adaptive_sync = false + + [[profile.output]] + enable = true + match = "/.*/" diff --git a/dotfiles/dot_config/sway-launcher-desktop/files.conf b/dotfiles/dot_config/sway-launcher-desktop/files.conf new file mode 100644 index 0000000..af395b0 --- /dev/null +++ b/dotfiles/dot_config/sway-launcher-desktop/files.conf @@ -0,0 +1,5 @@ +[files-provider] +list_cmd= +preview_cmd= +launch_cmd= +purge_cmd= diff --git a/dotfiles/dot_config/tree-sitter/config.json b/dotfiles/dot_config/tree-sitter/config.json new file mode 100644 index 0000000..e7a5df1 --- /dev/null +++ b/dotfiles/dot_config/tree-sitter/config.json @@ -0,0 +1,59 @@ +{ + "parser-directories": [ + "/home/emenel/github", + "/home/emenel/src", + "/home/emenel/source", + "/home/emenel/projects", + "/home/emenel/dev", + "/home/emenel/git" + ], + "theme": { + "attribute": { + "italic": true, + "color": 124 + }, + "number": { + "bold": true, + "color": 94 + }, + "constant.builtin": { + "color": 94, + "bold": true + }, + "type": 23, + "function.builtin": { + "color": 26, + "bold": true + }, + "keyword": 56, + "embedded": null, + "constructor": 136, + "variable.builtin": { + "bold": true + }, + "operator": { + "bold": true, + "color": 239 + }, + "constant": 94, + "punctuation.delimiter": 239, + "comment": { + "color": 245, + "italic": true + }, + "tag": 18, + "string": 28, + "type.builtin": { + "color": 23, + "bold": true + }, + "module": 136, + "string.special": 30, + "property": 124, + "function": 26, + "punctuation.bracket": 239, + "variable.parameter": { + "underline": true + } + } +} \ No newline at end of file diff --git a/dotfiles/dot_config/waybar/config b/dotfiles/dot_config/waybar/config index ecef951..1f320b5 100644 --- a/dotfiles/dot_config/waybar/config +++ b/dotfiles/dot_config/waybar/config @@ -2,13 +2,10 @@ "modules-left": [ "clock", "niri/workspaces", - "wlr/taskbar", "mpris" ], - "modules-center": [ - "niri/window" - ], "modules-right": [ + "wlr/taskbar", "tray", "cpu", "memory", @@ -45,7 +42,7 @@ "format-ethernet": "{ifname} ", "format-disconnected": "", "max-length": 50, - "on-click": "wezterm -e 'nmtui'" + "on-click": "wezterm --config-file /home/emenel/.config/wezterm/launcher.lua start --class launcher --always-new-process nmtui", }, "tray": { "icon-size": 20, diff --git a/dotfiles/dot_config/waybar/style.css b/dotfiles/dot_config/waybar/style.css index 7e29e33..e1da559 100644 --- a/dotfiles/dot_config/waybar/style.css +++ b/dotfiles/dot_config/waybar/style.css @@ -41,12 +41,14 @@ window#waybar { #wireplumber, #disk, #memory, -#backlight, +#taskbar #cpu, #temperature, #custom-weather, #idle_inhibitor, #jack, +#upower, +#power-profiles-daemon #tray, #window, #workspaces, @@ -54,12 +56,20 @@ window#waybar { padding: 0 20px; } +#power-profiles-daemon { + min-width: 40px; +} + #temperature.critical, #pulseaudio.muted { color: #FF0000; padding-top: 0; } +#cpu { + padding-right: 30px; +} + #clock{ color: #d8bfff; } @@ -101,6 +111,10 @@ window#waybar { color: #ccc; } +#taskbar, #tray { + padding-right: 30px; +} + #taskbar button.active { background: #333; } diff --git a/dotfiles/dot_config/wezterm/launcher.lua b/dotfiles/dot_config/wezterm/launcher.lua index edc887b..0b53ccd 100644 --- a/dotfiles/dot_config/wezterm/launcher.lua +++ b/dotfiles/dot_config/wezterm/launcher.lua @@ -4,7 +4,6 @@ local act = wezterm.action local io = require 'io' local os = require 'os' - config.enable_wayland = false; -- config.front_end = "WebGpu"; @@ -42,10 +41,10 @@ config.background = { config.window_decorations = "RESIZE" config.window_padding = { - left = 12, - right = 12, - top = 6, - bottom = 6, + left = 4, + right = 4, + top = 4, + bottom = 4, } config.cursor_thickness = 2 @@ -54,67 +53,4 @@ config.enable_tab_bar = false; config.enable_kitty_keyboard = true -config.unzoom_on_switch_pane = true - -config.keys = { - { - key = 'Enter', - mods = 'CTRL', - action = act.SplitVertical { domain = 'CurrentPaneDomain' }, - }, - { - key = 'Enter', - mods = 'CTRL|SHIFT', - action = act.SplitHorizontal { domain = 'CurrentPaneDomain' }, - }, - { - key = 'w', - mods = 'CTRL', - action = wezterm.action.CloseCurrentTab { confirm = true }, - }, - { - key = 'w', - mods = 'CTRL|SHIFT', - action = act.DetachDomain 'CurrentPaneDomain', - }, - { - key = 'k', - mods = 'CTRL|SHIFT', - action = act.Multiple { - act.ClearScrollback 'ScrollbackAndViewport', - act.SendKey { key = 'L', mods = 'CTRL' }, - }, - }, - { - key = 'z', - mods = 'CTRL|META', - action = wezterm.action.TogglePaneZoomState, - }, - { - key = 'E', - mods = 'CTRL', - action = act.EmitEvent 'trigger-emacs-with-scrollback', - }, - { - key = 'o', - mods = 'CTRL', - action = wezterm.action.ShowLauncher - }, - - { key="Backspace", mods="CTRL", action=act.SendKey { key="Backspace", mods="META" } }, - - { key='t', mods='CTRL', action=act { SpawnCommandInNewTab = { cwd = wezterm.home_dir } } }, - - { key="LeftArrow", mods="CTRL|META", action=act.ActivateTabRelative(-1) }, - { key="RightArrow", mods="CTRL|META", action=act.ActivateTabRelative(1) }, - - { key="UpArrow", mods="CTRL|META", action=act.ActivatePaneDirection("Prev") }, - { key="DownArrow", mods="CTRL|META", action=act.ActivatePaneDirection("Next") }, - - { key='h', mods='CTRL|META', action=wezterm.action{ActivatePaneDirection="Left"} }, - { key='l', mods='CTRL|META', action=wezterm.action{ActivatePaneDirection="Right"} }, - { key='j', mods='CTRL|META', action=wezterm.action{ActivatePaneDirection="Up"} }, - { key='k', mods='CTRL|META', action=wezterm.action{ActivatePaneDirection="Down"} }, -} - return config diff --git a/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/LICENSE b/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/LICENSE new file mode 100644 index 0000000..690fc9a --- /dev/null +++ b/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Lukas Manera + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/LICENSE-tmtheme b/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/LICENSE-tmtheme new file mode 100644 index 0000000..690fc9a --- /dev/null +++ b/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/LICENSE-tmtheme @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Lukas Manera + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/README.md b/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/README.md new file mode 100644 index 0000000..6af5039 --- /dev/null +++ b/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/README.md @@ -0,0 +1,40 @@ +
+ Yazi logo +
+ +

+ Flavor for Yazi +

+ +## Monokai Vibrant +I like Monokai. I like Monokai with vibrant colors and minimal styling even more. Borders are only slightly visible. Kept a lot of things plain white to counteract the colorfulness. + +## Theme +Monokai Vibrant Theme based on jonotansberg "tweaked Monokai Dark Soda" .tmTheme. https://github.com/jonatansberg/Monokai-Dark-Soda.tmTheme + +## πŸ‘€ Preview + + + +## 🎨 Installation + + + +```bash +ya pack -a sanjinso/monokai-vibrant +``` + +## βš™οΈ Usage + +Add the these lines to your `theme.toml` configuration file to use it: + +```toml +[flavor] +use = "monokai-vibrant" +``` + +## πŸ“œ License + +The flavor is MIT-licensed, and the included tmTheme is also MIT-licensed. + +Check the [LICENSE](LICENSE) and [LICENSE-tmtheme](LICENSE-tmtheme) file for more details. diff --git a/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/flavor.toml b/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/flavor.toml new file mode 100644 index 0000000..8caa496 --- /dev/null +++ b/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/flavor.toml @@ -0,0 +1,95 @@ + +#E373CE +#FFD945 +#FF9700 +#81F900 +#FF3F4F +#19D1E5 +#528bff + +[manager] +cwd = { fg = "white" } + +hovered = { reversed = true } +preview_hovered = { reversed = true } + +tab_active = { reversed = true } +tab_inactive = {} +tab_width = 1 + +# default bg +count_copied = { fg = "#1f1f28", bg = "#81F900" } +count_cut = { fg = "#1f1f28", bg = "#FF3F4F" } +count_selected = { fg = "#1f1f28", bg = "#FFD945" } + +# Find +find_keyword = { bg = "white", fg = "#FF3F4F", bold = true, italic = false, underline = false } + +# Border +border_symbol = "β”‚" +border_style = { bg = "#292B30", fg = "#333341" } + +[which] +cols = 2 +separator = " | " +separator_style = { fg = "#292B30" } +mask = { bg = "#16161d" } # dark bg +rest = { fg = "#727169" } # darkgrey +cand = { fg = "white" } +desc = { fg = "#565666" } + +[status] +separator_open = "" +separator_close = "" +separator_style = { fg = "reset", bg = "#363646" } + +# default bg +mode_normal = { fg = "#1f1f28", bg = "white", bold = true } +mode_select = { fg = "#1f1f28", bg = "#FF3F4F", bold = true } +mode_unset = { fg = "#1f1f28", bg = "#FFD945", bold = true } + +progress_label = { fg = "#19D1E5", bg = "#363646", bold = true } +progress_normal = { fg = "#363646", bg = "#1f1f28" } +progress_error = { fg = "#363646", bg = "#1f1f28" } + +permissions_t = { fg = "#81F900" } +permissions_r = { fg = "#FFD945" } +permissions_w = { fg = "#FF3F4F" } +permissions_x = { fg = "#FF9700" } +permissions_s = { fg = "#19D1E5" } + +[input] +border = { fg = "#7fb4ca" } # blue +title = {} +value = {} +selected = { reversed = true } + +[completion] +border = { fg = "#7fb4ca" } # blue +active = { reversed = true } +inactive = {} + +[tasks] +border = { fg = "#7fb4ca" } # blue +title = {} +hovered = { fg = "#938aa9" } # magenta + +[help] +on = { fg = "#7aa89f" } # cyan +run = { fg = "#938aa9" } # magenta +desc = {} +hovered = { reversed = true, bold = true } +footer = { fg = "#090618", bg = "#dcd7ba" } # white + +# files +[filetype] +rules = [ + { mime = "image/*", fg = "#FFD945" }, + { mime = "{audio,video}/*", fg = "#81F900" }, + { mime = "application/{,g}zip", fg = "#FF3F4F" }, + { mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "#FF3F4F" }, + { mime = "application/{pdf,doc,rtf,vnd.*}", fg = "#0D96DE" }, + { name = "*", is = "orphan", fg = "#FF3F4F" }, + { name = "*", is = "exec", fg = "#81F900" }, + { name = "*/", fg = "#19D1E5"} +] diff --git a/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/preview.png b/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/preview.png new file mode 100644 index 0000000..e3f7040 Binary files /dev/null and b/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/preview.png differ diff --git a/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/tmtheme.xml b/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/tmtheme.xml new file mode 100644 index 0000000..d569301 --- /dev/null +++ b/dotfiles/dot_config/yazi/flavors/monokai-vibrant.yazi/tmtheme.xml @@ -0,0 +1,675 @@ + + + + + name + Monokai Dark + settings + + + settings + + background + #242424 + caret + #F8F8F0 + foreground + #F8F8F2 + invisibles + #3B3A32 + lineHighlight + #3D3D3D55 + selection + #403d3d + + + + name + Comment + scope + comment + settings + + foreground + #5C6370 + + + + name + String + scope + string + settings + + foreground + #FFD945 + + + + name + Number + scope + constant.numeric + settings + + foreground + #E373CE + + + + name + Built-in constant + scope + constant.language + settings + + foreground + #E373CE + + + + name + User-defined constant + scope + constant.character, constant.other + settings + + foreground + #E373CE + + + + name + Variable + scope + variable + settings + + fontStyle + + + + + name + Keyword + scope + keyword + settings + + foreground + #FF3F4F + + + + name + Storage + scope + storage + settings + + fontStyle + + foreground + #FF3F4F + + + + name + Storage type + scope + storage.type + settings + + fontStyle + italic + foreground + #19D1E5 + + + + name + Class name + scope + entity.name.class + settings + + fontStyle + underline + foreground + #81F900 + + + + name + Inherited class + scope + entity.other.inherited-class + settings + + fontStyle + italic underline + foreground + #81F900 + + + + name + Function name + scope + entity.name.function + settings + + fontStyle + + foreground + #81F900 + + + + name + Function argument + scope + variable.parameter + settings + + fontStyle + italic + foreground + #FF9700 + + + + name + Tag name + scope + entity.name.tag + settings + + fontStyle + + foreground + #FF3F4F + + + + name + Tag attribute + scope + entity.other.attribute-name + settings + + fontStyle + + foreground + #81F900 + + + + name + Library function + scope + support.function + settings + + fontStyle + + foreground + #19D1E5 + + + + name + Library constant + scope + support.constant + settings + + fontStyle + + foreground + #19D1E5 + + + + name + Library class/type + scope + support.type, support.class + settings + + fontStyle + italic + foreground + #19D1E5 + + + + name + Library variable + scope + support.other.variable + settings + + fontStyle + + + + + name + PHP Namespaces + scope + support.other.namespace, entity.name.type.namespace + settings + + foreground + #E373CE + + + + name + PHP Namespace Alias + scope + support.other.namespace.use-as.php + settings + + foreground + #19D1E5 + + + + name + PHP Namespace Keyword + scope + variable.language.namespace.php + settings + + foreground + #D66990 + + + + name + PHP Namespace Separator + scope + punctuation.separator.inheritance.php + settings + + foreground + #FF3F4F + + + + name + CSS Functions / Property Values + scope + support.function.misc.css, support.constant.property-value.css, support.constant.font-name.css + settings + + foreground + #FFD945 + + + + name + Twig Tagbraces + scope + meta.tag.template.value.twig, meta.tag.template.block.twig + settings + + foreground + #CD5AC5 + + + + name + Twig Keywords + scope + keyword.control.twig + settings + + foreground + #E05D8C + + + + name + Twig Objects + scope + variable.other.twig + settings + + foreground + #E5A5E0 + + + + name + Twig Object Properties + scope + variable.other.property.twig + settings + + foreground + #FFE1FC + + + + name + Twig Language Constants + scope + constant.language.twig + settings + + foreground + #FFD945 + + + + name + Twig Numerical Constants + scope + constant.numeric.twig + settings + + foreground + #FFD0FB + + + + name + Twig Filters + scope + support.function.twig + settings + + foreground + #90E7F7 + + + + name + Twig User-Defined Filters + scope + meta.function-call.other.twig + settings + + foreground + #FF9700 + + + + name + Twig Macros + scope + meta.function-call.twig + settings + + foreground + #FF9700 + + + + name + Invalid + scope + invalid + settings + + background + #FF3F4F + fontStyle + + foreground + #F8F8F0 + + + + name + Invalid deprecated + scope + invalid.deprecated + settings + + background + #E373CE + foreground + #F8F8F0 + + + + name + Embedded Source + scope + text source + settings + + background + #3D3D3D55 + + + + name + diff: header + scope + meta.diff, meta.diff.header + settings + + fontStyle + bold + foreground + #E0EDDD + + + + name + diff: deleted + scope + markup.deleted + settings + + fontStyle + + foreground + #D3201F + + + + name + diff: changed + scope + markup.changed + settings + + fontStyle + + foreground + #BF3904 + + + + name + diff: inserted + scope + markup.inserted + settings + + foreground + #81F900 + + + + name + diff: range + scope + meta.diff, meta.diff.range + settings + + foreground + #3bc0f0 + + + + name + Markdown: Headings + scope + markup.heading.markdown, markup.heading.1.markdown, markup.heading.2.markdown + settings + + foreground + #81F900 + + + + name + Markdown: Bold + scope + markup.bold.markdown + settings + + fontStyle + bold + foreground + #F8F8F2 + + + + name + Markdown: Italic + scope + markup.italic.markdown + settings + + fontStyle + italic + foreground + #F8F8F2 + + + + name + Markdown: Punctuation for Bold, Italic, and Inline Block + scope + punctuation.definition.bold.markdown, punctuation.definition.italic.markdown, punctuation.definition.raw.markdown + settings + + foreground + #D3201F + + + + name + Markdown: Bulleted List + scope + markup.list.unnumbered.markdown + settings + + foreground + #E373CE + + + + name + Markdown: Numbered List + scope + markup.list.numbered.markdown + settings + + foreground + #E373CE + + + + name + Markdown: Block and Inline Block + scope + markup.raw.block.markdown, markup.raw.inline.markdown + settings + + foreground + #FFD945 + + + + name + Markdown: Quote Block and Punctuation + scope + markup.quote.markdown, punctuation.definition.blockquote.markdown + settings + + foreground + #00A0E4 + + + + name + Markdown: Seperator + scope + meta.separator.markdown + settings + + foreground + #E373CE + + + + name + Markdown: Link and Reference URL + scope + meta.image.inline.markdown, markup.underline.link.markdown + settings + + fontStyle + italic + foreground + #5C6370 + + + + name + Markdown: Link Title, Image Description + scope + string.other.link.title.markdown, string.other.link.description.markdown + settings + + foreground + #81F900 + + + + name + Markdown: Angle Brakets on Link and Image + scope + punctuation.definition.link.markdown + settings + + foreground + #5C6370 + + + + name + Markdown: Parens on Link and Image + scope + punctuation.definition.metadata.markdown + settings + + foreground + #5C6370 + + + + name + Markdown: Square Brakets on Link, Image, and Reference + scope + punctuation.definition.string.begin.markdown, punctuation.definition.string.end.markdown, punctuation.definition.constant.markdown + settings + + foreground + #5C6370 + + + + uuid + 255F0694-0C8C-93E3-114A-EBBCF44F5573 + + \ No newline at end of file diff --git a/dotfiles/dot_config/yazi/init.lua b/dotfiles/dot_config/yazi/init.lua new file mode 100644 index 0000000..4102d2c --- /dev/null +++ b/dotfiles/dot_config/yazi/init.lua @@ -0,0 +1,22 @@ +Status:children_add(function(self) + local h = self._current.hovered + if h and h.link_to then + return " -> " .. tostring(h.link_to) + else + return "" + end +end, 3300, Status.LEFT) + +Status:children_add(function() + local h = cx.active.current.hovered + if h == nil or ya.target_family() ~= "unix" then + return "" + end + + return ui.Line { + ui.Span(ya.user_name(h.cha.uid) or tostring(h.cha.uid)):fg("magenta"), + ":", + ui.Span(ya.group_name(h.cha.gid) or tostring(h.cha.gid)):fg("magenta"), + " ", + } +end, 500, Status.RIGHT) diff --git a/dotfiles/dot_config/yazi/keymap.toml b/dotfiles/dot_config/yazi/keymap.toml new file mode 100644 index 0000000..d21cdbb --- /dev/null +++ b/dotfiles/dot_config/yazi/keymap.toml @@ -0,0 +1,6 @@ +[manager] +prepend_keymap = [ + { on = "", run = "shell 'ripdrag \"$@\" -x 2>/dev/null &' --confirm" }, + { on = "y", run = ["shell 'for path in \"$@\"; do echo \"file://$path\"; done | wl-copy -t text/uri-list'\n", "yank"] }, + { on = ["g", "r"], run = "shell 'ya emit cd \"$(git rev-parse --show-toplevel)\"'\n" } +] diff --git a/dotfiles/dot_config/yazi/theme.toml b/dotfiles/dot_config/yazi/theme.toml new file mode 100644 index 0000000..5eec05f --- /dev/null +++ b/dotfiles/dot_config/yazi/theme.toml @@ -0,0 +1,6 @@ +[flavor] +dark = "monokai-vibrant" +light = "monokai-vibrant" + +[manager] +hovered = { bg = "#cccccc", fg = "#000000" } diff --git a/dotfiles/dot_config/yazi/yazi.toml b/dotfiles/dot_config/yazi/yazi.toml new file mode 100644 index 0000000..e69de29 diff --git a/flake.lock b/flake.lock index a07a4ea..b813370 100644 --- a/flake.lock +++ b/flake.lock @@ -23,6 +23,93 @@ "type": "github" } }, + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1732200724, + "narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "153d52373b0fb2d343592871009a286ec8837aec", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { + "flake": false, + "locked": { + "lastModified": 1622559957, + "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1725860795, + "narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "7f795bf75d38e0eea9fed287264067ca187b88a9", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1731949548, + "narHash": "sha256-XIDexXM66sSh5j/x70e054BnUsviibUShW7XhbDGhYo=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "61165b1632409bd55e530f3dbdd4477f011cadc6", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "type": "github" + } + }, + "crane": { + "inputs": { + "nixpkgs": [ + "shikane", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1716745752, + "narHash": "sha256-8K1R9Yg4r08rYk86Yq+lu3E9L3uRUb4xMqYHgl0VGS0=", + "owner": "ipetkov", + "repo": "crane", + "rev": "19ca94ec2d288de334ae932107816b4a97736cd8", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, "elemental-wine-source": { "flake": false, "locked": { @@ -42,6 +129,44 @@ "type": "gitlab" } }, + "fenix": { + "inputs": { + "nixpkgs": [ + "shikane", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1716704729, + "narHash": "sha256-Yk0L1JdBTdC9ZtDreqcMMolOtTp0XnPjrACT8oTw2Wg=", + "owner": "nix-community", + "repo": "fenix", + "rev": "aaa27b4cf3729b6562cd4dd65ba24eeda3731002", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "firefox-gnome-theme": { + "flake": false, + "locked": { + "lastModified": 1734969791, + "narHash": "sha256-A9PxLienMYJ/WUvqFie9qXrNC2MeRRYw7TG/q7DRjZg=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "92f4890bd150fc9d97b61b3583680c0524a8cafe", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "type": "github" + } + }, "flake-compat": { "locked": { "lastModified": 1733328505, @@ -107,25 +232,7 @@ }, "flake-utils": { "inputs": { - "systems": "systems" - }, - "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_2": { - "inputs": { - "systems": "systems_2" + "systems": "systems_4" }, "locked": { "lastModified": 1710146030, @@ -141,9 +248,9 @@ "type": "github" } }, - "flake-utils_3": { + "flake-utils_2": { "inputs": { - "systems": "systems_4" + "systems": "systems_6" }, "locked": { "lastModified": 1710146030, @@ -158,9 +265,30 @@ "type": "indirect" } }, + "flake-utils_3": { + "inputs": { + "systems": "systems_7" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "flake-utils_4": { "inputs": { - "systems": "systems_5" + "systems": [ + "stylix", + "systems" + ] }, "locked": { "lastModified": 1731533236, @@ -178,7 +306,25 @@ }, "flake-utils_5": { "inputs": { - "systems": "systems_6" + "systems": "systems_9" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_6": { + "inputs": { + "systems": "systems_10" }, "locked": { "lastModified": 1731533236, @@ -211,24 +357,50 @@ "type": "github" } }, - "ghostty": { - "inputs": { - "flake-compat": "flake-compat_3", - "nixpkgs-stable": "nixpkgs-stable", - "nixpkgs-unstable": "nixpkgs-unstable", - "zig": "zig" - }, + "fromYaml": { + "flake": false, "locked": { - "lastModified": 1738275804, - "narHash": "sha256-n9cSCLlWjc8Bc5QyZYLo5+c6MfTZjgDpUGx/FGxBiY8=", - "owner": "ghostty-org", - "repo": "ghostty", - "rev": "c5508e7d1922842ecd3160ea73b97da1282168b3", + "lastModified": 1731966426, + "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "106af9e2f715e2d828df706c386a685698f3223b", "type": "github" }, "original": { - "owner": "ghostty-org", - "repo": "ghostty", + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "stylix", + "flake-compat" + ], + "gitignore": "gitignore_2", + "nixpkgs": [ + "stylix", + "nixpkgs" + ], + "nixpkgs-stable": [ + "stylix", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1731363552, + "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", "type": "github" } }, @@ -254,6 +426,45 @@ "type": "github" } }, + "gitignore_2": { + "inputs": { + "nixpkgs": [ + "stylix", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gnome-shell": { + "flake": false, + "locked": { + "lastModified": 1732369855, + "narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "dadd58f630eeea41d645ee225a63f719390829dc", + "type": "github" + }, + "original": { + "owner": "GNOME", + "ref": "47.2", + "repo": "gnome-shell", + "type": "github" + } + }, "harfbuzz": { "flake": false, "locked": { @@ -292,21 +503,338 @@ "type": "github" } }, - "home-manager-unstable": { + "hyprgraphics": { "inputs": { - "nixpkgs": "nixpkgs_2" + "hyprutils": [ + "hyprlock", + "hyprutils" + ], + "nixpkgs": [ + "hyprlock", + "nixpkgs" + ], + "systems": [ + "hyprlock", + "systems" + ] }, "locked": { - "lastModified": 1738378034, - "narHash": "sha256-mldSa2NhDlnjqeSSFTNnkXIDrCLltpJfhrHUMBBKEiY=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "801ddd8693481866c2cfb1efd44ddbae778ea572", + "lastModified": 1737634889, + "narHash": "sha256-9JZE3KxcXOqZH9zs3UeadngDiK/yIACTiAR8HSA/TNI=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "0d77b4895ad5f1bb3b0ee43103a5246c58b65591", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "home-manager", + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hypridle": { + "inputs": { + "hyprland-protocols": "hyprland-protocols", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems" + }, + "locked": { + "lastModified": 1737984253, + "narHash": "sha256-h4KWLijrHK7rugD2oV8JfVgloD+xPW1jCVT2B7K+bjQ=", + "owner": "hyprwm", + "repo": "hypridle", + "rev": "15ca902b2cb845a8a5378ec022c11a4a77155b83", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hypridle", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hypridle", + "nixpkgs" + ], + "systems": [ + "hypridle", + "systems" + ] + }, + "locked": { + "lastModified": 1737556638, + "narHash": "sha256-laKgI3mr2qz6tas/q3tuGPxMdsGhBi/w+HO+hO2f1AY=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "4c75dd5c015c8a0e5a34c6d02a018a650f57feb5", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprlang": { + "inputs": { + "hyprutils": [ + "hypridle", + "hyprutils" + ], + "nixpkgs": [ + "hypridle", + "nixpkgs" + ], + "systems": [ + "hypridle", + "systems" + ] + }, + "locked": { + "lastModified": 1737634606, + "narHash": "sha256-W7W87Cv6wqZ9PHegI6rH1+ve3zJPiyevMFf0/HwdbCQ=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "f41271d35cc0f370d300413d756c2677f386af9d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprlang_2": { + "inputs": { + "hyprutils": [ + "hyprlock", + "hyprutils" + ], + "nixpkgs": [ + "hyprlock", + "nixpkgs" + ], + "systems": [ + "hyprlock", + "systems" + ] + }, + "locked": { + "lastModified": 1737634606, + "narHash": "sha256-W7W87Cv6wqZ9PHegI6rH1+ve3zJPiyevMFf0/HwdbCQ=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "f41271d35cc0f370d300413d756c2677f386af9d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprlock": { + "inputs": { + "hyprgraphics": "hyprgraphics", + "hyprlang": "hyprlang_2", + "hyprutils": "hyprutils_2", + "hyprwayland-scanner": "hyprwayland-scanner_2", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_2" + }, + "locked": { + "lastModified": 1738607315, + "narHash": "sha256-7oQZNdMzMGbnCNwUhNtjKo2iUVq8xKi4B5FdCgP217s=", + "owner": "hyprwm", + "repo": "hyprlock", + "rev": "465148ac21a0c79dd897258be814d5b00f434a5a", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlock", + "type": "github" + } + }, + "hyprpicker": { + "inputs": { + "hyprutils": "hyprutils_3", + "hyprwayland-scanner": "hyprwayland-scanner_3", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_3" + }, + "locked": { + "lastModified": 1737635601, + "narHash": "sha256-/Jb/9HqC5Ou5JtsLHY2MJtj/c0aDG3kaeh4RLvc2X2U=", + "owner": "hyprwm", + "repo": "hyprpicker", + "rev": "c3777320b358bb28a0f2112441377fe452d77ea8", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprpicker", + "type": "github" + } + }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hypridle", + "nixpkgs" + ], + "systems": [ + "hypridle", + "systems" + ] + }, + "locked": { + "lastModified": 1737632363, + "narHash": "sha256-X9I8POSlHxBVjD0fiX1O2j7U9Zi1+4rIkrsyHP0uHXY=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "006620eb29d54ea9086538891404c78563d1bae1", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprutils_2": { + "inputs": { + "nixpkgs": [ + "hyprlock", + "nixpkgs" + ], + "systems": [ + "hyprlock", + "systems" + ] + }, + "locked": { + "lastModified": 1737978343, + "narHash": "sha256-TfFS0HCEJh63Kahrkp1h9hVDMdLU8a37Zz+IFucxyfA=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "6a8bc9d2a4451df12f5179dc0b1d2d46518a90ab", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprutils_3": { + "inputs": { + "nixpkgs": [ + "hyprpicker", + "nixpkgs" + ], + "systems": [ + "hyprpicker", + "systems" + ] + }, + "locked": { + "lastModified": 1737632363, + "narHash": "sha256-X9I8POSlHxBVjD0fiX1O2j7U9Zi1+4rIkrsyHP0uHXY=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "006620eb29d54ea9086538891404c78563d1bae1", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hypridle", + "nixpkgs" + ], + "systems": [ + "hypridle", + "systems" + ] + }, + "locked": { + "lastModified": 1735493474, + "narHash": "sha256-fktzv4NaqKm94VAkAoVqO/nqQlw+X0/tJJNAeCSfzK4=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "de913476b59ee88685fdc018e77b8f6637a2ae0b", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "hyprwayland-scanner_2": { + "inputs": { + "nixpkgs": [ + "hyprlock", + "nixpkgs" + ], + "systems": [ + "hyprlock", + "systems" + ] + }, + "locked": { + "lastModified": 1735493474, + "narHash": "sha256-fktzv4NaqKm94VAkAoVqO/nqQlw+X0/tJJNAeCSfzK4=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "de913476b59ee88685fdc018e77b8f6637a2ae0b", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "hyprwayland-scanner_3": { + "inputs": { + "nixpkgs": [ + "hyprpicker", + "nixpkgs" + ], + "systems": [ + "hyprpicker", + "systems" + ] + }, + "locked": { + "lastModified": 1735493474, + "narHash": "sha256-fktzv4NaqKm94VAkAoVqO/nqQlw+X0/tJJNAeCSfzK4=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "de913476b59ee88685fdc018e77b8f6637a2ae0b", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", "type": "github" } }, @@ -320,15 +848,15 @@ "pyproject-build-systems": "pyproject-build-systems", "pyproject-nix": "pyproject-nix", "systemd-nix": "systemd-nix", - "systems": "systems_3", + "systems": "systems_5", "uv2nix": "uv2nix" }, "locked": { - "lastModified": 1738374517, - "narHash": "sha256-SHQbbTJwU5cGbU+5Xws1ZGi36p44Rk4QggSr3cdSCj4=", + "lastModified": 1738568547, + "narHash": "sha256-Os/8eArlEtVbMve0a/leEW9NNIAtflk3AHPOtd/B0aU=", "owner": "isd-project", "repo": "isd", - "rev": "81a03f70adf983390f0923cfa4b71d875c002f02", + "rev": "c3653055824eb9cdf9b1d0e1c239c434c2f62696", "type": "github" }, "original": { @@ -337,6 +865,28 @@ "type": "github" } }, + "kmonad": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "dir": "nix", + "lastModified": 1738565510, + "narHash": "sha256-xmr17yq6/wlcF/69GkRlKKkWAUC8ZjPeZMIuHdJnpfk=", + "owner": "kmonad", + "repo": "kmonad", + "rev": "7784e590405429f5105d9d038cbe13f887160805", + "type": "github" + }, + "original": { + "dir": "nix", + "owner": "kmonad", + "repo": "kmonad", + "type": "github" + } + }, "libpng": { "flake": false, "locked": { @@ -383,11 +933,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1738348222, - "narHash": "sha256-SsDS/GdQOZ4z8hWOlOQAgQMC1ColTgCbl2G4tFpzKY4=", + "lastModified": 1738579367, + "narHash": "sha256-820QsR/C9+Gyn3v65LHNwwW7KxSA6u6MQtky3SUrZ3A=", "owner": "YaLTeR", "repo": "niri", - "rev": "a0e2a15c60162e4f0a589fb5f0ce0899bce213b5", + "rev": "553b1ba85256e2cb290e8a67f709a14e603606bc", "type": "github" }, "original": { @@ -398,9 +948,9 @@ }, "nix-appimage": { "inputs": { - "flake-compat": "flake-compat_4", - "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_3" + "flake-compat": "flake-compat_3", + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs_2" }, "locked": { "lastModified": 1725758175, @@ -463,11 +1013,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1737751639, - "narHash": "sha256-ZEbOJ9iT72iwqXsiEMbEa8wWjyFvRA9Ugx8utmYbpz4=", + "lastModified": 1738471961, + "narHash": "sha256-cgXDFrplNGs7bCVzXhRofjD8oJYqqXGcmUzXjHmip6Y=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "dfad538f751a5aa5d4436d9781ab27a6128ec9d4", + "rev": "537286c3c59b40311e5418a180b38034661d2536", "type": "github" }, "original": { @@ -492,45 +1042,13 @@ "type": "github" } }, - "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-unstable": { "locked": { - "lastModified": 1733229606, - "narHash": "sha256-FLYY5M0rpa5C2QAE3CKLYAM6TwbKicdRK6qNrSHlNrE=", + "lastModified": 1738410390, + "narHash": "sha256-xvTo0Aw0+veek7hvEVLzErmJyQkEcRk6PSR4zsRQFEc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "566e53c2ad750c84f6d31f9ccb9d00f823165550", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable_2": { - "locked": { - "lastModified": 1738142207, - "narHash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "9d3ae807ebd2981d593cddd0080856873139aa40", + "rev": "3a228057f5b619feb3186e986dbe76278d707b6e", "type": "github" }, "original": { @@ -541,22 +1059,6 @@ } }, "nixpkgs_2": { - "locked": { - "lastModified": 1737885589, - "narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { "locked": { "lastModified": 1725103162, "narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=", @@ -572,13 +1074,13 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_3": { "locked": { - "lastModified": 1738163270, - "narHash": "sha256-B/7Y1v4y+msFFBW1JAdFjNvVthvNdJKiN6EGRPnqfno=", + "lastModified": 1738435198, + "narHash": "sha256-5+Hmo4nbqw8FrW85FlNm4IIrRnZ7bn0cmXlScNsNRLo=", "owner": "nixos", "repo": "nixpkgs", - "rev": "59e618d90c065f55ae48446f307e8c09565d5ab0", + "rev": "f6687779bf4c396250831aa5a32cbfeb85bb07a3", "type": "github" }, "original": { @@ -590,7 +1092,7 @@ }, "paperwm": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_2", "nixpkgs": [ "nixpkgs" ] @@ -682,22 +1184,43 @@ "root": { "inputs": { "affinity-nix": "affinity-nix", - "ghostty": "ghostty", "home-manager": "home-manager", - "home-manager-unstable": "home-manager-unstable", + "hypridle": "hypridle", + "hyprlock": "hyprlock", + "hyprpicker": "hyprpicker", "isd": "isd", + "kmonad": "kmonad", "musnix": "musnix", "niri": "niri", "nix-flatpak": "nix-flatpak", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_4", - "nixpkgs-unstable": "nixpkgs-unstable_2", + "nixpkgs": "nixpkgs_3", + "nixpkgs-unstable": "nixpkgs-unstable", "paperwm": "paperwm", + "shikane": "shikane", "sops-nix": "sops-nix", + "stylix": "stylix", "wezterm": "wezterm", "yazi": "yazi" } }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1716572615, + "narHash": "sha256-mVUbarr4PNjERDk+uaoitPq7eL7De0ythZehezAzug8=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "a55e8bf09cdfc25066b77823cc98976a51af8a8b", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, "rust-overlay": { "inputs": { "nixpkgs": [ @@ -761,6 +1284,29 @@ "type": "github" } }, + "shikane": { + "inputs": { + "crane": "crane", + "fenix": "fenix", + "flake-utils": "flake-utils_3", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1726140768, + "narHash": "sha256-vTALSsk6/No07QgECgyd0YavXIH/bXOtKev9C6NqyA0=", + "ref": "refs/heads/master", + "rev": "ca9fa2489a83a096227f2a1bfb62ee80aad9b607", + "revCount": 232, + "type": "git", + "url": "https://gitlab.com/w0lff/shikane" + }, + "original": { + "type": "git", + "url": "https://gitlab.com/w0lff/shikane" + } + }, "sops-nix": { "inputs": { "nixpkgs": [ @@ -781,6 +1327,43 @@ "type": "github" } }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-helix": "base16-helix", + "base16-vim": "base16-vim", + "firefox-gnome-theme": "firefox-gnome-theme", + "flake-compat": "flake-compat_4", + "flake-utils": "flake-utils_4", + "git-hooks": "git-hooks", + "gnome-shell": "gnome-shell", + "home-manager": [ + "home-manager" + ], + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_8", + "tinted-foot": "tinted-foot", + "tinted-kitty": "tinted-kitty", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" + }, + "locked": { + "lastModified": 1736493302, + "narHash": "sha256-6+z7mOa4d4+UH+do71u6WSugLWWiC1zBzYB+N5VYblQ=", + "owner": "donovanglover", + "repo": "stylix", + "rev": "483505ec60470cfd7776a00825d41590e8bde4f1", + "type": "github" + }, + "original": { + "owner": "donovanglover", + "repo": "stylix", + "type": "github" + } + }, "systemd-nix": { "inputs": { "nixpkgs": [ @@ -803,6 +1386,21 @@ } }, "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_10": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -819,16 +1417,16 @@ }, "systems_2": { "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default", + "repo": "default-linux", "type": "github" } }, @@ -864,16 +1462,16 @@ }, "systems_5": { "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default", + "repo": "default-linux", "type": "github" } }, @@ -892,6 +1490,117 @@ "type": "github" } }, + "systems_7": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_8": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_9": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "tinted-foot": { + "flake": false, + "locked": { + "lastModified": 1726913040, + "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + } + }, + "tinted-kitty": { + "flake": false, + "locked": { + "lastModified": 1716423189, + "narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=", + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "eb39e141db14baef052893285df9f266df041ff8", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "eb39e141db14baef052893285df9f266df041ff8", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1729501581, + "narHash": "sha256-1ohEFMC23elnl39kxWnjzH1l2DFWWx4DhFNNYDTYt54=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "f0e7f7974a6441033eb0a172a0342e96722b4f14", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", + "type": "github" + } + }, + "tinted-zed": { + "flake": false, + "locked": { + "lastModified": 1725758778, + "narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=", + "owner": "tinted-theming", + "repo": "base16-zed", + "rev": "122c9e5c0e6f27211361a04fae92df97940eccf9", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-zed", + "type": "github" + } + }, "uv2nix": { "inputs": { "nixpkgs": [ @@ -919,7 +1628,7 @@ }, "wezterm": { "inputs": { - "flake-utils": "flake-utils_4", + "flake-utils": "flake-utils_5", "freetype2": "freetype2", "harfbuzz": "harfbuzz", "libpng": "libpng", @@ -947,7 +1656,7 @@ }, "yazi": { "inputs": { - "flake-utils": "flake-utils_5", + "flake-utils": "flake-utils_6", "nixpkgs": [ "nixpkgs" ], @@ -967,31 +1676,6 @@ "type": "github" } }, - "zig": { - "inputs": { - "flake-compat": [ - "ghostty" - ], - "flake-utils": "flake-utils", - "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" - } - }, "zlib": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 3e0376b..59a3942 100644 --- a/flake.nix +++ b/flake.nix @@ -1,36 +1,56 @@ # flake.nix { - description = "My Home Manager configuration"; - inputs = { nixos-hardware.url = "github:NixOS/nixos-hardware"; - nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; + nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; }; - home-manager-unstable.url = "github:nix-community/home-manager"; - nix-flatpak.url = "github:gmodena/nix-flatpak"; # unstable branch - # emacs-overlay = { - # url = "github:nix-community/emacs-overlay"; - # inputs.nixpkgs.follows = "nixpkgs"; - # }; + stylix = { + url = "github:donovanglover/stylix"; + + inputs = { + nixpkgs.follows = "nixpkgs"; + home-manager.follows = "home-manager"; + }; + }; yazi = { url = "github:sxyazi/yazi"; inputs.nixpkgs.follows = "nixpkgs"; }; - # kmonad = { - # url = "git+https://github.com/kmonad/kmonad?submodules=1&dir=nix"; - # inputs.nixpkgs.follows = "nixpkgs"; - # }; + shikane = { + url = "git+https://gitlab.com/w0lff/shikane"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + kmonad = { + url = "github:kmonad/kmonad?dir=nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + hyprpicker = { + url = "github:hyprwm/hyprpicker"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + hyprlock = { + url = "github:hyprwm/hyprlock"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + hypridle = { + url = "github:hyprwm/hypridle"; + inputs.nixpkgs.follows = "nixpkgs"; + }; musnix = { url = "github:musnix/musnix"; @@ -47,11 +67,6 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - ghostty = { - url = "github:ghostty-org/ghostty"; - - }; - affinity-nix = { url = "github:mrshmllow/affinity-nix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -101,14 +116,13 @@ modules = [ sops-nix.nixosModules.sops inputs.nix-flatpak.nixosModules.nix-flatpak - # inputs.kmonad.nixosModules.default + inputs.kmonad.nixosModules.default musnix.nixosModules.musnix ./system/eddie/configuration.nix ]; }; }; - homeConfigurations = { "emenel" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance @@ -118,6 +132,7 @@ modules = [ inputs.nix-flatpak.homeManagerModules.nix-flatpak + inputs.stylix.homeManagerModules.stylix sops-nix.homeManagerModules.sops ./home/home.nix ]; diff --git a/home/akira.png b/home/akira.png new file mode 100644 index 0000000..b763c21 Binary files /dev/null and b/home/akira.png differ diff --git a/home/home.nix b/home/home.nix index 1322b69..dd07c0c 100644 --- a/home/home.nix +++ b/home/home.nix @@ -1,4 +1,4 @@ -{ config, pkgs, inputs, outputs, ... }: +{ config, lib, pkgs, inputs, outputs, ... }: { nixpkgs = { @@ -6,10 +6,7 @@ outputs.overlays.additions outputs.overlays.modifications outputs.overlays.unstable-packages - (import (builtins.fetchTarball { - url = "https://github.com/nix-community/emacs-overlay/archive/master.tar.gz"; - sha256 = "0cfz3178ija6s37pa5rdfmqpcqj38gchn1y9q4iln2jrqh8v600i"; - })) + outputs.overlays.emacs-overlay ]; config = { @@ -22,6 +19,7 @@ inputs.affinity-nix.packages.x86_64-linux.photo inputs.affinity-nix.packages.x86_64-linux.publisher inputs.affinity-nix.packages.x86_64-linux.designer + inputs.shikane.packages.x86_64-linux.default guix unstable.thonny inputs.isd.packages.x86_64-linux.default @@ -36,6 +34,7 @@ pinentry gcr gnutar + libnotify unzip zip stdenv @@ -47,7 +46,6 @@ readline gnupg imagemagick - # gcc gnutls gettext xorg.libX11 @@ -73,7 +71,7 @@ gst_all_1.gstreamer alsa-oss powertop - + unstable.hypridle age sops @@ -84,10 +82,6 @@ util-linux coreutils binutils - # libgcc - # cmake - # libuv.dev - # SDL2.dev protonplus ispell (aspellWithDicts (dicts: with dicts; [ en en-computers en-science es fr ])) @@ -96,9 +90,6 @@ libappimage transmission_4-gtk lsof - # ruby - # janet - # jpm guile python311 python311Packages.pip @@ -114,7 +105,6 @@ ruff (sbcl.withPackages (ps: with ps; [ - # asdf_3_3 cffi arrow-macros alexandria @@ -140,7 +130,6 @@ rustup shfmt html-tidy - tree-sitter libsecret samba4Full shellcheck @@ -218,7 +207,7 @@ gnome-photos gnome-keyring ulauncher - + wl-mirror unstable.nwg-look soundconverter gtop @@ -284,10 +273,8 @@ resources carla switcheroo - # audacity tenacity supercollider-with-plugins - #unstable.bitwig-studio bitwig-studio-beta blender davinci-resolve-studio @@ -311,7 +298,6 @@ openscad-lsp picard evolutionWithPlugins - mpv plugdata pavucontrol qpwgraph @@ -326,9 +312,12 @@ unstable.playerctl mioctl unstable.door-knocker - unstable.hyprpicker + inputs.hyprpicker.packages.x86_64-linux.default + farge unstable.halloy paleta + tree-sitter + (tree-sitter.withPlugins (_: tree-sitter.allGrammars)) # Audio plugins (LV2, VST2, VST3, LADSPA) eq10q @@ -408,10 +397,10 @@ stateVersion = "24.05"; }; - # gtk.cursorTheme = { - # name = "Bibata-Modern-Classic"; - # package = pkgs.bibata-cursors; - # }; + gtk.cursorTheme = { + name = "Bibata-Modern-Classic"; + package = pkgs.bibata-cursors; + }; fonts.fontconfig = { enable = true; @@ -441,31 +430,27 @@ }; programs = { - home-manager.enable = true; - fuzzel = { + home-manager = { enable = true; - settings = { - main = { - terminal = "${pkgs.wezterm}/bin/wezterm"; - dpi-aware = true; - }; - border = { - radius = 8; - width = 2; - }; - colors = { - background="1e1e2edd"; - text="cdd6f4ff"; - prompt="bac2deff"; - placeholder="7f849cff"; - input="cdd6f4ff"; - match="f5c2e7ff"; - selection="585b70ff"; - selection-text="cdd6f4ff"; - selection-match="f5c2e7ff"; - counter="7f849cff"; - border="f5c2e7ff"; + }; + mpv = { + enable = true; + package = (pkgs.unstable.mpv-unwrapped.wrapper { + scripts = with pkgs.unstable.mpvScripts; [ + thumbfast + modernz + ]; + + mpv = pkgs.unstable.mpv-unwrapped.override { + waylandSupport = true; + ffmpeg = pkgs.ffmpeg-full; }; + }); + config = { + osc = "no"; + profile = "high-quality"; + ytdl-format = "bestvideo+bestaudio"; + cache-default = 4000000; }; }; direnv = { @@ -476,17 +461,6 @@ enable = true; enableFishIntegration = true; package = inputs.yazi.packages.x86_64-linux.default; - keymap = { - manager.prepend_keymap = [ - { - on = ""; - run = ''shell 'ripdrag "$@" -x 2>/dev/null &' --confirm''; - } - ]; - }; - settings = { - - }; }; fish = { enable = true; @@ -525,6 +499,7 @@ package = ((pkgs.emacsPackagesFor pkgs.emacs29-pgtk).emacsWithPackages ( epkgs: [ epkgs.vterm + epkgs.all-the-icons epkgs.mu4e epkgs.sly epkgs.sly-quicklisp @@ -534,8 +509,8 @@ epkgs.nixpkgs-fmt epkgs.nixfmt epkgs.parinfer-rust-mode - epkgs.tree-sitter-langs - epkgs.treesit-grammars.with-all-grammars + epkgs.manualPackages.tree-sitter-langs + epkgs.manualPackages.treesit-grammars.with-all-grammars epkgs.pretty-sha-path epkgs.pdf-tools ] @@ -547,11 +522,6 @@ thefuck = { enable = true; }; - ghostty = { - enable = true; - package = inputs.ghostty.packages.x86_64-linux.ghostty; - enableFishIntegration = true; - }; wezterm = { enable = true; package = inputs.wezterm.packages.${pkgs.system}.default; @@ -616,40 +586,10 @@ wlogout = { enable = true; }; - swaylock = { + hyprlock = { enable = true; - settings = { - color="000000"; - bs-hl-color="f5e0dc"; - caps-lock-bs-hl-color="f5e0dc"; - caps-lock-key-hl-color="a6e3a1"; - inside-color="00000000"; - inside-clear-color="00000000"; - inside-caps-lock-color="00000000"; - inside-ver-color="00000000"; - inside-wrong-color="00000000"; - key-hl-color="a6e3a1"; - layout-bg-color="00000000"; - layout-border-color="00000000"; - layout-text-color="cdd6f4"; - line-color="00000000"; - line-clear-color="00000000"; - line-caps-lock-color="00000000"; - line-ver-color="00000000"; - line-wrong-color="00000000"; - ring-color="b4befe"; - ring-clear-color="f5e0dc"; - ring-caps-lock-color="fab387"; - ring-ver-color="89b4fa"; - ring-wrong-color="eba0ac"; - separator-color="00000000"; - text-color="cdd6f4"; - text-clear-color="f5e0dc"; - text-caps-lock-color="fab387"; - text-ver-color="89b4fa"; - text-wrong-color="eba0ac"; - }; }; + waybar = { enable = true; package = pkgs.unstable.waybar; @@ -674,7 +614,7 @@ dconf.settings = { "org/gnome/desktop/background" = { picture-options = "none"; - primary-color = "#333333"; + primary-color = "#000000"; }; "org/gnome/desktop/interface" = { @@ -711,25 +651,12 @@ }; services = { - swayidle = { - enable = true; - extraArgs = [ "-w" ]; - timeouts = [ - { timeout = 120; command = "${pkgs.swaylock}/bin/swaylock -fF"; } - { timeout = 300; command = "${pkgs.systemd}/bin/systemctl suspend"; } - ]; - events = [ - { event = "before-sleep"; command = "${pkgs.swaylock}/bin/swaylock -fF"; } - { event = "lock"; command = "lock"; } - ]; - }; playerctld = { enable = true; package = pkgs.unstable.playerctl; }; mako = { enable = true; - defaultTimeout = 10000; }; flatpak.enable = true; syncthing = { @@ -757,8 +684,8 @@ epkgs.nixpkgs-fmt epkgs.nixfmt epkgs.parinfer-rust-mode - epkgs.tree-sitter-langs - epkgs.treesit-grammars.with-all-grammars + epkgs.manualPackages.tree-sitter-langs + epkgs.manualPackages.treesit-grammars.with-all-grammars epkgs.pretty-sha-path epkgs.pdf-tools ] @@ -771,6 +698,17 @@ }; }; + # stylix = { + # enable = true; + # base16Scheme = "${pkgs.base16-schemes}/share/themes/oxocarbon-dark.yaml"; + # image = ./akira.png; + # cursor = { + # package = pkgs.bibata-cursors; + # name = "Bibtata-Modern-Classic"; + # size = 24; + # }; + # }; + xdg.systemDirs.data = [ "/home/emenel/.local/share/applications/wine/Programs" "/home/emenel/.local/share/applications" @@ -792,31 +730,11 @@ GSK_RENDERER = "ngl"; MOZ_ENABLE_WAYLAND = 1; }; - services = { - # syncthingtray = { - # Service.ExecStart = lib.mkForce "${pkgs.syncthingtray}/bin/syncthingtray --wait"; - # }; - - # ulauncher = { - # Unit = { - # Description = "Start Ulauncher"; - # After = "graphical-session.target"; - # }; - - # Install = { - # WantedBy = [ "graphical-session.target" ]; - # }; - - # Service = { - # Restart = "always"; - # RestartSec = 1; - # ExecStart = "${pkgs.ulauncher}/bin/ulauncher --hide-window"; - # }; - # }; - }; }; # moving files! + xdg.configFile."mako".source = ../dotfiles/dot_config/mako; + xdg.configFile."hypr".source = ../dotfiles/dot_config/hypr; xdg.configFile."halloy/config.toml".source = ../dotfiles/dot_config/halloy/config.toml; xdg.configFile."waybar".source = ../dotfiles/dot_config/waybar; xdg.configFile."just/justfile".source = ../dotfiles/dot_config/just/justfile; @@ -826,6 +744,7 @@ xdg.configFile."git".source = ../dotfiles/dot_config/git; xdg.configFile."rbw".source = ../dotfiles/dot_config/rbw; xdg.configFile."niri/config.kdl".source = ../dotfiles/dot_config/niri/config.kdl; + xdg.configFile."shikane".source = ../dotfiles/dot_config/shikane; home.file.".ssh/config".source = ../dotfiles/dot_ssh/config; home.file.".npmrc".source = ../dotfiles/dot_npmrc; home.file.".vst3/yabridge/yabridge.toml".source = ../dotfiles/dot_vst3/yabridge.toml; @@ -839,6 +758,10 @@ source = ../dotfiles/dot_config/fish/completions; recursive = true; }; + xdg.configFile."yazi" = { + source = ../dotfiles/dot_config/yazi; + recursive = true; + }; xdg.configFile."emacs".enable = false; @@ -850,6 +773,7 @@ source = ../dotfiles/dot_local/bin; recursive = true; }; + home.file.".local/share/flf".source = ../dotfiles/dot_local/share/flf; home.file.".local/share/The Usual Suspects/Vavra" = { diff --git a/overlays/default.nix b/overlays/default.nix index 438efe7..60e744c 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -5,6 +5,8 @@ modifications = final: prev: { + networkmanager = prev.pkgs.unstable.networkmanager; + ulauncher = prev.ulauncher.overrideAttrs (old: { propagatedBuildInputs = with prev.python3Packages; old.propagatedBuildInputs @@ -45,6 +47,11 @@ }); }; + emacs-overlay = (import (builtins.fetchTarball { + url = "https://github.com/nix-community/emacs-overlay/archive/master.tar.gz"; + sha256 = "1dqzv0rlw4vsyr0h0879ayglcma8qk5m24mf89c6zd7x0x2ivq75"; + })); + # When applied, the unstable nixpkgs set (declared in the flake inputs) will # be accessible through 'pkgs.unstable' unstable-packages = final: _prev: { diff --git a/packages/bitwig-beta/bitwig-studio-beta.nix b/packages/bitwig-beta/bitwig-studio-beta.nix index cfd53c2..3ba215e 100644 --- a/packages/bitwig-beta/bitwig-studio-beta.nix +++ b/packages/bitwig-beta/bitwig-studio-beta.nix @@ -32,12 +32,12 @@ stdenv.mkDerivation rec { pname = "bitwig-studio-unwrapped"; - version = "5.3-beta-6"; + version = "5.3-beta-7"; src = fetchurl { name = "bitwig-studio-${version}.deb"; - url = "https://downloads-secure.bitwig.com/5.3%20Beta%206/bitwig-studio-5.3-beta-6.deb?__token__=st=1737819113.0~exp=1737819713.0~hmac=4f89ac2fb395e08a914fe57eb46d2313b2d5288f981d0f7e2da9089325c4c099&source_url=/dl/Bitwig%20Studio/5.3%20Beta%206/installer_linux/"; - sha256 = "sha256-DE5qWSAcOJHThAXdQouOVRkFNhuzZD9j8gphByaQEis="; + url = "https://downloads-secure.bitwig.com/5.3%20Beta%207/bitwig-studio-5.3-beta-7.deb?__token__=st=1738511951.0~exp=1738512551.0~hmac=06d510d143491f9bf2444aec8b2876ea606d9208e2753dcf15710fb3c2ceb0d3&source_url=/dl/Bitwig%20Studio/5.3%20Beta%207/installer_linux/"; + sha256 = "sha256-CqDDz/N3Cm4BqkOI6PYACkyXZkqIRV7A3G5q7ekrMaE="; }; diff --git a/packages/the-usual-suspects/nodal-red/nodal-red.nix b/packages/the-usual-suspects/nodal-red/nodal-red.nix index dc15db2..89fbe54 100644 --- a/packages/the-usual-suspects/nodal-red/nodal-red.nix +++ b/packages/the-usual-suspects/nodal-red/nodal-red.nix @@ -4,8 +4,8 @@ stdenv.mkDerivation rec { pname = "nodal-red"; version = "latest"; src = fetchurl { - url = "https://futurenoize.com/dsp56300/builds/nodalred2x/beta/DSP56300Emu-1.4.1-Linux_x86_64-NodalRed2x-CLAP.zip"; - sha256 = "sha256-grCZvICiSJTCuoZ/dbaDqxHoAgiVK/BKhvqvvIrlAM8="; + url = "https://dsp56300.com/builds/nodalred2x/beta/DSP56300Emu-1.4.2-Linux_x86_64-NodalRed2x-CLAP.zip"; + sha256 = "sha256-7F+vdZTdvUIeERk7WFw7h1w00JPxwA5e4Z/LIEAhS84="; }; nativeBuildInputs = [ makeWrapper unzip autoPatchelfHook ]; buildInputs = with pkgs; [ diff --git a/packages/the-usual-suspects/osirus/osirus.nix b/packages/the-usual-suspects/osirus/osirus.nix index f6aa3e1..b9ff46a 100644 --- a/packages/the-usual-suspects/osirus/osirus.nix +++ b/packages/the-usual-suspects/osirus/osirus.nix @@ -4,8 +4,8 @@ stdenv.mkDerivation rec { pname = "osirus"; version = "latest"; src = fetchurl { - url = "https://futurenoize.com/dsp56300/builds/osirus/DSP56300Emu-1.4.1-Linux_x86_64-Osirus-CLAP.zip"; - sha256 = "sha256-+LkyQAaW/yTaLUxiou/Srk9KAhJDQ660u5P9584o4JU="; + url = "https://dsp56300.com/builds/osirus/beta/DSP56300Emu-1.4.2-Linux_x86_64-Osirus-CLAP.zip"; + sha256 = "sha256-JHZOsoDMS7RpVIigFjyZKCDzsyIergopWblyQ6wVL2k="; }; nativeBuildInputs = [ makeWrapper unzip autoPatchelfHook ]; buildInputs = with pkgs; [ diff --git a/packages/the-usual-suspects/ostirus/ostirus.nix b/packages/the-usual-suspects/ostirus/ostirus.nix index a9bea2f..9aea2ff 100644 --- a/packages/the-usual-suspects/ostirus/ostirus.nix +++ b/packages/the-usual-suspects/ostirus/ostirus.nix @@ -4,8 +4,8 @@ stdenv.mkDerivation rec { pname = "ostirus"; version = "latest"; src = fetchurl { - url = "https://futurenoize.com/dsp56300/builds/ostirus/DSP56300Emu-1.4.1-Linux_x86_64-OsTIrus-CLAP.zip"; - sha256 = "sha256-0qMqeT5L87AuGgj4UmumhE5YYL4Zba6Ev/NHoemkjW8="; + url = "https://dsp56300.com/builds/ostirus/beta/DSP56300Emu-1.4.2-Linux_x86_64-OsTIrus-CLAP.zip"; + sha256 = "sha256-+Tu3YkTAj0LiFm70HW7DEQSeu3wYW29X/02DcL5aXT0="; }; nativeBuildInputs = [ makeWrapper unzip autoPatchelfHook ]; buildInputs = with pkgs; [ diff --git a/packages/the-usual-suspects/vavra/vavra.nix b/packages/the-usual-suspects/vavra/vavra.nix index 7793071..a0bfcef 100644 --- a/packages/the-usual-suspects/vavra/vavra.nix +++ b/packages/the-usual-suspects/vavra/vavra.nix @@ -4,8 +4,8 @@ stdenv.mkDerivation rec { pname = "vavra"; version = "latest"; src = fetchurl { - url = "https://futurenoize.com/dsp56300/builds/vavra/DSP56300Emu-1.4.1-Linux_x86_64-Vavra-CLAP.zip"; - sha256 = "sha256-dWEyzdLyMdkx3XeH4q9U8ko7aslfRROlsJI1DYgLBA4="; + url = "https://dsp56300.com/builds/vavra/beta/DSP56300Emu-1.4.2-Linux_x86_64-Vavra-CLAP.zip"; + sha256 = "sha256-oA+RVI6/CYgOExW/ITgthdJqIEr57qe2byfCHXRqSnU="; }; nativeBuildInputs = [ makeWrapper unzip autoPatchelfHook ]; buildInputs = with pkgs; [ diff --git a/packages/the-usual-suspects/xenia/xenia.nix b/packages/the-usual-suspects/xenia/xenia.nix index 65e32e1..3a9986d 100644 --- a/packages/the-usual-suspects/xenia/xenia.nix +++ b/packages/the-usual-suspects/xenia/xenia.nix @@ -4,8 +4,8 @@ stdenv.mkDerivation rec { pname = "xenia"; version = "latest"; src = fetchurl { - url = "https://futurenoize.com/dsp56300/builds/xenia/DSP56300Emu-1.4.1-Linux_x86_64-Xenia-CLAP.zip"; - sha256 = "sha256-E+nSzawztU6L8Cxp3o59TG+oUJkvdZNcn8fqopbj7Ac="; + url = "https://dsp56300.com/builds/xenia/beta/DSP56300Emu-1.4.2-Linux_x86_64-Xenia-CLAP.zip"; + sha256 = "sha256-ANM8teo324b+lsWfJVMhZfqEnNIN1JTGw7D/AAkCw0s="; }; nativeBuildInputs = [ makeWrapper unzip autoPatchelfHook ]; buildInputs = with pkgs; [ diff --git a/system/eddie/configuration.nix b/system/eddie/configuration.nix index 480383a..deab53a 100644 --- a/system/eddie/configuration.nix +++ b/system/eddie/configuration.nix @@ -2,7 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running β€˜nixos-help’). -{ nixos-hardware, config, pkgs, musnix, lib, inputs, outputs, ... }: +{ config, pkgs, lib, inputs, musnix, outputs, ... }: { imports = @@ -30,20 +30,12 @@ flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs; in { - # gc = { - # automatic = true; - # dates = "daily"; - # options = "--delete-older-than +3"; - # }; - settings = { # Enable flakes and new 'nix' command experimental-features = "nix-command flakes"; # Workaround for https://github.com/NixOS/nix/issues/9574 nix-path = config.nix.nixPath; }; - # Opinionated: disable channels - # channel.enable = false; # Opinionated: make flake registry and nix path match flake inputs registry = lib.mapAttrs (_: flake: {inherit flake;}) flakeInputs; @@ -72,7 +64,9 @@ egl-wayland glfw-wayland openssl + appimage-run xwayland-satellite + xwayland-run ]; # Bootloader. @@ -83,11 +77,15 @@ efi.canTouchEfiVariables = true; }; kernelPackages = pkgs.unstable.linuxPackages_latest; + initrd.systemd.enable = true; initrd.kernelModules = [ "nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" "snd-virmidi" ]; kernelParams = [ "nvidia_drm.fbdev=1" "nvidia_drm.modeset=1" ]; }; systemd.services.tailscaled.after = ["NetworkManager-wait-online.service"]; + systemd.sleep.extraConfig = '' + HibernateDelaySec=2h + ''; documentation = { dev.enable = true; @@ -120,8 +118,8 @@ ]; nvidia = { - # Modesetting is required. open = true; + # Modesetting is required. modesetting.enable = true; powerManagement.enable = true; powerManagement.finegrained = true; @@ -163,35 +161,93 @@ rtcqs.enable = true; }; - services.udev.extraRules = '' - DEVPATH=="/devices/virtual/misc/cpu_dma_latency", OWNER="root", GROUP="audio", MODE="0660" - ''; + services.fstrim.enable = true; + + services.samba = { + enable = true; + package = pkgs.sambaFull; + }; + + services.logind = { + extraConfig = '' + IdleAction=lock + IdleActionSec=5m + ''; + }; + services.udev = { + extraRules = '' + DEVPATH=="/devices/virtual/misc/cpu_dma_latency", OWNER="root", GROUP="audio", MODE="0660" + ''; + packages = [ + pkgs.via + pkgs.vial + (pkgs.writeTextFile { + name = "on-battery"; + text = '' + # Rule for when switching to battery + SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="0", RUN+="${pkgs.power-profiles-daemon}/bin/powerprofilesctl set balanced" + ''; + destination = "/etc/udev/rules.d/60-onbattery.rules"; + }) + (pkgs.writeTextFile { + name = "on-power"; + text = '' + # Rule for when switching to ac + SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="1", RUN+="${pkgs.power-profiles-daemon}/bin/powerprofilesctl set performance" + ''; + destination = "/etc/udev/rules.d/61-onpower.rules"; + }) + (pkgs.writeTextFile { + name = "hibernate-low-battery"; + text = '' + # Suspend the system when battery level drops to 5% or lower + SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="[0-5]", RUN+="${pkgs.systemd}/bin/systemctl hibernate" + ''; + destination = "/etc/udev/rules.d/99-hibernate-low-battery.rules"; + }) + (pkgs.writeTextFile { + name = "on-battery-power-saver"; + text = '' + # Switch to power-saver when battery below 50% + SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="[0-5][0-9]", RUN+="${pkgs.power-profiles-daemon}/bin/powerprofilesctl set power-saver" + ''; + destination = "/etc/udev/rules.d/62-power-save-battery.rules"; + }) + ]; + }; security.polkit.enable = true; security.rtkit.enable = true; security.pam.services.swaylock = {}; + security.pam.services.hyprlock = {}; services.xserver.videoDrivers = [ "nvidia" "modesetting" ]; + programs.nm-applet.enable = true; + networking = { hostName = "eddie"; domain = "local"; nameservers = [ "1.1.1.1" "1.0.0.1" ]; + networkmanager = { + enable = true; + wifi.powersave = true; + # wifi.backend = "iwd"; + }; # wireless = { # iwd = { # enable = true; + # package = pkgs.unstable.iwd; # settings = { + # IPv6 = { + # enabled = true; + # }; # Settings = { # AutoConnect = true; # }; # }; # }; # }; - networkmanager = { - enable = true; - wifi.powersave = true; - # wifi.backend = "iwd"; - }; }; services.resolved = { @@ -226,7 +282,7 @@ programs.niri = { enable = true; - package = inputs.niri.packages.x86_64-linux.default; + package = inputs.niri.packages.x86_64-linux.niri; }; # programs.waybar.enable = true; @@ -384,7 +440,6 @@ services.kmonad = { enable = true; - package = pkgs.unstable.kmonad; keyboards = { sinc = { device = "/dev/input/by-id/usb-Keebio_Sinc_Rev._4-event-kbd"; @@ -457,11 +512,6 @@ libudev-zero.out ]; - services.udev.packages = with pkgs; [ - via - vial - ]; - fonts.fontconfig = { enable = true; useEmbeddedBitmaps = true; @@ -471,13 +521,19 @@ enable = true; }; - services.power-profiles-daemon.enable = true; + services.power-profiles-daemon = { + enable = true; + package = pkgs.unstable.power-profiles-daemon; + }; # enable the OpenSSH daemon. services.openssh.enable = true; services.avahi = { enable = true; + publish.enable = true; + publish.userServices = true; + openFirewall = true; nssmdns4 = true; }; @@ -485,7 +541,7 @@ users.users.emenel = { isNormalUser = true; description = "emenel"; - extraGroups = [ "networkmanager" "wheel" "uinput" "uucp" "dialout" "input" "audio" "video" "libvirtd" "nvidia" "cups" "openrazer" "plugdev" ]; + extraGroups = [ "networkmanager" "network" "wheel" "uinput" "uucp" "dialout" "input" "audio" "video" "libvirtd" "nvidia" "cups" "openrazer" "plugdev" ]; packages = with pkgs; [ git ];