My NixOS config Part 3: Flake-Parts Crusaders nix.ladas552.me
hjem nix nixos impermanence flake-parts nvfetcher niri noctalia

let's see what happens'

Ladas552 05d1b069 f029e590

+7 -2279
+7
.sops.yaml
··· 1 + keys: 2 + - &primary age18yaw2nreuzgmh2w9y2mpx7kmgfrwqzr6hf2raws0fk37ut950ydqwwctu8 3 + creation_rules: 4 + - path_regex: secrets/secrets.yaml$ 5 + key_groups: 6 + - age: 7 + - *primary
-146
Home-Manager/desktop/bspwm.nix
··· 1 - {lib, config, pkgs, inputs, ...}: 2 - 3 - { 4 - xsession.windowManager.bspwm = 5 - { 6 - enable = true; 7 - monitors = { 8 - eDP-1-1 = [ 9 - "[1]" 10 - "[2]" 11 - "[3]" 12 - "[4]" 13 - "[5]" 14 - "[6]" 15 - ]; 16 - }; 17 - rules = { 18 - "mpv" = { 19 - state = "pseudo_tiled"; 20 - }; 21 - "TelegramDesktop" = { 22 - state = "floating"; 23 - }; 24 - # "Zathura" = { 25 - # state = "floating"; 26 - # }; 27 - "Peek" = { 28 - state = "floating"; 29 - }; 30 - "ZenlessZoneZero.exe" = { 31 - state = "floating"; 32 - }; 33 - "floorp" = { 34 - desktop = "^1"; 35 - }; 36 - "vesktop" = { 37 - desktop = "^6"; 38 - state = "fullscreen"; 39 - }; 40 - # "" = { 41 - # state = ; 42 - # }; 43 - }; 44 - settings = lib.mkForce { 45 - border_width = 3; 46 - window_gap = 4; 47 - focused_border_color = "#0060FF"; 48 - normal_border_color = "#7700AE"; 49 - active_border_color = "#0060FF"; 50 - pointer_modifier = "mod1"; 51 - focus_follows_pointer = true; 52 - split_ratio = 0.5; 53 - borderless_monocle = true; 54 - gapless_monocle = true; 55 - single_monocle = true; 56 - 57 - }; 58 - # extraConfig = '' 59 - # pgrep -x sxhkd > /dev/null || sxhkd & 60 - # ''; 61 - }; 62 - services.sxhkd = { 63 - enable = true; 64 - keybindings = { 65 - "super + t" = "kitty"; 66 - "super + space" = "rofi -show"; 67 - "super + x" = "xfce4-session-logout"; 68 - # Gui apps 69 - "super + {w,f}" = "{floorp,thunar}"; 70 - # Tuu apps 71 - "super + {g,m,h,n}" = "kitty -e {qalc,ncmpcpp,btop,nvim}"; 72 - # Screenshot 73 - "Print" = "flameshot gui"; 74 - # MPD 75 - "shift + alt + {p,n,b,k,l,c}" = "mpc {toggle,next,prev,volume -5,volume +5,clear}"; 76 - # Media keys 77 - "{XF86AudioRaiseVolume,XF86AudioLowerVolume}" = "pamixer -{i,d} 2"; 78 - "XF86AudioMute" = "pamixer -t"; 79 - # reload sxhkd config 80 - "super + Escape" = "pkill -USR1 -x sxhkd"; 81 - # BSPwm hotkeys 82 - # quit/restart bspwm 83 - "super + alt + {q,r}" = "bspc {quit,wm -r}"; 84 - # close and kill window 85 - "super + {_,shift + }q" = "bspc node -{c,k}"; 86 - # alternate between the tiled and monocle layout 87 - "super + shift + m" = "bspc desktop -l next"; 88 - # set the window state 89 - "super + shift + {t,s,f}" = "bspc node -t {tiled,floating,fullscreen}"; 90 - # focus the node in the given direction 91 - "super + {_,shift + }{Left,Down,Up,Right}" = "bspc node -{f,s} {west,south,north,east}"; 92 - # focus the next/previous window in the current desktop 93 - "alt + {_,shift + }Tab" = "bspc node -f {next,prev}.local.!hidden.window"; 94 - # focus the next/previous desktop in the current monitor 95 - "super + {a,s}" = "bspc desktop -f {prev,next}.local"; 96 - # focus or send to the given desktop 97 - "super + {_,shift + }{1-9,0}" = "bspc {desktop -f,node -d} '^{1-9,10}'"; 98 - # preselect the direction 99 - "super + ctrl + {Left,Down,Up,Right}" = "bspc node -p {west,south,north,east}"; 100 - # preselect the ratio 101 - "super + ctrl + {1-9}" = "bspc node -o 0.{1-9}"; 102 - # cancel the preselection for the focused node 103 - "super + ctrl + space" = "bspc node -p cancel"; 104 - # expand a window by moving one of its side outward 105 - "super + alt + {Left,Down,Up,Right}" = "bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}"; 106 - # contract a window by moving one of its side inward 107 - "super + alt + shift + {Left,Down,Up,Right}" = "bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}"; 108 - # move a floating window 109 - "alt + shift + {Left,Down,Up,Right}" = "bspc node -v {-20 0,0 20,0 -20,20 0}"; 110 - }; 111 - extraConfig = /*sxhkdrc*/ '' 112 - super + c 113 - /home/ladas552/.local/bin/word-lookup.sh 114 - super + l 115 - betterlockscreen -l dimblur 116 - shift + alt + m 117 - /home/ladas552/.local/bin/musnow.sh 118 - ## send the newest marked node to the newest preselected node 119 - ##super + y 120 - ## bspc node newest.marked.local -n newest.!automatic.local 121 - ## swap the current node and the biggest window 122 - ##super + g 123 - ## bspc node -s biggest.window 124 - ## state/flags 125 - ## set the node flags 126 - ##super + ctrl + {m,x,y,z} 127 - ## bspc node -g {marked,locked,sticky,private} 128 - ## focus/swap 129 - ## focus the node for the given path jump 130 - ##super + {p,b,comma,period} 131 - ## bspc node -f @{parent,brother,first,second} 132 - ## focus the last node/desktop 133 - ##super + {grave,Tab} 134 - ## bspc {node,desktop} -f last 135 - ## focus the older or newer node in the focus history 136 - ##super + {o,i} 137 - ## bspc wm -h off; \ 138 - ## bspc node {older,newer} -f; \ 139 - ## bspc wm -h on 140 - ## preselect 141 - ## cancel the preselection for the focused desktop 142 - super + ctrl + shift + space 143 - bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel 144 - # ''; 145 - }; 146 - }
-309
Home-Manager/desktop/fileconfigs/config.kdl
··· 1 - // This config is in the KDL format: https://kdl.dev 2 - // "/-" comments out the following node. 3 - // Check the wiki for a full description of the configuration: 4 - // https://github.com/YaLTeR/niri/wiki/Configuration:-Overview 5 - 6 - input { 7 - keyboard { 8 - xkb { 9 - layout "us,kz" 10 - options "grp:caps_toggle" 11 - } 12 - } 13 - //Libinput method 14 - touchpad { 15 - tap 16 - // dwt 17 - // dwtp 18 - natural-scroll 19 - // accel-speed 0.2 20 - // accel-profile "flat" 21 - } 22 - 23 - mouse { 24 - // natural-scroll 25 - // accel-speed 0.2 26 - accel-profile "flat" 27 - } 28 - 29 - // Uncomment this to make the mouse warp to the center of newly focused windows. 30 - // warp-mouse-to-focus 31 - 32 - // Focus windows and outputs automatically when moving the mouse into them. 33 - // focus-follows-mouse 34 - } 35 - 36 - // Settings that influence how windows are positioned and sized. 37 - // Find more information on the wiki: 38 - // https://github.com/YaLTeR/niri/wiki/Configuration:-Layout 39 - layout { 40 - gaps 12 41 - 42 - center-focused-column "on-overflow" 43 - 44 - preset-column-widths { 45 - proportion 0.25 46 - proportion 0.5 47 - proportion 0.75 48 - proportion 1.0 49 - } 50 - 51 - // You can change the default width of the new windows. 52 - default-column-width { proportion 0.5; } 53 - // If you leave the brackets empty, the windows themselves will decide their initial width. 54 - // default-column-width {} 55 - 56 - // You can change how the focus ring looks. 57 - focus-ring { 58 - // Uncomment this line to disable the focus ring. 59 - // off 60 - 61 - // How many logical pixels the ring extends out from the windows. 62 - width 4 63 - 64 - // Colors can be set in a variety of ways: 65 - // - CSS named colors: "red" 66 - // - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa" 67 - // - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others. 68 - 69 - // Color of the ring on the active monitor. 70 - // active-color "#7fc8ff" 71 - active-color "#0060FF" 72 - 73 - // Color of the ring on inactive monitors. 74 - // inactive-color "#505050" 75 - inactive-color "#7700AE" 76 - 77 - // active-gradient from="#80c8ff" to="#bbddff" angle=45 78 - 79 - // You can also color the gradient relative to the entire view 80 - // of the workspace, rather than relative to just the window itself. 81 - // To do that, set relative-to="workspace-view". 82 - // 83 - // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" 84 - } 85 - 86 - // You can also add a border. It's similar to the focus ring, but always visible. 87 - border { 88 - // The settings are the same as for the focus ring. 89 - // If you enable the border, you probably want to disable the focus ring. 90 - off 91 - 92 - width 4 93 - // active-color "#ffc87f" 94 - active-color "#0060FF" 95 - // inactive-color "#505050" 96 - inactive-color "#7700AE" 97 - 98 - // active-gradient from="#ffbb66" to="#ffc880" angle=45 relative-to="workspace-view" 99 - // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" 100 - } 101 - 102 - // Struts shrink the area occupied by windows, similarly to layer-shell panels. 103 - // You can think of them as a kind of outer gaps. They are set in logical pixels. 104 - // Left and right struts will cause the next window to the side to always be visible. 105 - // Top and bottom struts will simply add outer gaps in addition to the area occupied by 106 - // layer-shell panels and regular gaps. 107 - struts { 108 - // left 64 109 - // right 64 110 - // top 64 111 - // bottom 64 112 - } 113 - } 114 - // AutoStart 115 - 116 - //spawn-at-startup "xfce4-panel" 117 - 118 - // No Decorations 119 - prefer-no-csd 120 - 121 - // You can change the path where screenshots are saved. 122 - // The path is formatted with strftime(3) to give you the screenshot date and time. 123 - screenshot-path "~/Pictures/screenshots/Niri%Y-%m-%d %H-%M-%S.png" 124 - 125 - // You can also set this to null to disable saving screenshots to disk. 126 - // screenshot-path null 127 - 128 - // Animation settings. 129 - // The wiki explains how to configure individual animations: 130 - // https://github.com/YaLTeR/niri/wiki/Configuration:-Animations 131 - animations { 132 - // Uncomment to turn off all animations. 133 - // off 134 - 135 - // Slow down all animations by this factor. Values below 1 speed them up instead. 136 - // slowdown 3.0 137 - } 138 - 139 - // Window rules let you adjust behavior for individual windows. 140 - // Find more information on the wiki: 141 - // https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules 142 - 143 - window-rule { 144 - match app-id="vesktop" 145 - 146 - default-column-width { proportion 1.00; } 147 - } 148 - 149 - // Example: block out two password managers from screen capture. 150 - // (This example rule is commented out with a "/-" in front.) 151 - window-rule { 152 - match app-id=r#"^org\.keepassxc\.KeePassXC$"# 153 - match app-id=r#"^org\.gnome\.World\.Secrets$"# 154 - 155 - block-out-from "screen-capture" 156 - 157 - // Use this instead if you want them visible on third-party screenshot tools. 158 - // block-out-from "screencast" 159 - } 160 - // Keybinds 161 - binds { 162 - // shows a list of important hotkeys. 163 - Mod+Shift+T { show-hotkey-overlay; } 164 - 165 - // Apps 166 - 167 - Mod+T { spawn "kitty"; } 168 - Mod+Space { spawn "rofi -show"; } 169 - Super+Alt+L { spawn "swaylock"; } 170 - Super+W { spawn "floorp"; } 171 - 172 - // You can also use a shell: 173 - // Mod+T { spawn "bash" "-c" "notify-send hello && exec alacritty"; } 174 - 175 - // Example volume keys mappings for PipeWire & WirePlumber. 176 - // The allow-when-locked=true property makes them work even when the session is locked. 177 - XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; } 178 - XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; } 179 - XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } 180 - XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; } 181 - 182 - Mod+Q { close-window; } 183 - 184 - Mod+Left { focus-column-left; } 185 - Mod+Down { focus-window-down; } 186 - Mod+Up { focus-window-up; } 187 - Mod+Right { focus-column-right; } 188 - Mod+A { focus-column-left; } 189 - Mod+S { focus-column-right; } 190 - Mod+J { focus-window-down; } 191 - Mod+K { focus-window-up; } 192 - 193 - Mod+Shift+Left { move-column-left; } 194 - Mod+Shift+Down { move-window-down; } 195 - Mod+Shift+Up { move-window-up; } 196 - Mod+Shift+Right { move-column-right; } 197 - Mod+Shift+A { move-column-left; } 198 - Mod+Shift+S { move-column-right; } 199 - Mod+Ctrl+H { move-column-left; } 200 - Mod+Ctrl+J { move-window-down; } 201 - Mod+Ctrl+K { move-window-up; } 202 - Mod+Ctrl+L { move-column-right; } 203 - 204 - Mod+Home { focus-column-first; } 205 - Mod+End { focus-column-last; } 206 - Mod+Ctrl+Home { move-column-to-first; } 207 - Mod+Ctrl+End { move-column-to-last; } 208 - 209 - Mod+Shift+H { focus-monitor-left; } 210 - Mod+Shift+J { focus-monitor-down; } 211 - Mod+Shift+K { focus-monitor-up; } 212 - Mod+Shift+L { focus-monitor-right; } 213 - 214 - Mod+Shift+Ctrl+Left { move-column-to-monitor-left; } 215 - Mod+Shift+Ctrl+Down { move-column-to-monitor-down; } 216 - Mod+Shift+Ctrl+Up { move-column-to-monitor-up; } 217 - Mod+Shift+Ctrl+Right { move-column-to-monitor-right; } 218 - Mod+Shift+Ctrl+H { move-column-to-monitor-left; } 219 - Mod+Shift+Ctrl+J { move-column-to-monitor-down; } 220 - Mod+Shift+Ctrl+K { move-column-to-monitor-up; } 221 - Mod+Shift+Ctrl+L { move-column-to-monitor-right; } 222 - 223 - Mod+Page_Up { focus-workspace-up; } 224 - Mod+Page_Down { focus-workspace-down; } 225 - Mod+Ctrl+A { focus-workspace-up; } 226 - Mod+Ctrl+S { focus-workspace-down; } 227 - Mod+Ctrl+Page_Up { move-column-to-workspace-up; } 228 - Mod+Ctrl+Page_Down { move-column-to-workspace-down; } 229 - Mod+Shift+Ctrl+A { move-column-to-workspace-up; } 230 - Mod+Shift+Ctrl+S { move-column-to-workspace-down; } 231 - 232 - Mod+Shift+Page_Down { move-workspace-down; } 233 - Mod+Shift+Page_Up { move-workspace-up; } 234 - 235 - Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } 236 - Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } 237 - Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } 238 - Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } 239 - 240 - Mod+WheelScrollRight { focus-column-right; } 241 - Mod+WheelScrollLeft { focus-column-left; } 242 - Mod+Ctrl+WheelScrollRight { move-column-right; } 243 - Mod+Ctrl+WheelScrollLeft { move-column-left; } 244 - 245 - // Usually scrolling up and down with Shift in applications results in 246 - // horizontal scrolling; these binds replicate that. 247 - Mod+Shift+WheelScrollDown { focus-column-right; } 248 - Mod+Shift+WheelScrollUp { focus-column-left; } 249 - Mod+Ctrl+Shift+WheelScrollDown { move-column-right; } 250 - Mod+Ctrl+Shift+WheelScrollUp { move-column-left; } 251 - 252 - // Worlspaces 253 - 254 - Mod+1 { focus-workspace 1; } 255 - Mod+2 { focus-workspace 2; } 256 - Mod+3 { focus-workspace 3; } 257 - Mod+Shift+1 { move-column-to-workspace 1; } 258 - Mod+Shift+2 { move-column-to-workspace 2; } 259 - Mod+Shift+3 { move-column-to-workspace 3; } 260 - 261 - // Switches focus between the current and the previous workspace. 262 - Mod+Tab { focus-workspace-previous; } 263 - 264 - Mod+Comma { consume-window-into-column; } 265 - Mod+Period { expel-window-from-column; } 266 - 267 - // There are also commands that consume or expel a single window to the side. 268 - Mod+BracketLeft { consume-or-expel-window-left; } 269 - Mod+BracketRight { consume-or-expel-window-right; } 270 - 271 - Mod+R { switch-preset-column-width; } 272 - Mod+F { maximize-column; } 273 - Mod+Shift+F { fullscreen-window; } 274 - Mod+C { center-column; } 275 - 276 - // Finer width adjustments. 277 - // This command can also: 278 - // * set width in pixels: "1000" 279 - // * adjust width in pixels: "-5" or "+5" 280 - // * set width as a percentage of screen width: "25%" 281 - // * adjust width as a percentage of screen width: "-10%" or "+10%" 282 - // Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0, 283 - // set-column-width "100" will make the column occupy 200 physical screen pixels. 284 - Mod+Minus { set-column-width "-10%"; } 285 - Mod+Equal { set-column-width "+10%"; } 286 - 287 - // Finer height adjustments when in column with other windows. 288 - Mod+Shift+Minus { set-window-height "-10%"; } 289 - Mod+Shift+Equal { set-window-height "+10%"; } 290 - 291 - // Actions to switch layouts. 292 - // Note: if you uncomment these, make sure you do NOT have 293 - // a matching layout switch hotkey configured in xkb options above. 294 - // Having both at once on the same hotkey will break the switching, 295 - // since it will switch twice upon pressing the hotkey (once by xkb, once by niri). 296 - // Mod+Space { switch-layout "next"; } 297 - // Mod+Shift+Space { switch-layout "prev"; } 298 - 299 - Print { screenshot; } 300 - Ctrl+Print { screenshot-screen; } 301 - Alt+Print { screenshot-window; } 302 - 303 - // The quit action will show a confirmation dialog to avoid accidental exits. 304 - Mod+Ctrl+Shift+Q { quit; } 305 - 306 - // Powers off the monitors. To turn them back on, do any input like 307 - // moving the mouse or pressing any other key. 308 - Mod+Shift+P { power-off-monitors; } 309 - }
-7
Home-Manager/desktop/niri.nix
··· 1 - { config, pkgs, lib, inputs, ... }: 2 - 3 - { 4 - home.file.".config/niri/config.kdl" = { 5 - source = ./fileconfigs/config.kdl; 6 - }; 7 - }
-109
Home-Manager/home.nix
··· 1 - {config, pkgs, inputs, home-manager, pkgs-stable, ... }: 2 - 3 - { 4 - # Home Manager needs a bit of information about you and the paths it should 5 - # manage. 6 - 7 - nixpkgs = { 8 - overlays = [ 9 - inputs.neorg-overlay.overlays.default 10 - inputs.emacs-overlay.overlays.default 11 - ]; 12 - }; 13 - 14 - imports = [ 15 - ./desktop/bspwm.nix 16 - ./desktop/niri.nix 17 - ./tools/apps.nix 18 - ]; 19 - 20 - # Me 21 - home.username = "ladas552"; 22 - home.homeDirectory = "/home/ladas552"; 23 - # Don't change 24 - home.stateVersion = "23.11"; # Please read the comment before changing. 25 - # Standalone Packages for user 26 - home.packages = with pkgs; [ 27 - #pkgs-stable. 28 - blender 29 - candy-icons 30 - catppuccin-cursors 31 - cowsay 32 - floorp 33 - hello 34 - hunspell 35 - hunspellDicts.en-us-large 36 - hunspellDicts.ru-ru 37 - keepassxc 38 - libqalculate 39 - libreoffice-fresh 40 - lshw 41 - manix 42 - numlockx 43 - nuspell 44 - pamixer 45 - pavucontrol 46 - peek 47 - python3 48 - qbittorrent 49 - rofi-wayland 50 - telegram-desktop 51 - texlive.combined.scheme-small 52 - typst 53 - vesktop 54 - xarchiver 55 - xclip 56 - ]; 57 - nixpkgs.config.allowUnfree = true; 58 - # home.file = { 59 - # 60 - # # You can also set the file content immediately. 61 - #".gradle/gradle.properties".text = '' 62 - # org.gradle.console=verbose 63 - # org.gradle.daemon.idletimeout=3600000 64 - # ''; 65 - # 66 - # }; 67 - # Environment and Dependencies 68 - xdg = { 69 - enable = true; 70 - # mime.enable = true; 71 - # mimeApps = { 72 - # enable = true; 73 - # associations.added = { 74 - # "text/plain" = ["neovim.desktop"]; 75 - # "application/pdf" = ["org.pwmt.zathura-pdf-mupdf.desktop"]; 76 - # "image/*" = ["imv.desktop"]; 77 - # "video/*" = ["mpv.desktop"]; 78 - # }; 79 - # defaultApplications = { 80 - # "text/plain" = [""]; 81 - # "application/pdf" = ["org.pwmt.zathura-pdf-mupdf.desktop"]; 82 - # "image/*" = ["imv.desktop"]; 83 - # "video/*" = ["mpv.desktop"]; 84 - # }; 85 - # }; 86 - }; 87 - 88 - dconf.settings = { 89 - "org/virt-manager/virt-manager/connections" = { 90 - autoconnect = ["qemu:///system"]; 91 - uris = ["qemu:///system"]; 92 - }; 93 - }; 94 - # Environmental Variables 95 - home.sessionVariables = { 96 - EDITOR = "nvim"; 97 - VISUAL = "nvim"; 98 - SUDO_EDITOR = "nvim"; 99 - TERMINAL = "kitty"; 100 - TERM = "kitty"; 101 - BROWSER = "floorp"; 102 - #XDG_BIN_HOME = "$HOME/.local/bin"; 103 - #PATH = "$HOME/.local/bin"; 104 - }; 105 - 106 - # Let Home Manager install and manage itself. 107 - programs.home-manager.enable = true; 108 - #programs.home-manager.path = "$HOME/Nix-dots/Home-Manager"; 109 - }
-65
Home-Manager/tools/apps.nix
··· 1 - { config, pkgs, inputs, ... }: 2 - 3 - { 4 - imports = [ 5 - ./fastfetch 6 - ./fish 7 - ./git 8 - ./kitty 9 - ./mpd 10 - ./mpv 11 - # ./nixvim 12 - ./ranger 13 - ./vim 14 - # ./qutebrowser 15 - # ./emacs 16 - ]; 17 - programs = { 18 - zathura = { 19 - enable = true; 20 - }; 21 - btop = { 22 - enable = true; 23 - }; 24 - fd = { 25 - enable = true; 26 - }; 27 - fzf = { 28 - enable = true; 29 - enableFishIntegration = true; 30 - }; 31 - mangohud = { 32 - enable = true; 33 - }; 34 - yt-dlp = { 35 - enable = true; 36 - }; 37 - ripgrep = { 38 - enable = true; 39 - }; 40 - imv = { 41 - enable = true; 42 - }; 43 - obs-studio = { 44 - enable = true; 45 - plugins = with pkgs.obs-studio-plugins; [ 46 - wlrobs 47 - obs-vkcapture 48 - input-overlay 49 - droidcam-obs 50 - ]; 51 - }; 52 - # jujutsu = { 53 - # enable = true; 54 - # }; 55 - }; 56 - services = { 57 - flameshot = { 58 - enable = true; 59 - }; 60 - syncthing = { 61 - enable = true; 62 - tray.enable = true; 63 - }; 64 - }; 65 - }
-13
Home-Manager/tools/emacs/default.nix
··· 1 - { config, pkgs, inputs, ... }: 2 - 3 - { 4 - programs.emacs = { 5 - enable = true; 6 - package = pkgs.emacs-git-nox; 7 - extraPackages = epkgs: with pkgs.emacsPackages; [ 8 - org 9 - zk 10 - ]; 11 - }; 12 - services.emacs.enable = true; 13 - }
-24
Home-Manager/tools/fastfetch/default.nix
··· 1 - { config, pkgs, inputs, ... }: 2 - 3 - { 4 - programs.fastfetch = { 5 - enable = true; 6 - settings = { 7 - logo.source = "nixos_small"; 8 - display = { 9 - size = { 10 - binaryPrefix = "si"; 11 - }; 12 - separator = "  "; 13 - }; 14 - modules = [ 15 - "de" 16 - "wm" 17 - "terminal" 18 - "shell" 19 - "editor" 20 - "cpu" 21 - ]; 22 - }; 23 - }; 24 - }
-38
Home-Manager/tools/fish/default.nix
··· 1 - { config, pkgs, inputs, ... }: 2 - 3 - { 4 - programs.fish = { 5 - enable = true; 6 - plugins = with pkgs.fishPlugins; [ 7 - {name = "autopair"; src = autopair.src;} 8 - {name = "bass"; src = bass.src; } 9 - {name = "done"; src = done.src; } 10 - {name = "pisces"; src = pisces.src; } 11 - {name = "pure"; src = pure.src; } 12 - {name = "sponge"; src = sponge.src; } 13 - ]; 14 - shellAbbrs = { 15 - clean = "nh clean all"; 16 - yy = "nh os switch -u ~/Nix-dots/"; 17 - en = "nvim ~/Nix-dots/NixOS/"; 18 - eh = "nvim ~/Nix-dots/Home-Manager/home.nix"; 19 - v = "nvim"; 20 - dl-video = "yt-dlp --embed-thumbnail -f bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4 --output '%(title)s.%(ext)s'"; 21 - dl-clips = "yt-dlp --embed-thumbnail -f bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4 --ignore-errors --output '/home/ladas552/Videos/clips/%(playlist)s/%(playlist_index)s-%(title)s.%(ext)s' --yes-playlist"; 22 - dl-vocaloid = "yt-dlp --add-metadata --parse-metadata 'playlist_title:%(album)s' --embed-thumbnail --ignore-errors --format bestaudio --extract-audio --audio-format mp3 --output '/home/ladas552/Music/vocaloid/%(playlist_uploader)s/%(playlist)s/%(title)s.%(ext)s' --yes-playlist"; 23 - mc = "ranger"; 24 - mcm = "ranger ~/Music/"; 25 - mcc = "ranger ~/.config/"; 26 - mcp = "ranger ~/Pictures/"; 27 - }; 28 - shellAliases = { 29 - cat = ''${pkgs.bat}/bin/bat''; 30 - wiki = ''${pkgs.wiki-tui}/bin/wiki-tui''; 31 - df = ''${pkgs.duf}/bin/duf''; 32 - copypaste = ''${pkgs.wgetpaste}/bin/wgetpaste''; 33 - cmatrix = ''${pkgs.unimatrix}/bin/unimatrix -f -s 95''; 34 - ls = ''ls --hyperlink=auto''; 35 - fastfetch = ''${pkgs.fastfetch}/bin/fastfetch | ${pkgs.lolcat}/bin/lolcat ''; 36 - }; 37 - }; 38 - }
-9
Home-Manager/tools/git/default.nix
··· 1 - { config, pkgs, inputs, ... }: 2 - 3 - { 4 - programs.git = { 5 - enable = true; 6 - userName = "Ladas552"; 7 - userEmail = "l.tokshalov@gmail.com"; 8 - }; 9 - }
-56
Home-Manager/tools/kitty/default.nix
··· 1 - {pkgs, lib, config, inputs, ...}: 2 - 3 - { 4 - 5 - programs.kitty = { 6 - enable = true; 7 - font = lib.mkForce { 8 - name = "JetBrainsMonoNL Nerd Font Mono"; 9 - size = 16.0; 10 - }; 11 - settings = { 12 - #kitty.conf 13 - enable_audio_bell = false; 14 - shell = ''fish''; 15 - url_style = ''single''; 16 - cursor_shape = ''block''; 17 - scrollback_lines = 2000; 18 - confirm_os_window_close = 0; 19 - font_size = 11; 20 - background = ''#181B28''; 21 - foreground = ''#F8F8F2''; 22 - selection_foreground = ''#1E1F28''; 23 - selection_background = ''#44475A''; 24 - color0 = ''#000000''; # Black 25 - color1 = ''#FF5555''; # RED 26 - color2 = ''#50FA7B''; # GREEN 27 - color3 = ''#DA00E9''; # HIGHLIGH 28 - color4 = ''#BD92F8''; # BLUE 29 - color5 = ''#FF78C5''; # MAGENTA 30 - color6 = ''#8AE9FC''; # CYAN 31 - color7 = ''#BBBBBB''; # WHITE 32 - color8 = ''#545454''; # BR BLACK 33 - color9 = ''#FF5454''; # BR RED 34 - color10 = ''#50FA7B''; # BR GREEN 35 - color11 = ''#F0FA8B''; # BR YELLOW 36 - color12 = ''#BD92F8''; # BR BLUE 37 - color13 = ''#FF78C5''; # BR MAGENTA 38 - color14 = ''#8AE9FC''; # BR CYAN 39 - color15 = ''#FFFFFF''; # BR WHITE 40 - url_color = ''#0087BD''; #URL 41 - cursor = ''#F4DBD6''; 42 - cursor_text_color = ''#24273A''; 43 - active_border_color = ''#B7BDF8''; 44 - inactive_border_color = ''#6E738D''; 45 - bell_border_color = ''#EED49F''; 46 - active_tab_foreground = "#181926"; 47 - active_tab_background = "#C6A0F6"; 48 - inactive_tab_foreground = "#CAD3F5"; 49 - inactive_tab_background = "#1E2030"; 50 - tab_bar_background = "#181926"; 51 - }; 52 - }; 53 - 54 - 55 - } 56 -
-72
Home-Manager/tools/mpd/default.nix
··· 1 - { config, pkgs, inputs, ... }: 2 - 3 - { 4 - home.packages = with pkgs; [ 5 - rmpc 6 - mpc-cli 7 - ]; 8 - programs.ncmpcpp = { 9 - enable = true; 10 - bindings = [ 11 - { key = "n"; command = "next"; } 12 - { key = "b"; command = "previous"; } 13 - { key = "Q"; command = "quit"; } 14 - { key = "*"; command = "next_found_item"; } 15 - { key = "-"; command = "previous_found_item"; } 16 - { key = "C"; command = "toggle_consume"; } 17 - { key = "r"; command = "toggle_random"; } 18 - { key = "R"; command = "toggle_repeat"; } 19 - { key = ","; command = "seek_backward"; } 20 - { key = "."; command = "seek_forward"; } 21 - { key = "2"; command = "show_search_engine"; } 22 - { key = "2"; command = "reset_search_engine"; } 23 - { key = "3"; command = "show_media_library"; } 24 - { key = "3"; command = "toggle_media_library_columns_mode"; } 25 - { key = "4"; command = "show_playlist_editor"; } 26 - { key = "5"; command = "show_tag_editor"; } 27 - { key = "6"; command = "show_outputs"; } 28 - { key = "7"; command = "change_browse_mode"; } 29 - { key = "7"; command = "show_browser"; } 30 - ]; 31 - settings = { 32 - song_status_format = "%a: %t"; 33 - visualizer_fps = 30; 34 - song_columns_list_format = "(20)[]{a} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l} (6f)[green]{NE}"; 35 - playlist_display_mode = "columns"; 36 - seek_time = 5; 37 - autocenter_mode = "yes"; 38 - centered_cursor = "yes"; 39 - progressbar_look = "-C•"; 40 - user_interface = "classic"; 41 - media_library_albums_split_by_date = "no"; 42 - media_library_hide_album_dates = "yes"; 43 - cyclic_scrolling = "yes"; 44 - screen_switcher_mode = "playlist, clock"; 45 - startup_slave_screen = ""; 46 - clock_display_seconds = "yes"; 47 - lines_scrolled = 1; 48 - volume_color = "red"; 49 - window_border_color = "red"; 50 - active_window_border = "red"; 51 - }; 52 - }; 53 - 54 - services.mpd = { 55 - enable = true; 56 - musicDirectory = "~/Music/"; 57 - extraConfig = '' 58 - audio_output { 59 - type "pipewire" 60 - name "Pipewire Sounds Server" 61 - } 62 - audio_output { 63 - type "fifo" 64 - name "toggle_visualizer" 65 - path "/tmp/mpd.fifo" 66 - format "44100:16:2" 67 - } 68 - auto_update "yes" 69 - metadata_to_use "artist, album, title, track, name, genre, date, composer, performer, disc, comment" 70 - ''; 71 - }; 72 - }
-48
Home-Manager/tools/mpv/default.nix
··· 1 - { config, pkgs, inputs, ... }: 2 - { 3 - programs.mpv = { 4 - enable = true; 5 - config = { 6 - profile = "gpu-hq"; 7 - save-position-on-quit= "true"; 8 - cursor-autohide= 100; 9 - ytdl-raw-options = "yes-playlist="; 10 - audio-file-auto= "fuzzy"; 11 - audio-file-paths= "**"; 12 - sub-file-paths= "**"; 13 - sub-auto= "fuzzy"; 14 - slang= "rus,russian,ru,eng,en,english"; 15 - alang= "ja,jpn,japanese,jp,eng,en,english"; 16 - 17 - demuxer-mkv-subtitle-preroll = true; 18 - sub-scale-by-window = true; 19 - }; 20 - profiles = { 21 - "extension.webm" = { 22 - loop-file= "inf"; 23 - }; 24 - "extension.gif" = { 25 - loop-file= "inf"; 26 - }; 27 - }; 28 - bindings = { 29 - "[" = "add speed -0.25"; 30 - "]" = "add speed 0.25"; 31 - "C" = "cycle sub"; 32 - "A" = "cycle audio"; 33 - "V" = "cycle video"; 34 - "<" = "add chapter -1"; 35 - ">" = "add chapter 1"; 36 - "K" = "add sub-scale +0.1"; 37 - "J" = "add sub-scale -0.1"; 38 - }; 39 - scripts = 40 - (with pkgs.mpvScripts; [ 41 - sponsorblock-minimal 42 - reload 43 - quality-menu 44 - memo 45 - autoload 46 - ]); 47 - }; 48 - }
-9
Home-Manager/tools/qutebrowser/default.nix
··· 1 - { config, pkgs, inputs, ... }: 2 - 3 - { 4 - 5 - programs.qutebrowser = { 6 - enable = true; 7 - 8 - }; 9 - }
-681
Home-Manager/tools/ranger/default.nix
··· 1 - { config, pkgs, inputs, ... }: 2 - 3 - { 4 - programs.ranger = { 5 - enable = true; 6 - extraConfig = '' 7 - set viewmode miller 8 - set column_ratios 1,3,4 9 - set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$ 10 - set show_hidden false 11 - set confirm_on_delete multiple 12 - set use_preview_script true 13 - set automatically_count_files true 14 - 15 - # Open all images in this directory when running certain image viewers 16 - # like feh or sxiv? You can still open selected files by marking them. 17 - set open_all_images true 18 - 19 - # Be aware of version control systems and display information. 20 - set vcs_aware false 21 - 22 - # State of the four backends git, hg, bzr, svn. The possible states are 23 - # disabled, local (only show local info), enabled (show local and remote 24 - # information). 25 - set vcs_backend_git enabled 26 - set vcs_backend_hg disabled 27 - set vcs_backend_bzr disabled 28 - set vcs_backend_svn disabled 29 - 30 - # Truncate the long commit messages to this length when shown in the statusbar. 31 - set vcs_msg_length 50 32 - 33 - # Use one of the supported image preview protocols 34 - set preview_images true 35 - 36 - set preview_images_method kitty 37 - 38 - # Delay in seconds before displaying an image with the w3m method. 39 - # Increase it in case of experiencing display corruption. 40 - set w3m_delay 0.02 41 - 42 - # Manually adjust the w3mimg offset when using a terminal which needs this 43 - set w3m_offset 0 44 - 45 - # Default iTerm2 font size (see: preview_images_method: iterm2) 46 - set iterm2_font_width 8 47 - set iterm2_font_height 11 48 - 49 - # Use a unicode "..." character to mark cut-off filenames? 50 - set unicode_ellipsis false 51 - 52 - # BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic). 53 - # Requires the python-bidi pip package 54 - set bidi_support false 55 - 56 - # Show dotfiles in the bookmark preview box? 57 - set show_hidden_bookmarks true 58 - 59 - # Which colorscheme to use? These colorschemes are available by default: 60 - # default, jungle, snow, solarized 61 - set colorscheme default 62 - 63 - # Preview files on the rightmost column? 64 - # And collapse (shrink) the last column if there is nothing to preview? 65 - set preview_files true 66 - set preview_directories true 67 - set collapse_preview true 68 - 69 - # Wrap long lines in plain text previews? 70 - set wrap_plaintext_previews true 71 - 72 - # Save the console history on exit? 73 - set save_console_history true 74 - 75 - # Draw the status bar on top of the browser window (default: bottom) 76 - set status_bar_on_top false 77 - 78 - # Draw a progress bar in the status bar which displays the average state of all 79 - # currently running tasks which support progress bars? 80 - set draw_progress_bar_in_status_bar true 81 - 82 - # Draw borders around columns? (separators, outline, both, or none) 83 - # Separators are vertical lines between columns. 84 - # Outline draws a box around all the columns. 85 - # Both combines the two. 86 - set draw_borders none 87 - 88 - # Display the directory name in tabs? 89 - set dirname_in_tabs false 90 - 91 - # Enable the mouse support? 92 - set mouse_enabled true 93 - 94 - # Display the file size in the main column or status bar? 95 - set display_size_in_main_column true 96 - set display_size_in_status_bar true 97 - 98 - # Display the free disk space in the status bar? 99 - set display_free_space_in_status_bar true 100 - 101 - # Display files tags in all columns or only in main column? 102 - set display_tags_in_all_columns true 103 - 104 - # Set a title for the window? Updates both `WM_NAME` and `WM_ICON_NAME` 105 - set update_title true 106 - 107 - # Set the tmux/screen window-name to "ranger"? 108 - set update_tmux_title true 109 - 110 - # Shorten the title if it gets long? The number defines how many 111 - # directories are displayed at once, 0 turns off this feature. 112 - set shorten_title 3 113 - 114 - # Show hostname in titlebar? 115 - set hostname_in_titlebar true 116 - 117 - # Abbreviate $HOME with ~ in the titlebar (first line) of ranger? 118 - set tilde_in_titlebar false 119 - 120 - # How many directory-changes or console-commands should be kept in history? 121 - set max_history_size 20 122 - set max_console_history_size 50 123 - 124 - # Try to keep so much space between the top/bottom border when scrolling: 125 - set scroll_offset 8 126 - 127 - # Flush the input after each key hit? (Noticeable when ranger lags) 128 - set flushinput true 129 - 130 - # Padding on the right when there's no preview? 131 - # This allows you to click into the space to run the file. 132 - set padding_right true 133 - 134 - # Save bookmarks (used with mX and `X) instantly? 135 - # This helps to synchronize bookmarks between multiple ranger 136 - # instances but leads to *slight* performance loss. 137 - # When false, bookmarks are saved when ranger is exited. 138 - set autosave_bookmarks true 139 - 140 - # Save the "`" bookmark to disk. This can be used to switch to the last 141 - # directory by typing "``". 142 - set save_backtick_bookmark true 143 - 144 - # You can display the "real" cumulative size of directories by using the 145 - # command :get_cumulative_size or typing "dc". The size is expensive to 146 - # calculate and will not be updated automatically. You can choose 147 - # to update it automatically though by turning on this option: 148 - set autoupdate_cumulative_size false 149 - 150 - # Turning this on makes sense for screen readers: 151 - set show_cursor false 152 - 153 - # One of: size, natural, basename, atime, ctime, mtime, type, random 154 - set sort type 155 - 156 - # Additional sorting options 157 - set sort_reverse false 158 - set sort_case_insensitive true 159 - set sort_directories_first true 160 - set sort_unicode false 161 - 162 - # Enable this if key combinations with the Alt Key don't work for you. 163 - # (Especially on xterm) 164 - set xterm_alt_key false 165 - 166 - # Whether to include bookmarks in cd command 167 - set cd_bookmarks true 168 - 169 - # Changes case sensitivity for the cd command tab completion 170 - set cd_tab_case sensitive 171 - 172 - # Use fuzzy tab completion with the "cd" command. For example, 173 - # ":cd /u/lo/b<tab>" expands to ":cd /usr/local/bin". 174 - set cd_tab_fuzzy false 175 - 176 - # Avoid previewing files larger than this size, in bytes. Use a value of 0 to 177 - # disable this feature. 178 - set preview_max_size 0 179 - 180 - # The key hint lists up to this size have their sublists expanded. 181 - # Otherwise the submaps are replaced with "...". 182 - set hint_collapse_threshold 10 183 - 184 - # Add the highlighted file to the path in the titlebar 185 - set show_selection_in_titlebar true 186 - 187 - # The delay that ranger idly waits for user input, in milliseconds, with a 188 - # resolution of 100ms. Lower delay reduces lag between directory updates but 189 - # increases CPU load. 190 - set idle_delay 2000 191 - 192 - # When the metadata manager module looks for metadata, should it only look for 193 - # a ".metadata.json" file in the current directory, or do a deep search and 194 - # check all directories above the current one as well? 195 - set metadata_deep_search false 196 - 197 - # Clear all existing filters when leaving a directory 198 - set clear_filters_on_dir_change false 199 - 200 - # Disable displaying line numbers in main column. 201 - # Possible values: false, absolute, relative. 202 - set line_numbers false 203 - 204 - # When line_numbers=relative show the absolute line number in the 205 - # current line. 206 - set relative_current_zero false 207 - 208 - # Start line numbers from 1 instead of 0 209 - set one_indexed false 210 - 211 - # Save tabs on exit 212 - set save_tabs_on_exit false 213 - 214 - # Enable scroll wrapping - moving down while on the last item will wrap around to 215 - # the top and vice versa. 216 - set wrap_scroll false 217 - 218 - # Set the global_inode_type_filter to nothing. Possible options: d, f and l for 219 - # directories, files and symlinks respectively. 220 - set global_inode_type_filter 221 - 222 - # This setting allows to freeze the list of files to save I/O bandwidth. It 223 - # should be 'false' during start-up, but you can toggle it by pressing F. 224 - set freeze_files false 225 - 226 - # Print file sizes in bytes instead of the default human-readable format. 227 - set size_in_bytes false 228 - 229 - # Warn at startup if RANGER_LEVEL env var is greater than 0, in other words 230 - # give a warning when you nest ranger in a subshell started by ranger. 231 - # Special value "error" makes the warning more visible. 232 - set nested_ranger_warning true 233 - 234 - # =================================================================== 235 - # == Local Options 236 - # =================================================================== 237 - # You can set local options that only affect a single directory. 238 - 239 - # Examples: 240 - # setlocal path=~/downloads sort mtime 241 - 242 - # =================================================================== 243 - # == Command Aliases in the Console 244 - # =================================================================== 245 - 246 - alias e edit 247 - alias q quit 248 - alias q! quit! 249 - alias qa quitall 250 - alias qa! quitall! 251 - alias qall quitall 252 - alias qall! quitall! 253 - alias setl setlocal 254 - 255 - alias filter scout -prts 256 - alias find scout -aets 257 - alias mark scout -mr 258 - alias unmark scout -Mr 259 - alias search scout -rs 260 - alias search_inc scout -rts 261 - alias travel scout -aefklst 262 - 263 - # =================================================================== 264 - # == Define keys for the browser 265 - # =================================================================== 266 - 267 - # Basic 268 - map Q quitall 269 - map q quit 270 - copymap q ZZ ZQ 271 - 272 - map R reload_cwd 273 - map F set freeze_files! 274 - map <C-r> reset 275 - map <C-l> redraw_window 276 - map <C-c> abort 277 - map <esc> change_mode normal 278 - map ~ set viewmode! 279 - 280 - map i display_file 281 - map <A-j> scroll_preview 1 282 - map <A-k> scroll_preview -1 283 - map ? help 284 - map W display_log 285 - map w taskview_open 286 - map S shell fish 287 - 288 - map : console 289 - map ; console 290 - map ! console shell%space 291 - map @ console -p6 shell %%s 292 - map # console shell -p%space 293 - map s console shell%space 294 - map r chain draw_possible_programs; console open_with%space 295 - map f console find%space 296 - map cd console cd%space 297 - 298 - map <C-p> chain console; eval fm.ui.console.history_move(-1) 299 - 300 - # Change the line mode 301 - map Mf linemode filename 302 - map Mi linemode fileinfo 303 - map Mm linemode mtime 304 - map Mh linemode humanreadablemtime 305 - map Mp linemode permissions 306 - map Ms linemode sizemtime 307 - map MH linemode sizehumanreadablemtime 308 - map Mt linemode metatitle 309 - 310 - # Tagging / Marking 311 - map t tag_toggle 312 - map ut tag_remove 313 - map <any> tag_toggle tag=%any 314 - map <Space> mark_files toggle=True 315 - map v mark_files all=True toggle=True 316 - map uv mark_files all=True val=False 317 - map V toggle_visual_mode 318 - map uV toggle_visual_mode reverse=True 319 - 320 - # For the nostalgics: Midnight Commander bindings 321 - map <F1> console touch%space 322 - map <F2> rename_append 323 - map <F3> display_file 324 - map <F4> edit 325 - map <F5> copy 326 - map <F6> cut 327 - map <F7> console mkdir%space 328 - map <F8> console delete 329 - #map <F8> console trash 330 - map <F10> exit 331 - 332 - # In case you work on a keyboard with dvorak layout 333 - map <UP> move up=1 334 - map <DOWN> move down=1 335 - map <LEFT> move left=1 336 - map <RIGHT> move right=1 337 - map <HOME> move to=0 338 - map <END> move to=-1 339 - map <PAGEDOWN> move down=1 pages=True 340 - map <PAGEUP> move up=1 pages=True 341 - map <CR> move right=1 342 - #map <DELETE> console delete 343 - map <INSERT> console touch%space 344 - 345 - # VIM-like 346 - copymap <UP> k 347 - copymap <DOWN> j 348 - copymap <LEFT> h 349 - copymap <RIGHT> l 350 - copymap <HOME> gg 351 - copymap <END> G 352 - copymap <PAGEDOWN> <C-F> 353 - copymap <PAGEUP> <C-B> 354 - 355 - map J move down=0.5 pages=True 356 - map K move up=0.5 pages=True 357 - copymap J <C-D> 358 - copymap K <C-U> 359 - 360 - # Jumping around 361 - map H history_go -1 362 - map L history_go 1 363 - map ] move_parent 1 364 - map [ move_parent -1 365 - map } traverse 366 - map { traverse_backwards 367 - map ) jump_non 368 - 369 - map gh cd ~ 370 - map ge cd /etc 371 - map gu cd /usr 372 - map gd cd /dev 373 - map gl cd -r . 374 - map gL cd -r %f 375 - map go cd /opt 376 - map gv cd /var 377 - map gm cd /run/media 378 - map gi eval fm.cd('/run/media/' + os.getenv('USER')) 379 - map gM cd /mnt 380 - map gs cd /srv 381 - map gp cd /tmp 382 - map gr cd / 383 - map gR eval fm.cd(ranger.RANGERDIR) 384 - map g/ cd / 385 - map g? cd /usr/share/doc/ranger 386 - 387 - # External Programs 388 - map E edit 389 - map du shell -p du --max-depth=1 -h --apparent-size 390 - map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh 391 - map yp yank path 392 - map yd yank dir 393 - map yn yank name 394 - map y. yank name_without_extension 395 - 396 - # Filesystem Operations 397 - map = chmod 398 - 399 - map cw console rename%space 400 - map a rename_append 401 - map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%")) 402 - map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7) 403 - 404 - map pp paste 405 - map po paste overwrite=True 406 - map pP paste append=True 407 - map pO paste overwrite=True append=True 408 - map pl paste_symlink relative=False 409 - map pL paste_symlink relative=True 410 - map phl paste_hardlink 411 - map pht paste_hardlinked_subtree 412 - map pd console paste dest= 413 - map p`<any> paste dest=%any_path 414 - map p'<any> paste dest=%any_path 415 - 416 - map dD console delete 417 - map dT console trash 418 - 419 - map dd cut 420 - map ud uncut 421 - map da cut mode=add 422 - map dr cut mode=remove 423 - map dt cut mode=toggle 424 - 425 - map yy copy 426 - map uy uncut 427 - map ya copy mode=add 428 - map yr copy mode=remove 429 - map yt copy mode=toggle 430 - 431 - # Temporary workarounds 432 - map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier) 433 - map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier) 434 - map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier) 435 - map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier) 436 - map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier) 437 - map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier) 438 - map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier) 439 - map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier) 440 - 441 - # Searching 442 - map / console search%space 443 - map n search_next 444 - map N search_next forward=False 445 - map ct search_next order=tag 446 - map cs search_next order=size 447 - map ci search_next order=mimetype 448 - map cc search_next order=ctime 449 - map cm search_next order=mtime 450 - map ca search_next order=atime 451 - 452 - # Tabs 453 - map <C-n> tab_new 454 - map <C-w> tab_close 455 - map <TAB> tab_move 1 456 - map <S-TAB> tab_move -1 457 - map <A-Right> tab_move 1 458 - map <A-Left> tab_move -1 459 - map gt tab_move 1 460 - map gT tab_move -1 461 - map gn tab_new 462 - map gc tab_close 463 - map uq tab_restore 464 - map <a-1> tab_open 1 465 - map <a-2> tab_open 2 466 - map <a-3> tab_open 3 467 - map <a-4> tab_open 4 468 - map <a-5> tab_open 5 469 - map <a-6> tab_open 6 470 - map <a-7> tab_open 7 471 - map <a-8> tab_open 8 472 - map <a-9> tab_open 9 473 - map <a-r> tab_shift 1 474 - map <a-l> tab_shift -1 475 - 476 - # Sorting 477 - map or set sort_reverse! 478 - map oz set sort=random 479 - map os chain set sort=size; set sort_reverse=False 480 - map ob chain set sort=basename; set sort_reverse=False 481 - map on chain set sort=natural; set sort_reverse=False 482 - map om chain set sort=mtime; set sort_reverse=False 483 - map oc chain set sort=ctime; set sort_reverse=False 484 - map oa chain set sort=atime; set sort_reverse=False 485 - map ot chain set sort=type; set sort_reverse=False 486 - map oe chain set sort=extension; set sort_reverse=False 487 - 488 - map oS chain set sort=size; set sort_reverse=True 489 - map oB chain set sort=basename; set sort_reverse=True 490 - map oN chain set sort=natural; set sort_reverse=True 491 - map oM chain set sort=mtime; set sort_reverse=True 492 - map oC chain set sort=ctime; set sort_reverse=True 493 - map oA chain set sort=atime; set sort_reverse=True 494 - map oT chain set sort=type; set sort_reverse=True 495 - map oE chain set sort=extension; set sort_reverse=True 496 - 497 - map dc get_cumulative_size 498 - 499 - # Settings 500 - map zc set collapse_preview! 501 - map zd set sort_directories_first! 502 - map zh set show_hidden! 503 - map <C-h> set show_hidden! 504 - copymap <C-h> <backspace> 505 - copymap <backspace> <backspace2> 506 - map zI set flushinput! 507 - map zi set preview_images! 508 - map zm set mouse_enabled! 509 - map zp set preview_files! 510 - map zP set preview_directories! 511 - map zs set sort_case_insensitive! 512 - map zu set autoupdate_cumulative_size! 513 - map zv set use_preview_script! 514 - map zf console filter%space 515 - copymap zf zz 516 - 517 - # Filter stack 518 - map .d filter_stack add type d 519 - map .f filter_stack add type f 520 - map .l filter_stack add type l 521 - map .m console filter_stack add mime%space 522 - map .n console filter_stack add name%space 523 - map .# console filter_stack add hash%space 524 - map ." filter_stack add duplicate 525 - map .' filter_stack add unique 526 - map .| filter_stack add or 527 - map .& filter_stack add and 528 - map .! filter_stack add not 529 - map .r filter_stack rotate 530 - map .c filter_stack clear 531 - map .* filter_stack decompose 532 - map .p filter_stack pop 533 - map .. filter_stack show 534 - 535 - # Bookmarks 536 - map `<any> enter_bookmark %any 537 - map '<any> enter_bookmark %any 538 - map m<any> set_bookmark %any 539 - map um<any> unset_bookmark %any 540 - 541 - map m<bg> draw_bookmarks 542 - copymap m<bg> um<bg> `<bg> '<bg> 543 - 544 - # Generate all the chmod bindings with some python help: 545 - eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg)) 546 - eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg)) 547 - eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg)) 548 - eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg)) 549 - eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg)) 550 - 551 - eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg)) 552 - eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg)) 553 - eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg)) 554 - eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg)) 555 - eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg)) 556 - 557 - # =================================================================== 558 - # == Define keys for the console 559 - # =================================================================== 560 - # Note: Unmapped keys are passed directly to the console. 561 - 562 - # Basic 563 - cmap <tab> eval fm.ui.console.tab() 564 - cmap <s-tab> eval fm.ui.console.tab(-1) 565 - cmap <ESC> eval fm.ui.console.close() 566 - cmap <CR> eval fm.ui.console.execute() 567 - cmap <C-l> redraw_window 568 - 569 - copycmap <ESC> <C-c> 570 - copycmap <CR> <C-j> 571 - 572 - # Move around 573 - cmap <up> eval fm.ui.console.history_move(-1) 574 - cmap <down> eval fm.ui.console.history_move(1) 575 - cmap <left> eval fm.ui.console.move(left=1) 576 - cmap <right> eval fm.ui.console.move(right=1) 577 - cmap <home> eval fm.ui.console.move(right=0, absolute=True) 578 - cmap <end> eval fm.ui.console.move(right=-1, absolute=True) 579 - cmap <a-b> eval fm.ui.console.move_word(left=1) 580 - cmap <a-f> eval fm.ui.console.move_word(right=1) 581 - 582 - copycmap <a-b> <a-left> 583 - copycmap <a-f> <a-right> 584 - 585 - # Line Editing 586 - cmap <backspace> eval fm.ui.console.delete(-1) 587 - cmap <delete> eval fm.ui.console.delete(0) 588 - cmap <C-w> eval fm.ui.console.delete_word() 589 - cmap <A-d> eval fm.ui.console.delete_word(backward=False) 590 - cmap <C-k> eval fm.ui.console.delete_rest(1) 591 - cmap <C-u> eval fm.ui.console.delete_rest(-1) 592 - cmap <C-y> eval fm.ui.console.paste() 593 - 594 - # And of course the emacs way 595 - copycmap <ESC> <C-g> 596 - copycmap <up> <C-p> 597 - copycmap <down> <C-n> 598 - copycmap <left> <C-b> 599 - copycmap <right> <C-f> 600 - copycmap <home> <C-a> 601 - copycmap <end> <C-e> 602 - copycmap <delete> <C-d> 603 - copycmap <backspace> <C-h> 604 - 605 - # Note: There are multiple ways to express backspaces. <backspace> (code 263) 606 - # and <backspace2> (code 127). To be sure, use both. 607 - copycmap <backspace> <backspace2> 608 - 609 - # This special expression allows typing in numerals: 610 - cmap <allow_quantifiers> false 611 - 612 - # =================================================================== 613 - # == Pager Keybindings 614 - # =================================================================== 615 - 616 - # Movement 617 - pmap <down> pager_move down=1 618 - pmap <up> pager_move up=1 619 - pmap <left> pager_move left=4 620 - pmap <right> pager_move right=4 621 - pmap <home> pager_move to=0 622 - pmap <end> pager_move to=-1 623 - pmap <pagedown> pager_move down=1.0 pages=True 624 - pmap <pageup> pager_move up=1.0 pages=True 625 - pmap <C-d> pager_move down=0.5 pages=True 626 - pmap <C-u> pager_move up=0.5 pages=True 627 - 628 - copypmap <UP> k <C-p> 629 - copypmap <DOWN> j <C-n> <CR> 630 - copypmap <LEFT> h 631 - copypmap <RIGHT> l 632 - copypmap <HOME> g 633 - copypmap <END> G 634 - copypmap <C-d> d 635 - copypmap <C-u> u 636 - copypmap <PAGEDOWN> n f <C-F> <Space> 637 - copypmap <PAGEUP> p b <C-B> 638 - 639 - # Basic 640 - pmap <C-l> redraw_window 641 - pmap <ESC> pager_close 642 - copypmap <ESC> q Q i <F3> 643 - pmap E edit_file 644 - 645 - # =================================================================== 646 - # == Taskview Keybindings 647 - # =================================================================== 648 - 649 - # Movement 650 - tmap <up> taskview_move up=1 651 - tmap <down> taskview_move down=1 652 - tmap <home> taskview_move to=0 653 - tmap <end> taskview_move to=-1 654 - tmap <pagedown> taskview_move down=1.0 pages=True 655 - tmap <pageup> taskview_move up=1.0 pages=True 656 - tmap <C-d> taskview_move down=0.5 pages=True 657 - tmap <C-u> taskview_move up=0.5 pages=True 658 - 659 - copytmap <UP> k <C-p> 660 - copytmap <DOWN> j <C-n> <CR> 661 - copytmap <HOME> g 662 - copytmap <END> G 663 - copytmap <C-u> u 664 - copytmap <PAGEDOWN> n f <C-F> <Space> 665 - copytmap <PAGEUP> p b <C-B> 666 - 667 - # Changing priority and deleting tasks 668 - tmap J eval -q fm.ui.taskview.task_move(-1) 669 - tmap K eval -q fm.ui.taskview.task_move(0) 670 - tmap dd eval -q fm.ui.taskview.task_remove() 671 - tmap <pagedown> eval -q fm.ui.taskview.task_move(-1) 672 - tmap <pageup> eval -q fm.ui.taskview.task_move(0) 673 - tmap <delete> eval -q fm.ui.taskview.task_remove() 674 - 675 - # Basic 676 - tmap <C-l> redraw_window 677 - tmap <ESC> taskview_close 678 - copytmap <ESC> q Q w <C-c> 679 - ''; 680 - }; 681 - }
-19
Home-Manager/tools/vim/default.nix
··· 1 - { config, pkgs, inputs, ... }: 2 - 3 - { 4 - programs.vim = { 5 - enable = true; 6 - settings = { 7 - relativenumber = true; 8 - #Indent 9 - tabstop = 2; # 2 spaces for tabs (prettier default) 10 - shiftwidth = 2; # 2 spaces for indent width 11 - expandtab = true; # expand tab to spaces 12 - #Search 13 - ignorecase = true; # ignore case when searching 14 - smartcase = true; # if you include mixed case in your search, assumes you want case-sensitive 15 - #Colors 16 - background = "dark"; # colorschemes that can be light or dark will be made dark 17 - }; 18 - }; 19 - }
-9
modules/modules.nix
··· 1 - { config, lib, pkgs, inputs, ...}: 2 - 3 - { 4 - 5 - imports = [ 6 - ./nixvim/default.nix 7 - ./stilyx/graphics.nix 8 - ]; 9 - }
-14
modules/nixvim/default.nix
··· 1 - { config, pkgs, inputs, nixvim, ... }: 2 - { 3 - imports = [ 4 - ./nvim/neorg.nix 5 - ./nvim/option.nix 6 - ./nvim/keymaps.nix 7 - ./nvim/plugins.nix 8 - ./nvim/colorscheme.nix 9 - ]; 10 - programs.nixvim = { 11 - enable = true; 12 - defaultEditor = true; 13 - }; 14 - }
-9
modules/nixvim/nvim/colorscheme.nix
··· 1 - { config, pkgs, inputs, ... }: 2 - { 3 - programs.nixvim = { 4 - colorschemes.catppuccin = { 5 - enable = true; 6 - settings.flavour = "macchiato"; # "mocha"; darker 7 - }; 8 - }; 9 - }
-109
modules/nixvim/nvim/keymaps.nix
··· 1 - { config, pkgs, inputs, ... }: 2 - { 3 - programs.nixvim = { 4 - globals.mapleader = " "; 5 - keymaps = [ 6 - #Normal Key binds 7 - { 8 - action = "<cmd>redo<CR>"; 9 - key = "<S-u>"; 10 - mode = "n"; 11 - } 12 - #Buffer Navigation 13 - { 14 - action = "<cmd>BufferPrevious<CR>"; 15 - key = "<leader>,"; 16 - mode = "n"; 17 - options.desc = "Left Buffer"; 18 - } 19 - { 20 - action = "<cmd>BufferNext<CR>"; 21 - key = "<leader>."; 22 - mode = "n"; 23 - options.desc = "Right Buffer"; 24 - } 25 - { 26 - action = "<cmd>BufferClose<CR>"; 27 - key = "<leader>x"; 28 - mode = "n"; 29 - options.desc = "Close Buffer"; 30 - } 31 - #Plugins 32 - #Neorg Workspaces 33 - { 34 - action = "<cmd>Neorg workspace life<CR>"; 35 - key = "<leader>nl"; 36 - mode = "n"; 37 - options.desc = "Life Workspace"; 38 - } 39 - { 40 - action = "<cmd>Neorg workspace work<CR>"; 41 - key = "<leader>nw"; 42 - mode = "n"; 43 - options.desc = "Study Workspace"; 44 - } 45 - { 46 - action = "<cmd>Neorg workspace journal<CR>"; 47 - key = "<leader>nn"; 48 - mode = "n"; 49 - options.desc = "Journal Workspace"; 50 - } 51 - #Neorg Journal 52 - { 53 - action = "<cmd>Neorg journal today<CR>"; 54 - key = "<leader>jt"; 55 - mode = "n"; 56 - options.desc = "Today"; 57 - } 58 - { 59 - action = "<cmd>Neorg journal yesterday<CR>"; 60 - key = "<leader>jy"; 61 - mode = "n"; 62 - options.desc = "Yesterday"; 63 - } 64 - { 65 - action = "<cmd>Neorg journal tomorrow<CR>"; 66 - key = "<leader>jT"; 67 - mode = "n"; 68 - options.desc = "Tomorrow"; 69 - } 70 - #Oil 71 - { 72 - action = "<cmd>Oil<CR>"; 73 - key = "<leader>ef"; 74 - mode = "n"; 75 - } 76 - #Telescope 77 - { 78 - action = "<cmd>Telescope find_files<CR>"; 79 - key = "<leader>ff"; 80 - mode = "n"; 81 - options.desc = "Find Files"; 82 - } 83 - { 84 - action = "<cmd>Telescope oldfiles<CR>"; 85 - key = "<leader>fr"; 86 - mode = "n"; 87 - options.desc = "Recent Files"; 88 - } 89 - { 90 - action = "<cmd>Telescope live_grep<CR>"; 91 - key = "<leader>fs"; 92 - mode = "n"; 93 - options.desc = "Rip-grep"; 94 - } 95 - { 96 - action = "<cmd>Telescope grep_string<CR>"; 97 - key = "<leader>fc"; 98 - mode = "n"; 99 - options.desc = "Grep current buffer"; 100 - } 101 - # NeoGit 102 - { 103 - action = "<cmd>Neogit<CR>"; 104 - key = "<leader>gg"; 105 - mode = "n"; 106 - } 107 - ]; 108 - }; 109 - }
-90
modules/nixvim/nvim/neorg.nix
··· 1 - { config, pkgs, inputs, ... }: 2 - { 3 - programs.nixvim = { 4 - extraPlugins = [ 5 - pkgs.vimPlugins."neorg" 6 - # (pkgs.vimUtils.buildVimPlugin { 7 - # name = "neorg-conceal-wrap"; 8 - # src = pkgs.fetchFromGitHub { 9 - # owner = "benlubas"; 10 - # repo = "neorg-conceal-wrap"; 11 - # rev = "4e74be759de502bea1027b1a815667039bb2ec10"; 12 - # sha256 = "0w1rfvbasqdr1lzb3bd2ab9rdvgsm80m3x6r1gvf72bbwizic5g7"; 13 - # # nix run nixpkgs#nix-prefetch-git https://github.com/benlubas/neorg-conceal-wrap.git 14 - # }; 15 - # }) 16 - # (pkgs.vimUtils.buildVimPlugin { 17 - # name = "neorg-interim-ls"; 18 - # src = pkgs.fetchFromGitHub { 19 - # owner = "benlubas"; 20 - # repo = "neorg-interim-ls"; 21 - # rev = "2ae00fc7ab8c8823c8f602906c4f54acc362f8d9"; 22 - # sha256 = "0a45nq81pndh98gy1zqznv97mq9rl4fwc0xiijal8im895p3gf80"; 23 - # # nix run nixpkgs#nix-prefetch-git https://github.com/benlubas/neorg-interim-ls.git 24 - # }; 25 - # }) 26 - ]; 27 - extraConfigLua = /*lua*/'' 28 - vim.wo.foldlevel = 99 29 - vim.wo.conceallevel = 2 30 - require("nvim-treesitter.configs").setup { 31 - highlight = { 32 - enable = true, 33 - } 34 - } 35 - require("neorg").setup({ 36 - load = { 37 - ["core.defaults"] = {}, 38 - ["core.concealer"] = { 39 - config = { 40 - icon_preset = "diamond", 41 - }, 42 - }, 43 - ["core.summary"] = {}, 44 - ["core.ui.calendar"] = {}, 45 - ["core.latex.renderer"] = { 46 - config = { 47 - render_on_enter = true, }, }, 48 - ["core.integrations.image"] = {}, 49 - ["core.esupports.metagen"] = { config = { timezone = "implicit-local", type = "empty", undojoin_updates = "false"} }, 50 - ["core.keybinds"] = { 51 - config = { 52 - default_keybinds = true, 53 - neorg_leader = "<Leader><Leader>", 54 - }, 55 - }, 56 - ["core.journal"] = { 57 - config = { 58 - workspace = "journal", 59 - journal_folder = "/./" 60 - }, 61 - }, 62 - ["core.dirman"] = { 63 - config = { 64 - workspaces = { 65 - general = "~/Documents/Norg/", 66 - life = "~/Documents/Norg/Life/", 67 - work = "~/Documents/Norg/Study/", 68 - journal = "~/Documents/Norg/Journal/", 69 - }, 70 - default_workspace = "general", 71 - }, 72 - }, 73 - -- ["core.completion"] = { config = { engine = { module_name = "external.lsp-completion" } } }, 74 - -- ["external.conceal-wrap"] = {}, 75 - -- ["external.interim-ls"] = { 76 - -- config = { 77 - -- completion_provider = { 78 - -- -- enable/disable the completion provider. On by default. 79 - -- enable = true, 80 - -- -- Try to complete categories. Requires benlubas/neorg-se 81 - -- categories = false, 82 - -- } 83 - -- } 84 - -- }, 85 - }, 86 - }) 87 - ''; 88 - }; 89 - } 90 -
-44
modules/nixvim/nvim/option.nix
··· 1 - { config, pkgs, inputs, ... }: 2 - { 3 - programs.nixvim = { 4 - opts = { 5 - #Numbers on side 6 - nu = true; 7 - relativenumber = true; 8 - #Indent 9 - tabstop = 2; # 2 spaces for tabs (prettier default) 10 - shiftwidth = 2; # 2 spaces for indent width 11 - expandtab = true; # expand tab to spaces 12 - autoindent = true; # copy indent from current line when starting new one 13 - #Search 14 - ignorecase = true; # ignore case when searching 15 - smartcase = true; # if you include mixed case in your search, assumes you want case-sensitive 16 - #Colors 17 - termguicolors = true; 18 - background = "dark"; # colorschemes that can be light or dark will be made dark 19 - signcolumn = "yes"; # show sign column so that text doesn't shift 20 - #Backspace 21 - backspace = "indent,eol,start"; # allow backspace on indent, end of line or insert mode start position 22 - #Split windowws 23 - splitright = true; # split vertical window to the right 24 - splitbelow = true; # split horizontal window to the bottom 25 - #Undo 26 - undofile = true; 27 - #Scroll 28 - scrolloff = 8; 29 - #Update 30 - updatetime = 50; 31 - #Spelling 32 - spelllang = "en_us,ru"; 33 - spell = true; 34 - #Soft Wrap 35 - linebreak = true; 36 - breakindent = true; 37 - #Go to new directory 38 - autochdir = true; 39 - #Clipboard 40 - clipboard.providers.xclip.enable = true; 41 - }; 42 - }; 43 - } 44 -
-330
modules/nixvim/nvim/plugins.nix
··· 1 - { config, pkgs, inputs, ... }: 2 - { 3 - programs.nixvim = { 4 - extraPlugins = [ 5 - pkgs.vimPlugins."nvim-web-devicons" 6 - pkgs.vimPlugins."gitsigns-nvim" 7 - pkgs.vimPlugins."lspkind-nvim" 8 - pkgs.vimPlugins."overseer-nvim" 9 - pkgs.vimPlugins."telescope-manix" 10 - # (pkgs.vimUtils.buildVimPlugin { 11 - # name = "markview.nvim"; 12 - # src = pkgs.fetchFromGitHub { 13 - # owner = "OXY2DEV"; 14 - # repo = "markview.nvim"; 15 - # rev = "3adfe75139f755eace69277b7097d0376cb6068a"; 16 - # sha256 = "1g97w059fkcrncwxcbyqk4n1d3xl7cffm6l6faswsqhih63zrbcd"; 17 - # # nix run nixpkgs#nix-prefetch-git https://github.com/OXY2DEV/markview.nvim.git 18 - # }; 19 - # }) 20 - ]; 21 - plugins = { 22 - # neorg = { 23 - # enable = true; 24 - # }; 25 - #LSP 26 - lsp = { 27 - enable = true; 28 - servers = { 29 - bashls.enable = true; 30 - lua-ls.enable = true; 31 - nil-ls.enable = true; 32 - }; 33 - }; 34 - luasnip.enable = true; 35 - friendly-snippets.enable = true; 36 - #UI 37 - which-key = { 38 - enable = true; 39 - }; 40 - 41 - arrow = { 42 - enable = true; 43 - settings = { 44 - show_icons = true; 45 - full_path_list = [ 46 - "update_stuff" 47 - ]; 48 - save_path = '' 49 - function() 50 - return vim.fn.stdpath("cache") .. "/arrow" 51 - end 52 - ''; 53 - global_bookmarks = true; 54 - always_show_path = true; 55 - separate_by_branch = true; 56 - buffer_leader_key = "m"; 57 - }; 58 - }; 59 - 60 - barbar = { 61 - enable = true; 62 - settings = { 63 - animation = false; 64 - auto_hide = 1; 65 - }; 66 - }; 67 - 68 - ccc = { 69 - enable = true; 70 - settings = { 71 - highlighter = { 72 - auto_enable = true; 73 - }; 74 - }; 75 - }; 76 - 77 - telescope = { 78 - enable = true; 79 - enabledExtensions = [ 80 - "manix" 81 - ]; 82 - settings.defaults = { 83 - path_display = "truncate "; 84 - }; 85 - }; 86 - 87 - dashboard = { 88 - enable = true; 89 - settings = { 90 - theme = "doom"; 91 - shortcut_type = "number"; 92 - config = { 93 - header = [ 94 - '' '' 95 - '' | | ___| ___| ___ \ '' 96 - '' | _` | _` | _` | __| __ \ __ \ ) |'' 97 - '' | ( | ( | ( | \__ \ ) | ) | __/ '' 98 - '' _____| \__,_| \__,_| \__,_| ____/ ____/ ____/ _____|'' 99 - '' '' 100 - ]; 101 - center = [ 102 - { action = "Telescope oldfiles"; desc = " Recent files"; icon = "󰥔 "; key = "R";} 103 - { action = "Telescope find_files"; desc = " Find files"; icon = " "; key = "F";} 104 - { action = "ene | startinsert"; desc = " New file"; icon = " "; key = "N";} 105 - { action = "Neorg workspace life"; desc = " Neorg Life"; icon = "󰠮 "; key = "E";} 106 - { action = "Neorg workspace work"; desc = " Neorg Work"; icon = " "; key = "W";} 107 - { action = "Neorg journal today"; desc = " Neorg Journal";icon = "󰛓 "; key = "J";} 108 - { action = "qa"; desc = " Quit"; icon = "󰩈 "; key = "Q";} 109 - ]; 110 - footer = ["Just Do Something Already!"]; 111 - }; 112 - }; 113 - }; 114 - #cmp 115 - cmp = { 116 - enable = true; 117 - autoEnableSources = false; 118 - settings = { 119 - completion.completeopt = "menu,menuone,preview,noselect"; 120 - snippet.expand = /*lua*/ '' 121 - function(args) 122 - require("luasnip").lsp_expand(args.body) 123 - end, 124 - ''; 125 - sources = { 126 - __raw = /*lua*/ '' 127 - cmp.config.sources({ 128 - { name = "nvim_lsp" }, 129 - { name = "luasnip" }, -- snippets 130 - { name = "buffer" }, -- text within current buffer 131 - { name = "path" }, -- file system paths 132 - { name = "neorg" }, 133 - { name = "vimtex" }, 134 - -- { name = "codeium" }, 135 - { name = "copilot" }, 136 - { name = "bashls" }, 137 - { name = "lua_ls" }, 138 - { name = "nil_ls" }, 139 - }), 140 - ''; 141 - }; 142 - mapping = { 143 - __raw = /*lua*/ '' 144 - cmp.mapping.preset.insert({ 145 - ["<S-Tab>"] = cmp.mapping.select_prev_item(), -- previous suggestion 146 - ["<Tab>"] = cmp.mapping.select_next_item(), -- next suggestion 147 - ["<C-b>"] = cmp.mapping.scroll_docs(-4), 148 - ["<C-f>"] = cmp.mapping.scroll_docs(4), 149 - ["<C-Space>"] = cmp.mapping.complete(), -- show completion suggestions 150 - ["<ESC>"] = cmp.mapping.abort(), -- close completion window 151 - ["<CR>"] = cmp.mapping.confirm({ select = false }), 152 - }) 153 - ''; 154 - }; 155 - formatting = { 156 - format = /*lua*/ '' 157 - require("lspkind").cmp_format({ 158 - maxwidth = 50, 159 - ellipsis_char = "...", 160 - mode = "symbol", 161 - symbol_map = { Copilot = "" }, 162 - }), 163 - ''; 164 - }; 165 - }; 166 - }; 167 - 168 - cmp-path.enable = true; 169 - cmp-buffer.enable = true; 170 - cmp_luasnip.enable = true; 171 - cmp-nvim-lsp.enable = true; 172 - cmp-spell.enable = true; 173 - copilot-cmp.enable = true; 174 - #AI 175 - copilot-lua = { 176 - enable = true; 177 - panel.enabled = false; 178 - suggestion.enabled = false; 179 - filetypes = { 180 - javascript = true; 181 - typescript = true; 182 - rust = true; 183 - python = true; 184 - lua = true; 185 - nix = true; 186 - "*" = false; 187 - }; 188 - }; 189 - 190 - # codeium-nvim = { 191 - # enable = true; 192 - # }; 193 - #Workflow 194 - wtf = { 195 - enable = true; 196 - context = true; 197 - }; 198 - 199 - oil = { 200 - enable = true; 201 - settings = { 202 - delete_to_trash = true; 203 - view_options = { 204 - show_hidden = true; 205 - }; 206 - }; 207 - }; 208 - 209 - nvim-autopairs = { 210 - enable = true; 211 - settings = { 212 - check_ts = true; 213 - }; 214 - }; 215 - 216 - nix.enable = true; 217 - 218 - treesitter = { 219 - enable = true; 220 - folding = true; 221 - nixvimInjections = true; 222 - grammarPackages = with config.programs.nixvim.plugins.treesitter.package.builtGrammars; [ 223 - bash 224 - bibtex 225 - c 226 - cmake 227 - comment 228 - cpp 229 - css 230 - csv 231 - diff 232 - dockerfile 233 - fish 234 - git_rebase 235 - gitcommit 236 - gitignore 237 - go 238 - html 239 - ini 240 - javascript 241 - json 242 - jsonc 243 - julia 244 - kotlin 245 - latex 246 - lua 247 - lua 248 - luadoc 249 - make 250 - make 251 - markdown 252 - markdown_inline 253 - meson 254 - ninja 255 - nix 256 - norg 257 - org 258 - python 259 - rasi 260 - requirements 261 - rust 262 - sql 263 - sxhkdrc 264 - todotxt 265 - toml 266 - typescript 267 - typst 268 - vim 269 - vimdoc 270 - xml 271 - yaml 272 - zathurarc 273 - ]; 274 - settings = { 275 - indent.enable = true; 276 - ensure_installed = [ 277 - "bash" 278 - "fish" 279 - "gitignore" 280 - "html" 281 - "latex" 282 - "lua" 283 - "make" 284 - "markdown" 285 - "markdown_inline" 286 - "kotlin" 287 - "nix" 288 - "python" 289 - "vim" 290 - "rust" 291 - "yaml" 292 - "zathurarc" 293 - ]; 294 - }; 295 - }; 296 - 297 - image = { 298 - enable = true; 299 - }; 300 - 301 - typst-vim = { 302 - enable = true; 303 - settings = { 304 - auto_close_toc = true; 305 - pdf_viewer = "floorp"; 306 - }; 307 - }; 308 - 309 - 310 - neogit = { 311 - enable = true; 312 - }; 313 - 314 - auto-save = { 315 - enable = true; 316 - }; 317 - # Guffy 318 - presence-nvim = { 319 - enable = true; 320 - blacklist = [ 321 - "norg" 322 - "txt" 323 - ]; 324 - neovimImageText = "I am showing off, yeah"; 325 - 326 - }; 327 - }; 328 - }; 329 - } 330 -
-69
modules/stilyx/graphics.nix
··· 1 - { config, pkgs, lib, inputs, stylix, ... }: 2 - { 3 - #Themes 4 - stylix = { 5 - enable = true; 6 - image = ./wallpapers/Stars.png; 7 - base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-macchiato.yaml"; 8 - autoEnable = true; 9 - polarity = "dark"; 10 - # targets = { 11 - # bspwm.enable = false; 12 - # nixvim.enable = false; 13 - # kitty.enable = false; 14 - # fish.enable = false; 15 - # xfce.enable = true; 16 - # vesktop.enable = true; 17 - # gtk.enable = true; 18 - # }; 19 - fonts = { 20 - serif = config.stylix.fonts.monospace; 21 - sansSerif = config.stylix.fonts.monospace; 22 - emoji = { 23 - package = pkgs.noto-fonts-emoji; 24 - name = "Noto Color Emoji"; 25 - }; 26 - monospace = { 27 - package = pkgs.jetbrains-mono; 28 - name = "JetBrainsMono"; 29 - }; 30 - sizes = { 31 - terminal = 14; 32 - popups = 14; 33 - }; 34 - }; 35 - }; 36 - # gtk = { 37 - # enable = true; 38 - # theme = { 39 - # name = "Graphite-dark"; 40 - # package = pkgs.graphite-gtk-theme; 41 - # }; 42 - # iconTheme = { 43 - # name = "Candy"; 44 - # package = pkgs.candy-icons; 45 - # }; 46 - # cursorTheme = { 47 - # name = "Graphite"; 48 - # package = pkgs.graphite-cursors; 49 - # }; 50 - # gtk3.extraConfig = { 51 - # Settings = '' 52 - # gtk-application-prefer-dark-theme=1 53 - # ''; 54 - # }; 55 - # gtk4.extraConfig = { 56 - # Settings = '' 57 - # gtk-application-prefer-dark-theme=1 58 - # ''; 59 - # }; 60 - # }; 61 - # qt = { 62 - # enable = true; 63 - # platformTheme = "gtk"; 64 - # style.name = "adwaita-dark"; 65 - # }; 66 - # programs.gpg.enable = true; 67 - # 68 - # services.gpg-agent.enable = true; 69 - }
modules/stilyx/wallpapers/Bones.png

This is a binary file and will not be displayed.

modules/stilyx/wallpapers/Castle.png

This is a binary file and will not be displayed.

modules/stilyx/wallpapers/Stars.png

This is a binary file and will not be displayed.