├── README.md ├── dunst └── dunstrc ├── firefox conf ├── userChrome.css └── userContent.css ├── hypr └── hyprland.conf ├── kitty └── kitty.conf ├── neofetch └── config.conf ├── nvim ├── init.vim └── weq.vim ├── ranger ├── commands.py ├── commands_full.py ├── rc.conf ├── rifle.conf └── scope.sh ├── rofi ├── bk.rasi ├── config.rasi └── ww.rasi ├── swaync ├── config.json └── style.css ├── wal ├── dunst.sh └── templates │ ├── colors-hyprland.conf │ ├── colors-wlogout.css │ ├── dunstrc │ └── rofi.rasi ├── wallpapers ├── 5q4nvrkg3rm71.jpg ├── 8.jpg ├── 82lucx00d25c1.jpg ├── WhatsApp Image 2023-12-27 at 10.45.34.jpeg ├── audio-bunny.png ├── hk.jpg ├── k.jpg ├── nxyjhyrdqfx41.jpg ├── ok2.jpg ├── roses-dylan.png ├── simon stalenhag │ ├── by_burned_2560.jpg │ ├── by_gathering2_2560.jpg │ ├── by_home_2560.jpg │ ├── by_housevisit_2560.jpg │ ├── l_fb_06_big.jpg │ └── l_int06_big.jpg ├── swww_randomize.sh └── wallpapers │ ├── 88.jpg │ ├── 9.jpg │ ├── ay.jpg │ ├── ayy.jpg │ ├── cs.jpg │ ├── evening-sky.png │ ├── f.jpg │ ├── hk.jpg │ ├── ij.jpg │ ├── k.jpg │ ├── m.jpg │ ├── new.jpg │ ├── new_script.sh │ ├── nmm.jpg │ ├── ok.jpg │ ├── ok3.jpg │ ├── okkk.jpg │ ├── rr.jpg │ └── wall.jpg ├── waybar ├── config.jsonc ├── icons │ ├── brightness-100.png │ ├── brightness-20.png │ ├── brightness-40.png │ ├── brightness-60.png │ ├── brightness-80.png │ ├── microphone-mute.png │ ├── microphone.png │ ├── volume-high.png │ ├── volume-low.png │ ├── volume-mid.png │ └── volume-mute.png ├── oldd │ ├── config │ ├── scripts │ │ ├── mediaplayer.py │ │ ├── rofinetwork │ │ │ ├── colors.rasi │ │ │ ├── rofi-network-manager.conf │ │ │ ├── rofi-network-manager.rasi │ │ │ └── rofi-network-manager.sh │ │ └── spotify.sh │ └── style.css ├── scripts │ ├── bluetooth │ ├── brightness │ ├── mediaplayer.py │ ├── spotify.sh │ └── volume └── style.css └── wlogout ├── icons ├── hibernate.png ├── lock.png ├── logout.png ├── reboot.png ├── shutdown.png └── suspend.png ├── layout ├── noise.png ├── old.css ├── oldlay └── style.css /README.md: -------------------------------------------------------------------------------- 1 | # new-dots 2 | 3 | these are my personal stuff so if you want to use make changes accordingly (e.g username) 4 | 5 | DE/WM: Hyprland 6 | 7 | Bar: waybar 8 | 9 | Terminal: Kitty 10 | 11 | shell: zsh 12 | 13 | Theme: pywal 14 | 15 | wallpapers: swww 16 | 17 | 18 | updated screenshot: 19 | ![image](https://github.com/ssamin69/new-dots/assets/72408262/42e93cb6-ed00-4bf5-83a6-87cd60ee568f) 20 | ![image](https://github.com/ssamin69/new-dots/assets/72408262/9a7fac96-1da5-4fc5-9475-c5d33ede1acb) 21 | 22 | 23 | old images: 24 | ![image](https://github.com/ssamin69/new-dots/assets/72408262/ee3c979d-3588-40b0-8a9c-2d4e154fd840) 25 | ![image](https://github.com/ssamin69/new-dots/assets/72408262/0367bf0b-8d0c-4cb0-bbf7-57b55808f5fb) 26 | ![image](https://github.com/ssamin69/new-dots/assets/72408262/de2995f4-bfc5-4685-9347-7deb900183df) 27 | ![image](https://github.com/ssamin69/new-dots/assets/72408262/c89a09c1-4937-4787-ad5f-ecc7b75092ef) 28 | ![image](https://github.com/ssamin69/new-dots/assets/72408262/675c493f-7bd5-4405-898f-c2d0b044c332) 29 | ![image](https://github.com/ssamin69/new-dots/assets/72408262/b2699495-8625-41c0-a657-5e7874070e23) 30 | ![image](https://github.com/ssamin69/new-dots/assets/72408262/c59434ee-90c2-400f-b814-3c0a6a76ba15) 31 | ![IMG-20231213-WA0004](https://github.com/ssamin69/new-dots/assets/72408262/8b336a25-4d8a-4d1a-af6e-b32818884931) 32 | ![IMG-20231213-WA0001](https://github.com/ssamin69/new-dots/assets/72408262/9c1a234e-52b7-47ec-9a62-de45bc99a1d9) 33 | ![IMG-20231213-WA0002](https://github.com/ssamin69/new-dots/assets/72408262/5813cf89-dec1-4084-b46d-02fb879be90f) 34 | ![IMG-20231213-WA0003](https://github.com/ssamin69/new-dots/assets/72408262/1b3ffb3e-08d4-4018-b121-7961b233b8eb) 35 | ![ezgif com-speed (2)](https://github.com/ssamin69/new-dots/assets/72408262/42ee3fb8-e906-40a1-b88f-daf593083bca) 36 | 37 | 38 | 39 | 40 | firefox: [penguinFox](https://github.com/p3nguin-kun/penguinFox) 41 | 42 | ![ezgif com-speed](https://github.com/ssamin69/new-dots/assets/72408262/e08d286f-ef7f-4bf6-8055-0185ee5c056e) 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | ![image](https://github.com/ssamin69/new-dots/assets/72408262/db93cfd9-4d9a-4275-8293-cb1dcf120a94) 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /dunst/dunstrc: -------------------------------------------------------------------------------- 1 | #do not edit here, edit the template on .config/wal 2 | [global] 3 | ### Display ### 4 | 5 | # Which monitor should the notifications be displayed on. 6 | monitor = 0 7 | 8 | # Display notification on focused monitor. Possible modes are: 9 | # mouse: follow mouse pointer 10 | # keyboard: follow window with keyboard focus 11 | # none: don't follow anything 12 | # 13 | # "keyboard" needs a window manager that exports the 14 | # _NET_ACTIVE_WINDOW property. 15 | # This should be the case for almost all modern window managers. 16 | # 17 | # If this option is set to mouse or keyboard, the monitor option 18 | # will be ignored. 19 | follow = none 20 | 21 | ### Geometry ### 22 | 23 | # dynamic width from 0 to 300 24 | # width = (0, 300) 25 | # constant width of 300 26 | width = 300 27 | 28 | # The maximum height of a single notification, excluding the frame. 29 | height = (0,300) 30 | 31 | # Position the notification in the top right corner 32 | origin = top-center 33 | 34 | # Offset from the origin 35 | offset = 0x30 36 | 37 | # Scale factor. It is auto-detected if value is 0. 38 | scale = 0 39 | 40 | # Maximum number of notification (0 means no limit) 41 | notification_limit = 20 42 | 43 | ### Progress bar ### 44 | 45 | # Turn on the progess bar. It appears when a progress hint is passed with 46 | # for example dunstify -h int:value:12 47 | progress_bar = true 48 | 49 | # Set the progress bar height. This includes the frame, so make sure 50 | # it's at least twice as big as the frame width. 51 | progress_bar_height = 10 52 | 53 | # Set the frame width of the progress bar 54 | progress_bar_frame_width = 1 55 | 56 | # Set the minimum width for the progress bar 57 | progress_bar_min_width = 150 58 | 59 | # Set the maximum width for the progress bar 60 | progress_bar_max_width = 300 61 | 62 | # Corner radius for the progress bar. 0 disables rounded corners. 63 | progress_bar_corner_radius = 10 64 | 65 | # Corner radius for the icon image. 66 | icon_corner_radius = 0 67 | 68 | # Show how many messages are currently hidden (because of 69 | # notification_limit). 70 | indicate_hidden = yes 71 | 72 | # The transparency of the window. Range: [0; 100]. 73 | # This option will only work if a compositing window manager is 74 | # present (e.g. xcompmgr, compiz, etc.). (X11 only) 75 | transparency = 5 76 | 77 | # Draw a line of "separator_height" pixel height between two 78 | # notifications. 79 | # Set to 0 to disable. 80 | # If gap_size is greater than 0, this setting will be ignored. 81 | separator_height = 2 82 | 83 | # Padding between text and separator. 84 | padding = 8 85 | 86 | # Horizontal padding. 87 | horizontal_padding = 8 88 | 89 | # Padding between text and icon. 90 | text_icon_padding = 0 91 | 92 | # Defines width in pixels of frame around the notification window. 93 | # Set to 0 to disable. 94 | frame_width = 3 95 | 96 | # Defines color of the frame around the notification window. 97 | frame_color = "#0191EA" 98 | 99 | # Size of gap to display between notifications - requires a compositor. 100 | # If value is greater than 0, separator_height will be ignored and a border 101 | # of size frame_width will be drawn around each notification instead. 102 | # Click events on gaps do not currently propagate to applications below. 103 | gap_size = 0 104 | 105 | # Define a color for the separator. 106 | # possible values are: 107 | # * auto: dunst tries to find a color fitting to the background; 108 | # * foreground: use the same color as the foreground; 109 | # * frame: use the same color as the frame; 110 | # * anything else will be interpreted as a X color. 111 | separator_color = frame 112 | 113 | # Sort messages by urgency. 114 | sort = yes 115 | 116 | # Don't remove messages, if the user is idle (no mouse or keyboard input) 117 | # for longer than idle_threshold seconds. 118 | # Set to 0 to disable. 119 | # A client can set the 'transient' hint to bypass this. See the rules 120 | # section for how to disable this if necessary 121 | # idle_threshold = 120 122 | 123 | ### Text ### 124 | 125 | font = "JetBrainsMono Nerd Font" 11 126 | 127 | # The spacing between lines. If the height is smaller than the 128 | # font height, it will get raised to the font height. 129 | line_height = 3 130 | 131 | # Possible values are: 132 | # full: Allow a small subset of html markup in notifications: 133 | # bold 134 | # italic 135 | # strikethrough 136 | # underline 137 | # 138 | # For a complete reference see 139 | # . 140 | # 141 | # strip: This setting is provided for compatibility with some broken 142 | # clients that send markup even though it's not enabled on the 143 | # server. Dunst will try to strip the markup but the parsing is 144 | # simplistic so using this option outside of matching rules for 145 | # specific applications *IS GREATLY DISCOURAGED*. 146 | # 147 | # no: Disable markup parsing, incoming notifications will be treated as 148 | # plain text. Dunst will not advertise that it has the body-markup 149 | # capability if this is set as a global setting. 150 | # 151 | # It's important to note that markup inside the format option will be parsed 152 | # regardless of what this is set to. 153 | markup = full 154 | 155 | # The format of the message. Possible variables are: 156 | # %a appname 157 | # %s summary 158 | # %b body 159 | # %i iconname (including its path) 160 | # %I iconname (without its path) 161 | # %p progress value if set ([ 0%] to [100%]) or nothing 162 | # %n progress value if set without any extra characters 163 | # %% Literal % 164 | # Markup is allowed 165 | format = "%s\n%b" 166 | 167 | # Alignment of message text. 168 | # Possible values are "left", "center" and "right". 169 | alignment = left 170 | 171 | # Vertical alignment of message text and icon. 172 | # Possible values are "top", "center" and "bottom". 173 | vertical_alignment = center 174 | 175 | # Show age of message if message is older than show_age_threshold 176 | # seconds. 177 | # Set to -1 to disable. 178 | show_age_threshold = 60 179 | 180 | # Specify where to make an ellipsis in long lines. 181 | # Possible values are "start", "middle" and "end". 182 | ellipsize = middle 183 | 184 | # Ignore newlines '\n' in notifications. 185 | ignore_newline = no 186 | 187 | # Stack together notifications with the same content 188 | stack_duplicates = true 189 | 190 | # Hide the count of stacked notifications with the same content 191 | hide_duplicate_count = false 192 | 193 | # Display indicators for URLs (U) and actions (A). 194 | show_indicators = yes 195 | 196 | ### Icons ### 197 | 198 | # Recursive icon lookup. You can set a single theme, instead of having to 199 | # define all lookup paths. 200 | enable_recursive_icon_lookup = true 201 | 202 | # Set icon theme (only used for recursive icon lookup) 203 | icon_theme = Adwaita 204 | # You can also set multiple icon themes, with the leftmost one being used first. 205 | # icon_theme = "Adwaita, breeze" 206 | 207 | # Align icons left/right/top/off 208 | icon_position = left 209 | 210 | # Scale small icons up to this size, set to 0 to disable. Helpful 211 | # for e.g. small files or high-dpi screens. In case of conflict, 212 | # max_icon_size takes precedence over this. 213 | min_icon_size = 32 214 | 215 | # Scale larger icons down to this size, set to 0 to disable 216 | max_icon_size = 128 217 | 218 | # Paths to default icons (only neccesary when not using recursive icon lookup) 219 | icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ 220 | 221 | ### History ### 222 | 223 | # Should a notification popped up from history be sticky or timeout 224 | # as if it would normally do. 225 | sticky_history = yes 226 | 227 | # Maximum amount of notifications kept in history 228 | history_length = 20 229 | 230 | ### Misc/Advanced ### 231 | 232 | # dmenu path. 233 | dmenu = /usr/bin/dmenu -p dunst: 234 | 235 | # Browser for opening urls in context menu. 236 | browser = /usr/bin/xdg-open 237 | 238 | # Always run rule-defined scripts, even if the notification is suppressed 239 | always_run_script = true 240 | 241 | # Define the title of the windows spawned by dunst 242 | title = Dunst 243 | 244 | # Define the class of the windows spawned by dunst 245 | class = Dunst 246 | 247 | # Define the corner radius of the notification window 248 | # in pixel size. If the radius is 0, you have no rounded 249 | # corners. 250 | # The radius will be automatically lowered if it exceeds half of the 251 | # notification height to avoid clipping text and/or icons. 252 | corner_radius = 10 253 | 254 | # Ignore the dbus closeNotification message. 255 | # Useful to enforce the timeout set by dunst configuration. Without this 256 | # parameter, an application may close the notification sent before the 257 | # user defined timeout. 258 | ignore_dbusclose = false 259 | 260 | ### Wayland ### 261 | # These settings are Wayland-specific. They have no effect when using X11 262 | 263 | # Uncomment this if you want to let notications appear under fullscreen 264 | # applications (default: overlay) 265 | # layer = top 266 | 267 | # Set this to true to use X11 output on Wayland. 268 | force_xwayland = false 269 | 270 | ### Legacy 271 | 272 | # Use the Xinerama extension instead of RandR for multi-monitor support. 273 | # This setting is provided for compatibility with older nVidia drivers that 274 | # do not support RandR and using it on systems that support RandR is highly 275 | # discouraged. 276 | # 277 | # By enabling this setting dunst will not be able to detect when a monitor 278 | # is connected or disconnected which might break follow mode if the screen 279 | # layout changes. 280 | force_xinerama = false 281 | 282 | ### mouse 283 | 284 | # Defines list of actions for each mouse event 285 | # Possible values are: 286 | # * none: Don't do anything. 287 | # * do_action: Invoke the action determined by the action_name rule. If there is no 288 | # such action, open the context menu. 289 | # * open_url: If the notification has exactly one url, open it. If there are multiple 290 | # ones, open the context menu. 291 | # * close_current: Close current notification. 292 | # * close_all: Close all notifications. 293 | # * context: Open context menu for the notification. 294 | # * context_all: Open context menu for all notifications. 295 | # These values can be strung together for each mouse event, and 296 | # will be executed in sequence. 297 | mouse_left_click = close_current 298 | mouse_middle_click = do_action, close_current 299 | mouse_right_click = close_all 300 | 301 | # Experimental features that may or may not work correctly. Do not expect them 302 | # to have a consistent behaviour across releases. 303 | [experimental] 304 | # Calculate the dpi to use on a per-monitor basis. 305 | # If this setting is enabled the Xft.dpi value will be ignored and instead 306 | # dunst will attempt to calculate an appropriate dpi value for each monitor 307 | # using the resolution and physical size. This might be useful in setups 308 | # where there are multiple screens with very different dpi values. 309 | per_monitor_dpi = false 310 | 311 | 312 | [urgency_low] 313 | # IMPORTANT: colors have to be defined in quotation marks. 314 | # Otherwise the "#" and following would be interpreted as a comment. 315 | background = "#020132" 316 | foreground = "#c5ebf5" 317 | timeout = 6 318 | # Icon for notifications with low urgency, uncomment to enable 319 | #default_icon = /path/to/icon 320 | 321 | [urgency_normal] 322 | background = "#020132" 323 | foreground = "#c5ebf5" 324 | timeout = 6 325 | # Icon for notifications with normal urgency, uncomment to enable 326 | #default_icon = /path/to/icon 327 | 328 | [urgency_critical] 329 | background = "#90000070" 330 | foreground = "#ffffff" 331 | frame_color = "#ffffff" 332 | timeout = 6 333 | # Icon for notifications with critical urgency, uncomment to enable 334 | #default_icon = /path/to/icon 335 | 336 | # Every section that isn't one of the above is interpreted as a rules to 337 | # override settings for certain messages. 338 | # 339 | # Messages can be matched by 340 | # appname (discouraged, see desktop_entry) 341 | # body 342 | # category 343 | # desktop_entry 344 | # icon 345 | # match_transient 346 | # msg_urgency 347 | # stack_tag 348 | # summary 349 | # 350 | # and you can override the 351 | # background 352 | # foreground 353 | # format 354 | # frame_color 355 | # fullscreen 356 | # new_icon 357 | # set_stack_tag 358 | # set_transient 359 | # set_category 360 | # timeout 361 | # urgency 362 | # icon_position 363 | # skip_display 364 | # history_ignore 365 | # action_name 366 | # word_wrap 367 | # ellipsize 368 | # alignment 369 | # hide_text 370 | # 371 | # Shell-like globbing will get expanded. 372 | # 373 | # Instead of the appname filter, it's recommended to use the desktop_entry filter. 374 | # GLib based applications export their desktop-entry name. In comparison to the appname, 375 | # the desktop-entry won't get localized. 376 | # 377 | # SCRIPTING 378 | # You can specify a script that gets run when the rule matches by 379 | # setting the "script" option. 380 | # The script will be called as follows: 381 | # script appname summary body icon urgency 382 | # where urgency can be "LOW", "NORMAL" or "CRITICAL". 383 | # 384 | # NOTE: It might be helpful to run dunst -print in a terminal in order 385 | # to find fitting options for rules. 386 | 387 | # Disable the transient hint so that idle_threshold cannot be bypassed from the 388 | # client 389 | #[transient_disable] 390 | # match_transient = yes 391 | # set_transient = no 392 | # 393 | # Make the handling of transient notifications more strict by making them not 394 | # be placed in history. 395 | #[transient_history_ignore] 396 | # match_transient = yes 397 | # history_ignore = yes 398 | 399 | # fullscreen values 400 | # show: show the notifications, regardless if there is a fullscreen window opened 401 | # delay: displays the new notification, if there is no fullscreen window active 402 | # If the notification is already drawn, it won't get undrawn. 403 | # pushback: same as delay, but when switching into fullscreen, the notification will get 404 | # withdrawn from screen again and will get delayed like a new notification 405 | #[fullscreen_delay_everything] 406 | # fullscreen = delay 407 | #[fullscreen_show_critical] 408 | # msg_urgency = critical 409 | # fullscreen = show 410 | 411 | #[espeak] 412 | # summary = "*" 413 | # script = dunst_espeak.sh 414 | 415 | #[script-test] 416 | # summary = "*script*" 417 | # script = dunst_test.sh 418 | 419 | #[ignore] 420 | # # This notification will not be displayed 421 | # summary = "foobar" 422 | # skip_display = true 423 | 424 | #[history-ignore] 425 | # # This notification will not be saved in history 426 | # summary = "foobar" 427 | # history_ignore = yes 428 | 429 | #[skip-display] 430 | # # This notification will not be displayed, but will be included in the history 431 | # summary = "foobar" 432 | # skip_display = yes 433 | 434 | #[signed_on] 435 | # appname = Pidgin 436 | # summary = "*signed on*" 437 | # urgency = low 438 | # 439 | #[signed_off] 440 | # appname = Pidgin 441 | # summary = *signed off* 442 | # urgency = low 443 | # 444 | #[says] 445 | # appname = Pidgin 446 | # summary = *says* 447 | # urgency = critical 448 | # 449 | #[twitter] 450 | # appname = Pidgin 451 | # summary = *twitter.com* 452 | # urgency = normal 453 | # 454 | #[stack-volumes] 455 | # appname = "some_volume_notifiers" 456 | # set_stack_tag = "volume" 457 | # 458 | # vim: ft=cfg 459 | -------------------------------------------------------------------------------- /firefox conf/userChrome.css: -------------------------------------------------------------------------------- 1 | /* 2 | * penguinFox 3 | * by p3nguin-kun 4 | */ 5 | 6 | /* config */ 7 | 8 | * { 9 | --animation-speed: 0.2s; 10 | --button-corner-rounding: 30px; 11 | --urlbar-container-height: 40px !important; 12 | --urlbar-min-height: 30px !important; 13 | --urlbar-height: 30px !important; 14 | --urlbar-toolbar-height: 38px !important; 15 | --moz-hidden-unscrollable: scroll !important; 16 | --toolbarbutton-border-radius: 3px !important; 17 | --tabs-border-color: transparent; 18 | } 19 | 20 | :root { 21 | --window: -moz-Dialog !important; 22 | --secondary: color-mix(in srgb, currentColor 5%, -moz-Dialog) !important; 23 | --uc-border-radius: 0px; 24 | --uc-status-panel-spacing: 0px; 25 | --uc-page-action-margin: 7px; 26 | } 27 | 28 | /* animation and effect */ 29 | #nav-bar:not([customizing]) { 30 | visibility: visible; 31 | margin-top: -40px; 32 | transition-delay: 0.1s; 33 | filter: alpha(opacity=0); 34 | opacity: 0; 35 | transition: visibility, ease 0.1s, margin-top, ease 0.1s, opacity, ease 0.1s, 36 | rotate, ease 0.1s !important; 37 | } 38 | 39 | #nav-bar:hover, 40 | #nav-bar:focus-within, 41 | #urlbar[focused='true'], 42 | #identity-box[open='true'], 43 | #titlebar:hover + #nav-bar:not([customizing]), 44 | #toolbar-menubar:not([inactive='true']) ~ #nav-bar:not([customizing]) { 45 | visibility: visible; 46 | 47 | margin-top: 0px; 48 | filter: alpha(opacity=100); 49 | opacity: 100; 50 | margin-bottom: -0.2px; 51 | } 52 | #PersonalToolbar { 53 | margin-top: 0px; 54 | } 55 | #nav-bar .toolbarbutton-1[open='true'] { 56 | visibility: visible; 57 | opacity: 100; 58 | } 59 | 60 | :root:not([customizing]) :hover > .tabbrowser-tab:not(:hover) { 61 | transition: blur, ease 0.1s !important; 62 | } 63 | 64 | :root:not([customizing]) :not(:hover) > .tabbrowser-tab { 65 | transition: blur, ease 0.1s !important; 66 | } 67 | 68 | #tabbrowser-tabs .tab-label-container[customizing] { 69 | color: transparent; 70 | transition: ease 0.1s; 71 | transition-delay: 0.2s; 72 | } 73 | 74 | .tabbrowser-tab:not([pinned]) .tab-icon-image ,.bookmark-item .toolbarbutton-icon{opacity: 0!important; transition: .15s !important; width: 0!important; padding-left: 16px!important} 75 | .tabbrowser-tab:not([pinned]):hover .tab-icon-image,.bookmark-item:hover .toolbarbutton-icon{opacity: 100!important; transition: .15s !important; display: inline-block!important; width: 16px!important; padding-left: 0!important} 76 | .tabbrowser-tab:not([hover]) .tab-icon-image,.bookmark-item:not([hover]) .toolbarbutton-icon{padding-left: 0!important} 77 | 78 | /* Removes annoying buttons and spaces */ 79 | .titlebar-spacer[type="pre-tabs"], .titlebar-spacer[type="post-tabs"]{display: none !important} 80 | #tabbrowser-tabs{border-inline-start-width: 0!important} 81 | 82 | /* Makes some buttons nicer */ 83 | #PanelUI-menu-button, #unified-extensions-button, #reload-button, #stop-button {padding: 2px !important} 84 | #reload-button, #stop-button{margin: 1px !important;} 85 | 86 | /* X-button */ 87 | :root { 88 | --show-tab-close-button: none; 89 | --show-tab-close-button-hover: -moz-inline-block; 90 | } 91 | .tabbrowser-tab:not([pinned]) .tab-close-button { display: var(--show-tab-close-button) !important; } 92 | .tabbrowser-tab:not([pinned]):hover .tab-close-button { display: var(--show-tab-close-button-hover) !important } 93 | 94 | /* tabbar */ 95 | 96 | /* Hide the secondary Tab Label 97 | * e.g. playing indicator (the text, not the icon) */ 98 | .tab-secondary-label { display: none !important; } 99 | 100 | :root { 101 | --toolbarbutton-border-radius: 0 !important; 102 | --tab-border-radius: 0 !important; 103 | --tab-block-margin: 0 !important; 104 | } 105 | 106 | .tabbrowser-tab:is([visuallyselected='true'], [multiselected]) 107 | > .tab-stack 108 | > .tab-background { 109 | box-shadow: none !important; 110 | } 111 | 112 | .tabbrowser-tab[last-visible-tab='true'] { 113 | padding-inline-end: 0 !important; 114 | } 115 | 116 | #tabs-newtab-button { 117 | padding-left: 0 !important; 118 | } 119 | 120 | /* multi tab selection */ 121 | #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([multiselected]) 122 | > .tab-stack 123 | > .tab-background:-moz-lwtheme { outline-color: var(--toolbarseparator-color) !important; } 124 | 125 | /* remove gap after pinned tabs */ 126 | #tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs]) 127 | > #tabbrowser-arrowscrollbox 128 | > .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) { margin-inline-start: 0 !important; } 129 | 130 | /* Removes annoying border */ 131 | #navigator-toolbox{border:none !important;} 132 | 133 | /* Removes the annoying rainbow thing from the hamburger */ 134 | #appMenu-fxa-separator{border-image:none !important;} 135 | -------------------------------------------------------------------------------- /firefox conf/userContent.css: -------------------------------------------------------------------------------- 1 | @-moz-document url-prefix(about:){ 2 | 3 | /* Removes the scrollbar on some places */ 4 | body,html{overflow-y: auto} 5 | 6 | /* Devtools */ 7 | @-moz-document url-prefix(about:devtools){ 8 | #toolbox-container{margin-top: 10px !important} 9 | .devtools-tabbar{background: transparent !important} 10 | .devtools-tab-line{border-radius: 0 0 5px 5px} 11 | .customize-animate-enter-done,.customize-menu,.top-site-outer:hover,button{background-color: transparent!important}} 12 | 13 | /* Newtab */ 14 | @-moz-document url("about:home"), url("about:newtab"){ 15 | .search-wrapper .search-handoff-button .fake-caret {top: 13px !important; inset-inline-start: 48px !important} 16 | .search-wrapper .logo-and-wordmark{opacity: 0.9 !important; order: 1 !important; margin-bottom: 0 !important; flex: 1 !important; flex-basis: 20% !important} 17 | .search-wrapper .search-handoff-button .fake-caret{top: 13px !important; inset-inline-start: 48px !important} 18 | .search-wrapper .logo-and-wordmark{opacity: 0.9 !important; order: 1 !important; margin-bottom: 0 !important; flex: 1 !important; flex-basis: 20% !important} 19 | .outer-wrapper .search-wrapper{padding: 0px !important; display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; justify-content: center !important; align-items: center !important; align-content: space-around !important; gap: 20px 10px !important} 20 | .search-wrapper .logo-and-wordmark .logo{background-size: 60px !important; height: 60px !important; width: 60px !important} 21 | .search-wrapper .search-inner-wrapper{min-height: 42px !important; order: 2 !important; flex: 3 !important; flex-basis: 60% !important; top: 4px !important} 22 | .search-wrapper .search-inner-wrapper{min-height: 42px !important; order: 2 !important; flex: 3 !important; flex-basis: 60% !important; top: 4px !important} 23 | .outer-wrapper.ds-outer-wrapper-breakpoint-override.only-search.visible-logo{display: flex !important; padding-top: 0px !important;vertical-align: middle} 24 | .customize-menu{border-radius: 10px 0 0 10px !important} 25 | #root > div{align-items: center; display: flex}}} 26 | 27 | -------------------------------------------------------------------------------- /hypr/hyprland.conf: -------------------------------------------------------------------------------- 1 | source = ~/.cache/wal/colors-hyprland.conf 2 | ######################################################################################## 3 | AUTOGENERATED HYPR CONFIG. 4 | PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, 5 | OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. 6 | ######################################################################################## 7 | 8 | # 9 | # Please note not all available settings / options are set here. 10 | # For a full list, see the wiki 11 | # 12 | 13 | # autogenerated = 1 # remove this line to remove the warning 14 | 15 | # See https://wiki.hyprland.org/Configuring/Monitors/ 16 | monitor=eDP-1, 1366x768@60, 0x0, 1 17 | 18 | 19 | # See https://wiki.hyprland.org/Configuring/Keywords/ for more 20 | 21 | # Execute your favorite apps at launch 22 | exec-once = waybar 23 | exec-once = swww init 24 | exec-once = swaync 25 | exec-once = blueman-applet 26 | exec-once = nm-applet 27 | misc { 28 | disable_hyprland_logo = true 29 | } 30 | # Source a file (multi-file configs) 31 | # source = ~/.config/hypr/mocha.conf 32 | 33 | # Some default env vars. 34 | env = XCURSOR_SIZE,20 35 | env = MOZ_ENABLE_WAYLAND,1 36 | 37 | # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ 38 | input { 39 | kb_layout = us 40 | kb_variant = 41 | kb_model = 42 | kb_options = 43 | kb_rules = 44 | 45 | follow_mouse = 1 46 | 47 | touchpad { 48 | natural_scroll = no 49 | } 50 | 51 | sensitivity = 0 # -1.0 - 1.0, 0 means no modification. 52 | } 53 | 54 | general { 55 | # See https://wiki.hyprland.org/Configuring/Variables/ for more 56 | 57 | gaps_in = 3 58 | gaps_out = 10 59 | border_size = 4 60 | col.active_border = $color11 61 | col.inactive_border = $color0 62 | 63 | layout = dwindle 64 | } 65 | 66 | decoration { 67 | # See https://wiki.hyprland.org/Configuring/Variables/ for more 68 | 69 | blurls=gtk-layer-shell 70 | rounding = 0 71 | 72 | blur { 73 | enabled = true 74 | size = 3 75 | passes = 2 76 | new_optimizations = on 77 | ignore_opacity = true 78 | xray = true 79 | 80 | 81 | } 82 | active_opacity = 1.0 83 | inactive_opacity = 1.0 84 | fullscreen_opacity = 1.0 85 | 86 | drop_shadow = yes 87 | shadow_range = 5 88 | shadow_render_power = 4 89 | col.shadow = rgba(1a1a1aee) 90 | } 91 | 92 | animations { 93 | enabled = yes 94 | 95 | # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more 96 | 97 | bezier = myBezier, 0.05, 0.9, 0.1, 1.05 98 | 99 | animation = windows, 1, 7, myBezier 100 | animation = windowsOut, 1, 7, default, popin 80% 101 | animation = border, 1, 10, default 102 | animation = borderangle, 1, 8, default 103 | animation = fade, 1, 7, default 104 | animation = workspaces, 1, 6, default 105 | } 106 | 107 | dwindle { 108 | # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more 109 | pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below 110 | preserve_split = yes # you probably want this 111 | } 112 | 113 | master { 114 | # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more 115 | new_is_master = true 116 | } 117 | 118 | gestures { 119 | # See https://wiki.hyprland.org/Configuring/Variables/ for more 120 | workspace_swipe = off 121 | } 122 | 123 | # Example per-device config 124 | # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more 125 | device:epic-mouse-v1 { 126 | sensitivity = -0.5 127 | } 128 | 129 | # Example windowrule v1 130 | # windowrule = float, ^(kitty)$ 131 | # Example windowrule v2 132 | # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ 133 | # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more 134 | 135 | 136 | # See https://wiki.hyprland.org/Configuring/Keywords/ for more 137 | $mainMod = SUPER 138 | 139 | # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more 140 | bind = $mainMod, Q, exec, kitty 141 | bind = $mainMod, C, killactive, 142 | bind = $mainMod, M, exit, 143 | bind = $mainMod, E, exec, Thunar 144 | bind = $mainMod, V, togglefloating, 145 | bind = $mainMod, R, exec, rofi -show run 146 | bind = $mainMod, P, pseudo, # dwindle 147 | bind = $mainMod, J, togglesplit, # dwindle 148 | bind = , Print, exec, grim -g "$(slurp)" - | wl-copy 149 | bind = $mainMod, B, exec, /home/samething/.config/brightness.sh 150 | bind = $mainMod, N, exec, swaync-client -t 151 | 152 | # Move focus with mainMod + arrow keys 153 | bind = $mainMod, left, movefocus, l 154 | bind = $mainMod, right, movefocus, r 155 | bind = $mainMod, up, movefocus, u 156 | bind = $mainMod, down, movefocus, d 157 | 158 | # Switch workspaces with mainMod + [0-9] 159 | bind = $mainMod, 1, workspace, 1 160 | bind = $mainMod, 2, workspace, 2 161 | bind = $mainMod, 3, workspace, 3 162 | bind = $mainMod, 4, workspace, 4 163 | bind = $mainMod, 5, workspace, 5 164 | bind = $mainMod, 6, workspace, 6 165 | bind = $mainMod, 7, workspace, 7 166 | bind = $mainMod, 8, workspace, 8 167 | bind = $mainMod, 9, workspace, 9 168 | bind = $mainMod, 0, workspace, 10 169 | 170 | # Move active window to a workspace with mainMod + SHIFT + [0-9] 171 | bind = $mainMod SHIFT, 1, movetoworkspace, 1 172 | bind = $mainMod SHIFT, 2, movetoworkspace, 2 173 | bind = $mainMod SHIFT, 3, movetoworkspace, 3 174 | bind = $mainMod SHIFT, 4, movetoworkspace, 4 175 | bind = $mainMod SHIFT, 5, movetoworkspace, 5 176 | bind = $mainMod SHIFT, 6, movetoworkspace, 6 177 | bind = $mainMod SHIFT, 7, movetoworkspace, 7 178 | bind = $mainMod SHIFT, 8, movetoworkspace, 8 179 | bind = $mainMod SHIFT, 9, movetoworkspace, 9 180 | bind = $mainMod SHIFT, 0, movetoworkspace, 10 181 | 182 | # Scroll through existing workspaces with mainMod + scroll 183 | bind = $mainMod, mouse_down, workspace, e+1 184 | bind = $mainMod, mouse_up, workspace, e-1 185 | 186 | # Move/resize windows with mainMod + LMB/RMB and dragging 187 | bindm = $mainMod, mouse:272, movewindow 188 | bindm = $mainMod, mouse:273, resizewindow 189 | 190 | layerrule = blur, ^(waybar)$ 191 | layerrule = blur, ^(swaync)$ 192 | layerrule = ignorezero, gtk-layer-shell 193 | layerrule = ignorezero, rofi 194 | layerrule = ignorezero, nautilus 195 | layerrule = ignorezero, eww 196 | 197 | -------------------------------------------------------------------------------- /kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | 2 | include ~/.cache/wal/colors-kitty.conf 3 | 4 | #cursor 5 | #cursor #8fee96 6 | cursor_shape underline 7 | 8 | term xterm-kitty 9 | background_opacity 1 10 | 11 | 12 | allow_remote_control yes 13 | -------------------------------------------------------------------------------- /neofetch/config.conf: -------------------------------------------------------------------------------- 1 | # Source: https://github.com/Chick2D/neofetch-themes/ 2 | # Do consider checking out the repository, it has a ton of great configs like this. 3 | 4 | # Made by Chick (BlockFetch) 5 | 6 | # Customization Wiki https://github.com/dylanaraps/neofetch/wiki/Customizing-Info 7 | 8 | print_info() { 9 | 10 | info " ​ ​ ${cl5}██ CPU" cpu 11 | info " ​ ​ ${cl2}██ GPU" gpu 12 | info " ​ ​ ${cl6}██ Distro" distro 13 | info " ​ ​ ${cl4}██ Kernel" kernel 14 | info " ​ ​ ${cl1}██ WM" de 15 | info " ​ ​ ${cl7}██ Shell" shell 16 | info " ​ ​ ${cl3}██ Packages" packages 17 | info " ​ ​ ${cl5}██ Memory" memory 18 | 19 | info cols 20 | } 21 | 22 | kernel_shorthand="on" 23 | distro_shorthand="off" 24 | os_arch="off" 25 | uptime_shorthand="on" 26 | memory_percent="on" 27 | package_managers="on" 28 | shell_path="off" 29 | shell_version="on" 30 | speed_type="bios_limit" 31 | speed_shorthand="on" 32 | cpu_brand="off" 33 | cpu_speed="off" 34 | cpu_cores="logical" 35 | cpu_temp="off" 36 | gpu_brand="off" 37 | gpu_type="all" 38 | refresh_rate="on" 39 | gtk_shorthand="on" 40 | gtk2="on" 41 | gtk3="on" 42 | public_ip_host="http://ident.me" 43 | public_ip_timeout=2 44 | disk_show=('/') 45 | music_player="vlc" 46 | song_format="%artist% - %title%" 47 | song_shorthand="off" 48 | colors=(distro) 49 | bold="on" 50 | underline_enabled="on" 51 | underline_char="-" 52 | separator="" 53 | color_blocks="off" 54 | block_range=(0 15) # Colorblocks 55 | 56 | # Colors for custom colorblocks 57 | magenta="\033[1;35m" 58 | green="\033[1;32m" 59 | white="\033[1;37m" 60 | blue="\033[1;34m" 61 | red="\033[1;31m" 62 | black="\033[1;40;30m" 63 | yellow="\033[1;33m" 64 | cyan="\033[1;36m" 65 | reset="\033[0m" 66 | bgyellow="\033[1;43;33m" 67 | bgwhite="\033[1;47;37m" 68 | cl0="${reset}" 69 | cl1="${magenta}" 70 | cl2="${green}" 71 | cl3="${white}" 72 | cl4="${blue}" 73 | cl5="${red}" 74 | cl6="${yellow}" 75 | cl7="${cyan}" 76 | cl8="${black}" 77 | cl9="${bgyellow}" 78 | cl10="${bgwhite}" 79 | 80 | block_width=4 81 | block_height=1 82 | 83 | bar_char_elapsed="-" 84 | bar_char_total="=" 85 | bar_border="on" 86 | bar_length=15 87 | bar_color_elapsed="distro" 88 | bar_color_total="distro" 89 | 90 | cpu_display="on" 91 | memory_display="on" 92 | battery_display="on" 93 | disk_display="on" 94 | 95 | image_backend="ascii" 96 | #image_source="$HOME/" 97 | image_size="auto" 98 | image_loop="off" 99 | 100 | ascii_distro="arch_small" 101 | ascii_colors=(distro) 102 | ascii_bold="on" 103 | 104 | thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" 105 | crop_mode="normal" 106 | crop_offset="center" 107 | 108 | gap=2 109 | 110 | yoffset=0 111 | xoffset=0 112 | 113 | stdout="off" 114 | -------------------------------------------------------------------------------- /nvim/init.vim: -------------------------------------------------------------------------------- 1 | call plug#begin() 2 | 3 | Plug 'catppuccin/nvim', { 'as': 'catppuccin' } 4 | Plug 'ryanoasis/vim-devicons' 5 | Plug 'SirVer/ultisnips' 6 | Plug 'honza/vim-snippets' 7 | Plug 'scrooloose/nerdtree' 8 | Plug 'preservim/nerdcommenter' 9 | Plug 'mhinz/vim-startify' 10 | Plug 'neoclide/coc.nvim', {'branch': 'release'} 11 | Plug 'nvim-lualine/lualine.nvim' 12 | " If you want to have icons in your statusline choose one of these 13 | Plug 'nvim-tree/nvim-web-devicons' 14 | Plug 'AlphaTechnolog/pywal.nvim', { 'as': 'pywal' } 15 | call plug#end() 16 | " Start NERDTree and put the cursor back in the other window. 17 | autocmd VimEnter * NERDTree | wincmd p 18 | lua << END 19 | local lualine = require('lualine') 20 | 21 | lualine.setup { 22 | options = { 23 | theme = 'pywal-nvim', 24 | }, 25 | } 26 | 27 | END 28 | -------------------------------------------------------------------------------- /nvim/weq.vim: -------------------------------------------------------------------------------- 1 | call plug#begin() 2 | 3 | Plug 'catppuccin/nvim', { 'as': 'catppuccin' } 4 | Plug 'ryanoasis/vim-devicons' 5 | Plug 'SirVer/ultisnips' 6 | Plug 'honza/vim-snippets' 7 | Plug 'scrooloose/nerdtree' 8 | Plug 'preservim/nerdcommenter' 9 | Plug 'mhinz/vim-startify' 10 | Plug 'neoclide/coc.nvim', {'branch': 'release'} 11 | Plug 'nvim-lualine/lualine.nvim' 12 | " If you want to have icons in your statusline choose one of these 13 | Plug 'nvim-tree/nvim-web-devicons' 14 | Plug 'AlphaTechnolog/pywal.nvim', { 'as': 'pywal' } 15 | call plug#end() 16 | lua << END 17 | -- Eviline config for lualine 18 | -- Author: shadmansaleh 19 | -- Credit: glepnir 20 | local lualine = require('lualine') 21 | 22 | -- Color table for highlights 23 | -- stylua: ignore 24 | local colors = { 25 | bg = '#202328', 26 | fg = '#bbc2cf', 27 | yellow = '#ECBE7B', 28 | cyan = '#008080', 29 | darkblue = '#081633', 30 | green = '#98be65', 31 | orange = '#FF8800', 32 | violet = '#a9a1e1', 33 | magenta = '#c678dd', 34 | blue = '#51afef', 35 | red = '#ec5f67', 36 | } 37 | 38 | local conditions = { 39 | buffer_not_empty = function() 40 | return vim.fn.empty(vim.fn.expand('%:t')) ~= 1 41 | end, 42 | hide_in_width = function() 43 | return vim.fn.winwidth(0) > 80 44 | end, 45 | check_git_workspace = function() 46 | local filepath = vim.fn.expand('%:p:h') 47 | local gitdir = vim.fn.finddir('.git', filepath .. ';') 48 | return gitdir and #gitdir > 0 and #gitdir < #filepath 49 | end, 50 | } 51 | 52 | -- Config 53 | local config = { 54 | options = { 55 | -- Disable sections and component separators 56 | component_separators = '', 57 | section_separators = '', 58 | theme = { 59 | -- We are going to use lualine_c an lualine_x as left and 60 | -- right section. Both are highlighted by c theme . So we 61 | -- are just setting default looks o statusline 62 | normal = { c = { fg = colors.fg, bg = colors.bg } }, 63 | inactive = { c = { fg = colors.fg, bg = colors.bg } }, 64 | }, 65 | }, 66 | sections = { 67 | -- these are to remove the defaults 68 | lualine_a = {}, 69 | lualine_b = {}, 70 | lualine_y = {}, 71 | lualine_z = {}, 72 | -- These will be filled later 73 | lualine_c = {}, 74 | lualine_x = {}, 75 | }, 76 | inactive_sections = { 77 | -- these are to remove the defaults 78 | lualine_a = {}, 79 | lualine_b = {}, 80 | lualine_y = {}, 81 | lualine_z = {}, 82 | lualine_c = {}, 83 | lualine_x = {}, 84 | }, 85 | } 86 | 87 | -- Inserts a component in lualine_c at left section 88 | local function ins_left(component) 89 | table.insert(config.sections.lualine_c, component) 90 | end 91 | 92 | -- Inserts a component in lualine_x at right section 93 | local function ins_right(component) 94 | table.insert(config.sections.lualine_x, component) 95 | end 96 | 97 | ins_left { 98 | function() 99 | return '▊' 100 | end, 101 | color = { fg = colors.blue }, -- Sets highlighting of component 102 | padding = { left = 0, right = 1 }, -- We don't need space before this 103 | } 104 | 105 | ins_left { 106 | -- mode component 107 | function() 108 | return '' 109 | end, 110 | color = function() 111 | -- auto change color according to neovims mode 112 | local mode_color = { 113 | n = colors.red, 114 | i = colors.green, 115 | v = colors.blue, 116 | [''] = colors.blue, 117 | V = colors.blue, 118 | c = colors.magenta, 119 | no = colors.red, 120 | s = colors.orange, 121 | S = colors.orange, 122 | [''] = colors.orange, 123 | ic = colors.yellow, 124 | R = colors.violet, 125 | Rv = colors.violet, 126 | cv = colors.red, 127 | ce = colors.red, 128 | r = colors.cyan, 129 | rm = colors.cyan, 130 | ['r?'] = colors.cyan, 131 | ['!'] = colors.red, 132 | t = colors.red, 133 | } 134 | return { fg = mode_color[vim.fn.mode()] } 135 | end, 136 | padding = { right = 1 }, 137 | } 138 | 139 | ins_left { 140 | -- filesize component 141 | 'filesize', 142 | cond = conditions.buffer_not_empty, 143 | } 144 | 145 | ins_left { 146 | 'filename', 147 | cond = conditions.buffer_not_empty, 148 | color = { fg = colors.magenta, gui = 'bold' }, 149 | } 150 | 151 | ins_left { 'location' } 152 | 153 | ins_left { 'progress', color = { fg = colors.fg, gui = 'bold' } } 154 | 155 | ins_left { 156 | 'diagnostics', 157 | sources = { 'nvim_diagnostic' }, 158 | symbols = { error = ' ', warn = ' ', info = ' ' }, 159 | diagnostics_color = { 160 | color_error = { fg = colors.red }, 161 | color_warn = { fg = colors.yellow }, 162 | color_info = { fg = colors.cyan }, 163 | }, 164 | } 165 | 166 | -- Insert mid section. You can make any number of sections in neovim :) 167 | -- for lualine it's any number greater then 2 168 | ins_left { 169 | function() 170 | return '%=' 171 | end, 172 | } 173 | 174 | ins_left { 175 | -- Lsp server name . 176 | function() 177 | local msg = 'No Active Lsp' 178 | local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype') 179 | local clients = vim.lsp.get_active_clients() 180 | if next(clients) == nil then 181 | return msg 182 | end 183 | for _, client in ipairs(clients) do 184 | local filetypes = client.config.filetypes 185 | if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then 186 | return client.name 187 | end 188 | end 189 | return msg 190 | end, 191 | icon = ' LSP:', 192 | color = { fg = '#ffffff', gui = 'bold' }, 193 | } 194 | 195 | -- Add components to right sections 196 | ins_right { 197 | 'o:encoding', -- option component same as &encoding in viml 198 | fmt = string.upper, -- I'm not sure why it's upper case either ;) 199 | cond = conditions.hide_in_width, 200 | color = { fg = colors.green, gui = 'bold' }, 201 | } 202 | 203 | ins_right { 204 | 'fileformat', 205 | fmt = string.upper, 206 | icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh 207 | color = { fg = colors.green, gui = 'bold' }, 208 | } 209 | 210 | ins_right { 211 | 'branch', 212 | icon = '', 213 | color = { fg = colors.violet, gui = 'bold' }, 214 | } 215 | 216 | ins_right { 217 | 'diff', 218 | -- Is it me or the symbol for modified us really weird 219 | symbols = { added = ' ', modified = '󰝤 ', removed = ' ' }, 220 | diff_color = { 221 | added = { fg = colors.green }, 222 | modified = { fg = colors.orange }, 223 | removed = { fg = colors.red }, 224 | }, 225 | cond = conditions.hide_in_width, 226 | } 227 | 228 | ins_right { 229 | function() 230 | return '▊' 231 | end, 232 | color = { fg = colors.blue }, 233 | padding = { left = 1 }, 234 | } 235 | 236 | -- Now don't forget to initialize lualine 237 | lualine.setup(config) 238 | END 239 | 240 | -------------------------------------------------------------------------------- /ranger/commands.py: -------------------------------------------------------------------------------- 1 | # This is a sample commands.py. You can add your own commands here. 2 | # 3 | # Please refer to commands_full.py for all the default commands and a complete 4 | # documentation. Do NOT add them all here, or you may end up with defunct 5 | # commands when upgrading ranger. 6 | 7 | # A simple command for demonstration purposes follows. 8 | # ----------------------------------------------------------------------------- 9 | 10 | from __future__ import (absolute_import, division, print_function) 11 | 12 | # You can import any python module as needed. 13 | import os 14 | 15 | # You always need to import ranger.api.commands here to get the Command class: 16 | from ranger.api.commands import Command 17 | 18 | 19 | # Any class that is a subclass of "Command" will be integrated into ranger as a 20 | # command. Try typing ":my_edit" in ranger! 21 | class my_edit(Command): 22 | # The so-called doc-string of the class will be visible in the built-in 23 | # help that is accessible by typing "?c" inside ranger. 24 | """:my_edit 25 | 26 | A sample command for demonstration purposes that opens a file in an editor. 27 | """ 28 | 29 | # The execute method is called when you run this command in ranger. 30 | def execute(self): 31 | # self.arg(1) is the first (space-separated) argument to the function. 32 | # This way you can write ":my_edit somefilename". 33 | if self.arg(1): 34 | # self.rest(1) contains self.arg(1) and everything that follows 35 | target_filename = self.rest(1) 36 | else: 37 | # self.fm is a ranger.core.filemanager.FileManager object and gives 38 | # you access to internals of ranger. 39 | # self.fm.thisfile is a ranger.container.file.File object and is a 40 | # reference to the currently selected file. 41 | target_filename = self.fm.thisfile.path 42 | 43 | # This is a generic function to print text in ranger. 44 | self.fm.notify("Let's edit the file " + target_filename + "!") 45 | 46 | # Using bad=True in fm.notify allows you to print error messages: 47 | if not os.path.exists(target_filename): 48 | self.fm.notify("The given file does not exist!", bad=True) 49 | return 50 | 51 | # This executes a function from ranger.core.acitons, a module with a 52 | # variety of subroutines that can help you construct commands. 53 | # Check out the source, or run "pydoc ranger.core.actions" for a list. 54 | self.fm.edit_file(target_filename) 55 | 56 | # The tab method is called when you press tab, and should return a list of 57 | # suggestions that the user will tab through. 58 | # tabnum is 1 for and -1 for by default 59 | def tab(self, tabnum): 60 | # This is a generic tab-completion function that iterates through the 61 | # content of the current directory. 62 | return self._tab_directory_content() 63 | -------------------------------------------------------------------------------- /ranger/rc.conf: -------------------------------------------------------------------------------- 1 | # =================================================================== 2 | # This file contains the default startup commands for ranger. 3 | # To change them, it is recommended to create either /etc/ranger/rc.conf 4 | # (system-wide) or ~/.config/ranger/rc.conf (per user) and add your custom 5 | # commands there. 6 | # 7 | # If you copy this whole file there, you may want to set the environment 8 | # variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice. 9 | # 10 | # The purpose of this file is mainly to define keybindings and settings. 11 | # For running more complex python code, please create a plugin in "plugins/" or 12 | # a command in "commands.py". 13 | # 14 | # Each line is a command that will be run before the user interface 15 | # is initialized. As a result, you can not use commands which rely 16 | # on the UI such as :delete or :mark. 17 | # =================================================================== 18 | 19 | # =================================================================== 20 | # == Options 21 | # =================================================================== 22 | 23 | # Which viewmode should be used? Possible values are: 24 | # miller: Use miller columns which show multiple levels of the hierarchy 25 | # multipane: Midnight-commander like multipane view showing all tabs next 26 | # to each other 27 | set viewmode miller 28 | #set viewmode multipane 29 | 30 | # How many columns are there, and what are their relative widths? 31 | set column_ratios 1,3,4 32 | 33 | # Which files should be hidden? (regular expression) 34 | set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$ 35 | 36 | # Show hidden files? You can toggle this by typing 'zh' 37 | set show_hidden false 38 | 39 | # Ask for a confirmation when running the "delete" command? 40 | # Valid values are "always", "never", "multiple" (default) 41 | # With "multiple", ranger will ask only if you delete multiple files at once. 42 | set confirm_on_delete multiple 43 | 44 | # Use non-default path for file preview script? 45 | # ranger ships with scope.sh, a script that calls external programs (see 46 | # README.md for dependencies) to preview images, archives, etc. 47 | #set preview_script ~/.config/ranger/scope.sh 48 | 49 | # Use the external preview script or display simple plain text or image previews? 50 | set use_preview_script true 51 | 52 | # Automatically count files in the directory, even before entering them? 53 | set automatically_count_files true 54 | 55 | # Open all images in this directory when running certain image viewers 56 | # like feh or sxiv? You can still open selected files by marking them. 57 | set open_all_images true 58 | 59 | # Be aware of version control systems and display information. 60 | set vcs_aware false 61 | 62 | # State of the four backends git, hg, bzr, svn. The possible states are 63 | # disabled, local (only show local info), enabled (show local and remote 64 | # information). 65 | set vcs_backend_git enabled 66 | set vcs_backend_hg disabled 67 | set vcs_backend_bzr disabled 68 | set vcs_backend_svn disabled 69 | 70 | # Truncate the long commit messages to this length when shown in the statusbar. 71 | set vcs_msg_length 50 72 | 73 | # Use one of the supported image preview protocols 74 | set preview_images true 75 | 76 | # Set the preview image method. Supported methods: 77 | # 78 | # * w3m (default): 79 | # Preview images in full color with the external command "w3mimgpreview"? 80 | # This requires the console web browser "w3m" and a supported terminal. 81 | # It has been successfully tested with "xterm" and "urxvt" without tmux. 82 | # 83 | # * iterm2: 84 | # Preview images in full color using iTerm2 image previews 85 | # (http://iterm2.com/images.html). This requires using iTerm2 compiled 86 | # with image preview support. 87 | # 88 | # This feature relies on the dimensions of the terminal's font. By default, a 89 | # width of 8 and height of 11 are used. To use other values, set the options 90 | # iterm2_font_width and iterm2_font_height to the desired values. 91 | # 92 | # * terminology: 93 | # Previews images in full color in the terminology terminal emulator. 94 | # Supports a wide variety of formats, even vector graphics like svg. 95 | # 96 | # * urxvt: 97 | # Preview images in full color using urxvt image backgrounds. This 98 | # requires using urxvt compiled with pixbuf support. 99 | # 100 | # * urxvt-full: 101 | # The same as urxvt but utilizing not only the preview pane but the 102 | # whole terminal window. 103 | # 104 | # * kitty: 105 | # Preview images in full color using kitty image protocol. 106 | # Requires python PIL or pillow library. 107 | # If ranger does not share the local filesystem with kitty 108 | # the transfer method is changed to encode the whole image; 109 | # while slower, this allows remote previews, 110 | # for example during an ssh session. 111 | # Tmux is unsupported. 112 | # 113 | # * ueberzug: 114 | # Preview images in full color with the external command "ueberzug". 115 | # Images are shown by using a child window. 116 | # Only for users who run X11 in GNU/Linux. 117 | set preview_images_method kitty 118 | 119 | # Delay in seconds before displaying an image with the w3m method. 120 | # Increase it in case of experiencing display corruption. 121 | set w3m_delay 0.02 122 | 123 | # Manually adjust the w3mimg offset when using a terminal which needs this 124 | set w3m_offset 0 125 | 126 | # Default iTerm2 font size (see: preview_images_method: iterm2) 127 | set iterm2_font_width 8 128 | set iterm2_font_height 11 129 | 130 | # Use a unicode "..." character to mark cut-off filenames? 131 | set unicode_ellipsis false 132 | 133 | # BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic). 134 | # Requires the python-bidi pip package 135 | set bidi_support false 136 | 137 | # Show dotfiles in the bookmark preview box? 138 | set show_hidden_bookmarks true 139 | 140 | # Which colorscheme to use? These colorschemes are available by default: 141 | # default, jungle, snow, solarized 142 | set colorscheme default 143 | 144 | # Preview files on the rightmost column? 145 | # And collapse (shrink) the last column if there is nothing to preview? 146 | set preview_files true 147 | set preview_directories true 148 | set collapse_preview true 149 | 150 | # Wrap long lines in plain text previews? 151 | set wrap_plaintext_previews false 152 | 153 | # Save the console history on exit? 154 | set save_console_history true 155 | 156 | # Draw the status bar on top of the browser window (default: bottom) 157 | set status_bar_on_top false 158 | 159 | # Draw a progress bar in the status bar which displays the average state of all 160 | # currently running tasks which support progress bars? 161 | set draw_progress_bar_in_status_bar true 162 | 163 | # Draw borders around columns? (separators, outline, both, or none) 164 | # Separators are vertical lines between columns. 165 | # Outline draws a box around all the columns. 166 | # Both combines the two. 167 | set draw_borders none 168 | 169 | # Display the directory name in tabs? 170 | set dirname_in_tabs false 171 | 172 | # Enable the mouse support? 173 | set mouse_enabled true 174 | 175 | # Display the file size in the main column or status bar? 176 | set display_size_in_main_column true 177 | set display_size_in_status_bar true 178 | 179 | # Display the free disk space in the status bar? 180 | set display_free_space_in_status_bar true 181 | 182 | # Display files tags in all columns or only in main column? 183 | set display_tags_in_all_columns true 184 | 185 | # Set a title for the window? Updates both `WM_NAME` and `WM_ICON_NAME` 186 | set update_title false 187 | 188 | # Set the tmux/screen window-name to "ranger"? 189 | set update_tmux_title true 190 | 191 | # Shorten the title if it gets long? The number defines how many 192 | # directories are displayed at once, 0 turns off this feature. 193 | set shorten_title 3 194 | 195 | # Show hostname in titlebar? 196 | set hostname_in_titlebar true 197 | 198 | # Abbreviate $HOME with ~ in the titlebar (first line) of ranger? 199 | set tilde_in_titlebar false 200 | 201 | # How many directory-changes or console-commands should be kept in history? 202 | set max_history_size 20 203 | set max_console_history_size 50 204 | 205 | # Try to keep so much space between the top/bottom border when scrolling: 206 | set scroll_offset 8 207 | 208 | # Flush the input after each key hit? (Noticeable when ranger lags) 209 | set flushinput true 210 | 211 | # Padding on the right when there's no preview? 212 | # This allows you to click into the space to run the file. 213 | set padding_right true 214 | 215 | # Save bookmarks (used with mX and `X) instantly? 216 | # This helps to synchronize bookmarks between multiple ranger 217 | # instances but leads to *slight* performance loss. 218 | # When false, bookmarks are saved when ranger is exited. 219 | set autosave_bookmarks true 220 | 221 | # Save the "`" bookmark to disk. This can be used to switch to the last 222 | # directory by typing "``". 223 | set save_backtick_bookmark true 224 | 225 | # You can display the "real" cumulative size of directories by using the 226 | # command :get_cumulative_size or typing "dc". The size is expensive to 227 | # calculate and will not be updated automatically. You can choose 228 | # to update it automatically though by turning on this option: 229 | set autoupdate_cumulative_size false 230 | 231 | # Turning this on makes sense for screen readers: 232 | set show_cursor false 233 | 234 | # One of: size, natural, basename, atime, ctime, mtime, type, random 235 | set sort natural 236 | 237 | # Additional sorting options 238 | set sort_reverse false 239 | set sort_case_insensitive true 240 | set sort_directories_first true 241 | set sort_unicode false 242 | 243 | # Enable this if key combinations with the Alt Key don't work for you. 244 | # (Especially on xterm) 245 | set xterm_alt_key false 246 | 247 | # Whether to include bookmarks in cd command 248 | set cd_bookmarks true 249 | 250 | # Changes case sensitivity for the cd command tab completion 251 | set cd_tab_case sensitive 252 | 253 | # Use fuzzy tab completion with the "cd" command. For example, 254 | # ":cd /u/lo/b" expands to ":cd /usr/local/bin". 255 | set cd_tab_fuzzy false 256 | 257 | # Avoid previewing files larger than this size, in bytes. Use a value of 0 to 258 | # disable this feature. 259 | set preview_max_size 0 260 | 261 | # The key hint lists up to this size have their sublists expanded. 262 | # Otherwise the submaps are replaced with "...". 263 | set hint_collapse_threshold 10 264 | 265 | # Add the highlighted file to the path in the titlebar 266 | set show_selection_in_titlebar true 267 | 268 | # The delay that ranger idly waits for user input, in milliseconds, with a 269 | # resolution of 100ms. Lower delay reduces lag between directory updates but 270 | # increases CPU load. 271 | set idle_delay 2000 272 | 273 | # When the metadata manager module looks for metadata, should it only look for 274 | # a ".metadata.json" file in the current directory, or do a deep search and 275 | # check all directories above the current one as well? 276 | set metadata_deep_search false 277 | 278 | # Clear all existing filters when leaving a directory 279 | set clear_filters_on_dir_change false 280 | 281 | # Disable displaying line numbers in main column. 282 | # Possible values: false, absolute, relative. 283 | set line_numbers false 284 | 285 | # When line_numbers=relative show the absolute line number in the 286 | # current line. 287 | set relative_current_zero false 288 | 289 | # Start line numbers from 1 instead of 0 290 | set one_indexed false 291 | 292 | # Save tabs on exit 293 | set save_tabs_on_exit false 294 | 295 | # Enable scroll wrapping - moving down while on the last item will wrap around to 296 | # the top and vice versa. 297 | set wrap_scroll false 298 | 299 | # Set the global_inode_type_filter to nothing. Possible options: d, f and l for 300 | # directories, files and symlinks respectively. 301 | set global_inode_type_filter 302 | 303 | # This setting allows to freeze the list of files to save I/O bandwidth. It 304 | # should be 'false' during start-up, but you can toggle it by pressing F. 305 | set freeze_files false 306 | 307 | # Print file sizes in bytes instead of the default human-readable format. 308 | set size_in_bytes false 309 | 310 | # Warn at startup if RANGER_LEVEL env var is greater than 0, in other words 311 | # give a warning when you nest ranger in a subshell started by ranger. 312 | # Special value "error" makes the warning more visible. 313 | set nested_ranger_warning true 314 | 315 | # =================================================================== 316 | # == Local Options 317 | # =================================================================== 318 | # You can set local options that only affect a single directory. 319 | 320 | # Examples: 321 | # setlocal path=~/downloads sort mtime 322 | 323 | # =================================================================== 324 | # == Command Aliases in the Console 325 | # =================================================================== 326 | 327 | alias e edit 328 | alias q quit 329 | alias q! quit! 330 | alias qa quitall 331 | alias qa! quitall! 332 | alias qall quitall 333 | alias qall! quitall! 334 | alias setl setlocal 335 | 336 | alias filter scout -prts 337 | alias find scout -aets 338 | alias mark scout -mr 339 | alias unmark scout -Mr 340 | alias search scout -rs 341 | alias search_inc scout -rts 342 | alias travel scout -aefklst 343 | 344 | # =================================================================== 345 | # == Define keys for the browser 346 | # =================================================================== 347 | 348 | # Basic 349 | map Q quitall 350 | map q quit 351 | copymap q ZZ ZQ 352 | 353 | map R reload_cwd 354 | map F set freeze_files! 355 | map reset 356 | map redraw_window 357 | map abort 358 | map change_mode normal 359 | map ~ set viewmode! 360 | 361 | map i display_file 362 | map scroll_preview 1 363 | map scroll_preview -1 364 | map ? help 365 | map W display_log 366 | map w taskview_open 367 | map S shell $SHELL 368 | 369 | map : console 370 | map ; console 371 | map ! console shell%space 372 | map @ console -p6 shell %%s 373 | map # console shell -p%space 374 | map s console shell%space 375 | map r chain draw_possible_programs; console open_with%space 376 | map f console find%space 377 | map cd console cd%space 378 | 379 | map chain console; eval fm.ui.console.history_move(-1) 380 | 381 | # Change the line mode 382 | map Mf linemode filename 383 | map Mi linemode fileinfo 384 | map Mm linemode mtime 385 | map Mh linemode humanreadablemtime 386 | map Mp linemode permissions 387 | map Ms linemode sizemtime 388 | map MH linemode sizehumanreadablemtime 389 | map Mt linemode metatitle 390 | 391 | # Tagging / Marking 392 | map t tag_toggle 393 | map ut tag_remove 394 | map " tag_toggle tag=%any 395 | map mark_files toggle=True 396 | map v mark_files all=True toggle=True 397 | map uv mark_files all=True val=False 398 | map V toggle_visual_mode 399 | map uV toggle_visual_mode reverse=True 400 | 401 | # For the nostalgics: Midnight Commander bindings 402 | map help 403 | map rename_append 404 | map display_file 405 | map edit 406 | map copy 407 | map cut 408 | map console mkdir%space 409 | map console delete 410 | #map console trash 411 | map exit 412 | 413 | # In case you work on a keyboard with dvorak layout 414 | map move up=1 415 | map move down=1 416 | map move left=1 417 | map move right=1 418 | map move to=0 419 | map move to=-1 420 | map move down=1 pages=True 421 | map move up=1 pages=True 422 | map move right=1 423 | #map console delete 424 | map console touch%space 425 | 426 | # VIM-like 427 | copymap k 428 | copymap j 429 | copymap h 430 | copymap l 431 | copymap gg 432 | copymap G 433 | copymap 434 | copymap 435 | 436 | map J move down=0.5 pages=True 437 | map K move up=0.5 pages=True 438 | copymap J 439 | copymap K 440 | 441 | # Jumping around 442 | map H history_go -1 443 | map L history_go 1 444 | map ] move_parent 1 445 | map [ move_parent -1 446 | map } traverse 447 | map { traverse_backwards 448 | map ) jump_non 449 | 450 | map gh cd ~ 451 | map ge cd /etc 452 | map gu cd /usr 453 | map gd cd /dev 454 | map gl cd -r . 455 | map gL cd -r %f 456 | map go cd /opt 457 | map gv cd /var 458 | map gm cd /media 459 | map gi eval fm.cd('/run/media/' + os.getenv('USER')) 460 | map gM cd /mnt 461 | map gs cd /srv 462 | map gp cd /tmp 463 | map gr cd / 464 | map gR eval fm.cd(ranger.RANGERDIR) 465 | map g/ cd / 466 | map g? cd /usr/share/doc/ranger 467 | 468 | # External Programs 469 | map E edit 470 | map du shell -p du --max-depth=1 -h --apparent-size 471 | map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh 472 | map yp yank path 473 | map yd yank dir 474 | map yn yank name 475 | map y. yank name_without_extension 476 | 477 | # Filesystem Operations 478 | map = chmod 479 | 480 | map cw console rename%space 481 | map a rename_append 482 | map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%")) 483 | map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7) 484 | 485 | map pp paste 486 | map po paste overwrite=True 487 | map pP paste append=True 488 | map pO paste overwrite=True append=True 489 | map pl paste_symlink relative=False 490 | map pL paste_symlink relative=True 491 | map phl paste_hardlink 492 | map pht paste_hardlinked_subtree 493 | map pd console paste dest= 494 | map p` paste dest=%any_path 495 | map p' paste dest=%any_path 496 | 497 | map dD console delete 498 | map dT console trash 499 | 500 | map dd cut 501 | map ud uncut 502 | map da cut mode=add 503 | map dr cut mode=remove 504 | map dt cut mode=toggle 505 | 506 | map yy copy 507 | map uy uncut 508 | map ya copy mode=add 509 | map yr copy mode=remove 510 | map yt copy mode=toggle 511 | 512 | # Temporary workarounds 513 | map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier) 514 | map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier) 515 | map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier) 516 | map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier) 517 | map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier) 518 | map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier) 519 | map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier) 520 | map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier) 521 | 522 | # Searching 523 | map / console search%space 524 | map n search_next 525 | map N search_next forward=False 526 | map ct search_next order=tag 527 | map cs search_next order=size 528 | map ci search_next order=mimetype 529 | map cc search_next order=ctime 530 | map cm search_next order=mtime 531 | map ca search_next order=atime 532 | 533 | # Tabs 534 | map tab_new 535 | map tab_close 536 | map tab_move 1 537 | map tab_move -1 538 | map tab_move 1 539 | map tab_move -1 540 | map gt tab_move 1 541 | map gT tab_move -1 542 | map gn tab_new 543 | map gc tab_close 544 | map uq tab_restore 545 | map tab_open 1 546 | map tab_open 2 547 | map tab_open 3 548 | map tab_open 4 549 | map tab_open 5 550 | map tab_open 6 551 | map tab_open 7 552 | map tab_open 8 553 | map tab_open 9 554 | map tab_shift 1 555 | map tab_shift -1 556 | 557 | # Sorting 558 | map or set sort_reverse! 559 | map oz set sort=random 560 | map os chain set sort=size; set sort_reverse=False 561 | map ob chain set sort=basename; set sort_reverse=False 562 | map on chain set sort=natural; set sort_reverse=False 563 | map om chain set sort=mtime; set sort_reverse=False 564 | map oc chain set sort=ctime; set sort_reverse=False 565 | map oa chain set sort=atime; set sort_reverse=False 566 | map ot chain set sort=type; set sort_reverse=False 567 | map oe chain set sort=extension; set sort_reverse=False 568 | 569 | map oS chain set sort=size; set sort_reverse=True 570 | map oB chain set sort=basename; set sort_reverse=True 571 | map oN chain set sort=natural; set sort_reverse=True 572 | map oM chain set sort=mtime; set sort_reverse=True 573 | map oC chain set sort=ctime; set sort_reverse=True 574 | map oA chain set sort=atime; set sort_reverse=True 575 | map oT chain set sort=type; set sort_reverse=True 576 | map oE chain set sort=extension; set sort_reverse=True 577 | 578 | map dc get_cumulative_size 579 | 580 | # Settings 581 | map zc set collapse_preview! 582 | map zd set sort_directories_first! 583 | map zh set show_hidden! 584 | map set show_hidden! 585 | copymap 586 | copymap 587 | map zI set flushinput! 588 | map zi set preview_images! 589 | map zm set mouse_enabled! 590 | map zp set preview_files! 591 | map zP set preview_directories! 592 | map zs set sort_case_insensitive! 593 | map zu set autoupdate_cumulative_size! 594 | map zv set use_preview_script! 595 | map zf console filter%space 596 | copymap zf zz 597 | 598 | # Filter stack 599 | map .d filter_stack add type d 600 | map .f filter_stack add type f 601 | map .l filter_stack add type l 602 | map .m console filter_stack add mime%space 603 | map .n console filter_stack add name%space 604 | map .# console filter_stack add hash%space 605 | map ." filter_stack add duplicate 606 | map .' filter_stack add unique 607 | map .| filter_stack add or 608 | map .& filter_stack add and 609 | map .! filter_stack add not 610 | map .r filter_stack rotate 611 | map .c filter_stack clear 612 | map .* filter_stack decompose 613 | map .p filter_stack pop 614 | map .. filter_stack show 615 | 616 | # Bookmarks 617 | map ` enter_bookmark %any 618 | map ' enter_bookmark %any 619 | map m set_bookmark %any 620 | map um unset_bookmark %any 621 | 622 | map m draw_bookmarks 623 | copymap m um ` ' 624 | 625 | # Generate all the chmod bindings with some python help: 626 | eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg)) 627 | eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg)) 628 | eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg)) 629 | eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg)) 630 | eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg)) 631 | 632 | eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg)) 633 | eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg)) 634 | eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg)) 635 | eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg)) 636 | eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg)) 637 | 638 | # =================================================================== 639 | # == Define keys for the console 640 | # =================================================================== 641 | # Note: Unmapped keys are passed directly to the console. 642 | 643 | # Basic 644 | cmap eval fm.ui.console.tab() 645 | cmap eval fm.ui.console.tab(-1) 646 | cmap eval fm.ui.console.close() 647 | cmap eval fm.ui.console.execute() 648 | cmap redraw_window 649 | 650 | copycmap 651 | copycmap 652 | 653 | # Move around 654 | cmap eval fm.ui.console.history_move(-1) 655 | cmap eval fm.ui.console.history_move(1) 656 | cmap eval fm.ui.console.move(left=1) 657 | cmap eval fm.ui.console.move(right=1) 658 | cmap eval fm.ui.console.move(right=0, absolute=True) 659 | cmap eval fm.ui.console.move(right=-1, absolute=True) 660 | cmap eval fm.ui.console.move_word(left=1) 661 | cmap eval fm.ui.console.move_word(right=1) 662 | 663 | copycmap 664 | copycmap 665 | 666 | # Line Editing 667 | cmap eval fm.ui.console.delete(-1) 668 | cmap eval fm.ui.console.delete(0) 669 | cmap eval fm.ui.console.delete_word() 670 | cmap eval fm.ui.console.delete_word(backward=False) 671 | cmap eval fm.ui.console.delete_rest(1) 672 | cmap eval fm.ui.console.delete_rest(-1) 673 | cmap eval fm.ui.console.paste() 674 | 675 | # And of course the emacs way 676 | copycmap 677 | copycmap 678 | copycmap 679 | copycmap 680 | copycmap 681 | copycmap 682 | copycmap 683 | copycmap 684 | copycmap 685 | 686 | # Note: There are multiple ways to express backspaces. (code 263) 687 | # and (code 127). To be sure, use both. 688 | copycmap 689 | 690 | # This special expression allows typing in numerals: 691 | cmap false 692 | 693 | # =================================================================== 694 | # == Pager Keybindings 695 | # =================================================================== 696 | 697 | # Movement 698 | pmap pager_move down=1 699 | pmap pager_move up=1 700 | pmap pager_move left=4 701 | pmap pager_move right=4 702 | pmap pager_move to=0 703 | pmap pager_move to=-1 704 | pmap pager_move down=1.0 pages=True 705 | pmap pager_move up=1.0 pages=True 706 | pmap pager_move down=0.5 pages=True 707 | pmap pager_move up=0.5 pages=True 708 | 709 | copypmap k 710 | copypmap j 711 | copypmap h 712 | copypmap l 713 | copypmap g 714 | copypmap G 715 | copypmap d 716 | copypmap u 717 | copypmap n f 718 | copypmap p b 719 | 720 | # Basic 721 | pmap redraw_window 722 | pmap pager_close 723 | copypmap q Q i 724 | pmap E edit_file 725 | 726 | # =================================================================== 727 | # == Taskview Keybindings 728 | # =================================================================== 729 | 730 | # Movement 731 | tmap taskview_move up=1 732 | tmap taskview_move down=1 733 | tmap taskview_move to=0 734 | tmap taskview_move to=-1 735 | tmap taskview_move down=1.0 pages=True 736 | tmap taskview_move up=1.0 pages=True 737 | tmap taskview_move down=0.5 pages=True 738 | tmap taskview_move up=0.5 pages=True 739 | 740 | copytmap k 741 | copytmap j 742 | copytmap g 743 | copytmap G 744 | copytmap u 745 | copytmap n f 746 | copytmap p b 747 | 748 | # Changing priority and deleting tasks 749 | tmap J eval -q fm.ui.taskview.task_move(-1) 750 | tmap K eval -q fm.ui.taskview.task_move(0) 751 | tmap dd eval -q fm.ui.taskview.task_remove() 752 | tmap eval -q fm.ui.taskview.task_move(-1) 753 | tmap eval -q fm.ui.taskview.task_move(0) 754 | tmap eval -q fm.ui.taskview.task_remove() 755 | 756 | # Basic 757 | tmap redraw_window 758 | tmap taskview_close 759 | copytmap q Q w 760 | -------------------------------------------------------------------------------- /ranger/rifle.conf: -------------------------------------------------------------------------------- 1 | # vim: ft=cfg 2 | # 3 | # This is the configuration file of "rifle", ranger's file executor/opener. 4 | # Each line consists of conditions and a command. For each line the conditions 5 | # are checked and if they are met, the respective command is run. 6 | # 7 | # Syntax: 8 | # , , ... = command 9 | # 10 | # The command can contain these environment variables: 11 | # $1-$9 | The n-th selected file 12 | # $@ | All selected files 13 | # 14 | # If you use the special command "ask", rifle will ask you what program to run. 15 | # 16 | # Prefixing a condition with "!" will negate its result. 17 | # These conditions are currently supported: 18 | # match | The regexp matches $1 19 | # ext | The regexp matches the extension of $1 20 | # mime | The regexp matches the mime type of $1 21 | # name | The regexp matches the basename of $1 22 | # path | The regexp matches the absolute path of $1 23 | # has | The program is installed (i.e. located in $PATH) 24 | # env | The environment variable "variable" is non-empty 25 | # file | $1 is a file 26 | # directory | $1 is a directory 27 | # number | change the number of this command to n 28 | # terminal | stdin, stderr and stdout are connected to a terminal 29 | # X | A graphical environment is available (darwin, Xorg, or Wayland) 30 | # 31 | # There are also pseudo-conditions which have a "side effect": 32 | # flag | Change how the program is run. See below. 33 | # label